Zsh — Изменение оболочки входа в систему по умолчанию и оболочки tmux на zsh в Ubuntu


ПОЧЕМУ.

Я хотел отделить место, где я нахожусь в терминале, от места, где я набираю команды.

Для этого мне нужно было сделать его zsh и применить тему


Убедитесь, что текущей оболочкой является bash

https://hirooooo-lab.com/development/change-mac-shell/

Попытался изменить его с помощью статьи hirooooo-lab

kaede@ship:~$ echo $SHELL
Войдите в полноэкранный режим Выход из полноэкранного режима

/bin/bash

Переменная $SHELL показывает текущую оболочку.


Проверьте, что zsh не находится в списке командных оболочек в нем

Если вы посмотрите на содержимое /etc/shells, вы увидите

# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/usr/bin/tmux
Войдите в полноэкранный режим Выход из полноэкранного режима

Есть dash и tmux, но нет zsh.

Поиск which zsh не показывает никакого результата.


Установка zsh

https://qiita.com/sayama0402/items/ac9e078b024c3287f99f

sudo apt-get install zsh

The following additional packages will be installed:
  zsh-common
Suggested packages:
  zsh-doc
The following NEW packages will be installed:
  zsh zsh-common

Unpacking zsh-common (5.8-3ubuntu1.1) ...
Unpacking zsh (5.8-3ubuntu1.1) ...

Setting up zsh-common (5.8-3ubuntu1.1) ...
Setting up zsh (5.8-3ubuntu1.1) ...
Processing triggers for man-db (2.9.1-1) ...
Войдите в полноэкранный режим Выход из полноэкранного режима

zsh и zsh-common были установлены.


Настройка zsh

zsh

Вы можете запустить zsh из bash с помощью этой команды.

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 --- 
Войдите в полноэкранный режим Выход из полноэкранного режима

Теперь у вас есть руководство по настройке вашей первой оболочки Z Shell.
Вы можете выбрать: «Выход», «Выход», переход в главное меню или «Рекомендации администратора».

Попробуйте воспользоваться рекомендациями администратора.

2

/home/kaede/.zshrc:15: scalar parameter HISTFILE created globally in function zsh-newuser-install
kaede@machine ~ %
Войдите в полноэкранный режим Выход из полноэкранного режима

Временно запустите zsh

Введите zsh, чтобы открыть zsh из bash.

Имя пользователя и название терминала на светло-голубом фоне
Текущая директория выделена светло-голубым текстом.

и на данный момент легче воспринимается, чем bash.

Если путь, по которому вы идете, длиннее, то
Команда автоматически прерывается в том месте, где вы ее набрали. Удобно.

Я хочу сделать эту % position > метку, поэтому я хочу вставить расширение.
До этого я хочу, чтобы zsh открывался при входе в систему.


Сделайте zsh оболочкой по умолчанию для входа в систему

Если вы только что установили новый zsh, когда вы выйдете и снова откроете новую оболочку, естественно, откроется bash.
Естественно, откроется bash.

https://qiita.com/sayama0402/items/ac9e078b024c3287f99f#%E8%BF%BD%E8%A8%98

Вы можете использовать chsh, CHange SHell, чтобы изменить оболочку, которая открывается по умолчанию

chsh -s $(which zsh)
Войдите в полноэкранный режим Выход из полноэкранного режима

Перезапустите приложение терминала, и zsh откроется.


Проверьте, что переменная $SHELL все еще является переменной bash

echo $SHELL
Войдите в полноэкранный режим Выход из полноэкранного режима

/bin/bash

Однако значением переменной $SHELL по-прежнему является bash.

Новые вкладки также открываются в zsh, но без изменения этой переменной
tmux не открывается с помощью zsh.


Установите переменную $SHELL на zsh, чтобы tmux также открывался с помощью zsh

Открывается ли он в соответствии с $SHELL?
Когда я открываю tmux, он открывается с помощью bash вместо zsh.

https://unix.stackexchange.com/a/430460

Ответ гласит: chsh не переписывает $SHELL.
Поэтому в нем говорится о необходимости переписать /etc/passwd.

root:x:0:0:root:/root:/bin/bash
Войдите в полноэкранный режим Выход из полноэкранного режима

Но я немного боюсь переписывать это.
Экспортируйте его в .zshrc и измените его.

# change SHELL value
export SHELL="/usr/bin/zsh"
Войдите в полноэкранный режим Выход из полноэкранного режима

Экспортируйте с помощью zsh путь в SELL.

~ % echo $SHELL
/usr/bin/zsh
Войдите в полноэкранный режим Выход из полноэкранного режима

Принято!

Теперь вы находитесь в zsh после запуска tmux!

P.S.

https://mikebuss.com/2014/02/02/a-beautiful-productive-terminal-experience/

В zsh при опечатке в команде
Он ищет нужного кандидата, и когда вы нажимаете кнопку
Когда вы нажмете ‘y’, он исправит это и повторно выполнит команду.


Резюме.

Вы можете установить zsh с помощью sudo apt-get install zsh.

chsh -s $(which zsh) для изменения оболочки входа в систему на zsh

export SHELL="/usr/bin/zsh" в .bashrc
Оболочку входа в tmux можно также изменить на zsh, написав в .bashrc.

Оцените статью
devanswers.ru
Добавить комментарий