Як зробити ZSH оболонкою за замовчуванням?


124

Я намагаюся встановити ZSH як мою оболонку за замовчуванням, однак вона продовжує повертатися назад до bash.

Я спробував цей код:

sudo chsh -s $(which zsh)

Я також спробував:

sudo chsh -s /bin/zsh 

Також спробував ці команди без судо. Будь-які ідеї щодо того, що мені ще потрібно зробити. При запуску ZSH зсередини bash він завантажується і працює добре, але я хотів би встановити його як оболонку за замовчуванням.

Відповіді:


217

Просто за допомогою chsh:

chsh -s $(which zsh)

без sudo повинні працювати. Якщо ви sudoйого використовуєте, вона змінить оболонку не для вашого працюючого користувача, а для root

Нарешті, вийдіть із комп'ютера та увійдіть назад .

Вирішення проблем:


17
У мене така ж проблема, і відповідь її не вирішує
Асвін Муругеш

@AswinMurugesh Перевір мою відповідь
Шайлеш Каламкар

9
ви також можете запустити sudo chsh -s / bin / zsh userName
Micha Roon

15
Примітка. Мені довелося перезапустити систему до того, як це набуде чинності.
KevinO

ні, це не спрацювало.
Haha TTpro

40

Я знайшов це на форумі суперусерів

Відкрити / 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

Вийдіть із системи та увійдіть назад, щоб зміни набрали чинності.


11
Ви повинні бути дуже обережними з таким підходом - зазвичай це не найкраща ідея, коли б хотіли розібратися/etc/passwd
Thomas Ward

Хоча я не використовував цей метод, він допоміг мені перевірити ефект відchsh -s `which zsh`
jchook

HA Так, це трахкав мого користувача. Не можу знову увійти.
Марк Карпентер молодший

6

Ви також можете зробити це:

відкрийте файл bashrc в улюбленому редакторі

sudo nano ~/.bashrc

потім додайте рядок вгорі файлу

exec zsh

Він буде виконувати команду щоразу, коли ви завантажуєте термінал і запускаєте свою оболонку zsh.


13
і це також порушить усі ваші неінтерактивні завдання ( scpнаприклад).
Jakuje

Вибачте за голосування, але змінили /etc/passwdабо chshє кращими рішеннями та надійнішими.
Тимо

Дякую, що це вдалося. @Timo Я змінив на / etc / passwd та або chsh, але мій замовчуванням продовжував повертатися до bash. Я додав exec zsh відповідно до опублікованої відповіді, і він спрацював.
Стрикер

3

Якщо zsh не / bin / zsh, то chsh не працюватиме. Для Ubuntu це / usr / bin / zsh. тому робити chsh -s /usr/bin/zshчи chsh -s `which zsh`треба працювати. Також потрібно повторно увійти в сеанс робочого столу.


У моєму VPS Ubuntu це / bin / zsh
Вільгельм Еразм

На моєму Ubuntu я бачу це в обох /bin/zshі/usr/bin/zsh
blue_chip

2
У моєму (14.04, з zsh від основного репо) є два zsh, і вони обидва двошарові посилання: / usr / bin / zsh -> / тощо / альтернативи / zsh-usrbin -> / bin / zsh5 та / bin / zsh -> / etc / alternative / zsh -> / bin / zsh5
wjandrea

1

У мене виникла проблема з дозволами на зміну оболонки під поточним користувачем, але далі мені допомагає (ви повинні встановити правильну папку 'zsh' для свого комп’ютера):

sudo chsh -s /bin/zsh <myUserName>

0

Як не дивно, "прийнята" відповідь не спрацювала для мене, як я отримав

chsh: PAM: Authentication failure

Щоб вирішити цю проблему, відредагуйте / etc / passwd і переконайтеся, що він вказує на zsh-місце. (Ви можете знайти це, запустивши "який zsh") У моєму випадку мій користувач під назвою "webmaster" виглядав так:

webmaster:x:1001:1001:webmaster,,,:/var/www/webmaster:/usr/bin/zsh

Я вважаю, що слід попросити пароль. Я отримав таку ж помилку в попередній установці монетного двору. Поточний один працював відмінно , хоча
Wilhelm Erasmus

У когось іншого була така ж проблема, і виявилося, що вони бігли chsh -s zsh, що зробило їхнє введення пароля неправильним.
wjandrea

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.