Изучение файловой системы
(продолжение)
Войдите в систему в режиме командной строки.
Основные каталоги файловой системы Unix
Цель: получить представление об общем устройстве дерева файловой системы Unix основных каталогах и их предназначении.
% ls -l /
Изучите список каталогов верхнего уровня
/etc/
В каталоге /etc содержатся системные конфигурационные файлы. Все эти файлы - текстовые. Пример
/etc/
В каталоге /etc/rc2.d содержатся файлы, исполняемые при загрузке операционной системы. По умолчанию загружается только ядро и его системные процессы. Все остальные сервисы, включая поддержку сети, обслуживание сеансов работы пользователей и проч., запускаются из файлов этого каталога.
/usr/
В каталоге /usr содержатся команды, утилиты, библиотеки, документы справочника man и т.п. То есть в этом каталоге находится вся "исполняемая" часть Unix, за исключеним ядра. Основные подкаталоги каталога /usr:
/usr/bin
(он же /bin) - команды Unix для обычного пользователя.
/usr/sbin
- команды Unix для выполнения задач администрирования.
/usr/ccs/bin
- команды, необходимые для компиляции и сборки программного обеспечения (make,ar,ld и др.) - кроме, собственно, компилятора Си, который с системой не поставляется.
/usr/lib
- библиотеки: статические и разделяемые.
/usr/include
- заголовочные файлы функций языка С.
/usr/share/man
(он же /usr/man) - документы справочника man.
/usr/openwin
- поддерево системы X-Windows (в исполнении SUN - Open Windows): команды и утилиты, библиотеки, справочник и т.п.
/usr/dt
- поддерево десктопа CDE для X-Windows.
Грубо говоря, X-Windows определяет как вообще работают программы с оконным интерфейсом, каков их протокол взаимодействия с X-сервером. Утилиты X-Windows устанавливают параметры X-сервера: используемые шрифты, геометрию окон, разрешения на подсоединение программ с других компьютеров и т.д.
Десктоп определяет вид пользовательского интерфейса (где находятся кнопки у окон, как они выглядят, как выглядит toolbar и что в нем находится и т.п.). В состав десктопа входят такие приложения как терминал, менеджер файлов, текстовый редактор, калькулятор и т.д.
Для X-Windows разработано несколько десктопов. CDE считается стандартным
/usr/local
- поддерево установки дополнительных программ.
В /usr/local устанавливается ПО общесистемного назначения: компиляторы, дополнительные утилиты, библиотеки. Большие пакеты прикладного характера ставятся обычно в /opt.
Каталог /usr/local по своей структуре копирует основные подкаталоги /usr: bin, lib, man, include.
/usr/
Обратите внимание на расширения файлов: .a - статические библиотеки (архивы объектных файлов), .so - динамические библиотеки. Файл libc - стандартная библиотека языка Си.
% file libc.so % file libc.a % ar -t libc.a(последняя команда распечатывает содержание статической библиотеки)
% ls include % ls -l man % ls -l share/manКаждый подкаталог каталога man содержит документы соответствующего раздела. Документы являются текстовыми файлами с символами форматирования. Команда man перед показом пропускает документ через форматирующую программу, а после этого - через пейджер more.
% ls share/man/man1 (последний символ - единица) % more share/man/man1/cp.1 (последний символ - единица) % man cp (сравните результаты двух последних команд) % ls openwin % ls openwin/bin % ls dt % ls dt/bin % ls local % ls local/binОбратите внимание, какие программы имеются в /usr/local/bin. попробуйте получить справку по этим программам (например, perl).
/dev/ и /devices/
В этих каталогах находятся специальные файлы типов b и c, представляющие собой устройства компьютера. Обычно в Unix спецфайлы лежат в каталоге /dev, однако может в /dev находятся только ссылки на спецфайлы, которые на самом деле размещены в каталоге /devices.
Спецфайлы в каталоге /devices организованы по принципу размещения устройств на системной шине компьютера.
/devices/
% ls(устройства делятся на настоящие устройства, расположенные на шине PCI, и псевдо-устройства (например, оперативная память mm или псевдотерминалы pts, к которым подключается программа telnet)
Имена устройств из каталога /devices/ не используются в обычной практике по причине своей неудобозапоминаемости и, что главное, - из-за зависимости от аппаратной конфигурации компьютера. Вместо этого, как и во всех Unix-системах употребляются файлы из каталога /dev, которые, однако, в этой системе являются символическими связями, указывающими на соответствующий файлы в /devices. При этом достигается независимость от аппаратной части: например, /dev/dsk/c0t0d0s0 - это всегда первый раздел первого жесткого диска.
Конфигурирование каталогов /dev и /devices (если необходимо) происходит при загрузке операционной системы.
/dev/
/var/
В подкаталогах каталога /var хранятся временные или служебные файлы различных программ. Основные подкаталоги каталога /var:
/var/log
- журналы регистрации событий в системе.
/var/adm
- журналы регистрации событий административного контекста.
/var/mail
- новая (непрочитанная) поста пользователей.
/var/spool
- различные очереди (на печать, на отправку почты, на выполнение заданий по расписанию).
/var/tmp
- различные временные файлы.
/var/
/home/
В каталоге /home размещены домашние каталоги пользователей.
/opt/
В каталоге /opt располагаются большие пакеты прикладного ПО (аналог каталога Program Files).
/sbin/
В каталоге /sbin располагаются самые необходимые команды и утилиты системного админитратора (в том числе и его шелл /sbin/sh), поскольку в случае сбоя системы каталог /usr/sbin может быть недоступен (о файловых системах и монтировании - в следующих разделах курса).
/kernel/
В это каталоге расположено ядро операционной системы (файл genunix), драйверы устройств и другие служебные файлы.
Полезные утилиты
2.1. Текстовый редактор vi
Редактор vi является стандартным экранным текстовым редактором Unix. Несмотря на некоторую недружественность и кажущуюся архаичность своего интерефейса, этот редактор имеет несколько неоспоримых преимуществ:
1. vi работает с большим числом типов терминалов; если тип терминала неизвестен vi может перейти из экранного режима в однострочный с сохранением своей функциональности. Учитывая, что в MS Windows telnet эмулирует терминал не совсем корректно, vi может оказаться единственным работающим на этом терминале редактором.
2. В работе с vi используются только символы с кодами ASCII. Клавиши, генерирующие расширенные коды (стрелки, функциональные клавиши, < Del > и т.п.), требующие тонкой настройки терминала и не всегда поддерживаемые, не применяются. (Однако, стрелки - в дополнение к обычным командам перемещения курсора - могут работать, если терминал их поддерживает.)
3. vi производит редактирование аккуратно: не сворачивает длинные строки, не заменяет табуляции пробелами и т.п.
Эти преимущества, в особенности - последнее из них, имеют решающее значение при редактировании системных файлов. Например, сворачивание длинной строки в /etc/vfstab приведет к тому, что систему будет невозможно загрузить. Поэтому
Редактирование системных файлов производится только редактором vi!
С другой стороны, vi не претендует на роль офисного текстового процессора и для работы с литературными текстами не используется.
Ниже приведены основные команды vi. Для информации по всем командам редактора обратитесь к справочнику man.
j - курсор на строку вниз;
k - курсор на строку вверх;
l (буква "эль") - курсор на символ вправо;
h - курсор на символ влево;
x - удалить символ под курсором;
dd - удалить строку, на которой стоит курсор;
i - перейти в режим вставки текста перед; символом, на котором стоит курсор;
a - (на конце строки) перейти в режим вставки текста в конец строки;
o - вставить новую строку после текущей и перейти в режим вставки с начала этой новой строки;
В режимах вставки работает < Backspace > для удаления предыдущего введенного символа.
< Esc > - вовзрат из режима вставки (любого) в командный режим.
/ word - поиск слова word в тексте от текущей позиции курсора вперед; курсор позиционируется в начало найденного фрагмента;
ZZ (< Shift >-z-z) - выход с сохранением файла;
:q! - выход без сохранения файла.
Для многих команд ввод числа перед командой означает "повторить команду указанное число раз": например, 5h смещает курсор на 5 символов вправо, а 10dd удаляет 10 строк подряд.
Распространенная ошибка: подача команд в режиме вставки или, что хуже, попытка ввода текста в командном режиме. (Представьте, что будет, если вы пытаетесь ввести текст "10x" или "1000dd", не переключившись в режим вставки!)
Загрузите файл b.txt в редактор vi:
% vi b.txtРедактируйте файл, используя все приведенные выше команды.
Uch a
% >b
% ls -l