- PVSM.RU - https://www.pvsm.ru -

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

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

Экономим время при работе с командной строкой - 1 [1]
Фото — Kevin Ku [2] — Unsplash


Navi [3]


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

$ navi search <cmd>

Экономим время при работе с командной строкой - 2
/ Как работает navi: gif-изображение из официального репозитория [3]

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

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

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


Z [14]


Этот 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 отмечают [15], что по сравнению с аналогами, у инструмента ограниченная функциональность — например, утилита fasd [16] выполняет переходы не только по названию директорий, но и по именам файлов. Также стоит отметить, что схожей функциональности можно добиться [17], используя стандартный инструмент $CDPATH — список часто посещаемых папок. Однако в этом случае директории придется вводить вручную.


Bat [18]


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

Экономим время при работе с командной строкой - 3/ Скриншот из репозитория Bat [18] на GitHub

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

$ bat --list-languages

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

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

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

Экономим время при работе с командной строкой - 4 Temci, Uarch-bench, Likwid, Perf-tools и Llvm-mca [26]
Экономим время при работе с командной строкой - 5 Sysbench, UnixBench, Phoronix Test Suite, Vdbench и IOzone [27]
Экономим время при работе с командной строкой - 6 Iometer, DD, vpsbench, HammerDB и 7-Zip [26]

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

Экономим время при работе с командной строкой - 7 Персональные данные: средства защиты [28]
Экономим время при работе с командной строкой - 8 Как обезопасить Linux-систему: 10 советов [29]
Экономим время при работе с командной строкой - 9 Минимизация рисков: как не потерять ваши данные [30]
Экономим время при работе с командной строкой - 10 Резервное копирование файлов: как подстраховаться от потери данных [31]
Экономим время при работе с командной строкой - 11 Как перенести системный жесткий диск в виртуальную машину? [32]

Экономим время при работе с командной строкой - 12 Как создать виртуальный сервер в 1cloud.ru [33]
Экономим время при работе с командной строкой - 13 Технология WebAssembly — как это работает [34]

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

Автор: 1cloud

Источник [36]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/komandnaya-stroka/332210

Ссылки в тексте:

[1] Image: https://habr.com/ru/company/1cloud/blog/469689/

[2] Kevin Ku: https://unsplash.com/photos/aiyBwbrWWlo

[3] Navi: https://github.com/denisidoro/navi

[4] решают в специальном треде: https://github.com/denisidoro/navi/issues/37

[5] bro: https://github.com/hubsmoke/bro

[6] eg: https://github.com/srsudar/eg

[7] cheat.sh: https://github.com/chubin/cheat.sh

[8] tldr: https://github.com/tldr-pages/tldr

[9] cmdmenu: https://github.com/amacfie/cmdmenu

[10] cheat: https://github.com/cheat/cheat

[11] также отметил: https://news.ycombinator.com/item?id=21032716

[12] помещаются: https://askubuntu.com/a/247422

[13] можно опробовать онлайн: https://www.katacoda.com/denisidoro/scenarios/navi

[14] Z: https://github.com/rupa/z

[15] отмечают: https://news.ycombinator.com/item?id=4464299

[16] fasd: https://github.com/clvv/fasd

[17] можно добиться: https://news.ycombinator.com/item?id=4466687

[18] Bat: https://github.com/sharkdp/bat

[19] Дэвид Питер: https://david-peter.de/

[20] больше 15 тыс. звезд: https://github.com/sharkdp/bat/stargazers

[21] идут вразрез: https://www.reddit.com/r/linux/comments/9b2ort/bat_cat/e517xe4/

[22] Do One Thing And Do It Well: https://en.wikipedia.org/wiki/Unix_philosophy#Do_One_Thing_and_Do_It_Well

[23] решает: https://www.reddit.com/r/linux/comments/9b2ort/bat_cat/e51px7u/

[24] awk: https://ru.wikipedia.org/wiki/AWK

[25] entr(1): http://eradman.com/entrproject/

[26] Temci, Uarch-bench, Likwid, Perf-tools и Llvm-mca: https://habr.com/ru/company/1cloud/blog/464763/

[27] Sysbench, UnixBench, Phoronix Test Suite, Vdbench и IOzone: https://habr.com/ru/company/1cloud/blog/455834/

[28] Персональные данные: средства защиты: https://1cloud.ru/blog/personalnye-dannye-chast-2?utm_source=habrahabr&utm_medium=cpm&utm_campaign=commandtools&utm_content=blog

[29] Как обезопасить Linux-систему: 10 советов: https://1cloud.ru/blog/linux-server-security-advices?utm_source=habrahabr&utm_medium=cpm&utm_campaign=commandtools&utm_content=blog

[30] Минимизация рисков: как не потерять ваши данные: https://1cloud.ru/blog/minimizazia-it-riskov?utm_source=habrahabr&utm_medium=cpm&utm_campaign=commandtools&utm_content=blog

[31] Резервное копирование файлов: как подстраховаться от потери данных: https://1cloud.ru/blog/rezervnoe-kopirovanie-failov?utm_source=habrahabr&utm_medium=cpm&utm_campaign=commandtools&utm_content=blog

[32] Как перенести системный жесткий диск в виртуальную машину?: https://1cloud.ru/blog/sozdanie-virtualnoj-mashiny-v-oblake?utm_source=habrahabr&utm_medium=cpm&utm_campaign=commandtools&utm_content=blog

[33] Как создать виртуальный сервер в 1cloud.ru: https://www.facebook.com/1cloudru/videos/2228849057407243

[34] Технология WebAssembly — как это работает: https://www.facebook.com/1cloudru/photos/a.1526614574327724/2427603380895501

[35] Наш API: https://1cloud.ru/api?utm_source=habrahabr&utm_medium=cpm&utm_campaign=commandtools&utm_content=site

[36] Источник: https://habr.com/ru/post/469689/?utm_source=habrahabr&utm_medium=rss&utm_campaign=469689