Основы навигации в Linux
В этом разделе вы познакомитесь с основами навигации по системе. Для множества задач нужно уметь добираться до конкретного места в системе, и эти навыки формируют фундамент вашего успеха в работе с Linux. Постарайтесь разобраться в навигации.
Как узнать, в какой директории вы находитесь
Первая команда, которую мы изучим — pwd
, сокращение от Print Working Directory (выведи рабочую директорию). Вы скоро увидите, что множество команд в Linux — это аббревиатуры слов, описывающих их. Это помогает лучше их запомнить. Собственно, команда и выводит текущую рабочую директорию. Попробуйте использовать ее.
1. pwd
2. /home/karpaff
Правильное выполнение многих команд терминала зависит от того, в нужном ли месте вы находитесь. Почаще используйте эту команду, чтобы не забывать, в какой вы директории.
Как узнать содержимое директории
Мы научились определять, в какой директории мы находимся. Теперь давайте научимся узнавать содержимое директории. В этом нам поможет команда ls
— сокращение от list (список). Давайте опробуем ее.
1. ls
2. bin Documents public_html
Команда pwd
отрабатывает сама по себе, без аргументов. ls
в этом плане посильнее. В случае выше мы запустили ее без аргументов — она выведет список содержимого данной директории. Но от ls можно получить больше — ниже дана схема ее использования:
ls [ключи] [директория]
В примере выше квадратные скобки обозначают, что эти пункты опциональны, и мы можем запускать команду и с ними, и без них. Ниже я запустил разные варианты ls
, чтобы продемонстрировать ее работу.
1. user@bash: ls
2. bin Documents public_html
3. user@bash:
4. user@bash: ls -l
5. total 3
6. drwxr-xr-x 2 karpaff users 4096 Mar 23 13:34 bin
7. drwxr-xr-x 18 kapraff users 4096 Feb 17 09:12 Documents
8. drwxr-xr-x 2 karpaff users 4096 May 05 17:25 public_html
9. user@bash:
10. user@bash: ls /etc
11. a2ps.cfg aliases alsa.d cups fonts my.conf systemd
12. ...
13. user@bash: ls -l /etc
14. total 3
15. -rwxr-xr-x 2 root root 123 Mar 23 13:34 a2ps.cfg
16. -rwxr-xr-x 18 root root 78 Feb 17 09:12 aliases
17. drwxr-xr-x 2 karpaff users 4096 May 05 17:25 alsa.d
18. ...
19. user@bash:
Рассмотрим код по частям:
- Строка 1 — запуск
ls
в базовой форме. Она вывела список содержимого текущей директории. - Строка 4 — запуск
ls
с ключом-l
, который означает, что команда выведет длинный список. В длинном списке есть следующее:- Первый символ означает, является ли объект файлом
-
или директориейd
. - Следующие 9 символов — типы разрешений для файла или директории.
- Следующее поле — количество блоков (пока что не задумывайтесь об этом).
- Дальше — владелец файла или директории (в данном случае — karpaff)
- Дальше — группа, которой принадлежит файл или директория (в данном случае — users).
- Следующая часть — размер файла/директории.
- Затем идет время изменения.
- И в конце — название файла или директории.
- Первый символ означает, является ли объект файлом
- Строка 10 — запуск
ls
с аргументом командной строки/etc
. Когда мы так делаем,ls
выводит содержимое не рабочей директории, а той, которую мы передали в качестве аргумента. - Строка 13 — запуск
ls
и с ключом, и с аргументом командной строки. Соответственно, здесь был произведен вывод длинного списка директории/etc
. - Строки 12 и 18 означают лишь, что для краткости я вырезал стандартный вывод некоторых команд. При запуске команд вы увидите более длинный список файлов и директорий.
Пути к файлам
При рассмотрении предыдущих команд мы затронули тему путей. Я хотел бы углубиться в эту тему, поскольку она важна для более эффективного использования Linux. Неважно, пытаемся мы обратиться к файлу или директории через командную строку, на самом деле мы обращаемся по пути. Путь — это способ добраться до конкретного файла или директории в системе.
Абсолютные и относительные пути
Существует два типа путей — абсолютные и относительные. Обращаемся мы к файлу или директории, мы будем использовать один из этих типов путей (система в любом случае будет направлена в правильное место).
Для начала нужно понять, что файловая система под Линуксом — это иерархическая структура. Наверху этой структуры находится корневая директория. Она обозначается одним слэшем /
. У нее есть свои поддиректории, у них свои и так далее. Файлы могут находиться в любой из директорий.
Абсолютные пути указывают положение файла или директории относительно директории root
. Их можно узнать по слэшу в начале пути /
.
Относительные пути указывают положение файла или директории относительно ващего текущего местоположения в системе. Они не начинаются со слэша.
Пример:
1. user@bash: pwd
2. /home/karpaff
3. user@bash:
4. user@bash: ls Documents
5. file1.txt file2.txt file3.txt
6. ...
7. user@bash: ls /home/karpaff/Documents
8. file1.txt file2.txt file3.txt
9. ...
- Строка 1 — запускаем
pwd
, чтобы узнать, где мы находимся. - Строка 4 — запускаем
ls
с аргументом в виде относительного пути. Documents — директория в той папке, в которой мы сейчас находимся. Такая команда может выдать разный результат в зависимости от того, где мы находимся. Если бы у нас был другой пользователь в системе, скажем, Вася, и мы запустили бы эту команду в его домашней директории, выводом стало бы содержимое папки Documents Васи. - Строка 7 — запускаем
ls
с аргументом в виде абсолютного пути. Вывод такой команды будет одинаков вне зависимости от того, где мы сейчас находимся.
Скоро вы увидите, что множество вещей в Linux можно получить несколькими разными способами. Пути — не исключение. Ниже приведены некоторые иные компоненты для построения путей.
~
(тильда) — обозначение вашей домашней директории. Например, если ваша домашняя директория /home/karpaff, то к директории Documents можно обратиться по пути /home/karpaff/Documents или по пути ~/Documents..
(точка) — указание на директорию, где вы сейчас находитесь. Например, в примере выше на 4 строке мы обратились к директории Documents с помощью относительного пути. Тот путь можно было записать как ./Documents (Обычно в этом нет необходимости, но ниже мы рассмотрим примеры того, где это может пригодиться)...
(две точки) — указание на родительскую директорию. Вы можете использовать такое сокращение в пути несколько раз, чтобы подниматься по иерархии. Например, если вы были в папке/home/karpaff
, вы можете запустить командуls ../../
и выводом будет список содержимого корневой директории.
Теперь вы знаете, что к местоположению можно обращаться множеством разных способов. Некоторые из вас зададутся вопросом, какой вариант лучше использовать? Ответ: любой, который больше нравится. Обращаетесь вы к файлу или директории, в командной строке вы обращаетесь по пути, а путь вы можете составить, используя любой из элементов, представленных выше. Лучший подход в этом деле — удобный именно для вас.
Примеры:
1. user@bash: pwd
2. /home/karpaff
3. user@bash:
4. user@bash: ls ~/Documents
5. file1.txt file2.txt file3.txt
6. ...
7. user@bash: ls ./Documents
8. file1.txt file2.txt file3.txt
9. ...
10. user@bash: ls /home/ryan/Documents
11. file1.txt file2.txt file3.txt
12. ...
13. user@bash:
14. user@bash: ls ../../
15. bin boot dev etc home lib var
16. ...
17. user@bash:
18. user@bash: ls /
19. bin boot dev etc home lib var
20. ...
После того, как вы сами поиграетесь с этими командами в командной строке, вы станете лучше их понимать. Убедитесь, что понимаете, как работают элементы построения пути, поскольку мы будем использовать их в следующих уроках.
Как сменить директорию
Для передвижения по системе используется команда cd
, сокращение от change directory (сменить директорию). Она работает следующим образом:
cd [местоположение]
Подсказка: если вы запустите команду без аргументов, она вернет вас в домашнюю директорию.
Команду cd
можно запускать и без аргументов, как мы видели в подсказке выше, но обычно ее запускают с одним аргументом командной строки — месту, в которое мы хотим перейти. Место определяется абсолютным или относительным путем с использованием любых элементов для построения путей, упомянутых выше.
Пример:
1. user@bash: pwd
2. /home/karpaff
3. user@bash: cd Documents
4. user@bash: ls
5. file1.txt file2.txt file3.txt
6. ...
7. user@bash: cd /
8. user@bash: pwd
9. /
10. user@bash: ls
11. bin boot dev etc home lib var
12. ...
13. user@bash: cd ~/Documents
14. user@bash: pwd
15. /home/karpaff/Documents
16. user@bash: cd ../../
17. user@bash: pwd
18. /home
19. user@bash: cd
20. user@bash: pwd
21. /home/karpaff
Автодополнение
Прописывать пути вручную может быть утомительно. А если вы, как и я, постоянно опечатываетесь, то вам очень поможет маленький механизм командной строки под названием автодополнение.
Когда вы печатаете путь в командной строке, нажмите кнопку Tab, чтобы применить механизм автозавершения. Если ничего не произошло, значит существует несколько вариантов продолжения пути. Нажмите Tab снова, и вы увидите эти варианты. Продолжайте печатать и опять нажмите Tab, и механизм снова попытается завершить путь за вас.
Это сложно продемонстрировать в статье, так что попробуйте потестировать эту фичу сами. Если вы напечатаете в командной строке cd /hTab/<начало вашего имени пользователя>Tab, вы поймете, как это работает.
Что нужно запомнить
Команды
pwd
Выводит текущую директорию.ls
Выводит писок содержимого директории.cd
Переводит в другую директорию.
Понятия
Относительный путь
Местоположение файла или директории относительно вашего текущего местоположения в системе.Абсолютный путь
Местоположение файла или директории относительно корневой папки файловой системы.
Практические задания
Давайте применим то, что мы только что узнали, на практике. Попробуйте выполнить следующие задания:
1. Начнем с передвижения по системе. Используйте команды cd
и ls
, чтобы больше узнать о директориях вашей системы и о том, что в них есть. Постарайтесь использовать разные варианты относительных и абсолютных путей. Интересные места для исследования:
• /etc
— здесь хранятся конфигурационные файлы системы.
• /var/log
— здесь хранятся файлы логов для разных системных программ. (У вас может не быть разрешений просматривать все в этой директории. Пусть это вас не останавливает. Пара сообщений об ошибках никому не помешает)
• /bin
— место, в котором хранятся некоторые часто используемые программы.
• /usr/bin
— еще одно место, в котором хранятся системные программы.
2. А теперь вернитесь в домашнюю директорию 4 разными способами.
3. Постарайтесь почаще использовать автодополнение. Зачем напрягаться, если компьютер может что-то делать за вас?