KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программы » Д. Колисниченко - Ubuntu 10. Краткое руководство пользователя

Д. Колисниченко - Ubuntu 10. Краткое руководство пользователя

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Д. Колисниченко, "Ubuntu 10. Краткое руководство пользователя" бесплатно, без регистрации.
Перейти на страницу:

□ /usr — содержит пользовательские программы, документацию, исходные коды программ и ядра;

□ /var — постоянно изменяющиеся данные системы, например, спулы системы печати, почтовые ящики, протоколы, замки и т. д.

5.5. Команды для работы с файлами

Основные команды Linux, предназначенные для работы с файлами, приведены в табл. 5.1. Указанные команды нужно вводить в терминале (Приложения | Стандартные | Терминал).

Рассмотрим небольшую серию команд, приведенную в листинге 5.1 (рис. 5.2).

Листинг 5.1. Операции с файлом

touch file.txt

echo "some text" > file.txt

cat file.txt

cp file.txt file-copy.txt

cat file-copy.txt

rm file.txt cat file.txt

mv file-copy.txt file.txt

cat file.txt

Команда touch создает в текущем каталоге файл file.txt. Вторая команда (echo) записывает строку same text в этот же файл. Обратите внимание, > — это символ перенаправления ввода/вывода, о котором мы поговорим чуть позже.

Третья команда (cat) выводит содержимое файла (в файле — записанная нами строка same text). Команда cp копирует файл file.txt в файл с именем file-copy.txt. После этого мы опять используем команду cat, чтобы вывести содержимое файла file-copy.txt, — надо же убедиться, что файл действительно скопировался.

Команда rm удаляет файл file.txt. При удалении система спрашивает, хотите ли вы удалить файл? Если да, то нужно нажать клавишу <y>, а если нет, то клавишу <n>. Точно ли файл удален? Убедимся в этом — введите команду cat file.txt. Система нам сообщает, что такого файла нет.

Восьмая команда (mv) переименовывает файл file-copy.txt в файл file.txt. Последняя команда выводит исходный файл file.txt. Думаю, особых проблем с этими командами у вас не возникло, тем более, что их принцип действия вам должен быть знаком по командам DOS, которые, как квалифицированный пользователь Windows, вы должны знать наизусть.

Вместо полного имени файла иногда очень удобно указать маску имени. Например, у нас есть много временных файлов, которые заканчиваются фрагментом tmp — для их удаления нужно воспользоваться командой:

rm *tmp

Если же нужно удалить все файлы в текущем каталоге, можно просто указать «звездочку»:

rm *

Аналогично, можно применить символ ? который в отличие от звездочки, заменяющей последовательность символов произвольной длины, заменяет всего один символ. Например, нам нужно удалить все файлы, имена которых состоят из трех символов и начинаются на d:

rm d??

Будут удалены файлы d11, dbm, d78 и т. д., но не будут тронуты файлы, имена которых состоят из более чем трех букв и которые не начинаются на d.

Маски имен допустимы также при работе с каталогами.

5.6. Команды для работы с каталогами

Основные команды для работы с каталогами приведены в табл. 5.2.

При указании имени каталога можно указать следующие символы:

□. — означает текущий каталог. Если вы введете команду cat./file, то она выведет файл file, который находится в текущем каталоге;

.. — родительский каталог, например, команда cd.. переведет нас на один уровень вверх по дереву файловой системы;

□ ~ домашний каталог пользователя.

Теперь рассмотрим команды для работы с файлами на практике. Выполните следующие команды (листинг 5.2).

Листинг 5.2. Работа с файлами

mkdir directory

cd directory

touch file1.txt

touch file2.txt

ls

cd..

ls directory

rm directory

rmdir directory

rm — r directory

Первая команда (mkdir) создает каталог directory в текущем каталоге. Вторая команда (cd) переходит (изменяет каталог) в только что созданный каталог. Следующие две команды touch создают в новом каталоге два файла: file1.txt и file2.txt.

Команда ls без указания каталога выводит содержимое текущего каталога. Команда cd.. переходит в родительский каталог (как уже упоминалось, в Linux родительский каталог обозначается .. , а текущий — . ). Таким образом, находясь в каталоге directory, мы можем обращаться к файлам file1.txt и file2.txt без указания каталога или же как./file1.txt и./file2.txt.

