Если верить статистике MacOS,то топовые приложения которые я использую для работы это Chrome, VS Code, iTerm и VK Teams. При этом в консоли я провожу от часа до трех ежедневно. На самом деле это время больше, потому что часть того что трекается как VS Code тоже является временем работы в консоли, только встроенной в VS Code. Поэтому консоль хочется сделать удобнее и красивее. Особенно этой поздней осенью. Этими красивостями и удобностями и хочется поделиться. И не просто поделится, а что бы с красивыми картинками, некоторые из которых были бы не совсем статичны. Ну или совсем не статичны. Это как кому нравится.
Zsh / Oh My Zsh / powerlevel10k
Zsh / Oh My Zsh / powerlevel10k
Небольшой пример работы этой связки с пояснениями и картинкой
Набираем команду cd и плагин https://github.com/zsh-users/zsh-autosuggestions сразу предлагает нам серым подсказку из истории командной строки (без всяких нажатий Ctrl + r, хочется это особо отметить), жмем стрелочку вправо и enter и переходим в каталог.
Тема понимает что мы в гит бранче выписанной с gitlab и меняет значок на githlab и так же показывает бранчу в которой мы сейчас находимся
Экспортируем конфиг доступа к кластеру k8s и тема начинает справа показывать имя этого кластера. Показало бы еще и namespace если мы были не в default.
Пытаемся посмотреть несуществующий каталог и зеленая галочка справа меняется на крестик на красном поле с цифрой кода выхода программы
Эмулируем долгое выполнение команды через 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
Вот допустим, вам хочется показать кому-то в интернете какую-то локально собранную веб приложуху, допустим работает она на 3456 порту. А вот возится с ее деплоем куда-то что-то вот совсем не хочется. Ибо вы ленивец как и я. И тут спасает ngrok.
brew cask install ngrokРегаемся на сайте (можно под гитхаб аккаунтом)
Копируем токен с сайта (там прям дана команда которую локально и запускаем)
Запускаем
ngrok http 3456Получаем в консоле урл типа https://234d-134-397-21-892.eu.ngrok.io зайдя на который увидим то что там работает у вас на 3456 порту локально. Увидим, конечно, не только мы, а все у кого это урл есть.
Можно так же пошарить и директорию со статическими страничками сделанными, например, через 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. Не ныряние в море конечно, но тоже иногда прикольно и познавательно.

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