Экономим время при работе с командной строкой

Инструменты для автоматизации работы с операторами и повышения читабельности кода.

lpwhlhqwjex7ug67ens5w4ce7as.jpeg
Фото — Kevin Ku — Unsplash


Это — инструмент, предназначенный для просмотра и хранения шпаргалок с операциями командной строки. Отображает списки операторов UNIX/Linux и подсказывает необходимые аргументы. Шаблоны можно или создавать самостоятельно, или скачивать:

$ navi search 


rfiv4s0o7fngsn7x2bg6jbm-35e.gif
/ Как работает navi: gif-изображение из официального репозитория

По словам разработчика, теперь не нужно копировать результат выполнения одной команды в буфер обмена, чтобы вставить его в следующую. Также navi действует в качестве виджета для shell. Однако пока что он доступен только для оболочки zsh. Вопрос о поддержке других решают в специальном треде на GitHub — подключиться могут все желающие.

У navi много аналогов — например, bro,  eg,  cheat.sh,  tldr,  cmdmenu и cheat. Резидент Hacker News также отметил, что подобная функциональность уже встроена в Linux. В частности, они имел в виду директорию ~/bin, куда помещаются самописные скрипты. Однако автор navi говорит, что альтернативы не обладают понятным UI и не умеют автоматически подставлять необходимые аргументы.

Инструмент можно опробовать онлайн на katacoda. Платформа запустит docker-контейнер и предоставит все инструкции для запуска navi, правда, нужна регистрация.


Этот shell-скрипт упрощает навигацию по директориям в командной строке. С ним можно не использовать cd и ls (dir), чтобы переходить между папками. Инструмент запоминает, какие директории вы посещаете, и назначает им особый весовой коэффициент — frecency (от англ. «recent» и «frequency»). Когда вы открываете папку, её частотная характеристика увеличивается на единицу, при этом она получает флаг — «недавно посещалось». После этого достаточно передать утилите название папки, и та откроет её автоматически.

// Чтобы перейти в /var/www/staging/wp-content/themes напишите:
$ z themes

// В этом случае будет аналогичный результат:
$ z staging themes


Когда сумма частотных коэффициентов директорий превышает 9000, все они умножаются на 0,99. В итоге папки, коэффициент которых оказывается меньше единицы, забываются.

Сегодня Z имеет более 10 тыс. звезд на GitHub, но несмотря на популярность, у него есть недостатки. Резиденты Hacker News отмечают, что по сравнению с аналогами, у инструмента ограниченная функциональность — например, утилита fasd выполняет переходы не только по названию директорий, но и по именам файлов. Также стоит отметить, что схожей функциональности можно добиться, используя стандартный инструмент $CDPATH — список часто посещаемых папок. Однако в этом случае директории придется вводить вручную.


В UNIX-подобных системах cat используют для последовательного считывания и отправки содержимого файлов в стандартный вывод. У cat есть аналог — bat, но с дополнительными улучшениями: подсветкой синтаксиса и интеграцией с git. Утилиту разработал Дэвид Питер (David Peter), физик из Германии, который работал над bat в свободное время.

4dhqqwjxonmgcu_lwudeqjcwsoy.png/ Скриншот из репозитория Bat на GitHub

Bat умеет подсвечивать синтаксис таких языков программирования, как C#, C++, Erlang, Go, Groovy и многих других. С полным списком можно познакомиться, прописав команду:

$ bat --list-languages


В левом столбце, где проставлены номера, утилита также показывает изменения в файле — добавленные строки, измененные названия и так далее — со времени последнего коммита. Еще одна особенность bat — поддержка автоматической подкачки. Она дает возможность читать выводы последовательно: страницу за страницей.

В целом инструмент собрал положительные отзывы. Вокруг него даже сформировалось крупное сообщество — больше 15 тыс. звезд на GitHub. Но все же нашлись люди, не оценившие bat. По их словам, подобные утилиты идут вразрез с концепцией UNIX — Do One Thing And Do It Well («Программа должна делать одну вещь и делать её хорошо»), поэтому функциональность bat посчитали «избыточной». Задачи, за которые отвечает bat, решает набор других инструментов — например, awk для парсинга текстовых файлов и entr (1) для сборки проекта после модификации исходников.

Бенчмарки для серверов на Linux:

lcevevvhrpxsnxownufk6ykmvma.pngTemci, Uarch-bench, Likwid, Perf-tools и Llvm-mca
lcevevvhrpxsnxownufk6ykmvma.pngSysbench, UnixBench, Phoronix Test Suite, Vdbench и IOzone
lcevevvhrpxsnxownufk6ykmvma.pngIometer, DD, vpsbench, HammerDB и 7-Zip

Другие материалы из нашего блога и социальных сетей:

nh3bvginmatsrsxcu6loffpn5yc.pngПерсональные данные: средства защиты
nh3bvginmatsrsxcu6loffpn5yc.pngКак обезопасить Linux-систему: 10 советов
nh3bvginmatsrsxcu6loffpn5yc.pngМинимизация рисков: как не потерять ваши данные
nh3bvginmatsrsxcu6loffpn5yc.pngРезервное копирование файлов: как подстраховаться от потери данных
nh3bvginmatsrsxcu6loffpn5yc.pngКак перенести системный жесткий диск в виртуальную машину?

x16rxu3buiqhpy-2jmr3iwscep0.pngКак создать виртуальный сервер в 1cloud.ru
x16rxu3buiqhpy-2jmr3iwscep0.pngТехнология WebAssembly — как это работает

P.S. Наш API для управления облаком, мониторинга и масштабирования серверов.

© Habrahabr.ru