Текст книги "Linux и UNIX: программирование в shell. Руководство разработчика"
Автор книги: Дэвид Тейнсли
сообщить о нарушении
Текущая страница: 25 (всего у книги 25 страниц)
Для отображения списка активных процессов, соответствующих устройству /dev/hda5, применяется команда:
$ fuser -m /dev/hda5
/dev/hda5: 1 1r 1c 1e 37 37r 37c 37e 144 144r 144c 144e 158 158r 158c 158e 167r 167c 167e 178 17 8r 178c 178e 189 189r 189c
Уничтожение всех процессов, связанных с устройством /dev/hda5, можно осуществить посредством команды:
$ fuser -k /dev/hda5
Для проверки, что файл doc_part открыт, и для определения выполняющихся процессов используется следующая команда:
$ fuser -m /root/doc_part
/root/dt: 1 1r 1c le 37 37r 37c 37e 144 144r 144c 144e 158 158r 158c 158e 167r 167c 167e 178 178r 178c 178e 189 189r 189c*l89e 201 201r 201c 201e 212 212r 212c 212e 223 223r
Некоторые варианты команды fuser отображают идентификаторы регистрации в качестве части вывода. Если же в вашем случае этого не происходит, используйте номера, оканчивающиеся на 'е', а затем примените команду grep посредством ps ха
или ps -ef.
head
Формат:
head -number файлы
Команда head используется для отображения первых десяти строк файла. Для отображения меньшего или большего количества строк используется параметр -number. Например, команда
$ head -1 myfile
задает отображение первой строки файла, а команда
$ head -30 logfile | more
приводит к отображению первых 30 строк файла logfile.
logname
Формат:
logname
При этом отображается регистрационное имя текущего пользователя:
$ logname
dave
mkdir
Формат:
mkdir параметры каталог
Параметры:
–m Устанавливает уровень доступа при создании каталога
Команда
$ mkdir HOLD_AREA
$ ls -1 HOLD*
–rw‑rw‑r– 1 dave admin 3463 Dec 3 1998 HOLD_AREA
приведет к созданию каталога HOLD_AREA.
more
Формат:
more параметры файлы
Эта команда эквивалентна командам page и pg, т. е. поочередно отображает на экране содержимое страниц.
Параметры:
–c Не прокручивать текст, но отображать полностью страницу -d Отображение запроса на ввод при постраничной разбивке файла -n Отображение n строк вместо отображения полного экрана Команда
$ more /etc/passwd
отображает содержимое файла passwd. Команда
$ cat logfile |more
отображает файл logfile.
nl
Формат:
nl параметры файл
Параметры:
–i Задает приращение каждой строки на n; по умолчанию задается 1 -р Не восстанавливать нумерацию при появлении новой страницы
Команда nl используется для добавления нумерации в файл. Она является полезной при печати исходного кода или листингов журнальных файлов. Команда
$ nl myscript
добавляет нумерацию в файл myscript. Команда
$ nl myscript >hold_file
направляет вывод команды nl в файл hold_file, а команда
$ nl myscript | lpr
направляет вывод команды nl на принтер.
printf
Формат:
printf формат аргументы
Эта команда выводит форматированный текст в стандартный поток вывода, а ее действие подобно действию функции printf утилиты awk.
Параметр формат может включать три различных типа элементов; здесь будут рассмотрены элементы форматирования. Форматирующая последовательность выглядит следующим образом:
%[– +]m.nx
Знак дефиса задает выравнивание текста в поле по левому краю. Вообще говоря, параметр m используется для представления длины поля, а n задает максимальную длину поля.
Символ % предшествует любому из следующих символов форматирования:
S
строка
с
символ
d
десятичное число
X
шестнадцатеричное число
о
восьмеричное число
Команда printf не может создавать новые строки; с этой целью применяются управляющие последовательности. Ниже приводится перечень наиболее часто применяемых управляющих последовательностей:
а
звуковой сигнал
b
удаление предшествующего символа
r
возврат каретки
f
прокрутка страницы
n
создание новой строки
t
символ табуляции
Команда
$ printf "Howzat!n"
Howzat!
выводит строку в поток стандартного вывода; используйте символ n' для создания новой строки. Команда
$ printf "x2Bn"
+
преобразует шестнадцатеричное число 2В в соответствующее десятичное значение
ASCII,'+'.
Команда
$ printf "%-10sStand‑byn"
Stand‑by
выводит на печать строку, выровненную по левому краю, начиная с 10–го символа от левого края.
pwd
Формат:
pwd
Эта команда применяется для отображения текущего рабочего каталога. Введите следующую команду:
$ pwd
/var/spool
$ WHERE_АМ_I=`pwd`
$ echo $WHERE_AM_I
/var/spool
Здесь используется подстановка для передачи сценарию сведений о текущем рабочем каталоге.
rm
Формат:
rm параметры файлы
Параметры:
–i Запрос перед удалением каждого файла -r Удаление существующего каталога
Команда rm удаляет файлы и/или каталоги. Команда
$ rm myfile
$ rm -r /var/spool/tmp
удаляет все файлы, включая подкаталоги из каталога /var/spool/tmp и ниже.
rmdir
Формат:
rmdir параметры каталоги
Параметры:
–p Удаление всех пустых каталогов, найденных в процессе удаления
Команда
$ rmdir /var/spool/tmp/lp_HP
удаляет каталог 1р_НР, находящийся в каталоге /var/spool/tmp.
script
Формат:
script параметр файл
Параметры:
–a Добавление вывода в файл
С помощью команды script можно создать полную хронологию сеанса. Для этого нужно просто вызвать эту команду из командной строки. Выполнение команды script завершается после выхода из сеанса. Эта команда копирует введенные пользователем команды и данные и добавляет их в файл. Команда
$ script mylogin
задает регистрацию информации о сеансе в файле mylogin.
shutdown
Формат:
shutdown
Выполнение этой команды приводит к завершению работы системы. Многие поставщики программного обеспечения поддерживают свои специфические версии этой команды. Команда
$ shutdown now
вызовет немедленное завершение работы системы, а команда
$ shutdown -g60 -16 -у
приведет к завершению работы системы через 60 секунд, после чего последует перезагрузка системы.
sleep
Формат:
sleep число
Применение этой команды вызовет приостановку работы системы на указанное количество секунд. Например, команда
$ sleep 10
приостановит систему на 10 секунд.
strings
Формат:
strings имя_файла
Команда strings может быть использована для просмотра текста, содержащегося в двоичных файлах.
touch
Формат:
touch параметры имя_файла
Параметры:
–t ММДДччмм Создание файла, содержащего штамп даты (месяц, день, час, минута).
Эта команда создает файл с текущим или новым штампом даты.
$ touch myfile $ ls -l myfile
–rw‑r–r–l dave admin 0 Jun 30 09:59 myfile
Данный код создает новый пустой файл myfile, содержащий текущую дату/время.
$ touch -t 06100930 myfile2 $ ls -l myfile2
–rw‑r–r– 1 dave admin 0 Jun 10 09:30 myfile2
Указанная выше команда touch создает новый пустой файл myfile2 со штампом
даты June 10,09:30am.
tty
Формат:
tty
Используйте команду tty для получения сведений о том, на каком устройстве или терминале вы работаете.
$ tty
/dev/tty08
Команда tty -s определяет, является ли сценарий интерактивным. Коды возврата в этом случае будут следующими:
0 Для терминала
1 Для устройства, не являющегося терминалом
uname
Формат:
uname параметры
Параметры:
–a Отображение всей информации
–s Системное имя
–v Отображение только номера версии либо даты выпуска версии
Команда используется для отображения имени текущей системы и другой связанной информации:
$ uname -a
Linux bumper.honeysuckle.com 2.0.36 #1 Tue Oct…
uncompress
Формат:
uncompress файлы
Команда uncompress используется для разархивирования любых сжатых файлов.
$ uncompress myfile
Приведенная выше команда разархивирует файл myfile, который был ранее сжат. Обратите внимание, что после разархивирования файла для него не может использоваться расширение .Z.
wait
Формат:
wait ID процесса
Эта команда устанавливает длительность ожидания для ID процесса перед возобновлением его выполнения либо устанавливает длительность ожидания всех фоновых процессов перед возобновлением их выполнения.
Для задания интервала ожидания ID процесса перед возобновлением его выполнения используется команда:
$ wait 1299
Следующая команда определяет ожидание до тех пор, пока не завершатся все фоновые процессы:
$ wait
wc
Формат:
wc параметры файлы
Параметры:
–c Вывод количества символов
–l Вывод количества строк
–w Вывод количества слов
Эта команда осуществляет подсчет количества символов или слов.
$ who | wc
1 6 46
$ who | wc -l
1
В первом примере вывод команды who направляется команде wc; при этом отображаются следующие столбцы:
количество строк, количество слов, количество символов
Во втором примере команда wc просто выводит на экран количество строк.
$ VAR="tapedrive"
echo $VAR | wc -c
10
В результате применения этой команды выводится количество символов в строке VAR.
whereis
Формат:
whereis имя_команды
Команда whereis используется для поиска двоичных или текстовых страниц справки для команды.
$ whereis fuser
fuser: /usr/sbin/fuser /usr/man/man1/fuser.1
$ whereis sort
sort: /bin/sort /usr/man/manl/sort.1
Обратите внимание, что двоичные файлы не отображаются в следующих двух примерах, поскольку они встроены в интерпретатор shell, но в этом случае для команд имеются справочные страницы.
$ whereis times
times: /usr/man/man2/times.2
$ whereis set
set: /usr/man/mann/set.n
who
Формат:
who параметры
Параметры:
–a Отображение всего вывода
–r Отчет о текущем уровне выполнения (в Linux применяется команда runlevel) -s Отображение полей имен и дат Команда
whoami
Отображает имя пользователя, выполняющего команду. Эта команда не является параметром команды who и может быть вызвана отдельно.
Команда who выводит отчет о пользователях, зарегистрированных в системе. Для отображения информации об этих пользователях введите команду:
$ who
root console Apr 22 13:27
pgd pts/3 Jun 14 15:29
peter pts/4 Jun 14 12:08
dave pts/5 Jun 14 16:10
Сведения о самом себе можно получить с помощью следующей команды:
$ whoami
dave
LINUX and UNIX Shell Programming
David Tansley
An imprint of Pearson Education
Harlow, England • London • New York • Reading, Massachusetts • San Francisco • Toronto • Don Mills. Ontario • Sydney Tokyo • Singapore • Hong Kong • Seoul * Taipei • Cape Town • Madrid • Mexico City • Amsterdam • Munich • Pan's • Milan
Дэвид Тейнсли
Linux и UNIX: программирование в shell. Руководство разработчика.
BHV, «Ирина», Киев 2001
Перевод с английского
УДК «81.3.06
Д. Тейнсли
Unix i UNIX: программирование в shell. Руководство разработчика: Пер. с англ. – К.:
Издательская группа BHV, 2001. – 464 с.
ISBN 966-552-085-7
ISBN 5-7315-0114-9
Данная книга является практическим руководством по программированию интерпретатора Bourne shell -cтандартного командного интерпретатора в UNIX, полностью совместимого с интерпретатором BASH shell в Linux. Книга предназначена для начинающих и опытных программистов и содержит множество полезных примеров, советов и подсказок. С ее помощью читатель сможет быстро научиться создавать shell–сценарии для реальных задач и ситуаций, возникающих в большинстве систем UNIX и Linux.
Обложка А. А. Стеценко
ISBN 0-201-67472-6 © Pearson Education Limited, 2000
ISBN 966-552-085-7 © Издательская группа BHV, Киев, 2001
ISBN 5-7315-0114-9 © Издательство "Ирина", Киев, 2001
Учебное пособие
Дэвид Тейнсли
Linux и UNIX: программирование в shell.
Руководство разработчика
Редакторы Н. Е. Курбатова, Е. А. Курбатова, Технический редактор З. В. Лобач
Продукции соответствует требованиям
Министерство здравоохранения Российской Федерации.
Гигиеническое заключение 77.ФЦ.8.953М 197.3.99 от 12.03.1999
Лицензия на идательскую деятельность № 071405
от 28 февраля 1997 г.
ООО «Спаррк».
123364, г. Москва, ул. Свободы, д. 28, корп. 2.
ООО "Издательская группа BHV"
Свидетельство о занесении в Государственный реестр
серия ДК №175 от 13.09.2000
Подписано в печать 05.10.2001. Формат 70xl00l/16.
Печать офсетная. Усл. печ. л. 29. Тираж 5000 экз.
Заказ №1885.
Отпечатано с готовых диапозитивов в ОАО «Типография "Новости"» 107005, Москва, ул. Фр. Энгельса, 46.
notes
1
Если символ t установлен для каталога, то это означает, что только владелец файлов, содержащихся в данном каталоге, может удалять их, даже если член группы имеет те же права, что и владелец файла.
Если символ t установлен для исполняемого файла (программы или сценария), то после завершения программы ее следует оставить на диске подкачки (в виртуальной памяти), чтобы ускорить последующий ее запуск другими пользователями. Поскольку в наши дни проблема оперативной памяти не стоит так остро, как раньше, в использовании sticky–бита при работе с файлами нет особой необходимости.
2
Позиция задастся следующим образом: f[.c], где f– номер поля, c– позиция первого символа ключа от начала поля. Если параметр c не указан, первым символом ключа считается первый символ поля.
3
Эта переменная определяет адрес шлюза, используемого для подключения к Internet