Код
#статьи

7 классных инструментов командной строки на каждый день

Авторская подборка полезных утилит, которые скрасят суровые терминальные будни любого программиста.

Кадр: сериал «Кремниевая долина»

Эрик Чи (Eric Chi)


Об авторе

Senior Software Engineer, Consultant в Liferay. Обожает изучать, преподавать и создавать классные программные продукты, которые приносят удовольствие пользователям.



Переводчик

Руслан Гаджиев


Терминал, или командная строка, — пожалуй, самый часто используемый программистами инструмент. CLI довольно нетребователен к ресурсам и при этом потрясающе функционален. Некоторые разработчики даже тратят время на кастомизацию своего терминала — и я их очень уважаю.

В статье я расскажу о нескольких CLI-инструментах, которые мне очень нравятся и которые я применяю практически ежедневно. Хотя это, конечно, лишь верхушка айсберга — существует куча классных утилит для терминала.

1. Vim

Для тех, кто вдруг не знаком с Vim: это легендарный текстовый редактор, который расширяет возможности стандартного Vi и установлен «из коробки» в любой уважающей себя *nix-системе. Он позволяет редактировать или создавать файлы прямо в терминале.

Базовое применение Vim

Vim будет полезен, если вам надо быстро отредактировать файл — локально в терминале или на удалённой машине, — а открывать IDE или GUI-редактор слишком долго или даже невозможно. Поначалу Vim может показаться замороченным и непривычным, потому что многие его команды и сочетания клавиш не интуитивно понятны, в отличие от современных редакторов кода.

Но если вы всё же потратите время на изучение Vim, то оцените, насколько это мощный инструмент, и поймёте, почему у такого аскетичного консольного редактора такое огромное сообщество и фан-база. Да, его комьюнити настолько велико, что разработчики даже создают плагины для популярных IDE и редакторов кода, которые превращают их интерфейс в Vim-like.

2. vtop

Для отображения информации о запущенных системных процессах, памяти устройства и загрузке CPU часто используется команда top. Но при работе с ней порой бывает непросто разобраться в отображаемых данных. Чтобы облегчить себе жизнь, рекомендую vtop — это как top, но с графическим интерфейсом.

vtop в действии

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

3. fzf

Универсальный инструмент расширенного поиска в командной строке, который позволяет находить файлы, содержащие введённый вами текст. Даже само по себе это прикольно: отображаются любые файлы из директории, в которой вы находитесь, запуская команду. Это как Spotlight, только в терминале.

Как работает расширенный поиск в моей домашней директории

Но истинный потенциал fzf раскрывается при комбинировании с другими командами — например, kill или cat. Для этого понадобится запустить скрипт установки, который поставляется вместе с пакетом или лежит внутри репозитория:

/usr/local/opt/fzf/install

or

~/.fzf/install

После этого перезапустите терминал или используйте source .bashrc и ответьте на несколько вопросов. Когда вы ответите на них, вам станут доступны все возможности fzf.

Теперь можно использовать следующие команды:

cat **[TAB]

vim **[TAB]

ssh **[TAB]

fzf тут же примется за работу и найдёт все подходящие элементы:

Аналогично поиску по файлам в IDE

Ещё один прикольный вариант применения fzf — в сочетании с командой kill. Пожалуй, этим способом я пользуюсь чаще всего. Давно прошли те дни, когда я вводил ps -ef | grep [имя процесса], а затем набирал вручную либо копировал ID процесса для его завершения.

Теперь я просто запускаю команду kill [tab] или kill -9 [tab], нахожу процесс, который нужно завершить, и нажимаю Enter. ID процесса подставится автоматически.

Отличный пример использования fzf

4. trash-cli

Бывало ли так, что вы вводите rm -rf и внезапно понимаете, что только что случайно удалили нечто очень важное — причём безвозвратно? Уверен, такое происходило не только со мной.

Если вы хотите впредь не попадать в подобные неприятности, настоятельно рекомендую вместо стандартной команды использовать для удаления trash-cli. Этот инструмент, вместо того чтобы полностью выпиливать с диска помеченные файлы и папки, просто перемещает их в корзину.

trash-cli перемещает файлы в корзину, а не удаляет их

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

alias rm=trash

И да, это работает со всеми флагами, которые предоставляет команда rm.

5. speed-test

Если вы хотите узнать, насколько быстрый у вас интернет, не открывая при этом Chrome, то speed-test — это именно то, что вам нужно.

Да, у меня ужасная скорость интернета, но я не об этом. Улавливайте суть

Я пользуюсь этим инструментом довольно часто, и мне нравится, что он всегда под рукой. Кроме того, прикольно проделывать всё это в терминале. Правда, вам понадобится npm.

6. Wikit

Эта тулза очень маленькая, и я её просто обожаю. Терминал на моём компьютере открыт постоянно (я использую iTerm2), и иметь возможность поиска в «Википедии» прямо из терминала — просто потрясающе. А wikit как раз позволяет делать это.

Чтобы найти страницу Apple введите «wikit apple company»

Для работы инструмента вам понадобится npm.

7. Cointop

Последний инструмент в списке, возможно, пригодится далеко не всем, но я использую его каждый день. Те из вас, кто интересуется миром криптовалюты, вероятно, уже с ним знакомы.

Следить за кучей валют и их вечно меняющимися курсами бывает утомительно, и тут на помощь приходит cointop.

сointop — это отсылка к команде top, но вместо информации о системе она выводит статистику по криптовалютам.

Заключение

На самом деле ежедневно я использую гораздо больше CLI-инструментов, но из всего своего зоопарка утилит хочу выделить именно эти. Именно с ними я люблю возиться больше всего. Ещё мне нравится, что большинство этих инструментов поддерживаются комьюнити разработчиков-волонтёров — ну, и они просто прикольные.

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Python Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована