Неоднократно в материалах на этом канале звучали слова о том, что терминал в дистрибутивах Linux - это не страшно и не нужно его избегать. Да, тем кто раньше пользовался Windows может показаться странным тыкать клешнями пальцами по клавишам, но в долгосрочной перспективе использование терминала упрощает работу с системой и позволяет выполнять рутинные задачи быстрее. Ну а 10 советов, про которые я расскажу в этой статье сделают процесс еще быстрее и проще.
1️⃣ Используйте !{command} для быстрого выполнения предыдущего экземпляра команды
Бывает, что вы используйте в терминале одну и ту же команду в течение какого-то времени: например, я недавно посмотрел содержимое файла test.txt на своём устройстве:
Дальше поработал где-то на локальном устройстве, а потом решил вновь посмотреть содержимое этого файла. Хорошо, если он расположен где-то рядом, но если путь до него дольше, чем ходил Бильбо Бэггинс, то можно воспользоваться следующим трюком:
!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», помогут вам в изучении терминала и дистрибутива.