Внимание!

В Linux для разделения элементов пути служит прямой слэш (/), а не обратный (), как в Windows. Запомните это!

В Linux часто употребляется обозначение ~ — это домашний каталог. Предположим, что наш домашний каталог назван /home/den. В нем мы создали подкаталог dir и поместили в него файл file 1.txt. Полный путь к файлу можно записать так:

/home/den/dir/file1.txt

или так:

~/dir/file1.txt

Как видите, тильда (~) заменяет часть пути. Удобно? Конечно!

Поскольку мы находимся в родительском для каталога directory каталоге, для того чтобы вывести содержимое только что созданного каталога, в команде ls нам нужно четко указать его имя:

ls directory

Команда rm предназначена для удаления каталога. Но что мы видим — система отказывается удалять каталог! Пробуем удалить его командой rmdir, но и тут отказ. Система сообщает нам, что каталог не пустой, т. е. содержит файлы. Для удаления каталога нужно сначала удалить все файлы. Конечно, делать это не сильно хочется, поэтому проще указать опцию — r команды rm для рекурсивного удаления каталога. В этом случае сначала будут удалены все подкаталоги (и все файлы в этих подкаталогах), а затем будет удален сам каталог (рис. 5.3).

Команды cp и mv работают аналогично — для копирования (перемещения/переименования) сначала указывается каталог-источник, а потом каталог-назначение. Для каталогов желательно указывать параметр — r, чтобы копирование (перемещение) выполнялось рекурсивно.

5.7. Ссылки

В Linux допускается, чтобы один и тот же файл существовал в системе под разными именами. Для этого используются ссылки двух типов: жесткие и символические. Первые жестко привязываются к файлу — вы не можете удалить файл, пока на него указывает хотя бы одна жесткая ссылка. А вот если на файл указывают символические ссылки, его удалению ничто не помешает.

Жесткие ссылки не могут указывать на файл, который находится за пределами файловой системы. Предположим, у вас два Linux-раздела: один корневой, а второй содержит домашние файлы пользователей и монтируется к каталогу /home корневой файловой системы. Так вот, вы не можете создать в корневой файловой системе ссылку, которая ссылается на файл в файловой системе, подмонтированной к каталогу /home. Это очень важная особенность жестких ссылок. Если вам потребуется создать ссылку на файл, который находится за пределами файловой системы, то вам придется прибегнуть к символическим ссылкам.

Ссылки создаются командой ln:

ln file.txt linkl

ln — s file.txt link2

Первая команда создает жесткую ссылку linkl, ссылающуюся на текстовый файл file.txt. Вторая — символическую ссылку link2, которая ссылается на текстовый файл file.txt.

Модифицируя ссылку (все равно какую — linkl или link2), вы автоматически модифицируете исходный файл file.txt.

Особого внимания заслуживает операция удаления. По идее, если вы удаляете ссылку link2, файл file.txt также должен быть удален, но не тут-то было. Вы не можете его удалить до тех пор, пока на него указывает хоть одна жесткая ссылка. При удалении ссылки link2 просто будет удалена эта символическая ссылка, но жесткая ссылка и сам файл останутся. Если же вы удалите ссылку linkl, будет удален и файл file.txt, поскольку на него больше не ссылается ни одна жесткая ссылка.

5.8. Права доступа и атрибуты файла. Команды chown, chmod и chattr

5.8.1. Права доступа к файлам и каталогам

Для каждого каталога и файла вы можете задать права доступа. Точнее права доступа автоматически задаются при создании каталога (файла), а вы, при необходимости, можете их изменить. Какая может быть необходимость?

Например, вам нужно, чтобы к вашему файлу-отчету смогли получить доступ пользователи — члены вашей группы. Или вы создали обычный текстовый файл, содержащий инструкции командного интерпретатора. Чтобы этот файл стал сценарием, вам нужно установить право на выполнение для этого файла.

Существует три права доступа: чтение (r), запись (w), выполнение (x). Для каталога право на выполнение означает право на просмотр содержимого каталога.

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

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*