В этой главе мы подробно обсудим управление файлами в Unix. Все данные в Unix организованы в файлы. Все файлы организованы в каталоги. Эти каталоги организованы в древовидную структуру, называемую файловой системой.
Когда вы работаете с Unix, так или иначе, вы проводите большую часть времени, работая с файлами. Этот учебник поможет вам понять, как создавать и удалять файлы, копировать и переименовывать их, создавать ссылки на них и т. Д.
В Unix есть три основных типа файлов —
-
Обычные файлы . Обычный файл — это файл в системе, содержащий данные, текст или программные инструкции. В этом уроке вы рассмотрите работу с обычными файлами.
-
Каталоги — каталоги хранят как специальные, так и обычные файлы. Для пользователей, знакомых с Windows или Mac OS, каталоги Unix эквивалентны папкам.
-
Специальные файлы — некоторые специальные файлы предоставляют доступ к оборудованию, такому как жесткие диски, приводы CD-ROM, модемы и адаптеры Ethernet. Другие специальные файлы похожи на псевдонимы или ярлыки и позволяют вам получить доступ к одному файлу под разными именами.
Обычные файлы . Обычный файл — это файл в системе, содержащий данные, текст или программные инструкции. В этом уроке вы рассмотрите работу с обычными файлами.
Каталоги — каталоги хранят как специальные, так и обычные файлы. Для пользователей, знакомых с Windows или Mac OS, каталоги Unix эквивалентны папкам.
Специальные файлы — некоторые специальные файлы предоставляют доступ к оборудованию, такому как жесткие диски, приводы CD-ROM, модемы и адаптеры Ethernet. Другие специальные файлы похожи на псевдонимы или ярлыки и позволяют вам получить доступ к одному файлу под разными именами.
Список файлов
Чтобы вывести список файлов и каталогов, хранящихся в текущем каталоге, используйте следующую команду —
$ls
Вот пример вывода вышеуказанной команды —
$ls bin hosts lib res.03 ch07 hw1 pub test_results ch07.bak hw2 res.01 users docs hw3 res.02 work
Команда ls поддерживает опцию -l, которая поможет вам получить больше информации о перечисленных файлах —
$ls -l total 1962188 drwxrwxr-x 2 amrood amrood 4096 Dec 25 09:59 uml -rw-rw-r-- 1 amrood amrood 5341 Dec 25 08:38 uml.jpg drwxr-xr-x 2 amrood amrood 4096 Feb 15 2006 univ drwxr-xr-x 2 root root 4096 Dec 9 2007 urlspedia -rw-r--r-- 1 root root 276480 Dec 9 2007 urlspedia.tar drwxr-xr-x 8 root root 4096 Nov 25 2007 usr drwxr-xr-x 2 200 300 4096 Nov 25 2007 webthumb-1.01 -rwxr-xr-x 1 root root 3192 Nov 25 2007 webthumb.php -rw-rw-r-- 1 amrood amrood 20480 Nov 25 2007 webthumb.tar -rw-rw-r-- 1 amrood amrood 5654 Aug 9 2007 yourfile.mid -rw-rw-r-- 1 amrood amrood 166255 Aug 9 2007 yourfile.swf drwxr-xr-x 11 amrood amrood 4096 May 29 2007 zlib-1.2.3 $
Вот информация обо всех перечисленных столбцах —
-
Первый столбец — представляет тип файла и разрешение, данное для файла. Ниже приведено описание всех типов файлов.
-
Второй столбец — представляет количество блоков памяти, занимаемых файлом или каталогом.
-
Третий столбец — представляет владельца файла. Это пользователь Unix, который создал этот файл.
-
Четвертая колонка — представляет группу владельца. Каждый пользователь Unix будет иметь связанную группу.
-
Пятая колонка — представляет размер файла в байтах.
-
Шестая колонка — представляет дату и время, когда этот файл был создан или изменен в последний раз.
-
Седьмая колонка — представляет файл или имя каталога.
Первый столбец — представляет тип файла и разрешение, данное для файла. Ниже приведено описание всех типов файлов.
Второй столбец — представляет количество блоков памяти, занимаемых файлом или каталогом.
Третий столбец — представляет владельца файла. Это пользователь Unix, который создал этот файл.
Четвертая колонка — представляет группу владельца. Каждый пользователь Unix будет иметь связанную группу.
Пятая колонка — представляет размер файла в байтах.
Шестая колонка — представляет дату и время, когда этот файл был создан или изменен в последний раз.
Седьмая колонка — представляет файл или имя каталога.
В примере перечисления ls -l каждая строка файла начинается с d , — или l . Эти символы указывают тип файла, который указан.
Sr.No. | Префикс и описание |
---|---|
1 |
— Обычный файл, такой как текстовый файл ASCII, двоичный исполняемый файл или жесткая ссылка. |
2 |
б Заблокировать специальный файл. Заблокировать файл устройства ввода / вывода, такой как физический жесткий диск. |
3 |
с Специальный символьный файл. Файл устройства ввода-вывода, такой как физический жесткий диск. |
4 |
d Каталог, содержащий список других файлов и каталогов. |
5 |
L Файл символической ссылки. Ссылки на любой обычный файл. |
6 |
п Именованная труба. Механизм межпроцессного взаимодействия. |
7 |
s Сокет используется для межпроцессного взаимодействия. |
—
Обычный файл, такой как текстовый файл ASCII, двоичный исполняемый файл или жесткая ссылка.
б
Заблокировать специальный файл. Заблокировать файл устройства ввода / вывода, такой как физический жесткий диск.
с
Специальный символьный файл. Файл устройства ввода-вывода, такой как физический жесткий диск.
d
Каталог, содержащий список других файлов и каталогов.
L
Файл символической ссылки. Ссылки на любой обычный файл.
п
Именованная труба. Механизм межпроцессного взаимодействия.
s
Сокет используется для межпроцессного взаимодействия.
метасимволов
Метасимволы имеют особое значение в Unix. Например, * и ? являются метасимволами. Мы используем *, чтобы соответствовать 0 или более символов, вопросительный знак ( ? ) Соответствует одному символу.
Например —
$ls ch*.doc
Отображает все файлы, имена которых начинаются с ch и заканчиваются на .doc —
ch01-1.doc ch010.doc ch02.doc ch03-2.doc ch04-1.doc ch040.doc ch05.doc ch06-2.doc ch01-2.doc ch02-1.doc c
Здесь * работает как метасимвол, который совпадает с любым символом. Если вы хотите отобразить все файлы, заканчивающиеся только на .doc , то вы можете использовать следующую команду —
$ls *.doc
Скрытые файлы
Невидимый файл — это один, первым символом которого является точка или точка (.). Программы Unix (включая оболочку) используют большинство этих файлов для хранения информации о конфигурации.
Некоторые распространенные примеры скрытых файлов включают файлы —
-
.profile — скрипт инициализации оболочки Bourne (sh)
-
.kshrc — скрипт инициализации оболочки Korn (ksh)
-
.cshrc — скрипт инициализации оболочки C (csh)
-
.rhosts — файл конфигурации удаленной оболочки
.profile — скрипт инициализации оболочки Bourne (sh)
.kshrc — скрипт инициализации оболочки Korn (ksh)
.cshrc — скрипт инициализации оболочки C (csh)
.rhosts — файл конфигурации удаленной оболочки
Чтобы вывести список невидимых файлов, укажите опцию -a для ls —
$ ls -a . .profile docs lib test_results .. .rhosts hosts pub users .emacs bin hw1 res.01 work .exrc ch07 hw2 res.02 .kshrc ch07.bak hw3 res.03 $
-
Одиночная точка (.) — представляет текущий каталог.
-
Двойная точка (..) — представляет родительский каталог.
Одиночная точка (.) — представляет текущий каталог.
Двойная точка (..) — представляет родительский каталог.
Создание файлов
Вы можете использовать редактор vi для создания обычных файлов в любой системе Unix. Вам просто нужно дать следующую команду —
$ vi filename
Приведенная выше команда откроет файл с заданным именем файла. Теперь нажмите клавишу i, чтобы войти в режим редактирования. Перейдя в режим редактирования, вы можете начать записывать содержимое в файл, как в следующей программе:
This is unix file....I created it for the first time..... I'm going to save this content in this file.
Когда вы закончите с программой, выполните следующие действия:
-
Нажмите клавишу esc, чтобы выйти из режима редактирования.
-
Нажмите две клавиши Shift + ZZ вместе, чтобы полностью выйти из файла.
Нажмите клавишу esc, чтобы выйти из режима редактирования.
Нажмите две клавиши Shift + ZZ вместе, чтобы полностью выйти из файла.
Теперь у вас будет файл, созданный с именем файла в текущем каталоге.
$ vi filename $
Редактирование файлов
Вы можете редактировать существующий файл, используя редактор vi . Мы кратко обсудим, как открыть существующий файл —
$ vi filename
После того, как файл открыт, вы можете войти в режим редактирования, нажав клавишу i, а затем вы можете продолжить редактирование файла. Если вы хотите переместиться туда-сюда внутри файла, то сначала вам нужно выйти из режима редактирования, нажав клавишу Esc . После этого вы можете использовать следующие ключи для перемещения внутри файла —
-
л ключ, чтобы перейти к правой стороне.
-
Клавиша h для перемещения влево.
-
Клавиша k для перемещения вверх в файле.
-
Клавиша j для перемещения вниз в файле.
л ключ, чтобы перейти к правой стороне.
Клавиша h для перемещения влево.
Клавиша k для перемещения вверх в файле.
Клавиша j для перемещения вниз в файле.
Таким образом, используя вышеуказанные клавиши, вы можете расположить курсор там, где вы хотите редактировать. Как только вы позиционируете, вы можете использовать клавишу i, чтобы войти в режим редактирования. Как только вы закончите редактирование в вашем файле, нажмите Esc и, наконец, две клавиши Shift + ZZ вместе, чтобы полностью выйти из файла.
Отображение содержимого файла
Вы можете использовать команду cat, чтобы увидеть содержимое файла. Ниже приведен простой пример, чтобы увидеть содержимое созданного выше файла —
$ cat filename This is unix file....I created it for the first time..... I'm going to save this content in this file. $
Вы можете отобразить номера строк, используя опцию -b вместе с командой cat следующим образом:
$ cat -b filename 1 This is unix file....I created it for the first time..... 2 I'm going to save this content in this file. $
Подсчет слов в файле
Вы можете использовать команду wc, чтобы получить общее количество строк, слов и символов, содержащихся в файле. Ниже приведен простой пример, чтобы увидеть информацию о файле, созданном выше —
$ wc filename 2 19 103 filename $
Вот деталь всех четырех столбцов —
-
Первый столбец — представляет общее количество строк в файле.
-
Второй столбец — представляет общее количество слов в файле.
-
Третий столбец — представляет общее количество байтов в файле. Это фактический размер файла.
-
Четвертый столбец — представляет имя файла.
Первый столбец — представляет общее количество строк в файле.
Второй столбец — представляет общее количество слов в файле.
Третий столбец — представляет общее количество байтов в файле. Это фактический размер файла.
Четвертый столбец — представляет имя файла.
Вы можете дать несколько файлов и получить информацию об этих файлах одновременно. Ниже приводится простой синтаксис —
$ wc filename1 filename2 filename3
Копирование файлов
Чтобы сделать копию файла, используйте команду cp . Основной синтаксис команды —
$ cp source_file destination_file
Ниже приведен пример создания копии существующего файла с именем файла .
$ cp filename copyfile $
Теперь вы найдете еще один файл copyfile в вашем текущем каталоге. Этот файл будет точно таким же, как и исходное имя файла .
Переименование файлов
Чтобы изменить имя файла, используйте команду mv . Ниже приведен основной синтаксис —
$ mv old_file new_file
Следующая программа переименует существующее имя файла в newfile .
$ mv filename newfile $
Команда mv полностью переместит существующий файл в новый файл. В этом случае вы найдете только новый файл в вашем текущем каталоге.
Удаление файлов
Чтобы удалить существующий файл, используйте команду rm . Ниже приведен основной синтаксис —
$ rm filename
Внимание . Файл может содержать полезную информацию. Всегда рекомендуется соблюдать осторожность при использовании этой команды удаления . Лучше использовать опцию -i вместе с командой rm .
Ниже приведен пример, который показывает, как полностью удалить существующее имя файла .
$ rm filename $
Вы можете удалить несколько файлов одновременно с помощью команды, приведенной ниже —
$ rm filename1 filename2 filename3 $
Стандартные потоки Unix
При нормальных обстоятельствах каждая программа Unix имеет три потока (файла), открытых для нее при запуске —
stdin — это называется стандартным вводом, и соответствующий дескриптор файла равен 0. Это также представляется как STDIN. Программа Unix будет читать ввод по умолчанию из STDIN.
stdout — это упоминается как стандартный вывод, и связанный дескриптор файла равен 1. Это также представляется как STDOUT. Программа Unix запишет вывод по умолчанию в STDOUT
stderr — это упоминается как стандартная ошибка, и соответствующий дескриптор файла равен 2. Это также представляется как STDERR. Программа Unix запишет все сообщения об ошибках в STDERR.