Команды Linux

Команда Linux в общем случае представлена либо исполняемым файлом, либо встроенной функцией командной оболочки. Например, cd, ls, echo и firefox являются командами. Действия, выполняемые в результате исполнения большинства этих команд, полностью описываются в рамках командной строки за исключением последней команды firefox. Более сложные команды сразу же после запуска взаимодействуют с пользователем в интерактивном режиме и называются приложениями. Многие, но не все приложения осуществляют интерактивное взаимодействие с пользователем посредством графического интерфейса или GUI.

Общая информация о командах

Команды могут вводиться пользователем сразу же после вывода командной оболочкой приветствия. В приведенных ниже примерах символ $, с которого начинается каждая из команд, является символом приветствия командной оболочки, который не должен вводиться пользователем. При необходимости исполнения команд от лица пользователя root в качестве символа приветствия командной оболочки будет использоваться символ #.

$ ls

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

$ ls -l /bin

В данном случае «-l /bin» является парой аргументов (отделенных друг от друга, а также от самой команды с помощью символов пробелов), причем «-l» является аргументом, который изменяет поведение команды ls (данный аргумент позволяет команде выводить подробный листинг содержимого директории), а «/bin» - просто указывает директорию, с которой должна работать команда ls.

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

$ cd /bin; ls

Да, это две команды в одной строке. Вы также можете разделить одну длинную команду на несколько строк, экранировав символ переноса строки с помощью символа обратного слэша.

$ cd очень_длинное_имя_директории_
которое_заканчивается_в_данной_строке

Еще один способ запуска последовательности команд заключается в использовании механизма условного запуска, активируемого в командной оболочке Bash с помощью последовательности символов «&&» и позволяющего исполнить вторую команду лишь в том случае, если первая команда вернет код завершения 0 (то есть, завершится успешно).

$ cd /bin && ls

При использовании обычного разделителя команд («;») даже в случае некорректной смены текущей директории с помощью первой команды, вторая команда ls будет вызвана и просто выведет список файлов из текущей рабочей директории. Ну а при использовании оператора для условного запуска команд («&&») команда ls не будет вызываться в случае некорректного завершения работы команды cd.

По аналогии оператор «||» позволяет выполнить вторую команду только в том случае, если первая команда вернула ненулевой код завершения (то есть, завершилась некорректно).

$ cd /bing 2>/dev/null || echo 'Не удалось!'

Данная команда предназначена для перехода в директорию под названием «bing» в том случае, если таковая существует. Но так как ее, скорее всего, не существует, ведь буква «g» добавлена в конец имени по ошибке, будет выполняться вторая команда, предназначенная для вывода сообщения об ошибке, отличающееся от стандартного.

Получение информации о командах из локальной документации

Система Linux должна содержать документацию в формате страниц руководства (man-страниц) и, возможно, информационных страниц (info-страниц). Если вы знаете имя команды, о которой необходимо получить информацию, команда

$ man <имя команды>

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

$ apropos <тема>

или команду

$ man -k <тема>

для поиска соответствующих команд.

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

$ info <имя команды>

позволит получить информацию об интересующей вас утилите.

К тому же, многие команды поддерживают такие аргументы, как «-h», «-H», «-help», «--help» или их комбинации. К сожалению, некоторые команды выполняют какие-либо действия вместо вывода справочной информации при использовании таких аргументов, как «-h» и «-H», поэтому вам следует быть готовым и к нестандартным ситуациям.

Также дополнительные файлы с документацией на английском языке могут располагаться в таких директориях, как «/usr/doc», «/usr/local/doc» и «/usr/src/linux/Documentation» (документация ядра Linux) и некоторых других.

Доступ к информации

Страницы руководств являются монолитными и нередко очень длинными, из-за чего на них сложно найти интересующую информацию. При этом утилита man автоматически запускает пейджер, позволяющий искать произвольный текст на странице с помощью сочетаний клавиш, аналогичных используемым в текстовом редакторе vi.

