Базовая навигация в Linux
Самые фундаментальные навыки, которые нужно освоить инженеру, работающему с Linux — это перемещение по файловой системе и понимание того, что вас окружает.
В этом разделе мы обсудим инструменты, которые позволят вам это сделать. Разберем базовые команды с примерами.
pwd
Когда вы входите на свой сервер, вы обычно попадаете в домашний каталог своей учетной записи. Домашний каталог — это каталог, предназначенный для хранения файлов и создания каталогов вашим пользователем.
Чтобы узнать, где находится ваш домашний каталог по отношению к остальной файловой системе, вы можете использовать команду pwd . Эта команда отображает каталог, в котором мы сейчас находимся:
Вы должны получить обратно информацию, которая выглядит следующим образом:
Домашний каталог назван в честь учетной записи пользователя, поэтому в приведенном выше примере значение будет, если бы вы вошли на сервер с учетной записью под названием demo . Этот каталог находится в каталоге с именем /home , который сам находится в каталоге верхнего уровня, который называется root , но представлен одинарной косой чертой / .
ls
Теперь, когда вы знаете, как отображать каталог, в котором вы находитесь, мы можем просматривать содержимое каталога.
Пока в нашем каталоге ничего нет, поэтому мы перейдем в другой, более насыщенный каталог для изучения. Введите в терминале следующее, чтобы перейти в каталог /usr/share .
После этого используем pwd , чтобы проверить, что мы успешно переехали:
Теперь, когда мы находимся в новом каталоге, давайте посмотрим, что внутри. Для этого мы введем команду ls :
adduser groff pam-configs applications grub perl apport grub-gfxpayload-lists perl5 apps hal pixmaps apt i18n pkgconfig aptitude icons polkit-1 apt-xapian-index info popularity-contest . . .
Как видите, в этом каталоге много элементов. Мы можем добавить в команду несколько необязательных флагов, чтобы изменить поведение. Например, чтобы перечислить все содержимое в расширенной форме, мы можем использовать флаг -l (для «длинного» вывода):
total 440 drwxr-xr-x 2 root root 4096 Apr 17 2021 adduser drwxr-xr-x 2 root root 4096 Sep 24 19:11 applications drwxr-xr-x 6 root root 4096 Oct 9 18:16 apport drwxr-xr-x 3 root root 4096 Apr 17 2021 apps drwxr-xr-x 2 root root 4096 Oct 9 18:15 apt drwxr-xr-x 2 root root 4096 Apr 17 2021 aptitude drwxr-xr-x 4 root root 4096 Apr 17 2021 apt-xapian-index drwxr-xr-x 2 root root 4096 Apr 17 2021 awk . . .
Этот вид дает нам много информации, большая часть которой выглядит довольно необычно. Первый блок описывает тип файла (если в первом столбце стоит d , это каталог, если — , это обычный файл) и разрешения. Каждый последующий столбец, разделенный пробелом, описывает количество жестких ссылок, владельца, владельца группы, размер элемента, время последнего изменения и имя элемента. Вы можете просмотреть эту информацию с помощью флага -l команды ls .
Чтобы получить список всех файлов, включая скрытые файлы и каталоги, вы можете добавить флаг -a . Поскольку в каталоге /usr/share нет настоящих скрытых файлов, давайте вернемся в наш домашний каталог и попробуем эту команду. Вернуться в домашний каталог можно набрав cd без аргументов. После этого выполним команду ls -a :
. .. .bash_logout .bashrc .profile
Как видите, в этом выводе есть три скрытых файла вместе с . и .. , которые являются специальными индикаторами. Часто файлы конфигурации хранятся как скрытые файлы, как здесь.
Для записей с точками и двойными точками это не совсем каталоги, а встроенные методы обращения к связанным каталогам. Одиночная точка указывает текущий каталог, а двойная точка указывает родительский каталог этого каталога.
По умолчанию ls выводит список содержимого текущего каталога. Однако мы можем передать имя любого каталога, содержимое которого мы хотели бы видеть, в конце команды.
Например, мы можем просмотреть содержимое каталога с именем /etc , доступного во всех системах Linux, набрав:
acpi fstab magic rc.local adduser.conf fstab.d magic.mime rc.local.orig aliases fuse.conf mailcap rcS.d aliases.db gai.conf mailcap.order reportbug.conf alternatives groff mailname resolvconf anacrontab group mail.rc resolv.conf apm group- manpath.config rmt . . .
cd
Мы уже сделали два перемещения каталога, чтобы продемонстрировать некоторые свойства ls . Давайте подробнее рассмотрим команду здесь.
Начните с возврата в каталог /usr/share , набрав следующее:
Это пример изменения каталога путем указания абсолютного пути. В Linux каждый файл и каталог находится в самом верхнем каталоге, который называется «корневым» (root), но обозначается одинарной косой чертой в начале пути / . Абсолютный путь указывает расположение каталога по отношению к этому каталогу верхнего уровня. Это позволяет нам однозначно обращаться к каталогам из любого места файловой системы. Каждый абсолютный путь должен начинаться с косой черты.
Альтернативой является использование относительных путей. Относительные пути относятся к каталогам относительно текущего каталога. Для каталогов, близких к текущему каталогу в иерархии, это обычно проще и короче. На любой каталог в текущем каталоге можно ссылаться по имени без косой черты в начале. Мы можем перейти в каталог locale в /usr/share из нашего текущего местоположения, набрав:
Мы также можем переместиться на несколько уровней каталогов с относительными путями, указав часть пути, которая идет после пути к текущему каталогу. Отсюда мы можем перейти в каталог LC_MESSAGES в каталоге en , набрав:
Для возврата к родительскому элементу текущего каталога мы используем специальный индикатор с двумя точками, о котором мы говорили ранее. Например, теперь мы находимся в каталоге /usr/share/locale/en/LC_MESSAGES . Чтобы подняться на один уровень вверх, мы можем ввести:
Это приведет нас в каталог /usr/share/locale/en .
Мы можем вернуться в наш предыдущий каталог, набрав: cd —
Шорткат, который вы видели ранее, который всегда будет возвращать вас в ваш домашний каталог — это использовать cd без указания каталога: