So überprüfen Sie, ob eine bestimmte Shell unter Linux verwendet wird

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie feststellen können, welche Shell derzeit in einer Linux-Umgebung verwendet wird. Sie werden verschiedene Methoden untersuchen, um die aktive Shell zu prüfen. Dazu gehört die Verwendung des Befehls echo $SHELL, um die Shell der aktuellen Sitzung anzuzeigen, die Prüfung der Datei /etc/passwd, um die Standard-Login-Shell eines Benutzers zu überprüfen, und die Untersuchung der laufenden Prozesse mit dem Befehl ps, um den Shell-Prozess zu identifizieren.

Durch die Durchführung dieser Schritte werden Sie praktische Fähigkeiten in der Identifizierung und dem Verständnis der Shell-Umgebung erwerben, was für eine effektive Befehlszeileninteraktion und Skripting in Linux von grundlegender Bedeutung ist.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") subgraph Lab Skills linux/echo -.-> lab-558763{{"So überprüfen Sie, ob eine bestimmte Shell unter Linux verwendet wird"}} linux/cat -.-> lab-558763{{"So überprüfen Sie, ob eine bestimmte Shell unter Linux verwendet wird"}} linux/grep -.-> lab-558763{{"So überprüfen Sie, ob eine bestimmte Shell unter Linux verwendet wird"}} linux/ps -.-> lab-558763{{"So überprüfen Sie, ob eine bestimmte Shell unter Linux verwendet wird"}} linux/env -.-> lab-558763{{"So überprüfen Sie, ob eine bestimmte Shell unter Linux verwendet wird"}} end

Überprüfen der aktuellen Shell mit echo $SHELL

In diesem Schritt lernen Sie, wie Sie die Shell identifizieren können, die Sie derzeit im Terminal verwenden. Die Shell ist der Befehlszeileninterpreter, der Ihre Befehle verarbeitet. Verschiedene Shells haben unterschiedliche Funktionen und Syntax, obwohl viele grundlegende Befehle in allen Shells gleich funktionieren.

Die LabEx-Umgebung verwendet zsh als Standard-Shell. Sie können dies überprüfen, indem Sie den Wert der Umgebungsvariablen $SHELL prüfen. Umgebungsvariablen sind dynamische Werte, die das Verhalten von Prozessen auf dem Computer beeinflussen. Die Variable $SHELL speichert speziell den Pfad zur Standard-Shell des Benutzers.

Um den Wert der Variable $SHELL anzuzeigen, verwenden Sie den Befehl echo gefolgt vom Variablennamen, der mit einem Dollarzeichen ($) eingeleitet wird.

Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie die Eingabetaste:

echo $SHELL

Sie sollten eine Ausgabe ähnlich der folgenden sehen, die darauf hinweist, dass Ihre aktuelle Shell zsh ist:

/usr/bin/zsh

Dies bestätigt, dass das Terminal derzeit die zsh-Shell ausführt, was die Standardkonfiguration für Ihre LabEx-Umgebung ist. Das Verständnis, welche Shell Sie verwenden, ist wichtig, wenn Sie sich in Ihrer Linux-Reise vorantreiben, da einige erweiterte Funktionen oder Skripte möglicherweise spezifisch für eine bestimmte Shell sind.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.

Überprüfen der Benutzer-Shell in /etc/passwd

Im vorherigen Schritt haben Sie echo $SHELL verwendet, um die Shell zu sehen, die Sie derzeit verwenden. Dies ist die Shell, die für Ihre aktuelle Terminal-Sitzung gestartet wurde. Allerdings führt das System auch in einer Konfigurationsdatei einen Eintrag über die Standard-Login-Shell jedes Benutzers.

Diese Konfigurationsdatei ist /etc/passwd. Sie enthält Informationen über alle Benutzer auf dem System. Jede Zeile in /etc/passwd repräsentiert ein Benutzerkonto und ist in Felder unterteilt, die durch Doppelpunkte (:) getrennt sind. Das letzte Feld jeder Zeile gibt die Standard-Login-Shell des Benutzers an.

Um den Inhalt von /etc/passwd anzuzeigen, können Sie den Befehl cat verwenden. Da wir uns nur für die Zeile des labex-Benutzers interessieren, können wir cat mit dem grep-Befehl kombinieren, um die Ausgabe zu filtern. grep ist ein leistungsstarkes Werkzeug zum Suchen von Textmustern in Dateien.

Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie die Eingabetaste:

cat /etc/passwd | grep labex

Lassen Sie uns diesen Befehl zerlegen:

  • cat /etc/passwd: Dieser Befehl liest den Inhalt der Datei /etc/passwd und gibt ihn an die Standardausgabe aus.
  • |: Dies ist eine Pipe. Sie nimmt die Ausgabe des Befehls auf der linken Seite (cat /etc/passwd) und sendet sie als Eingabe an den Befehl auf der rechten Seite (grep labex).
  • grep labex: Dieser Befehl sucht in der empfangenen Eingabe nach Zeilen, die die Zeichenkette "labex" enthalten, und gibt diese Zeilen aus.

