Файловая система операционной системы UNIX (2 глава дипломной работы), страница 2

Каждому пользователю системы UNIX выделяется домашний каталог – каталог, в котором пользователь располагает файлы, с которыми работает. Обычно пользователь имеет полные права на все файлы и каталоги, расположенные в его домашнем каталоге. Как правило, рядовые пользователи имеют права на запись только в своем домашнем каталоге (а также в каталоге временных файлов - /tmp, /var/tmp).

Имя домашнего каталога обычно совпадает с регистрационным именем пользователя. Кроме того, к своему домашнему каталогу пользователь может обращаться по сокращенному обозначению «~» (символ «тильда»):

cd ~

cat ~/mywork/prog1.c

При входе систему текущим для данного пользователя становится его домашний каталог.

2.3 Основные команды управления файлами.

Команды управления файлами подчиняются общим принципам построения команд в UNIX. Команда вводится в командной строке, состоит из одного или более слов, разделенных пробелами. Первое слово задает собственно команду, остальные (если они присутствуют) являются параметрами команды. Параметрами команд, в частности, могут быть имена файлов. Особым типом параметров являются ключи – алфавитные символы, задающие или корректирующие действие команды. Ввод команды завершается нажатием Enter. Как и в именах файлов, в написании команд различаются заглавные и строчные буквы.

При указании имен файлов в качестве параметров допускается использовать шаблоны (маски) имен, позволяющие одной командой обратиться более чем к одному файлу. В шаблонах (масках) могут указываться следующие специальные символы:

*

Означает любую последовательность символов, включая пустую

?

Означает любой одиночный символ

[…]

Означает любой из символов, заключенных в скобки; пара символов, разделенных знаком «-», сокращенно задает интервал символов.

Примеры шаблонов:

Пример шаблона

Значение

Соответ-ствует

Не соответ-ствует

*.с

Все файлы, имена которых заканчиваются на «.с»

test1.c

a.c

test1.C

a.c.bak

a?c

Все файлы, имя которых начинается с «а», затем идет любой символ, затем окончание «с»

abc

a1c

a.c

abbc

ac

test[0-9]

Все файлы, имя которых состоит из слова «test» и одной цифры

test0

test5

test9

test

testa

test1.c

[ab]*

Все файлы, имена которых начинаются на символ «а» или «b»

alpha

b52e

b

Alpha

test

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

ls [-ключи] [имя]

Команда просмотра содержимого каталога (списка файлов). При запуске без параметров выдает полный список имен файлов и подкаталогов текущего каталога (кроме скрытых файлов, имя которых начинается с символа «точка»); при этом имена файлов и каталогов визуально не различаются. Если в качестве параметра «имя» указано имя каталога, выдается содержимое заданного каталога. Параметр «имя» может задавать шаблон (маску) имен файлов; в этом случае будут выведены имена файлов, соответствующие этой маске. Наиболее употребительные ключи команды ls: -pпозволяет выделить из общего списка имена каталогов (символом «/», приписанным к имени); -a означает вывод весх файлов, включая скрытые (имя начинается с символа «точка»), -l включает выдачу полной информации о каждом файле (тип, права, число жестких ссылок, владелец, группа-владелец, размер в байтах, дата и время модификации). Пример выводимой информации:

-rw-r--r--  1  john  users  36482 Dec 22 19:30 report.txt

-rwxr-xr--  2  root  root    7214 Jan 17 11:26 adduser

Ключи могут комбинироваться (напр., ls –lp, ls –lap).

            ls – получить список файлов и подкаталогов для текущего каталога;

ls –l /usr/sbin – получить подробную информацию о содержимом каталога /usr/sbin;

ls –l *.c – получить сведения о файлах текущего каталога, имена которых заканчиваются на «.с».

pwd

Выдает полное имя текущего каталога.

cd <каталог>

Производит смену текущего каталога на указанный каталог (переход в указанный каталог).

            cd /usr/sbin – перейти в каталог /usr/sbin;

cd .. – перейти в каталог, родительский по отношению к текущему (перейти на один уровень выше по дереву файловой системы);

cd text – перейти в каталог text (подразумевается, что каталог text расположен в текущем каталоге).

cd ~   - перейти в свой домашний каталог.

mkdir <имя_каталога>

Создание каталога с указанным именем.

            mkdir test

     mkdir /home/john/programs

     mkdir ../work

rmdir <имя_каталога>

            Удаление указанного каталога.

cp <файл(ы)> <куда>

Копирование указанного файла (или группы файлов, заданных шаблоном имени). Если в качестве второго параметра указано имя каталога, команда скопирует файл(ы) в этот каталог. Если вторым параметром указано имя файла (несуществующего на момент выполнения команды), указанный файл будет скопирован с заданным именем.

            cp test1.c test1.bak – копирование указанного файла;

     cp *.c /home/john/backup – копирование всех файлов, имена которых заканчиваются на «.с», в указанный каталог;

cp text ~ - скопировать файл «text» в домашний каталог.

mv <файл(ы)> <куда>

Переименование или перемещение файлов. Смысл параметров аналогичен команде ср.

rm <файл(ы)>

Удаление указанного файла или группы файлов, заданных шаблоном имени.

            rm test.bak – удаление файла test.bak;

rm * - очистка текущего каталога (удаление всех файлов)

chown <пользователь> <файл(ы)>

Изменить владельца указанного файла (или группы файлов) на пользователя, имя которого задано первым аргументом. Во многих реализациях UNIX команду chown может выполнять только суперпользователь root (администратор системы).

            chown john *.txt – сделать пользователя john владельцем всех текстовых файлов текущего каталога.

Изменить права доступа для указанных файлов. В качестве параметров команда принимает указание классов доступа (‘u’ – для владельца, ‘g’ – для группы-владельца, ‘o’ – для остальных пользователей, ‘a’ – для всех классов пользователей), операцию по изменению прав («+» - добавить права, «-» - удалить права, «=» - присвоить) и права доступа («r» - чтение, «w» - запись,  «x» - исполнение для файлов, просмотр содержимого для каталогов).

chmod u+x prog1 – добавить владельцу право на исполнение программного файла prog1;

chmod a-w file1.dat – снять права на запись для всех пользователей (сделать файл доступным только для чтения).

chmod g=rwx test – задать полные права на файл test для пользователей, принадлежащих к группе-владельцу.

2.4 Визуальная оболочка Midnight Commander.

Для упрощения работы пользователей в консольном режиме разработаны визуальные программы-оболочки. Наиболее распространенной из них является свободно распространяемая программа Midnight Commander (mc). В случае, если стандартная поставка OC не содержит данного пакета, имеет смысл загрузить его из Internet и установить. Программа Midnight Commander (mc) доступна через многие узлы FTP, где представлена как в виде исходного кода (универсального, но требующего компиляции), так и в виде готовых пакетов («двоичных») для конкретных версий UNIX.

Визуальное представление файловой системы и принципы работы пользователя в Midnight Commander в целом совпадают с известной оболочкой Norton Commander для DOS. Экран разделен на два окна (панели), каждое из окон отображает некоторый каталог; один из отображаемых каталогов – текущий. Специальные типы файлов в панелях помечаются символом слева от имени: «/» - каталог, «~» - символическая ссылка, «*» - исполняемый файл и т.п.

Запуск оболочки выполняется командой

            mc

Основные операции выполняются в основном функциональными клавишами, значение которых аналогично используемому в Norton Commander.

F1 – справка (помощь);

F2 – вызов пользовательского меню;

F3 – просмотр файла;

F4 – редактирование файла;

F5 – копирование;

F6 – перемещение или переименование;

F7 – создание каталога;

F8 – удаление файла или каталога;

F9 – вызов системного меню;

F10 – выход из mc.

Особенности внешнего вида панелей, а также работы с функциональными клавишами, могут зависеть от версии mc, его настроек, а также особенностей применяемого терминала. В частности, ряд эмуляторов терминала требует вместо нажатия функциональных клавиш (F1, F2 … F10) использовать последовательности Esc 1, Esc 2 … Esc 0.