Забродин УНИХ основы командного интерфейса 2010
.pdfОПИСАНИЕ
Команда Is для каждого имени каталога распечатывает список входящих в этот каталог файлов; для файлов — повторяется имя файла и выводится дополнительная информация в соответствии с указанными флагами. По умолчанию имена файлов выводятся в алфавитном порядке. Если имена не заданы, выдается содержимое текущего каталога. Если заданы несколько аргументов, то они сортируются по алфавиту, сначала всегда идут файлы, а потом каталоги с их содержимым.
Командой Is обрабатываются в том числе из общего списка опций следующие флаги:
-а — вывести список всех файлов (обычно не выводятся файлы, имена которых начинаются с точки);
-d — если аргумент является каталогом, то выводить только его имя, а не содержимое. Часто используется с флагом -I для получения сведений о состоянии каталога;
-С — вывод в несколько колонок с сортировкой по колонкам; -т — вывод в свободном формате, имена файлов разделяются
запятыми;
-l — вывод в длинном формате: перед именами файлов выдается режим доступа, количество ссылок на файл, имена владельца и группы, размер в байтах и время последней модификации. Если файл является специальным, то в поле размера выводится старший и младший номер устройства;
-t — имена файлов сортируются не по алфавиту, а по времени (сначала идут самые свежие файлы). По умолчанию используется время последнего изменения.
Режим доступа к файлу при указании флага -I выводится в виде
10символов. Первый символ означает: d — файл является директорией;
b — файл является специальным блочным файлом;
с — файл является специальным символьным файлом; р — файл является именованным каналом;
- — обычный файл.
Остальные девять символов делятся на три группы по три символа (r,w,x): права доступа владельца, других пользователей из его группы, всех прочих пользователей.
191
mail — отправка пользователям почты или ее чтение
СИНТАКСИС
mail [-о] [-s] [-w] [-t] адресат …
mail [-е] [-h] [-p] [-q] [-r] [-f файл][-F адресат ...]
ОПИСАНИЕ
Отправка почты:
-w — отправить письмо удаленному пользователю без ожидания завершения пересылки;
-t — добавить к письму строку "То: адресаты", что позволяет получателю знать всех адресатов письма.
Адресат обычно задается как входное имя пользователя [login]. Если адресат задан, предполагается, что выполняется отправка почты (за исключением случая опции -F). При этом текст отправляемого сообщения читается со стандартного ввода, пока либо не будет введен символ конца файла (CTRL+D), либо не будет введена строка, состоящая из единственной точки. Затем команда mail добавляет письмо к почтовому файлу каждого адресата. Письмо — это сообщение, перед которым стоит почтовый штемпель. Почтовый штемпель состоит из одной или нескольких строк "From ...", за которыми идет пустая строка (если только не была использована опция -s).
Если будет обнаружено, что письмо не может быть доставлено, то оно вернется к отправителю с диагностикой места и причины неудачи. Если локальная система входит в стандартную коммуникационную сеть, можно отправить почту пользователю удаленной системы, адрес которого задается обычным для сети образом:
имя_системы![имя_системы!...]имя_полъзователя Чтение почты
На чтение почты воздействуют следующие опции:
-е — установка кода завершения без вывода почты. Нулевое значение кода завершения означает, что у пользователя есть почта, в противном случае возвращается 1;
-h — показ окна с заголовками писем, а не текстов писем. Затем выдается приглашение "?";
-р — вывод текстов всех писем безпромежуточных приглашений;
192
-q — завершить работу команды mail после получения прерывания. В противном случае прерывание вызывает лишь прекращение вывода текста письма;
-r — выводить тексты писем в порядке поступления;
-f файл — использовать файл вместо подразумеваемого почтового файла;
-F адресат — вызывает переадресацию последующей почты указанному адресату. Опция допустима, только когда у пользователя нет почты.
По умолчанию команда mail выводит тексты писем в порядке, обратном к порядку их поступления, т. е. сначала выдается самая свежая почта. После выполнения очередного действия происходит либо выход из mail, если было обработано последнее письмо, либо выдается приглашение (символ "?") и со стандартного ввода читается строка, определяющая следующую команду. Для обработки и просмотра почты доступны следующие команды:
перевод _строки, + или п Перейти к следующему письму;
-d или dp — удалить письмо и перейти к следующему. Как и в двух последующих командах, собственно удаление произойдет лишь в конце сеанса работы с mail;
-d п . — удалить письмо с номером n (письма нумеруются с 1, в порядке поступления). Не переходить к следующему письму;
-. dq — удалить письмо и выйти из mail;
-s [файл ...] — сохранить письмо в указанных файлах (по умолчанию используется файл $НОМЕ/тbох). Из почтового файла письмо удаляется;
-т [адерсат ...] — переслать текущее письмо указанным адресатам;
-q или CTRL+D — оставить в почтовом файле только неудаленные письма и завершить сеанс работы с командой mail;
-х — оставить почтовый файл неизменным и завершить сеанс работы с командой mail;
-! команда — выполнить одну команду shell; -? — показать перечень команд.
При входе в систему пользователю сообщается о наличии для него почты, если она есть. Также сообщается о появлении новой почты во время сеанса работы с командой mail.
193
MESG
mesg — разрешает или запрещает сообщения
СИНТАКСИС mesg[n] или [у]
ОПИСАНИЕ
Команда mesg с аргументом n, лишая права записи всех, кроме владельца, запрещает посылать сообщения на терминал пользователя с помощью команды write. Команда mesg с аргументом у восстанавливает право посылки сообщений. Mesg без аргументов сообщает о состоянии терминала (is у — посылка разрешена, is n — запрещена), не меняя состояние.
USAGE
usage — выдача описания команд и примеров использования
СИНТАКСИС
[help] usage [-d] [-е] [-о] [имя_команды]
ОПИСАНИЕ
Команда справочной службы usage выдает информацию о командах системы UNIX. Будучи вызванной без аргументов, usage выводит на экран меню, приглашающее пользователя или ввести имя команды, или получить список команд, поддерживаемых в usage. Пользователь может также вернуться в систему, введя q ("quit" - выйти).
MKDIR
mkdir — создание каталога
СИНТАКСИС
mkdir [-т режим_доступа] [-р] каталог...
ОПИСАНИЕ
По команде mkdir создается один или несколько каталогов с режимом доступа 0777 [возможно, измененном с учетом umask(l) и опции -т]. Стандартные файлы ("." — для самого каталога и ".." — для вышележащего) создаются автоматически; их нельзя создать по имени. Для создания каталога необходимо располагать правом записи в вышележащий каталог.
Идентификаторы владельца и группы новых директорий устанавливаются, соответственно, равными реальным идентификаторам владельца и группы процесса.
194
Командой mkdir обрабатываются две опции:
-t режим_доступа — явное задание режима_доступа для создаваемых каталогов [см. chmod];.
-р — при указании этой опции перед созданием нового каталога предварительно создаются все несуществовавшие ранее вышележащие каталоги, указанные в виде маршрутного имени в команде.
MORE
more — вывод содержимого файла
СИНТАКСИС more [имя_файла] ОПИСАНИЕ
Команда осуществляет поэкранный вывод содержимого файла. Команда обладает другими широкими возможностями управления выводом с помощью ключей и собственных команд типа команд vi.
Назначение управляющих клавиш: «q» — выход из команды;
«Return» — вывод очередной строки;
«Spase» — вывод очередного экрана с информацией.
MV
mv — перемещение (переименование) файлов
СИНТАКСИС
mv [-f ] фа-йл1 [файл2...] целевой_файл
ОПИСАНИЕ
Команда mv перемещает (переименовывает) файл1 в целе-
вой_файл. Файл1 не должен совпадать с иелевым_файлом.
Если целевой_файл является каталогом, то файл1, файл2,... перемещаются в него под своими именами. Только в этом случае можно указывать несколько исходных файлов.
Если целевой_файл существует и не является каталогом, его старое содержимое теряется. Если при этом обнаруживается, что в целевой_файл не разрешена запись, то выводится режим этого файла и запрашивается строка со стандартного ввода.
Если файл1 является каталогом, то он переименовывается в целевой_файл, только если у этих двух каталогов общий надкаталог; при этом все файлы, находившиеся в файле1, перемещаются под своими именами в целевой_файл. Если файл1 является файлом, а
195
целевой_файл — ссылкой, причем не единственной, на другой файл, то все остальные ссылки сохраняются, а целевой_файл становится новым независимым файлом.
NICE
nice — выполнение команды с пониженным приоритетом
СИНТАКСИС
nice. [-коэффициент_понижения] команда [аргументы] ОПИСАНИЕ
Команда nice выполняет команду с пониженным приоритетом. Коэффициент_понижения задается в диапазоне 1-19 (по умолчанию равен 10).
Суперпользователь может выполнять команды с повышенным приоритетом, для этого нужно указать отрицательный коэффици-
ент_понижения, например -10.
Коэффициент_понижения, больший 19, принимается равным 19. Если обычный пользователь указывает отрицательный коэффициент_понижения, команда выполняется с нормальным приоритетом.
NOHUP
nohup – защищает команду от прерываний при выходе пользователя из системы
СИНТАКСИС nohup <команда> &
ОПИСАНИЕ
Защищает <команду>, выполняемую в фоновом режиме, от прерываний, возникающих при выходе пользователя этого процесса из системы. Выполнение фонового процесса продолжается несмотря на то, что его родительский shell уже завершен. Родителем защищенной команды становится процесс с номером 1 (init). В противном случае выход из системы приводит автоматически к прекращению выполнения фоновых заданий.
Обычно при использовании этой команды стандартный вывод и стандартный протокол защищенной команды должны перенаправляться пользователем в собственный файл. Если файл вывода не указывается, то nohup сама обеспечивает перенаправление в файл nohup.out.
196
PS
ps — выдача информации о состоянии процессов
СИНТАКСИС ps [опции]
ОПИСАНИЕ
Команда ps выдает информацию об активных процессах. По умолчанию информация дается только о процессах, ассоциированных с данным терминалом. Выводятся идентификатор процесса, идентификатор терминала, истраченное к данному моменту время ЦП и имя команды. Если нужна иная информация, следует пользоваться опциями.
Некоторые опции имеют один аргумент или список аргументов. Аргументы в списке могут быть либо отделены друг от друга запятыми, либо все вместе заключены в двойные кавычки и отделены пробелами или запятыми. Аргументы в списке_процессов и в списке_групп должны быть числами. Командой ps обрабатываются следующие опции:
-е — вывести информацию обо всех процессах; -а — вывести информацию обо всех наиболее часто запраши-
ваемых процессах, т.е. обо всех процессах, кроме лидеров групп и процессов, не ассоциированных с терминалом;
-f — генерировать полный листинг (см. ниже разъяснение смысла колонок);
-l — генерировать листинг в длинном формате (см. ниже);
-t— список_терминалов. Выдавать информацию только о процессах, ассоциированных с терминалами из заданного списка_терминалов. Терминал — это либо имя файла-устройства, например ttyномер или console, либо просто номер, если имя файла начинается с tty;
-р — cписок_идентификаторов_процессов. Выдавать информа-
цию только об указанных процессах; и спи-
сок_идентификаторов_пользователей — выдавать информацию только о процессах с заданными идентификаторами или входными именами пользователей. Идентификатор пользователя выводится в числовом виде, апри наличии опции -f — всимвольном;
-g — список_идентификаторов_лидеров_групп. Выводить информацию только о процессах, для которых указаны идентификаторы лидеров групп. Лидер группы — это процесс, номер которого
197
идентичен его идентификатору группы. Shell, запускаемый при входе в систему, является стандартным примером лидера группы.
При указании опции -f ps пытается определить имя команды и аргументы, с которыми был создан процесс, исследуя пользовательский блок процесса. Если это не удается, имя процесса выводится так же, как и при отсутствии опции -f, только заключается в квадратные скобки. Ниже приводятся заголовки колонок выдачи и объясняется смысл их содержимого. Буква l или f в скобках означает, что эта колонка появляется соответственно при длинном или полном формате выдачи; отсутствие букв означает, что данная колонка выводится всегда.
ЗАГОЛОВКИ
F(l) Флаги (шестнадцатеричные), логическая сумма которых дает следующие сведения о процессе:
00 — процесстерминирован; элементтаблицыпроцессовсвободен; 01 — системный процесс: всегда в основной памяти; 02 — процесс трассируется родительским процессом;
04 — родительский трассировочный сигнал остановил процесс; родительский процесс ждет;
08 — процесс не может быть разбужен сигналом;
10 — процесс в основной памяти; 20 — процесс в основной памяти; блокирован до завершения
события; 40 — идет сигнал к удаленной системе;
80 — процесс в очереди на ввод/вывод.
S(l) Статус процесса:
О — активный: обрабатывается процессором; S — спящий: ожидает завершения события; R — готов: стоит в очереди на выполнение; I — рождающийся: процесс создается;
Z — состояние "зомби": процесс завершен, но родительский процесс не ждет этого;
Т — трассируемый: процесс остановлен сигналом, так как родительский процесс трассирует его;
Х — свопируемый: процесс ожидает получения большего объема основной памяти;
198
UID(f,l) — идентификатор владельца процесса; при указании опции -/ выдается входное имя пользователя;
PJD — идентификатор процесса (необходим для терминирования процесса);
PPID(f,l) — идентификатор родительского процесса; C(f,l) — доля выделенного планировщиком времени ЦП;
STIME(f) — время запуска процесса (часы:минуты:секунды). Если процесс запущен более чем 24 часа назад, выдается месяц и день запуска;
PRI(l) — приоритет процесса; большее число означает меньший приоритет;
N1(1) — поправка к приоритету; ADDR(l) — адрес процесса в памяти;
SZ(l) — размер (в страницах по 512 байт) свопируемого образа процесса в основной памяти;
WCHAN(l) — адрес события, которого ожидает процесс;
TTY — управляющий терминал (обычно — терминал, с которого был запущен процесс). Если такового нет, выдается символ "?";
TIME — истраченное процессом время ЦП;
COMMAND — имя программы; если указана опция -f, то, выводится полное имя команды и ее аргументы.
Процесс, закончивший выполнение своей программы и имеющий родительский процесс, не дождавшийся еще завершения, в качестве имени программы получает <defunct>. Во время выполнения команды ps положение вещей может измениться; таким образом, ps дает лишь хорошее приближение к действительности.
Некоторые сведения, относящиеся к процессам, отмеченным как <defunct>, не соответствуют действительности. Если не указана ни одна из опций -t, -p, -и, -д, команда ps проверяет стандартный ввод, стандартный вывод и стандартный протокол (в указанном порядке) для определения управляющего терминала и пытается вывести информацию о процессах, ассоциированных с этим терминалом. В ситуации, когда все три стандартных направления ввода/вывода переназначены, ps не может найти и выдать имя управляющего терминала. Команда ps -ef может не отметить начало входа в систему, а вывести сведения о последнем запуске для данной терминальной линии.
199
PWD
pwd — выдача имени текущего каталога
СИНТАКСИС pwd
ОПИСАНИЕ
Команда pwd выдает имя текущего (рабочего) каталога.
RM
rm — удаление файлов или каталогов
СИНТАКСИС rm [-f] [-г] файл ...
rm -r [-f] [-г] каталог ... [файл ...]
ОПИСАНИЕ
Команда rm служит для удаления указанных имен файлов из каталога. Если заданное имя было последней ссылкой на файл, то файл уничтожается. Для удаления пользователь должен обладать правом записи в каталог; иметь право на чтение или запись файла необязательно. Если нет права на запись в файл и стандартный ввод назначен на терминал, то выдается (в восьмеричном виде) режим доступа к файлу и запрашивается подтверждение; если оно начинается с буквы у, то файл удаляется, иначе — нет. Допускаются следующие три опции:
-f — команда не выдает сообщений, когда удаляемый файл не существует, не запрашивает подтверждения при удалении файлов, на запись в которые нет прав. Если нет права и на запись в каталог, файлы не удаляются. Сообщение об ошибке выдается лишь при попытке удалить каталог, не имея прав на запись в него (см. опцию -r);
-r — происходит рекурсивное удаление всех каталогов и подкаталогов, перечисленных в списке аргументов. Сначала каталоги опустошаются, затем удаляются. Подтверждение при удалении файлов, на запись в которые нет прав, не запрашивается, если задана опция -f, или стандартный ввод не назначен на терминал и не задана опция -i.
При удалении непустых каталогов команда rm -r предпочтительнее команды rmdir, так как последняя способна удалить только пустой каталог;
200