10 советов, которые помогут сэкономить время при работе в терминале Linux

192 прочитали
Неоднократно в материалах на этом канале звучали слова о том, что терминал в дистрибутивах Linux - это не страшно и не нужно его избегать.

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

1️⃣ Используйте !{command} для быстрого выполнения предыдущего экземпляра команды

Бывает, что вы используйте в терминале одну и ту же команду в течение какого-то времени: например, я недавно посмотрел содержимое файла test.txt на своём устройстве:

Просмотре содержимого файла test.txt
Просмотре содержимого файла test.txt

Дальше поработал где-то на локальном устройстве, а потом решил вновь посмотреть содержимое этого файла. Хорошо, если он расположен где-то рядом, но если путь до него дольше, чем ходил Бильбо Бэггинс, то можно воспользоваться следующим трюком:

!cat

Использование команды !cat повторяет последнюю введенную команду со всеми аргументами
Использование команды !cat повторяет последнюю введенную команду со всеми аргументами

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

2️⃣ Используйте !! для выполнения последней команды

Дополнение к первому совету в случае, если у вас память рыбки и вы забыли что вводили последним: использование двух восклицательных знаков также выведет в консоль последнюю введённую команду и выполнит её.

Два восклицательных знака выводит и выполняет последнюю введенную команду со всеми аргументами
Два восклицательных знака выводит и выполняет последнюю введенную команду со всеми аргументами

На самом деле, даже если с памятью всё хорошо, то использовать дважды один и тот же символ быстрее, чем печатать имя команды.

3️⃣ Используйте реверсивный поиск

Сочетание клавиш Ctrl + R позволяет легко осуществлять навигацию по истории введённых ранее команд. Называется это реверсивным поиском и когда-то давно про него выходила целая статья. Ссылку на материал оставлю ниже, там найдёте все нужное.

4️⃣ Используйте grep для поиска нужной команды в истории

Опять-таки дополнение к предыдущему совету, которое касается эффективного поиска того, что вводили когда-то давно. Наверняка практически каждый знает про то, что в Linux-дистрибутивах ведётся учёт того, что вводил пользователь. Занимается этим системная утилита history, введя имя которой, вы получите список всего, что когда-то вводилось на сервере и сохранилось на данный момент. Порой это бывает очень длинный список, поэтому можно использовать утилиту grep, чтобы отфильтровать результаты history.

history | grep iptables

Данный вариант, например, выведет все команды, в которых использовалась iptables. Про grep на канале также выходил отдельный материал, ознакомиться с которым вы можете ниже.

5️⃣ Используйте регулярные выражения вместе с egrep и find

Регулярки - это наше всё! Если вы не знаете, что это такое и зачем нужно, то обратитесь к поисковику, благо написано про них материалов на три вагона и несколько телег. Мы же с вами лучше посмотрим на простой пример: нам нужно найти в каком-нибудь файле слова ERROR и Exception. Вместо двух раз ввода команда grep можно воспользоваться её расширенной версией (extended grep) под названием egrep:

egrep "ERROR|Exception" <файл>

Согласитесь, что гораздо удобнее и быстрее получается? Про использование команды find выходил отдельный хороший материал, которым поделюсь ниже.

grep, egrep и find сами по себе мощные утилиты, но с использованием регулярных выражений их потенциал вырастает еще больше и позволяет закрывать большую часть задач, которые встают перед пользователем в терминале.

6️⃣ Используйте перенаправление ввода / вывода

Иногда новички используют две команды, чтобы решить поставленную задачу, не зная, что используя перенаправления все можно сделать в одну строчку. Если вернуться к примеру, который был выше, то можно увидеть пример работы перенаправления:

history | grep iptables

(p.s. к слову, даже эту команду можно упростить, если знать, что файл, где хранится история называется .history и напрямую использовать grep с этим файлом)

В примере выше вывод history через так называемый пайп (это прямая черта) перенаправлятся на ввод команде grep. Больше информации про перенаправление ввода / вывода в Linux вы сможете найти в статье, доступной по ссылке.

Главное тут, не увлекаться строительством конструкции, состоящих из перенаправлений, так как иногда быстрее и проще будет использовать команду напрямую (как например, с grep выше).

7️⃣ Используйте алиасы

По идее, совет нужно ставить самым первым в списке, так как использование алиасов может объединить в себе все, о чём уже сказано и еще будет написано дальше. Алиасы реально экономят время, делая работу в терминале еще быстрее. Этому инструменты на канале были посвящены пару заметок, в них рассказано про алиасы максимально всё.

8️⃣ Используйте символы .., - и ~ для быстрой навигации по директориям

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

Чтобы перейти на одну директорию назад используйте символ двух точек:

cd ..

Эти точки можно использовать для перехода на несколько уровней:

cd ../../../

Про точку и точки ранее выходила статья на канале, в которой рассказано почему в Linux даже в пустой папке что-то есть.

Если вы желаете вернуться в домашний каталог пользователя, то используйте символ тильды (~) вместе с cd:

cd ~

Например, если я подключен, как пользователь user, то после ввода команды выше будет осуществлён переход в /home/user.

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

cd Загрузки

cd ..

Простая навигация для примера
Простая навигация для примера

Теперь, чтобы вновь вернуться в Загрузки не нужно вводить путь до этой папки (представим, что папка с загрузками у меня лежит по ОЧЕНЬ большому и сложному пути), используйте знак минуса.

Быстрый переход в предыдущий каталог
Быстрый переход в предыдущий каталог

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

9️⃣ Увеличьте скорость печати, чтобы набирать команды быстрее

Кому-то совет может показаться банальным, но результат от его использования действительно сокращает время, которое тратится на набор команд. Кто-то использует тренажёры, ну а я, например, повысил скорость набора текста просто практикой: постоянный ввод чего-либо в итоге приводит к тому, что руки помнят где находятся нужные клавиши. Может быть, в комментариях читатели и подписчики поделяться своими советами по тому, как научиться набирать текст быстро.

🔟 Изучайте новые команды Linux

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

🏁 Подведем итоги

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

Советы, изложенные выше, как и материалы, опубликованные на канале в разделе «Теория и практика Linux», помогут вам в изучении терминала и дистрибутива.