Основные положения. Изучение файловой системы в ОС UNIX

Лабораторая работа 2

Изучение файловой системы в ОС UNIX

Цель работы

Исследование команд навигации в файловой системе, команд управления файлами и каталогами, создания новой файловой системы, монтирования и размонтирования ФС. Ознакомление с командами связи, создания специальных файлов, сопровождения и восстановления ФС и создания архивов на ленте или диске.

Основные положения

cd – изменяет текущий каталог.

СИНТАКСИС

сd [new-directory] - изменяет текущий каталог на new-directory.

cd.. – переходит в каталог на уровень выше.

cd ~ – переходит в рабочий каталог пользователя.

pwd — выводит полное имя текущего католога

СИНТАКСИС

pwd [option]

ОПИСАНИЕ

Все компоненты распечатываемого имени также являются именами католагов и не могут быть символическими ссылками. Имеет только две тривиальные опции: --help и —version. Поскольку большинство оболочек имеют встроенную команду с таким же именем, поэтому использоване ее в сценариях может дать другой эффект.

ls – выводит содержимое каталогов и информацию об указанных файлах.

СИНТАКСИС

ls [option]…[file]…

ОПИСАНИЕ

Выводит информацию об указанных файлах file; по умолчанию отображает на экране содержимое текущего каталога без скрытых фалов.

КЛЮЧИ

-a выводит список всех файлов каталога, включая скрытые.

-А выводит список всех файлов в каталогах.

-В не включает в список файлы резервных копий.

-I pattern не включает в список файлы, чьи имена совпадают с шаблоном pattern.

-R отображает рекурсивно содержимое всех каталогов

-h размер отображается в мегабайтах.

-i печатает слева от имени каждого файла в листинге длинного формата его индексный дескриптор.

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

-s печатает слева от имени количество занимаемых блоков размером 1024 байт.

-r везде, где используется сортировка, выполняет ее в обратном порядке.

-u не выполняет сортировку и включает файлы в список в том порядке, в котором они хранятся в каталоге.

find – производит поиск файлов в дереве каталогов

СИНТАКСИС

find [path…] [explression]

ОПИСАНИЕ

Команда find может производить поиск файлов по маршруту path по многочисленным критериям:

· по имени файла или шаблону имени

· по ссылкам

· по размеру

· по типу

· по владельцу или по группе

· с определенными полномочиями доступа

· по глубине вхождения в структуру каталога

· по комбинации перечисленных условий

Выражение expression состоит из опций командной строки, тестов, которые возвращают значение истинно или ложно, и действий.

КЛЮЧИ

-depth обрабатывает содержимое каждого подкаталога перед обработкой собственно каталога.

-maxdepth levels производит поиск в дереве каталогов не глубже указанного уровня levels.

-mindepth levels производит поиск в дереве каталогов уровня levels и глубже.

-mount не выполняет поиск в каталогах других файловых систем.

-version печатает номер версии программы и завершает ее.

-amin n поиск файла, к которому производилось обращение n минут тому назад.

-atime n поиск файла, к которому производилось обращение n*24 часов тому назад.

-cmin n поиск файла, состояние которого последний раз изменено n минут тому назад.

-ctime n поиск файла, состояние которого последний раз изменено n*24 часов тому назад.

-empty поиск пустого фала или пустого каталога.

-gid поиск фала, принадлежащего группе, числовой идентификатор которой равен n.

-group gname поиск файла, принадлежащего группе gname.

-inum n поиск файла, индексный дескриптор которого равен n.

-links n поиск файла, на который указывают n ссылок.

-nouser поиск файла, принадлежащего несуществующему пользователю.

-nogroup поиск файла, принадлежащего несуществующей группе.

-size n[bckw] поиск файла указанного размера n. Приняты следующие единицы измерения:

b блоки размером 512 байт

с байты

k килобайты

w слова размером 2 байта

-type c поиск файла заданого типа с. Приняты следующие типы файлов:

b блочно-специальный

с символьно-специальный

d каталог

p буфер FIFO

f обычный файл

l символическая ссылка

s сокет

-user uname поиск файла, принадлежащего владельцу uname.

grep – печатает строки, совпавшие с шаблоном

СИНТАКСИС

grep [OPTIONS] PETTERN [FILE...]

grep [OPTION] [-e PATTERN | -f FILE] [FILE...]

ОПИСАНИЕ

Команда grep ищет в поименованных входных файлах file строки, содержащие заданный шаблон pattern. Если имена файлов не заданы, в качестве входного файла предполагается стандартный ввод. По умолчанию grep печатает совпавшие строки.

