WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Архив » Файловая система

Файловая система


Дата публикации: 17-03-2013

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

/
|
+----------+----------+-----+-----+----------+----------+
| | | | | |
bin usr sys mnt etc dev

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

/bin - для наиболее используемых команд;
/usr - каталоги и обычные файлы, содержащие информацию, привлекаемую при решении задач пользователя;
/dev - для специальных файлов, представляющих устройства (дисплеи, диски...);
/etc - для хранения команд администратора системы;
/lib - важнейшие библиотеки;
/mnt - для подключения (примонтирования) новых файловых систем;
/sys - средства для изменения конфигурации системы;
/tmp - для хранения временных файлов;
/usr - каталоги и обычные файлы, содержащие информацию, привлекаемую при решении задач пользователя.
А также обычные (выполняемые) файлы:

/unix - ядро;
/boot - загрузчик.
Полные имена файлов будут: /bin, /usr, ..., /sys, /etc.

В свою очередь эти каталоги могут содержать каталоги следующего уровня. Например, каталог "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).

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Март 2017 (1)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта

Хотите продать свой сайт?
- Мы быстро и удобно для Вас сможем его купить:
  • Заявка на продажу сайта
  • Раcсматриваем цены на каждый сайт в индивидуальном порядке.

    Случайная цитата

    Alan J. Perlis:

    "Когда кто-то говорит: «Я хочу язык программирования, который может делать все, что ему скажу», то я даю этому человеку леденец."

    Опрос

    Какой текстовый редактор Вы используете?

    OpenOffice
    AbiWord
    Notepad++
    UltraEdit
    PSPad
    Microsoft Office
    Microsoft Блокнот
    Другой...