Тема полезных приёмов работы в терминале Linux неисчерпаема. Казалось бы — всё устроено очень просто: приглашение оболочки, да введённые с клавиатуры команды. Однако, в этой простоте кроется бездна неочевидных, но полезных возможностей. Именно поэтому мы регулярно публикуем материалы, посвящённые особенностям работы в командной строке Linux. В частности, сегодня это будет перевод статьи, автор которой увлечён экономией времени через повышение продуктивности труда.

В этом материале я покажу вам некоторые профессиональные приёмы работы в командной строке Linux, которые сэкономят вам уйму времени и в некоторых случаях избавят от плохого настроения. Мало того, что ваши друзья или коллеги скажут: «Ну надо же!», глядя на вас. Эти приёмы, кроме того, помогут вам увеличить личную продуктивность, так как вам понадобится вводить меньше команд и даже делать меньше щелчков мышью.
Нельзя сказать, что эти советы по Linux предназначены только для начинающих. Вполне возможно, что даже опытные пользователи найдут здесь что-нибудь полезное, то, о чём они не знали несмотря на то, что пользовались Linux многие годы. Linux изучают на основе опыта. Тут сгодится и собственный опыт, и опыт других людей.
Прежде чем мы начнём, хочется отметить, что некоторые из приведённых здесь методов зависят от настройки командной оболочки.
Когда вы начинаете набирать что-то в терминале Linux, вы можете нажать клавишу
Например, собираясь скопировать файл с именем
Клавишу
В большинстве современных дистрибутивов Linux оболочка предварительно настроена на именно такое восприятие команды
Но в том-то всё и дело. Практически все используют команду
В подобной ситуации полезным окажется разделитель команд
Представьте себе, что хотите собрать код, а затем, если сборка оказалась успешной, вызвать
В подобной ситуации можно использовать разделитель
В подобной ситуации вас спасёт обратный поиск. Данная методика позволяет проводить поиск в истории команд по ключевому слову. Тут достаточно использовать комбинацию клавиш
Обратите внимание на то, что в некоторых оболочках Bash для перебора результатов поиска можно пользоваться клавишами
Если раньше вы, для того, чтобы исправить положение, вынуждены были закрывать и снова запускать терминал — теперь может вздохнуть спокойно, больше вам этого делать не придётся. Для того, чтобы привести терминал в рабочее состояние, просто воспользуйтесь комбинацией клавиш
Конечно, в подобной ситуации можно использовать клавиши
Мне такой способ кажется удобнее, чем использование клавиш
Тут нам на помощью приходит группа команд, имя которых начинается с буквы «z». Эти команды являются альтернативой обычным командам, которые используются для работы с файлами журналов. Среди них —
Итак, используя команды
Кстати, когда я рассказал об этих «секретных» командах коллеге, мне досталась чашка кофе.
Для просмотра файлов можно воспользоваться редакторами вроде Vi или Vim, работающими в терминале, но если вам просто нужно прочесть файл, очень кстати окажется команда
Предположим, вам нужно создать директорию, а потом в неё перейти. Тут можно воспользоваться опцией
Ещё лучше то же самое делается с помощью сочетания клавиш
Например, может случиться так, что вы часто вводите
Но обычно команды копирования и вставки можно вызывать следующим образом:
Практически все средства командной строки содержат справочную информацию, раскрывающую особенности их использования. Обычно чтение справки помогает разобраться с основами команды. Вызвать справку можно так:

