Знание полезных команд может творить чудеса. Мне часто приходится возиться с командными строками, помогая другим с отладкой кода и навигацией серверов, поэтому я прекрасно понимаю, каким огорчительным и трудоемким может оказаться этот процесс без знания полезных комбинаций.
Ниже вы найдете подборку полезных команд и их описание. Эти комбинации позволяют ускорить работу с командной строкой.
Повторный запуск под 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
(или любая другая команда, которой вы часто пользуетесь)
Заключение
Потратьте немного времени сейчас, чтобы экономить его в будущем. Это действительно упрощает жизнь 🙂
Читайте также:
- Шпаргалка по основным командам Bash
- В чем Windows превосходит Linux
- 5 Команд Linux, заставляющих ахнуть от удивления
Перевод статьи James Read: Speed up your command line navigation