Информационные страницы обычно разделены на небольшие разделы и содержат гиперссылки на другие страницы. При этом вам нужно знать хотя бы в минимальном объеме сочетания клавиш для навигации по ним. Эти сочетания клавиш аналогичны сочетаниям клавиш, используемым в текстовом редакторе Emacs. Кроме того, вы можете экспортировать все дерево информационных страниц в единый текстовый файл и просматривать его в рамках пейджера с помощью команды

$ info --subnodes <имя команды> | less

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

Список команд

Ниже приведен список команд с их краткими описаниями.

A

  • adduser — команда, упрощающая создание учетных записей пользователей в основанных на Debian дистрибутивах
  • alias — команда, позволяющая создавать более краткие или более привычные псевдонимы для часто используемых команд
  • apropos — команда, позволяющая осуществлять поиск по именам и описаниям страниц руководств
  • apt-get — команда для управления пакетами программного обеспечения в дистрибутивах, основанных на Debian
  • arch — команда для получения информации об архитектуре центрального процессора, для которой собрана система
  • at — команда для планирования исполнения команд в заданное время
  • awk — команда для извлечения указанных слов и осуществления других манипуляций со строками

B

  • badblocks — команда для поиска и исправления поврежденных секторов на жестких дисках
  • bash — популярная командная оболочка
  • beep — команда для генерации звуковых сигналов
  • bg — команда для исполнения процессов в фоновом режиме
  • bunzip2 — команда для декомпрессии файла, созданного с помощью команды bzip2
  • bzip2 — команда для компрессии файла со средней степенью сжатия

C

  • cat — команда для получения строк через стандартный поток ввода или из файла и вывода их через стандартный поток вывода или записи в файл
  • cd — команда для смены текущей директории
  • chgrp — команда для изменения группы пользователей, владеющей файлом
  • chmod — команда для изменения прав доступа к файлу
  • chown — команда для изменения пользователя, владеющего файлом
  • chroot — команда для изменения корневой директории файловой системы
  • chsh — команда для изменения стандартной командной оболочки текущего пользователя
  • clear — команда для очистки терминала
  • cmp — команда для побайтового сравнения произвольных файлов
  • comm — команда для сравнения текстовых файлов с отсортированными строками
  • cp — команда для копирования файлов
  • cpio — команда для упаковки файлов в архивы и извлечения их из архивов форматов cpio и tar
  • crontab — команда для модификации файлов конфигурации службы cron
  • cut — команда для вывода определенных столбцов из файла, отделенных с помощью определенного символа
  • cvs — команда для работы с репозиториями исходного кода cvs

D

  • date — команда для вывода или установки текущей даты и времени
  • dd — команда для побайтового копирования данных с диска в файл или наоборот
  • dd_rescue — команда для быстрого восстановления максимального объема данных с поврежденных носителей
  • df — команда для вывода информации о свободном дисковом пространстве
  • diff — команда для вывода различий между двумя файлами
  • diff3 — команда для вывода различий между тремя файлами
  • dig — команда для вывода ответов сервера доменных имен на пользовательские запросы
  • disown — команда для отказа от исполняющейся задачи (удаления идентификатора процесса из таблицы отслеживания). Благодаря ей даже после закрытия командной оболочки задача будет успешно исполняться
  • dnf — команда для управления пакетами программного обеспечения в дистрибутивах, основанных на RHEL
  • du — команда для вывода информации об объеме дискового пространства, заполненном укзанным файлом или директорией

E

  • echo — команда для вывода строки/значения
  • eject — команда для извлечения съемных носителей
  • emacs — текстовый редактор (с большим количеством функций)
  • env — команда для вывода списка переменных окружения
  • exit — команда для завершения процесса командной оболочки с заданным кодом
  • expand — команда для замены символов табуляции на символы пробела в текстовых файлах
  • export — команда для установки переменной окружения в рамках текущей сессии командной оболочки bash или sh

F

  • fdisk — команда для работы с разделами жесткого диска
  • fg — команда для перевода исполняющегося фонового процесса в обычный режим
  • file — команда для определения типа файла
  • find — команда для поиска файлов в зависимости от их имен, размеров, меток времени модификации и других атрибутов
  • ftp — команда для загрузки файлов по протоколу FTP
  • fuser — команда для идентификации процессов, работающих с файлами и сокетами

