Организация конвейеров команд
Конвейером называется группа команд, объединённых программными каналами. Программный канал образуется назначением стандартного вывода одной команды стандартным вводом следующей команды. Для формирования программного канала используется знак | (вертикальная черта).
Пример
Можно подсчитать число работающих UNIX-пользователей с помощью команды wc -l (word count – счет слов), используя вывод команды who:
$ who | wc -l – создание списка активных пользователей и подсчет их числа;
19 – ответ, то есть 19 пользователей.
Использование метасимволов
Имена файлов в командах могут быть записаны с использованием метасимволов *, ?, [ ], заменяющих часть имени в файлах:
* - любое число символов в имени файла;
? – любой одиночный символ;
[a1a2] –символы а1, а2 (в общем случае любое количество);
[a1-a2] –любой символ из диапазона а1..а2 (в стандарте ASCII).
Файловая система ОС UNIX
Общие сведения
Понятие файла в ОСUNIX максимально унифицировано. Файлами считаются обычные файлы, каталоги, каналы; внешние устройства представляются в виде специальных файлов. Доступ к файлам любого вида однотипен. Таким образом, доступ к внешним устройствам такой же, как к обычным файлам. Такой подход обеспечивает независимость программы пользователя от особенностей ввода-вывода на конкретное внешнее устройство. Это определяет мобильность программ, работающих под управлением ОСUNIX.
Структура
Рис.1. Структура файловой системы
Файловая система UNIX имеет иерархическую древовидную структуру (рисунок 1). В корневом каталоге размещаются другие каталоги и файлы. UNIX допускает существование нескольких файловых систем, присоединяемых к корневому каталогу. Как правило, корневой каталог содержит следующие каталоги:
/bin –часто используемые команды;
/tmp –временные файлы;
/users –каталог пользователей;
/etc –административные утилиты и файлы;
/dev –специальные файлы;
/lib –библиотеки,
но администратор системы может их изменить.
В обозначении каталога черта / свидетельствует о принадлежности к корневому каталогу.
· начальный каталог (home directory) – это каталог в каталоге usr, который администратор назначает пользователю и в который пользователь попадает при входе в систему. Имя начального каталога совпадает с идентификатором пользователя;
· текущий (current) рабочий каталог – это каталог, в котором в данный момент находится пользователь. Обозначение текущего каталога . ;
· родительский каталог – это каталог, которому принадлежит текущий. Обозначение родительского каталога .. .
Именование файлов
Имена файлов бывают простыми и составными. Простое имя файла может быть комбинацией от 1 до 14 символов, кроме знаков *, ?,“, ‘, [,], /. В именах файлов и каталогов малые и большие буквы считаются различными. Поиск файла с простым именем начинается с текущего каталога.
Составное имя может начинаться с простого имени, и тогда это имя считается относительным (relative pathname), т.к. имя файла в этом случае задается относительно текущего каталога.
Полное составное имя файла (absolute pathname) образуется из последовательности имен каталогов, разделенных косой чертой и начинается со знака /.
Если пользователь хочет сослаться на свой файл из начального каталога, то он может использовать более короткое имя. Это имя называется частичным составным (partial pathname).
Механизм защиты файлов
Файловая система UNIX обеспечивает возможность совместного использования файлов различными пользователями и обеспечивает защиту файлов от несанкционированного доступа. При этом пользователя делят на три категории:
· владелец файла;
· член группы, к которой принадлежит владелец;
· все остальные пользователи.
В UNIX существует три типа доступа к файлам (напомним, что каталог в UNIX тоже является файлом):
· чтение из файла;
· запись в файл;
· выполнение файла.
Для обозначения прав доступа используются символы:
· r – разрешение на чтение;
· w – разрешение на запись;
· x – разрешение на выполнение;
· - – отсутствие разрешения.