UNIXAWESOME

Основные команды Linux

Sept. 26, 2021

cli.png

При работе с операционной системой Linux часто приходится использовать интерфейс командной строки (CLI), так как он более мощный и эффективный. Задачи, для решения которых в графическом интерфейсе понадобиться много этапов, можно выполнить за считанные секунды, вводя команды в CLI.

Если вы планируете использовать Linux, знание базовых команд является необходимостью.

Вот список самых часто используемых.

pwd
cd
ls
tree
ln
&&
date
w
cat
cp
mv
mkdir
rm
touch
find
grep
sudo
mount/umount
df
du
head/tail
less/more
diff
which
tar
chmod
chown
ps
kill
free
ip
uname
ping


  1. pwd

    Укажет полный путь до директории, в которой вы находитесь.

  2. cd

    С помощью этой команды можно перемещаться между папками.

    Для перемещения в другую папку для работы с файлами, нужно ввести:

    cd адрес_папки
    

    Чтобы подняться по древу каталогов на уровень вверх набираем:

    cd ..
    

    Чтобы вернуться к предыдущей директории:

    cd -
    

    Возврат в домашний каталог текущего пользователя:

    cd ~
    
  3. ls

    Используется для просмотра содержимого каталога в котором вы сейчас находитесь.

    Для просмотра содержимого других каталогов не переходя в них можно указав путь к интересующей нас папке:

    ls /home/username/Downloads
    

    Для более информативного отображения содержимого нужно воспользоватся ключём -l

    ls -l /home/username/Downloads
    

    Для отображения скрытых файлов и папок необходимо добавить ключ -a

  4. tree

    Команда tree рекурсивно обходит все вложенные директории и файлы для выбранной директории и выводит информацию в удобном древовидном формате.

    Можно использовать следующим образом:

    tree
    tree /путь/до/директории
    tree опции
    tree опции /путь/до/директории
    

    -a показывать все файлы, включая скрытые.
    -d показывать только директории.
    -u показывать владельца или идентификатор пользователя (UID).
    -g показывать группу или идентификатор группы (GID).
    -L уровень выводить дерево не глубже определенного уровня вложенности.
    -h показывать размер файлов.
    -D показывать дату последнего изменения файла или директории.
    включить подсветку разными цветами.
    -X вывести информацию в формате XML.
    -J вывести информацию в формате JSON.

  5. ln

    Создание жестких и символических ссылок. Ссылки дают одному и тому же файлу несколько имен и позволяют им быть в двух или более местах одновременно.

    • Мягкая ссылка или символическая ссылка: это просто ярлык к исходному файлу.
    • Жесткая ссылка: указывает на место в памяти исходного файла.

    Обычно для создания ссылок мы используем команду ln и опцию -s, чтобы указать символическую ссылку. Это самый простой и гибкий способ. В создании символических ссылок в Linux нет ничего сложного — нужно просто выполнить один простой шаг.

    ln -s [целевой_файл] [имя_символической_ссылки]
    ln -s [конкретный_файл/каталог] [имя_символической_ссылки]
    

    Проверить создалась ли ссылка можно с помощью команды вывода подробного списка содержимого каталога:

    ls -l
    
  6. &&

    Двойной амперсанд – не полноценная команда, а управляющий оператор. Он предназначен для выполнения последовательного ряда команд. Чтобы терминал выполнил команды одну за другой, нужно разделить их следующим образом:

    команда_1 && команда_2 && команда_3
    

    Число команд в такой последовательности не ограничено.

  7. date

    Отображает текущее время и дату. Отдельными переменными можно задать удобный формат вывода и число отображаемых параметров, вплоть до миллисекунд.

  8. w

    Выводит краткую сводку о работающих в системе, в данный момент пользователях (залогиненных), а также о том, какие процессы у них запущены

  9. cat

    Показывает содержимое документов. Можно скормить этой утилите любой текстовый файл, и она прямо в терминале отобразит все, что в нем записано.

    cat имя_файла
    

    Если нужно узнать содержимое нескольких файлов подряд:

    cat файл_1 файл_2 файл_3
    
  10. cp

    Утилита, позволяющая скопировать файл или каталог.

    cp [что_копируем] [куда_копируем]
    

    Копируем файл

    cp file.txt file2.txt
    

    Чтобы скопировать файл в другой каталог, укажите абсолютный или относительный путь к каталогу назначения.

    Чтобы скопировать каталог, включая все его файлы и подкаталоги, используйте -R или -r.

    В следующем примере мы копируем каталог Pictures в Pictures_backup :

    cp -R Pictures Pictures_backup
    

    Другой способ скопировать только содержимое каталога, но не сам каталог, - использовать подстановочный знак ( * ). Недостаток следующей команды в том, что она не копирует скрытые файлы и каталоги (те, которые начинаются с точки . ):

    cp -R Pictures/* Pictures_backup/
    
  11. mv

    Применяется для перемещение и переименование файла или каталога.

    Команда mv может:

    • Переместить один или несколько файлов в другую директорию.
    • Переместить одну или несколько директорий в другую директорию.
    • Переименовать файл.
    • Переименовать директорию.

    Переместить файл

    Переместим файл myfile1.txt в директорию mydir/ (директория должна существовать). Для этого выполняем команду без каких-либо аргументов:

    mv myfile1.txt mydir/
    

    Переименовать файл

    Переименуем файл myfile1.txt в myfile2.txt:

    mv myfile1.txt myfile2.txt
    

    Переименовать директорию

    Переименуем директорию mydir1 в mydir2. Выполняется точно также, как и переименование файлов.

    mv mydir1 mydir2
    

    Переместить несколько файлов

    Переместим сразу три файла в директорию mydir/

    mv myfile1 myfile2 myfile3 mydir/
    

    Переместим все файлы из текущей директории в директорию mydir/

    mv * mydir/
    

    Переместим все файлы с расширением .jpg в директорию mydir/

    mv *.jpg mydir
    

    Если в имени файла есть пробелы

    Если в имени файла есть пробелы, то имя файла нужно заключить в кавычки или перед каждым пробелом добавлять символ \

    mv "My file1.txt" "My file2.txt"
    

    Или использовать символ косой черты перед пробелом.

    mv My\ file1.txt My\ file2.txt
    
  12. mkdir

    Создает новую директорию.

    Создание директорий

    Создать директорию с именем mydir:

    mkdir mydir
    

    Создать несколько директорий:

    mkdir mydir1 mydir2 mydir3
    

    Создание директории с указанием относительного пути:

    mkdir Downloads/pictures
    

    Создание директорий, включая родительские

    Чтобы создать все директории, которые содержатся в пути, используется ключ -p:

    mkdir -p subdir/somedir/mydir
    

    В результате будут созданы директории: subdir, subdir/somedir, subdir/somedir/mydir

  13. rm

    Отвечает за удаление папок и файлов. Использовать команду rm следует крайне осторожно!

    Удаление файла

    rm file.txt
    

    Удаление нескольких файлов одновременно.

    rm file.txt pic.jpg
    

    Интерактивное удаление файлов

    Параметр -i спрашивает разрешение перед удалением, как показано ниже.

    rm -i file.txt
    

    Рекурсивное удаление директорий

    Команда rm вместе параметром -r рекурсивно удалит все файлы и подкаталоги в каталге mydir.

    rm -r mydir/
    

    Принудительное удаление файлов

    Параметр -f в команде rm принудительно удаляет файлы независимо от их прав доступа, а также игнорирует несуществующие файлы.

  14. touch

    Эта команда создавалась для изменения времени последнего открытия файла или директории, но используют её, в основном, для создания новых файлов.

    Например для создания пустого файла test.txt необходимо ввести в терминал:

    touch test.txt
    
  15. find

    Осуществляет поиск в файловой системе, файлах и папках.

    Для поиска файла по имени в определенной директории введите:

    find /home -name "linux.txt"
    

    Эта команда будет искать файл linux.txt в директории /root. Так же мы найти все файлы с расширением .txt:

    find /home -name "*.txt"
    

    Найти файл во множестве директорий:

    find /home /tmp -name "linux.txt"
    

    Найти файл по имени без учета регистра:

    find /home -iname "Linux.txt"
    

    Найти все типы файлов отличные от упомянутого:

    find /home -not -name "*.txt"
    

    Найти все скрытые файлы:

    find /home -type f name ".*"
    

    Найти все файлы определенного размера:

    find /home -size -2M
    

    Найти все пустые файлы и директории:

    для файлов

    find / -type f -empty
    

    для директорий

    find ~/ -type d -empty
    
  16. grep

    Утилита выполняет поиск в текстовом файле за заданным нами паттерном. Другими словами, с помощью grep вы можете найти необходимое вам слово или значение. А содержащие ваш запрос строки или строка будут выведены в терминал.

    Наиболее важные и часто используемые параметры:
    -i — поиск не будет чувствителен к регистру. То есть, если вы хотите найти слово «автомобиль», написанные как «АВТОМОБИЛЬ» слова тоже будут найдены.
    -c — покажет только количество строк, содержащих поисковый запрос
    -r — включает рекурсивный поиск в текущем каталоге
    -n — выведет номера строк, содержащих поисковый запрос
    -v — обратный поиск, выводит только строки, в которых нет указанного поискового запроса

    Поиск в текстовом файле слова Linux:

    grep Linux test.txt
    

    Если строка содержит пробелы, вам необходимо заключить ее в одинарные или двойные кавычки:

    grep "Linux user" /home/user/passwd.txt
    
  17. sudo

    Это утилита, предоставляющая привилегии root для выполнения административных операций.

    Самый распространённый вариант запуска команд с sudo:

    sudo КОМАНДА
    

    Если нужно выполнить команду от имени иного, не root пользователя, то используйте опцию -u:

    sudo -u ПОЛЬЗОВАТЕЛЬ КОМАНДА
    
  18. mount/umount

    Для подключения и отключения файловых систем и съемных устройств, таких как флэш-накопители USB.

    Для вывода списка всех подключенных файловых систем:

    mount
    

    Монтирование файловой системы
    В примере /dev/sdb1 это раздел на флешке, а /mnt/media - это папка куда мы подключим нашу флешку.

    sudo mount /dev/sdb1 /mnt/media
    

    Отключение файловой системы
    Чтобы отсоединить смонтированную файловую систему, используйте команду umount после которой укажите либо каталог, в котором она была смонтирована (точка монтирования), либо имя устройства:

    umount /mnt/media
    или
    umount /dev/sdb1
    

    смонтировать диск только для чтения
    Чтобы смонтировать диск только с правами чтения, используйте любой из вариантов опции: -r, --read-only, -o ro.

    sudo mount -o ro /dev/sdb1 /mnt/media
    
  19. df

    (Disk Free). показывает, сколько пространства занято на подключенных дисках и разделах.

    df -h /home/user/Desktop
    

    После выполнения команды, можно увидеть несколько стандартных колонок: Файловая система, Размер, Использовано, Доступно, %Использования, Куда смонтирован

  20. du

    (Disk Usage). Позволяет определить размер файла или каталога.

    -a, --all - выводить размер для всех файлов, а не только для директорий, по умолчанию размер выводится только для папок;
    -B, --block-size - указать единицы вывода размера, доступно: K,M,G,T,P,E,Z,Y для 1024 и KB, MB и так далее для 1000;
    -c, --total - выводить в конце общий размер всех папок;
    -d, --max-depth - максимальная глубина вложенности директорий;
    -h, --human-readable - выводить размер в единицах измерения удобных для человека;
    --inodes - выводить информацию об использованию inode;
    -L, --dereference - следовать по всем символическим ссылкам;
    -l, --count-links - учитывать размер файла несколько раз для жестких ссылок;
    -P, --no-dereference - не следовать по символическим ссылкам, это поведение используется по умолчанию;
    -S, --separate-dirs - не включать размер подпапок в размер папки;
    --si - выводить размер файлов и папок в системе си, используется 1000 вместо 1024;
    -s, --summarize - выводить только общий размер;
    -t, --threshold - не учитывать файлы и папки с размером меньше указанного;
    --time - отображать время последней модификации для файла или папки, вместо времени модификации можно выводить такие метки: atime, access, use, ctime;
    -X, --exclude - исключить файлы из подсчёта;
    -x, --one-file-system - пропускать примонтированные файловые системы;
    --version - вывести версию утилиты.

    du -h --max-depth=1 /home/user
    
  21. Пара дополняющих друг друга команд для просмотра начала и конца текста. Команда head выдаёт 10 (по умолчанию) первых строк текста, tail — последних. Число строк в обоих случаях меняется с помощью аргумента -n.

  22. less/more

    Две команды для облегчения просмотра больших текстов, не умещающихся на одном экране эмулятора терминала. Т.к. функционально команды одинаковы, но less — новее и поддерживает больше опций, рекомендуется использовать именно её.

  23. diff

    (Difference). Производит построчное сравнение двух текстовых файлов, выводя различия между ними.

    diff file1.txt file2.txt
    
  24. which

    Используется для определения местоположения исполняемого файла.

    Например необходимо определить где находится исполняемый файл команды ifconfig:

    which ifconfig

  25. tar

    Архиватор, используемый в Linux-системах. Вы можете сжимать как файлы, так и папки. В обоих случаях в результате вы получите архив с расширением .tar.

    Создание архива

    tar -cvf files.tar /home/user/Documents
    

    Здесь /home/user/Documents — это каталог, который необходимо сжать, в результате чего мы получим files.tar.

    В команде используются параметры –cvf, которые реализуют следующие модификации:

    c – создает новый файл .tar;
    v – выводит подробное описание процесса сжатия;
    f – имя файла.

    Если вы хотите добиться ещё большего сжатия, создайте архив .tar.gz.

    tar -cvzf files.tar.gz /home/user/Documents
    

    разархивировать файлы

    Команду tar также можно использовать для извлечения файлов. Следующая команда извлечет файлы в текущий каталог:

    tar -xvf files.tar
    

    Если вы хотите распаковать файлы в другой каталог, используйте опцию -C. Например:

    tar -xvf files.tar -C /home/user/files/
    

    Аналогичную команду можно использовать для распаковки файлов .tar.gz:

    tar -xvf files.tar.gz
    
  26. chmod

    Предназначена для изменения прав доступа к файлам и каталогам в Unix-подобных операционных системах.

    Разрешения можно задавать двумя способами: * Числом * Символами

    В данном формате права доступа задаются не символами rwx, как описано выше, а трехзначным числом. Каждая цифра числа означает определенный набор прав доступа.

    Первая цифра используется для указания прав доступа для пользователя.
    Вторая цифра для группы.
    Третья для всех остальных.

    Число Разрешения Символьное обозначение
    0 разрешения отсутствуют ---
    1 x — запуск --x
    2 w — изменение -w-
    3 x+w — запуск+изменение -wx
    4 r — чтение r--
    5 r+x — чтение+запуск r-x
    6 r+w — чтение+изменение rw-
    7 r+w+x — чтение+изменение+запуск rwx
    chmod 764 myfile.txt
    

    Это означает (см. таблицу выше), что для файла myfile.txt мы устанавливаем права доступа 764, которые означают:

    7 — права для владельца-пользователя. Владелец файла может читать, изменять и запускать файл (r+w+x).
    6 — права для группы. Пользователи, которые принадлежат группе могут читать и изменять файл (r+w).
    4 — права для всех остальных. Все остальные могут только читать файл (r).

    Если записать 764 с помощью символов (см. таблицу), то мы получим: «rwxrw-r-».

    В таблице ниже приведены некоторые часто используемые значения числовых значений прав доступа:

    Числовое обозначение “rwx”-обозначение Описание
    400 -r-------- Владелец файла может только читать файл. Для всех остальных все действия с файлом запрещены.
    644 -rw-r–r– Все пользователи могут читать файл. Владелец может изменять файл.
    660 -rw-rw---- Владелец и группа могут читать и изменять файл. Для всех остальных все действия с файлом запрещены.
    664 -rw-rw-r– Все могут читать файл. Владелец и группа могут изменять.
    666 -rw-rw-rw- Все могут читать и изменять файл.
    700 -rwx------ Владелец может читать, изменять и запускать файл. Для всех остальных все действия с файлом запрещены.
    744 -rwxr–r– Все могут читать файл. Владелец может также изменять и запускать файл.
    755 -rwxr-xr-x Все могут читать и запускать файл. Владелец может также изменять файл.
    777 -rwxrwxrwx Все пользователи могут читать, изменять и редактировать файл.
  27. chown

    Служит для изменения владельца файлов, каталогов, ссылок.

    Базовый синтаксис:

    chown [OPTIONS] USER[:GROUP] FILE(s)
    

    USER это имя пользователя или идентификатор пользователя (UID) нового владельца,
    GROUP имя новой группы или идентификатор группы (GID)
    FILE(s) имя одного или нескольких файлов, каталогов или ссылок.

    Используйте команду ls -l, чтобы узнать, кому принадлежит файл или какая группа.

  28. ps

    Одна из самых простых и в то же время часто используемых программ для просмотра списка процессов в Linux.

    Вывод всех процессов

    ps -A
    ИЛИ
    ps -e
    

    Отображение пользовательских запущенных процессов

    ps -x
    
  29. kill

    Для отправки сигналов процессам.

    Используется для:

    • Чтобы остановить любой автоматизированный процесс
    • Чтобы остановить процесс, который был запущен случайно
    • Чтобы остановить процесс, который потребляет много памяти
    • Чтобы принудительно остановить любой процесс, запущенный в Linux
    • Чтобы остановить фоновый процесс

    убить процесс

    Чтобы убить процесс с определённым PID, используйте следующую команду:

    kill 63771
    

    PID можно узнать используя команду ps

  30. free

    Показывает объём свободной и уже используемой памяти(оперативной и swap).

    total - это число представляет собой общий объем памяти, который может использоваться приложениями.
    used - использованная память Он рассчитывается как:used = total - free - buffers - cache
    free - Свободная / Неиспользуемая память.
    shared - этот столбец можно игнорировать, так как он не имеет смысла. Это здесь только для обратной совместимости.
    buff / cache - объединенная память, используемая буферами ядра, кешем страниц и слэбами. / эта память может быть восстановлена ​​в любое время, если это необходимо приложениям. Если вы хотите, чтобы буферы и кеш отображались в двух отдельных столбцах, используйте эту -w опцию.
    available - оценка объема памяти, доступной для запуска новых приложений без замены.

  31. ip

    Позволяет выполнять настройку сетевой подсистемы и является заменой таких утилит, как ifconfig, route, arp.

    Синтаксис ip команды следующий:

    ip [ OPTIONS ] OBJECT { COMMAND | help }
    

    Показать информацию обо всех IP-адресах

    ip addr show
    

    Отображение информации об одном сетевом интерфейсе

    ip addr show dev eth0
    

    Назначьте IP-адрес интерфейсу

    sudo ip address add 192.168.1.10/24 dev eth0
    

    Удалить IP-адрес с интерфейса

    sudo ip address del 192.168.1.10/24 dev eth0
    

    Отображение информации о сетевых интерфейсах

    ip link show 
    или
    ip link show dev eth0
    

    включить/отключить интерфейс

    ip link set eth0 up
    ip link set eth0 down
    

    Показать таблицу маршрутизации

    ip route
    

    Добавить новый маршрут

    Чтобы добавить новую запись в таблицу маршрутизации, используйте route add команду, а затем имя сети или устройства.

    Добавим маршрут к 192.168.1.0/24 через шлюз в 192.168.1.1

    ip route add 192.168.1.0/24 via 192.168.1.1
    

    Добавим маршрут к 192.168.121.0/24, который может быть достигнут на устройстве eth0.

    ip route add 192.168.121.0/24 dev eth0
    

    Удалить маршрут

    Следующая команда удалит маршрут по умолчанию:

    ip route del default
    

    Удалите маршрут для 192.168.1.0/24 через шлюз в 192.168.1.1

    ip route add 192.168.1.0/24 via 192.168.1.1
    
  32. uname

    Утилита, выводящая информацию об операционной системе.

    Без дополнительных параметров она выдаст только название ядра. Чтобы получить всю возможную системную информацию, введите:

    uname -a
    
  33. ping

    Используется для проверки доступности удаленного хоста в основном. Удаленным хостом может быть любое устройство подключенное к компьютерной сети.

    эта команда даёт возможность выполнять и другие диагностические задачи в том числе:

    • измерение времени за которое общаются два хоста;
    • выявление IP адреса конкретного хоста, как в локальной сети, так и в глобальной
    • она может быть частью bash скрипта для автоматической проверки сетевого устройства
    • проверка связи с конкретным устройством.

    Синтаксис команды следующий:

    ping [options] [destination]
    

    -c: Позволяет указать количество пакетов для отправки.
    -s: Позволяет изменять размер пакета по умолчанию.
    -v: Отображает текущее состояние выполнения команды.
    -w: Указывает в секундах время завершения команды.
    -I: Позволяет указать интерфейс, с которого будут идти запросы.
    -i: указывает интервал между отправкой пакетов.

    Примеры команды:

    ping 1.1.1.1
    ping -c 5 1.1.1.1
    ping -w 5 1.1.1.1
    ping -i 0.5 1.1.1.1
    ping -s 100 1.1.1.1