G

  • g++ — команда для компиляции кода на языке C
  • gawk — команда для поиска и замены текста в файлах
  • gcc — команда для компиляции кода на языке C
  • getopts — команда для разбора параметров сценария командной оболочки
  • grep — команда для поиска последовательностей символов в файлах или выводе других команд
  • groupadd — команда для добавления группы пользователей в систему
  • groupdel — команда для удаления группы пользователей из системы
  • groupmod — команда для удаления группы пользователей из системы
  • groups — команда для вывода списка групп пользователей, в которых состоит текущий пользователь
  • gunzip — команда для декомпрессии файла, созданного с помощью утилиты gzip
  • gzip — команда для компрессии файла с низкой степенью сжатия

H

  • halt — команда для отключения компьютера
  • head — команда для вывода первых n строк из файла
  • hexdump — команда для вывода содержимого файла в шестнадцатеричном формате
  • history — команда для вывода истории команд, выполненных с помощью командной оболочки bash
  • hostname — команда для вывода имени компьютера
  • hwinfo — команда для вывода информации об используемом аппаратном обеспечении

I

  • id — команда для вывода идентификаторов текущего пользователя и групп, в которых он состоит
  • ifconfig — команда для вывода информации обо всех сетевых устройствах
  • info — команда для вывода информации об указанной команде
  • iptables —  команда для вывода информации о текущей конфигурации межсетевого экрана
  • iptraf — команда для интерактивного мониторинга локальной сети

J

  • jobs — команда для получения списка всех задач, исполняющихся в фоновом режиме (процессов).

K

  • kill — команда для принудительного завершения исполнения процесса
  • killall — команда для принудительного завершения исполнения всех процессов с заданным именем

L

  • ldd — команда для вывода списка разделяемых библиотек, необходимых для корректной работы приложения
  • less — команда для отображения конечных строк текстового файла с возможностью прокрутки и поиска
  • ln — команда для создания ссылки на файл
  • ls — команда для вывода списка файлов из заданной директории
  • lshw — команда для получения списка использующегося программного обеспечения
  • lsmod — команда для получения списка загруженных модулей ядра ОС
  • lsof — команда для получения списка открытых файлов и принимающих соединения сокетов
  • lspci — команда для получения списка всех устройств с интерфейсом PCI
  • lsusb — команда для получения списка всех устройств с интерфейсом USB

M

  • make — команда для компиляции программного обеспечения
  • man — команда для получения информации о заданной команде
  • md5sum — команда для вычисления контрольной суммы файла в соответствии с алгоритмом md5 и ее проверки
  • mkdir — команда для создания директории
  • mkfs — команда для создания файловой системы на устройстве
  • minicom — команда для управления устройством посредством интерфейса последовательного порта
  • more — команда для отображения начальных строк текстового файла с возможностью прокрутки и поиска
  • mount — команда для подключения файловой системы устройства к корневой файловой системе
  • mv — команда для перемещения файла (или его переименования)

N

  • netcat — команда для передачи произвольных данных по сети
  • netstat — команда для получения информации о принимающих соединения сокетах и открытых портах
  • nice — команда для изменения приоритетов процессов
  • nm — команда для вывода списка имен функций объектного файла
  • nmap — команда для сканирования сети

O

  • objdump — команда для вывода информации об объектных файлах
  • openssl — команда для создания криптографических сертификатов и выполнения других аналогичных действий

P

  • passwd — команда для изменения пароля пользователя
  • ping — команда для проверки работоспособности компьютера, подключенного к сети
  • ps — команда для вывода списка исполняющихся в текущий момент процессов
  • pwd — команда для вывода информации о текущей рабочей директории

Q

  • quota — команда для управления ограничениями ресурсов для отдельных пользователей

R

  • read — команда для чтения клавиатурного ввода
  • reboot — команда для перезагрузки компьютера
  • rename — команда для переименования файла
  • rm — команда для удаления файла
  • rmdir — команда для удаления пустой директории
  • route — команда для управления таблицей маршрутизации системы
  • rpm — команда для осуществления манипуляций с файлами RPM
  • rsync — команда для синхронизации содержимого директорий по сети

