Шрифт:
Интервал:
Закладка:
1.10. Справочная система
«Родной» для UNIX справочной системой, аналогом Справки Windows, служат страницы интерактивного руководства (manual pages, man-страницы). Ими снабжена практически каждая программа, важный конфигурационный файл или системный вызов. Это обычные текстовые файлы, содержащие сведения о назначении, синтаксисе, опциях команды, формате файла, примеры их применения, имена и URL разработчиков. Обычный дистрибутив содержит тысячи страниц такой документации. Просматривают ее командой man. Например, man man — это вызов справки о самой команде man.
При установке каждого программного пакета включенные в его состав man-страницы копируются в стандартные каталоги, так что программа man легко их находит. В этих каталогах страницы сгруппированы в секции по темам. Перечислим эти секции в порядке просмотра программой man:
1 Команды пользователя
8 Системные команды
2 Системные вызовы
3 Библиотечные вызовы (подпрограммы)
4 Устройства
5 Форматы файлов
6 Игры
7 Разное
9 Ядро (kernel internals)
Так что, если вас интересует справка не о консольной команде exit, а о системном вызове exit(), запрашивайте ее командой man 2 exit.
Чтобы ознакомиться с содержанием раздела, введите команду
man <номер_раздела> intro
Вот несколько самых употребительных команд управления выводом man-справки на экран:
<Ввод> вывод следующей строки текста
<Пробел> вывод следующего экрана текста
<Q> выход из программы
</>образец<Ввод> поиск образца
<N> повторение поиска.
Альтернативой команде man служит гипертекстовая справочная система info. Ссылки обозначены звездочками (*), и перемещает по ним клавиша <Tab>. Чтобы пройти по ссылке, нажмите <Ввод>. Чтобы перейти на следующую или предыдущую страницу, нажмите <N> или <P> соответственно. Чтобы попасть на один уровень иерархии страниц вверх, нажмите <U>. И клавиша <Q> завершает работу с программой info.
Сверхкраткую (одна строка) справку о командах дает команда
whatis <ключевое_слово>
Для работы ей нужна база данных о системных командах, создаваемая программой makewhatis.
Если точного имени команды вы не знаете, но примерно догадываетесь, какие фрагменты слов могут встретиться в ее имени или кратком описании, вам поможет команда apropos, производящая поиск в той же базе по фрагментам слов. Например, отдав команду
$ apropos config
вы получите список команд, имеющих отношение к конфигурированию системы и различных служб.
Команда man с ключом -k тоже умеет выполнять поиск по ключевым словам. Если вы хотите узнать, какие программы имеют отношение к некоторому системному файлу (конфигурационному или журнальному, например, /etc/passwd), введите команду
$ man -k passwd
Вы получите список man-страниц по командам, функциям, формата файлов и т.п., на которых встречается слово «passwd». В общем, поиск информации в справочной системе UNIX очень похож на поиск в Интернете: находите что-то похожее и переходите по ссылкам все ближе к истине.
Есть и команда help: она выводит справку о встроенных командах командной оболочки (о командных оболочках сказано в гл.3).
Наконец, правильно написанные команды понимают ключи --help и --usage, с которыми выдают краткую справку о себе.
К сожалению, многие страницы документации на русский язык пока не переведены. Linux — ОС некоммерческая, и переводом занимаются добровольцы на общественных началах. Может быть, со временем к ним присоединитесь и вы? А пока загляните на
http://www.linuxshare.ru/projеcts/trans/index.html
Глава 2
Файловая система LINUX
2.1. Видимая сторона файловой системы
С точки зрения пользователя, файловая система — это логическая структура каталогов и файлов. В отличие от Windows, где каждый логический диск хранит отдельное дерево каталогов, во всех UNIX-подобных системах эта древовидная структура растет из одного корня: она начинается с корневого каталога, родительского по отношению ко всем остальным, а физические файловые системы разного типа, находящиеся на разных разделах и даже на удаленных машинах, представляются как ветви этого дерева.
2.1.1. Имена файлов и каталогов
Имена файлов и каталогов могут иметь длину до 255 символов. Символы «/» (слэш) и символ с кодом 0 запрещены. Кроме того, ряд символов имеет специальное значение для командного интерпретатора, и их использование не рекомендуется. Это символы:
~ ! @ # $ & % * ( ) [] {} ' " : ; > < ` пробел
Если вам все-таки нужно употребить один их этих символов в имени файла, то при указании его имени в команде этот символ нужно экранировать знаком «» (обратный слэш) или заключать все имя в двойные кавычки. Например, вы хотите вывести на экран командой cat содержимое текстового файла с именем my file, содержащим символ пробела:
$ cat my file # неправильно
cat: my: No such file or directory
cat: file: No such file or directory
$cat "my file" # правильно
Привет!
$cat my file # правильно
Привет!
Знак # — это символ комментария для командного интерпретатора bash, о котором подробнее рассказано в главе 8. Командный интерпретатор игнорирует все символы от этого знака до конца введенной строки. Возможность комментировать не слишком полезна при вводе команд с консоли, но неоценима при написании командных сценариев, о которых мы еще будем говорить.
Заметьте, что точки среди специальных символов нет, и имена вроде this.is.а.text.file.containing.the.famous.string.hello.world допустимы и широко распространены. Часто последняя отделенная точкой часть имени используется подобно «расширению имени» в Windows, обозначая файл определенного типа, но это обозначение несет смысл только для человека. Так, человеку имя файла ivan_home.tar.gz подсказывает, что это домашний каталог пользователя ivan, упакованный архиватором tar и сжатый компрессором gzip.
Если имя файла начинается с точки, то этот файл считается скрытым: некоторые команды его «не видят». Например, введя в своем домашнем каталоге команду просмотра содержимого каталога ls с ключом -а, означающим «показывать скрытые файлы», вы увидите больше файлов, чем введя ту же команду без ключей.
Linux различает регистр символов в именах файлов: так, в одном каталоге могут находиться два разных файла README и Readme. Кстати, файлы с подобными именами обычно содержат информацию, действительно достойную прочтения.
Имена каталогов строятся по точно тем же правилам, что и имена файлов.
Полным именем файла (или путем к файлу) называется список вложенных друг в друга каталогов, заканчивающийся собственно именем файла. Начинаться он может с любого каталога, потому что в древовидной структуре между любыми двумя узлами существует путь. Если этот список начинается с корневого каталога, то путь называется абсолютным. Если с любого другого — то относительным (по отношению к этому каталогу).
Корневой каталог обозначается символом «/» (слэш), и этим же символом разделяются имена каталогов в списке. Таким образом, абсолютным именем файла README в домашнем каталоге пользователя den будет /home/den/README.
В каждом каталоге существуют два особых «подкаталога» с именами «две точки» и «точка». Первый из них служит указанием на однозначно определенный родительский каталог, а второй — на сам данный каталог. Для корневого каталога, у которого нет родителя, оба эти «подкаталога» указывают на корневой каталог. С помощью этих имен образуются относительные имена файлов. Так, именем вышеупомянутого файла README относительно домашнего каталога /home/ivan пользователя ivan будет ../den/README.
2.1.2. Назначение основных системных каталогов
В системных каталогах находятся файлы, необходимые для управления и сопровождения системы, а также стандартные программы. Их имена, расположение и содержание почти одинаковы почти во всех ОС Linux, поэтому эти каталоги называют также стандартными. Впрочем, на данный момент эпитет «стандартные» отражает скорее благие пожелания, чем действительность: иерархия каталогов одинакова только для дистрибутивов, связанных единством происхождения, а исторически сложившиеся различия создают опасность несовместимости разных дистрибутивов. Стандарт файловой иерархии для UNIX-подобных систем разрабатывает группа добровольцев, и с его текущей версией можно ознакомиться по адресу http://www.pathname.com/fhs.
Краткое описание основных каталогов линии Red Hat и Fedora Core сведено в табл. 2.1.
- Операционная система UNIX - Андрей Робачевский - Программное обеспечение
- Разработка приложений в среде Linux. Второе издание - Майкл Джонсон - Программное обеспечение
- Искусство программирования для Unix - Эрик Реймонд - Программное обеспечение
- Linux - Алексей Стахнов - Программное обеспечение
- Fedora 8 Руководство пользователя - Денис Колисниченко - Программное обеспечение
- Недокументированные и малоизвестные возможности Windows XP - Роман Клименко - Программное обеспечение
- Изучаем Windows Vista. Начали! - Дмитрий Донцов - Программное обеспечение
- Windows Vista - Виталий Леонтьев - Программное обеспечение
- Архитектура операционной системы UNIX - Морис Бах - Программное обеспечение
- Windows Vista. Трюки и эффекты - Юрий Зозуля - Программное обеспечение