Учебники

Unix / Linux — Управление файлами

В этой главе мы подробно обсудим управление файлами в 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.