Zsh
Введение | |
Установка zsh | |
Установка Oh-my-zsh | |
Oh-my-zsh темы | |
zsh-syntax-highlighting: Подсветка |
Введение
Z shell, zsh — одна из современных командных оболочек UNIX, использующаяся непосредственно как интерактивная оболочка, либо как скриптовый интерпретатор.
Zsh является расширенным аналогом, а также имеет обратную совместимость с
bourne shell
, имея большое количество улучшений.
Установка Zsh
Проверить какая оболочка активна в данный момент
echo $SHELL
/bin/bash
sudo apt install -y zsh
chsh -s /usr/bin/zsh
Password:
zsh
This is the Z Shell configuration function for new users, zsh-newuser-install. You are seeing this message because you have no zsh startup files (the files .zshenv, .zprofile, .zshrc, .zlogin in the directory ~). This function can help you with a few settings that should make your use of the shell easier. You can: (q) Quit and do nothing. The function will be run again next time. (0) Exit, creating the file ~/.zshrc containing just a comment. That will prevent this function being run again. (1) Continue to the main menu. (2) Populate your ~/.zshrc with the configuration recommended by the system administrator and exit (you will need to edit the file by hand, if so desired). --- Type one of the keys in parentheses ---
2
/home/andrei/.zshrc:15: scalar parameter HISTFILE created globally in function zsh-newuser-install
Теперь нужно перелогиниться
echo $SHELL
/usr/bin/zsh
Установка Oh-my-zsh
https://ohmyz.sh/#install
https://github.com/ohmyzsh/ohmyzsh/wiki
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Cloning Oh My Zsh... remote: Enumerating objects: 1295, done. remote: Counting objects: 100% (1295/1295), done. remote: Compressing objects: 100% (1249/1249), done. remote: Total 1295 (delta 26), reused 1259 (delta 26), pack-reused 0 Receiving objects: 100% (1295/1295), 1.06 MiB | 9.07 MiB/s, done. Resolving deltas: 100% (26/26), done. From https://github.com/ohmyzsh/ohmyzsh * [new branch] master -> origin/master Branch 'master' set up to track remote branch 'master' from 'origin'. Already on 'master' /home/andrei Looking for an existing zsh config... Found ~/.zshrc. Backing up to /home/andrei/.zshrc.pre-oh-my-zsh Using the Oh My Zsh template file and adding it to ~/.zshrc. __ __ ____ / /_ ____ ___ __ __ ____ _____/ /_ / __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \ / /_/ / / / / / / / / / / /_/ / / /_(__ ) / / / \____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ /____/ ....is now installed! Before you scream Oh My Zsh! look over the `.zshrc` file to select plugins, themes, and options. • Follow us on Twitter: https://twitter.com/ohmyzsh • Join our Discord community: https://discord.gg/ohmyzsh • Get stickers, t-shirts, coffee mugs and more: https://shop.planetargon.com/collections/oh-my-zsh
Oh-my-zsh themes
https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
https://github.com/ohmyzsh/ohmyzsh/tree/master/themes
vi ~/.zshrc
В этом примере я заменю дефолтную тему robbyrussell на crunch и затем настрою её под себя.
# ZSH_THEME="robbyrussell" ZSH_THEME="crunch"
Затем можно отредактировать тему по своему усмотрению.
В данном примере я закомментировал оригинальную строку PROMPT и добавил две новые
vi ~/.oh-my-zsh/themes/crunch.zsh-theme
# Put it all together! # PROMPT="$CRUNCH_TIME_$CRUNCH_RVM_$CRUNCH_DIR_$CRUNCH_PROMPT%{$reset_color%}" prompt_newline=$'\n%{\r%}' PROMPT="%n@%m $CRUNCH_TIME_$CRUNCH_RVM_$CRUNCH_DIR_$prompt_newline$CRUNCH_PROMPT%{$reset_color%}"
Теперь терминал выглядит следующим образом
andrei@andrei-VirtualBox {12:11}~ ➭
И что мне особенно нравится - показывает текущую ветку git
andrei@andrei-VirtualBox {12:12}~/sandbox:master ✓ ➭
РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе
Конец рекламы. Если там пусто считайте это рекламой моей телеги
zsh-syntax-highlighting
Не путать с подсветкой кода в текстовом редакторе
Подсветка синтаксиса вводимых команд.
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
Cloning into '/home/andrei/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting'... remote: Enumerating objects: 7016, done. remote: Counting objects: 100% (103/103), done. remote: Compressing objects: 100% (51/51), done. remote: Total 7016 (delta 50), reused 80 (delta 46), pack-reused 6913 Receiving objects: 100% (7016/7016), 1.52 MiB | 2.81 MiB/s, done. Resolving deltas: 100% (4725/4725), done.
vi ~/.zshrc:
plugins=(zsh-syntax-highlighting)
Если до этого использовались другие плагины - добавьте zsh-syntax-highlighting в конец через запятую
ls **/*(jpg|png)
c.jpg d.png
Zsh | |
Bash | |
Linux | |
awk | |
grep | |
sed |