Параметры команд bash-оболочки Linux

Методическая разработка урока по информатике
Цикл уроков по информатике: Работа в режиме командной строки Linux
Уровень: Linux для начинающих

Зачем нужны параметры?

Большинство команд, которые дают в оболочке Linux, состоят не из одного слова (сокращения слова). Чаще команды дополняются специальными параметрами (аргументами и ключами). Таким образом происходит конкретизация и модификация команды. Если провести аналогию между поведением командной оболочки и поведением человека, то можно сказать, что для человека слово "иди" - это команда, а слова "на остановку" - это параметр. Параметры позволяют более точно сформулировать то, что мы хотим.

Например, команда cal без параметров выдает календарь на текущий месяц.

Команда cal без параметров

Однако может потребоваться получить календарь на весь год. Тогда следует дать команду cal 2009. В данном случае "2009" - это аргумент (операнд). Кроме того, можно получить календарь абсолютно любого месяца; в этом случае команде передаются два аргумента: номер месяца и год.

Команда cal с параметрами

Обратите внимание, что в ответе командной оболочки неделя начинается с воскресенья. Это как-то не по русски. Для того, чтобы неделя начиналась с понедельника необходимо использовать ключ (опцию) -m (от англ. Monday – понедельник). Ключи предназначены для изменения поведения команды.

Использование ключа -m с командой cal

Команда echo

Команда echo (эхо) выводит строку, переданную ей в качестве аргумента. Если написать команду без параметра, то она выдаст пустую строку.

Команда echo

В последнем вызове команды используется ключ -n, который запрещает переход на новую строку, поэтому приглашение командной оболочки выводится в той же строке, что и вывод команды echo.

Параметры команды ls

Рассмотрим некоторые ключи и параметры уже знакомой нам команды ls, которая выдает список файлов и папок текущего каталога (однако, как мы узнаем далее, не обязательно текущего).

Команда ls без параметров

Если команду ls использовать с ключом -l, то вывод будет более информативным.

Команда ls с ключом -l

В первой строке (итого 17736) содержится информация об общем размере всех файлов в списке. Далее в каждой строке сообщается о правах доступа к файлу, количестве ссылок на файл, имени владельца, имени группы, размере, времени последнего изменения и имени (файла или каталога). При добавлении ключа -t произойдет сортировка по времени. Ключи записываются друг за другом.

Команда ls с ключами -l и t

Команда ls часто применяется для просмотра содержимого разных каталогов файловой структуры. Для этого следует уметь адресовать команду к конкретному каталогу, т. е. передать интересующий нас каталог в качестве аргумента команде ls. Пока оставим адресацию в командной строке на потом и просто просмотрим содержимое каталога, который находится в текущем (домашнем каталоге). Например, чтобы узнать что находится в каталоге Desktop, следует написать ls Desktop и нажать Enter.

Просмотр вложенного каталога с помощью команды ls

Команда sleep

До сих пор мы рассматривали команды, которые можно использовать без параметров. Однако существует ряд команд, которые без переданных им аргументов теряют всякий смысл и поэтому требуют обязательного наличия аргумента. Одной из таких команд является sleep (сон). Эта команда заставляет оболочку bash выполнить задержку перед следующей командой. А параметр, передающийся sleep, указывает какую именно задержку (сколько секунд, минут и т. д.). При интерактивной работе с bash данная команда особого смысла не имеет; однако часто для командной оболочки пишут сценарии (файлы с командами), и вот там иногда требуется выполнить задержку.

Команда sleep

В приведенном примере сначала команда записана без аргумента, поэтому получено соответствующее сообщение. Далее два вызова делают одно и тоже (задерживают на 3 секунды). Если вместо суффикса s использовать m, то задержка будет измеряться в минутах.

Вопросы

  1. Для чего необходимы параметры к командам?
  2. Что передается в качестве аргумента команде cal? Как можно модифицировать выполнение этой команды?
  3. Что делает команда echo?
  4. Что следует записать в командной оболочке, чтобы получить данные о файлах (правах, размере и др.) текущего каталога?
  5. Стоит ли писать sleep 1000m в командной оболочке Linux, если вы не знаете как прервать выполнение команд?

Практическая работа

  1. В командной оболочке Linux выведите календарь на текущий месяц, затем на целый год и на любой нетекущий месяц.
  2. "Заставьте" командную оболочку Linux повторить введенную вами строку.
  3. Получите сведения о файлах вашего домашнего каталога.

Здравствуйте , у меня в

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

Была такая же проблема на

Была такая же проблема на восьмой убунте. Поставил девятую, проблема решилась.