Командная строка Linux
Шрифт:
В отличие от абсолютного пути, начинающегося в корневом каталоге и ведущего к каталогу назначения, относительный путь начинается в рабочем каталоге. Для обозначения относительных позиций в дереве файловой системы используется пара специальных символов: . (точка) и .. (точка-точка).
Символ . (точка) обозначает рабочий каталог, а символ .. (точка-точка) обозначает каталог, родительский по отношению к рабочему. Ниже показано, как ими пользоваться. Давайте снова сменим рабочий каталог на /usr/bin:
[me@linuxbox ~]$ cd /usr/bin
[me@linuxbox bin]$ pwd
/usr/bin
Отлично,
[me@linuxbox bin]$ cd /usr
[me@linuxbox usr]$ pwd
/usr
либо по относительному:
[me@linuxbox bin]$ cd ..
[me@linuxbox usr]$ pwd
/usr
Два разных способа дают идентичные результаты. И каким же лучше пользоваться? Конечно, тем, который требует нажимать меньше клавиш!
Аналогично, существуют два способа сменить рабочий каталог с /usr на /usr/bin. Абсолютный путь:
[me@linuxbox usr]$ cd /usr/bin
[me@linuxbox bin]$ pwd
/usr/bin
Относительный путь:
[me@linuxbox usr]$ cd ./bin
[me@linuxbox bin]$ pwd
/usr/bin
А теперь я хочу сделать важное замечание. Практически во всех случаях можно опустить пару символов ./, потому что они подразумеваются по умолчанию.
Ввод
[me@linuxbox usr]$ cd bin
даст тот же результат. Вообще если путь к чему-либо не указан явно, подразумевается текущий рабочий каталог.
Некоторые полезные сокращения
В табл. 2.1 перечислены некоторые способы быстрой смены рабочего каталога.
Таблица 2.1. Сокращенные варианты команды cd
Сокращение
Результат
cd
Сменить рабочий каталог на домашний
cd -
Сменить рабочий каталог на предыдущий рабочий каталог
cd ~username
Сменить рабочий каталог на домашний каталог пользователя username. Например, cd ~bob выполнит переход в домашний каталог пользователя bob
ЧТО СЛЕДУЕТ ЗНАТЬ об именах файлов
• Файлы, имена которых начинаются с точки, считаются скрытыми. Это означает, что команда ls не будет выводить их, если не вызвать ее с параметром: ls -a. В момент создания учетной записи пользователя в его домашний каталог помещается несколько скрытых файлов, где хранятся различные параметры настройки учетной записи. Далее в этой книге мы еще вернемся к подобным файлам и посмотрим, как можно настроить свое окружение. Кроме того, некоторые приложения помещают в домашний каталог свои скрытые файлы с настройками.
• Linux, как это принято в Unix, различает регистр символов в именах файлов и командах. Файлы с именами File1 и file1 — это разные файлы.
• В Linux не поддерживается понятие «расширения файла», как в некоторых других операционных системах. Вы можете давать своим файлам любые имена. Тип и/или назначение файла определяется другими средствами. Но даже при том, что Unix-подобные операционные системы не используют расширения файлов для определения типа/назначения файлов, некоторые прикладные программы все же используют их для этой цели.
• Хотя Linux поддерживает длинные имена файлов с пробелами и знаками пунктуации, старайтесь не использовать в именах файлов другие знаки пунктуации, кроме точки, дефиса и подчеркивания. Также не используйте пробелы в именах файлов. Наличие пробелов в именах файлов осложняет решение многих задач командной строки — вы это увидите в главе 7. Если необходимо отделить друг от друга слова в имени файла, используйте символы подчеркивания. Потом вы не раз скажете себе спасибо за это.
3. Исследование системы
Теперь, когда мы знаем, как перемещаться по файловой системе, совершим обзорное путешествие по системе Linux. Но прежде чем отправиться, познакомимся еще с несколькими командами, которые пригодятся в пути:
• ls — выводит список содержимого каталога.
• file — определяет тип файла.
• less — выводит содержимое файла.
Любопытные возможности ls
Команда ls является, пожалуй, одной из самых часто используемых команд, и не без оснований. С ее помощью можно увидеть, что находится в каталоге, и узнать некоторые важные атрибуты файлов и каталогов. Как мы уже видели, чтобы получить список файлов и подкаталогов в текущем рабочем каталоге, достаточно ввести команду ls:
[me@linuxbox ~]$ ls
Desktop Documents Music Pictures Public Templates Videos
Команде можно явно указать каталог, содержимое которого требуется вывести:
me@linuxbox ~]$ ls /usr
bin games kerberos libexec sbin src
etc include lib local share tmp
и даже несколько каталогов. Следующий пример выведет содержимое домашнего каталога пользователя (обозначен символом ~) и каталога /usr: