Frog Proger 29 июля 2024

💻 15 продвинутых лайфхаков для работы в терминале Linux

Рассказываем, как использовать малоизвестные, но мощные инструменты терминала: от редактирования длинных команд в текстовом редакторе до автоматизации сложных процессов с помощью tmux.
💻 15 продвинутых лайфхаков для работы в терминале Linux

Хочешь уверенно проходить IT-интервью?

Готовься к IT-собеседованиям уверенно с AI-тренажёром T1!

Мы понимаем, как сложно подготовиться: стресс, алгоритмы, вопросы, от которых голова идёт кругом. Но с AI тренажёром всё гораздо проще.

💡 Почему Т1 тренажёр — это мастхэв?

  • Получишь настоящую обратную связь: где затык, что подтянуть и как стать лучше
  • Научишься не только решать задачи, но и объяснять своё решение так, чтобы интервьюер сказал: "Вау!".
  • Освоишь все этапы собеседования, от вопросов по алгоритмам до диалога о твоих целях.

Зачем листать миллион туториалов? Просто зайди в Т1 тренажёр, потренируйся и уверенно удиви интервьюеров. Мы не обещаем лёгкой прогулки, но обещаем, что будешь готов!

Реклама. ООО «Смарт Гико», ИНН 7743264341. Erid 2VtzqwP8vqy


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

Редактирование команд в текстовом редакторе

Часто при работе в терминале приходится набирать длинные и сложные команды, которые неудобно редактировать, даже с помощью горячих клавиш. На помощь придет ваш дефолтный текстовый редактор:

  • Нажмите Ctrl+X, затем Ctrl+E в Bash или Alt+E в Fish. Это откроет ваш стандартный текстовый редактор.
  • Отредактируйте команду и сохраните изменения.
  • Команда будет выполнена после закрытия редактора.
Такие команды удобнее править в редакторе
Такие команды удобнее править в редакторе
♾️ Библиотека devops’a
Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека devops’a»
♾️🎓 Библиотека DevOps для собеса
Подтянуть свои знания по DevOps вы можете на нашем телеграм-канале «Библиотека DevOps для собеса»
♾️🧩 Библиотека задач по DevOps
Интересные задачи по DevOps для практики можно найти на нашем телеграм-канале «Библиотека задач по DevOps»

Автоматизация с помощью tmux

tmux – мощный терминальный мультиплексор, который позволяет создавать и управлять несколькими терминальными сессиями одновременно. Как отмечает автор оригинала этой подборки, tmux может автоматизировать все действия, которые не поддаются автоматизации с помощью обычных скриптов. С помощью скриптов для tmux можно не только автоматизировать повторяющиеся действия (например, создание одинаковых сессий на разных серверах), но и:

  • Программно читать вывод терминала и реагировать на события.
  • Передавать данные между панелями.
  • Управлять поведением физического устройства – останавливать и перезагружать в нужные моменты, менять конфигурацию и т. п.
  • Автоматически выполнять команды в нескольких панелях одновременно.
tmux позволяет передавать данные из одной панели в другую
tmux позволяет передавать данные из одной панели в другую

Поиск и выбор с помощью fzf

fzf – продвинутый инструмент для нечеткого поиска. Работает с любыми текстовыми данными – списками, файлами, процессами, названиями хостов, закладками, коммитами Git и т.п. Отлично справляется с интерактивным выбором опций в пользовательских скриптах – можно, например, создать скрипт для выбора веток Git или для запуска нужных облачных сервисов, которые предусматривают выбор определенных параметров.

Использование /dev/stdin вместо heredoc

Heredoc предоставляет возможность вставки многострочного текста в командную строку. Однако у heredoc довольно сложный синтаксис, к тому же не все оболочки поддерживают этот способ ввода. Альтернатива – /dev/stdin, делает почти все то же самое, но проще. Недостатки – в отличие от heredoc не работает в скриптах и не сохраняет команды в истории оболочки.

Многострочный ввод с помощью /dev/stdin
Многострочный ввод с помощью /dev/stdin

SSH-мультиплексирование

Эта функция позволяет использовать одно SSH-соединение для нескольких сессий. Включается очень просто – достаточно добавить эти строки в ~/.ssh/config:

        Host *
	ControlPath /tmp/ssh-%r@%h:%p
	ControlMaster auto
	ControlPersist 10m

    

И еще несколько советов

  1. git checkout – быстрое переключение на предыдущую активную ветку Git, аналогично команде cd - для перехода в предыдущий каталог.
  2. $_ или !$ в Bash позволяет использовать последний аргумент предыдущей команды.
  3. Alt+. в Bash и Fish – быстрый способ вставить последний аргумент предыдущей команды.
  4. Пробел перед командой исключает эту команду из истории.
  5. pushd и popd сохраняют состояние перехода между директориями. Более простой способ управления директориями используется в оболочке Fish – nextd и prevd.
  6. locate обеспечивает индексацию и мгновенный поиск файлов.
  7. command | sudo tee file вместо sudo command > file позволяет запускать команду с правами администратора и перенаправлять ее вывод в файл с правами доступа.
  8. <<< (herestring): Позволяет передать строку в качестве входных данных для команды. Например, cat – <<< "Hello, world!" выведет "Hello, world!".
  9. vim scp://<user>@<host>/<absolute-path> позволяет редактировать удаленный файл напрямую через SSH.
  10. vim - передает вывод команды в Vim, который гораздо удобнее less.
***

Какой из представленных лайфхаков вы находите наиболее полезным для своей работы? Есть ли у вас свои секретные приемы работы в терминале, которыми вы хотели бы поделиться?

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию
Hotel Search Team Lead (Golang)
по итогам собеседования
Golang-разработчик
Пермь, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