Командная строка Linux, навигация в системе и просмотр директорий: команды pwd, ls, cd

Командная строка Linux, навигация в системе и просмотр директорий: команды pwd, ls, cd

Обновлено 23.02.2024

Это второй пост из цикла, посвященного работе в командной строке Linux. Сегодня мы рассмотрим базовую навигацию по файловой системе и просмотр содержимого каталогов.

Обязательно прочитайте первый пост:

Практические примеры из постов данного цикла выполнялись в среде дистрибутива Linux Mint 21.

Получение справки о командах

Получить исчерпывающую справку о командах можно прямо в терминале Linux.

Для получения краткой справки по команде и узнать список её ключей, зачастую с описанием, можно воспользоваться ключом –help, который существует у многих команд.

Например:

ls --help

Более развернутую справку по какой-либо команде всегда можно получить с помощью отдельной утилиты man. Просто выполните man <имя_программы>

Например:

man ls

Для навигации при просмотре man страниц воспользуйтесь стрелочками вверх, вниз на клавиатуре для построчного просмотра.

Отмечу, что в описании синтаксиса команд в квадратных скобках обозначаются необязательные параметры команды.

Список команд

Итак, сегодня наш арсенал инструментов пополнится следующими командами:

КомандаОписание
pwdвыводит адрес текущего рабочего каталога в файловой системе
lsвыводит содержимое каталога
cdпозволяет перейти в какой-либо каталог

Эти команды относятся к числу наиболее часто используемых в Linux. Они
применяются для вывода адреса рабочего каталога, просмотра содержимого и перехода в другой каталог.

У каждой команды существует определенное количество параметров (ключей), которые определяют режим работы команды и ее функциональность. Ключи бывают двух типов: короткие и длинные. Они имеют, например такой вид:

  • Короткий: -h
  • Длинный: --help

Во многих командах оба таких ключа будут иметь одно и то же значение, но так бывает не всегда.

Теперь приступим к практике. Давайте рассмотрим по несколько примеров для каждой из команд из таблицы выше.

Начнём по порядку.

Команда pwd (print working directory) – вывод текущего рабочего каталога

Синтаксис:

pwd [ключи]

Команда имеет всего два ключа:

КлючЗначение
-L или --logicalвывод адреса текущего рабочего каталога учитывая символические ссылки
-P или --physicalвывод фактического (физического) адреса без учет символических ссылок

Открываем терминал и выполняем эту команду без ключей:

По умолчанию, при в ходе в систему мы попадаем в свой домашний каталог. В моём примере это /home/ivan что и показала нам команда pwd.

Обратите внимание, что путь начинается со слэша / который обозначает “корень” нашей файловой системы. Остальные слэши являются лишь разделителями между вложенными директориями и файлами.

В графическом файловом менеджере адрес домашней директории выглядит так:

Также значение pwd каждый раз перезаписывается в переменную окружения (environment variables) $PWD. Посмотреть значение переменной в терминале можно так:

echo $PWD

Утилиту echo мы рассмотрим в следующем посте. Про переменные в будущем будет отдельный пост.

Команда ls (list) – просмотр содержимого каталога

Синтаксис:

ls [ключи] [каталог]

Часто используемые ключи:

КлючЗначение
-aпоказать скрытые файлы, название таких файлов в Linux начинается с точки .
-lвывести содержимое в виде списка с подробностями (дата изменения, размер файла и т.д)
-hв сочетании с ключом -l выводит размеры файлов в человекочитабельном формате
-tсортировать вывод по времени изменения
-rсортировка вывода содержимого в обратном алфавитном порядке
-iпоказывает индекс дискового дескриптора
-Rвыводит содержимое каталогов рекурсивно

Если выполнить эту команду без ключей и аргументов, то программа выведет нам содержимое текущего рабочего каталога, который мы узнали с помощью pwd:

Посмотрим, что будет если вывести содержимое в виде списка:

ls -l

Добавим ключ -a⁣, чтобы увидеть скрытые файлы:

ls -la

Видим, что в нашем домашнем каталоге много скрытых файлов. Подробнее разберем вывод предыдущей команды:

№ столбцаОписание
1Первый символ в этой колонке – это тип файла ( обычный файл, d – директория, l – линк). Далее идут права доступа (rwx – read, write, execute) – чтение, запись, исполнение для пользователя, группы и остальных (ugo – user, group others).
2Количество жестких ссылок (линков – об этом как нибудь в другой раз).
3Владелец файла.
4Группа владельца, по умолчанию при создании файлов имя группы совпадает с именем владельца, если не заданы специальные параметры (маска).
5Размер файлов (по умолчанию в байтах). Размер директорий таким образом оценить не удастся. В выводе команды ls они будут иметь размер 4 килобайта. Для просмотра размера файлов, в текущем каталоге (в т.ч. размеры каталогов), можно воспользоваться командой: du -sh ./*
6,7,8Дата и время последнего изменения.
9Имя файла.

Добавив команде ls ключ -h размер файлов отобразится в более удобном для человека формате:

Команда cd (change directory) – переход в какой-либо каталог

Синтаксис:

cd [каталог]

Данная команда меняет текущей рабочий каталог на другой. При выполнении команды cd без аргументов мы попадём в наш домашний каталог.

Давайте для примера перейдём в “корень” нашей системы Linux Mint, затем проверим наш текущий рабочий каталог и выведем его содержимое:

cd /

pwd

ls -l

Вывод команды будет примерно таким:

Прорубаемым перейти в каталог /usr и узнать его содержимое:

cd /usr

# или

cd ./usr

ls -la

Тут стоит упомянуть, что в Linux существуют такие понятия, как абсолютный путь и относительный.

Абсолютные пути всегда начинаются с “корня” т.е символа слэша /

Относительные пути подразумевают указание пути относительно ткущей или родительской директории, которые обозначаются:

. или ./обозначает текущую директорию
.. или ../обозначает родительскую директорию

Сейчас мы находимся в /usr. Попробуем перейти в каталог на уровень выше выполнив:

cd ..

pwd

И видим, что мы вернулись в “корень” нашей системы.

Попасть обратно в домашний каталог с помощью команды cd можно четырьмя способами:

  • выполнить команду без аргументов
  • указать полный путь
  • в качестве аргумента передать знак тильды ~ обозначающий домашний каталог пользователя в Linux
  • передать аргументом переменную окружения с адресом домашнего каталога – $HOME
cd

cd /home/ivan/

cd ~

cd $HOME

Завершающий слэш в пути обозначает, что типом последнего элемента в пути (например /home/ivan/) является директория. Во многих случаях его можно и не ставить.

Все эти команды будут иметь одинаковый эффект:

Еще один трюк. Если передать команде cd в качестве аргумента минус - она вернет нас в предыдущий каталог и выведет его адрес:

cd -

Послесловие

Сегодня мы научились перемещаться по файловой системе в командной строке, выводить наш рабочий каталог и просматривать содержимое каталогов.

В следующем посте мы, с учетом полученных сегодня знаний, подробно рассмотрим работу утилит: echo, cat, less с помощью которых можно выводить произвольный текст и смотреть содержимое файлов в терминале.

Спасибо, что читаете. Успехов в изучении Linux

Полезные источники

Предыдущие посты цикла

  1. Командная строка Linux, введение: типы команд, plain text, файловая система, shell prompt
Подписаться
Уведомить о
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии