В статье представлены небольшие, но полезные команды, а также ряд лайфхаков при работе с терминалом, благодаря которым пользователь сможет сэкономить уйму времени.
1. Автозаполнение
При необходимости ввести что-либо в терминале возникает ситуация, когда невозможно вспомнить название команды целиком. Для этого на помощь приходит кнопка табуляции, при нажатии на которую на экране появляются варианты завершения команд для выполнения поставленной задачи.
К примеру, при попытке скопировать файл с именем my_best_file_1.txt, пользователь может просто ввести «cp m» и нажать на табуляцию для просмотра возможных вариантов.
$ ср my_best_file_
my_best_file_1.txt
my_best_file_2.txt
my_best_file_3.txt
my_best_file_4.txt
2. Автоматическое переключение в предыдущий каталог
Допустим, пользователь работал в терминале с файлами в определённом каталоге, для доступа к которому необходимо прописать длинный путь. Затем возникла необходимость переключения в другую папку (также с длинным путем). После выполнения работ в другом каталоге снова возникла необходимость в переключении в папку, в которой проводилась работа ранее. Но не прописывать же снова весь длинный путь к каталогу? Нет. Для этого существует простая команда cd –
, позволяющая переключиться в ранее использованный рабочий каталог.
3. Автоматическое переключение в домашнюю папку
В большинстве случаев все созданные пользователем файлы находятся в домашнем каталоге. Но при включении терминала и открытии нужного файла нужно ещё прописать путь к домашнему каталогу. А он длинный. Чтобы не тратить понапрасну время, можно воспользоваться простенькой командой cd ~
, при вводе которой произойдёт автоматическое переключение в домашний каталог данного аккаунта.
4. Просмотр содержимого каталога
При необходимости открытия какого-либо файла в терминале пользователь должен переключиться в папку и ввести его имя. Но проблема в том, что имя файла невозможно вспомнить. Что делать? Для этого большинство пользователей вводят команду ls -l
. Но немногие знают о более простой альтернативе – команде ll
. Следует напомнить, что эта команда присутствует не во всех дистрибутивах Linux, но в большинстве их она есть.
5. Выполнение нескольких команд
Зачастую возникают ситуации, когда пользователю необходимо в терминале выполнить несколько команд. Всё это хорошо, но не лучше ли запустить на выполнение все команды сразу? Так и время можно сэкономить. Для этого необходимо после ввода предыдущей команды и перед вводом следующей поставить знак «;». Например: command_1; command_2; command_3
6. Последовательность выполнения команд
В предыдущем примере было показано, как вводить одновременно несколько команд. В этом случае все команды будут выполнены, даже если одна из них окажется сбойной. Но вот за результаты их выполнения никто не отвечает, а они, как правило, при таком раскладе будут плачевными. Не лучше ли перестраховаться и сделать так, чтобы последовательность команд выполнялась, только если каждая предыдущая команда завершится успешно. Для этого между предыдущей и последующей командой ставится знак «&&». Например: команда_1 && команда_2
Хорошим примером этой команды является использование оператораsudo apt update && sudo apt upgrade
для обновления системы.
7. Поиск использованной ранее команды
Зачастую может возникнуть ситуация, когда пользователю необходимо ввести использованную ранее длинную команду, название которой он никак не может вспомнить. Что делать? Ведь на поиск команды из Интернета можно потратить уйму времени. Лучшим вариантом решения проблемы является обращение к истории ввода команд. Делается это так. На клавиатуре нажимается клавиши Ctrl и R, а также прописываются первые буквы нужной команды (их, как правило, большинство пользователей помнит). Например, Ctrl+R apt-get. Терминал, заглянув в историю, отобразит на экране соответствующие поисковому запросу варианты команд. Обычно при одном нажатии вышеуказанной комбинации клавиш выводится только один результат запроса. Чтобы получить их большее количество, нужно постоянно нажимать Ctrl+R. В некоторых дистрибутивах вместо Ctrl+с можно нажать PgUp и PgDn. Для выхода из режима поиска необходимо нажать комбинацию кнопок Ctrl+C.
8. Размораживаем зависший терминал
При сохранении любого документа пользователь всегда нажимает кнопки Ctrl+S. Причем он это делает так часто, что это у него уже вошло в привычку. Но что делать, когда он, задумавшись, ввиду той самой привычки нажал вышеуказанную комбинацию клавиш при работе с терминалом. В этом случае ничего не сохранится, а терминал просто зависнет. При попадании в такую ситуацию неопытные пользователи сразу же нажимают заветную кнопку Restart на системном блоки и ждут, пока система загрузится. Но зачем ждать, когда можно нажать на клавиатуре кнопки Ctrl+Q. Терминал сразу же разблокируется.
9. Переход к началу или концу строки
Часто, работая в терминале, пользователю необходимо в длинной команде внести какие то изменения в начале или конце строки. Что делать, если курсор находится, к примеру, в конце строки, а нужно срочно перейти в её начало? Ведь с помощью указателя мыши ничего сделать не получится. Нужно или нажать кнопку со стрелкой влево и долго ждать, пока курсор переместится в начало команды, а можно просто нажать кнопки Ctrl + А. Если же нужно перейти в конец строки, то тогда нажимаются клавиши Ctrl + Е.
10. Чтение файла журнала в режиме реального времени
Иногда возникают моменты, когда пользователю необходимо в момент работы приложения проанализировать журналы (логи). Сделать это можно при вводе команды tail
с параметром -f
. Например, tail -f (путь к логам)
11. Чтение сжатых журналов без необходимости извлечения
Журналы сервера обычно сжимаются с помощью gzip для экономии места на диске. Однако это создает дополнительные проблемы для разработчиков или системных администраторов при их попытках проанализировать журналы. Ведь когда gzip-архив переносится на другой компьютер (рабочее место системного администратора), а затем извлекаются его данные, на экране появляется сообщение об ошибке, указывающее на отсутствие разрешения на запись извлеченной информации.
Помочь в этом случае сможет команда z
, предоставляющая альтернативу обычным используемым для работы с файлами журналов командам (cat, less, grep и т. д.) Таким образом, получается zcat
, zless
, zgrep
и т. д. И разработчику даже не нужно извлекать сжатые файлы.
12. Не загружать весь файл для чтения
Для просмотра содержимого текстового файла пользователи часто вводят привычную для них команду cat
. Но в этом случае на экран выводится содержимое файла. А что делать, если файл большой и не помещается на весь экран? В этом случае можно использовать команды vi
, vim
с возможностью постраничного отображения содержимого файла и его редактирования. Например:vi /home/1.txt
13. Использование значения предыдущей команды полезно во многих ситуациях
Использование аргумента предыдущей команды полезно во многих ситуациях.
Скажем, вам нужно создать каталог, а затем перейти в только что созданную папку. Для этого следует использовать опции !$
. Например:ls /home/desktop
cd !$
14. Повторное использование предыдущей команды в текущей
К примеру необходимо выполнить последовательность каких-то команд. Причем нужно несколько раз вводить уже ранее вводимый оператор. Сделать это возможно с помощью с помощью !!
. Это особенно полезно, когда пользователь запустил команду, а терминал «сказал» ему, что для её выполнения нужны привилегии root. Не вводить же эту команду снова? Нет. Вводится только sudo !!
и предыдущий оператор выполнит свои действия. Например:
apt-update
(Надпись в терминале: are you root?)
sudo !!
(в терминале появится надпись: sudo apt-update и компьютер начнёт выполнять команду)
15. Во избежание опечаток можно использовать псевдоним
Часто при вводе команд пользователь делает опечатки. Также может случиться, что команда очень длинная и так тяжело её вводить постоянно. Не лучше ли «километровую» последовательность символов заменить чем-то коротким? Для этого и существует возможность замены традиционных команд псевдонимами.
Например, пользователь вместо команды grep
постоянно пишет gerp
. Можно заставить терминал воспринимать эту надпись как grep. Для этого следует поместить псевдоним в свой bashrc таким образом: alias gerp=grep
16. Отмена запущенной команды/процесса
Если пользователю необходимо срочно прекратить выполняющуюся в данный момент команду, то он может нажать Ctrl + C для её остановки.
17. Автоматический ввод «yes» для требующих интерактивного ответа команд или скриптов
Существует множество команд, выполнение которых невозможно без взаимодействия с пользователем. К примеру, необходимо нажимать кнопку «Y» (yes) для продолжения выполнения процесса (в противном случае он прервётся). Чтобы автоматизировать выполнения подобного рода интерактивный команд необходимо вместе с командой ввести слово «yes». Например: yes | command
18. Очистка содержимого файла без его удаления
При необходимости очистки содержимого текстового файла без его удаления, можно использовать следующую команду: $> filename
19. Поиск файлов, содержащих определенный текст
Есть несколько способов поиска в командной строке Linux. Но чтобы увидеть, есть ли файлы, содержащие определенный текст, пользователь может использовать следующую команду: grep -Pri поисковый критерий путь к папке
Больше возможностей для поиска содержит команда find
.
20. Вывод справки для любой команды
Каждый инструмент в командной строке и терминале имеет справочную страницу, на которой прописана инструкция по использованию команды. Использование справочной информации может зачастую подсказать основные принципы использования инструмента/команды. Вывод справки выполняется таким образом: command_tool --help
Прокачать навыки администрирования Linux на базовом и продвинутом уровне можно на онлайн-платформе OTUS.