Существуют три разновидности grep, управляемые следующими опциями:

-G интерпретирует шаблон pattern как базовое регулярное выражение. Это положение принято по умолчанию.

-Е интерпретирует шаблон pattern как расширенное регулярное выражение.

-F интерпретирует шаблон pattern как список фиксированных строк, разделяемых символом newline (новая строка), любая из которых должна быть сопоставима.

КЛЮЧИ

-А num печатает строки завершающего контекста в количестве num после совпавших строк.

-В num печатает строки завершающего контекста в количестве num до совпавших строк.

-С num печатет num строк выходного текста. По умолчанию – две строки.

-b печатает смещение в байтах внутри входного файла до каждой строки вывода.

-c вместо обычного вывода для кадого входного файла печатает количество совпавших строк.

-f file получает шаблоны из файла file, по одному в каждой строке.

-i при поиске игнорирует чувствительность к регистру в шаблоне и во входных файлах

-q запрещает обычный вывод, обработка завершается на первом найденном совпадении.

-r считывает все файлы каталога рекурсивно

-v действует наоборот – выбирает несовпадающие с шаблоном строки.

-w выбирает только те строки, где найдено целое совпадение слова с образцом.

cat – объединяет файлы и направляет их на стандартный вывод.

СИНТАКСИС

cat [option][file…]

ОПИСАНИЕ

Команда cat записывает содержимое каждого заданного файла или стандартного вывода, если имена файлов не указаны или вместо имени стоит дефис, на стандартный вывод. Изначально команда cat предназначалась для объединения файлов. Для просмотре больших файлов следует использовать команды more и less – они производят поэкранный вывод содержимого.

КЛЮЧИ

-b нумерует все непустые строки выходного файла, начиная с 1

-n нумерует все строки выходного файла, начиная с 1

-s заменяет набор пустых строк одной пустой строкой

-v выводи управляющие символы, кроме символов перевода строки и табуляции, используя при этом символ ^

-E выводит в конце каждой строки символ $

-T выводит символы табуляции в следующем формате - ^]

more – фильтр для вывода текста

СИНТАКСИС

more [-dlfpcsu] [-num] [+/pattern] [+linenum] [file]

ОПИСАНИЕ

Команда more выполняет поиск текста только в прямом направлении, так что это достаточно примитивный фильтр. Аналогичный фильтр less значительно превосходит more по возможностям. Опции more могут извлекаться из переменной окружения MORE, но опции командной строки перекрывают их

КЛЮЧИ

-num устанавливает размер экрана в строках.

-f вместо строк экрана подсчитывает логические строки, не усекая длинные строки.

-s заменяет несколько подряд идущих пустых строк одной пустой строкой.

-u запрещает подчеркивания

+/pattern до отображения каждого файла выполняет поиск строк по заданному образцу pattern

+linenum начинает отображение строки с указанными номером linenum

КОМАНДЫ

h отображает список команд

space отображает следующие k строк текста, по умолчанию выводится экран текущего размера

return отображает следующие k строк текста, по умолчанию – 1

q завершает работу more

s передвигается вперед на k строк текста, по умолчанию - на 1

f передвигается вперед на k экранов текста, по умолчанию - на 1

b возвращается назад на k экранов текста, по умолчанию - на 1

:f отображает имя текущего файла и номер строки текста

tail - выдача хвостовой части файла

СИНТАКСИС

tail [OPTION] … [FILE]

ОПИСАНИЕ

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

Копирование начинается с позиции на расстоянии +число от начала или -число от конца исходного файла. Если число не указано, то принимается значение, равное 10. Должен быть указан ровно один из знаков + или -. Расстояние задается в строках, блоках или символах в соответствии с опцией l, b или c, поставленной после числа. Если единица измерения не задана, то расстояние измеряется в строках; разумеется, нельзя указывать больше одной единицы измерения.

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

tail -f f1

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

tail -15cf f2

которая выдаст последние 15 символов файла f2, за которыми последуют строки, добавленные к файлу f2 в промежутке между запуском и терминированием tail.

chmod - изменение режима доступа к файлам

СИНТАКСИС

chmod [OPTION]...MODE[,MODE]...FILE

chmod [OPTION]

ОПИСАНИЕ

Права доступа к указанным файлам (среди которых могут быть каталоги) изменяются в соответствии с указанным режимом. Режим может быть задан в абсолютном или символьном виде.

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

Владелец Группа Прочие

(u) (g) (o)

rwx rwx rwx

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

Для задания режима доступа в символьном виде используется следующий синтаксис:

[кому] операция права

