Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Операционные системы -> Unix -> Программирование под *NIX SHELL


2. ФАЙЛОВАЯ СИСТЕМА

Файловая система ОС Unix имеет иерархическую (древовидную) структуру. В вершинах дерева находятся каталоги (используют также термины - справочники, директории), содержащие списки файлов. Эти файлы в свою очередь могут быть либо снова каталогами, либо обычными файлами, либо специальными файлами, представляющими различные устройства ввода-вывода.

			  /

			  |

  -----------------------------------------------------------

 |     |     |    |    |    |    |                 |    |     |

bin    boot  dev  etc  lib  mnt  sys    .   .   .  tmp  unix  usr

Kорневой каталог имеет имя "/". Он обычно содержит каталоги:

bin

для наиболее используемых команд;

usr

каталоги и обычные файлы, содержащие информацию, привлекаемую при решении задач пользователя;

dev

для специальных файлов, представляющих устройства (дисплеи, диски...);

etc

для хранения команд администратора системы;

lib

важнейшие библиотеки;

mnt

для подключения (примонтирования) новых файловых систем;

sys

средства для изменения конфигурации системы;

tmp

для хранения временных файлов;

usr

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

А также обычные (выполняемые) файлы:

unix

ядро;

boot

загрузчик.

Полные имена файлов будут: /bin, /usr, ..., /unix, /boot.

В свою очередь эти каталоги могут содержать каталоги следующего уровня. Например, каталог "usr", кроме прочего, содержит каталоги:

bin

хранит дополнительные команды;

games

игры;

include

хранит фрагменты системных программ;

lib

хранит дополнительные библиотеки.

полные имена этих файлов будут:

    /usr/bin   /usr/games   /usr/include   /usr/lib

Если в каталоге "/usr/include" содержится каталог "sys", который в свою очередь, содержит каталог "conf", то полное имя файла "conf" будет

    /usr/include/sys/conf

Формальным признаком полного имени является то, что оно начинается со слэша ("/").

Относительное имя начинается не с "/", и определят имя относительно своего местоположения. Если (пользователь?) в данный момент находится в директории /usr файловой системы, то он может обратиться к этому же файлу по относительному имени

	 include/sys/conf

Есть два специальных имени:

.

это "имя" текущего директория и

..

это "имя" родительского директория (т.е. директория,

находящегося на ступеньку выше данного на пути к корню).

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

В ряде систем длина имени ограничивается 14-ю символами (этого ограничения желательно придерживаться для переносимости файлов), однако в других системах допускаются более длинные имена - например, до 256 символов.

В общем случае не являются обязательными и какие-то расширения в именах. Хотя ряд команд требуют наличия некоторых фиксированных расширений в именах, например расширение ".с" для исходных файлов для Си-компилятора.

КСТАТИ. В ОС UNIX большие и маленькие буквы воспринимаются как различные, поэтому "FILE", "file" и "File" - это три различных имени!

ВАЖНОЕ ЗАМЕЧАНИЕ. Отдельные части файловой системы могут находиться на различных физических устройствах, например, на нескольких жестких и гибких дисках (или в различных частях одного диска). Соответствующие фрагменты (поддеревья файловой системы) монтируются (присоединяются) в единую файловую систему командой mount (обычно это функция администратора системы), после чего пользователь может обращаться к любым доступным файлам, при этом в имени никак не отражается устройство, на котором файл находится или создается (т.е. никаких "A:").

Командный язык ОС Unix - shell оперирует с командами. Более подробно о нем разговор далее, а пока рассмотрим несколько команд работы с файловой системой.

Например, в результате выполнения команды

	    ls -l /usr

