Diese Frage hat hier bereits eine Antwort:
Wie ändere ich meine Shell in eine in meinem Home-Verzeichnis installierte Shell? Ich habe ein neues zsh in meinem Home-Verzeichnis installiert, das abgeholt wird:
>> which zsh
>> /home/myname/bin/zsh
Es ist nicht in / etc / shells aufgeführt (und wird es auch nicht sein, da ich keine Berechtigung habe). Wie installiere ich es?
chsh -s $(which zsh) myname
Changing shell for myname
Password:
chsh: "/home/myname/bin/zsh" is not listed in /etc/shells
chsh: use -l option to see list
exec zsh
in deiner bashrc?/etc/shells
Erzählen Sie, ob Sie es herausfinden.Antworten:
Der ganze Punkt von
/etc/shells
So kann der Administrator steuern, welche Benutzer als Shell festgelegt sind. Festlegen einer Shell, die nicht aufgeführt ist/etc/shells
wäre also eine Sicherheitslücke. Die beste Lösung ist, den Administrator zu bitten, zsh systemweit zu installieren. Wenn dies nicht möglich ist, können Sie Ihre aktuelle Shell (ich nehme an, bash) zur Ausführung Ihrer benutzerdefinierten Shell konfigurieren. Sie können dies tun, indem Sie Folgendes zu hinzufügen~/.bash_profile
(Dies betrifft nur Login-Shells, wohingegen~/.bashrc
wirkt sich auch auf Nicht-Login-Shells aus, die möglicherweise Skripts beschädigen).quelle