Часть кому есть комбинация букв u, g и o (владелец, члены группы и прочие пользователи соответственно). Если часть кому опущена или указано a, то это эквивалентно ugo.

Операция может быть: + (добавить право), - (лишить права), = (в пределах данного класса присвоить права абсолютно, то есть добавить указанные права и отнять неуказанные).

Права - любая осмысленная комбинация следующих букв:

r Право на чтение.

w Право на запись.

x Право на выполнение (поиск в каталоге).

s При выполнении переустанавливать действующий идентификатор пользователя или группы.

t После выполнения программы сохранять сегмент команд.

l Учет блокировки доступа.

Опустить часть права можно только если операция есть = (для лишения всех прав).

Изменить режим доступа к файлу может только его владелец или суперпользователь. Бит навязчивости может установить только суперпользователь. Чтобы добавить право переустановки идентификатора группы, надо быть членом этой группы; кроме того, для членов группы должно быть установлено право выполнения.

chown - смена владельца файла

СИНТАКСИС

chown [OPTION]...[OWNER][:[GROUP]] FILE

chown [OPTION]...--reference=RFILE FILE

ОПИСАНИЕ

Команда chown дает файлу нового владельца, который может быть задан либо десятичным идентификатором пользователя, либо входным именем из файла /etc/passwd.

Изменить владельца может только владелец файла или суперпользователь.

chgrp - смена группы у файла

СИНТАКСИС

chgrp [OPTION]...GROUP FILE

chgrp [OPTION]...--reference=RFILE FILE

ОПИСАНИЕ

Команда chgrp заменяет идентификатор группы файла на новое значение. Группа может быть задана либо десятичным идентификатором, либо именем, хранящимся в файле /etc/group.

Изменить группу может только владелец файла или суперпользователь.

mount - монтирование файловых систем и удаленных ресурсов

СИНТАКСИС

mount [-lhV]

mount -a [-fFnrsvw] [-t vfstype][-O optlist]

mount [-fnrsvw] [-o options[,...]]device | dir

mount [-fnrsvw] [-t vfstype] [-o options] device dir

ОПИСАНИЕ

Файловые системы, отличные от корневой (/), считаются сменяемыми в том смысле, что они могут быть как доступны, так и не доступны пользователям. Команда mount делает доступной пользователям файловую_систему, заданную именем содержащего ее специального файла, или удаленный ресурс. Файловая_система или ресурс монтируются на указанный каталог, который должен существовать. Его имя становится именем корня смонтированной системы, а к файлу /etc/mnttab добавляется соответствующая запись (она будет удалена по команде umount).

При обращении к mount без аргументов на стандартный вывод выдается содержимое таблицы смонтированных файловых систем /etc/mnttab. Если список аргументов команды mount не полон, недостающие аргументы извлекаются из файла /etc/fstab.

Допускаются следующие опции:

-r выполняется монтирование только на чтение. Если файловая_система или ресурс защищены от записи, эту опцию нужно указать обязательно.

-w выполняется монтирование на чтение и запись.

-d ресурс является удаленным ресурсом, который должен быть смонтирован или размонтирован. Для монтирования удаленного ресурса необходимо, чтобы были доступны процедуры РУФ (разделение удаленных файлов).

-t тип_фс опция задает тип монтируемой файловой системы. Если данный аргумент опущен, используется тип корневой файловой системы.

umount – демонтирует файловые системы

СИНТАКСИС

umount [-hV]

umount -a [-nrvf] [-t vfstype]

umount [-nrvf] device|dir […]

ОПИСАНИЕ

Команда umount отключает файловые системы от дерева иерархии каталогов. Файловая система указывается или по имени каталога dir, к которому она была подключена, или по имени специального устройства device, которому она соответствует.

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

КЛЮЧИ

-V выводит информацию о версии программы.

-n демонтирует без регистрации в файле /etc/mtab

-r если демонтировать не удалось, пытается перемонтировать файловую систему только для чтения.

-a демонтирует все файловые системы (кроме файловой системы proc), описанные в /etc/mtab

-t vfstype требует выполнении действий лишь для файловых систем, указанного типа vfstype. vfstype является списком файловых систем, разделенных запятыми. Он может префиксироваться выражением no, что перечисляет файловые системы, на которые никакие действия не распространяются.

-f принудительно демонтирует файловую систему в случае недоступности системы NFS.

mknod - создание специального файла

СИНТАКСИС

mknod [OPTION]...NAME TYPE [MAJOR MINOR]

ОПИСАНИЕ

Команда mknod создает элемент каталога и описатель для специального файла.

Первым аргументом является имя элемента каталога. По соглашениям ОС UNIX специальные файлы хранятся в каталоге /dev.

