Я не так уж часто пользуюсь терминалом, залезая в него в основном для мониторинга облачных серверов по 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)


  1. Akuma
    24.08.2021 18:58
    +15

    Как сделать ваш терминал удобнее

    Так и как? В статье ни слова о том, чем итог будет удобнее базового терминала


  1. Coriolis
    24.08.2021 19:12
    +11

    Простите, я отстал от жизни, а что в текстовом терминале такого тяжелого что аж GPU подключают? Эмодзи что ли надо рендерить быстро?


    1. GospodinKolhoznik
      24.08.2021 19:19
      +2

      ASCII рогалики нынче пошли прожорливые.


    1. 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 только для рендеринга.


      1. ivanych
        27.08.2021 23:01

        Ну так и что там такого рендерится, что нужен GPU?


    1. tarekd
      24.08.2021 22:15
      +2

      kitty тоже использует OpenGL и GPU и умеет так

      kitty + ranger


      1. rstepanov
        25.08.2021 10:17
        +1

        Красиво конечно, но как это работе поможет?


        1. GospodinKolhoznik
          25.08.2021 15:09

          Ну работает человек например офисным планктоном. И пока все его коллеги пользуются проводником windows, он пользуется ranger'ом. Проходит у него за спиной начальник, увидит такое на мониторе и подумает про себя - охренеть продвинутый сотрудник, надо ему срочно зп повысить, пока он не ушёл в программисты.


          1. rstepanov
            25.08.2021 15:11

            Ну тогда еще lolcat(https://github.com/busyloop/lolcat) нужно было упомянуть, всякие top с ним очень круто выглядят, как у hackerman'а.


          1. Ryav
            27.08.2021 14:12

            Уверяю вас, это так не работает. :(


  1. alpik
    24.08.2021 19:22
    +1

    В Linux $HOME - это /home/username

    поставил alacritty, starship, запустил. почесал в затылке, удалил. urxvt с плагинами как-то поудобнее.

    а вот за vim с батарейками - спасибо.


  1. svilgelm
    24.08.2021 21:38

    Один раз разобрался как настроить PROMPT и с тех пор таскаю везде. А вообще, удобство терминала, в основном, заключается не в выводе, хотя это тоже очень важно, а в наличии привычных aliases, auto completions и установленных приложений.
    Поэтому, кроме .zshrc еще и таскаю Brewfile .


  1. dikey_0ficial
    24.08.2021 21:51
    +1

    скажите, вот зачем мне алакрити, если емнип в нём нет даже вкладок?


    1. tarekd
      24.08.2021 22:04
      +1

      Тайловые менеджеры, например i3wm, умеют делать вкладки и табы. В таком случает от терминала не требуется такой функциональности.


      1. nikbond
        28.08.2021 21:27

        Тайловые менеджеры — это все-таки экзотика, которая кардинально меняет весь UX. Не многие на такое готовы — я вот не осилил, да и в общем случае это кажется менее удобным, чем стандартный подход. А вот как раз в терминале тайлинг, вкладки и т.д. это то что необходимо, имхо. Как компромиссный вариант я пользую guake.


    1. Gordon01
      25.08.2021 04:10

      Why 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.


  1. KoCMoHaBT61
    25.08.2021 06:22
    +3

    В чём преимущества этого Alacrity+Starship перед iTerm? Да и даже перед штатным Terminal?


    1. alexxxst
      25.08.2021 10:34

      Свистелки-перделки)


    1. CrazyOpossum
      31.08.2021 00:09

      Starship не знаю, но лично мне требовался терминал с truecolor и лигатурами. Выбрал kitty как более гибкий, но alacrity тоже понравился - скоростной.


  1. 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


  1. IgosYee
    26.08.2021 09:34

    После guake terminal немогу использовать ничего другого. Настолько удобно открывать/закрывать на тильду и переключаться между вкладками.


    1. shikhalev
      27.08.2021 18:15

      Для KDE yakuake — аналогично, без него очень неудобно.


  1. VMarkelov
    29.08.2021 01:11

    Starship мне не понравился этим:

    Prerequisites: A Nerd Font

    Не всегда программы нормально эти Nerd шрифты понимают. Помню, в gVim под Windows ширина символа одного из таких шрифтов была взята по максимуму, что делало обычный текст уж очень "воздушным". В итоге пользуюсь только авторскими версиями шрифтов.