Пользователи системы



страница6/42
Дата01.12.2017
Размер5.38 Mb.
ТипПрограмма
1   2   3   4   5   6   7   8   9   ...   42

Командная строка


Основная среда взаимодействия с Linux - командная строка. Суть ее в том, что каждая строка, передаваемая пользователем системе, - это команда, которую та должна выполнить. Пока не нажат Enter, строку можно редактировать, затем она отсылается системе:

[methody@localhost methody]$ cal

Сентября 2004

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

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

[methody@localhost methody]$ echo Hello, world!

Hello, world!

Пример 2.3. Команды echo и cal (html, txt)

Команда cal выводит календарь на текущий месяц, а команда echo просто выводит на терминал все, что следовало в командной строке после нее. Получается, что одну и ту же команду можно использовать с разнымипараметрами (или аргументами), причем параметры эти изменяют поведение команды. Здесь Мефодий захотел посмотреть календарь за март 2005 года, для чего и передал команде cal два параметра - 3 и 2005:

[methody@localhost methody]$ cal 3 2005

Марта 2005

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

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 31



Пример 2.4. Команда cal с параметрами (html, txt)

В большинстве случаев при разборе командной строки первое слово считается именем команды, а остальные - ее параметрами. Более подробно о разборе командной строки и работе с ней рассказано в разделе "Интерпретатор командной строки (shell)" и в лекции 7.


Подсистема помощи


Пока же Мефодий решил, что узнал о командной строке достаточно для того, чтобы воспользоваться главнымикомандами Linux (по частоте их употребления при изучении системы) - man и info.

Работать с Linux, не заглядывая в документацию, практически невозможно. На это способны только седые аксакалы, у которых все нужные знания не то что в голове - в кончиках пальцев, и новички. Всем прочимнастоятельно рекомендуем, приступая к работе, а тем более - к изучению Linux, пользоваться всеми доступнымируководствами.

Все утилиты, все демоны Linux, все функции ядра и библиотек, структура большинства конфигурационных файлов, наконец, многие умозрительные, но важные понятия системы описаны либо в руководствах, либо в info-страницах, либо, на худой конец, в несистематизированной сопроводительной документации. Поэтому от пользователя системы не требуется заучивать все возможные варианты взаимодействия с ней. Достаточно понимать основные принципы ее устройства и уметь находить справочную информацию. Эйнштейн говорил так: "Зачем запоминать то, что всегда можно посмотреть в справочнике?"

Страницы руководства (man)


Больше всего полезной информации содержится в страницах руководства (manpages), для краткости мы будем называть их просто "руководство". Каждая страница посвящена какому-нибудь одному объекту системы. Для того чтобы посмотреть страницу руководства, нужно дать команду системе man объект:

[methody@localhost methody]$ man cal

CAL(1) BSD General Commands Manual CAL(1)

NAME


cal - displays a calendar

SYNOPSIS


cal [-smjy13] [[month] year]

DESCRIPTION

Cal displays a simple calendar. If arguments

are not specified, the current month is

displayed.

The options are as follows:

. . .

Пример 2.5. Просмотр страницы руководства (html, txt)

Страница руководства занимает, как правило, больше одной страницы экрана. Для того чтобы читать было удобнее, man запускает программу постраничного просмотра текстов - less. Управлять программой less просто: страницы перелистываются пробелом, а когда читать надоест, надо нажать "q" (Quit). Перелистывать страницы можно и клавишами Page Up/Page Down, для сдвига на одну строку вперед можно применять Enter или стрелку вниз, а на одну строку назад - стрелку вверх. Переход на начало и конец текста выполняется по командам "g" и "G" соответственно (Go). Полный список того, что можно делать с текстом в less, выводится по команде "H" (Help).

Страница руководства состоит из полей - стандартных разделов, с разных сторон описывающих заинтересовавший Мефодия объект - команду cal. В поле NAME содержится краткое описание объекта (такое, чтобы его назначение было понятно с первого взгляда). В поле SYNOPSIS дается формализованное описание способов использования объекта (в данном случае - того, как и с какими параметрами запускать команду cal). Как правило, в квадратные скобки в этом поле заключены необязательные параметры команды, которые можно ей передать, а можно и опустить. Например, строка "[[month] year]" означает, что в этом месте командной строки параметров у команды может не быть вообще, может быть указан год или пара - месяц и год. Наконец, текст в поле DESCRIPTION - это развернутое описание объекта, достаточное для того, чтобы им воспользоваться.

Одно из самых важных полей руководства находится в конце текста. Если в процессе чтения NAME илиDESCRIPTION пользователь понимает, что не нашел в руководстве того, что искал, он может захотеть посмотреть, а есть ли другие руководства или иные источники информации по той же теме. Список таких источников содержится в поле SEE ALSO:

[methody@localhost methody]$ man man

. . .


SEE ALSO

apropos(1), whatis(1), less(1), groff(1), man.conf(5).

. . .

Пример 2.6. Поле SEE ALSO руководства (html, txt)

До этого поля Мефодий добрался с помощью уже известной команды "G". Не то чтобы ему неинтересно было читатьруководство по man, скорее наоборот: им двигала любознательность. В поле SEE ALSO обнаружились ссылки наруководства по less, groff (программе форматирования страницы руководства), структуре конфигурационного файла для man, а также по двум сопутствующим командам с такими говорящими названиями "Apropos" и "whatis"1), что Мефодий немедленно применяет одну команду к имени другой, даже не заглядывая в документацию. Так ни в коем случае не следует делать! А что если запущенная программа начнет с того, что сотрет все файлы в Вашем каталоге?

[methody@localhost methody]$ whatis apropos

apropos (1) - search the whatis database for strings

[methody@localhost methody]$ man apropos

apropos(1) apropos(1)

NAME

apropos - search the whatis database for strings



. . .

Пример 2.7. Вызов whatis (html, txt)

На этот раз Мефодию повезло: команда whatis не делает ничего разрушительного. Как и команда apropos , whatisищет подстроку в некоторой базе данных, состоящей из полей NAME всех страниц помощи в системе. Различие между ними в том, что whatis - только среди имен объектов (в левых частях полей NAME), а apropos - по всей базе. В результате у whatis получается список кратких описаний объектов с именами, включающими искомое слово, а у apropos - список, в котором это слово упоминается. Для того, чтобы это узнать, все равно пришлось один раз прочесть документацию.

В системе может встретиться несколько объектов разного типа, но с одинаковым названием. Часто совпадают, например, имена системных вызовов (функций ядра) и программ, которые пользуются этими функциями изкомандной строки (т. н. утилит):

[methody@localhost methody]$ whatis passwd

passwd (1) - update a user's authentication tokens(s)

passwd (5) - password file

passwd (8) - manual page for passwd wrapper version 1.0.5

Пример 2.8. Руководства с одинаковыми именами (html, txt)

Описания объектов, выводимые whatis, отличаются числом в скобках - номером раздела. В системе руководствLinux - девять разделов, каждый из которых содержит страницы руководства к объектам определенного типа. Все разделы содержат по одному руководству с именем "intro", в котором в общем виде и на примерах рассказано, какие объекты имеют отношение к данному разделу:

george@localhost:~> whatis intro

intro (1) - Introduction to user commands

intro (2) - Introduction to system calls

intro (3) - Introduction to library functions

intro (4) - Introduction to special files

intro (5) - Introduction to file formats

intro (6) - Introduction to games

intro (7) - Introduction to conventions and

miscellany section

intro (8) - Introduction to administration and

privileged commands

intro (9) - Introduction to kernel interface



Пример 2.9. Руководства intro (html, txt)

Вот названия разделов в переводе на русский:



  1. Команды пользователя.

  2. Системные вызовы (пользовательские функции ядра Linux; руководства рассчитаны на программиста, знающего язык Си).

  3. Библиотечные функции (функции, принадлежащие всевозможным библиотекам подпрограмм; руководстварассчитаны на программиста, знающего язык Си).

  4. Внешние устройства и работа с ними (в Linux они называются специальными файлами, см. лекцию 10).

  5. Форматы различных стандартных файлов системы (например,конфигурационных).

  6. Игры, безделушки и прочие вещи, не имеющие системной ценности.

  7. Теоретические положения, договоренности и все, что не может быть классифицировано.

  8. Инструменты администратора (часто недоступные обычному пользователю).

  9. Интерфейс ядра (внутренние функции и структуры данных ядра Linux, необходимые только системному программисту, исправляющему или дополняющему ядро).

В частности, пример с passwd показывает, что в системе "Some Linux", которую использует Мефодий, есть программа passwd (именно с ее помощью Мефодий поменял себе пароль в предыдущей лекции), файл passwd, содержащий информацию о пользователях, и администраторская программа passwd, обладающая более широкими возможностями. По умолчанию man просматривает все разделы и показывает первое найденноеруководство с заданным именем. Чтобы посмотреть руководство по объекту из определенного раздела, необходимо в качестве первого параметра команды man указать номер раздела:

[methody@localhost methody]$ man 8 passwd

PASSWD(8) System Administration Utilities PASSWD(8)

. . .


[methody@localhost methody]$ man -a passwd

PASSWD(1) Some Linux PASSWD(1) . . .

PASSWD(8) System Administration Utilities PASSWD(8) . . .

PASSWD(5) Linux Programmer's Manual PASSWD(5) . . .



Пример 2.10. Выбор среди страниц руководства с одинаковым именем (html, txt)

Если в качестве первого параметра man использовать "-a", будут последовательно выданы все руководства с заданным именем. Внутри страниц руководства принято непосредственно после имени объекта ставить в круглых скобках номер раздела, в котором содержится руководство по этому объекту:man (1), less(1), passwd(5) и т. д.


Info


Другой источник информации о Linux и составляющих ее программах - справочная подсистема info. Страница руководства, несмотря на обилие ссылок различного типа, остается "линейным" текстом, структурированным только логически. Документ info структурирован прежде всеготопологически - это настоящий гипертекст, в котором множество небольших страниц объединены в дерево. В каждом разделе документа info всегда есть оглавление, из которого можно перейти сразу к нужному подразделу, откуда всегда можно вернуться обратно. Кроме того, info-документ можно читать и как непрерывный текст, поэтому в каждом подразделе есть ссылки на предыдущий и последующий подразделы:

[methody@localhost methody]$ info info

File: info.info, Node: Top, Next: Getting Started, Up: (dir)
Info: An Introduction

. . .


* Menu:
* Getting Started:: Getting started using an Info reader.

* Expert Info:: Info commands for experts.

* Creating an Info File:: How to make your own Info file.

* Index:: An index of topics, commands, and variables.

. . .

--zz-Info: (info.info.bz2)Top, строк: 24 --All------------



Welcome to Info version 4.6.

Type ? for help, m for menu item.



Пример 2.11. Просмотр info-документа (html, txt)

Программа info использует весь экран: на большей его части она показывает текст документа, а первая и две последних строки служат для ориентации в его структуре.

Одна или несколько страниц, которые можно перелистывать клавишей Пробел или Page Up/Page Down - этоузел (node)Узел содержит обычный текст и меню (menu) - список ссылок на другие узлы, лежащие в дереве на более низком уровне. Ссылки внутри документа имеют вид "* имя_узла::" и перемещать по ним курсор можно клавишей Tab, а переходить к просмотру выбранного узла - клавишей Enter. Вернуться к предыдущему просмотренному узлу можно клавишей "l" (oт "Last"). И, главное, выйти из программы info можно, нажав "q" ("Quit"). Более подробную справку об управлении программой info можно в любой момент получить у самой info, нажав "?".

Узлы, составляющие документ info, можно просматривать и подряд, один за другим (с помощью команд "n", Next, и "p", Previous), однако это используется нечасто. В верхней строке экрана info показывает имя текущего узла, имя следующего узла и имя родительского (или верхнего) узла, в котором находится ссылка на текущий. Показанные Мефодию имя узла Top и имя верхнего узла (dir) означают, что просматривается корневой узелдокумента, выше которого - только каталог со списком всех info-деревьев. В нижней части экрана расположена строка с информацией о текущем узле, а за ней - строка для ввода длинных команд (например, для поиска текста с помощью команды "/").

Команде info можно указывать в параметрах всю цепочку узлов, приводящую к тому или иному разделу документации, однако это бывает нужно довольно редко:

[methody@localhost methody]$ info info "Getting Started" Help-Q

File: info.info, Node: Help-Q, Prev: Help-Int,

Up: Getting Started
Quitting Info

. . .


Пример 2.12. Просмотр определенного узла info-документа (html, txt)

Сам ли Мефодий это придумал, или подсказал кто, но совершенно правильно было заключить в кавычки имя узла"Getting Started" - в этом случае info искала узел по "адресу" "info -> Getting Started -> Help-Q". Если бы команда имела вид info info Getting Started Help-Q, то "адрес" получился бы неправильный: "info -> Getting -> Started -> Help-Q". Ничего таинственного в этом нет, и уже к концу лекции станет понятно, в чем здесь дело (см. раздел "Слова и разделители").





Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   ...   42


База данных защищена авторским правом ©vossta.ru 2019
обратиться к администрации

    Главная страница