Як джазувати свій термінал Баш - покрокове керівництво із зображеннями

У цьому блозі я перегляну кроки, щоб додати теми, Powerline, шрифти та powerline-gitstatus, щоб ваш звичайний Bash-термінал виглядав красиво та корисно, як показано на малюнку вище.

Виявляється, якщо ви використовуєте Mac, вам доведеться перестрибнути безліч обручів, щоб це працювало, оскільки багато інструкцій для Linux або застаріли. Тож я подумав писати про це в блозі - сподіваюся, це допоможе вам.

Примітки:

1. Уважно дотримуйтесь інструкцій, оскільки будь-яка помилка спричинить багато головних болів.

2. Це для MacOS і для звичайного bash у Terminal.app. Я не використовую ZSH або Hyper у цьому щоденнику - я планую писати для них різні блоги.

3. Мої версії: Mac High Sierra; git версії 2.14.3 (Apple Git-98); Python 2.7.10

Добре, за замовчуванням, коли у вас новий mac, ваш Terminal.app буде виглядати приблизно так, як показано нижче. Давайте додамо теми, шрифти тощо.

Крок 1 - Додайте нову тему

Перший очевидний крок - це вдосконалення теми. Термінал не забезпечує усіх прикольних і вигадливих тем, які, на вашу думку, використовують інші розробники. Давайте завантажимо тему та додамо її до терміналу.

У цьому блозі я додаю тему Solarized-Dark до нашого терміналу.

Примітка: Ви можете завантажити різні теми (файли терміналів) із цього репозиторію git. Просто відкрийте *.terminalфайл, щоб встановити його, тобто right-click on the *.terminal file > “open with" > Terminal
  1. Перейдіть на //ethanschoonover.com/solarized
  2. Прокрутіть вниз і завантажте тему (solarized.zip)
  3. Витягніть файл solarized.zip
  4. Відкрийте папку osx-terminal.app-colors-solarized . Ця папка містить Тему для терміналу.
  5. Двічі клацніть файл “Solarized Dark ansi.terminal” - це конкретний файл теми для Terminal.app. Примітка: Якщо ви отримуєте попередження, що це від невідомого розробника, клацніть правою кнопкою миші на файлі та виберіть “Відкрити за допомогою”> Увімкнути термінал .
  6. На цьому етапі у вас встановлено тему у ваш термінал. Нам просто потрібно зробити це темою за замовчуванням.
  7. Відкрийте Terminal> Preferences> Text і виберіть тему «Solarized Dark…» та натисніть «Default».

Відтепер ваш термінал повинен сподобатися нижче.

Крок 2 - Встановіть Powerline

Powerline - це програма Python, яка є плагіном рядка стану для vim, а також надає рядки стану та підказки для кількох інших програм, включаючи zsh, bash, tmux, IPython, Awesome та Qtile.

Це робить підказку терміналу виглядати нижче.

2.1 Встановіть Python

Оскільки Powerline - це програма Python, нам потрібно мати Python і це теж належну версію Python.

  • MacOS поставляється з уже встановленим Python. Переконайтесь, що версія Python є 2.7.x, набравшиpython -V термінал.
  • Якщо це не 2.7, встановіть Homebrew, який дозволяє нам встановлювати різне програмне забезпечення з CLI, запустивши:/usr/bin/ruby -e "$(curl -fsSL //raw.githubusercontent.com/Homebrew/install/master/install)"
  • Запустіть, brew install pythonщоб встановити найновіший Python через Homebrew

2.2 Встановити pip - менеджер пакунків для Python (подібний до npm)

Встановіть pip, виконавши наступну команду

$ sudo easy_install pip

2.3 Встановіть інструменти CLI розробника XCode

Інструменти CLI розробника XCode використовуються Powerline та іншими програмами, які маніпулюють основними функціями OSX. Тож обов’язково встановіть інструменти XCode CLI, виконавши наступну команду.

$ xcode-select —-install

Примітка: Наведена вище команда відкриває інсталятор Mac і встановлює інструменти інтерфейсу командної консолі XCode Developer. Якщо це не працює, спробуйте xcode-select -rскинути налаштування.

2.4 Встановіть Powerline

Нарешті, встановіть Powerline (стабільну версію) через pip, виконавши наступну команду.

$ pip install --user powerline-status

Якщо ви хочете встановити останню гілку розробки, використовуйте:

$ pip install --user git+git://github.com/powerline/powerline //dev

2.5 Додайте демон Powerline до bash

Тепер нам потрібно додати демон Powerline до bash, щоб він міг контролювати підказку терміналу та вносити зміни.

2.5.1 Скопіюйте місце встановлення Powerline

Ви можете з’ясувати розташування Powerline, виконавши наступне: pip show powerline-statusСкопіюйте значення з Locationполя.

2.5.2 Додайте демон з належним розташуванням до .bash_profile

  1. Переконайтеся, що у вас є .bash_profileфайл у вашому кореневому каталозі. Якщо не слідуєте, створіть його, виконавши:cd ~ && touch ~/.bash_profile

2. Відкрийте .bash_profileта додайте наступне:

export PATH=$PATH:$HOME/Library/Python/2.7/bin powerline-daemon -q POWERLINE_BASH_CONTINUATION=1 POWERLINE_BASH_SELECT=1 . /Users/rupa/Library/Python/2.7/lib/python/site-packages/powerline/bindings/bash/powerline.sh
Примітка: Розташування /Users/rupa/Library/Python/2.7/lib/python/site-packages/ є з попереднього кроку (2.5.1). Змініть його відповідно до розташування вашого комп’ютера.

2.5.3. Перезапустіть термінал

Повністю вийдіть з терміналу, якщо він відкритий (Термінал> Вийти з терміналу). І відкрийте його знову.

Ви можете просто використовувати $ source ~/.bash_profileдля оновлення налаштувань. Але у мене якийсь непарний powerline-configфайл відсутній! Зазвичай ця помилка з’являється, якщо у вашому PATH немає біна $ HOME / Library / Python / 2.7 /.

2.5.4 Ваш новий термінал

Ваш новий термінал повинен виглядати, як показано нижче. Він повинен використовувати тему “Solarized Dark ansi” і повинен відображати Powerline в командному рядку. Але також зауважте, що є "?" символи! Це пов’язано з тим, що Powerline використовує різні значки та шрифти, які недоступні за замовчуванням. Тож нам потрібно встановити шрифти.

Крок 3 - Встановіть шрифти Powerline

Щоб встановити шрифти Powerline, просто перейдіть на //github.com/powerline/fonts. Там ви побачите цілу купу папок. Кожен із них являє собою шрифт, він же «Виправлений шрифт».

Він називається «Виправлені шрифти», оскільки люди взяли звичайні шрифти та додали / виправили додаткові значки та шрифти для Powerline.

3.1 Завантажте весь репо та розпакуйте його

  • Натисніть кнопку «Клонувати або завантажити» та завантажте весь репо, щоб спробувати різні шрифти.
  • Розпакуйте файл fonts-master.zip

3.2 Встановіть деякі шрифти

Let’s open Meslo dotted fontsfolder. It will look like below. You’ll see a whole bunch of .ttf file. Each one of them is a font but some are “bold” version of the font, some are “regular” version and so on.

Simply double-click on the .ttf file and press “Install font” to install the font on your computer.

For our case, let’s install “Meslo LG L DZ Regular for Powerline.ttf” and “Meslo LG L DZ Italic for Powerline.ttf”. This will add a regular and an Italic version of the Meslo font.

3.3 Select the font in the Terminal’s Theme

Remember we added “Solarized Dark” theme in Step 1? That didn’t have any fonts in it and MacOS had some default font. All we need to do is to set our Meslo dotted font for this theme and we are done!

  1. Open Terminal > Preferences > Text
  2. Select Solarized Dark ansi Theme
  3. Click on the “Font” button — This opens up “Fonts” dialog
  4. In the “Fonts” dialog, select “Meslo LG L DZ for Powerline” in the Family and also select font size 14 (so it’s easier to read).

3.4 Restart Terminal

Completely quit the Terminal (Terminal > Quit Terminal) and then reopen it.

Step 4 — Adding Git information to the prompt

Для відображення різного стану Git у підказці нам потрібно встановити powerline-gitstatus. Це просте доповнення до Powerline, яке додає кілька кольорів та тем для відображення різної інформації про стан git.

4.1 Встановіть powerline-gitstatus

pip install --user powerline-gitstatus
Примітка: Щоб встановити його в профіль користувача, потрібна команда “- user”.

4.2 Додайте кольорові схеми powerline-gitstatus до Powerline

4.2.1 Відкрийте наступну colorschemes/shell/default.jsonпапку

${powerline-install-directory}/powerline/config_files/colorschemes/shell/default.json //For example: /Users/rupa/Library/Python/2.7/lib/python/site-packages/powerline/config_files/colorschemes/shell/default.json

4.2.2 Додайте такі кольори:

Як уже згадувалося в readme powerline-gitstatus. PS: Просто скопіюйте кольори всередині “груп”, а потім додайте їх до default.json, як показано нижче.

Ось мої кольорові схеми default.json (замість цього ви можете скопіювати та вставити):

{ "name": "Default color scheme for shell prompts", "groups": { "hostname": { "fg": "brightyellow", "bg": "mediumorange", "attrs": [] }, "environment": { "fg": "white", "bg": "darkestgreen", "attrs": [] }, "mode": { "fg": "darkestgreen", "bg": "brightgreen", "attrs": ["bold"] }, "attached_clients": { "fg": "white", "bg": "darkestgreen", "attrs": [] }, "gitstatus": { "fg": "gray8", "bg": "gray2", "attrs": [] }, "gitstatus_branch": { "fg": "gray8", "bg": "gray2", "attrs": [] }, "gitstatus_branch_clean": { "fg": "green", "bg": "gray2", "attrs": [] }, "gitstatus_branch_dirty": { "fg": "gray8", "bg": "gray2", "attrs": [] }, "gitstatus_branch_detached": { "fg": "mediumpurple", "bg": "gray2", "attrs": [] }, "gitstatus_tag": { "fg": "darkcyan", "bg": "gray2", "attrs": [] }, "gitstatus_behind": { "fg": "gray10", "bg": "gray2", "attrs": [] }, "gitstatus_ahead": { "fg": "gray10", "bg": "gray2", "attrs": [] }, "gitstatus_staged": { "fg": "green", "bg": "gray2", "attrs": [] }, "gitstatus_unmerged": { "fg": "brightred", "bg": "gray2", "attrs": [] }, "gitstatus_changed": { "fg": "mediumorange", "bg": "gray2", "attrs": [] }, "gitstatus_untracked": { "fg": "brightestorange", "bg": "gray2", "attrs": [] }, "gitstatus_stashed": { "fg": "darkblue", "bg": "gray2", "attrs": [] }, "gitstatus:divider": { "fg": "gray8", "bg": "gray2", "attrs": [] } }, "mode_translations": { "vicmd": { "groups": { "mode": { "fg": "darkestcyan", "bg": "white", "attrs": ["bold"] } } } } }

4.3 Активуйте тему

4.3.1 Відкрийте файл default.json теми

${powerline-install-directory}/powerline/config_files/themes/shell/default.json //For example: /Users/rupa/Library/Python/2.7/lib/python/site-packages/powerline/config_files/themes/shell/default.json

4.3.2 Додайте наступне до default.json

{ "function": "powerline_gitstatus.gitstatus", "priority": 40 }

Нижче наведена тема мого Powerline default.json (замість цього ви можете скопіювати та вставити):

Примітка: Я видалив все з розділу “право”, а також видалив “номер роботи” (“номер роботи”), щоб підтримувати чистоту. В іншому випадку ви побачите невеликий артефакт з правого боку підказки.
{ "segments": { "left": [{ "function": "powerline.segments.shell.mode" }, { "function": "powerline.segments.common.net.hostname", "priority": 10 }, { "function": "powerline.segments.common.env.user", "priority": 30 }, { "function": "powerline.segments.shell.cwd", "priority": 10 }, { "function": "powerline_gitstatus.gitstatus", "priority": 40 } ], "right": [] } }

4.4 Перезапустіть демон

Збережіть файл і запустіть наступне: powerline-daemon —-replaceу терміналі.

Важливе зауваження: Кожен раз , коли ви вносите зміни в конфігурацію Powerline, в доповненні до перезапуску терміналу, вам також необхідно перезапустити демон , щоб побачити зміни , відображених команди: powerline-daemon —-replace.

4.5 Перезапустіть термінал

Закрийте термінал (Terminal> Quit Terminal) і відкрийте його знову.

На цьому ми всі готові! шфу! Якщо ви відкриєте термінал і перейдете до будь-якого репозиторію git, і пограєте, це повинно виглядати наступним чином.

Ось як це виглядає в темі Solarized-Light:

Here is how it looks in Cobalt2 Theme:

?? Thank you!

If you have questions, please feel free to ask me on Twitter: //twitter.com/rajaraodv

If this was useful, please click the clap ? button down below a few times to show your support! ⬇⬇⬇ ??

My Other Posts

//medium.com/@rajaraodv/latest

ECMAScript 2015+

  1. Check out these useful ECMAScript 2015 (ES6) tips and tricks
  2. 5 JavaScript “Bad” Parts That Are Fixed In ES6
  3. Is “Class” In ES6 The New “Bad” Part?

Terminal Improvements

  1. How to Jazz Up Your Terminal — A Step By Step Guide With Pictures
  2. Jazz Up Your “ZSH” Terminal In Seven Steps — A Visual Guide

WWW

  1. A Fascinating And Messy History Of The Web And JavaScript

Virtual DOM

  1. Inner Workings Of The Virtual DOM

React Performance

  1. Two Quick Ways To Reduce React App’s Size In Production
  2. Using Preact Instead Of React

Functional Programming

  1. JavaScript Is Turing Complete — Explained
  2. Functional Programming In JS — With Practical Examples (Part 1)
  3. Functional Programming In JS — With Practical Examples (Part 2)
  4. Why Redux Need Reducers To Be “Pure Functions”

WebPack

  1. Webpack — The Confusing Parts
  2. Webpack & Hot Module Replacement [HMR] (under-the-hood)
  3. Webpack’s HMR And React-Hot-Loader — The Missing Manual

Draft.js

  1. Why Draft.js And Why You Should Contribute
  2. How Draft.js Represents Rich Text Data

React And Redux :

  1. Step by Step Guide To Building React Redux Apps
  2. A Guide For Building A React Redux CRUD App (3-page app)
  3. Using Middlewares In React Redux Apps
  4. Adding A Robust Form Validation To React Redux Apps
  5. Securing React Redux Apps With JWT Tokens
  6. Handling Transactional Emails In React Redux Apps
  7. The Anatomy Of A React Redux App
  8. Why Redux Need Reducers To Be “Pure Functions”
  9. Two Quick Ways To Reduce React App’s Size In Production

If this was useful, please share it! Thank you! ??