Введение в Unix
Лабораторный практикум

1. Изучение файловой системы

(продолжение)

Войдите в систему в режиме командной строки.

1.6. Основные каталоги файловой системы Linux -

Цель: получить представление об общем устройстве дерева фаловой системы Unix и об основных каталогах и их предназначении. Изучение производится на примере ОС Linux . В других Unix-системах могут быть некоторые непринципиальные отличия.


/  -  корневой каталог в UNIX


%ls -l /
Изучите список каталогов верхнего уровня

/etc/

В каталоге /etc содержатся системные конфигурационные файлы. Все эти файлы - текстовые. Пример

/etc/

Сообщение, выводимое при входе в систему:
%more motd

Имя компьютера:
%more HOSTNAME

%cd rc2.d
%ls

В каталоге /etc/rc2.d содержатся файлы, исполняемые при загрузке операционной системы. По умолчанию загружается только ядро и его системные процессы. Все остальные сервисы, включая поддержку сети, обслуживание сеансов работы пользователей и проч., запускаются из файлов этого каталога. Содержание и назначение этих файлов изучаются в "Администрировании Unix".

/usr/

В каталоге /usr содержатся команды, утилиты, библиотеки, документы справочника man и т.п. То есть в этом каталоге находится вся "исполняемая" часть Unix, за исключеним ядра. Основные подкаталоги каталога /usr:

/usr/bin
(он же /bin) - команды Unix для обычного пользователя.
/usr/sbin
- команды Unix для выполнения задач администрирования.
/usr/lib
- библиотеки: статические и разделяемые.
/usr/include
- заголовочные файлы функций языка С.
/usr/share/man
(он же /usr/man) - документы справочника man.
/usr/X11R6
- поддерево системы X-Windows (Open Windows): команды и утилиты, библиотеки, справочник и т.п.
 

Грубо говоря, X-Windows определяет как вообще работают программы с оконным интерфейсом, каков их протокол взаимодействия с X-сервером. Утилиты X-Windows устанавливают параметры X-сервера: используемые шрифты, геометрию окон, разрешения на подсоединение программ с других компьютеров и т.д.

Десктоп определяет вид пользовательского интерфейса (где находятся кнопки у окон, как они выглядят, как выглядит toolbar и что в нем находится и т.п.). В состав десктопа входят такие приложения как терминал, менеджер файлов, текстовый редактор, калькулятор и т.д.

Для X-Windows разработано несколько десктопов. Считается стандартными KDE и GNOME.

/usr/local
- поддерево установки дополнительных программ.

В /usr/local устанавливается ПО общесистемного назначения: компиляторы, дополнительные утилиты, библиотеки. Большие пакеты прикладного характера ставятся обычно в /opt.

Каталог /usr/local по своей структуре копирует основные подкаталоги /usr: bin, lib, man, include.

/usr/

%ls bin
%ls sbin

Просмотрите список команд в этих каталогах, прочтите справку по команде с заитересовавшим вас именем.

%ls lib

Обратите внимание на расширения файлов: .a - статические библиотеки (архивы объектных файлов), .so - динамические библиотеки. Файл libc - стандартная библиотека языка Си.

%/Bfile 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 X11R6
%ls X11R6/bin

%ls local
%ls local/bin
Обратите внимание, какие программы имеются в /usr/local/bin. попробуйте получить справку по этим программам (например, host). Если man не находит требуемого документа, то, вероятно он не производит поиск в /usr/local/man (это регулируется переменной окружения MANPATH); попробуйте такой вариант:
%man -M /usr/local/man host

а теперь установим переменную MANPATH:
%MANPATH=/usr/man:/usr/local/man
%export MANPATH
%man host
%man -a host

/dev/

В этих каталогах находятся специальные файлы типов b и c, представляющие собой устройства компьютера.

Спецфайлы в каталоге /dev организованы по принципу размещения устройств на системной шине компьютера.

