
Командная строка Linux, навигация в системе и просмотр директорий: команды pwd, ls, cd
Обновлено 11.11.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
Полезные источники
- Книга «Командная строка Linux. Полное руководство. Уильям Шоттс» – itsecforu.ru
- Мануал команды pwd – OpenNET
- Мануал команды ls – OpenNET
- Мануал команды cd – OpenNET
- Переменные окружения (Environment variables (Русский)) – ArchWiki