Table of Contents

terminal.gif

Ни для кого не секрет , что под UNIX системы(в том числе и под Linux) существуют различные командные оболочки. Самой распостранённой из них является bash. Как правило он идёт в комплекте поставки почти каждого дистрибутива linux. Но не одним bash’ем единым наполняются репозитории операционных систем. Среди других ,как правило, выделяют fish shell, csh, ash и конечно же zsh. Последний становится всё более популярным в linux сообществе.

За что же любят zsh, чем же он лучше стандартного? Да практически ничем. Истинную мощь zsh приобретает лишь при установки фреймворка oh my zsh. Огромное количество плагинов и тем оформления - вещь крутая. То же автодополнение становится на много удобнее чем в классической оболочке. Еще одна фишка, которая мне понравилась - это git плагин. Можно узнать много полезного(если вы находитесь в папках с репозиторием), актуально ли текущее состояние репозитория, в какой ветке находимся, имеются ли новые изменения в файлах, есть ли коммиты или изменения. В общем всю необходимую информацию. Не нужно проверять ветку через :

git branch -v

, проверять есть ли изменения через:

git status

Каждый найдёт то, что ему нужно при работе в терминале.

Но что если вы не хотите использовать zsh по тем или иным причинам? И для меня стало открытием, что для bash также существует фреймворк, расширяющий возможности вашей командной оболочки. И имя ему - oh my bash. Именно о нём сегодня пойдёт речь.

Думаю,что стоит начать с установки. Она тут проходит очень просто, через curl:

sh -c "$(curl -fsSL https://raw.github.com/ohmybash/oh-my-bash/master/tools/install.sh)"

или через wget:

sh -c "$(wget https://raw.github.com/ohmybash/oh-my-bash/master/tools/install.sh -O -)"

Перезагружаемся командой:

source ~/.bashrc

Всё, фреймворк установлен. Вся настройка происходит через конфигурационный файл “.bashrc”, который находится в домашней директории. Перейдем в него и сделаем парочку изменений.

nano .bashrc

К примеру давайте заменим стандартную цветовую палитру на что-нибудь по-интереснее.Меняем это:

OSH_THEME="powerline"

На это:

OSH_THEME="agnoster"

После этого ваш терминал будет выглядеть примерно так(с учётом установленного git плагина):

example_powerline.png

В конфиге можно указать, чтобы oh my zsh менял тему на случайную:

OSH_THEME="random"

Плагины устанавливаютя следующим образом:

plugins=(git bundler osx rake ruby)

Конфиг автора приведён ниже(к примеру был заменён стандартный редактор кода с vim на nano):

# Path to your oh-my-bash installation.
export OSH=/home/dante/.oh-my-bash

# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-bash is loaded.
OSH_THEME="agnoster"

# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"

# Uncomment the following line to use hyphen-insensitive completion. Case
# sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"

# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"

# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_OSH_DAYS=13

# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"

# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"

# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"

# Uncomment the following line to display red dots whilst waiting for completion.
# COMPLETION_WAITING_DOTS="true"

# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"

# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# HIST_STAMPS="mm/dd/yyyy"

# Would you like to use another custom folder than $OSH/custom?
# OSH_CUSTOM=/path/to/new-custom-folder


completions=(
  git
  composer
  ssh
)


aliases=(
  general
)

plugins=(
  git
  bashmarks
)

source $OSH/oh-my-bash.sh

# User configuration
# export MANPATH="/usr/local/man:$MANPATH"

# You may need to manually set your language environment
# export LANG=en_US.UTF-8

# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
#   export EDITOR='nano'
# else
#   export EDITOR='mvim'
# fi

# Compilation flags
# export ARCHFLAGS="-arch x86_64"

# ssh
# export SSH_KEY_PATH="~/.ssh/rsa_id"
# users are encouraged to define aliases within the OSH_CUSTOM folder.
# Example aliases
# alias bashconfig="mate ~/.bashrc"
# alias ohmybash="mate ~/.oh-my-bash"

У меня это выглядит вот так: author.png

Всего в репозитории присутствует 6 плагинов и 53 темы (на момент написания статьи).

progress.png

Да, честно сказать маловато. Однако никто не запрещает вам помочь проекту, разработчики будут лишь рады этому факту.

Цель этой статьи не заставить вас перейти на этот фреймворк. У него пока мало плагинов и это его главный недостаток. Думаю, что всё-же стоит остановить свой выбор на чём-то другом, на том же fish или zsh с его oh my zsh. Но если вас удовлетворят возможности oh my bash, то это будет не таким уж и плохим решением. Главная цель этой статьи показать то многообразиее решений применяемых в linux. Изучайте его, это здорово.