Полезные дополнения к вашему терминалу.
В данной статье я расскажу вам какие полезные дополнения к вашему терминалу вы можете себе установить, чтобы повысить ежедневную продуктивность и улучшить опыт использования терминала.
TLDR
Список всего, что установлено через Brew. brew ls

Окружение
Моя рабочая и домашняя машинка - это MacBook Pro (15-inch, 2018). Есть также рабочий ноутбук, выданный компанией, но он на Windows. Я уже давно переехал с Windows на Mac OS и возвращаться не хочется.
Оболочка терминала iTerm2

iTerm2 не нуждается в представлении, просто лучший терминал для Mac OS.
Prompt
Starship: Cross-Shell Prompt
Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and Powershell.
🐟 Fish Shell
По-умолчанию в Mac OS используется zsh, он всем прекрасен, но мне больше приглянулся fish shell. Он быстрый и максимально удобный. Очень подкупает его autocomplete. Не так давно появилась такая же функциональность и в zsh.
Не все пакеты AS-IS работают в fish. Некоторые могут работать только с bash, для работы с bash скриптами в fish используется bass. Из-за этого многие популярные пакеты имеют свою реализацию для fish-shell, к примеру nvm (FabioAntunes/fish-nvm).
Fisher
GitHub - jorgebucaran/fisher: A plugin manager for Fish
A plugin manager for Fish. Contribute to jorgebucaran/fisher development by creating an account on GitHub.
Fisher - установщик плагинов для вашего fish. Установка пакетов для fish мне пригодилась только при первоначальной настройке, поэтому выбрал самый простой и лаконичный менеджер пакетов. Пакетный менеджер в инфраструктуре может быть любым, можете посмотреть на другие альтернативы.
Список установленных пакетов:
❯ fisher ls
jorgebucaran/fisher # Сам fisher
edc/bass # Для запуска bash скриптов
FabioAntunes/fish-nvm # Node version manager для Fish
acomagu/fish-async-prompt # Асинхронный prompt
jethrokuan/z # `cd` на стероидах.
🍺 Brew
Для установки всех пакетов использовался Brew.
Пакеты
🦇 bat
GitHub - sharkdp/bat: A cat(1) clone with wings.
A cat(1) clone with wings. Contribute to sharkdp/bat development by creating an account on GitHub.

Использую bat также как и cat, быстро посмотреть какие-то файлы, полистать исходники. Подсветка синтаксиса работает отлично, к примеру подсветка в Sublime Text чаще уступает bat, показывая артефакты или не так красиво подсвечивая код.
Очень радует наличие гит интеграции, благодаря которой подсвечиваются также и изменения файлов на основе git.

exa
GitHub - ogham/exa: A modern replacement for ‘ls’.
A modern replacement for ‘ls’. Contribute to ogham/exa development by creating an account on GitHub.
exa - это улучшенная версия всем знакомой команды ls.
Главные отличия - это подсветка вывода и иконки у файлов. Вывод этой команды намного читабельней традиционного ls. Этот пакет полностью заменил для меня команду ls.
Для удобства, я сделал себе элиас на использование этой команды
alias ll="exa -l -g --icons"
Вот несколько примеров вывода этой команды:

ncdu
Быстрый способ посмотреть сколько занимают директории и файлы по указанному пути. Можно с помощью клавиатуры ходить по директориям.
brew install ncdu

ctop
brew install ctop
ctop - interactive container viewer
top команда для ваших контейнеров.
Как по мне, это самый удобный способ посмотреть список запущенных docker контейнеров. С помощью этого пакета можно:
- останавливать контейнеры;
- смотреть потребляемые ресурсы;
- интерактивно навигироваться по списку.
fzf
brew install fzf
a command-line fuzzy finder
Если вы ничего не можете найти в терминале, вам нужен этот пакет. Он позволяет быстро найти всё что угодно. Обычно он интегрирован в историю выполнения команд и при ^+R можно быстро найти последнюю используемую команду.
lnav
brew install lnav
A curses-based log file viewer that indexes log messages by type and time to make it easier to navigate through files quickly.
Просто красивый и удобный пакет для просмотра логов. Достаточно указать путь к папке, где находятся логи и всё, можно просматривать сразу несколько файлов, удобно перемещаться между ними.
Очень часто ему удаётся подсветить лог файл, но бывают и фейлы, к примеру с логами elasticsearch.

z
GitHub - rupa/z: z - jump around
z - jump around. Contribute to rupa/z development by creating an account on GitHub.
brew install z
z - это cd в который встроили поисковую систему. Если нужно перейти куда-то глубоко в файловой системе, где вы уже когда были, достаточно написать только название папки, куда вы хотите перейти. z - хранит все ваши перемещения в кеше, и пытается найти по вашему запросу необходимый путь. Пример использования:

npx команды
В npm есть огромное множество довольно полезных утилит не только для мира JS, но и в целом.
npkill
npkill
List any node_modules directories in your system, as well as the space they take up. You can then select which ones you want to erase to free up space.. Latest version: 0.11.3, last published: 9 months ago. Start using npkill in your project by running `npm i npkill`. There are 2 other projects in the npm registry using npkill.
npx npkill
Посмотреть все вложенные папки с node_modules и быстро их удалить. Позволяет случайно не ошибиться с командой rm -rf node_modules 😄.
