Как изменить оболочку по умолчанию на экземпляре AWS?

121

Я хочу изменить свою оболочку с оболочки bash по умолчанию на zsh в моих экземплярах Amazon EC2. Как мне это сделать? Спасибо!

Шрипад Кришна
источник

Ответы:

159

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

например

chsh -s / bin / zsh

Вы можете подтвердить местоположение zsh, запустив whereis zshили просто запустив

chsh -s $ (который зш)

Если вы хотите изменить оболочку для учетной записи пользователя, отличной от той, в которую вы вошли, вам нужно будет запустить ее как root, поэтому, чтобы изменить оболочку john, выполните:

sudo chsh -s $ (который зш) джон

Обратите внимание, что вам нужно выйти и снова войти, чтобы изменения вступили в силу. Если вы используете Gnome или какой-либо другой оконный менеджер, вам также необходимо полностью выйти из этого сеанса - просто закрыть и открыть свой терминал недостаточно.

Джон Т
источник
Я попробовал это, но с пользователем root !! В моем образе AMI есть Ubuntu, а не root. Пришлось переключиться на пользователя Ubuntu, чтобы изменить оболочку! Спасибо за подсказку :)
Шрипад Кришна
3
@ Папа, если вы root, вы можете изменить его для другого пользователя, запустив chsh -s /bin/zsh username.
Джон Т
Круто :) Гораздо проще. Спасибо за эту информацию тоже.
Шрипад Кришна
3
@ Мы - мир: вам нужно добавить / usr / local / bin / zsh в качестве новой строки в / etc / shells
Нейт Парсонс
5
Я использую слегка другую версиюsudo chsh -s $(which zsh) $(whoami)
SergioAraujo
20

Откройте / etc / passwd:

sudo vi /etc/passwd

Найдите строку с вашим именем пользователя:

username:x:1634231:100:Your Name:/home/username:/bin/bash

и замените bash на zsh:

username:x:1634231:100:Your Name:/home/username:/bin/zsh

Выйдите и войдите снова, чтобы изменения вступили в силу.

Георгий Олейников
источник
6
Лучше использовать chsh, но если вы действительно собираетесь редактировать /etc/passwdвручную, хотя бы используйте vipwкоманду.
Валмики Аркиссандас
У меня нет chsh на моей машине. Кроме того, по какой-то странной причине мой файл / etc / passwd регулярно перезаписывается файлом по умолчанию. Вы знаете, почему это может происходить?
Георгий Олейников
Не трогайте / etc / passwd. Есть лучшие способы сделать это, которые не требуют возиться с инструментом passwd!
Андрей
6

Я пришел сюда, чтобы просто добавить дополнительную информацию. Если у вас возникли проблемы при установке zsh в Amazon Linux AMI от Amazon, например, при запуске:

sudo chsh $(which zsh) : // chsh command not found

Затем вы должны установить util-linux-user :

sudo yum install util-linux-user

(по умолчанию Amazon Linux AMI имеет только lchsh , но я не могу понять, как это работает).

Затем выполните следующую команду, она должна работать:

sudo chsh -s $(which zsh) $(whoami)
Чау Гианг
источник
5

В Ubuntu, внутри терминала GNOME, внесение изменений через chsh не даст ожидаемого эффекта ...

Чтобы преодолеть эту проблему, сделайте это:

  • Щелкните правой кнопкой мыши в терминале
  • Профили -> Настройки профиля
  • На вкладке «Заголовок и команда» установите флажок «Выполнить пользовательскую команду вместо моей оболочки» и укажите путь к исполняемому файлу zsh.
  • Перезапустите Терминал.

Мир.

PS Не имею 10 репутации, чтобы размещать изображения, поэтому все текстовые инструкции. :)

Бен
источник
У вас есть представитель, который вам нужен сейчас. : P
pradyunsg
0

одна линия

sudo chsh -s $(which zsh) $(whoami)

Дополнительная информация: после этого вы, вероятно, захотите сделать это

git clone https://github.com/zdharma/fast-syntax-highlighting.git \
  ~/.oh-my-zsh/custom/plugins/fast-syntax-highlighting

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

nano ~/.zshrc 

find plugins = (git) Добавлять zsh-autosuggestions и zsh-syntax-подсветку к плагинам () следующим образом

plugins = (git zsh-autosuggestions fast-синтаксическая подсветка)

source ~/.zshrc
OWADVL
источник