Приёмы работы в командной строке Linux и экономия времени
Вам когда-нибудь доводилось видеть, как коллега использует некие простые команды Linux для решения задач, решение которых занимает у вас несколько строк? Должно быть, когда подобное случалось, вы только и могли сказать себе: «Ну ничего ж себе! Я и не знал, что это можно сделать так просто».В этом материале я покажу вам некоторые профессиональные приёмы работы в командной строке Linux, которые сэкономят вам уйму времени и в некоторых случаях избавят от плохого настроения. Мало того, что ваши друзья или коллеги скажут: «Ну надо же!», глядя на вас. Эти приёмы, кроме того, помогут вам увеличить личную продуктивность, так как вам понадобится вводить меньше команд и даже делать меньше щелчков мышью.
Нельзя сказать, что эти советы по Linux предназначены только для начинающих. Вполне возможно, что даже опытные пользователи найдут здесь что-нибудь полезное, то, о чём они не знали несмотря на то, что пользовались Linux многие годы. Linux изучают на основе опыта. Тут сгодится и собственный опыт, и опыт других людей.
Прежде чем мы начнём, хочется отметить, что некоторые из приведённых здесь методов зависят от настройки командной оболочки.
0. Автозавершение команд с использованием клавиши Tab
Я начну с кое-чего вполне очевидного, но весьма важного: с автозавершения команд с помощью клавишиTab
.Когда вы начинаете набирать что-то в терминале Linux, вы можете нажать клавишу
Tab
, после чего будет выведена подсказка, содержащая набор вариантов продолжения ввода, начинающихся с только что введённых символов.Например, собираясь скопировать файл с именем
my_best_file_1.txt
, вы можете просто ввести cp m
и нажать Tab
для того, чтобы увидеть возможные варианты продолжения команды.
Клавишу
Tab
можно использовать и для автозавершения команд.1. Переход в последнюю рабочую директорию
Представьте, что вы работали в директории, до которой не так уж и просто добраться, а потом перешли в другую директорию, расположенную совершенно в другом месте. Потом вы поняли, что вам нужно вернуться в предыдущую директорию. В этом случае достаточно воспользоваться следующей командой:cd -
Она позволит вам оказаться в последней рабочей директории. Теперь в подобных ситуациях вам не нужно больше будет вводить длинные пути, или пользоваться копированием и вставкой.
2. Возврат в домашнюю директорию
Этот приём тоже весьма очевиден. Вы можете использовать нижеприведённую команду для того, чтобы вернуться в домашнюю директорию из любого места:cd ~
Однако, в домашнюю директорию можно вернуться ещё быстрее — с помощью команды cd
.В большинстве современных дистрибутивов Linux оболочка предварительно настроена на именно такое восприятие команды
cd
. Это сэкономит вам пару нажатий клавиш на клавиатуре.
3. Вывод на экран содержимого директории
Возможно, вы зададитесь вопросом о том, в чём состоит тонкость использования команды для вывода содержимого директории. Все знают, что для этой цели служит командаls -l
.Но в том-то всё и дело. Практически все используют команду
ls -l
для вывода содержимого директорий, в то время как то же самое можно сделать с помощью следующей команды:ll
Работоспособность этой команды зависит от дистрибутива Linux и от настройки оболочки, но весьма вероятно, что вы сможете воспользоваться ей в большинстве дистрибутивов.
4. Вызов нескольких команд в одной строке
Представьте, что вам нужно последовательно выполнить несколько команд. Наверное, вы вводите одну команду, потом ждёте, когда она завершится, дальше — вводите следующую?В подобной ситуации полезным окажется разделитель команд
;
(точка с запятой). При таком подходе вы можете ввести несколько команд в одной строке. При этом, в отличие от обычного ввода команд, для выполнения следующей команды не надо ждать завершения предыдущей.command_1; command_2; command_3
5. Выполнение нескольких команд в одной строке и условие на успешное завершение предыдущей команды
Только что мы рассмотрели способ вызова нескольких команд в одной строке. Это экономит время. Но что если вам нужно, скажем, при вызове двух команд, чтобы следующая команда была выполнена только в том случае, если предыдущая завершится без ошибок?Представьте себе, что хотите собрать код, а затем, если сборка оказалась успешной, вызвать
make
?В подобной ситуации можно использовать разделитель
&&
. Этот разделитель позволяет гарантировать то, что следующая команда будет выполнена лишь в том случае, если предыдущая отработает успешно.command_1 && command_2
Вот хороший пример использования &&
:sudo apt update && sudo apt upgrade
6. Простой поиск и использование ранее введённых команд
Представьте себе, что вы, пару минут или пару часов назад, вводили длинную команду, и вам снова нужна эта команда. Причём, проблема заключается в том, что вспомнить точно эту команду вы не можете.В подобной ситуации вас спасёт обратный поиск. Данная методика позволяет проводить поиск в истории команд по ключевому слову. Тут достаточно использовать комбинацию клавиш
Ctrl + R
для запуска обратного поиска и ввести что-то, имеющее отношение к команде. Система просмотрит историю команд и покажет команды, соответствующие введённому запросу.Ctrl + R search_term
По умолчанию показан будет лишь один результат. Для того, чтобы увидеть больше результатов, соответствующих запросу, вам понадобится использовать комбинацию клавиш Ctrl + R
снова и снова. Для того, чтобы выйти из режима обратного поиска, нажмите Ctrl + C
.
Обратите внимание на то, что в некоторых оболочках Bash для перебора результатов поиска можно пользоваться клавишами
Page Up
и Page Down
.7. Разблокировка терминала после случайного нажатия Ctrl + S
Возможно, вы привыкли пользоваться комбинацией клавишCtrl + S
для сохранения файлов. Но если нажать эти клавиши в терминале Linux, вы его заблокируете.Если раньше вы, для того, чтобы исправить положение, вынуждены были закрывать и снова запускать терминал — теперь может вздохнуть спокойно, больше вам этого делать не придётся. Для того, чтобы привести терминал в рабочее состояние, просто воспользуйтесь комбинацией клавиш
Ctrl + Q
.8. Перемещение к началу или концу строки
Представьте себе, что вы вводите длинную команду и где-нибудь посередине понимаете, что должны что-нибудь изменить в её начале. Вероятно, вы используете клавиши-стрелки для того, чтобы сначала переместиться в начало строки, а потом вернуться в конец.Конечно, в подобной ситуации можно использовать клавиши
Home
и End
, но, как вариант, с помощью комбинации клавиш Ctrl + A
можно перейти в начало строки, а с помощью комбинации Ctrl + E —
в конец.
Мне такой способ кажется удобнее, чем использование клавиш
Home
и End
, особенно когда я работаю на ноутбуке.9. Чтение лог-файлов в режиме реального времени
Когда вам нужно проанализировать файлы журналов, в которые, во время анализа, пишет данные какое-нибудь работающее приложение, вы можете использовать командуtail
с опцией -f
.tail -f path_to_Log
Кроме того, вы можете использовать команду grep
в её обычном виде для отображения только тех строк, которые вас интересуют:tail -f path_to_log | grep search_term
Также тут можно задействовать опцию F
. Это приведёт к тому, что утилита tail
продолжит работать даже в том случае, если просматриваемый лог-файл будет удалён. При таком подходе, если этот файл снова будет создан, tail
продолжит выводить данные из него на экран.10. Чтение сжатых лог-файлов без их распаковки
Серверные журналы обычно сжаты с помощьюgzip
для экономии места на диске. Это может привести к некоторым неудобствам при анализе логов разработчиками или системными администраторами. Вам может понадобиться использовать команду scp для копирования файла в свою локальную директорию, а после этого извлечь файл из архива для того, чтобы его просмотреть, так как у вас может не быть разрешения на запись туда, где хранится интересующий вас файл.Тут нам на помощью приходит группа команд, имя которых начинается с буквы «z». Эти команды являются альтернативой обычным командам, которые используются для работы с файлами журналов. Среди них —
less
, cat
, grep
, и другие.Итак, используя команды
zless
, zcat
, zgrep
и подобные им, вам не придётся явным образом распаковывать сжатые файлы. Подробности об этих командах можно посмотреть здесь.Кстати, когда я рассказал об этих «секретных» командах коллеге, мне досталась чашка кофе.
11. Использование команды less для чтения файлов
Если вам нужно просмотреть файл, особенно — большой, можно попробовать командуcat
, но гораздо лучше поискать что-нибудь другое. Дело в том, что cat
выведет на экран весь файл, что не так уж и удобно.Для просмотра файлов можно воспользоваться редакторами вроде Vi или Vim, работающими в терминале, но если вам просто нужно прочесть файл, очень кстати окажется команда
less
.less path_to_file
Во время сеанса работы с less
можно искать нужные фрагменты текста по ключевым словам, перемещаться по страницам, выводить данные с номерами строк, и так далее.12. Повторное использование последнего элемента из предыдущей команды с помощью !$
Во многих ситуациях очень кстати оказывается возможность использования аргумента предыдущей команды.Предположим, вам нужно создать директорию, а потом в неё перейти. Тут можно воспользоваться опцией
!$
, вводя команду перехода после команды создания директории.
Ещё лучше то же самое делается с помощью сочетания клавиш
Alt +.
(точка). Точку можно использовать несколько раз для перебора опций последней команды.13. Использование предыдущей команды в текущей команде с помощью !!
С помощью!!
можно вызвать всю предыдущую команду. Этот приём оказывается особенно полезным, когда вам нужно выполнить команду и оказывается, что для её выполнения нужны привилегии суперпользователя. Например, на рисунке ниже показана ситуация, в которой команда sudo !!
позволяет сэкономить немало времени.
14. Использование псевдонимов для исправления ошибок ввода
Возможно, вы уже знакомы с командойalias
. Её можно использовать для исправления ошибок во введённых командах.Например, может случиться так, что вы часто вводите
gerp
вместо grep
. Если с вредной привычкой справиться никак не удаётся, запишите псевдоним в свой файл bashrc
следующим образом:alias gerp=grep
Теперь вам не придётся перенабирать эту команду если вы введёте её имя неправильно.15. Копирование и вставка в терминале Linux
Этот совет несколько неоднозначен, так как он зависит от дистрибутива Linux и от терминала.Но обычно команды копирования и вставки можно вызывать следующим образом:
- Выделите текст, который надо скопировать, и щёлкните правой кнопкой мыши для его вставки (работает в Putty и других SSH-клиентах для Windows).
- Выделите текст, который надо скопировать, после чего щёлкните центральной кнопкой мыши (колесом прокрутки) для того, чтобы его вставить.
- Используйте комбинации клавиш
Ctrl + Shift + C
для копирования, иCtrl + Shift + V
для вставки.
16. Завершение работы команды или процесса
Возможно, то, что я тут хочу посоветовать, совершенно очевидно, однако, всё равно об этом расскажу. Если команда выполняется на переднем плане и вы хотите из неё выйти, можете нажать клавишиCtrl + C
для того, чтобы её остановить.17. Использование команды yes для автоматизации интерактивных команд или скриптов
Если вам приходится работать с некоторыми командами или скриптами, которые предусматривают взаимодействие с пользователем, и вы знаете, что будете вводитьY
в ответ на каждый вопрос программы, можете автоматизировать этот процесс с помощью команды yes
. Делается это так:yes | command_or_script
18. Очистка содержимого файла без удаления самого файла
Если вы хотите очистить содержимое текстового файла, не удаляя сам файл, можете использовать следующую команду: > filename
19. Выяснение наличия в директории файлов, содержащих определённый текст
Командная строка Linux поддерживает множество способов поиска информации. Однако, если вам просто нужно узнать, имеются ли в некоей директории файлы, которые содержат определённый текст, вы можете воспользоваться такой командой:grep -Pri Search_Term path_to_directory
Однако я советую всем, кому нужен поиск в Linux, разобраться как следует с командой find
.20. Вызов справки для любой команды
Хочу завершить этот материал одним весьма очевидным, но, тем не менее, очень важным «трюком», который заключается в вызове справки для команды или инструмента командной строки.Практически все средства командной строки содержат справочную информацию, раскрывающую особенности их использования. Обычно чтение справки помогает разобраться с основами команды. Вызвать справку можно так:
command_tool --help
Итоги: делитесь полезными советами!
Источник: itsfoss.com