Как стать автором
Обновить

Красота в консоли

Время на прочтение4 мин
Количество просмотров18K

Если верить статистике MacOS,то топовые приложения которые я использую для работы это Chrome, VS Code, iTerm и VK Teams. При этом в консоли я провожу от часа до трех ежедневно. На самом деле это время больше, потому что часть того что трекается как VS Code тоже является временем работы в консоли, только встроенной в VS Code. Поэтому консоль хочется сделать удобнее и красивее. Особенно этой поздней осенью. Этими красивостями и удобностями и хочется поделиться. И не просто поделится, а что бы с красивыми картинками, некоторые из которых были бы не совсем статичны. Ну или совсем не статичны. Это как кому нравится.

Zsh / Oh My Zsh / powerlevel10k

Zsh / Oh My Zsh / powerlevel10k

Небольшой пример работы этой связки с пояснениями и картинкой

  1. Набираем команду cd и плагин https://github.com/zsh-users/zsh-autosuggestions сразу предлагает нам серым подсказку из истории командной строки (без всяких нажатий Ctrl + r, хочется это особо отметить), жмем стрелочку вправо и enter и переходим в каталог.

  2. Тема понимает что мы в гит бранче выписанной с gitlab и меняет значок на githlab и так же показывает бранчу в которой мы сейчас находимся

  3. Экспортируем конфиг доступа к кластеру k8s и тема начинает справа показывать имя этого кластера. Показало бы еще и namespace если мы были не в default.

  4. Пытаемся посмотреть несуществующий каталог и зеленая галочка справа меняется на крестик на красном поле с цифрой кода выхода программы

  5. Эмулируем долгое выполнение команды через sleep 10 c включенной настройкой command_execution_time в powerlevel10k. После выполнения команды появляется  еще одно поле, с песочными часиками, которое показывает время выполнения этой самой команды

Вообще в ~/.p10k.zsh можно очень много  всего включить, советую почитать на предмет интересующих опций прямо в нем. Например там можно:

  • показывать текущее окружение python venv, anaconda, node, ruby, etc

  • показывать текущий кластер и контекст k8s

  • показывать текущий профиль AWS / Google Cloud / Azure

  • показывать ip, место на диске, загрузку cpu, статус батарейки, скорость wifi

и это далеко не полный список

Ripgrep

https://github.com/BurntSushi/ripgrep

  • Очень очень быстрая замена grep

  • Игнорит то что указано в .gitignore/.ignore/.rcignore 

  • Может искать только в файлах с нужными расширениями, например yaml - rg 'something' -tyaml

  • Полная поддержка Unicode включая emoji. Да, можно искать 🤖

  • Может искать в gz, bzip2 с ключoм -z

Выведете свой поиск в огромных *.csv.gz утечек на новый уровень :)

TLDR

TLDR (англ. too long; didn't read — слишком длинно, не читал) 

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

ngrok

https://ngrok.com/

Вот допустим, вам хочется показать кому-то в интернете какую-то локально собранную веб приложуху, допустим работает она на 3456 порту. А вот возится с ее деплоем куда-то что-то вот совсем не хочется. Ибо вы ленивец как и я. И тут спасает ngrok.

  1. brew cask install ngrok

  2. Регаемся на сайте (можно под гитхаб аккаунтом)

  3. Копируем токен с сайта (там прям дана команда которую локально и запускаем)

  4. Запускаем ngrok http 3456

  5. Получаем в консоле урл типа https://234d-134-397-21-892.eu.ngrok.io зайдя на который увидим то что там работает у вас на 3456 порту локально. Увидим, конечно, не только мы, а все у кого это урл есть.

  6. Можно так же пошарить и директорию со статическими страничками сделанными, например, через https://gohugo.io/. Это не просто, а очень просто. Примерно вот так ngrok http file:///tmp/username.github.io/public

pbcopy (mac) / xclip (linux)

Позволяет скопировать в буфер обмена все выведенное в консоли без этого нудного возякания мышкой по экрану прямо в консоли через pipe. Например echo -n something | pbcopy

FZF

https://github.com/junegunn/fzf

Чудесный консольный интерактивный поисковик, для zsh есть отдельный плагин для него. Ставим через brew install fzf && /usr/local/opt/fzf/install, так же устанавливаем плагин, рестартуем zsh и после этого мы можем

  • запускать fzf прям в каталоге и искать файлы интерактивно, выглядит это вот так

  • можем искать c помощью fzf в истории шела по Ctrl+r

  • встраивать такой поиск в pipe, например git log --pretty=format:"%an <%ae>" | sort | uniq | fzf | pbcopy

EXA

https://the.exa.website/, модная замена ls. Наверняка ls можно законфигурить чтобы он выводил так же красиво, но настоящие ленивцы - автоматизаторы делают brew install exa и наслаждаются красотой и удобством "из коропки"

BAT

Нет, это не почтовый клиент (а ты старый !). Нет, windows тут совсем не причем :) Это замена cat с примесью more. Ну ладно, уговорили, это замена less. Делаем brew install bat и красоты становится еще больше. Наверняка вы знает как выглядит работа cat, поэтому показывать ее не буду, дабы не наводить тоску, а вот скриншот bat - c удовольствием

GRC

Все это красиво и хорошо, но хочется больше красоты и там где она не предусмотрена архитектурно. Ну вот например скучный и серый вывод ping. И так осень, а тут еще в него смотри, так и депрессию можно хватануть. Но выход есть ! (но не тот что вы подумали). brew install grc и вывод ping играет новыми красками

и так можно делать со многим, например grc tail file.log или grc ip add. Но не со всем, например grc curl будет все так же уныл.

HTTPIE

То что grc curl не работает вы уже в курсе, если все внимательно читали. И, конечно же спасибо тому кто это написал двумя строчками выше. Но это не повод грустить, делай brew install httpie и снова в консоли веселее чем за окном. Только не пишите мне в коментах что у вас за окном море, солнце и +20. Я вас буду немножечко ненавидеть.

TIG

Ну и напоследок brew install tig. Удобная тулза чтобы глубоко нырять в удивительный мир git log. Не ныряние в море конечно, но тоже иногда прикольно и познавательно.

Всем добра и автоматизации!

Теги:
Хабы:
Всего голосов 33: ↑30 и ↓3+27
Комментарии23

Публикации

Истории

Работа

DevOps инженер
43 вакансии

Ближайшие события