Я не так уж часто пользуюсь терминалом, залезая в него в основном для мониторинга облачных серверов по ssh. Но правильно настроенный терминал способен резко повысить производительность любого разработчика или технически подкованного пользователя. Безусловно, моя конфигурация — это поверхностное решение, и с помощью Google можно найти более продвинутые варианты, в которых можно будет покопаться. Однако предложенное мной решение — это неплохой вариант для тех, кто хочет что-то изящное и не требующее много времени на установку.
Шаг 1 — Установка Alacritty
Alacritty — это быстрый кроссплатформенный эмулятор терминала. Ооочень быстрый. Это связано с тем, что он использует OpenGL для оптимизации вычислений на вашем GPU. Функция, которую имеют очень немногие эмуляторы терминала. По этой причине я настоятельно рекомендую его вместо эмулятора по умолчанию, который поставляется с вашей системой.
При необходимости обратитесь за помощью к руководству по установке Alacritty, но подобрать инсталлятор для вашей системы нетрудно.
Для MacOS запустите brew install alacritty
. Отсюда вы можете запускать Alacritty, как любое другое приложение в вашей системе. Если других конфигураций терминала в вашем .zshrc
нет, вы должны увидеть что-то вроде этого:
Выглядит не очень, но Starship поможет это изменить.
Шаг 2 — Установка Starship
Starship — это кросс-оболочечное решение, которое не только отлично выглядит «из коробки», но и имеет огромное количество функций. Я настоятельно рекомендую почитать их документацию, потому что вы можете настроить практически каждый параметр вашей оболочки с помощью Starship.
Установить Starship можно тем же способом, что и Alacritty. Для MacOS запустите brew install starship
в своём терминале.
Вам будет нужно запускать Starship всякий раз, когда будете работать с оболочкой.
Шаг 3 — Цветовые схемы оболочки
Вот такая ASCII-графика появляется каждый раз, когда открывается мой терминал. Я слышал, что в MacOS иногда возникает ошибка, связанная с тем, что исполняемый файл не может правильно найти ls. Но это можно исправить, прочитав ошибку вывода и заменив её на то, что возвращает whereis ls.
Я использую подсветку DistroTube для своих машин. Установка выполняется с помощью следующих команд:
git clone https://gitlab.com/dwt1/shell-color-scripts.git
cd shell-color-scripts
rm -rf /opt/shell-color-scripts || return 1
sudo mkdir -p /opt/shell-color-scripts/colorscripts || return 1
sudo cp -rf colorscripts/* /opt/shell-color-scripts/colorscripts
sudo cp colorscript.sh /usr/bin/colorscript
Мы всё установили, можно создавать конфигурационный файл.
Шаг 4 — Конфигурационный файл оболочки
Здесь шаги меняются в зависимости от того, используете ли вы bash
или zsh
. Но в обеих инструкциях встречается что-то, называемое каталогом $HOME
(также обозначаемым символом ~
). По умолчанию это путь /Users/username
для Mac и /usr/username
для Linux.
Для bash
Если вы используете bash
, вам нужно открыть файл конфигурации bash или .bashrc. Запустите touch ~/.bashrc
, чтобы создать этот файл, и откройте его в своём любимом текстовом редакторе (например, VSCode).
Примечание
Вы можете не увидеть никаких изменений, потому что вместо этого загружается конфликтующий профиль ~/.bash_profile
. Объедините их в один файл ~/.bashrc
или ~/.bash_profile
или удалите тот, который вам не нужен.
Добавьте внизу следующее:
### COLOR SCRIPT ###
colorscript -e crunch
### STARSHIP ###
eval "$(starship init bash)"
Для zsh
Если вы используете zsh
, вам нужно открыть файл конфигурации zsh или .zshrc
. Запустите touch ~/.zshrc
, чтобы создать этот файл. Откройте его в своём любимом текстовом редакторе. Добавьте внизу следующее:
### COLOR SCRIPT ###
colorscript -e crunch
### STARSHIP ###
eval "$(starship init zsh)"
Шаг 5 — SpaceVim (необязательно)
Не всем нравится vim, и я это понимаю. Я был таким же, пока не попробовал SpaceVim. SpaceVim имеет все отличные плагины, стили и функции в небольшом красивом пакете, который вы устанавливаете одной строкой, и он _просто работает_. Посмотрите, как это удобно:
Установка быстрая и простая — запустите в терминале:
curl -sLf https://spacevim.org/install.sh | bash
Вуаля, ваш vim теперь должен выглядеть так: с функциональным деревом каталогов, несколькими вкладками, разделением окон, терминалами и т. д. Я мог бы говорить о SpaceVim весь день, но вместо этого рекомендую ознакомиться с документацией и некоторыми видеороликами на YouTube, если вы хотите узнать о нём больше.
Готово!
Закройте и снова откройте Alacritty. Вы должны увидеть точно такой же терминал, как у меня. Если нет, напишите мне, чтобы я попытался выяснить, что не работает, и обновить своё руководство.
Если вы хотите добавить в свою конфигурацию больше функций, лучше всего начать с поиска в google bashrc dotfiles github или zshrc dotfiles github.
Спасибо!
Что ещё интересного есть в блоге Cloud4Y
→ Изучаем своё железо: сброс паролей BIOS на ноутбуках
→ Музыкальная машинная ярость: настоящий металл, созданный компьютером
→ Клавиатуры, которые постигла неудача
→ Мониторинг СУБД VMware Cloud Director и vCenter Server Appliance с помощью Zabbix
→ Из кузова грузовика в сумочку: самые известные портативные компьютеры
Подписывайтесь на наш Telegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.
Комментарии (23)
Coriolis
24.08.2021 19:12+11Простите, я отстал от жизни, а что в текстовом терминале такого тяжелого что аж GPU подключают? Эмодзи что ли надо рендерить быстро?
AntonSazonov
24.08.2021 19:52По ссылке с github (https://jwilm.io/blog/announcing-alacritty/):
Alacritty is a blazing fast, GPU accelerated terminal emulator. It’s written in Rust and uses OpenGL for rendering to be the fastest terminal emulator available.
OpenGL только для рендеринга.
tarekd
24.08.2021 22:15+2kitty тоже использует OpenGL и GPU и умеет так
kitty + ranger
rstepanov
25.08.2021 10:17+1Красиво конечно, но как это работе поможет?
GospodinKolhoznik
25.08.2021 15:09Ну работает человек например офисным планктоном. И пока все его коллеги пользуются проводником windows, он пользуется ranger'ом. Проходит у него за спиной начальник, увидит такое на мониторе и подумает про себя - охренеть продвинутый сотрудник, надо ему срочно зп повысить, пока он не ушёл в программисты.
rstepanov
25.08.2021 15:11Ну тогда еще lolcat(https://github.com/busyloop/lolcat) нужно было упомянуть, всякие top с ним очень круто выглядят, как у hackerman'а.
alpik
24.08.2021 19:22+1В Linux $HOME - это /home/username
поставил alacritty, starship, запустил. почесал в затылке, удалил. urxvt с плагинами как-то поудобнее.
а вот за vim с батарейками - спасибо.
svilgelm
24.08.2021 21:38Один раз разобрался как настроить
PROMPT
и с тех пор таскаю везде. А вообще, удобство терминала, в основном, заключается не в выводе, хотя это тоже очень важно, а в наличии привычных aliases, auto completions и установленных приложений.
Поэтому, кроме.zshrc
еще и таскаюBrewfile
.
dikey_0ficial
24.08.2021 21:51+1скажите, вот зачем мне алакрити, если емнип в нём нет даже вкладок?
tarekd
24.08.2021 22:04+1Тайловые менеджеры, например i3wm, умеют делать вкладки и табы. В таком случает от терминала не требуется такой функциональности.
nikbond
28.08.2021 21:27Тайловые менеджеры — это все-таки экзотика, которая кардинально меняет весь UX. Не многие на такое готовы — я вот не осилил, да и в общем случае это кажется менее удобным, чем стандартный подход. А вот как раз в терминале тайлинг, вкладки и т.д. это то что необходимо, имхо. Как компромиссный вариант я пользую guake.
Gordon01
25.08.2021 04:10Why isn't feature X implemented?
Alacritty has many great features, but not every feature from every other terminal. This could be for a number of reasons, but sometimes it's just not a good fit for Alacritty. This means you won't find things like tabs or splits (which are best left to a window manager or terminal multiplexer) nor niceties like a GUI config editor.
KoCMoHaBT61
25.08.2021 06:22+3В чём преимущества этого Alacrity+Starship перед iTerm? Да и даже перед штатным Terminal?
CrazyOpossum
31.08.2021 00:09Starship не знаю, но лично мне требовался терминал с truecolor и лигатурами. Выбрал kitty как более гибкий, но alacrity тоже понравился - скоростной.
old2ev
25.08.2021 10:30+1Вместо
starship
можно просто установитьfish
shell сoh-my-fish
и любой темой (никаких конфигов, всё просто и быстро):-
Debian based дистрибутивы(с пакетным менеджером apt):
$ sudo apt-get install fish $ sudo chsh -s /bin/fish
Если нет в репозитории, повторить с предварительным выполнением:
$ sudo apt-add-repository ppa:fish-shell/release-2 $ sudo apt-get update
-
Arch based дистрибутивы(с пакетным менеджером pacman):
$ sudo pacman -S fish
-
Red Hat based дистрибутивы(с пакетным менеджером dnf):
$ dnf install fish # or yum
-
с пакетным менеджером yum:
$ yum install fish
-
Установка как интерпретатор по умолчанию:
$ chsh -s `which fish`
В графических терминалах ставится в основном через настройки профиля в поле "Команда" тебуется прописать
/bin/fish
илиusr/bin/fish
качаем исходнинки oh-my-fish и ставим его
$ git clone https://github.com/oh-my-fish/oh-my-fish $ cd oh-my-fish $ bin/install --offline
Ставим тему, например chain (так как она работает в любых терминалах в том числе и termux на android'е)
$ omf install chain
Profit! Юзаем удобный терминал с автодополнением команд
Ссылки:
Fish: https://fishshell.com/
oh-my-fish: https://github.com/oh-my-fish/oh-my-fish
Список тем для oh-my-fish: https://github.com/oh-my-fish/oh-my-fish/blob/master/docs/Themes.md
-
VMarkelov
29.08.2021 01:11Starship мне не понравился этим:
Prerequisites: A Nerd Font
Не всегда программы нормально эти Nerd шрифты понимают. Помню, в gVim под Windows ширина символа одного из таких шрифтов была взята по максимуму, что делало обычный текст уж очень "воздушным". В итоге пользуюсь только авторскими версиями шрифтов.
Akuma
Так и как? В статье ни слова о том, чем итог будет удобнее базового терминала