Командная строка · 4 min read · Nov 12, 2025

Советы и хитрости навигации по командной строке Linux - Часть 1

Если вы только начали использовать командную строку в Linux, то стоит знать, что это одна из самых мощных и полезных функций ОС. Кривая обучения может быть крутой или не очень, в зависимости от того, насколько глубоко вы хотите погрузиться в тему. Тем не менее, есть несколько советов/хитростей командной строки Linux, которые всегда будут полезны, независимо от вашего уровня экспертизы.

В этой серии статей мы обсудим несколько таких советов/хитростей, надеясь, что они сделают ваш опыт работы с командной строкой еще более приятным.

Советы/хитрости командной строки Linux

Пожалуйста, обратите внимание, что мы предполагаем, что вы знаете основы командной строки в Linux, такие как что такое корневая и домашняя директории, что такое переменные окружения, как перемещаться по директориям и многое другое. Также имейте в виду, что советы/хитрости будут сопровождаться объяснением как и почему связанного с концепцией (где это применимо).

Легко переключаться между двумя директориями - быстрый совет

Предположим, вы выполняете какую-то работу в командной строке, которая требует от вас многократного переключения между двумя директориями. И эти две директории находятся в совершенно разных ветвях, скажем, под /home/ и под /usr/, соответственно. Что бы вы сделали?

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

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

Например:

Я нахожусь в следующей директории:

$ pwd  
/home/himanshu/Downloads

А затем я переключился в другую директорию в ветви /usr/:

cd /usr/lib/

Теперь я могу легко переключаться назад и вперед, используя следующую команду:

cd -

Вот скриншот, показывающий команду cd - в действии.

Команда cd в Linux

Важно отметить, что если вы сделаете переключение на третью директорию между всем этим, то команда cd будет работать для новой директории и директории, из которой было сделано переключение.

Легко переключаться между двумя директориями - связанные детали

Для любопытных, кто хочет знать, как работает команда cd -, вот объяснение: Как мы все знаем, команда cd требует путь в качестве аргумента. Теперь, когда дефис (-) передается в качестве аргумента команде, он заменяется значением, которое в данный момент содержит переменная окружения OLDPWD.

Объяснение команды cd

Как теперь станет ясно, переменная окружения OLDPWD хранит путь к предыдущей рабочей директории. Это объяснение есть в справочной странице команды cd, но, к сожалению, вероятно, что вы не найдете справочную страницу, предустановленную на вашей системе (по крайней мере, ее нет в Ubuntu).

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

sudo apt-get install manpages-posix

А затем выполните:

man cd

Как только справочная страница откроется, вы увидите, что там четко сказано:

- Когда дефис используется в качестве операнда, это будет эквивалентно  
 команде:  
  
 cd "$OLDPWD" && pwd

Не нужно говорить, что именно команда cd устанавливает переменную OLDPWD. Так что каждый раз, когда вы меняете директорию, предыдущая рабочая директория сохраняется в этой переменной. Это приводит нас к еще одной важной точке: всякий раз, когда запускается новый экземпляр оболочки (как вручную, так и через скрипт), у него нет ‘предыдущей рабочей директории’.

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

Продолжая, хотя это может показаться нелогичным, команды cd - и cd $OLDWPD не дают одинаковых результатов во всех ситуациях. Например, когда только что был запущен новый шелл.

Как видно из скриншота выше, в то время как команда cd - жаловалась на то, что переменная OLDPWD не установлена, команда cd $OLDPWD не выдала никакой ошибки; на самом деле она изменила текущую рабочую директорию на домашнюю директорию пользователя.

Это потому, что учитывая, что переменная OLDPWD в данный момент не установлена, $OLDPWD не что иное, как пустая строка. Таким образом, команда cd $OLDPWD так же хороша, как просто выполнение cd, который - по умолчанию - переводит вас в вашу домашнюю директорию.

Наконец, я также сталкивался с ситуациями, когда желательно подавить вывод, который производит команда cd -. Что я имею в виду, так это то, что могут быть случаи (например, при написании скрипта оболочки), когда вы захотите, чтобы команда cd - не производила обычный путь директории в выводе. Для таких ситуаций вы можете использовать команду следующим образом:

cd - &>/dev/null

Вышеуказанная команда перенаправит как файловый дескриптор 2 (STDERR), так и дескриптор 1 (STDOUT) в /dev/null. Это означает, что любые ошибки, которые команда производит, также будут подавлены. Тем не менее, вы все равно сможете проверить успех или неудачу команды, используя общую технику $? - команда echo $? выдаст ‘1’, если была ошибка, и ‘0’ в противном случае.

В качестве альтернативы, если вас устраивает, что команда cd - производит вывод в случае ошибок, тогда вы можете использовать следующую команду:

cd - > /dev/null

Эта команда только перенаправит файловый дескриптор 1 (STDOUT) в /dev/null.

Заключение

К сожалению, мы смогли охватить только один совет, связанный с командной строкой, но хорошая новость в том, что нам удалось обсудить много глубоких моментов о команде cd -. Вам рекомендуется тщательно пройтись по учебнику и протестировать все, что мы обсудили здесь, в терминале командной строки вашего Linux. Также обязательно ознакомьтесь со справочной страницей команды и попробуйте все функции, документированные там.

Если у вас возникнут какие-либо проблемы или есть вопросы, поделитесь ими с нами в комментариях ниже. Тем временем ждите вторую часть, в которой мы обсудим еще несколько полезных советов/хитростей, связанных с командной строкой, так же, как это было сделано здесь.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.