Text
                    GNU-утилиты оболочки
===============================================================
=
GNU shutils 1.12

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~
- 2 -


1. Введение Прежде всего данное руководство является неполным. В частности, раздел 'stty' не соответствует стандарту руководств GNU, для чего необходима его существенная переработка и добавление дополнительной информации. Руководство расчитано на подготовленного пользователя и предназначено в основном для напоминания. Поэтому, если Вы заинтересовались в совершенствовании данного руководства, то Вам будет оказана поддержка со стороны объединения GNU. Некоторые из описываемых программ используются только при написании командных файлов оболочки. Эти утилиты в основном составляют командный язык оболочки. Другие программы используются чаще в интерактивном режиме. Утилиты оболочки GNU (в основном) соответствуют стандарту POSIX.2. Найденные ошибки следует направлять по адресу: bug-gnu-utils@prep.ai.mit.edu. Не забудьте указать номер версии, архитектуру компьютера, названия файлов и любую другую информацию, которая помогла бы устранению ошибки. Распространяемое руководство первоначально написано (в формате Unix man pages) David'ом MacKenzie, а затем переработано Jim'ом Meyering. Franc,ois Pinard переписал руководство в формате Texinfo. Karl Berry провёл индексирование, переработку и редактирование. Richard Stallman использовал свою неоценимую проницательность в процессе подготовки руководства.
- 3 2. Общие опции В каждой из утилит имеются свои опции. Здесь описаны опции, используемые во всех программах (каждая GNU программа использует эти опции). Многие программы используют параметры с некоторыми особенностями. В таких случаях опции '--help' и '--version' обрабатываются, если они являются единственными параметрами в командной строке. '--help' Отображение на экран подсказки и всех используемых опций с последующим выходом. '--version' Отображение версии программы с последующим выходом. 3. Печать текстовой информации В этом разделе описаны команды, используемые для вывода текстовых строк. 3.1 'echo': Печать текстовой строки Синтаксис: echo [ OPTION ]... [ STRING ]... Эта команда передаёт параметры STRING на стандартный вывод, разделяя пробелом каждый из них и автоматически переводя строку после последнего.
- 4 Утилита принимает следующие опции (см. также раздел Общие опции): '-n' Используется для исключения перевода строки после последнего параметра STRING. '-e' Применяется при использовании следующих backslash-escape последовательностей в параметрах STRING: '\a' звуковой сигнал. '\b' перевод курсора на позицию назад. '\c' запрещает вывод следующего символа новой строки. '\f' прогон страницы. '\n' новая строка. '\r' возврат каретки. '\t' горизонтальная табуляция. '\v' вертикальная табуляция. '\\' символ '\'. '\NNN' символ, ASCII кодом которого является восьмеричное значение NNN. Если NNN является недопустимым значением, то используется само значение NNN. - 5 3.2 'printf': Форматирование и вывод данных.
Синтаксис: printf FORMAT [ ARGUMENT ]... Эта команда выводит строку FORMAT, используя последовательности, начинающиеся с '%' и '\', таким же образом, как они обрабатываются в C функции 'printf'. При необходимости, все параметры ARGUMENT преобразуются для их использования в выводе строки FORMAT. В команде 'printf' есть одна дополнительная последовательность '%b', которая печатает строку-аргумент, выполняя интерпретацию последовательностей, начинающихся с символа '\' таким же образом, как если бы они встречались в строке FORMAT. Команда 'printf' интерпретирует последовательности '\0ooo' (если ООО является числом, содержащим от нуля до трёх восьмеричных цифр) и '\xhhh' (если HHH является числом, содержащим от одной до трёх шестнадцатиричных цифр) для указания выводимого символа в виде восьмеричного или шестнадцатиричного кода. Дополнительная escape-последовательность '\c' используется для отмены вывода оставшейся строки. Используемые опции: '--help' и '--version' (см. раздел Общие опции). 3.3 'yes': Вывод строки до прерывания программы Команда 'yes' выводит на экран параметры командной строки, разделённые пробелом, за которыми следует символ newline, до тех пор, пока процесс не будет уничтожен. Если никаких параметров не указано, то по умолчанию выводится символ 'y', за которым следует символ newline, также до прерывания процесса. Используемые опции: '--help' и '--version'.
- 6 - 4. Условия В этом разделе рассматриваются команды, основная особенность которых заключается в том, что после их выполнения системе передаётся код возврата. Поэтому они часто используются в конструкциях условий или в качестве последней команды в конвейере (потоке). 4.1 'false': Пустая операция (ложь). Эта команда используется для установки кода возврата равным 1, означающим неудачное завершение программы. Она может использовться в командных файлах (скриптах оболочки), где требуется указать, что программа была неудачно завершена. Используемые опции: '--help' и '--version' (см. раздел Общие опции). 4.2 'true': Пустая операция (истина). Используется для установки кода возврата равным 0, означающим, что программа завершена успешно. Может использоваться в командных файлах (скриптах оболочки), где требуется указать, что программа завершена успешно, хотя, возможно, встоенная команда оболочки ':' (двоеточие) будет выполнена быстрее. Используемые опции: '--help' и '--version' (см. раздел Общие опции).
- 7 4.3 'test': Проверка типа файла и сравнение значений. Выдаёт код возврата, равный 0 (истина) или 1 (ложь), в зависимости от результата вычисления выражения EXPR. Каждая часть выражения должна быть отдельным параметром. Команда содержит операторы проверки состояния файла, строковые операторы и операторы сравнения чисел. Так как в большинстве оболочек названия команд совпадают, то при использовании некоторах из них, как в командных файлах (скриптах) так и в командной строке, результат их выполнения может несколько отличаться от описанного здесь. Кроме описанных ниже опций, в команде 'test' могут использоваться отдельные опции '--help' и '--version'. Также допускается использование в качестве параметра отдельного аргумента, при этом команда возвращает значение 'истина', в случае если аргумент не пустой. Определение типа файла: Определение прав доступа: Определение характеристик файла: Тестирование строк: Сравнение числовых выражений: Связки выражений: -[bcdfhLpSt] -[gkruwxOG] -e -s -nt -ot -ef -z -n = != -eq -ne -lt -le -gt ! -a -o 4.3.1 Определение типа файла Эти опции используются для определения отдельных типов файлов. '-b FILE' -ge
'Истина', если файл существует и является блочным устройством. '-c FILE' 'Истина', если FILE существует и является символьным устройством. - 8 '-d FILE' 'Истина', если FILE существует и является каталогом. '-f FILE' 'Истина', если FILE существует и является обычным файлом. '-h FILE' '-L FILE' 'Истина', если FILE существует и является символической ссылкой. '-p FILE' 'Истина', если FILE существует и является каналом. '-S FILE' 'Истина', если FILE существует и является сокетом. '-t [ FD ]' 'Истина', если файл с дескриптором FD является открытым на терминал. Если параметр FD отсутствует, то он по умолчанию принимается за 1 (стандартный вывод). 4.3.2 Определение прав доступа Эти опции используются для определения отдельных прав доступа. '-g FILE' 'Истина', если FILE существует и бит 'set-group-id' установлен. '-k FILE' 'Истина', если бит "sticky" установлен. '-r FILE' 'Истина', если FILE существует и доступен для чтения.
'-u FILE' 'Истина', если FILE существует и бит 'set-user-id' установлен. - 9 '-w FILE' 'Истина', если FILE существует и доступен для записи. '-x FILE' 'Истина', если FILE существует и может быть выполнен. '-O FILE' 'Истина', если FILE существует и его владельцем является текущий пользователь. '-G FILE' 'Истина', если FILE существует и принадлежит к группе текущего пользователя. 4.3.3 Определение характеристик файла Эти опции используются для определения других характеристик файла. '-e FILE' 'Истина', если FILE существует. '-s FILE' 'Истина', если FILE существует и его размер не равен нулю. 'FILE1 -nt FILE2' 'Истина', если FILE1 новее чем FILE2 (в соответствии с датой модификации файла). 'FILE1 -ot FILE2' 'Истина', если FILE1 старее чем FILE2 (в соответствии с датой модификации файла). 'FILE1 -ef FILE2'
'Истина', если FILE1 и FILE2 имеют одинаковые номера устройства и inode, то есть являются жесткими ссылками друг к другу. - 10 4.3.4 Строковые проверки Следующие опции используются для проверки строк. Строки обычно не заключаются в кавычки, хотя это может потребоваться при передаче команде символов, которые имеют какое-либо специальное значение для оболочки, например, пробелы. '-z STRING' 'Истина', если длина строки STRING равна нулю. '-n STRING' 'STRING' 'Истина', если длина строки STRING больше нуля. 'STRING1 = STRING2' 'Истина', если строки равны. 'STRING1 != STRING2' 'Истина', если строки не равны. 4.3.5 Сравнение числовых выражений Аргументами могут быть как числа (возможно отрицательные), так и специальные выражения вида '-l STRING', значением которого является длина выражения STRING. `ARG1 -eq ARG2' `ARG1 -ne ARG2' `ARG1 -lt ARG2' `ARG1 -le ARG2' `ARG1 -gt ARG2' `ARG1 -ge ARG2' Данные выражения возвращают значение 'истина', если ARG1 равен, не равен, меньше, меньше или равен, больше или больше или равен
чем ARG2 соответственно. - 11 Например, test -1 -gt -2 && echo yes => yes test -l abc -gt 1 && echo yes => yes test 0x100 -eq 1 error--> test: integer expression expected before -eq 4.3.6 Связки выражений Здесь описаны стандартные логические связки. '! EXPR' 'Истина', если значение EXPR - 'ложь'. 'EXPR1 -a EXPR2' 'Истина', если значения обоих выражений тоже 'истина'. 'EXPR1 -o EXPR2' 'Истина', если значение хотя бы одного из выражений 'истина'. 4.4 'expr': Вычисление значения выражения Команда 'expr' вычисляет значение выражения и выдаёт результат на стандартный вывод. Каждый знак выражения должен быть отдельным аргументом. Операндами могут быть как числа так и строки. 'expr' преобразует каждый опреранд в строку или целое значение, в зависимости от используемой операции. Строки обычно не заключаются в кавычки, хотя это можно сделать во избежание неправильной интерпретации оболочкой некоторых символов со специальным значением, например, пробелы.
Операторы могут быть заданы как инфиксные символы или как - 12 префиксные ключевые слова. Круглые скобки могут использоваться для обычной группировки отдельных членов выражения (однако необходимо заключать их в кавычки во избежание неправильной интерпретации оболочкой). Возвращаемые значения: 0 1 2 если выражение не пустое и не равно 0, если выражение либо пустое, либо равно 0, если выражение неправильное. 4.4.1 Связки выражений Здесь описаны в порядке возрастания приоритета стандартные логические связи между выражениями. '|' Подставляется первый аргумент, если он не пустой и не равен 0. В противном случае подставляется второй аргумент. '&' Подставляется первый аргумент, если он не пустой и не равен 0. В противном случае подставляется 0. `< <= = == != >= >' Производится сравнение аргументов и возвращается значение 1, если сравнение правильно и 0 в противном случае. '==' является аналогом '='. Сначала оба аргумента приводятся к числовым величинам, а затем производится сравнение. Если приведение сделать не удаётся, то аргументы сравниваются лексикографически. 4.4.2 Операции над числами Здесь описаны действия над числами и числовыми выражениями в порядке возрастания приоритета. У связок выражений более
высокий приоритет, у операций над строками более низкий. - 13 '+ -' Сложение и вычитание. Оба аргумента приводятся к числовым величинам. Если приведение сделать не удаётся, то происходит ошибка. '* / %' Умножение, деление и получение остатка от деления. Оба аргумента приводятся к числовым величинам. Если приведение сделать не удаётся, то выдаётся сообщение об ошибке. 4.4.3 Операции над строками 'STRING : REGEX' Производится подстановка по шаблону. Аргументы приводятся к строковым константам, причём второй из них рассматривается как регулярное выражение, как в grep, но с неявно приписанным оператором ^. Первый аргумент затем сопоставляется с этим регулярным выражением. Если образец подходит, и в REGEX используются символы '\(' и '\)', то оператор ':' возвращает часть строки STRING, которая сравнима с подвыражением. Иначе возвращается количество совпавших символов. Если образец не подходит, то оператор ':' возвращает пустую строку, если в REGEX использовались символы '\(' и '\)'. Иначе возвращается 0. Только первая пара символов '\(' и '\)' используется при формировании возвращаемого значения. Остальные же используются для группировки операторов регулярного выражения. 'match STRING REGEX'
Альтернативный способ подстановки по шаблону. Аналогично 'STRING:REGEX'. 'substr STRING POSITION LENGTH' Возвращается подстрока строки STRING, начинающейся с позиции POSITION и с длиной не более LENGTH. Если либо POSITION, либо LENGTH являются отрицательными числами или не числовыми величинами, то - 14 возвращается пустая строка. 'index STRING CHARSET' Возвращается позиция первого найденного символа в STRING, который соответствует первому символу из набора CHARSET. Если в строке STRING нет ни одного символа из набора CHARSET, то возвращается значение 0. 'length STRING' Возвращается длина строки STRING. Ключевые слова не могут использоваться в качестве строк. 4.4.4 Примеры использования команды 'expr' Здесь приведены несколько примеров, включающих использование специальных метасимволов оболочки. Для того чтобы прибавить 1 к значению переменной оболочки 'foo' (в Bourne-совместимых оболочках) может быть использована следующая команда: foo=`expr $foo + 1` Для отображения имени файла, содержащегося в '$fname', без пути к нему и без использования символа '/' может быть использована последовательность команд, указанных ниже. expr $fname : '.*/\(^.*\)' '^|' $fname expr abc : 'a\(.\)c' => b
expr index abcdef cz => 3 expr index index a error--> expr: syntax error - 15 5. Перенаправление Unix-оболочки обычно позволяют перенаправлять ввод и вывод команд несколькими способами. Описанная ниже команда предоставляет ещё один способ перенаправления. 'tee' Перенаправление вывода к нескольким файлам. Команда 'tee' перенаправляет стандартный ввод на стандартный вывод, а также к файлам, указанным в качестве аргументов. Эта функция используется при перенаправлении данных в канал и в отдельный файл с целью создания копии. Синтаксис: tee [ OPTION ]... [ FILE ]... Если файл, в который перенаправляются данные, не существует, то он создаётся. Если же он существует и опция '-a' не указана, то прежняя информация в файле будет заменена новой. Команда допускает следующие опции (см. также раздел Общие опции): '-a' '--append' Добавляет стандартный ввод в конец указанных файлов вместо переписывания. '-i'
'--ignore-interrupts' Игнорирует сигналы прерываний. - 16 6. Операции с именами файлов В этом разделе описаны команды, позволяющие оперировать именами файлов. 6.1 'basename': Отделяет имя файла от пути. Синтаксис: basename NAME [ SUFFIX ] Команда 'basename' удаляет все компоненты из параметра NAME, стоящие перед именем файла (включая названия каталогов). Если указан параметр SUFFIX, совпадающий с окончанием имени файла, то он также удаляется из параметра NAME. Результат выводится на стандартный вывод. Используемые опции: '--help' и '--version' (см. раздел Общие опции). 6.2 'dirname': Отделяет путь от имени файла. Синтаксис: dirname NAME Команда dirname выводит путь к имени файла (полное имя файла без компоненты, находящейся после последней косой черты),
указанного параметром NAME. Если NAME состоит только из имени файла, то dirname выводит '.' (имеется в виду текущий каталог). Используемые опции: '--help' и '--version' (см. раздел Общие опции). - 17 6.3 'pathchk': Проверка пути файла. Синтаксис: pathchk [ OPTION ]... NAME... Для каждого параметра NAME команда pathchk выдаёт сообщение при выполнении одного из следующих условий: 1. в одном из существующих каталогов в параметре NAME нет прав на поиск (выполнение). 2. длина параметра NAME больше максимально возможной длине имени файла в данной файловой системе. 3. длина одной из компонент параметра NAME, соответствующей имени существующего каталога, больше максимально возможной длине имени файла в данной файловой системе. В команде могут использоваться следующие опции: '-p' '--portability' Вместо проверки длин файлов базовой файловой системы производится проверка длины каждого имени файла и его составляющих на основе минимальных ограничений по переносимости в соответствии с соглашением
POSIX.1. Также производится проверка на соответствие символов, содержащихся в имени файла, со стандартным переносимым набором символов. Возвращаемые значения: 0 если указанные имена файлов прошли все проверки, 1 в противном случае. - 18 7. Информация о текущем контексте В этом разделе рассматриваются команды, которые позволяют отображать на экран или изменять информацию о текущем контексте, т.е. текущий каталог, установки терминала и т.д. См. также команды, описанные в следующем разделе. 7.1 'pwd': Отображение имени текущего каталога. Эта команда выводит полное имя текущего каталога, при этом каждая составляющая имени является существующим каталогом, а не символической ссылкой. Потому как эта команда является во многих оболочках встроенной, то её использование как в командных файлах, так и в интерактивном режиме, может привести к несколько другому результату, чем описанный здесь. Здесь используются только общие опции. 7.2 'stty': Отображение или изменение характеристик терминала. Если аргументы не указаны, то отображается скорость терминала (в бодах), номер дисциплины обмена по линии (на системах, которые
поддерживают данную функцию) и установки линии, которые были изменены по сравнению со значениями, установленными с помощью команды 'stty sane'. Режимы чтения и установки относятся к терминальной линии, подключенной к стандартному вводу. 'stty' допускает использование множество аргументов, позволяющих изменять состояние терминальной линии как описано ниже. Синтаксис: stty [ SETTING ]... stty [ OPTION ] - 19 Команда 'stty' допускает использование следующих опций: '-a' '--all' Отображение всех текущих установок в доступном для понимания формате. '-g' '--save' Отображение всех текущих установок в специальном формате с целью их сохранения и дальнейшего использования как строки аргументов этой же команды. Многие установки при их указании могут быть отключены путём использования перед ними символа '-'. Такие аргументы далее будут отмечены как "отключаемые" при их описании. Некоторые установки доступны не на всех системах, поддерживающих стандарт POSIX, так как они используют расширения этих систем. Такие аргументы при описании будут отмечаться как "non-POSIX". Также на
системах, не поддерживающих стандарт POSIX, некоторые установки могут быть недоступны, и в данном руководстве не представляется возможным описать все их вариации. 7.2.1 Управляющие установки 'parenb' Генерируется бит чётности при выводе и ожидается при вводе. Отключаемая опция. 'parodd' Устанавливается режим контроля по нечётности (odd parity) (контроль по четности - even parity - если опция отключена). Отключаемая опция. - 20 `cs5' `cs6' `cs7' `cs8' Устанавливается размер символа 5, 6, 7 или 8 бит. 'hup' 'hupcl' Формируется сигнал hangup, когда последний процесс закрывает терминал. Отключаемая опция. 'cstopb' Использование двух стоп-битов на один символ (один - при отключенной опции). Отключаемая опция. 'cread' Позволяет принимать ввод. Отключаемая опция. 'clocal' Запрещает использование управляющих сигналов модема.Отключаемая опция.
'crtscts' Разрешает управление потоком данных посредством сигналов RTS/CTS. Отключаемая non-POSIX опция. 7.2.2 Установки ввода 'ignbrk' Игнорирование разрывов. Отключаемая опция. 'brkint' Формирование сигнала прерывания при разрыве. Отключаемая опция. 'ignpar' Игнорирование ошибок контроля чётности. Отключаемая опция. - 21 'parmrk' Отметка ошибок контроля чётности (при помощи последовательности символов 255-0). Отключаемая опция. 'inpck' Разрешение контроля чётности вводимых данных. Отключаемая опция. 'istrip' Обнуление старшего (8-го) бита при вводе данных. Отключаемая опция. 'inlcr' Преобразование символа перехода на новую строку в символ возврата каретки. Отключаемая опция. 'igncr' Игнорирование символа возврата каретки. Отключаемая опция. 'icrnl' Преобразование символа возврата каретки в символ новой строки. Отключаемая опция.
'ixon' Разрешение управления потоком данных с помощью символов XON/XOFF (использование последовательностей CTRL-s/CTRL-Q). Отключаемая опция. 'ixoff' 'tandem' Разрешение использования стоп-символов при заполнении системного входного буфера и старт-символов, когда буфер освобождается. Отключаемая опция. 'iuclc' Преобразование прописных букв в строчные. Отключаемая non- POSIX опция. - 22 'ixany' Разрешение использования любых символов для продолжения вывода (если опция отключена, то используется только старт-символ). Отключаемая non-POSIX опция. 'imaxbel' Разрешение использования звукового сигнала для индикации переполнения буфера при поступлении нового символа. Отключаемая non-POSIX опция. 7.2.3 Установки вывода Следующие аргументы используются для установки опций вывода. 'opost' Postprocess output. Отключаемая опция. 'olcuc' Преобразование строчных букв в прописные. Отключаемая non- POSIX опция.
'ocrnl' Преобразование символа возврата каретки в симол новой строки. Отключаемая non-POSIX опция. 'onlcr' Преобразование символа новой строки в символ возврата каретки. Отключаемая non-POSIX опция. 'onocr' Запрещение вывода символа возврата каретки в первой колонке. Отключаемая non-POSIX опция. 'onlret' Представление сивола новой строки символом возврата каретки. Отключаемая non-POSIX опция. - 23 'ofill' Использование символов-заполнителей вместо синхронизирования задержек. Отключаемая non-POSIX опция. 'ofdel' Использование символов DELETE вместо символов NUL для заполнения. Отключаемая non-POSIX опция. 'nl1' 'nl0' Режим задержки символа новой сроки. Non-POSIX опция. `cr3' `cr2' `cr1' `cr0' Режим задержки символа возврата каретки. Non-POSIX опция. 'tab3' 'tab2' 'tab1' 'tab0' Режим задержки горизонтальной табуляции. Non-POSIX опция.
'bs1' 'bs0' Режим задержки символа backspace. Non-POSIX опция. 'vt1' 'vt0' Режим задержки вертикальной табуляции. Non-POSIX опция. 'ff1' 'ff0' Режим задержки символа 'прогон страницы'. Non-POSIX опция. - 24 7.2.4 Локальные установки 'isig' Использование специальных символов 'interrupt', 'quit' и 'suspend'. Отключаемая опция. 'icanon' Использование специальных символов 'erase', 'kill', 'werase' и 'rprnt'. Отключаемая опция. 'iexten' Использование non-POSIX специальных символов. Отключаемая опция. 'echo' Отображение вводимых символов. Отключаемая опция. 'echoe' 'crterase' Отображение символа backspace как последовательность символов backspacespace-backspace. Отключаемая опция. 'echok' Вывод символа новой строки после символа 'kill'. Отключаемая опция. 'echonl'
Вывод символа новой строки даже если другие символы не выводятся. Отключаемая опция. 'noflsh' Запрещение вывода мерцающих символов после вывода специальных символов 'interrupt' и 'quit'. Отключаемая опция. 'xcase' Разрешение ввода и вывода прописных букв с предшествующим вводом/выводом их строчных аналогов вместе с символом '\' при установленной опции 'icanon'. Отключаемая non-POSIX опция. - 25 'tostop' Приостановка процессов, выполняющихся в фоновом режиме, при попытке вывода на терминал. Отключаемая non-POSIX опция. 'echoprt' 'prterase' Вывод удалённых символов в обратном порядке между символами '\' и '/'. Отключаемая non-POSIX опция. 'echoke' 'crtkill' Вывод специального символа 'kill' путём удаления каждого символа в строке как указано в опциях 'echoprt' и 'echoe', вместо 'echoctl' и 'echok'. Отключаемая non-POSIX опция. 7.2.5 Комбинированные установки 'evenp' 'parity' То же, что и 'parenb -paraodd cs7'. Отключаемая опция (в этом случае то же, что и '-parenb cs8'). этом 'oddp' То же, что и 'parenb paraodd cs7'. Отключаемая опция (в
случае то же, что и '-parenb cs8'). 'nl' То же, что и '-icrnl -onlcr'. Отключаемая опция (в этом случае то же, что и 'icrnl -inlcr -igncr onlcr -ocrnl -onlret'). 'ek' Установка начальных значений для символов 'erase' и 'kill'. 'sane' То же, что и: cread -ignbrk brkint -inlcr -igncr icrnl - ixoff -iuclc -ixany imaxbel opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok - 26 -echonl -noflsh -xcase -tostop -echoprt echoctl echoke, а также устанавливаются начальные значения для специальных символов. 'cooked' То же, что и 'brkint ignpar istrip icrnl ixon opost isig icanon', к тому же устанавливаются начальные значения для символов 'eof' и 'eol' если они установлены также как символы 'min' и 'time'. Отключаемая опция (в этом случае то же, что и 'raw'). 'raw' То же, что и: -ignbrk -brkint -ignpar -parmrk -inpck istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -opost -isig -icanon -xcase min 1 time 0 Отключаемая опция (в этом случае то же, что и 'cooked'). 'cbreak' То же, что и '-icanon'. Отключаемая опция (в этом случае то же, что и 'icanon'). 'pass8' То же, что и '-parenb -istrip cs8'. Отключаемая опция (в
этом случае то же, что и 'parenb istrip cs7'). 'litout' То же, что и '-parenb -istrip -opost cs8'. Отключаемая опция (в этом случае то же, что и 'parenb istrip opost cs7'). 'decctlq' То же, что и '-ixany'. Отключаемая non-POSIX опция. 'tabs' То же, что и 'tab0'. Отключаемая non-POSIX опция (в этом случае то же, что и 'tab3'). 'lcase' 'LCASE' То же, что и 'xcase iuclc olcuc'. Отключаемая non-POSIX опция. - 27 'crt' То же, что и 'echoe echoctl echoke'. 'dec' То же, что и 'echoe echoctl echoke -ixany intr ^C erase ^? kill C-u'. 7.2.6 Специальные символы В разных системах начальные установки для специальных символов сильно варьируются. Они устанавливаются следующим образом: 'name value', где name - одно из значений, указанных ниже. Параметр value может быть задан двумя способами, один из которых это указание названия клавиши (например, ^C), а другой - указание целого значения, которое может начинаться с '0x' (шестнадцатиричный формат), '0' (восьмеричный формат) или с любой другой цифры (десятичный формат).
Для версии GNU команды 'stty' указание значения '^-' или 'undef' запрещает использование этого специального символа. (Данная функция не совместима с командой 'stty' системы Ultrix, где для запрещения использования специального символа используется значение 'u'. В GNU версии 'stty' значение 'u' интерпретируется как любое другое значение.) 'intr' Посылка сигнала interrupt. 'quit' Посылка сигнала quit. 'erase' Удаление последнего введённого символа. 'kill' Удаление строки, в которой находится курсор. - 28 'eof' Посылка символа конца файла (завершение ввода). 'eol' Конец строки. 'eol2' Дополнительный символ завершения строки. Non-POSIX опция. 'swtch' Переключение на другой уровень оболочки. Non-POSIX опция. 'start' Продолжение вывода после его остановки. 'stop' Прекращение вывода. 'susp' Посылка сигнала остановки терминала. 'dsusp'
Посылка сигнала остановки терминала после окончания ввода. Non-POSIX опция. 'rprnt' Восстановление строки в позиции курсора. Non-POSIX опция. 'werase' Удаление последнего набранного слова. Non-POSIX опция. 'lnext' Буквальная интерпретация следующего набранного символа, даже если это специальный символ. Non-POSIX опция. - 29 7.2.7 Специальные установки 'min N' Устанавливается минимальное количество вводимых символов, соответствующих значению time. Используется при установленной опции '-icanon'. 'time N' Устанавливается значение в десятых долях секунды, которое используется перед получением сигнала time out, если минимальное количество символов ещё не было введено. Используется при установленной опции '-icanon'. 'ispeed N' Устанавливается скорость ввода. 'ospeed N' Устанавливается скорость вывода. 'rows N' Передаётся информация tty драйверу о количестве строк, используемых в терминале.Non-POSIX опция. 'cols N' 'columns N' Передаётся информация tty драйверу о количестве символов в
строке, используемых в терминале. Non-POSIX опция. 'size' Выводится значения количества строк и символов в строке, используемых ядром. (Системы, в ядре которых не хранится информация о количестве строк и символов в строке, обычно используют значения переменных окружения 'LINES' и 'COLUMNS'. Однако в GNU версии команды 'stty' значения этих переменных не используются.) Non-POSIX опция. 'line N' Использовать дисциплину линии N. - 30 'speed' Выводится скорость терминала. 'N' Устанавливается значение скорости ввода и вывода терминала равное N. Значением N может быть одно из следующих: 0 50 75 110 134 134.5 150 200 300 600 1200 1800 2400 4800 9600 19200 38400 `exta' `extb'. Значение 'exta' равносильно значению 19200, значение 'extb' значению 38400. Значение 0 блокирует линию если установлена опция 'clocal'. 7.3 'printenv': Отображение переменных окружения Синтаксис: printenv [ OPTION ] [ VARIABLE ]... Если параметры VARIABLE не указаны, то выводятся значения всех переменных окружения. В противном случае выводится значение каждой указанной переменной VARIABLE, если она установлена. Если же она не установлена, то никакой информации не выводится.
Используемые опции: '--help' и '--version' (см. раздел Общие опции). Возвращаемые значения: 0 найдены все указанные переменные 1 была найдена по крайней мере одна переменная 2 произошла ошибка записи 7.4 'tty': Отображение имени файла используемого терминала на стандартный вывод Эта команда выводит имя файла терминала, подключенной к стандартному вводу. Если стандартным вводом не является терминал, то - 31 выводится сообщение 'not a tty'. Синтаксис: tty [ OPTION ]... Команда допускает использование следующих опций: '-s' '--silent' '--quiet' Возвращает значение ничего не выводя на экран. Возвращаемые значения: 0 1 2 3 стандартным вводом является терминал стандартным вводом не является терминал указаны неправильные опции произошла ошибка записи 8. Информация о пользователе В этом разделе рассматриваются команды, предоставляющие информацию о пользователе.
8.1 'id': Вывод значений uid и gid Выводит информацию об указанном пользователе или процессе, выполняющем команду, если имя пользователя не указано. Синтаксис: id [ OPTION ]... [ USERNAME ] По умолчанию, команда отображает реальный идентификатор пользователя, реальный идентификатор группы, текущий идентификатор пользователя (если отличается от реального), текущий идентификатор - 32 группы (если отличается от реального) и дополнительные идентификаторы групп. Каждому из этих числовых значений предшествует идентификационная строка, за которой следует соответствующее имя пользователя или группы, заключенное в скобки. Рассмотренные ниже опции используются для вывода только части информации, описанной выше. Также см. раздел Общие опции. '-g' '--group' Выводится только идентификатор группы. '-n' '--name' Выводится имя пользователя или группы вместо идентификатора. Используется вместе с опциями '-u', '-g' или '-G'. '-r' '--real' Выводятся реальные идентификаторы пользователя или группы, вместо текущих. Используется вместе с опциями '-u', '-g' или '-G'. '-u' '--user'
Выводится только идентификатор пользователя. 8.2 'logname': Вывод текущего имени регистрации пользователя Команда выводит имя указанного пользователя, если он найден в файле '/etc/utmp' и возвращает значение 0. Если же в этом файле нет информации об указанном пользователе, то выводится сообщение об ошибке и возвращается значение 1. Используемые опции: только '--help' и '--version'. - 33 8.3 'whoami': Вывод теущего идентификатора пользователя Команда выводит имя пользователя, соответствующее текущему идентификатору пользователя. Эта команда является аналогом 'id -un'. Используемые опции: только '--help' и '--version'. 8.4 'groups': Вывод имён групп, к которым принадлежит пользователь Эта команда выводит имена основной и дополнительных групп, к которым принадлежит пользователь USERNAME или текущий процесс, если параметр USERNAME не указан. Если указаны имена пользователей, то перед списком имён групп выводится имя пользователя. Синтаксис: groups [ USERNAME ]... Аналогом команды groups является команда 'id -Gn'. Общие Используемые опции: '--help' и '--version' (см. раздел
опции). 8.5 'users': Вывод информации о подключенных пользователях Команда 'users' выводит список имён пользователей, подключенных к системе, причём имена разделяются пробелами. Каждое имя пользователя соответствует отдельному подключению, поэтому если пользователь имеет несколько подключений, то его имя будет в списке соответствующее количество раз. Синтаксис: users [ FILE ] - 34 Если параметр FILE не указан, то информация извлекается из файла '/etc/utmp'. Если же этот параметр задан, то используется указанный файл. Обычно используется файл '/etc/wtmp'. Используемые опции: '--help' и '--version' (см. раздел Общие опции). 8.6 'who': Вывод списка подключенных пользователей Синтаксис: who [ OPTION ] [ FILE ] [ am i ] Если кроме опций не указано никаких аргументов, то выводится следующая информация о всех пользователях, подключенных к системе: login имя, имя консоли, время подключения к системе и имя удалённого компьютера, с которого было произведено подключение или имя X-терминала.
Если кроме опций указан один аргумент, то команда who выводит информацию, содержащуюся в указанном файле, вместо файла '/etc/utmp'. Обычно для просмотра списка пользователей, которые были подключены, используется файл '/etc/wtmp'. Если кроме опций указаны два аргумента, то выводится информация только о пользователе, запускавшем команду. Команда who допускает использование следующих опций: '-m' Аналогично использованию команды 'whoami'. '-q' '--count' Выводится только login имена и количество подключенных пользователей. Имеет приоритет над остальными опциями. - 35 '-s' Игнорируется. Предусмотрено для совместимости с другими версиями команды. '-i' '-u' '--idle' В позиции после времени подключения выводится количество часов и минут, в течении которых пользователь бездействовал. '.' означает, что пользователь был занят в последнюю минуту. 'old' означает, что пользователь бездействовал более чем 24 часа. '-H' '--heading' В самом начале списка выводится строка с названиями полей. `-w' `-T' `--mesg' `--message'
`--writable' После имени каждого пользователя отображается символ, показывающий статус обработки сообщений пользователем: '+' '-' '?' разрешается посылать сообщения запрещается посылать сообщения не удалось обнаружить терминал 9. Системная информация В этом разделе рассматриваются команды, позволяющие просматривать и изменять некоторую системную информацию. - 36 9.1 'date': Просмотр или установка даты и времени Команда 'date' без аргументов выводит текущее время и дату в формате '%c' директивы, описанном ниже. Синтаксис: date [ OPTION ]... [ +FORMAT ] date [ -u|--utc|--universal ] [ MMDDHHMM[[CC]YY][.SS] ] Если один из указанных аргументов начинается с '+', то выводится текущее время и дата (или время и дата, указанные опцией '-date', см. ниже) в формате, определённом этим аргументом, который аналогичен аргументу в функции 'strftime'. В строке формата используюемые символы вводятся без изменений, кроме директив, которые начинаются с символа '%'. Все директивы описаны ниже. По умолчанию, неиспользуемые числовые поля заполняются нулями. GNU версия программы распознаёт следующие модификаторы,
расположенные между '%' и директивами. Это дополнения GNU версии программы. '-' (дефис) не заполнять неиспользуемые числовые поля '_' (символ подчеркивания) заполнять неиспользуемые числовые поля пробелами 9.1.1 Директивы, используемые для установки времени '%H' час (00...23) '%I' час (01...12) - 37 '%k' час (0...23) '%l' час (1...12) '%M' минута (00...59) '%p' AM или PM '%r' время в 12 часовом формате (hh:mm:ss [AP]M) '%s' секунды с 1 января 1970 года 00:00:00 всемирного времени (дополнение GNU) '%S' секунды (00...61) '%T' время в 24 часовом формате (hh:mm:ss)
'%X' локализованное представление времени (%H:%M:%S) '%Z' временная зона (например, восточное поясное время) или пустая строка, если зону нельзя определить - 38 9.1.2 Директивы, используемые для установки даты '%a' локализованные (национальные) сокращения дней недели (Sun...Sat) '%A' локализованные полные названия дней недели (Sunday...Saturday) '%b' локализованные сокращения месяцев (Jan...Dec) '%B' локализованные полные названия месяцев (January...December) '%c' локализованные дата и время (Sat Nov 04 12:02:33 EST 1989) '%d' день месяца (01...31) '%D' дата (mm/dd/yy) '%h' то же, что и %b '%j' день года (001...366)
'%m' месяц (01...12) '%U' номер недели в году, причем первый день недели воскресенье (00...53) '%w' день недели (0...6), причём 0 соответствует воскресенью - 39 '%W' номер недели в году, причём первый день недели понедельник (00...53) '%x' локализованное представление даты (mm/dd/yy) '%y' две последние цифры года (00...99) '%Y' год (1970...) 9.1.3 Директивы-символы '%%' символ '%' '%n' символ новой строки '%t' символ горизонтальной табуляции 9.1.4 Установка времени Если задан аргумент, который не начинается с символа '+', то для установки системных часов используются значения даты и времени, указанные этим аргументом (как описано ниже). Пользователь
должен обладать соответствующими привелегиями для установки системных часов. Опции '--date' и '--set' не могут быть использованы с таким аргументом. С таким аргументом может быть использована опция '--universal' для указания, что заданные время и дата соответствуют всемирному времени вместо местного времени. - 40 Аргумент должен состоять полностью из цифр, которые имеют следующее значение: MM месяц DD день месяца HH час MM минута CC первые две цифры года (необязательно) YY последние две цифры года (необязательно) SS секунды (необязательно) Опция '--set' также позволяет устанавливать системные часы (см. следующий раздел). 9.1.5 Используемые опции Команда 'date' допускает использование следующих опций (см. также раздел Общие опции): '-d DATESTR'
'--date=DATESTR' Отображается время и дата, указанные в строке DATESTR, вместо текущего значения. Строка DATESTR может быть почти любого формата. Она может содержать названия месяцев, временных зон, время суток 'am' или - 41 'pm', а также 'yesterday', 'ago', 'next' и т.д. Исходный файл 'getdate.y' позволяет проводить подобную обработку для всех утилит GNU. '-f DATEFILE' '--file=DATEFILE' Каждая строка файла DATEFILE обрабатывается также как и при использовании параметра '-d', а полученная информация о времени и дате отображается на экране. Если файл DATEFILE является символьным устройством, то используется стандартный ввод. Эта функция полезна при обработке большого количества дат, потому как нагрузка на систему при многократном выполнении команды может быть достаточно большой. '-s DATESTR' '--set=DATESTR' Текущие дата и время устанавливаются в соответствии со значением строки DATESTR (см. опцию '-d' выше). '-u' '--utc' '--universal' Отображение или установка времени и даты в соответствии с всемирным временем, вместо местного. Примеры Здесь рассмотрены несколько примеров. См. также описание опции '-d' в предыдущем разделе. Вывести дату для дня, который был два дня назад:
date --date='2 days ago' Вывести дату для дня, который будет через три месяца и один день: date --date='3 months 1 day' Вывести день Рождества текущего года: date --date='25 Dec' +%j - 42 Вывести полное название текущего месяца и дня: date '+%B %d' Но всего этого может быть не вполне достаточно, потому как для первых девяти дней месяца применение директивы '%d' приводит к добавлению нуля перед числом. Например, команда ' date -d 1may '+%B %d' ' приведёт к выводу следующего сообщения: 'May 01'. Вывести дату без нуля перед числом, состоящим из одной цифры, можно использовать модификатор '-' (дополнение GNU): date -d=1may '+%B %-d' Вывести текущие дату и время в формате, используемом многими, не совместимыми с GNU версиями date, при установке системных часов: date +%m%d%H%M%Y.%S Установить системные часы на две минуты вперёд: date --set='+2 minutes' 9.2 'uname': Вывод системной информации Команда 'uname' выводит информацию о компьютере и используемой операционной системе. Если не указано никаких опций, то используется опция '-s'. Синтаксис:
uname [ OPTION ]... Если указано несколько опций или опция '-a', то выбранная информация выводится в следующем порядке: - 43 Имя компьютера Имя узла Реализация Версия системы Компьютер Поле 'Версия системы' может содержать несколько слов. Например: bash$ uname -a => Linux haylay 1.0.4 #3 Thu May 12 18:06:34 1994 i486 В команде допускается использование следующих опций (см. также раздел Общие опции): '-a' '--all' Выводится вся ниже указанная информация. '-m' '--machine' Выводится информация об аппаратном обеспечении. '-n' '--nodename' Выводится имя узла в сети. '-r' '--release' Выводится реализация системы. '-s' '--sysname' Выводится название операционной системы. '-v' Выводится версия операционной системы.
- 44 9.3 'hostname': Просмотр или установка имени компьютера Если никаких аргументов не указано, то команда выводит текущее имя компьютера. Если же указан один аргумент, то текущее имя компьютера устанавливается в значение этого аргумента. Для выполнения этой операции необходимо наличие соответствующих прав доступа. Синтаксис: hostname [ NAME ] Используемые опции: '--help' и '--version' (см. раздел Общие опции). 10. Модификация вызова команд В этом разделе рассматриваются команды, которые в свою очередь запускают другие команды, изменяя контекст их исполнения. Например, с изменённой оболочкой, под другим пользователем и т.д. 10.1 'env': Выполнение команды с изменённым окружением 'env' запускает команду с окружением, изменённым в соответствии с указанными аргументами. Синтаксис: env [ OPTION ]... [ NAME=VALUE ]... [ COMMAND [ ARGS ]... ] env Аргументы формата 'VARIABLE=VALUE' устанавливают переменную VARIABLE в соответствующее значение VALUE. Значение VALUE может
быть пустым ('VARIABLE='). Установка переменной в пустое значение отличается от её аннулирования. - 45 Первый оставшийся аргумент указывает запускаемую команду. При её поиске используется значение переменной окружения PATH. Все оставшиеся аргументы передаются запускаемой команде в качестве параметров. Если имя команды не указано, то выводится текущее состояние окружения. Результат будет таким же, если использовать команду 'printenv' в качестве аргумента к команде 'env'. Команда 'env' допускает использование следующих опций (см. также раздел Общие опции): '-u NAME' '--unset=NAME' Переменная с именем NAME удаляется из окружения (если она была установлена). '-' '-i' '--ignore-environment' Текущее состояние окружения игнорируется и не используется при выполнении указанной команды. 10.2 'nice': Выполнение команды с изменённым приоритетом выполнения Если не указано никаких аргументов, то выводится текущее значение приоритета. В противном случае команда 'nice' запускает команду COMMAND с установленным значением приоритета. Если не задан аргумент ADJUSTMENT, то приоритет выполнения команды повышается на 10. Для указания отрицательного значения для аргумента ADJUSTMENT необходимо
наличие соответствующих прав доступа. Приоритет выполнения может варьироваться в диапазоне от -20 (наивысший приоритет) до 19 (самый низкий приоритет). Синтаксис: nice [ OPTION ]... [ COMMAND [ ARG ]... ] - 46 Поскольку эта команда является во многих оболочках внутренней, то её использование как в командных файлах, так и в интерактивном режиме, может привести к несколько другому результату, чем описанный здесь. Допускается использование следующих опций (см. также раздел Общие опции): `-n ADJUSTMENT' `-ADJUSTMENT' `--adjustment=ADJUSTMENT' Добавить значение ADJUSTMENT вместо 10 к текущему значению приоритета. 10.3 'nohup': Выполнение команды с игнорированием прерываний 'nohup' запускает указанную команду, игнорируя прерывания, поэтому команда, запущенная таким образом, остаётся работать в фоновом режиме после выхода из системы. Синтаксис: nohup COMMAND [ ARG ]... Кроме прочего, приоритет выполнения указанной программы увеличивается на 5. Если стандартным выводом является консоль, то весь вывод и ошибки перенаправляются в файл 'nohup.out'. Если данные не
могут быть добавлены в этот файл, то тогда они добавляются в файл '$HOME/nohup.out'. Если же данные не могут быть записаны и в этот файл, то команда не запускается. Если 'nohup' создаёт файл 'nohup.out' или '$HOME/nohup.out', то они создаются без права доступа к ним категорий "group" и "other". Права доступа к файлу не изменяются, если он уже существует. 'nohup' не запускает указанную команду в фоновом режиме автоматически. Для этого в конце строки нужно поместить символ '&'. - 47 Используемые опции: только '--help' и '--version'. 10.4 'su': Запуск команды с изменением идентификатора пользователя и группы Команда 'su' позволяет одному пользователю временно стать другим. Она запускает указанную команду (обычно какую-нибудь оболочку) используя реальный и текущий идентификаторы пользователя и группы, а также дополнительные идентификаторы групп указанного пользователя USER. Синтаксис: su [ OPTION ]... [ USER [ ARG ]... ] Если параметр USER не указан, то по умолчанию используется 'root'. Информация об оболочке извлекается из файла 'passwd', если там нет никаких данных об оболочке, то тогда используется файл '/bin/sh'. Если у пользователя USER существует пароль, то появляется запрос на его ввод, даже в том случае, если команда 'su' была запущена пользователем 'root'.
По умолчанию, команда 'su' не меняет текущий каталог. Она устанавливает значения переменных окружения 'HOME' и 'SHELL' равным значениям соответствующих полей в файле 'passwd'. Если пользователь USER не является 'root', то значения переменных 'USER' и 'LOGNAME' устанавливаются равными значению переменной 'USER'. По умолчанию, используемая оболочка не является login-оболочкой. Все дополнительные аргументы ARG передаются оболочке, как дополнительные параметры. GNU-версия команды su не обрабатывает /bin/sh или какую- либо другую оболочку особенным образом (например, устанавливая argv[0] в '-su', передавая аргумент -c некоторым оболочкам, и т.д.) - 48 - 'su' может быть скомпилирована с поддержкой 'syslog' для отметки неудачных и, возможно, удачных попыток (в случае если система поддерживает эту функцию). Однако, в GNU версии не проверяется, входит ли пользователь в группу 'wheel' или нет, см. ниже. Команда допускает использование следующих опций (см. также раздел Общие опции): `-c COMMAND' `--command=COMMAND' Команда COMMAND передаётся оболочке для выполнения, а затем происходит возврат, вместо запуска интерактивной оболочки. '-f' '--fast' Оболочке передаётся опция '-f'. Применение этой опции имеет смысл только если используемыми оболочками являются 'csh' или 'tcsh', для которых опция '-f' предотвращает обработку файла начальной загрузки
('.cshrc'). При использовании этой опции вместе с Bourneподобными оболочками запрещается подстановка имени файла по шаблону, что скорее всего не будет полезным. '-' '-l' '--login' Сделать оболочку login оболочкой. Это означает следующее. Удалить из окружения все переменные, кроме 'TERM', 'HOME' и 'SHELL' (установка которых описана выше), а также 'USER' и 'LOGNAME' (которые установлены даже для пользователя 'root' как описано выше) и установить значение переменной 'PATH' в значение по умолчанию. Сменить текущий каталог на личный каталог пользователя. Поместить символ '-' перед именем оболочки для того, чтобы сделать файлы начальной загрузки доступными для чтения. - 49 `-m' `-p' `--preserve-environment' Не изменять значения переменных оболочки 'HOME', 'USER', 'LOGNAME' или 'SHELL'. Запустить оболочку, указанную в переменной 'SHELL' вместо той, которая указана в файле 'passwd', даже если пользователь, запускающий команду 'su' не является root'ом и используемая оболочка является ограниченной. Ограниченной оболочкой называется оболочка, имя которой не находится в файле '/etc/shells' или встроенном списке оболочек (в случае, если этот файл не существует). См. также опции '--login' и '--shell'. '-s SHELL' '--shell=SHELL'
Запустить оболочку SHELL, вместо указанной в файле 'passwd', даже если пользователь, запускающий команду, не является root'ом и используемая оболочка является ограниченной (см. опцию '-m'). 11. Формирование задержек 11.1 'sleep': Формирование задержки на заданный промежуток времени Эта команда формирует задержку на промежуток времени, определяемый суммой значений параметров командной строки. Синтаксис: sleep [ NUMBER[smhd] ]... Каждый из аргументов является числом, за которым следует необязательный элемент, выражающий единицу измерения, которой по умолчанию являются секунды. Элементом может быть один из следующих символов: - 50 's' секунды 'm' минуты 'h' часы 'd' дни Используемые опции: '--help' и '--version' (см. раздел Общие опции). 1. Введение
2 2. Общие опции 3 3. Печать текстовой информации 3 3.1 'echo': Печать текстовой строки 3 3.2 'printf': Форматирование и вывод данных. 5 3.3 'yes': Вывод строки до прерывания программы 5 4. Условия 6 4.1 'false': Пустая операция (ложь). 6 4.2 'true': Пустая операция (истина). 6 4.3 'test': Проверка типа файла и сравнение значений. 7 4.3.1 Определение типа файла 7 4.3.2 Определение прав доступа 8 4.3.3 Определение характеристик файла 9 4.3.4 Строковые проверки 10 4.3.5 Сравнение числовых выражений 10 4.3.6 Связки выражений 11 4.4 'expr': Вычисление значения выражения 11 4.4.1 Связки выражений 12 4.4.2 Операции над числами 12 4.4.3 Операции над строками 13 4.4.4 Примеры использования команды 'expr' 14 5. Перенаправление 15
6. Операции с именами файлов 16 6.1 'basename': Отделяет имя файла от пути. 16 6.2 'dirname': Отделяет путь от имени файла. 16 6.3 'pathchk': Проверка пути файла. 17 7. Информация о текущем контексте 18 7.1 'pwd': Отображение имени текущего каталога. 18 7.2 'stty': Отображение или изменение характеристик терминала. 18 7.2.1 Управляющие установки 19 7.2.2 Установки ввода 20 7.2.3 Установки вывода 22 7.2.4 Локальные установки 24 7.2.5 Комбинированные установки 25 7.2.6 Специальные символы 27 7.2.7 Специальные установки 29 7.3 'printenv': Отображение переменных окружения 30 7.4 'tty': Отображение имени файла используемого терминала на 30 8. Информация о пользователе 31 8.1 'id': Вывод значений uid и gid 31 8.2 'logname': Вывод текущего имени регистрации пользователя 32 8.3 'whoami': Вывод теущего идентификатора пользователя 33 8.4 'groups': Вывод имён групп, к которым принадлежит пользовател 33 8.5 'users': Вывод информации о подключенных пользователях 33 8.6 'who': Вывод списка подключенных пользователей 34
9. Системная информация 35 9.1 'date': Просмотр или установка даты и времени 36 9.1.1 Директивы, используемые для установки времени 36 9.1.2 Директивы, используемые для установки даты 38 9.1.3 Директивы-символы 39 9.1.4 Установка времени 39 9.1.5 Используемые опции 40 9.2 'uname': Вывод системной информации 42 9.3 'hostname': Просмотр или установка имени компьютера 44 10. Модификация вызова команд 44 10.1 'env': Выполнение команды с изменённым окружением 44 10.2 'nice': Выполнение команды с изменённым приоритетом 45 10.3 'nohup': Выполнение команды с игнорированием прерываний 46 10.4 'su': Запуск команды с изменением идентификатора 47 11. Формирование задержек 49 11.1 'sleep': Формирование задержки на заданный промежуток 49