Как ускорить навигацию командной строки

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

Ниже вы найдете подборку полезных команд и их описание. Эти комбинации позволяют ускорить работу с командной строкой.

Повторный запуск под root — sudo !!

user@host: cat /var/log/messages
cat /var/log/messages: Permission denied.

Как не надо: Вверх. Влево. Влево. Влево. …. sudo Enter. Рррр.
Как надо: sudo !!

Это работает потому, что !! является командным символом-заполнителем для последней выполненной команды. Получается, что так вы сможете запустить последнюю команду под root без лишних нажатий на стрелки вверх и влево. Кстати, эта же команда прекрасно работает и без sudo. Но почему-то только для повторного запуска последней команды без изменений.

Повторный ввод последнего аргумента — Alt+

Вы захотели еще раз воспользоваться только что написанным аргументом? Например, созданной директорией?

Как не надо: mkdir MyNewDirectory; cd MyNewDirectory
Как надо:

mkdir MyNewDirectory
cd <Alt+.>

Поиск запущенной команды — Ctrl+R

Какую же команду я только что запускал? Вверх. Вверх. Вверх. Вверх. О, вот и она!

Снова и снова вам приходится копаться в истории, ведь вы не знаете более подходящих альтернатив. Но что, если я скажу вам о том, что есть… поиск?

Как не надо: Вверх. Вверх. Вверх. Enter.
Как надо: Ctrl+R

Просто нажмите Ctrl+R и введите первые буквы нужной команды. Если поиск не выдал нужную команду сразу, то нажмите Ctrl+R еще раз. Повторное нажатие используется для прокрутки результатов. Ниже приведен поиск для cat.

(reverse-i-search)cat: sudo cat /var/log/messages

Переход в начальную директорию — cd

Вы не на шутку удивитесь, узнав, сколько людей не знают этого способа! cd. Да, так просто. Без лишних аргументов вы сразу попадете в начальную директорию.

Возвращение в последнюю директорию — cd 

Иногда простой способ — самый лучший. Допустим, вы были в директории /var/www/foo, а теперь оказались в /etc . Простая команда cd — вернет вас обратно в /var/www/foo .

Как не надо: cd /var/www/foo
Как надо: cd -

Контроль работы: передний план, фоновый режим и проч.

Возможно, вам потребуется какое-то время, чтобы привыкнуть, но оно того стоит. Допустим, вы редактируете файл в vim (вы же не будете этого делать в nano, да?!). И вот вам вдруг захотелось что-то найти в директории /var/www/html. Конечно же, вы можете выйти из vim, перейти в нужную директорию, а потом вдруг решить, что неплохо было бы вернуться к редактированию. Есть и другой вариант — перевести vim в фоновый режим и вернуться к нему позже.

Напишите: Ctrl+Z. Эта комбинация переводит все текущие задачи с переднего плана в фоновый режим. Полезно как минимум для: less, cat, man, vim и т.д.

«И куда же отправится моя активная задача?» — спросите вы. Напишите jobs и сами узнаете.

user@host: jobs
[1] Stopped vim

Супер. Теперь можно заняться чем-то другим. А как только вы решите вернуться к задаче, напишите fg. Эта команда возвращает фоновую задачу (vim) на передний план. Обратите внимание, что фоновые процессы приостанавливаются. Поэтому если в файле вы выполняли что-то из разряда tail, то для завершения команды потребуется какое-то время. Если же в фоновом режиме запущено несколько задач, то напишите fg 3 , где 3 — это номер задачи для возобновления. Увидеть список задач можно по команде jobs.

Ярлыки для часто используемых команд — eg netstatx

Если вы часто запускаете команду с одинаковыми аргументами, то сделайте для нее собственный ярлык. У меня таких ярлыков уже много. Как правило, в названии ярлыков я придерживаюсь следующей схемы <название_команды>x. То есть сначала идет обычное название команды, а потом добавляется x. Допустим, есть команда netstat. Я всегда выполняю ее с -n (только числовой адрес), -t (протокол TCP), -a (все), -u (протокол UDP) и -e (расширенный вывод). Получается легко читаемая команда netstat -ntaupe. А поскольку я — существо ленивое и могу забывать аргументы команды, то ярлык для netstatx я предпочту записать вот так:

alias netstatx=”netstat -ntaupe”

Опробуйте этот способ на всем, чем пользуетесь регулярно.

Как не надо: netstat -ntaupe
Как надо: netstatx (или любая другая команда, которой вы часто пользуетесь)

Заключение

Потратьте немного времени сейчас, чтобы экономить его в будущем. Это действительно упрощает жизнь 🙂

Читайте также:

Читайте нас в TelegramVK


Перевод статьи James Read: Speed up your command line navigation 

Предыдущая статьяКак читать и понимать документацию API
Следующая статьяПервые шаги в программировании: работа без ошибок