Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
63
Добавлен:
20.04.2015
Размер:
2 Mб
Скачать

2.5.3. Рассмотрим использование нескольких опций одной команды

Каждая системная команда имеет свой набор опций, которые можно указать вместе, поставив перед ними один знак «-» (дефис). Записать несколько опций разделенных пробелами, можно указывая перед каждой из них свой знак «-».

Приведем пример записи нескольких опций команды ls, которая выводит содержимое каталога. Опция –l этой команды выдает список полной информации о каждом файле, опция же –a еще и скрытые файлы. Если нужно выполнить команду с обоими свойствами, то можно задать

ls –la

либо

ls -l -a

В обоих случаях результат будет одинаков. Мы уже приводили его ранее.

Из всех опций одной команды могут быть выделены группы взаимоисключающие друг друга. Учитывая, что одной команде можно давать сразу несколько параметров, изучим примеры, в которых заданы опции, действия которых противоречивы. Например, команда ls с опцией –l выдает полную информацию о каждом файле, а опция C – короткую, в несколько столбиков.

Если две противоречивые опции (–C) и (–l) команды ls задать вместе, то результат зависит от того, в каком порядке они записаны. Вывод осуществляется так, как диктует последний из записанных параметров (расположенный правее). Например, такая команда

ls –alC /home/asplinux

выведет следующее

.

.font.cash-1

.metacity

..

.gconf

.morilla

.bash_history

.gconfd

.noutilus

.bash_logout

.gnome2

.pulse

.bash_profile

.gnome2 private

.pulse-cooke

.bashrc

.gstreamer-0.10

.recently-used.xbel

.config

.gtk-bookmarks

.tomboy

.cshrc

.gvfs

.tomboy.log

.dbus

.ICEauthority

.wapi

.default_context

.ICEauthority

.wapi

.esd_auth

.local

.xsession-errors

.zshrc

а такая

lsaCl /home/asplinux

даст более полную информацию о каждом из файлов. Последняя занимает отдельную строку.

Приведем пример задания противоречивых опций на примерах ввода команд cal и date, а затем - man. Первая из них выводит календарь и имеет много опций. Изучим две из них. Сначала дадим

cal –j 11 2009

Ноябрь 2009

Вск Пнд Втр Срд Чтв Птн Суб

305 306 307 308 309 310 311

312 313 314 315 316 317 318

319 320 321 322 323 324 325

326 327 328 329 330 331 332

333 334

Она выводит данные в форме, при которой выводятся номера дня, начиная с 1 января текущего года, а не с начала месяца. Более привычную форму записи получаем такой командой

cal -m 11 2009

Ноябрь 2009

Пн Вт Ср Чт Пт Су Вс

1

2 3 4 5 6 7 8

9 10 11 12 13 14 15

16 17 18 19 20 21 22

23 24 25 26 27 28 29

30

Для всех четырех форм записи команды cal

cal -j -m

cal -m –j

cal –jm

cal –mj

результат получится как после применения опции –j.

Таким образом, независимо от того, в каком порядке записаны опции -j и -m для команды cal результат будет одним и тем же, как для команды с опцией -j.

Теперь рассматриваем команду date. Она позволяет пользователю с привилегиями администратора изменять системную дату, а остальным пользователям выводить информацию об установленной в системе дате и времени. Системная утилита имеет много параметров, с широким многообразием формата вывода результата. К примеру, если задать ее без параметров

date

будет выведено следующее

Вск Апр 9 08:49:17 MSD 2006

Приведем несколько примеров команды date с разными параметрами

date +%А

Воскресенье

date +%D

04/09/06

Отметим, что здесь порядок вывода информации такой: месяц, день и год. Заметим, что отдельные параметры команды надо набирать без пробелов.

date +%А%D

Воскресенье01/31/10

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

date "+%А %D"

В следующей команде между числами дни, месяцы и год поставлен другой разделитель — символ «/».

date +%d/%m/%y

31/01/10

Если команде дать противоречивые опции, то выдается результат обеих. Например, параметр %S выводит время UNIX (количество секунд с 1 января 1970 года), а %s – только секунды текущего времени в привычной записи (параметры команды заключены в кавычки и разделены пробелом).

date “+%s %S

1264932134 25

date “+%S %s

29 1264932138

Две последние команды должны дать разный результат (секунды летят быстро — разница во времени запущенных команд).

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

man –k -f passwd

manf -k passwd

выдают одинаковый результат

man: Опции -k и -f несовместимы

Задание 16.

Изучите применение противоречивых опций (%r - %T) для команды date и (a - i) для – hostname.

Таким образом, можно сделать вывод о том, что разные команды по-разному обрабатывают ситуацию «противоречивые опции».

Соседние файлы в папке Операционные системы