Sie verwenden die Linux-Shell vielleicht jeden Tag, aber wie Sie sie verwenden, bestimmt viel über ihr Verhalten. Sie haben vielleicht schon von dem Unterschied zwischen einer Login-Shell und einer Nicht-Login-Shell gehört. Und obwohl es auf den ersten Blick nicht so offensichtlich erscheint, gibt es einige Unterschiede zwischen den beiden Schalentypen.

Hier finden Sie alles, was Sie über Anmelde-Shells unter Linux wissen müssen.

Was ist eine Login-Shell?

Eine Login-Shell ist genau das: eine Shell, die gestartet wird, wenn Sie sich direkt bei der Linux-Maschine anmelden. Wenn Sie sich von a virtuelle Konsole oder über SSH ist die gestartete Shell eine Login-Shell.

Wenn Sie dagegen ein Terminalfenster starten, ist diese Shell-Sitzung normalerweise keine Login-Shell. Dasselbe gilt, wenn Sie eine Subshell starten, indem Sie den Namen der Shell in der Befehlszeile eingeben. Diese Shell ist nur eine interaktive Shell.

Der Hauptunterschied zwischen den beiden liegt im Verhalten der Schale. Die Shell liest oft nur bestimmte Dateien beim Start. Bash liest die

instagram viewer
/etc/profile, dann ist die .bash_profile, .bash_login, und .profile-Dateien nur dann in Ihrem Home-Verzeichnis, wenn es als Login-Shell aufgerufen wird.

So erkennen Sie, ob Sie eine Login-Shell verwenden

Es ist leicht zu erkennen, ob Sie eine Login-Shell ausführen oder nicht. Wenn Sie Ihre Shell über die Desktop-Terminalanwendung gestartet haben, ist dies höchstwahrscheinlich nicht der Fall, es sei denn, Sie befinden sich in einer anderen Terminalumgebung wie WSL oder dem macOS-Terminal.

Mit diesem Befehl können Sie überprüfen, ob Sie eine Login-Shell ausführen;

Echo$0

Wenn Sie eine Login-Shell verwenden, sehen Sie den Namen der Shell mit vorangestelltem Bindestrich (-). Wenn nicht, sehen Sie nur den Namen der Shell.

Einrichten Ihrer Login-Shell unter Linux

Verwenden Sie zum Festlegen Ihrer Anmelde-Shell der chsh-Befehl. Sie können Ihre Login-Shell auf den absoluten Pfad einer beliebigen Shell setzen, die in aufgeführt ist /etc/shells.

Um eine beliebige Shell als Login-Shell zu starten, können Sie normalerweise eine Befehlszeilenoption verwenden. Um beispielsweise Bash als Login-Shell zu starten:

bash --Anmeldung

Wenn Sie einen Linux-Desktop verwenden, können Sie häufig angeben, welcher Befehl ausgeführt wird, wenn Sie ein Terminalfenster öffnen. Wenn Sie möchten, dass Ihre Shell als Login-Shell ausgeführt wird, können Sie diese Option dort einfügen.

Jetzt kennen Sie sich mit Login-Shells aus

Sie sollten jetzt verstehen, was Login-Shells sind. Das Starten Ihrer Shell, entweder direkt von der Konsole oder von einem Terminalfenster aus, bestimmt, wie sie sich verhalten wird.

Wenn Sie neu bei Linux sind, fragen Sie sich vielleicht, welche Shell die beste ist. Sie können bei der Standard-Bash bleiben oder die speziellen Funktionen erkunden, die alternative Shells wie Fish oder Zsh bieten.