Перейти к содержанию

Ключевые термины (Key Terms)

awk
Утилита обработки текстовых потоков, рассматривающая каждую входную строку как запись (record), а слова внутри строки — как поля (fields); позволяет извлекать и преобразовывать поля с помощью шаблонов и правил обработки.
branching structure (ветвящаяся конструкция)
Управляющая конструкция сценария, направляющая выполнение по одной из ветвей в зависимости от результата вычисления условия; в bash реализована конструкциями if/then/else и case.
case (оператор case)
Ветвящаяся управляющая конструкция оболочки, сравнивающая значение переменной со списком вариантов и выполняющая команды для совпавшего варианта; предпочтительна вместо серии if/then при более чем двух возможных значениях; завершается ключевым словом esac.
command substitution (подстановка команд)
Механизм оболочки bash, позволяющий выполнить команду и подставить её вывод в качестве аргумента для другой команды; синтаксис: $(команда) или обратные кавычки `команда`.
control structure (управляющая конструкция)
Элемент сценария оболочки, изменяющий последовательный порядок выполнения команд; включает ветвящиеся конструкции (if/then/else, case) и конструкции цикла (while, until, for).
cut
Утилита извлечения указанных столбцов или полей из строк файла; по умолчанию разделитель — символ табуляции; параметр -d задаёт другой разделитель, -f — список полей.
declare (команда)
Встроенная команда оболочки для явного объявления переменной и задания её типа; -i объявляет целочисленную переменную, -r — константу, -a — массив; без объявления bash интерпретирует все переменные как текст.
exit (команда)
Встроенная команда оболочки, завершающая выполнение сценария и возвращающая числовой код завершения вызывающей оболочке; exit 0 означает успешное завершение, ненулевое значение — ошибку.
for loop (цикл for)
Конструкция цикла оболочки, выполняющая тело цикла заданное количество раз; в отличие от while/until, количество итераций определяется заранее; часто применяется совместно с командой seq.
fmt
Утилита переформатирования текстового файла; чаще всего используется для приведения длинных строк к заданной ширине с помощью параметра -w.
function (функция)
Именованный блок команд оболочки, определяемый один раз и вызываемый по имени в любом месте сценария или из командной строки; аргументы передаются через переменные $1, $2 и т.д.; существует только в памяти текущего сеанса оболочки.
here document (встроенный документ)
Механизм оболочки для передачи многострочного текста на стандартный ввод команды непосредственно в теле сценария; синтаксис: команда <<МЕТКА ... МЕТКА.
if/then/else
Ветвящаяся конструкция оболочки, выполняющая одну группу команд при истинном условии и другую — при ложном; для проверки нескольких условий поддерживает ключевое слово elif; завершается словом fi.
infinite loop (бесконечный цикл)
Ситуация в сценарии, когда условие цикла никогда не изменяется до значения, прерывающего выполнение; сценарий «зависает» и требует ручного прерывания сочетанием Ctrl+C.
join
Утилита слияния строк из двух файлов по совпадающему полю; по умолчанию полем объединения является первое поле; параметр -j задаёт другой номер поля.
looping structure (конструкция цикла)
Управляющая конструкция сценария, повторяющая тело цикла; в bash существует три вида: while, until и for.
nl
Утилита нумерации строк файла: добавляет порядковый номер в начало каждой строки вывода.
od
Утилита создания дампа файла (octal dump) в восьмеричном, десятичном, шестнадцатеричном или символьном представлении; используется для обнаружения скрытых символов форматирования в тексте.
paste
Утилита объединения соответствующих строк из нескольких файлов в столбцы; по умолчанию разделитель — символ табуляции; параметр -d задаёт другой разделитель.
positional parameter (позиционный параметр)
Переменная оболочки, содержащая аргументы, переданные сценарию или функции при вызове; $0 — имя самого сценария, $1$9 — первый–девятый аргументы.
pr
Утилита форматирования текстовых файлов перед печатью; разбивает файл на страницы, добавляет заголовки с датой, именем файла и номером страницы.
read (команда)
Встроенная команда оболочки, приостанавливающая выполнение сценария и считывающая введённые пользователем данные в указанную переменную; обеспечивает интерактивность сценариев.
script (сценарий оболочки)
Обычный текстовый файл, содержащий последовательность команд оболочки для выполнения; первая строка (#!/путь/к/оболочке) указывает интерпретатор; право выполнения назначается командой chmod.
sed
Потоковый текстовый редактор (stream editor), принимающий поток текста на стандартный ввод и выполняющий над ним указанные операции без изменения исходного файла; команда s заменяет текст, d — удаляет строки.
seq (команда)
Утилита генерации числовой последовательности; принимает одно, два или три значения для управления началом, шагом и концом последовательности; часто используется в цикле for.
shebang (шебанг)
Первая строка сценария оболочки вида #!/путь/к/оболочке (например, #!/bin/bash); указывает, какую оболочку использовать для создания субоболочки и выполнения команд сценария.
sort
Утилита сортировки строк текстового файла; поддерживает алфавитный, числовой (-n) и обратный (-r) порядок; может применяться в конвейере для сортировки вывода других команд.
source
Встроенная команда оболочки, загружающая и выполняющая команды из указанного файла в текущем сеансе оболочки; используется для импорта библиотечных функций в сценарий.
special variable (специальная переменная)
Переменная оболочки со специальным значением: $# — количество переданных аргументов, $? — код завершения последней команды, $* — все аргументы как одна строка, $@ — все аргументы как отдельные слова.
split
Утилита разбивки входного файла на несколько файлов меньшего размера; по умолчанию по 1000 строк; параметр -n задаёт другое количество строк на файл.
test (команда)
Утилита проверки условий в конструкциях if/then; проверяет существование и тип файлов, права доступа, сравнивает строки и числа; вызывается явно (test условие) или через синтаксис [ условие ].
tr
Утилита преобразования или удаления символов в текстовом потоке; не работает непосредственно с файлами — требует подачи потока через cat; параметр -d удаляет символы, без параметра выполняет замену.
uniq
Утилита вывода или пропуска повторяющихся смежных строк; работает только со смежными дубликатами — перед применением рекомендуется сортировка командой sort; параметр -d выводит только повторяющиеся строки, -u — только уникальные.
until loop (цикл until)
Конструкция цикла оболочки, выполняющая тело цикла до тех пор, пока условие ложно; противоположна циклу while — цикл until продолжается, пока условие не станет истинным.
wc
Утилита подсчёта строк, слов и байтов в файле; параметры: -l — строки, -w — слова, -c — байты, -m — символы, -L — длина самой длинной строки.
while loop (цикл while)
Конструкция цикла оболочки, выполняющая тело цикла до тех пор, пока условие остаётся истинным; при ложном условии с первой итерации тело цикла не выполняется ни разу.
xargs
Утилита, разбивающая длинный поток аргументов на фрагменты по 128 КБ и передающая каждый фрагмент указанной команде; применяется когда подстановка команд возвращает слишком много аргументов.