Создание, редактирование и просмотр текстовых файлов

В Unix/Linux имеется богатый набор средств ввода-редактирования текстов.

Создать и редактировать файл можно при помощи полноэкранного текстового редактора vi. Здесь вы можете прочитать инструкцию по "быстрому началу" работы с vi. А здесь содержится несколько более полное описание vi. Vi является одним из самых мощных редакторов текстовых файлов (см. также подсказку, команда man vi).

Можно создать и дописывать файл при помощи команды tee.
Для окончания ввода необходимо нажать комбинацию клавиш Ctrl-D (см. также подсказку, команда man tee).

Еще одним, более простым по сравнению с vi, тектовым редактором я вляется nano (см. подсказку, команда man nano). В данном редакторе переход в разные режимы редактирования выполняется путем нажатия комбинаций клавиш, например, Ctrl-X - выход из редактора, Ctrl-O - сохранение файла (см. подсказку в редакторе внизу экрана).

ed - еще один мощный текстовый редактор. Позволяет создавать и редактировать текстовые файлы. Здесь вы можете прочитать инструкцию по "быстрому началу" работы с ed. А здесьсодержится несколько более полное описание ed(см. также подсказку, команда man ed).

Просмотреть содержимое файла (вывести содержимое файла на стандартное устройство вывода) можно при помощи команды cat , less, more. При этом less позволяет выполнять скроллинг экрана, что удобно в случае просмотра больших файлов (см. подсказку, команда man less). .

Вывод содержимого каталога осуществляется при помощи команды ls. При этом команда ls -l позволяет просмотреть информацию о файлах текущего каталога (тип файла, права доступа и т.д.).


Управление файлами

В ОС Linux следует различать физическую файловую систему, которая отвечает за управление дисковым пространством и размещение файлов в физических адресах диска и логическую файловую систему, которая обеспечивает логическую структуру хранения файлов - пространство имен файлов. ОС Unix и Linux могут работать с различными физическими файловыми системами (Ext2, ext3, ufs), логическое же представление файловой системы в Unix/Linux структурировано. Все файлы в логической файловой системе располагаются в виде дерева, промежуточные вершины которого соответствуют каталогам, и листья - файлам и пустым каталогам. Реально на каждом логическом диске (разделе физического дискового пакета) располагается отдельная иерархия каталогов и файлов. Для получения общего дерева в динамике используется "монтирование" отдельных иерархий к фиксированной корневой файловой системе в качестве ветвей общего дерева. Самым верхом иерархии является корень, который имеет предопределенное имя “/” (слэш). Этот же символ используется как разделитель имен в пути. Далее в корне находятся папки с определенными для каждого дистрибутива именами (etc, home, bin, mnt, proc и т.д.).

Полное имя файла, например, /bin/sh означает, что в корневом каталоге должно содержаться имя каталога bin, а в каталоге bin должно содержаться имя файла sh. Коротким или относительным именем файла называется имя, задающее путь к файлу от текущего рабочего каталога. В каждом каталоге содержатся два специальных имени, имя "." - ссылка на текущий каталог, и имя ".." - ссылка "родительский" каталог данного текущего каталога, т.е. каталог, непосредственно предшествующий данному в иерархии каталогов. Так, например, для структуры, показанной на следующем рисунке 1.4 доступ к отмеченному на рисунке файлу из текущего каталога возможен по полному имени: /home/usr2/file2 или по относительному имени: ../../../usr2/file2 (если текущий каталог – os).

Рис. 1.4 - Пример иерархии каталогов

Управление файлами также можно выполнять с помощью Midnight Commander (mc)- один из файловых менеджеров с текстовым интерфейсом типа Norton Commander для UNIX-подобных операционных систем. Запуск mc из консоли выполняется с помощью команды mc.

Типы файлов

ОС LINUX поддерживают несколько типов файлов:

· Обычные файлы (или регулярные) - представляют собой последовательность байтов. Это текстовые, исполняесые файлы и т.д, Данный тип файла отображается командой ls -l в виде "-" (черточки).

· Каталоги - представляют собой особый вид файлов, которые хранятся во внешней памяти подобно обычным файлам, но их структура поддерживается самой файловой системой. Данный тип файла отображается командой ls -l в виде символа "d".

· Специальные файлы устройств, бывают блочные и символьные. Данный тип файла отображается командой ls -l в виде символа "b" или "с" соответственно. Специальные файлы не хранят данные. Они обеспечивают механизм отображения физических внешних устройств в имена файлов файловой системы. Каждому устройству, поддерживаемому системой, соответствует, по меньшей мере, один специальный файл. При выполнении чтения или записи по отношению к специальному файлу, производится прямой вызов соответствующего драйвера устройства. При этом имена специальных файлов можно использовать практически всюду, где можно использовать имена обычных файлов.

· Ссылка (link).

Данный тип файла отображается командой ls -l в виде символа "l". Файловая система UNIX/LINUX обеспечивает возможность связывания одного и того же файла с разными именами. Существуют жесткие и мягкие ссылки.

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

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

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

Для создания ссылки, используется команда ln.

Пример:

[user]$ ln -s /home/user/ve/HOWTO/font-HOWTO-ru/ ~/FONTS

После выполнения такой команды в домашнем каталоге появился подкаталог FONTS. Если теперь просмотреть список файлов в каталоге /home/user с помощью команды ls -l, то среди прочих увидим такую строку:

lrwxrwxrwx 1 kos kos 31 Dec 13 21:13 FONTS -> /home/kos/ve/HOWTO/font-HOWTO-ru/

Обратите внимание на самый первый символ в этой строке: он показывает, что данная запись соответствует символической ссылке. Это видно и в поле имени, где после нового имени и стрелки указано исходное имя файла (в данном случае — каталога).

· Именованный программнй канал (pipe) - одно из средств межпроцессных взаимодействий (IPC) в ОС UNIX/LINUX. Данный тип файла отображается командой ls -l в виде символа "p". Именованному программному каналу обязательно соответствует элемент некоторого каталога. с данным средством IPC мы познакомимся во втръорой части лабораторного практикума.

· Сокет (socket)- предоставляют весьма мощный и гибкий IPC. Данный тип файла отображается командой ls -l в виде символа "s". Они могут использоваться для организации взаимодействия программ на одном компьютере, по локальной сети или через Internet, что позволяет создавать распределённые приложения различной сложности. Кроме того, с их помощью можно организовать взаимодействие с программами, работающими под управлением других операционных систем. Механизм сокетов вы будете изучать на пятом курсе в рамках дисциплины "Программирование локальных сетей".

Дата: 2019-02-18, просмотров: 43.