В первом варианте команды аргумент b означает, что специальный файл является блочным (диски, магнитная лента); аргумент c означает, что файл является символьным. Из двух аргументов - b и c - должен присутствовать ровно один. Старший и младший номера устройства могут быть как десятичными, так и восьмеричными. Назначение старших номеров устройств специфично для каждой системы. Информация об устройствах и их номерах содержится в системном файле conf.c.

Второй вариант команды mknod используется для создания именованных каналов.

Команду mknod может выполнять только суперпользователь.

tar - обслуживание файлового архива

СИНТАКСИС

tar [-]c[v][w][f][b] архив блок файл...

tar [-]r[v][w][f][b] архив блок [файл...]

tar [-]t[v][f] архив

tar [-]u[v][w][f][b] архив блок [файл...]

tar [-]x[m][o][v][w][f] архив [файл...]

ОПИСАНИЕ

Команда tar сохраняет файлы в архив и извлекает их. Ее действиями управляют первый аргумент - цепочка символов, содержащая по крайней мере один символ, специфицирующий выполняемую функцию (c, r, t, u, или x), за которым, возможно, следует одна или несколько спецификаций режима выполнения этой функции. Следующими аргументами являются: имя архива (обычно это /dev/mt, но при наличии спецификации f архивом служит файл) и коэффициент блокирования. Остальными аргументами этой команды являются имена файлов и каталогов, указывающие, какие файлы должны быть сохранены или восстановлены. Во всех случаях имя каталога обозначает содержащиеся в нем файлы и (рекурсивно) подкаталоги.

Выполняемая функция специфицируется одним из следующих символов:

r Указанные файлы записываются в конец архива.

x Указанные файлы извлекаются из архива, а если задан каталог, содержимое которого было записано в архив, то этот каталог восстанавливается (рекурсивно). Рекомендуется задавать файлы относительными маршрутными именами, иначе tar не сможет найти их в архиве. Имя владельца, время модификации, режим доступа также восстанавливаются (если возможно). Если не указано ни одно имя файла или каталога, то извлекается все содержимое архива. Заметим, что если в архиве есть несколько файлов с одним и тем же именем, то в результате извлечется последний.

t Архив просматривается и имена указанных файлов и информация о них выводятся всякий раз, когда они встречаются в архиве. Формат вывода аналогичен команде ls -l. Если имена файлов не указаны, то выводятся сведения обо всех файлах архива.

u Указанные файлы добавляются в архив, если их там не было или они были модифицированы после последней записи в архив. Включает спецификацию r.

c Создание нового архива; файлы начинают записываться с начала архива, а не за последним файлом. Включает спецификацию r.

Следующие символы могут быть использованы дополнительно к букве, задающей желаемое действие. Использовать их следует в порядке, указанном в разделе СИНТАКСИС.

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

w Если указан этот модификатор, то tar печатает действие, которое он собирается сделать, за ним выводит имя файла и ждет подтверждения от пользователя. Если введено слово, которое начинается с буквы y, то действие выполняется. Любое другое введенное слово рассматривается как нет.

f Этот модификатор заставляет использовать следующий аргумент как имя архива вместо /dev/mt. Если вместо имени файла задан -, то tar пишет на стандартный вывод или читает со стандартного ввода, в зависимости от указанного действия. Таким образом, tar может использоваться как начало или конец конвейера. Команда tar может также использоваться для копирования каталогов вместе с иерархической структурой подкаталогов при помощи следующей конструкции:

cd fdir; /etc/tar cf -. |(cd tdir; /etc/tar xf -)

b Если указан этот модификатор, то аргумент блок используется, как коэффициент блокирования для записей на ленте. По умолчанию он равен 1, максимальный - 20. Если архив обновляемый или он расположен в специальном блочном файле, то модификатор неприменим. Этот модификатор может быть использован только для архивов действительно расположенных на магнитной ленте (см. опцию f выше). Размер блока определяется автоматически при чтении ленты (режимы x и t).

l Этот модификатор позволяет выводить сообщения об ошибках, если tar не смог разрешить все ссылки на сохраняемые файлы. Если модификатор l не указан, то сообщений об ошибках по этому поводу не будет.

m При использовании этого модификатора время последней модификации файлов, извлекаемых из архива, устанавливается равным времени извлечения, а не тому времени, которое записано в архиве.

o Этот модификатор придает извлекаемым из архива файлам идентификаторы владельца и группы пользователя, запустившего программу извлечения, а не идентификаторы, записанные в архиве. Модификатор корректен только в режиме извлечения (x).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: