Команда 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 дистрибутивах
- airmon-ng — команда для перевода Wi-Fi адаптера в режим мониторинга
- airodump-ng — команда для прослушивания и захвата Wi-Fi трафика
- alias — команда, позволяющая создавать более краткие или более привычные псевдонимы для часто используемых команд
- aplay — команда для проигрывания несжатых звуковых файлов
- apropos — команда, позволяющая осуществлять поиск по именам и описаниям страниц руководств
- apt-get — команда для управления пакетами программного обеспечения в дистрибутивах, основанных на Debian
- ar — команда для работы с архивами формата ar, а также создания статических библиотек
- arch — команда для получения информации об архитектуре центрального процессора, для которой собрана система
- arp — команда для осуществления манипуляций с ARP-кэшем системы
- at — команда для планирования исполнения команд в заданное время
- awk — команда для извлечения указанных слов и осуществления других манипуляций со строками
B
- b2sum —команда для вычисления контрольной суммы файла в соответствии с алгоритмом BLAKE2 и ее проверки
- badblocks — команда для поиска и исправления поврежденных секторов на жестких дисках
- banner — команда для вывода текста в формате ASCII-арта
- base32 — команда для кодирования данных в соответствии со стандартом Base32
- base64 — команда для кодирования данных в соответствии со стандартом Base64
- basename — команда для получения имен директорий и файлов на основе путей к ним
- bash — популярная командная оболочка
- beep — команда для генерации звуковых сигналов
- bg — команда для исполнения процессов в фоновом режиме
- biosdecode — команда для чтения структур BIOS
- blkid — команды для получения информации об идентификаторах блочных устройств
- bunzip2 — команда для декомпрессии файла, созданного с помощью команды bzip2
- bzip2 — команда для компрессии файла со средней степенью сжатия
C
- cal — команда для вывода календаря в терминале
- cat — команда для получения строк через стандартный поток ввода или из файла и вывода их через стандартный поток вывода или записи в файл
- cd — команда для смены текущей директории
- cdda2wav — команда для копирования треков с аудио-CD в файлы формата wav
- cdrecord — команда для записи CD с данными и аудио
- chattr — команда для изменения атрибутов файла
- chcpu — команда для управления состоянием центральных процессоров, установленных в ПК
- chfn — команда для изменения информации о пользователе
- chgrp — команда для изменения группы пользователей, владеющей файлом
- chmem — команда для активации/деактивации блоков физической оперативной памяти, установленной в ПК
- chmod — команда для изменения прав доступа к файлу
- chown — команда для изменения пользователя, владеющего файлом
- chpasswd — команда для смены паролей одного или нескольких пользователей системы
- chroot — команда для изменения корневой директории файловой системы
- chsh — команда для изменения стандартной командной оболочки текущего пользователя
- cksum — команда для подсчета контрольных сумм файлов
- clear — команда для очистки терминала
- cmp — команда для побайтового сравнения произвольных файлов
- comm — команда для сравнения текстовых файлов с отсортированными строками
- compress — команда для компрессии файла со средней степенью сжатия
- cp — команда для копирования файлов
- cpio — команда для упаковки файлов в архивы и извлечения их из архивов форматов cpio и tar
- crontab — команда для модификации файлов конфигурации службы cron
- curl — команда для загрузки файлов из сети в неинтерактивном режиме
- cut — команда для вывода определенных столбцов из файла, отделенных с помощью определенного символа
- cvs — команда для работы с репозиториями исходного кода cvs
D
- date — команда для вывода или установки текущей даты и времени
- dd — команда для побайтового копирования данных с диска в файл или наоборот
- dd_rescue — команда для быстрого восстановления максимального объема данных с поврежденных носителей
- deluser — команда, упрощающая удаление учетных записей пользователей в основанных на Debian дистрибутивах
- df — команда для вывода информации о свободном дисковом пространстве
- diff — команда для вывода различий между двумя файлами
- diff3 — команда для вывода различий между тремя файлами
- dig — команда для вывода ответов сервера доменных имен на пользовательские запросы
- dirname — команда для удаления имени элемента файловой системы из полного пути к нему
- dirs — команда для получения доступа к списку сохраненных директорий
- dirsplit — команда для создания списков файлов, умещающихся на накопители заданного объема
- disown — команда для отказа от исполняющейся задачи (удаления идентификатора процесса из таблицы отслеживания). Благодаря ей даже после закрытия командной оболочки задача будет успешно исполняться
- dmesg — команда для чтения сообщений ядра ОС
- dmidecode — команда для чтения таблицы DMI (SMBios) с информацией об устройствах компьютера
- dnf — команда для управления пакетами программного обеспечения в дистрибутивах, основанных на RHEL
- du — команда для вывода информации об объеме дискового пространства, заполненном укзанным файлом или директорией
E
- e2freefrag — команда для вывода информации о свободном пространстве файловых систем ext2/ext3/ext4
- e4defrag — команда для дефрагментации файловых систем ext4
- echo — команда для вывода строки/значения
- eject — команда для извлечения съемных носителей
- emacs — текстовый редактор (с большим количеством функций)
- env — команда для вывода списка переменных окружения
- ethtool — команда дляизменения низкоуровневых параметров сетевых карт
- exit — команда для завершения процесса командной оболочки с заданным кодом
- expand — команда для замены символов табуляции на символы пробела в текстовых файлах
- export — команда для установки переменной окружения в рамках текущей сессии командной оболочки bash или sh
F
- factor — команда для вывода простых множителей целых чисел
- fdisk — команда для работы с разделами жесткого диска
- fg — команда для перевода исполняющегося фонового процесса в обычный режим
- file — команда для определения типа файла
- find — команда для поиска файлов в зависимости от их имен, размеров, меток времени модификации и других атрибутов
- findfs — команда для поиска файловых систем по меткам и идентификаторам UUID
- findmnt — команда для поиска точек монтирования файловых систем
- finger — команда для вывода информации о пользователях локальной и удаленных систем
- fold — команда для вывода содержимого текстовых файлов с ограничением длин выводимых строк
- free — команда для отслеживания состояния оперативной памяти
- ftp — команда для загрузки файлов по протоколу FTP
- fuser — команда для идентификации процессов, работающих с файлами и сокетами
G
- g++ — команда для компиляции кода на языке C++
- gawk — команда для поиска и замены текста в файлах
- gcc — команда для компиляции кода на языке C
- getopts — команда для разбора параметров сценария командной оболочки
- grep — команда для поиска последовательностей символов в файлах или выводе других команд
- groupadd — команда для добавления группы пользователей в систему
- groupdel — команда для удаления группы пользователей из системы
- groupmod — команда для изменения параметров группы пользователей
- groups — команда для вывода списка групп пользователей, в которых состоит текущий пользователь
- gunzip — команда для декомпрессии файла, созданного с помощью утилиты gzip
- gzip — команда для компрессии файла с низкой степенью сжатия
H
- halt — команда для прекращения работы центрального процессора компьютера
- hardlink — команда для замены дубликатов файлов на жесткие ссылки
- hash — команда для доступа к кэшу путей к исполняемым файлам командной оболочки
- head — команда для вывода заданного количества строк с начала файла
- hd — команда для вывода содержимого файла в классическом шестнадцатеричном формате (символьная ссылка на hexdump)
- hexdump — команда для вывода содержимого файла в шестнадцатеричном формате
- history — команда для вывода истории команд, выполненных с помощью командной оболочки bash
- host — команда для вывода ответов сервера доменных имен на пользовательские запросы
- hostid — команда для вывода числового идентификатора системы
- hostname — команда для вывода имени узла, ассоцированного с компьютером
- hwinfo — команда для вывода информации об используемом аппаратном обеспечении
I
- id — команда для вывода идентификаторов текущего пользователя и групп, в которых он состоит
- ifconfig — команда для вывода информации обо всех сетевых устройствах
- iconv — команда для смены кодировки символов текстовых файлов
- info — команда для вывода информации об указанной команде
- install — команда для автоматизации установки файлов программного обеспечения в систему
- ionice — команда для изменения класса планирования и приоритета ввода/вывода процесса
- iptables — команда для вывода информации о текущей конфигурации межсетевого экрана
- iptraf — команда для интерактивного мониторинга локальной сети
- isoinfo — команда для вывода информации о файловой системе ISO9660 без монтирования
- isosize — команда для вывода информации о размере файловой системы ISO9660 без монтирования
J
- jobs — команда для получения списка всех задач, исполняющихся в фоновом режиме (процессов)
K
- kill — команда для принудительного завершения исполнения процесса
- killall — команда для принудительного завершения исполнения всех процессов с заданным именем
- killall5 — команда для принудительного завершения исполнения всех процессов из состава System V
L
- last — команда для просмотра журнала пользовательских сессий
- lastb — команда для просмотра журнала неудачных входов в систему
- lastlog — команда для просмотра информации о времени последнего входа каждого из пользователей в систему
- ldconfig — команда для обновления кэша динамического линковщика
- ldd — команда для вывода списка разделяемых библиотек, необходимых для корректной работы приложения
- less — команда для постраничного вывода содержимого текстовых файлов с возможностью прокрутки и поиска
- link — команда для создания жестких ссылок на файлы
- ln — команда для создания символьных и жестких ссылок на файлы
- locate — команда для поиска файлов на компьютере с предварительной индексацией ФС
- logname — команда для вывода имени текущего пользователя без учета эффективного идентификатора
- look — команда для поиска строк в текстовых файлах
- ls — команда для вывода списка файлов из заданной директории
- lsattr — команда для вывода атрибутов файлов
- lsb_release — команда для получения информации о дистрибутиве и его соответствии стандарту LSB
- lshw — команда для получения списка использующегося аппаратного обеспечения
- lslogins — команда для получения информации о входах пользователей в систему
- lsmem — команда для получения информации о физической оперативной памяти, установленной в ПК
- lsmod — команда для получения списка загруженных модулей ядра ОС
- lsof — команда для получения списка открытых файлов и принимающих соединения сокетов
- lspci — команда для получения списка всех устройств с интерфейсом PCI
- lsusb — команда для получения списка всех устройств с интерфейсом USB
M
- make — команда для компиляции программного обеспечения
- man — команда для получения информации о заданной команде, библиотечной функции или системном вызове
- md5sum — команда для вычисления контрольной суммы файла в соответствии с алгоритмом md5 и ее проверки
- minicom — команда для управления устройством посредством интерфейса последовательного порта
- mkdir — команда для создания директории
- mkfifo — команда для создания именованных программных каналов
- mkfs — команда для создания файловой системы на устройстве
- mkisofs — команда для создания файлов образов оптических дисков (ISO-файлов)
- mknod — команда для создания файлов устройств и именованных программных каналов
- mkpasswd — команда для генерации хэшей паролей
- mkswap — команда для создания файлов и разделов подкачки
- mktemp — команда для создания временных файлов и директорий
- modinfo — команда для получения информации о модулях ядра ОС
- more — команда для отображения начальных строк текстового файла с возможностью прокрутки и поиска
- mount — команда для подключения файловой системы устройства к корневой файловой системе
- mscompress — команда для компрессии файлов в режиме совместимости с утилитами COMPRESS.EXE и EXPAND.EXE
- msexpand — команда для декомпрессии файлов в режиме совместимости с утилитами COMPRESS.EXE и EXPAND.EXE
- mv — команда для перемещения файла (или его переименования)
N
- netcat — команда для передачи произвольных данных по сети
- netstat — команда для получения информации о принимающих соединения сокетах и открытых портах
- nice — команда для изменения приоритетов процессов
- nl — команда для содержимого текстовых файлов с нумерацией строк
- nm — команда для вывода списка имен функций объектного файла
- nmap — команда для сканирования сети
O
- objdump — команда для вывода информации об объектных файлах
- openssl — команда для создания криптографических сертификатов и выполнения других аналогичных действий
P
- passwd — команда для изменения пароля пользователя
- pidof — команда для получения идентификатора процесса с заданным именем (символьная ссылка на killall5)
- 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 — команда для отслеживания пути сетевого пакета по сети
- tree — команда для вывода древовидного представления файловой системы
- tac — команда для вывода строк из файла в обратном порядке (противоположном утилите cat)
- tune2fs — команда для изменения параметров файловых систем ext2/ext3/ext4
U
- ulimit — команда для вывода информации о лимитах ресурсов текущего пользователя
- umount — команда для отключения файловой системы заданного устройства
- uname — команда для вывода информации о версии ядра операционной системы
- uniq — команда для удаления повторяющихся строк из текстового файла
- unlink — команда для удаления ссылки на элемент файловой системы
- 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