|
Previous | Содержание | Next ВВЕДЕНИЕ В UNIX4. КАТАЛОГИ И ФАЙЛЫПри регистрации пользователя ему назначается администра- тором собственный каталог пользователя (Home directory). 4.1. Печать рабочего каталога Узнать его имя можно так: $ pwd (print working directory) /users/mary Выводится полное имя рабочего (текущего) каталога /users/mary, где users - имя охватывающего каталога в иерар- хии каталогов ФС. Еще один охватывающий каталог root подра- зумевается по умолчанию (корневой главный каталог): root/users/mary = /users/mary. Изменение текущего каталога можно сделать командой cd, рассматриваемой позже. 4.2. Печать содержимого каталога $ ls - печать текущего каталога; $ ls -al -a(all) - все файлы и подкаталоги; -l(long) - полную информацию; $ ls / - печать каталога root; $ ls -l / - печать каталога root полная. 4.3. Структура корневого каталога Как правило, корневой каталог имеет следующую структуру, но администратор системы может изменять эту структуру. --------- | / | --------- | ---------+--------+--------+--------+--------+--------- | | | | | | | | | | | | | | ------- ------- ------- ------- ------- ------- ------- | dev | | lib | | bin | | usr | | etc | | tmp | |users| ------- ------- ------- ------- ------- ------- ------- специ- библио- часто | команды вре- каталоги альные теки исполь- | админи- менные пользова- файлы (под- зуемые | стратора файлы телей прогр.) команды | | ---------+--------- -----+---- | | | | ------- ------- ------- ------- | lib | |games| | bin | |peter|------ ------- ------- ------- ------- библио- игры редко теки используемые команды Каталоги можно посмотреть командой ls: $ ls -l /bin - часто используемые команды; $ ls -l /bin/bin - редко используемые команды; $ ls /dev - драйверы устройств; $ ls /users - каталоги пользователей. 4.4. Изменение рабочего каталога Изменение рабочего каталога производится командой (cd - change directory). $ cd /etc $ ls -l - печать команд администратора $ cd /usr $ ls -l bin - редко используемые команды $ cd - без параметров - возврат к собственному (home) каталогу. 4.5. Соглашения по наименованию каталогов и файлов Малые и большие буквы считаются различными. Символы . и _ разрешены только внутри имени. Тип файла указывается оконча- нием имени точкой с символом (основные): .c - программа на C (например, program.c); .h - текст на C, включаемый в программу на C (header); .f - программа на языке ФОРТРАН; .p - программа на языке ПАСКАЛЬ; .o - объектный код, полученный транслятором с любого языка; .a - библиотечный (архивный) файл. 4.6. Печать содержимого файла Команда cat (от concatenate) - сцепить несколько (или один) файлов и направить результат на стандартный вывод (Standart Output), обычно на экран дисплея. Пример: $ cat /etc/motd - посмотреть файл (message of today) The system will down at 17:00. Этот файл, создаваемый администратором для текущих объяв- лений, обычно печатается автоматически при входе в систему (login). Если Вы забыли его содержание, можно напечатать еще раз как в примере. 4.7. Просмотр конца файла Команда tail печатает конец файла. По умолчанию - 10 пос- ледних строк: $ tail /usr/pub/greek . . . . Явно можно задать количество (со знаком -) или номер строки, от которой печатать до конца (со знаком +): $ tail -3 /usr/greek - три последние строки; $ tail +6 /usr/greek - последние строки, начиная с 6-й. 4.8. Определение типа файла Применяется команда file: $ file /bin/ls /usr/bin etc/passwd usr/include/stdio.h /bin/ls: pure executable - исполняемый; /usr/bin: directory - каталог; /etc/passwd: ascii text - текст в коде ASCII; /usr/include/stdio.h:C program text - текст C-программы. 4.9. Создание каталога пользователем Ваш рабочий каталог, являющийся корнем вашей ветви ФС, создается администратором. Вы можете создать нижележащие ка- талоги командой mkdir (make directory). Типичная структура каталогов пользователей (с учетом групп): ---------- | users | ---------- | ---------------------+-+------------------------------- | | ---------- ---------- | group 1| | group 2| . . . каталоги групп ---------- ---------- | | | ------------------ | . . . | --+--------------------+------------------------------- | | ---------- ---------- корневые катало- | mary | | peter | ги пользователей ---------- ---------- группы group1 | -+------------------------+------------ | | ---------- ---------- внутренние каталоги | progs | | texts | пользователе, соз- ---------- ---------- даваемые по mkdir | | | ---------- -+----------+---------------- | | | | | ---------- ---------- ---------- | | c | | p | | f | | ---------- ---------- ---------- | |- ф | | | | ---------- |- а --+-- --+-- --+-- ---|letters |--+- й ///// ///// ///// ---------- |- л файлы файлы файлы |- ы Для создания такой структуры следует выполнить команды: $ cd - вернуться "домой" (home); $ mkdir progs texts - создать каталоги в home; $ cd progs - перейти в каталог progs; $ mkdir c p f - создать каталоги в progs и так далее. 4.10. Копирование файлов командой cp Это простейший способ создать файл: $ cp /etc/motd message. Полагая, что текущий каталог progs/c, мы создали файл progs/c/message. Можно копировать файл в текущий или другой каталог, не меняя его имени: cp /etc/motd progs/c. Будет создан файл progs/c/motd. Если текущий каталог progs/c, того же эффекта достигает команда: $ cp /ets/motd . (с точкой в качестве параметра). Если второй аргумент каталог, то в качестве первого можно указывать несколько файлов: $ cp /etc/motd /usr/include/stdio.h progs/c Режим доступа файла - копии совпадает с режимом доступа исходного файла (см. раздел 4.16). 4.11. Перенос и переименование файлов командой mv Эта команда переносит файл или каталог из одного места файловой системы в другое. Побочный эффект - переименование (если исходный и конечный каталоги совпадают). Отличие от копирования: исходный файл пропадает. Пример: $ mv message mesg $ ls mesg .... Если файл назначения защищен от записи, то система печа- тает режим доступа и спрашивает подтверждение переноса. Пример: $ cp message mesg $ chmod 444 message - только чтение $ mv mesg message message: mode 444? y Второй аргумент может быть каталогом, тогда файл перено- сится под тем же именем: $ mv message progs/c $ cd progs.c $ ls message .... Как и в случае cp может быть перенесено несколько файлов, если "второй" аргумент - каталог. 4.12. Удаление файлов командой rm rm удаляет файл из каталога и уничтожает его: $ cd progs/c $ rm motd $ ls message (нет motd) Можно удалить одной командой rm несколько файлов. Есть интерак- тивный вариант, требующий подтверждения на каждый файл (ключ -i): $ rm -i file1 file2 file1 : n (no - нет) file2 : y (yes - да) Можно форсировать уничтожение ключом -f (даже если файл защищен по записи): -f и -i взаимно исключают друг друга. $ rm -f stdio.h. Однако этими средствами нельзя уничтожить каталог, пока не уничтожены все файлы. Это можно сделать рекурсивно: ключ -r (уничтожить все поддиректории) $ rm -r progs. Вариант: $ rm -r * - уничтожить все поддерево. 4.13. Уничтожение пустого каталога: rmdir Пустой каталог удаляется (remove directory): $ rmdir progs [rmdir:progs not empty] - сообщение, если каталог не пуст. 4.14. Использование метасимволов *, ?, [] Метасимволы служат для подстановки любых строк и симво- лов. В именах файлов в командах языка заданий Shell: * - представляет произвольную строку (возможно, пустую); ? - любой одиночный знак; [C1 - C2] - любая литера из диапазона C1 - C2 (в стандар- те ASCII). Примеры: 1) $ ls c? c1 c2 c3 cs cz 2) $ ls c* c1 c12 c2 c23 c3 cs cs1 cxy cz 3) $ ls ?1* c1 c12 4) $ ls *1* c1 c12 cs1 5) $ ls c [12 x y z] c1 c2 cz 6) ls c [12 x y z *] c1 c2 c12 c25 cz cxy 4.15. Непечатные символы в именах файлов Символы со знаком control: ^A, ^[ (escape) и т.п., полу- ченные одновременным нажатием клавиши Ctrl и указанной после символа ^ клавиши, не видны на печати. Команда ls может по- казать файл, а rm и другие команды могут не принять имя это- го файла (т.к. часть символов не видна). Выход - в использо- вании * в именах (или использование режима rm -i): $ ls arron circle square triangle $ rm square rm: square non-existent (если вместо q в имени ^q) $ ls s* square $ rm s* $ Теперь файл удален. 4.16. Владелец файла и защита файла Каждый файл и каталог имеют владельца - обычно это поль- зователь, создавший их в первый раз. Владелец может затем назначить защиту файла со стороны трех классов пользовате- лей:
Каждый файл имеет 3 вида разрешения на доступ: - чтение (r) read - можно читать (смотреть) содержимое файла или каталога (читать с ключом -l в ls); - запись (w) write - можно менять содержимое файла или каталога (создавать или удалять файлы в каталоге); - выполнять (x) execute - использовать файл как команду UNIX и искать (search) в ката- логе. Все комбинации трех видов разрешения доступа для трех классов пользователей (9 комбинаций) записываются в формате (если все права есть) rwx rwx rwx или 777 | | | Владелец | | Группа | Остальные Отсутствие права доступа указывается минусом: r--r--r- или 444 Пример: $ ls -l /bin -r-xr-xr-x 1bin 1986 Nov.26 12:00 ar ... Эта команда показывает режимы доступа. 4.17. Установка и изменение режима доступа к файлу: chmod Формат команды chmod(change mode) для установки режима: chmod <режим> <файлы> Пример: $ chmod 644 f1 f2 f3 где 644 соответствует rw-r--r-- Формат команды chmod для изменения режима: chmod <изменения> <файлы> В изменениях используются обозначения: u - user r - read g - group w - write o - other x - execute a - all = - назначить + - добавить - - отнять Пример: $ ls -l -r-------- ... f1 -r-------- ... f2 -r-------- ... f3 $ chmod a = r, u + w f1 f2 f3 или (эквивалентный вариант изменения прав доступа) $ chmod u = rw, go = r f1 f2 f3 $ ls -l -rw-r--r-- ... f1 -rw-r--r-- ... f2 -rw-r--r-- ... f3 $ chmod o-r f1 f2 f3 $ ls -l -rw-r----- ... f1 -rw-r----- ... f2 -rw-r----- ... f3, Другие пользователи, не входящие в группу, потеряли право читать файлы. Previous | Содержание | Next |
|||||||||||||||||
With any suggestions or questions please feel free to contact us |