it-swarm.com.de

Wie behalte ich die letzte Login-Shell als aktuelle Shell bei der nächsten Anmeldung?

Wie behalte ich als Titel die letzte Login-Shell als aktuelle Shell bei der nächsten Anmeldung bei? Beispiel: Meine Standard-Shell ist 'bash' und ich habe auf 'zsh' umgestellt. Wie kann ich 'zsh' Shell als meine aktuelle Shell bei der nächsten Anmeldung oder beim Öffnen des Terminals festlegen?

5
αғsнιη

Sie können einen Befehl in Ihrem .bash_logout und .zlogout Dateien, um die aktuelle Login-Shell auf die von Ihnen verwendete zu ändern.

Der Befehl könnte sein

chsh -s "$(which "$(ps -p $$ -ocomm=)")" $USER

Schon seit, .bash_logout und .zlogout sollte vor dem Beenden von Shell als Quelle angegeben werden. Dadurch sollte die Anmeldeshell in die aktuell ausgeführte Shell geändert werden. Sie müssen jedoch ein Kennwort eingeben, um die Shell vor dem Beenden zu ändern.

Ich habe die Informationen von diese Frage von SO verwendet und mit zsh und bash getestet.

6
Anwar

Das Abmelden nach einem Passwort zu fragen ist albern. Ich habe vor langer Zeit einen Code geschrieben, der das System auf die am besten geeignete Shell überprüft. Es wird hier dienen.

1) Shell muss auf/bin/sh gesetzt sein

2) .profile enthält Folgendes

. $HOME/.Shell
if which $Shell >/dev/null
then :
else Shell=/bin/sh
     PROFILE=$HOME/.sh_profile
fi
export Shell
BASHRC=$HOME/.bashrc
ZSHRC=$HOME/.zshrc
KSHRC=$HOME/.kshrc

# Don't do this dumb thing on X login
# The redirects on tty are for portability
if tty -s 1<&0 2<&0
then
    exec $Shell -sc
fi

2) .sh_profile kann leer sein, aber das ist besser:

cd() { command cd $1 && PS1="`pwd`"\$\ }
PS1="`pwd`"\$\ 

3) .bashrc enthält Folgendes:

[ -f $HOME/.bash_Shell ] && rm $HOME/.Shell && ln $HOME/.bash_Shell $HOME/.Shell

4) .bash_Shell enthält Folgendes

Shell=/bin/bash
PROFILE=$HOME/.bash_profile

gleiches gilt für andere Muscheln

1
Joshua