где ls - имя команды; -l - флаг, говорящий о том, что выдача должна быть в длинном формате; /usr -имя каталога, который надо echo. На экран будет выведено

   drwxrwxr-x  2  root  2048  nov 3  12:11  bin

   -rwxr--r--  1  root   861  may 11 20:11  boot

   drwxrwxr-x  2  root  1024  jan 9  11:55  dev

   drwxrwxr-x  1  root  4096  may 11 20:11  dos

   drw-r--r--  3  root  4096  nov 17 12:01  include

   drwxr-xr-x  7  root  480   nov 17 12:30  lib

Первая строка означает, что это каталог (d-directory), где первая триада "rwx" разрешает владельцу каталога: r - читать, w - писать и х - выполнять (более точно, для файлов типа каталог w означает разрешение создавать файлы в каталоге и удалять их из него, а х разрешает доступ к файлам каталога); членам группы, в которую входит владелец, также разрешены все три операции. Последняя триада отражает права доступа прочих пользователей, которым разрешено только читать и выполнять (запрещено писать в этот файл, т.е. изменять содержимое каталога).

Далее, 2 - это число связей файла (т.е. где-то в системе есть еще одно имя, связанное с этим файлом); root - имя владельца, 2048 - число символов в файле, nov 3 12:11 - дата и время создания или последней модификации файла (3 ноября в 12-11); bin - имя файла (каталог команд).

Во второй строке указан обычный текстовый файл (boot), который прочие пользователи могут только читать.

Команда "pwd" (без флагов и аргументов) сообщает местоположение пользователя в файловой системе. С ее помощью выводится полное имя текущего каталога.

При входе в систему пользователь оказывается в определенной заранее вершине дерева. Пусть, например, это будет каталог "/usr".

Изменить местонахождение можно командой "cd <каталог>". Так можно перейти в каталог /usr/include/sys, набрав команду

	cd  /usr/include/sys

здесь указано полное имя , или

	cd  include/sys

здесь указано относительное имя.

Отличительный признак относительного имени - отсутствие символа "/" в начале.

Команда "cd .." осуществит переход вверх на предыдущий уровень. Из "/usr/include/sys" произойдет переход в "/usr/include", а команда "cd" (т.е. без параметров) осуществит переход в начальный директорий пользователя (т.е. директорий, в котором пользователь оказывается при входе в систему).

Создать новые каталоги можно с помощью команды

    mkdir <имена создаваемых каталогов>

Так команда "mkdir err new" создаст в данном каталоге два новых каталога с относительными именами "err" и "new".

Удалить пустой (не содержащий файлов) каталог можно с помощью команды

    rmdir <имена удаляемых каталогов>

Удалить обычный файл можно командой

    rm <имена удаляемых файлов>

Наиболее естественный для пользователя способ создания файлов - это использование текстового редактора "ed" или экранного редактора "red" (а также стандартных "vi" и "ех", или многочисленных прочих "фирменных").

В ОС Unix около 200 базовых команд - инструментальных средств, позволяющих пользователю решать многие свои проблемы, не прибегая к программированию на языках типа Си или использованию специальных пакетов.

Командой

    rm файл-1

можно удалить "файл-1".

Командой

   rmdir файл-1

можно удалить "файл-1", если это директорий, причем пустой (т.е. не содержит файлов).

Командой

    mv старое-имя новое-имя

можно переназвать файл.

Командой

    cp старое-имя новое-имя

можно скопировать файл (сохранив также старый).

Очень важна команда

    chmod 755 расчет

которая превращает файл "расчет", подготовленный в редакторе, в командный, иначе "расчет" при попытке вызова не будет выполнятся. Набор цифр здесь соответствует триадам двоичных представлений восьмеричных чисел и триадам прав доступа к файлам (rwx - чтение, запись, выполнение). То есть определяет, что создатель расчета может не только выполнить или распечатать текст этого расчета, но и вносить в него изменения (7:111 - rwx). А члены группы и прочие пользователи могу только читать и выполнять, но не могут изменять этот расчет (55:101101 - r-xr-x).

Содержание


 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.
 
Rambler's Top100