Командная строка Linux. Полное руководство - [6]
Символ . (точка) обозначает рабочий каталог, а символ .. (точка-точка) обозначает каталог, родительский по отношению к рабочему. Ниже показано, как ими пользоваться. Давайте снова сменим рабочий каталог на /usr/bin:
>[me@linuxbox ~]$ cd /usr/bin
>[me@linuxbox bin]$ pwd
>/usr/bin
Отлично, а теперь допустим, что мы хотим сменить рабочий каталог на родительский для каталога /usr/bin, которым является /usr. Сделать это можно двумя способами: пойти либо по абсолютному пути:
>[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:
>[me@linuxbox ~]$ ls ~ /usr
>/home/me:
>Desktop Documents Music Pictures Public Templates Videos
>/usr:
>bin games kerberos libexec sbin src
>etc include lib local share tmp
Можно также изменить формат вывода, чтобы получить больше информации:
>[me@linuxbox ~]$ ls -l
>total 56
>drwxrwxr-x 2 me me 4096 2012-10-26 17:20 Desktop
>drwxrwxr-x 2 me me 4096 2012-10-26 17:20 Documents
>drwxrwxr-x 2 me me 4096 2012-10-26 17:20 Music
>drwxrwxr-x 2 me me 4096 2012-10-26 17:20 Pictures
>drwxrwxr-x 2 me me 4096 2012-10-26 17:20 Public
>drwxrwxr-x 2 me me 4096 2012-10-26 17:20 Templates
>drwxrwxr-x 2 me me 4096 2012-10-26 17:20 Videos
Параметр -l, добавленный в команду, требует использования «длинного» (long) формата вывода.