%ls
(устройства делятся на настоящие устройства, расположенные на шине PCI, и псевдо-устройства (например, оперативная память mm или псевдотерминалы pts, к которым подключается программа telnet.

 

/dev/

%ls
%ls -l tty?
(это последовательные порты - они же терминалы)

%ls -l pts   
   (это псевдотерминалы, используемые программой telnet - они являются псевдоустройствами)

%ls hd?
%ls -l hd?
   (разделы дисков с блочным доступом; обратите внимание куда указывают связи)
   
%ls -l fd?
(флоппи-диск)
   
%ls -l mem   
   (оперативная память - пседоустройство)

%ls -l null   
   (весь вывод, направленный в файл /dev/null, уничтожается, а ввод из него имеет нулевую длину;
   обратите внимание, что это псевдоустройство того же класса, что и /dev/mem)

/var/

В подкаталогах каталога /var хранятся временные или служебные файлы различных программ. Основные подкаталоги каталога /var:

/var/log
- журналы регистрации событий в системе.
/var/mail
- новая (непрочитанная) поста пользователей.
/var/spool
- различные очереди (на печать, на отправку почты, на выполнение заданий по расписанию).
/var/tmp
- различные временные файлы.

/var/

%ls
%ls -l log
%tail log/syslog

%ls -l mail
%ls -ld tmp
   Обратите внимание: запись в этот каталог разрешена всем.
   Аналогичную функцию выполняет каталог /tmp, но природа его файловой системы другая,
   что, в общем-то, для пользователя не имеет значения.
   
%ls -ld /tmp

/root/

Каталог /root - домашняя директрия суперпользователя(root) - администратора ОС UNIX.

/home/

В каталоге /home размещены домашние каталоги обычных пользователей.

/opt/

В каталоге /opt располагаются большие пакеты прикладного ПО (аналог каталога Program Files).

/sbin/

В каталоге /sbin располагаются самые необходимые команды и утилиты системного админитратора (в том числе и его шелл /sbin/sh), поскольку в случае сбоя системы каталог /usr/sbin может быть недоступен (о файловых системах и монтировании - в следующих разделах курса).

/boot/

В это каталоге расположено ядро операционной системы (файл vmlinuz), драйверы устройств и другие служебные файлы.

%ls -l /home
%ls -l /opt
%ls -l /sbin
%ls -l /boot

2. Полезные утилиты

2.1. Текстовый редактор vi

Редактор vi является стандартным экранным текстовым редактором Unix. Несмотря на некоторую недружественность и кажущуюся архаичность своего интерефейса, этот редактор имеет несколько неоспоримых преимуществ:

  1. vi работает с большим числом типов терминалов; если тип терминала неизвестен vi может перейти из экранного режима в однострочный с сохранением своей функциональности. Учитывая, что в MS Windows telnet эмулирует терминал не совсем корректно, vi может оказаться единственным работающим на этом терминале редактором.
  2. В работе с vi используются только символы с кодами ASCII. Клавиши, генерирующие расширенные коды (стрелки, функциональные клавиши, <Del> и т.п.), требующие тонкой настройки терминала и не всегда поддерживаемые, не применяются. (Однако, стрелки - в дополнение к обычным командам перемещения курсора - могут работать, если терминал их поддерживает.)
  3. vi производит редактирование аккуратно: не сворачивает длинные строки, не заменяет табуляции пробелами и т.п.

Эти преимущества, в особенности - последнее из них, имеют решающее значение при редактировании системных файлов. Например, сворачивание длинной строки в /etc/vfstab приведет к тому, что систему будет невозможно загрузить. Поэтому

Редактирование системных файлов производится только редактором vi!

С другой стороны, vi не претендует на роль офисного текстового процессора и для работы с литературными текстами не используется.

Ниже приведены основные команды vi. Для информации по всем командам редактора обратитесь к справочнику man.

Для многих команд ввод числа перед командой означает "повторить команду указанное число раз": например, 5h смещает курсор на 5 символов вправо, а 10dd удаляет 10 строк подряд.

Распространенная ошибка: подача команд в режиме вставки или, что хуже, попытка ввода текста в командном режиме. (Представьте, что будет, если вы пытаетесь ввести текст "10x" или "1000dd", не переключившись в режим вставки!)

Загрузите файл b.txt в редактор vi:
%vi b.txt
Редактируйте файл, используя все приведенные выше команды.


САМОПРОВЕРКА

К настоящему моменту вы должны знать и следующие команды и ключи к ним. Внимательно просмотрите весь список. Если вы что-то забыли, обращайтесь к справочнику man.
>, cat filename, cd, cp (-R), file, head (-N), ln (-s), ls (-ald), man (-salM),
more, mv, od (-Njtc), pwd, rm (-rf), rmdir, tail (-N), touch, type, vi, which
Завершите сеанс работы
%exit