Linux и UNIX: программирование в shell. Руководство разработчика
Linux и UNIX: программирование в shell. Руководство разработчика читать книгу онлайн
Данная книга является практическим руководством по программированию интерпретатора Bourne shell -cтандартного командного интерпретатора в UNIX, полностью совместимого с интерпретатором BASH shell в Linux. Книга предназначена для начинающих и опытных программистов и содержит множество полезных примеров, советов и подсказок. С ее помощью читатель сможет быстро научиться создавать shell–сценарии для реальных задач и ситуаций, возникающих в большинстве систем UNIX и Linux.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
$ cp -r /logs/ /hold/logs
diff
Формат:
diff параметры файл1 файл2
Параметры:
-c Генерирует различный вывод на основе стандартного формата (см. ниже) — i Игнорирование регистров символов
При использовании файлов файлы файл2 из нашего примера comm команда diff будет выводить строки, которые не совпадают в заданных файлах.
$ diff файл1 файл2
2,3с2,3
<The game
<Boys in company С
>The games
>The boys in company С
Команда diff сообщает о том, что строки 2 и 3 различны, но второй столбец в строке 3 не совпадает.
dircmp
Формат:
dircmp параметры каталог1 каталог2
Параметры:
-s Не отображать различные файлы
Действие команды dircmp напоминает действие команды diff: она также производит сравнение с последующим выводом на экран найденных различий.
dirname
Формат:
dirname имя_пути
В противоположность команде basename, команда dirname выводит на экран только имя пути:
$ dirname /home/dave/myfile/home/dave
du
Формат:
du параметры каталог
Параметры:
-a Отображается размер каждого файла, а не только размер каталогов -s Отображается только итоговая сумма
Команда du выводит информацию об использовании диска в виде блоков размером по 512 байтов. Эта команда применяется, главным образом, для вывода размеров каталогов.
$ pwd
/var
$ du -s
14929
Размер структуры каталога /var составляет 14929 блоков.
file
Формат:
file имя_файла
Благодаря этой команде интерпретатор shell определяет тип файла.
$ file core
core: ELF 32–bit LSB core file of 'awk' (signal 6), Intel 80386, version 1
$ file data.f
data.f: ASCII text
$ file month_end.sh
month_end.sh: Bourne shell script text
fuser
Формат:
fuser параметры файл
Параметры:
-k Уничтожает все процессы для файла или файловой системы -u Отображает все процессы для файла или файловой системы
Команда fuser применяется для отображения процессов, выполняющихся в файловой системе или для файлов, к которым осуществляется доступ. В некоторых системах возможен выбор при использовании параметров -u и — т. Совместно с командой fuser возможно применение конструкции if.
Для отображения списка активных процессов, соответствующих устройству /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"