S

  • scp — команда для безопасного копирования файлов по сети
  • screen — команда для разделения окна терминала на несколько частей
  • sed — команда для осуществления манипуляций с потоками символов (нередко используется в сценариях командной оболочки)
  • setenv — команда для изменения значения переменной окружения в командной оболочке csh
  • shuf — команда для выполнения случайных перестановок
  • shutdown — команда для отключения/перезагрузки компьютера
  • sleep — команда для ожидания в течение заданного промежутка времени
  • ssh — команда для управления (исполнения команд) удаленными системами по сети
  • su — команда для смены учетной записи пользователя
  • sudo — команда для исполнения команды от лица другого пользователя (обычно пользователя root)

T

  • tail — вывод лишь n последних строк заданного текстового файла
  • tar — команда для упаковки файлов в архивы и извлечения их из архивов формата tar
  • tcpdump — команда для мониторинга TCP-трафика
  • tee — команда для демультиплексирования вывода произвольной команды
  • time — команда для подсчета времени, необходимого для завершения выполнения произвольной команды
  • top — команда для отображения списка процессов, наиболее интенсивно использующих ресурсы центрального процессора
  • touch — команда для создания файла или обновления метки времени последнего доступа к существующему файлу
  • traceroute — команда для отслеживания пути сетевого пакета по сети
  • tac — команда для вывода строк из файла в обратном порядке (противоположном утилите cat)
  • tune2fs — команда для изменения параметров файловых систем ext2/ext3/ext4

U

  • ulimit — команда для вывода информации о лимитах ресурсов текущего пользователя
  • umount — команда для отключения файловой системы заданного устройства
  • uname — команда для вывода информации о версии ядра операционной системы
  • uniq — команда для удаления повторяющихся строк из текстового файла
  • unzip — команда для распаковки архива формата ZIP
  • uptime — команда для вывода информации о времени, в течение которого ваш компьютер функционирует
  • useradd — команда для создания новой учетной записи пользователя
  • userdel — команда для удаления учетной записи пользователя
  • usermod — команда для изменения параметров учетной записи пользователя

V

  • vgcreate — команда для создания групп менеджера виртуальных томов
  • vgdisplay — команда для вывода списка существующих групп менеджера виртуальных томов
  • vgs — команда для вывода информации о существующих группах менеджера виртуальных томов
  • vgscan — команда для поиска групп менеджера виртуальных томов
  • vim — команда для запуска мощного текстового редактора с неочевидным управлением
  • vmstat — команда для отображения информации об использовании файла подкачки и оперативной памяти

W

  • w — команда для вывода имен пользователей, осуществивших вход в систему
  • wc — команда для подсчета слов, строк и символов в текстовом файле
  • wget — команда для загрузки файлов из сети в неинтерактивном режиме
  • whereis — команда для поиска бинарных файлов, исходных кодов и страниц руководств, связанных с заданной командой
  • which — команда для вывода пути, по которому находится исполняемый файл с заданным именем
  • who — команда для вывода имен пользователей, которые осуществили вход в систему
  • whoami — команда для вывода эффективного имени пользователя

X

  • xargs — команда для передачи потока стандартного ввода в качестве параметра
  • xosview — команда для вывода информации об использовании центрального процессора/оперативной памяти/жесткого диска

Y

  • yes — команда для циклического вывода строки

Z

  • zcat — команда для применения утилиты cat к файлам, сжатым с помощью утилиты gzip
  • zcmp — команда для применения утилиты cmp к файлам, сжатым с помощью утилиты gzip
  • zdiff — команда для применения утилиты diff к файлам, сжатым с помощью утилиты gzip
  • zgrep — команда для применения утилиты grep к файлам, сжатым с помощью утилиты gzip
  • zip — команда для добавления файлов в архив формата ZIP
  • zless — команда для применения утилиты less к файлам, сжатым с помощью утилиты gzip
  • zmore — команда для применения утилиты more к файлам, сжатым с помощью утилиты gzip