Linux-сервер своими руками
Шрифт:
1. Файлы устройств.
2. Каталоги.
3. Обычные файлы.
4. Ссылки.
Файлы устройств представляют собой устройства вашего компьютера. Файлы устройств находятся в каталоге /dev. Например, /dev/ttyS0 — первый последовательный порт (СОМ1). Обычные файлы, в свою очередь, делятся на нормальные (текстовые) и двоичные.
Каталоги — это специальные файлы, содержащие информацию о других файлах (файлах устройств (/dev), обычных файлов и ссылок). Конечно, это довольно грубое определение, скорее интуитивное, чем точное.
Ссылки позволяют хранить один и тот же файл, но под разными именами. Немного позже мы поговорим более подробно
В своей работе я не рекомендую использовать слишком длинные, а также русскоязычные имена файлов. Linux чувствительна к регистру символов, поэтому file.txt, FILE.TXT и File.txt — совершенно разные имена файлов, и данные файлы могут находиться в одном каталоге. Понятие «расширение файла» в Linux отсутствует. Напомню, что в DOS имена файлов строились по схеме 8+3: 8 символов — для имени и 3 — для расширения. Расширением (или типом в терминологии Windows) называется последовательность символов после точки.
Свойства файловой системы ext2:
Максимальный размер файловой системы | 4 Тбайт |
Максимальный размер файла | 2 Гбайт |
Максимальная длина имени файла | 255 символов |
Минимальный размер блока | 1024 байт |
Количество выделяемых индексных дескрипторов | 1 на 4096 байт раздела |
4.2. Команды для работы с файлами и каталогами
4.2.1. Команды для работы с файлами
Прежде чем приступить к описанию команд для работы с файлами, необходимо отметить, что для выполнения операций над файлами вы должны иметь права доступа к этим файлам. О правах доступа будет написано ниже, а здесь предполагается, что пользователь имеет права доступа к используемым файлам.
Для просмотра файла обычно используется команда cat. Например:
При этом на стандартный вывод, то есть на ваш терминал, будет выведен файл file.txt. Однако более удобными командами для просмотра файлов являются команды more или less:
Создать файл можно так:
Здесь используется перенаправление ввода/вывода, о котором подробно сказано в гл. 5. Данные со стандартного ввода (клавиатуры) перенаправляются в файл file.txt. Проще говоря все, что вы после этой команды введете с клавиатуры, будет записано в файл file.txt. Чтобы закончить ввод нажмите Ctrl+D. Помните, что вы не сможете создать файл в каталоге, к которому у вас нет доступа. Вы даже не сможете просмотреть файл, если пользователь, которому этот файл принадлежит, запретил чтение этого файла.
Для копирования файлов в ОС Linux используется команда cp, которая имеет следующий формат вызова:
Рассмотрим несколько примеров:
В первом случае выполняется копирование файла file.txt в файл file2.txt. Оба файла находятся в текущем каталоге. Во втором случае — копирование файла file.txt в каталог /home/user/text/.
Напомню, что вы можете использовать точку ( . ) в качестве ссылки на текущий каталог, символ тильды ( ~ ) — на домашний каталог. Родительский каталог обозначается двумя точками ( .. ). Корневой каталог обозначается символом косой черты ( / ). Параметры команды cp указаны в табл. 4.1.
Параметры команды cp Таблица 4.1
Параметр | Описание |
---|---|
– а | При копировании сохраняются атрибуты файлов |
– b | Создание копии вместо перезаписи существующего файла |
– d | Поддержка символических ссылок. При этом копироваться будут сами символические ссылки без файлов, на которые они указывают |
– i | Перед перезаписью существующего файла от пользователя потребуется подтверждение этого |
– l | Создание жестких ссылок вместо копирования (при копировании в каталог) |
– r | Копирование каталога вместе с подкаталогами |
– s | Создание символических ссылок вместо копирования (при копировании в каталог) |
– u | Не перезаписывать, если перезаписываемый файл имеет более позднюю дату модификации |
– v | Вывод сведений обо всех выполняемых действиях (verbose). Выводит имена всех копируемых файлов |
– x | Игнорировать каталоги, расположенные в других файловых системах, по отношению к системе, откуда выполняется копирование |
Команда mv перемещает или переименовывает файлы. Например:
Данная команда переименовывает файл file.txt в файл file2.txt. Можно также перемещать файлы в другой каталог:
Эта команда перемещает все текстовые файлы из домашнего каталога пользователя в каталог /tmp.
Будьте очень осторожны при использовании команды mv: при перемещении она не предупреждает о существовании файла-назначения и если таковой существует, то он будет перезаписан.
Для удаления указанного файла используется команда rm. Например:
При этом для удаления файла пользователь должен иметь право на запись в каталог. Права на чтение или запись файла необязательны. Если нет права на запись в файл, то выдается (в восьмеричном виде) режим доступа к файлу и запрашивается подтверждение на удаление. Если стандартный вывод назначен не на терминал, то команда rm будет вести себя так же, как при наличии опции –f. А при указании опции –f не выдается предупреждений, если удаляемый файл не существует, а также не запрашивается подтверждение при удалении файла, на запись в который нет прав. Если нет права и на запись в каталог, то файлы не удаляются. Сообщение об ошибке выдается лишь при попытке удалить каталог, на запись в который нет прав.
Опция –r предназначена для рекурсивного удаления всех файлов и каталогов, указанных в командной строке. При удалении непустых каталогов команда rm с параметром –r предпочтительнее, чем команда rmdir, поскольку последняя не может удалить непустой каталог.
Опция –i аналогична одноименной опции команды cp и требует подтверждения от пользователя перед удалением каждого файла.
Команда locate производит поиск заданного файла в файловой системе. Вместо имени файла можно указать образец имени, например, в тех случаях, когда вы забыли точное название файла: