Переход с bash на zsh
Содержание:
- Instrukce pro instalaci
- Настройки
- Zsh: быстрый старт
- zsh-syntax-highlighting
- Povolení Unicode (zastaralé)
- Знакомьтесь, iTerm2
- Odinstalace
- Файлы Запуска/Завершения
- Установка тем оформления
- Мигрируй на Zsh
- Startup/Shutdown files
- Oh My Zsh в действии
- Шпаргалки
- zsh-autosuggestions
- Advanced Topics
- Установка плагинов
- Installation
- Using Oh My Zsh
Instrukce pro instalaci
Než začneš, zjisti který shell právě používáš:
$ echo $SHELL
Instalace
Pro instalaci Zsh balíku, spusť:
# pacman -S zsh
Před nastavením Zsh jako impliticní shell se ujisti jestli byl nainstalován korektně jeho spuštěním např. v okně xtermu nebo tty:
$ zsh
Pokud instalace proběhla hladne, měl by jsi teď vidět neznámý prompt, zatím prostě napiš:
$ exit
Nastavení Zsh jako implicitní shell
Pro změnu uživatelského implicitního shellu bez rootovských oprávnění se používá příkaz chsh. Příkaz chsh lze použít pro změnu implicitního shellu bez rootovských oprvávnění jen pokud je shell uveden v souboru . Pokud jsi Zsh instaloval použitím pacmana, Zsh již by měl mít odpovídající záznam v .
Pro pokračování potřebuješ znát plnou cestu k Zsh, proto spusť:
$ which zsh
Změn implicitní shelll pro práve přihlášeného uživatele:
$ chsh -s /bin/zsh
Alternativní cesta ke změně shellu vede přes příkaz usermod. Nevýhodou této metody je potřeba mít k pc rootovský přístup. Více uživatelských účtů může být změněno rychle jako root, použitím příkazu usermod nebo chsh.
Změna implicitního shellu pro více uživatelů použitím příkazu usermod:
# usermod -s /bin/zsh uzivatel
Změna implicitního shellu pro více uživatelů použitím příkazu chsh:
# chsh -s /bin/zsh username
Note: Je třeba se odhlásit a přihlaásit zpět pokud chceš začít používat Zsh hned.
Po opětovném přihlášení si můžeš ověřit, zda je Zsh opravdu tvým implicitním shellem:
$ echo $SHELL
Настройки
Я их не правлю, но выписал с обьяснением чтобы было проще ориентироваться. Напоминаю что все они в . Если настройка закомментирована, то вы можете расскоментировать её удалив , то что указано в значении которое закомментировано — является противоположным значению по умолчанию.
- — чуствительность к регистру. Как я указал в начале статьи, он сам может исправлять регистр если видит что в текущем ничего не найдено. Если это мешает, установив данный параметр в true, поведение будет привычное bash.
- — включает автоматическую замену между «_» и «-«. Аналогично параметру выше, но касается только дефиса и подчеркивания.
- — позволяет отключить автоматическое обновления Oh My Zsh.
- — задает переодично проверки обновлений.
- — позволяте отключить цветовую палитру при выводе команды .
- — отключение автоматического заголовка терминала.
- — включает корректировку команд. Например, вводя он выдаст запрос: .
- — включает точки ожидания ввода аргументов. Например введя и нажав , он будет перебирать доступные команды (из-за одноименного плагина), а если ввести и нажать таб, у него нет вариантов автодополнения (они будут появляться по мере их успешнного ввода в терминале и кэшироваться) он будет отображать красные точки для обязательного ввода которые можно отменить только .
- — отключает пометку неиспользуемых файлов в пределе Git репозитория как «гразных», что увеличивает скорость скана для git. Не могу сказать точнее что это и как это работает, но это напрямую связанно с git вообще, а не только плагином.
- — позволяет менять формат даты для команды .
- — позволяет добавить дополнительный путь до папки где будут храниться кастомные плагины и темы. По дефолту , она также будет функционаривать, т.е. параметр не перезатерающийся.
Это все настройки Oh My Zsh, ниже по файлу вы найдете различные переменные и примеры использования.
Zsh: быстрый старт
Еще до установки Oh My Zsh и плагинов можно оценить мощь Zsh.Попробуйте ввести следующую команду:
Она вставит в консоль предыдущую команду. Будет полезна, если забыли указать sudo для команды требующей root:
От предыдущей команды можно взять только аргумент.
Вставить в консоль последнюю команду, начинающуюся с указанных символов:
Конструкция похожа на предыдущую, но применима для известной части символов в середине или в конце команды:
Например, из моей истории команд, после нажатия на Tab, преобразуется в:
Опечатку в последней введенной команде можно исправить так:
А с помощью следующей команды удобно сделать бэкап файла.
Конструкция выше аналогична команде:
Следующая конструкция удалит ранее распакованные файлы. Будет полезна если вы распаковали архив tar.gz не в тот каталог.
Примеры выше, малая доля того, что умеет Zsh. Еще больше возможностей открывается при использовании фреймворка Oh My Zsh.
zsh-syntax-highlighting
Про этот плагин можно сказать не особо много: подсвечивает текущую введенную команду, раскрашивая на лету.
Главный плюс в том, что вы видите, что опечатались по красному цвету слова. Не скажу, что это must have, но удобнее становится.
В то же время у плагина есть сразу несколько косяков.
На системах, где , вызывает крах терминальной сессии, поэтому в плейбуке есть защита от активации плагина на таких системах. Случай редкий, я сделал это ради Debian Squeeze.
Плагин должен подключаться последним, а не то не знаю что будет и знать не хочу.
Конфликтует с zsh-autosuggestions, проявляется в вылетании сессии при попытке повторно применить конфиг .
Про это есть соответствующий и автор zsh-autosuggestions , что исправление уже в ветке, я не проверял, но если это так, после релиза должно все исправиться.
В плейбуке для этого есть фикс, так что конфликт устранен.
Povolení Unicode (zastaralé)
Note: Unicode je v oficiálním balíku Arch Linuxu standardně povoleno.
The latest versions of Zsh support unicode characters. To enable it, just rebuild the package with the Arch Build System.
Poslední verze Zsh podporují unicode znaky. Pro jejich povolení znovu sestvat balík s pomocí Arch Build System.
A přidej volbu —enable-multibyte do:
PKGBUILD
build() { cd $startdir/src/$pkgname-$pkgver ./configure --prefix=/usr --bindir=/bin \ --enable-etcdir=/etc/zsh \ --enable-zshenv=/etc/zsh/zshenv \ --enable-zlogin=/etc/zsh/zlogin \ --enable-zlogout=/etc/zsh/zlogout \ --enable-zprofile=/etc/profile \ --enable-zshrc=/etc/zsh/zshrc \ --enable-maildir-support \ --with-curses-terminfo \ --enable-zsh-secure-free \ --enable-multibyte
Знакомьтесь, iTerm2
Для начала, замените стандартный терминал на что-нибудь получше. Пользователям MacOS рекомендую . Для пользователе прочих Unix систем существуют другие решения, например .
Список функций iTerm2 представлен на , среди них: автодополнение, поиск с подсветкой в консоли, сплит панели, копирование без использования мыши, переключение в терминал с помощью горячей клавиши, менеджер паролей и другие.
Чтобы установить iTerm2 вручную: с официального сайта, распакуйте скачанный архив и переместите приложение в папку с программами.
Или, если используете Homebrew, установить iTerm2 можно одной командой:
Самый популярный шорткат — быстрое отображение или скрытие iTerm2. Можно сделать чтобы консоль выезжала сверху, как в Quake.
Но фича не работает из коробки, поэтому потребуется выполнить некоторые действия: перейдите в настройки (iTerm2 — Preferences), далее Profiles — Keys — Configure Hotkey Window, хоткей можно указать любой, остальные настройки как на скриншоте ниже.
Далее (там же в Profiles) перейдите в Window, и установите настройки как на скриншоте (или измените по своему усмотрению). За стиль окна отвечает настройка Style.
Можно двигаться дальше.
Odinstalace
Pro případ že se rozhodneš, že Zsh není shell pro tebe a budeš se chtít vrátit Bashi. Nejprve musíš změnit tvůj implicitní shell na Bash.
Následuj, pro změnu shellu zpět na Bash, jen nahraď Zsh Bashem.
Nyní můžeš bezpečně odstranit balík Zsh.
Warning: Pokud nedodržíš předchozí instrukce, může se vyrojit spousta problémů.
Pokud jsi nenásledoval instrukce viz výše, stále ještě můžeš změnt implicitní shell zpět na Bash pomocí editace /etc/passwd jako root. Ukázka:
z:
uzivatel:x:1000:1000:Full Name,,,:/home/username:/bin/zsh
na:
uzivatel:x:1000:1000:Full Name,,,:/home/username:/bin/bash
Файлы Запуска/Завершения
Примечание:
- Если не определена, используется по умолчанию.
- Если опция не установлена ни в одном из файлов, файлы конфигурации не будут получены после этого файла.
- Если опция не задана ни в одном из файлов, после этого файла не будут найдены глобальные конфигурационные файлы ().
При запуске Zsh по умолчанию он будет загружать следующие файлы в этом порядке:
- Используется для установки общесистемных переменных environment variables (Русский); Он не должен содержать команд, которые производят вывод, или предполагает, что shell подключен к tty. Этот файл всегда будет источником, это нельзя переопределить.
- Используется для установки переменных среды пользователя; Он не должен содержать команд, которые производят вывод, или предполагает, что shell подключен к tty. Этот файл всегда будет источником.
- Используется для выполнения пользовательских команд при запуске, будет вызван при запуске как login shell.
- Используется для настройки интерактивной конфигурации оболочки и выполнения команд, будет вызван при запуске как interactive shell.
- Используется для настройки интерактивной конфигурации пользователя и выполнения команд, будет вызван при запуске как interactive shell.
- Используется для выполнения команд при завершении прогресса инициализации, будет вызван при запуске как login shell.
- Используется для выполнения пользовательских команд при завершении начального прогресса, будет вызван при запуске как login shell.
- Будет получен, когда login shell завершится.
- Будет получен, когда login shell завершится.
Примечание:
не является частью обычного списка запускаемых файлов Zsh, но поступает из в пакете
Пользователи должны принять во внимание, что устанавливает переменную которая перезапишет любую переменную установленную в. Чтобы это предотвратить, установите переменную в .
Установка тем оформления
Я покажу как включать темы на примере оформления agnoster, так как оно больше всего мне по душе и иногда также требует дополнительных действий для корректной работы.
Для включеня данной темы нам опять, достаточно открыть файли найти строку и заменить стандартную тему на нужную, в моем случае , итого получается . Не забываем про . И всё уже работает!
Если у вас вместо иконок Git или нету «уголков» в строке навигации, то вам нужно поставить спец. шрифты с данными иконками. Множество тем требует установки данных шрифтов, они никак не помешают, но будет работать как нужно. Если всё как и на скринах — ставить не нужно, если же нет, то ниже инструкция для вас.
Давайте установим пропатченные шрифты:
Этого уже будет достаточно, можно работать. Но некоторые моменты я ещё затрону.
Мигрируй на Zsh
Zsh она же — одна из современных командных оболочек Unix. Мало кто знаком и использует все ее функции. Однако это и не требуется — фреймворк Oh My Zsh, который мы установим далее, позволит настраивать ее и кастомизировать с помощью тем и плагинов.
У пользователей MacOS, скорее всего, Zsh уже установлена, если нет — установите с помощью менеджера пакетов Homebrew, а затем сделайте zsh оболочкой по умолчанию.
Установка zsh в Ubuntu и Debian.
Пользователи прочих Unix систем наверняка справятся с .
Убедиться, что zsh является оболочкой по умолчанию можно следующей командой.
Результат /bin/zsh означает, что все сделано верно.
Далее необходимо перелогиниться. Когда вновь откроете терминал, возможно увидите приветственное сообщение zsh. Ничего не меняйте и выйдите, выбрав q.
Startup/Shutdown files
Tip:
- You could consider for your Zsh configuration files.
Note:
- If is not set, is used instead.
- If option is unset in any of the files, no configuration files will be read after that file.
- If option is unset in any of the files, no global configuration files () will be read after that file.
When starting, Zsh will read commands from the following files in this order by default, provided they exist.
- Used for setting environment variables for all users; it should not contain commands that produce output or assume the shell is attached to a TTY. When this file exists it will always be read, this cannot be overridden.
- Used for setting user’s environment variables; it should not contain commands that produce output or assume the shell is attached to a TTY. When this file exists it will always be read.
- Used for executing user’s commands at start, will be read when starting as a login shell. Typically used to autostart graphical sessions and to set session-wide environment variables.
- Used for setting interactive shell configuration and executing commands for all users, will be read when starting as an interactive shell.
- Used for setting user’s interactive shell configuration and executing commands, will be read when starting as an interactive shell.
- Used for executing commands for all users at ending of initial progress, will be read when starting as a login shell.
- Used for executing user’s commands at ending of initial progress, will be read when starting as a login shell. Typically used to autostart command line utilities. Should not be used to autostart graphical sessions, as at this point the session might contain configuration meant only for an interactive shell.
- Used for executing commands when a login shell exits.
- Used for executing commands for all users when a login shell exits.
Note:
- is not a part of the Zsh startup files and is not sourced by Zsh unless Zsh is invoked as or and started as a login shell. For more details about the sh and ksh compatibility modes refer to .
Oh My Zsh в действии
Одно из неудобств консоли — перемещение по папкам. Oh My Zsh расширяет возможности автодополнения по кнопке Tab.
Например, Oh My Zsh исправляет регистр букв. Можно написать:
Затем нажать Tab и команда преобразуется в:
Если с введенных символов начинаются имена нескольких каталогов, по нажатию на Tab будет выведен список уточнений, а при повторном нажатии Tab, стрелками (или последующими нажатиями Tab) можно будет выбрать нужный каталог.
Автодополнение работает для любой части файлов и каталогов. Чтобы перейти в каталог ~/Downloads, можно написать:
По нажатию Tab, строка будет преобразована.
Oh My Zsh умеет дополнять имена каталогов по всему пути, а не только по последней его части, например:
По нажатию Tab, строка будет преобразована.
А если добавить в файл конфигурации ~/.zshrc часто используемые каталоги в переменную CDPATH, то не нужно будет печатать даже первые буквы имен каталогов.
вот так
Шпаргалки
Чтобы попробовать все шапргалки и алиасы, подключите источник из домашней директории (если проект склонирован туда):
source ~/.oh-my-zsh/templates/zshrc.zsh-template
Команды
Команда | Описание |
---|---|
tabs | Создать новую вкладку в текущей директории. |
take | Создать новую папку и сразу перейти в неё. |
x / extract | Распаковать архив (поддерживаемые форматы: tar.{bz2,gz,xz,lzma}, bz2, rar, gz, tar, tbz2, tgz, zip, Z, 7z). |
zsh_stats | Получить список из 20 популярных команд, которые вы вводили. |
uninstall_oh_my_zsh | Удалить Oh-my-zsh. |
upgrade_oh_my_zsh | Обновить Oh-my-zsh. |
source ~/.zshrc | Поглотить новые изменения. |
Алиасы
Алиас | Команда |
---|---|
alias | Получить список всех алиасов |
.. | cd .. |
… | cd ../.. |
…. | cd ../../.. |
….. | cd ../../../.. |
cd / | |
~ | cd ~ |
cd +n | переключиться на директорию № |
1 | cd — |
2 | cd -2 |
3 | cd -3 |
4 | cd -4 |
5 | cd -5 |
6 | cd -6 |
7 | cd -7 |
8 | cd -8 |
9 | cd -9 |
md | mkdir -p |
rd | rmdir |
d | dirs -v (список последних используемых директорий) |
Алиасы Git
Алиас | Команда |
---|---|
g | git |
ga | git add |
gau | git add -u |
gaa | git add —all |
gapa | git add —patch |
gb | git branch |
gba | git branch -a |
gbd | git branch -d |
gbl | git blame -b -w |
gbnm | git branch —no-merged |
gbr | git branch —remote |
gbs | git bisect |
gbsb | git bisect bad |
gbsg | git bisect good |
gbsr | git bisect reset |
gbss | git bisect start |
gc | git commit -v |
gc! | git commit -v —amend |
gca | git commit -v -a |
gca! | git commit -v -a —amend |
gcan! | git commit -v -a —no-edit —amend |
gcans! | git commit -v -a -s —no-edit —amend |
gcam | git commit -a -m |
gcsm | git commit -s -m |
gcb | git checkout -b |
gcf | git config —list |
gcl | git clone —recursive |
gclean | git clean -fd |
gpristine | git reset —hard && git clean -dfx |
gcm | git checkout master |
gcd | git checkout develop |
gcmsg | git commit -m |
gco | git checkout |
gcount | git shortlog -sn |
gcp | git cherry-pick |
gcpa | git cherry-pick —abort |
gcpc | git cherry-pick —continue |
gcs | git commit -S |
gd | git diff |
gdca | git diff —cached |
gdct | git describe —tags `git rev-list —tags —max-count=1` |
gdt | git diff-tree —no-commit-id —name-only -r |
gdw | git diff —word-diff |
gf | git fetch |
gfa | git fetch —all —prune |
gfo | git fetch origin |
gg | git gui citool |
gga | git gui citool —amend |
ggpnp | git pull origin $(current_branch) && git push origin $(current_branch) |
ggpull | git pull origin $(current_branch) |
ggl | git pull origin $(current_branch) |
ggpur | git pull —rebase origin $(current_branch) |
glum | git pull upstream master |
ggpush | git push origin $(current_branch) |
ggp | git push origin $(current_branch) |
ggfl | git push —force-with-lease origin <your_argument>/$(current_branch) |
ggsup | git branch —set-upstream-to=origin/$(current_branch) |
gpsup | git push —set-upstream origin $(current_branch) |
gignore | git update-index —assume-unchanged |
gignored | git ls-files -v | grep «^:lower:« |
git-svn-dcommit-push | git svn dcommit && git push github master:svntrunk |
gk | gitk —all —branches |
gl | git pull |
glg | git log —stat —max-count = 10 |
glgg | git log —graph —max-count = 10 |
glgga | git log —graph —decorate —all |
glo | git log —oneline —decorate —color |
glog | git log —oneline —decorate —color —graph |
glp | _git_log_prettily (git log —pretty=$1) |
gm | git merge |
gma | git merge —abort |
gmt | git mergetool —no-prompt |
gp | git push |
gpoat | git push origin —all && git push origin —tags |
gr | git remote |
grb | git rebase |
grba | git rebase —abort |
grbc | git rebase —continue |
grbd | git rebase develop |
grbm | git rebase master |
grbs | git rebase —skip |
grbi | git rebase -i |
grh | git reset HEAD |
grhh | git reset HEAD —hard |
grmv | git remote rename |
grrm | git remote remove |
grset | git remote set-url |
grt | cd $(git rev-parse —show-toplevel || echo «.») |
grup | git remote update |
grv | git remote -v |
gsd | git svn dcommit |
gsps | git show —pretty = short —show-signature |
gsr | git svn rebase |
gss | git status -s |
gst | git status |
gsta | git stash save |
gstaa | git stash apply |
gstd | git stash drop |
gstl | git stash list |
gstp | git stash pop |
gsts | git stash show —text |
gsu | git submodule update |
gts | git tag -s |
gunignore | git update-index —no-assume-unchanged |
gunwip | git log -n 1 | grep -q -c «—wip—» && git reset HEAD~1 |
gup | git pull —rebase |
gvt | git verify-tag |
gwch | git whatchanged -p —abbrev-commit —pretty = medium |
gwip | git add -A; git ls-files —deleted -z | xargs -r0 git rm; git commit -m «—wip—« |
Редакторы
Алиас | Команда |
---|---|
stt | Открыть текущую директорию в редакторе Sublime Text 2/3(при использовании плагина ) |
v | Редактировать текущую строку кода в редакторе Vim (при использовании плагина ) |
zsh-autosuggestions
Открытие этого плагина для меня сравнимо с открытием percol: скорость набора команд увеличилась.
Часто бывает нужно набрать команду с теми же параметрами, что и в прошлый раз, или немного с другими параметрами. Плагин выручает в обоих случаях.
Работает это так: при вводе команды плагин читает историю и дописывает серым последнюю команду из истории, начинающуюся так же.
Если нажать Enter, выполнится ваша команда, а не из автодополнения (это хорошо, случайно вызвать не ту команду будет сложно, хотя у некоторых автодополнений бывают такие проблемы). Чтобы подставить дополненную команду, нужно нажать кнопку, забинденную на действие , по умолчанию это →.
Но до стрелочки вправо постоянно тянуться неудобно, поэтому я сначала забиндил автодополнение на (обратную кавычку, которая слева от единицы). Это было очень удобно: прямо рядом с и работает похоже на . Но позже выяснилось, что это ломает работу Midnight Commander: на одних системах он перестал переключать путь во внутреннем шелле (что полезно: через mc переходим в нужную папку, нажимаем , вводим команду, выходим из внутреннего шелла, или наоборот бывает удобнее перейти в папку через шелл, а потом произвести действия в mc), на других системах mc вообще зависал через пару переходов по папкам. Я погуглил проблему, в трекере mc есть такой глюк, в последней версии зависания убрались, но путь так и не стал меняться, поэтому я стал пробовать другие хоткеи: , , все они так или иначе глючили.
В итоге пришел к такому: я сам mc пользуюсь редко, поэтому на всех системах, где бываю не только я, я забиндился на , а на личных — еще и на кавычку. В плейбуке забиндено только на стрелочку.
Еще в ansible-role-zsh работа плагина ограничена 15 символами, то есть через 15 символов он перестает предлагать команды.
Это сделано для того, чтобы убрать задержки при копипасте команд в терминал (при вводе самостоятельно я задержек не ощущаю, но при вставке из буфера больших команд это заметно, похоже на то, как будто вставка не сработала).
Advanced Topics
If you’re the type that likes to get their hands dirty, these sections might resonate.
Advanced Installation
Some users may want to change the default path, or manually install Oh My Zsh.
Custom Directory
The default location is (hidden in your home directory)
If you’d like to change the install directory with the environment variable, either by running before installing, or by setting it before the end of the install pipeline like this:
export ZSH="$HOME/.dotfiles/oh-my-zsh"; sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
2. Optionally, backup your existing file:
3. Create a new zsh configuration file
You can create a new zsh config file by copying the template that we have included for you.
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
5. Initialize your new zsh configuration
Once you open up a new terminal window, it should load zsh with Oh My Zsh’s configuration.
Installation Problems
If you have any hiccups installing, here are a few common fixes.
- You might need to modify your in if you’re not able to find some commands after switching to .
- If you installed manually or changed the install location, check the environment variable in .
Custom Plugins and Themes
If you want to override any of the default behaviors, just add a new file (ending in ) in the directory.
If you have many functions that go well together, you can put them as a file in the directory and then enable this plugin.
If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the same name in the directory and it will be loaded instead of the one in .
Установка плагинов
Начнем с установки нужных нам плагинов. Из коробки там стоит только git, больше никакие плагины не активированы. Список всех додступных плагинов поставляемых с фреймворком можно посмотреть на странице wiki, с описанием для чего они используются.
Например я хочу поставить себе следующие плагины:
- npm — добавлят поддержку автодополнения к команде npm
- vagrant — так как я часто пользуюсь vagrant из-за Drupal VM, то мне он тоже не помешает. Также как и npm добавляет поддержку автодополнения. Там же есть и docker.
- composer — в 8-ке очень активно использую composer, а данный плагин опять же, добавляет автодополнение, и помимо этого различные полезные синонимы команд. Например = .
- sudo — частенько бывает и такое, что вбиваешь или копируешь команду из интернета, но для неё требуются права супер-пользователя. Постоянно переводить курсор и дописывать муторно, а данный плагин позволяет просто нажать два раза , и он сам добавит sudo в начало команды.
- web-search — а иногда случается ситуация, что роешься в консоли и забыл какую-то команду, нужно гуглануть, и чтобы не переключаться на браузер, не кликать на строку поиска, данный плагин позволяет написать , и в браузере по умолчанию сразу откроются результаты.
Там куча других плагинов, можно писать свои, выбирайте на свой вкус и под свои задачи, я продолжу гайд как поставить указаныне выше плагины (остальные ставятся абсолютно также).
Для того чтобы включить данные плагины (они уже есть в комплекте), достаточно отредактировать файл . Для этого, в ubuntu, достаточно написать или , что вам удобнее. Открываем данный файл на редактирование и ищем строку и добавляем туда все нужные нам плагины, учитывая список выше, вышло следующее: . После изменения данного файла, всегда необходимо прописывать , иначе изменения вступят в силу только после перезагрузки.
После этого можете тестировать работу.
Installation
Before starting, users may want to see what shell is currently being used:
$ echo $SHELL
Install the package. For additional completion definitions, install the package as well.
Initial configuration
Make sure that Zsh has been installed correctly by running the following in a terminal:
$ zsh
You should now see zsh-newuser-install, which will walk you through some basic configuration. If you want to skip this, press . If you did not see it, you can invoke it manually with:
$ autoload -Uz zsh-newuser-install $ zsh-newuser-install -f
Note: Make sure your terminal’s size is at least 72×15 otherwise zsh-newuser-install will not run.
Making Zsh your default shell
Change your shell to . See .
Tip: If replacing , users may want to move some code from to (e.g. the prompt and the ) and from to (e.g. ).
Using Oh My Zsh
Plugins
Oh My Zsh comes with a shit load of plugins to take advantage of. You can take a look in the plugins directory and/or the wiki to see what’s currently available.
Enabling Plugins
Once you spot a plugin (or several) that you’d like to use with Oh My Zsh, you’ll need to enable them in the file. You’ll find the zshrc file in your directory. Open it with your favorite text editor and you’ll see a spot to list all the plugins you want to load.
For example, this line might begin to look like this:
plugins=(git bundler osx rake ruby)
Using Plugins
Most plugins (should! we’re working on this) include a README, which documents how to use them.
Themes
We’ll admit it. Early in the Oh My Zsh world, we may have gotten a bit too theme happy. We have over one hundred themes now bundled. Most of them have screenshots on the wiki. Check them out!
Selecting a Theme
Robby’s theme is the default one. It’s not the fanciest one. It’s not the simplest one. It’s just the right one (for him).
Once you find a theme that you want to use, you will need to edit the file. You’ll see an environment variable (all caps) in there that looks like:
ZSH_THEME="robbyrussell"
To use a different theme, simply change the value to match the name of your desired theme. For example:
ZSH_THEME="agnoster" # (this is one of the fancy ones) # you might need to install a special Powerline font on your console's host for this to work # see https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#agnoster
Open up a new terminal window and your prompt should look something like this:
In case you did not find a suitable theme for your needs, please have a look at the wiki for more of them.
If you’re feeling feisty, you can let the computer select one randomly for you each time you open a new terminal window.
ZSH_THEME="random" # (...please let it be pie... please be some pie..)