Ответы на контрольные вопросы по лабам 2-4 и 7 / Лабораторная работа 2 (ответы на КР)
bin – утилиты оболочки. Этот каталог содержит в основном готовые к исполнению программы, большинство из которых необходимы во время старта системы (или в однопользовательском системном режиме, используемом для отладки). Здесь хранится значительное количество общеупотребительных команд Linux;
mail – файлы электронной почты;
dev – специальные файлы или файлы устройств; tmp-адреса рабочих пространств памяти пользователей, выделяемых супервизором памяти ОС по запросам системных вызовов из программ пользователей;
etc – файлы администратора; этот каталог и его подкаталоги содержат большинство данных, необходимых для начальной загрузки системы и основные конфигурационные файлы;
home – данные головных каталогов всех пользователей системы.
Каким образом можно построить отдельный каталог или цепочку каталогов?
mkdir [-ключи] имя_нового_каталога1 [имя-кат2] — создание каталогов. Ключ -p – создает промежуточные подкаталоги, до этого не существовавшие (можно создавать сразу цепочку каталогов).
Для чего и каким образом переопределяются текущие каталоги?
Для исключения набора длинных маршрутных имен файлов любой каталог может быть сделан текущим с помощью команды: cd [полное_имя_каталога] – смена текущего каталога на указанный.
Как обратиться к файлам параллельных ветвей дерева каталогов? К вышележащему каталогу?
С использованием полного маршрутного имени или относительного, точками.
Какие условия поиска файлов Вы знаете? Как комбинируются условия поиска? Как осуществить поиск по дереву каталогов?
find <список_каталогов> <условия_поиска> – определение полных имен файлов в поддереве каталогов, удовлетворяющих заданным условиям поиска.
-name — искать по имени файла, при использовании подстановочных образцов параметр заключается в кавычки.
-type — тип искомого: f=файл, d=каталог, l=ссылка (link).
-user — владелец: имя пользователя или UID.
-group — владелец: группа пользователя или GID.
-perm — указываются права доступа.
Какова последовательность действий при удалении одного каталога? Цепочки каталогов?
rmdir список_каталогов – удалить пустой подкаталог; rm –r список_каталогов – удалить поддерево каталогов.
Объясните назначение и содержание каждого поля каталога.
drwxr-xr-x 2 darkvova darkvova 4096 2011-03-31 13:29 p3/
Элементы каталога слева направо:
тип файла (“-” – обычный, d – каталог , b – блочный файл, p – файл программного канала, c – файл символьного (байториентированного) внешнего устройства – принтеры, графические устройства и т.д.)
Блочное устройство (block device) — вид файла устройств в UNIX/Linux-системах, обеспечивающий интерфейс к устройству, реальному или воображаемому, в виде файла в файловой системе. Типичные примеры блочных устройств: жёсткий диск, CD-ROM, флоппи-дисковод. Файл устройства /dev/fd0 флоппи-дисковода:
brw-rw—- 1 root floppy 2, 0 Jan 1 11:17 /dev/fd0
Первый символ в расширенном выводе ls -l для блочных устройств — буква b (block). Вместо размера файла в пятом поле таблицы показывается два числа — мажорный и минорный номер устройства (major and minor numbers). Первый номер отражает тип устройства, а второй — номер устройства в системе или режим его работы.
Символьное устройство — (character device) — вид файла устройства в UNIX/Linux-системах, обеспечивающий интерфейс к устройству, реальному или воображаемому, с возможностью посимвольного обмена информацией. Типичные примеры символьных устройств: стриммер, модем, телетайп или терминал. Файл устройства /dev/ttyS0 последовательного порта:
crw-rw—- 1 root dialout 4, 64 Jan 2 09:02 /dev/ttyS0
Первый символ в расширенном выводе ls -l для символьных устройств — буква c (character). Вместо размера файла в пятом поле таблицы показывается два числа — мажорный и минорный номер устройства (major and minor numbers). Первый номер отражает тип устройства, а второй — номер устройства в системе или режим его работы.
К символьным устройствам обращение происходит последовательно (символ за символом). Примером символьного устройства может служить терминал.
Считывать и записывать информацию на блочные устройства можно в произвольном порядке, причем блоками определенного размера. Пример: жесткий диск.
Еще один тип специальных файлов — именованные каналы, или буферы FIFO (First In — First Out). Файлы этого типа служат в основном для того, чтобы организовать обмен данными между разными приложениями (pipe переводится с английского как труба).
Канал — это очень удобное и широко применяемое средство обмена информацией между процессами. Все, что один процесс помещает в канал, другой может оттуда прочитать. Если два процесса, обменивающиеся информацией, порождены одним и тем же родительским процессом (а так чаще всего и происходит), канал может быть неименованным. В противном случае требуется создать именованный канал, что можно сделать с помощью программы mkfifo. При этом собственно файл именованного канала участвует только в инициации обмена данными.
символьные коды прав доступа к файлам (r,w,x). Первые три символа – права владельца файла, вторые три символа – права члена группы, третьи три символа – права остальных символов.
число ссылок на файл (число связей): минимум 1 – для файла, 2 – для каталога. Для «.» — минимум 2, а так – по количеству всех директорий (с типом d) в текущем каталоге; для «..» — минимум 2, а так – по количеству всех директорий (с типом d) в каталоге выше текущего;
владелец файла;
символьный идентификатор группы пользователя;
размер файла в байтах;
время и дата последней модификации файла;
собственное имя файла.
Как отличить по содержимому каталога типы файлов, содержащихся в Ваших каталогах?
Набрать ls —l и первый символ – это тип файла: “-” – обычный, d – каталог , g – сетевой, p – файл программного канала; c – файл символьного (байториентированного) внешнего устройства – принтеры, графические устройства и т.д.).
Какую информацию содержит «пустой» вновь созданный каталог?
Содержит два элемента с символьными именами «.» и «..«:
» . « – системное имя текущего каталога (скрытый файл);
» .. « – системное имя вышележащего каталога (скрытый файл).
Как осуществить поиск файлов в системе каталогов по фрагментам текста файлов?
grep [-ключи] ‘шаблон’ <список_файлов> – поиск в файлах из списка_файлов строк, содержащих указанный шаблон (подстрока символов). Ключи:
-с — выдавать только количество успешно сопоставленных строк;
-i — при сопоставлении не различать большие и малые буквы;
—l — выдавать только имена файлов, в которых есть успешно сопоставленные строки, разделяя имена переводами строк;
—n — перед каждой строкой ставить ее номер в файле (строки нумеруются с 1);
-s — подавить выдачу диагностических сообщений о несуществующих и недоступных для чтения файлах;
-v — выдавать только строки, не удовлетворяющие шаблону.
Пример: поиск текста в файле: grep -rl ‘что_ищем’ /путь
Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.
Большая Энциклопедия Нефти и Газа
Удалить пустые каталоги ) — если этот режим включен, то после удаления всех файлов из отмеченных каталогов удаляются и сами каталоги. Если режим выключен, удаляются только файлы, а структура каталогов на диске остается. [2]
Может быть удален только пустой каталог . [3]
Отметим, что удалить можно только пустой каталог , т.е. каталог, не содержащий файлов и подкаталогов. [4]
Отметим, что с помощью команды rd можно удалить только пустой каталог , т.е. каталог, не содержащий файлов и подкаталогов. А для удаления каталога со всеми содержащимися в нем файлами и / или подкаталогами можно использовать команду OelTree, как это описано ниже. [5]
Отметим, что с помощью команды rd можно удалить только пустой каталог , т.е. каталог, не содержащий файлов и подкаталогов. А для удаления каталога со всеми содержащимися в нем файлами и / или подкаталогами можно использовать команду DelTree, как это описано ниже. [6]
При инициализации новой информационной базы, то есть в том случае, когда в качестве рабочего каталога ИБ предполагается использовать вновь созданный или пустой каталог , имеется возможность задания кодовой страницы и порядка сортировки символьных строк для таблиц базы данных. При первом запуске Конфигуратора с указанием в качестве рабочего каталога, в котором отсутствуют файлы информационной базы системы 1С: Предприятие, на экран будет выведено диалоговое окно, в котором можно выбрать желаемую кодовую страницу и порядок сортировки. [7]
Для совместимости с предыдущими версиями программы при удалении текущего ( указанного курсором) каталога даже при выключенном режиме Include sub directories ( Включая подкаталога) каталог может быть удален, если он пуст ( не содержит файлов и подкаталогов) и если режим Delete empty directories ( Удалить пустые каталоги ) включен. [8]
Для совместимости с предыдущими версиями программы при удалении текущего ( указанного курсором) каталога даже при выключенном режиме Include sub directories ( Включая подкаталоги) каталог может быть удален, если он пуст ( не содержит файлов и подкаталогов) и если режим Delete empty directories ( Удалить пустые каталоги ) включен. [9]
В этом разделе мы рассмотрим некоторые системные вызовы, относящиеся скорее к каталогам и файловой системе в целом, нежели просто к определенному файлу, как в предыдущем разделе. Первые два вызова, mkdir и rmdir, соответственно создают и удаляют пустые каталоги . Он разрешает одному файлу появляться под двумя или более именами, часто в разных каталогах. Этот вызов обычно используется, когда несколько программистов, работающих в одной команде, должны совместно использовать один общий файл. Тогда этот файл может появиться в каталоге у каждого из программистов, возможно, под другим именем. [10]
В этом разделе мы рассмотрим некоторые системные вызовы, относящиеся скорее к каталогам и файловой системе в целом, нежели просто к определенному файлу, как в предыдущем разделе. Первые два вызова, mkdi г и rmdi г, соответственно создают и удаляют пустые каталоги . Он разрешает одному файлу появляться под двумя или более именами, часто в разных каталогах. Этот вызов обычно используется, когда несколько программистов, работающих в одной команде, должны совместно использовать один общий файл. Тогда этот файл может появиться в каталоге у каждого из программистов, возможно, под другим именем. [11]
Однако файлы на гибком диске нельзя использовать, потому что для них невозможно определить путь. UNIX не позволяет присоединять к началу пути название диска или его номер, так как это привело бы к жесткой зависимости от устройств, которой операционная система должна избегать. Вместо этого системный вызов mount позволяет присоединять файловую систему на гибком диске к корневой файловой системе в том месте, где этого захочет программа. Если каталог b содержал какие-либо файлы, они будут недоступны, пока смонтирован гибкий диск, так как теперь / Ь ссылается на корневой каталог гибкого диска. Невозможность доступа к этим файлам не так страшна, как кажется с первого взгляда: файловые системы почти всегда устанавливаются в пустые каталоги . Если система содержит несколько жестких дисков, они все могут быть встроены в одно дерево таким же образом. [13]
Однако файлы на гибком диске нельзя использовать, потому что для них невозможно определить путь. UNIX не позволяет присоединять к началу пути название диска или его номер, так как это привело бы к жесткой зависимости от устройств, которой операционная система должна избегать. Вместо этого системный вызов mount позволяет присоединять файловую систему на гибком диске к корневой файловой системе в том месте, где этого захочет программа. На рис. 1.15, б файловая система гибкого диска была установлена в каталог Ъ, таким образом, обеспечен доступ к файлам по путям / b / x / н / Ь / у. Если каталог b содержал какие-либо файлы, они будут недоступны, пока смонтирован гибкий диск, так как теперь / Ь ссылается на корневой каталог гибкого диска. Невозможность доступа к этим файлам не так страшна, как кажется с первого взгляда: файловые системы почти всегда устанавливаются в пустые каталоги . Если система содержит несколько жестких дисков, они все могут быть встроены в одно дерево таким же образом. [15]
Информация о каталоге
Чтобы иметь возможность ориентироваться в файловой системе, нужно знать, что содержится в каждом каталоге. Запомнить всю структуру файловой системы невозможно и не нужно: в любой момент можно просмотреть содержимое любого каталога при помощи утилиты ls (сокращение от англ. «list» — «список»):
Пример 4. Команда ls
Поданная без параметров, команда ls выводит список файлов и каталогов, содержащихся в текущем каталоге.
Вот пример утилиты, которая по умолчанию работает с файлами в текущем каталоге.
При помощи этой утилиты Мефодий обнаружил, что в его домашнем каталоге (который в данный момент является текущим) содержатся два файла, созданные на прошлой лекции: « -filename-with- » и « text ».
Утилита ls принимает один параметр: имя каталога, содержимое которого нужно вывести. Имя может быть задано любым доступным способом: в виде полного или относительного пути. Например, чтобы получить список в файлов в своём домашнем каталоге, Мефодий мог бы использовать команды « ls /home/methody » и « ls . » — результат был бы аналогичным.
Кроме параметра, утилита ls «понимает» множество ключей, которые нужны главным образом для того, чтобы выводить дополнительную информацию о файлах в каталоге или выводить список файлов выборочно. Чтобы узнать обо всех возможностях ls , нужно, конечно же, прочесть руководство по этой утилите (« man ls »). Почитав руководство по ls , Мефодий решил изучить содержимое своей файловой системы и начал с начала — с корневого каталога.
Пример 5. Команда ls -F
Мефодий использовал ключ -F , чтобы отличать файлы от каталогов. При наличии этого ключа ls в конце имени каждого каталога ставит символ « / », чтобы показать, что в нём может содержаться что-то ещё. В выведенном списке нет ни одного файла — в корневом каталоге содержатся только подкаталоги.
Кроме того, Мефодий решил получить более подробную информацию о содержимом своего домашнего каталога:
Пример 6. Команда ls -aF
Внезапно он обнаружил, что файлов в его домашнем каталоге не два, а гораздо больше. Дело в том, что утилита ls по умолчанию не выводит информацию об объектах, чьё имя начинается с « . » — в том числе о « . » и « .. ». Для того, чтобы посмотреть полный список содержимого каталога, и используется ключ « -a » (all).
Такое поведение ls напоминает принцип работы файловых менеджеров со скрытыми файлами в системах MS-DOS/Windows. Разница в том, что в MS-DOS/Windows скрытые файлы предусмотрены файловой системой — файл может иметь атрибут «скрытый» и при этом называться как угодно. В Linux скрытые файлы — это не свойство файловой системы, а только соглашение по наименованию файлов.
Как правило, с « . » начинаются имена конфигурационных файлов и конфигурационных каталогов (вроде .bashrc , описанного в лекции Возможности командной оболочки), работа с которыми (т. е. настройка окружения, «рабочего места») не пересекается с работой над какой-нибудь прикладной задачей (хотя, конечно, эффективность работы зависит от хорошо настроенного окружения). Кроме того, подобных файлов в домашнем каталоге активно работающего пользователя со временем заводится немало (по одному на каждую приличную утилиту) и их присутствие в выдаче ls сильно загромождает её.
Разберёмся подробно в списке файлов в домашнем каталоге Мефодия. Начинём с весьма лаконичных имён « . » и « .. ». Мефодий уже знает, что « . » — это имя текущего каталога. Следующее имя в списке, « .. » — это ссылка на родительский каталог. Родительский каталог — это тот каталог, в котором находится данный. Родительским каталогом для « /home/methody » будет каталог « /home »: он получается просто отбрасыванием последнего имени каталога в полном пути. Иначе можно сказать, что родительский каталог — это один шаг по дереву каталогов по направлению к корню. « .. » — это сокращённый способ сослаться на родительский каталог: пока текущим каталогом является « /home/methody », относительный путь « .. » (или, что то же самое, « ./.. ») будет эквивалентен « /home ». С использованием « .. » можно строить сколь угодно длинные пути, такие как « ../../usr/../var/log/../run/../../home »,
Не сразу понятно, что приводит этот путь всё туда же, в « /home ».
однако в действительности они применяются только при автоматической подстановке в программах, а во время работы пользователя необходимости в такого рода усложнениях не возникает.
родительский каталог Каталог, в котором содержится данный. Для корневого каталога родительским является он сам.
Ссылки на текущий и на родительский каталог обязательно присутствуют в каждом каталоге в Linux. Даже если каталог пуст, т. е. не содержит ни одного файла или подкаталога, команда « ls -a » выведет список из двух имён: « . » и « .. ».
За ссылками на текущий и родительский каталоги следуют несколько файлов и каталогов, имена которых начинаются на «.». В них содержатся настройки командной оболочки (файлы, начинающиеся с « .bash ») и других программ. В домашнем каталоге каждого пользователя Linux всегда присутствует несколько таких файлов. Использование этих файлов позволяет пользователям независимо друг от друга настраивать поведение командной оболочки и других программ — организовывать своё «рабочее место» в системе. Подробнее речь об этом пойдёт в лекции Конфигурационные файлы.