Обзор основных команд системы UNIX
═ В этом разделе описываются основные, наиболее употребительные команды системы UNIX, включая и те, которые встречались в предыдущих разделах.
══ Отметим, что опции команд обычно начинаются с символа -, и обычно после одного символа - можно указать сразу несколько опций. Например, вместо команды ls -l -F можно ввести команду ls -lF.
В данном разделе не будут даваться все опции для всех команд. Многие опции большинства команд пользователям никогда не потребуются. Для того, чтобы получить полный список опций для каждой команды, можно использовать команду man.
Также обращаем ваше внимание, что в качестве аргументов этих команд могут выступать списки имён файлов или каталогов. Например, аргументами команды cp выступают имена файлов, которые будут копироваться. Список копируемых файлов замыкается именем файла (или каталога), куда будут копироваться файлы. При копировании более чем одного файла в конце должно стоять имя каталога.
exit
завершить исполнение оболочки
Синтаксис:
exit [[код_зав]]
Семантика: exit завершает исполнение оболочки с кодом возврата (0–255), указанным в
[код_зав]
. Перехват exit командой trap выполняется до завершения оболочки, если только exit выполняется не из этой команды trap. Если n не указана, код возврата равен коду возврата последней выполненной команды. При выполнении exit из trap последней командой считается команда, выполненная непосредственно до выполнения trap.
cal
вывести календарь
Синтаксис:
cal [[[месяц]]год]
Семантика: cal выводит на стандартный вывод календарь, используя юлианское летосчисление для дат с 1 января 1 г. по 2 сентября 1752 г. и григорианское — с 14 сентября 1752 г. по 31 декабря 9999 г.
Аргументы: месяц — отображаемый месяц указывается десятичным числом с 1 (январь) по 12 (декабрь). По умолчанию – текущий месяц. Год — отображаемый год указывается десятичным числом с 1 до 9999. По умолчанию – текущий год.
date
вывести или установить дату и время
Синтаксис:
date [-u] [+формат]
;
date [-u ммддччмм] [[[сс]]гг]
Семантика: date выводит дату и время. Поданная с операндом в формате даты, date пытается установить время и дату. Операнд, начинающийся с + устанавливает формат вывода данных.
Ключ: -u — выполнить команду, как если бы переменная TZ (часовой пояс) была установлена в UTC0 или GMT0 (время по Гринвичу).
Аргументы: +формат — если указан формат, каждый спецификатор формата заменяется при выводе на соответствующее значение. Вывод всегда завершается символом новой строки. Поддерживаются спецификаторы %a (краткое название дня недели), %A (название дня недели), %b, %h (краткое название месяца), %B (название месяца), %с (дата и время), %C (век в двузначном представлении), %d (день месяца в двузначном представлении), %D (дата в формате мм/дд/гг), %e (день месяца в одно- или двузначном представлении), %H (час дня в 24-часовом двузначном представлении), %I (час дня в 12-часовом двузначном представлении), %j (номер дня в году), %m (номер месяца в двузначном представлении), M (минуты в двузначном представлении), %n (конец строки), %p (знак утра или пополудни), %r (час дня в двенадцатичасовом представлении со знаком утра или пополудни), %S (секунды в двузначном представлении), %t (табуляция), %T (время в формате ЧЧ:ММ:СС в 24-часовом представлении), %u (порядковый номер дня недели (Пн.=1), %U (порядковый номер недели в году при неделе, начинающейся в воскресенье), %V (номер недели в году при неделе, начинающейся в понедельник), %w (номер дня недели, начинающейся с воскресенья), %W (номер недели, начинающейся в понедельник), %x (полное представление даты), %X (полное представление времени), %y (год в двузначном представлении), %Y (год в одно- или двузначном представлении), %Z (часовой пояс), %% (процент).
Переменные: TZ — часовой пояс, в котором выводится или устанавливается дата.
Вывод: если формат не указан, дата выводится в формате +%a %b %e %H:%M:%S %Z %Y.
man
вывести системную документацию
Синтаксис:
man [-k имя...]
Семантика: man выводит информацию о каждом из перечисленных операндов.
Ключ:
[-k]
— интерпретировать операнды как ключевые слова для поиска в базе кратких описаний и вывести строки, в которых содержатся эти слова.
Аргументы: имя — ключевое слово или имя команды.
Переменные: PAGER — используемый фильтр постраничного вывода.
echo
вывести аргументы
Синтаксис:
echo [строка...]
Семантика: echo выводит свои аргументы после раскрытия специальных символов в стандартный вывод, завершая вывод символом новой строки.
Аргументы: строка — строка, подлежащая выводу. В строке после раскрытия спецсимволов оболочки раскрываются следующие символы: \a — звуковой сигнал, \b — пробел, \c — подавить вывод символа новой строки, \f — перевод страницы, \n — символ конца строки, \r — символ возврата каретки, \t — табуляция, \v — вертикальная табуляция, \\ — обратная косая черта, \0код — символ с восьмеричным кодом «код».
Стандартный вывод: между аргументами выводятся пробелы.
touch
изменить временные атрибуты доступа и модификации файлов
Синтаксис:
touch [-acm] [ [[-r справ_файл] | [-t time]файл...] ]
Семантика: touch изменяет атрибуты времени последней модификации или времени последнего доступа файлов, или (по умолчанию) оба. Значение атрибута указывается аргументом ключа -t или заимствуется у файла, указанного в качестве аргумента ключа -r. Если оно не указано, используется текущее время.
Если файлы не существуют, они создаются.
Ключи: -a — изменить время доступа, -c — не создавать несуществующих файлов, -m — изменить время модификации, -r справ_файл — заимствовать атрибут у файла справ_файл; -t время — использовать вместо текущего указанное время в формате [[ВВ]ГГ]ММДДччмм[.сс], где ММ — номер месяца, ДД — день месяца, чч — час дня, мм — минуты, ВВ — первые две цифры года, ГГ — последние две цифры года, сс — секунды.
Аргументы: файл — имя файла.
ls
вывести содержимое каталога
Синтаксис:
ls [-CFRacdilqrtu1] [[-H] | [-L]] [-fgmnopsx] [файл...]
Семантика: Для каждого операнда, именующего файл типа иного, нежели каталог или ссылка на каталог, ls выводит имя и требуемую ключами информацию. Для каждого операнда, именующего каталог или ссылку на каталог, ls выводит имена и требуемую ключами информацию о каждом файле, содержащемся в этом каталоге. Если операнды не указаны, ls выводит информацию о файлах в текущем каталоге. Для ссылок на каталоги выводится информация о каталоге, если даны ключи -d, -F или -l и не даны ключи -H или -L, и информация о файлах в каталоге, если не даны ключи -d, -F или -l или даны ключи -H или -L.
Важнейшие ключи: -R — выводить рекурсивно информацию о подкаталогах; -a — включить информацию о скрытых файлах (файлах с именами, начинающимися на точку), -l («эль») — выводить информацию в «длинном» формате; -p — выводить после имён каталогов «/»; -t — отсортировать в порядке времени изменения.
Аргументы: файл — имя файла.
Переменные: COLUMNS — количество столбцов на терминале; TZ — часовой пояс.
Вывод: по умолчанию выводится по одной записи в строке. -l — выводятся тип и права файла, количество ссылок, имя владельца, имя группы, длина файла, дата и время, имя файла.
rm
удалить записи о файлах
Синтаксис:
rm [-fiRr] [файл...]
Семантика: rm удаляет запись в каталоге для каждого операнда за исключением файлов . или .. в любом каталоге и за исключением (если не даны ключи -r, -R) каталогов.
Ключи: -f — не запрашивать подтверждения; -i — запрашивать подтверждение; -r, -R — рекурсивно удалять содержимое указанных каталогов.
Аргументы: файл — имя файла.
Вывод ошибок: стандартный вывод ошибок используется для вывода запросов на подтверждение удаления файлов (-i).
mkdir
создать каталог
Синтаксис:
mkdir [-p] [-m права] [каталог...]
Семантика: mkdir создаёт перечисленные каталоги.
Аргументы: каталог — создаваемый каталог.
rmdir — удалить каталоги
Синтаксис:
rmdir [-p] [каталог...]
Семантика: rmdir удаляет записи, соответствующие указанным пустым каталогам.
Аргументы: каталог — удаляемый каталог.
cp
копировать файлы
Синтаксис:
cp [-fip] [исх_файл] [цел_файл]
;
cp [-fip] [исх_файл...] [каталог]
;
cp [-fip] [-R] [[-H] | [-L] | [-P]] [-fip] [исх_файл...] [каталог]
;
cp [-fip] [-r] [[-H] | [-L] | [-P]] [-fip] [исх_файл...] [каталог]
;
Семантика: первая синтаксическая форма характеризуется двумя файлами, ни один из которых не должен быть существующим каталогом. cp копирует исх_файл в цел_файл. Если исх_файл — символическая ссылка, копируется целевой файл этой ссылки.
Вторая синтаксическая форма характеризуется двумя или более операндами, отсутствием ключей -R или -r и неприменимостью первой формы. Исходные файлы не должны быть каталогами, а каталог должен быть существующим каталогом. cp копирует исходные файлы в указанный каталог под именами, совпадающими с краткими именами исходных файлов.
Третья и четвёртая форма характеризуется двумя или более операндами и ключами -r или -R. cp копирует все указанные файлы, а также рекурсивно каталоги с их содержимым в каталог.
Важнейшие ключи: -i — запрашивать подтверждение перед копированием в существующие файлы; -p — сохранять по возможности времена изменения и доступа к файлу, владельца и группу, права доступа; -R, -r — рекурсивно копировать содержимое каталогов.
Аргументы: исх_файл — исходный файл; цел_файл — целевой файл; каталог — целевой каталог.
Стандартный вывод ошибок: стандартный вывод ошибок используется для вывода запросов на подтверждение перезаписи существующих файлов (-i).
mv
переместить файлы
Синтаксис:
mv [-fi] [исх_файл...] [цел_файл]
;
mv [-fi] [исх_файл...] [каталог]
;
Семантика: в первой синтаксической форме, характеризующейся тем, что последний операнд не является ни каталогом, ни символической ссылкой на каталог, mv перемещает исх_файл в цел_файл.
Во второй синтаксической форме cp копирует исходные файлы в указанный каталог под именами, совпадающими с краткими именами исходных файлов.
Ключи: -f — не запрашивать подтверждения перезаписи существующих файлов; -i — запрашивать подтверждение перезаписи существующих файлов.
Аргументы: исх_файл — исходный файл; цел_файл — целевой файл; каталог — целевой каталог.
Стандартный вывод ошибок: стандартный вывод ошибок используется для вывода запросов на подтверждение перезаписи существующих файлов (-i).
echo
вывести аргументы
Синтаксис:
echo [[строка...]]
Семантика: echo выводит свои аргументы после раскрытия специальных символов в стандартный вывод, завершая вывод символом новой строки.
Аргументы: строка — строка, подлежащая выводу. В строке после раскрытия спецсимволов оболочки раскрываются следующие символы: \a — звуковой сигнал, \b — пробел, \c — подавить вывод символа новой строки, \f — перевод страницы, \n — символ конца строки, \r — символ возврата каретки, \t — табуляция, \v — вертикальная табуляция, \\ — обратная косая черта, \0код — символ с восьмеричным кодом «код».
Стандартный вывод: между аргументами выводятся пробелы.
cat
вывести содержимое файлов
Синтаксис:
cat [-u] [файл...]
Семантика: cat последовательно выводит содержимое файлов.
Ключ: -u — читать и выводить файлы побайтно (по умолчанию — построчно).
Аргументы: файл — выводимый файл. Если файл не указан, читается стандартный ввод. Если в списке файлов присутствует имя -, вместо этого файла читается стандартный ввод.
Реализация: в большинстве систем ключ -u не реализован.
chmod — изменить права на файл
Синтаксис:
chmod [-R] [режим] [файл ...]
Семантика: chmod изменяет биты режима доступа к каждому указанному файлу в соответствии с указанным режимом. Изменить режим доступа к файлу может только процесс с действующим идентификатором пользователя, совпадающим с владельцем файла, или привилегированный процесс.
Ключ: -R — рекурсивно изменять режим доступа к файлам, расположенным в указанных каталогах.
Аргументы: режим — устанавливаемый режим доступа (в rwx- или числовой нотации); файл — имя файла.
umask
вывести или установить маску прав доступа
Синтаксис:
umask [-S] [маска]
Семантика: umask устанавливает маску прав вновь создаваемых в окружении текущей оболочки файлов в соответствии с указанным значением. Если операнд маска не указан, umask выводит текущую маску.
Ключ: -S — вывести маску в rwx-нотации.
Операнд: маска — маска прав в rwx- или числовой нотации.
ps
вывести состояние процессов
Синтаксис:
ps [-aA] [-defl] [-G список] [-o формат...] [-p список] [-t список] [-U список] [-g список] [-n список] [-u список]
Семантика: ps выводит информацию о процессах в рамках собственных привилегий. По умолчанию выводится информация о процессах с теми же действующим UID и управляющим терминалом, что и у подающего команду пользователя.
Основные ключи: -a — вывести информацию о процессах, ассоциированных с терминалами; -A — вывести информацию о всех процессах; -f — вывести «полный» список; -l — вывести «длинный» список; -o формат — вывести список в указанном формате; -p список — вывести информацию о процессах с перечисленными в списке PID; -u список — вывести информацию о процессах с перечисленными идентификаторами или именами пользователей.
bg
перевести задание на задний план
Синтаксис:
bg [идентификатор ...]]
Семантика: bg возобновляет выполнение приостановленных процессов на заднем плане.
Операнд: идентификатор — PID ведущего процесса задания или номер задания, предварённый знаком %.
fg
перевести задание на передний план
Синтаксис:
fg [идентификатор ...]
Семантика: fg возобновляет выполнение приостановленных процессов на переднем плане или переводит процессы заднего плана на передний.
Операнд: идентификатор — PID ведущего процесса задания или номер задания, предварённый знаком «%».
jobs
вывести состояние заданий в текущем сеансе
Синтаксис:
jobs [[-l] | [-p]] [идентификатор...]
Семантика: jobs выводит состояние заданий в окружении текущей оболочки.
Ключи: -l («эль») — вывести полную информацию (номер задания, текущее задание, идентификатор группы, состояние и команду) для каждого задания; -p — вывести только идентификатор ведущего процесса каждого задания.
Операнд: идентификатор — PID ведущего процесса задания или номер задания, предварённый знаком %.Если операнд отсутствует, выводится информация о всех заданиях.
kill
прекратить исполнение процесса или передать ему сигнал
Синтаксис:
kill [-s] [сигнал] [идентификатор] [...]
;
kill [-l] [статус_завершения]
;
kill [-сигнал] [идентификатор] [...]
;
kill [-номер_сигнала] [идентификатор] [...]
Семантика: kill посылает указанный сигнал указанным процессам.
Ключи: -l («эль») — вывести список поддерживаемых сигналов; -s сигнал — послать сигнал с указанным именем; -сигнал — эквивалент -s сигнал; -номер_сигнала — послать сигнал с указанным номером.
Аргументы: идентификатор — идентификатор процесса или предварённый знаком % номер задания; статус_завершения — код завершения, возвращаемый завершённым процессом.
set
установить или сбросить ключи и позиционные параметры, вывести список установленных переменных
Синтаксис:
set [-abCefmnuvx] [-h] [-o ключ] [аргумент...]
;
set [+abCefmnuvx] [+h] [+o ключ] [аргумент...]
;
set [аргумент...]
;
set [-o]
;
set [+o]
Семантика: будучи подана без аргументов, set выводит имена и значения всех переменных оболочки, разделённые знаком =, по одной на каждой строке.
Будучи подана с аргументами, set устанавливает или сбрасывает ключи и позиционные параметры текущей оболочки. Эта функциональность в настоящем курсе не рассматривается.
env
установить окружение для издаваемой команды
Синтаксис:
env [-i] [имя=значение] [...] [утилита [[аргумент...]]]
Семантика: будучи подана без аргументов, env выводит имена и значения всех экспортированных переменных, разделённые знаком =, по одной на каждой строке.
Будучи подана с аргументами, env модифицирует текущее окружение и запускает в нем указанную команду. Эта функциональность в настоящем курсе не рассматривается.
export
сделать переменные экспортируемыми
Синтаксис:
export [имя[=значение]...]
;
export [-p]
Семантика: оболочка устанавливает атрибут экспортируемости переменным, перечисленным в команде export, что включает их в окружение далее издаваемых команд. При указании ключа -p команда выводит выводит имена и значения всех экспортированных переменных, разделённые знаком = (если переменная установлена) или только их имена (если переменная сброшена), по одной на каждой строке, предваряя их цепочкой export.
Ключ: -p — вывести список экспортированных переменных и их значений.
nl
пронумеровать строки
Синтаксис:
nl [-p] [-b тип] [-d ограничитель] [-f тип] [-h тип] [-i приращение] [-l номер] [-n формат] [-s разделитель] [-v нач_номер] [-w ширина] [файл]
Семантика: nl читает строки из указанного файла (или стандартного ввода, если файл не указан) и выводит их в стандартный вывод, предваряя номерами.
Команда интерпретирует текст как последовательность логических страниц. Нумерация строк возобновляется на каждой странице. Страница состоит из верхнего колонтитула, тела и нижнего колонтитула (каждая из этих частей может быть пустой), строки в которых могут нумероваться независимо.
Начало каждого из разделов указывается строкой, не содержащей ничего, кроме цепочки \:\:\: (начало верхнего колонтитула), \:\: (начало тела) или \: (начало нижнего колонтитула). При отсутствии таких строк файл считается содержащим единственную страницу.
Ключи: ключи команды nl позволяют указать различные параметры нумерации и формата вывода, и в настоящем курсе не рассматриваются.
Операнд: файл — имя файла. При отсутствии операнда строки вводятся из стандартного ввода.
sort
сортировать, слить или проверить сортировку строк в файле
Синтаксис:
sort [-m] [-o вывод] [-bdfinru] [-t символ] [-k опр_ключа] [...] [файл...]
;
sort [-c] [-bdfinru] [-t символ] [-k опр_ключа] [файл]
Семантика: sort выполнит одно из следующего: 1) отсортирует строки всех указанных файлов и выведет результат в указанный файл вывод; 2) сольёт построчно (предварительно отсортированные) файлы и выведет результат в указанный файл вывод или 3) проверит единственный указанный файл на сортировку. Сравнения будут выполняться на основании указанных ключей или на основании строки в целом (вплоть до символа новой строки исключительно), с учётом порядка сортировки, определённого текущей локалью.
Ключи: ключи sort позволяют задавать параметры сортировки, слияния или проверки, и в настоящем курсе не рассматриваются. При отсутствии ключей строки ввода сортируются в прямом алфавитном порядке.
Операнд: файл — имя файла. Если файл не указан, сортируется стандартный ввод.
tee
дублировать стандартный ввод
Синтаксис:
tee [-ai] [file...]
Семантика: tee копирует стандартный ввод в стандартный вывод, дублируя его в один или более файлов.
Ключи: -a — добавить вывод в конец существующих файлов; -i — игнорировать сигнал SIGINT.
Операнд: файл — имя выходного файла.