Linux: Полное руководство
Шрифт:
3.4.7. Группировка команд
Кроме конвейеров, команды можно соединять в списки. Простейший вид списка — несколько команд, разделенных точкой с запятой:
Команды в таком списке выполняются последовательно: сначала будет выполнена команда постановки задания в очередь печати, а потом проверено состояние принтера. Оболочка ждет завершения каждой команды, чтобы отправить на выполнение следующую (синхронный режим).
В списки можно группировать не только одиночные команды, но и конвейеры:
Первый конвейер вырезает из списка процессов заголовок, а второй — информацию о демоне httpd.
Если требуется запустить команду на заднем плане и не ждать ее выполнения (асинхронный режим), то нужно завершить ее управляющим оператором
Команда du сообщает, сколько места на диске занято файлами в указанном каталоге. Обратите внимание на ключи: их имена предваряются не одним минусом, а двумя. Большинство команд поддерживает как короткие однобуквенные ключи, так и длинные — с осмысленными, легко запоминаемыми именами. Напоминаю, что список и значения ключей команды cmd можно получить, выполнив ее с ключом – -help или – -usage.
Конвейеры (или одиночные команды) в списке можно соединять управляющими операторами
Вторая команда в «списке И» будет выполнена только в случае успешного завершения первой. Типичный пример — создание каталога и переход в него:
Вторая команда в «списке ИЛИ» будет выполнена только в случае неуспешного завершения первой (возврата ею ненулевого значения):
Вторая команда (конвейер) в этом примере формирует и посылает письмо с отчетом о неуспехе пользователю den.
Чтобы перенаправить в файл вывод всех команд из списка, нужно взять весь список в круглые скобки:
Список, взятый в круглые скобки, выполняется в дочерней оболочке, имеющей собственные локальные переменные и текущий каталог:
Если нужно часто выполнять одну и ту же последовательность команд, можно оформить ее как функцию:
Имена
и область видимости функций подчиняются тем же правилам, что и для переменных. Нельзя определять функцию и переменную с одинаковыми именами.Определенные вами переменные и функции действительны только для текущего сеанса работы в оболочке bash. Чтобы воспользоваться ими в следующем сеансе, запишите их в текстовый файл, а когда они понадобятся, загрузите этот файл в память командного интерпретатора встроенной командой
Команда
3.4.8. Инициализационные файлы bash
Начальные значения переменных окружения становятся известны командному интерпретатору bash из инициализационных файлов, которые он прочитывает сразу после своего запуска. Эти файлы называются
Команды, присутствующие в этих файлах по умолчанию, только прочитывают общесистемный файл настроек
При завершении сеанса работы с оболочкой выполняются команды в файле
Команду установки переменной CDPATH, рассмотренной в п.3.4.3, имеет смысл добавить в
Глава 4
Рабочее место пользователя
Если вы собираетесь только изучать, настраивать и администрировать свою ОС Linux, то вашим рабочим местом станет консоль, а средой обитания — командная строка. Для нормальных же людей компьютер — не хобби, а инструмент для решения определенного круга задач. Задачи эти решаются не средствами операционной системы, а прикладными программами, и большинство людей привыкло решать их с помощью приложений, работающих в графическом режиме под управлением ОС семейства Windows. Среди таких приложений: