В Bash большинство команд можно вводить как одним, так и несколькими словами, добавляя уточняющие параметры.

Под параметрами мы будем понимать все, что следует после команды. Они делятся на ключи и аргументы. Ключи, обычно предваренные одним или двумя дефисами, идут перед аргументами, если они есть. Команда может иметь одновременно ключи и аргументы, либо только одно из них.

Аргументы, как правило, указывают, над чем выполняется команда. Например, чтобы перейти в другую директорию, необходимо указать имя этой директории как аргумент. Для отображения содержимого файла следует передать имя файла.

Ключи изменяют поведение программы. Например, при помощи команды для просмотра содержимого каталога можно просто вывести список объектов. Однако, воспользовавшись определенными ключами, можно получить детальную информацию о каждом объекте.

Рассмотрим пример команды ncal, выводящей на экран календарь. При отсутствии параметров она покажет текущий месяц.

Программа ncal выводит календарь

Для отображения календаря другого месяца ncal требует два аргумента: month и год.

Передача параметров

Если указан только один аргумент, предполагается, что это год, и будет показан календарь на весь год.

Ключ -b позволяет повернуть календарь на 90 градусов. Аргументы могут быть заданы или нет. Если они отсутствуют, то будет выведен повернутый календарь текущего месяца.

Передача команде ключа

Команды могут иметь множество ключей, которые можно комбинировать.

Использование двух ключей

В данном примере используются два ключа. Ключ -w указывает ncal выводить номера недель года. Ключи можно указать вместе, как показано на скриншоте, или раздельно: ncal -b -w.

Не всегда опция обозначается малой буквой. Бывают ключи, представленные заглавной буквой или словом. В случае слова используется два дефиса, чтобы Bash распознал его как единственный ключ. Ключи -V и --version программы python3 выполняют одну и ту же функцию — выводят версию интерпретатора.

Ключи -V и --version

Существуют команды без аргументов, их выполнение не имеет смысла, так как не предусмотрено действие "по-умолчанию". Команда sleep заставляет bash задержаться перед выполнением следующей команды. Время задержки можно задать в секундах, минутах и других единицах.

Отметим, что такие термины, как "команда", "параметр", "ключ", "аргумент", не считаются стандартными. Например, в Bash ключи также называют опциями, а аргументы – операндами.

С точки зрения программирования, все в строке команды – это аргументы. Введенная строка целиком передается программе, которая разбивает её на отдельные слова, помещаемые в массив, где первый элемент — имя вызываемой программы. Программа обрабатывает аргументы, если это необходимо.

Задание

Объясните, как работает команда echo. На основе выполнения команды echo -e "one\ntwo\tthree" поясните, какое назначение имеет ключ -e.

Вопросы для самопроверки:

  1. Что понимается под параметрами в контексте команд Bash?
  2. Какие действия выполняют аргументы (операнды) в командной строке Bash?
  3. Как изменяют поведение программы ключи (опции) в Bash?
  4. Можно ли комбинировать ключи в одной команде?
  5. Приведи пример команды Bash, выполнение которой не имеет смысла без параметров.

Программа курса:

  1. Описание курса
  2. История операционной системы Linux
  3. Основы лицензии GNU GPL и её преимущества
  4. Функции и структура ядра Linux-систем
  5. Структура и каталоги файловой системы Linux
  6. Основные типы файлов в системе Linux
  7. Интерфейс командной строки в Linux
  8. Командная оболочка Bash в Linux
  9. Использование параметров команд в Bash
  10. Использование Ctrl+C, Ctrl+D и Ctrl+Z
  11. Автодополнение и история команд в Bash
  12. Перенаправление ввода и вывода в Bash
  13. Документация Linux и Man-страницы
  14. Абсолютная и относительная адресация в Linux
  15. Команда ls - как просматривать каталоги в Linux
  16. Копирование, перемещение и удаление в Linux
  17. Жесткие и символьные ссылки в Linux
  18. Создание жестких и символических ссылок в Linux
  19. Права доступа к файлам и каталогам в Linux
  20. Изменение прав доступа к файлам с помощью chmod
  21. Использование шаблонов имен файлов в Linux
  22. Поиск файлов в Linux с помощью команды find
  23. Использование команды sudo в Linux
  24. Управление пакетами с помощью APT в Linux