~ ! @ # $ & % * ( ) [] {} ' " \ : ; > < ` пробел
Если вам все-таки нужно употребить один их этих символов в имени файла, то при указании его имени в команде этот символ нужно экранировать знаком «\» (обратный слэш) или заключать все имя в двойные кавычки. Например, вы хотите вывести на экран командой catсодержимое текстового файла с именем my file, содержащим символ пробела:
$ cat my file # неправильно
cat: my: No such file or directory
cat: file: No such file or directory
$cat "my file" # правильно
Привет!
$cat my\ file # правильно
Привет!
Знак # — это символ комментария для командного интерпретатора bash, о котором подробнее рассказано в главе 8. Командный интерпретатор игнорирует все символы от этого знака до конца введенной строки. Возможность комментировать не слишком полезна при вводе команд с консоли, но неоценима при написании командных сценариев, о которых мы еще будем говорить.
Заметьте, что точки среди специальных символов нет, и имена вроде this.is.а.text.file.containing.the.famous.string.hello.worldдопустимы и широко распространены. Часто последняя отделенная точкой часть имени используется подобно «расширению имени» в Windows, обозначая файл определенного типа, но это обозначение несет смысл только для человека. Так, человеку имя файла ivan_home.tar.gzподсказывает, что это домашний каталог пользователя ivan, упакованный архиватором tarи сжатый компрессором gzip.
Если имя файла начинается с точки, то этот файл считается скрытым: некоторые команды его «не видят». Например, введя в своем домашнем каталоге команду просмотра содержимого каталога lsс ключом -а, означающим «показывать скрытые файлы», вы увидите больше файлов, чем введя ту же команду без ключей.
Linux различает регистр символов в именах файлов: так, в одном каталоге могут находиться два разных файла READMEи Readme. Кстати, файлы с подобными именами обычно содержат информацию, действительно достойную прочтения.
Имена каталогов строятся по точно тем же правилам, что и имена файлов.
Полным именем файла (или путем к файлу) называется список вложенных друг в друга каталогов, заканчивающийся собственно именем файла. Начинаться он может с любого каталога, потому что в древовидной структуре между любыми двумя узлами существует путь. Если этот список начинается с корневого каталога, то путь называется абсолютным. Если с любого другого — то относительным (по отношению к этому каталогу).
Корневой каталог обозначается символом «/» (слэш), и этим же символом разделяются имена каталогов в списке. Таким образом, абсолютным именем файла READMEв домашнем каталоге пользователя den будет /home/den/README.
В каждом каталоге существуют два особых «подкаталога» с именами «две точки» и «точка». Первый из них служит указанием на однозначно определенный родительский каталог, а второй — на сам данный каталог. Для корневого каталога, у которого нет родителя, оба эти «подкаталога» указывают на корневой каталог. С помощью этих имен образуются относительные имена файлов. Так, именем вышеупомянутого файла READMEотносительно домашнего каталога /home/ivanпользователя ivanбудет ../den/README.
2.1.2. Назначение основных системных каталогов
В системных каталогах находятся файлы, необходимые для управления и сопровождения системы, а также стандартные программы. Их имена, расположение и содержание почти одинаковы почти во всех ОС Linux, поэтому эти каталоги называют также стандартными. Впрочем, на данный момент эпитет «стандартные» отражает скорее благие пожелания, чем действительность: иерархия каталогов одинакова только для дистрибутивов, связанных единством происхождения, а исторически сложившиеся различия создают опасность несовместимости разных дистрибутивов. Стандарт файловой иерархии для UNIX-подобных систем разрабатывает группа добровольцев, и с его текущей версией можно ознакомиться по адресу http://www.pathname.com/fhs.
Краткое описание основных каталогов линии Red Hat и Fedora Core сведено в табл. 2.1.
Стандартные каталоги Таблица 2.1
| Каталог |
Назначение |
| /bin |
Основные программы, необходимые для работы в системе: командные оболочки, файловые утилиты и т.п. |
| /sbin |
Команды для системного администрирования, а также программы, выполняемые в ходе загрузки |
| /boot |
Файлы, необходимые для загрузки системы (образ ядра) |
| /home |
Домашние каталоги пользователей, кроме root |
| /dev |
Файлы устройств |
| /etc |
Файлы настроек: стартовые сценарии, конфигурационные файлы графической системы и различных приложений |
| /lib |
Системные библиотеки, необходимые для основных программ, и модули ядра |
| /lost+found |
Восстановленные после аварийного размонтирования части файловой системы |
| /media |
Сюда обычно монтируются съёмные носители: компакт-диски, flash-накопители |
| /mnt |
Временные точки монтирования жестких дисков Использовать этот каталог необязательно: подмонтировать файловую систему можно к любому другому каталогу |
| /opt |
Дополнительные пакеты программ. Если программа, установленная сюда, больше не нужна, то достаточно удалить ее каталог без обычной процедуры деинсталляции |
| /proc |
Виртуальная файловая система, дающая доступ к информации ядра (например, выведите на экран файл /proc/cpuinfo). Другие файлы в этом каталоге в каждый момент времени содержат информацию о выполняющихся в этот момент программах |
| /root |
Домашний каталог суперпользователя. Домашние каталоги всех остальных могут находиться на отдельном разделе, но /root должен быть в корневой файловой системе, чтобы администратор всегда мог войти в систему для ремонтных работ |
| /tmp |
Временные файлы |
| /var |
Часто меняющиеся данные: системные журналы и протоколы приложений, замки. Почтовые ящики, очереди печати и т.п. |
| /usr |
Практически все остальное: программы, исходные коды, документация. Сюда по умолчанию устанавливаются новые программы |
Скорее всего, в ваш дистрибутив включена man-страница hier, подробно описывающая назначение этих каталогов и их основных подкаталогов.
Читать дальше
Конец ознакомительного отрывка
Купить книгу