Sie sollten eine einzelne Zeile ähnlich der folgenden sehen:

labex:x:5000:5000:LabEx user,,,:/home/labex:/usr/bin/zsh

Diese Zeile enthält mehrere Informationen über den labex-Benutzer, getrennt durch Doppelpunkte. Die Felder sind (in der Reihenfolge):

  1. Benutzername (labex)
  2. Passwort (dargestellt durch x, der eigentliche Passwort-Hash wird aus Sicherheitsgründen woanders gespeichert)
  3. Benutzer-ID (UID) (5000)
  4. Gruppen-ID (GID) (5000)
  5. Benutzerinformationen (GECOS-Feld) (LabEx user,,,)
  6. Heimatverzeichnis (/home/labex)
  7. Standard-Login-Shell (/usr/bin/zsh)

Das letzte Feld, /usr/bin/zsh, bestätigt, dass die Standard-Login-Shell für den labex-Benutzer tatsächlich zsh ist, was mit dem übereinstimmt, was Sie mit echo $SHELL gesehen haben.

Klicken Sie auf Weiter, um fortzufahren.

Untersuchung des Shell-Prozesses mit ps

In den vorherigen Schritten haben Sie Ihre aktuelle Shell mit echo $SHELL identifiziert und Ihre Standard-Login-Shell in /etc/passwd überprüft. Jetzt schauen wir uns die laufenden Prozesse auf dem System an, um den Shell-Prozess selbst zu sehen.

Unter Linux ist jedes laufende Programm ein Prozess. Der Befehl ps (Abkürzung für "process status") wird verwendet, um Informationen über die derzeit laufenden Prozesse anzuzeigen.

Um die Prozesse anzuzeigen, die mit Ihrer aktuellen Terminal-Sitzung verbunden sind, können Sie den ps-Befehl mit der Option -f verwenden, die eine vollständige Formatierung der Liste bietet.

Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie die Eingabetaste:

ps -f

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

UID          PID    PPID  C STIME TTY          TIME CMD
labex       XXXX    XXXX  0 HH:MM pts/0    00:00:00 zsh
labex       YYYY    XXXX  0 HH:MM pts/0    00:00:00 ps -f

Schauen wir uns die Spalten an:

  • UID: Die Benutzer-ID des Prozess-Eigentümers (labex).
  • PID: Die Prozess-ID, eine eindeutige Nummer für jeden Prozess.
  • PPID: Die Eltern-Prozess-ID. Dies ist die PID des Prozesses, der diesen Prozess gestartet hat.
  • C: CPU-Auslastung.
  • STIME: Die Zeit, zu der der Prozess gestartet wurde.
  • TTY: Das Terminal, das mit dem Prozess verbunden ist (pts/0 zeigt ein Pseudoterminal an, wie das von Ihnen verwendete).
  • TIME: Die kumulative CPU-Zeit, die vom Prozess verwendet wurde.
  • CMD: Der Befehl, der den Prozess gestartet hat.

In der Ausgabe sollten Sie eine Zeile mit CMD als zsh sehen. Diese Zeile repräsentiert den zsh-Shell-Prozess, der Ihre aktuelle Terminal-Sitzung ausführt. Sie werden auch eine Zeile für den ps -f-Befehl selbst sehen, da dieser ebenfalls ein laufender Prozess ist, wenn Sie ihn ausführen.

Dieser Schritt zeigt Ihnen, wie Sie ps verwenden können, um laufende Prozesse zu untersuchen und zu bestätigen, dass Ihre Shell tatsächlich als Prozess auf dem System läuft.

Klicken Sie auf Weiter, um dieses Lab abzuschließen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie überprüfen können, welche Shell Sie derzeit unter Linux verwenden. Zunächst haben Sie den Befehl echo $SHELL verwendet, um den Pfad der Shell anzuzeigen, die in Ihrer aktuellen Terminal-Sitzung läuft. Dies hat gezeigt, dass die LabEx-Umgebung standardmäßig zsh verwendet.

Anschließend haben Sie die Datei /etc/passwd untersucht, die Informationen über Systembenutzer speichert, einschließlich ihrer Standard-Login-Shell. Indem Sie das letzte Feld des Eintrags Ihres Benutzers in dieser Datei betrachten, können Sie die Shell überprüfen, die Ihrem Konto beim Anmelden zugewiesen ist. Diese Methoden bieten verschiedene Möglichkeiten, die verwendete Shell zu bestimmen, sei es für die aktuelle Sitzung oder als Standard-Shell des Benutzers.