Автор работы: Пользователь скрыл имя, 29 Декабря 2011 в 20:20, курс лекций
Способы организации файловой системы, списки команд и т.д. ОС Unix
Введение
в Unix
Лабораторный практикум
Принятые обозначения
Нотация команд:
Команды в тексте выделяются курсивом, имена файлов и каталогов - жирным шрифтом.
Значки:
то, что находится под этим значком - практическое задание для вас. Введите указанные команды, проанализируйте их вывод, обращайте внимание на дополнительные указания.
этот значок призывает внимательнее отнестись к следующему за ним абзацу.
под этим значком приводятся дополнительные сведения или подробности, не обязательные для понимания и освоения материала данной темы.
рядом с этим
значком указывается каталог, в
котором вы должны находиться перед
началом ввода очередной
1. Изучение файловой системы
Войдите в систему в режиме командной строки, используя данные преподавателем имя и пароль. Система должна вывести приглашение командной строки (значок доллара, процента или тому подобное).
1.1. Получение справки
Команда
%man
файл
где файл - команда, программа, конфигурационный файл или библиотечная функция, по которой требуется получить справку. Справочник man состоит из нескольких разделов:
1: Команды пользователя
1M: Команды
для системного
2: Системные вызовы
3 (3B,3S,...): Библиотечные функции
4: Форматы файлов
5: Заголовки, таблицы, макросы, разное
6: Демонстрации
7: Интерфейсы устройств и сети
При упоминании какой-либо команды, функции или системного файла в литературе по Unix часто в скобках указывается номер раздела справочника man, например: "команда ls(1) предназначена для вывода списка файлов". Как правило man сам находит раздел с требуемой справкой, просматривая все разделы по очереди, поэтому для получения справки по команде ls достаточно ввести
%man ls
Управление скролингом текста:
Однако иногда требуемый термин может находиться сразу в нескольких разделах (printf - команда и библиотечная функция); в этом случае man выдаст документ из первого найденного раздела. Для получения документа из другого раздела используется ключ -s раздел. Для получения списка разделов, в которых встречается требуемый термин используется ключ -l. Ключ -a дает указание вывести все найденные справки из всех разделов друг за другом.
Обращайте
внимание на номера
разделов (они указываются
в заголовке каждой
страницы).
%man printf
%man -s 3S printf
%man -l printf
%man -a printf
1.2. Изучение файловой системы
Команда
%pwd
выводит полное имя текущего каталога (в котором вы находитесь).
Команда
%ls
выводит список файлов текущего каталога.
%ls -l
выводит список
файлов с их атрибутами, например:
-rwxr-xr-- 1 vm97 students 24380 Feb 3 2000 hello
ABBBBBBBBB C DDDD EEEEEEEE FFFFF GGGGGGGGGGGG HHHHH - см. ниже описание полей листинга
A. Тип файла
-
обычный файл;
d
каталог (фактически, каталог - это специальный файл, в котором перечислены файлы этого каталога);
l
символическая связь (файл, содержащий имя другого файла - является сылкой на этот файл; подробности ниже в команде ln);
c
символьное устройство (устройство, с которым операции чтения-записи производятся побайтно);
b
блочное устройство (операции чтения-записи буферизуются). Некоторые устройства являются только символьными (например, последовательный порт), а некоторые представлены в обоих вариантах (например, диск).
p
конвейер (pipe;
программный канал, организованный
в виде очереди, для передачи данных
между двумя процессами).
B. Права на использование файла
Следующие после типа файла 9 символов представляют собой права на использование файла: первая тройка символов - для пользователя-владельца файла, вторая - для группы-владельца, третья - для всех остальных. Наличие буквы в каждой тройке означает наличие соответствующего права:
для обычных файлов:
r - право на чтение содержимого файла
w - право на изменение содержимого файла
x - право на исполнение (запуск) файла
для каталогов:
r - право на получение списка файлов каталога
w - право на создание и удаление файлов в каталоге
x - право на "поиск" в каталоге
Набор прав --x для каталога позволяет войти в него и прочитать файл, имя которого заранее известно (при условии наличия прав чтения этого файла). Можно также выполнить команды ls и ls -l для этого файла. При этом получить список файлов (ls (-l) для каталога), а также создать или удалить файл нельзя.
Право r-- для каталога позволяет произвести чтение каталога, то есть получить список имен его файлов. При этом ни войти в каталог, ни узнать атрибуты файлов (ls -l), ни прочесть файл (даже при наличии прав чтения этого файла) нельзя. Создать или удалить файл, естественно, нельзя.
Что означают права -wx
для каталога? Где это может применяться?
Модификация файла требует прав на запись в файл, так как это операция над файлом. Удаление файла требует прав на запись в каталог, в котором находится этот файл - это операция над каталогом. Наличие права записи в файл не обязательно означает возможность его удалить (хотя можно размер файла уменьшить до нуля).
С. Число связей
Число жестких связей (имён) файла - подробнее см. ниже команду ln. Для каталога - число его подкаталогов (как минимум два - '.' точка и '..' две точки).
D. Пользователь-владелец файла
E. Группа-владелец файла
Группа - это
именованное множество
Пользователь-владелец файла (далее - просто владелец) не обязательно является членом группы-владельца, хотя и может быть таковым.
F. Размер файла в байтах
G. Дата последней модификации файла
H. Имя файла
%ls -a
ls -a выводит также файлы, имена которых начинаются с точки. По умолчанию эти файлы считаются "неинтересными" и не показываются. Во всех остальных аспектах это совершенно обычные файлы (кроме, конечно, файла '.' (точка), обозначающего текущий каталог, и файла '..' (две точки) обозначающего вышележащий каталог).
%ls -al
(обратите внимание на наличие символической связи)
Шелл bash для выполнения
начальных установок пользователя в некоторых
случаях читает файл .profile, а в некоторых
- .bashrc. Создание символической связи
позволяет не создавать два одинаковых
файла.
%ls b.txt
%ls -l b.txt
%ls prog
%ls -l prog
Проблема: как вывести атрибуты самого каталога, а не его содержимого. Возможные решения: ls -l (строка файла prog) и ls -al prog (строка файла '.') неудовлетворительны при большом числе файлов в текущем каталоге и в каталоге prog - получится слишком длинный листинг. Решение:
%ls -d prog
%ls -ld prog
%ls -ld .
%ls -l ..
%ls -ld ..
Команда
%cd каталог
- переход в указанный каталог. Без указания каталога - переход в домашний.
Каждый пользователь при входе в систему помещается в свой домашний каталог. Все файлы в этом каталоге принадлежат ему - это его собственное дисковое пространство в системе.
Далее в этом курсе будет использоваться значок для обозначения каталога, в котором вы должны находиться перед началом ввода очередной команды (серии команд), если это не домашний каталог. По умолчанию предполагается, что вы находитесь в своем домашнем каталоге. Например:
%pwd
%cd prog
/home/user1/prog
%pwd
%cd ..
%pwd
%cd /home
%pwd
%cd
%pwd
1.3. Изучение содержимого файла
Команда
%file имя_файла [имя_файла ...]
определяет тип
файла путем анализа его
Определите тип всех файлов вашего домашнего каталога и каталога prog.
Расширение файла (часть имени после точки) в Unix не имеет никакого специального значения. Например, для запуска файла требуется не расширение типа .exe, а право на исполнение.
Команда
%cat имя_файла
- выводит содержимое файла на терминал.
%cat b.txt
Команда
%more имя_файла
- пейджер (выводит файл постранично, с остановом). Фактически, команда man формирует текст справки и пропускает его через more. Поэтому команды управления прокруткой текста см. выше в описании man.
%more b.txt
Команда
%tail [-число] имя_файла