GNU/Linux >> LINUX-Kenntnisse >  >> Linux

UNIX / Linux:Was ist eine Shell? Was sind verschiedene Muscheln?

Was ist eine Muschel?

Eine Shell ist ein Programm, das eine Schnittstelle zwischen einem Benutzer und einem Kernel eines Betriebssystems (OS) bereitstellt. Ein Betriebssystem startet eine Shell für jeden Benutzer, wenn sich der Benutzer anmeldet oder ein Terminal- oder Konsolenfenster öffnet.

Ein Kernel ist ein Programm, das:

  • Steuert alle Computeroperationen.
  • Koordiniert alle ausführenden Dienstprogramme
  • Stellt sicher, dass sich ausführende Dienstprogramme nicht gegenseitig stören oder alle Systemressourcen verbrauchen.
  • Plant und verwaltet alle Systemprozesse.

Durch die Verbindung mit einem Kernel bietet eine Shell einem Benutzer die Möglichkeit, Dienstprogramme und Programme auszuführen.

Benutzerumgebung

Die Shell bietet auch eine Benutzerumgebung, die Sie mithilfe von Initialisierungsdateien anpassen können. Diese Dateien enthalten Einstellungen für Eigenschaften der Benutzerumgebung, wie zum Beispiel:

  • Suchpfade zum Finden von Befehlen.
  • Standardberechtigungen für neue Dateien.
  • Werte für Variablen, die andere Programme verwenden.
  • Werte, die Sie anpassen können.

Was sind die verschiedenen Shells?

Die folgenden Abschnitte beschreiben Betriebssystem-Shells, die hauptsächlich auf UNIX/Linux-Betriebssystemen verfügbar sind. Shell-Features und ihre Standard-Prompts werden ebenfalls beschrieben.

1. Die Bourne-Shell

Die Bourne-Shell (sh), geschrieben von Steve Bourne bei AT&T Bell Labs, ist die ursprüngliche UNIX-Shell. Aufgrund ihrer Kompaktheit und Geschwindigkeit ist sie die bevorzugte Shell für die Shell-Programmierung. Ein Nachteil der Bourne-Shell besteht darin, dass ihr Funktionen zur interaktiven Verwendung fehlen, wie z. B. die Möglichkeit, frühere Befehle abzurufen (Verlauf). Der Bourne-Shell fehlt auch die integrierte Behandlung arithmetischer und logischer Ausdrücke.

Die Bourne-Shell ist die Standard-Shell des Solaris-Betriebssystems. Es ist die Standard-Shell für Solaris-Systemverwaltungsskripts. Für die Bourne-Shell:

  • Der vollständige Pfadname des Befehls lautet /bin/sh und /sbin/sh .
  • Die Standardeingabeaufforderung für Nicht-Root-Benutzer ist $ .
  • Die Standardeingabeaufforderung des Root-Benutzers ist # .

2. Die C-Shell

Die C-Shell (csh):

  • Ist eine UNIX-Erweiterung, geschrieben von Bill Joy an der University of California in Berkeley.
  • Integrierte Funktionen zur interaktiven Nutzung, wie Aliase und Befehlsverlauf .
  • Umfasst praktische Programmierfunktionen wie integrierte Arithmetik und eine C-ähnliche Ausdruckssyntax .

Für die C-Shell:

  • Der vollständige Pfadname des Befehls lautet /bin/csh .
  • Die Standardeingabeaufforderung für Nicht-Root-Benutzer ist der Hostname % .
  • Die Standardeingabeaufforderung des Root-Benutzers ist der Hostname # .

3. Die Korn-Shell

Die Korn-Shell (ksh):

  • Wurde von David Korn geschrieben bei AT&T Bell Labs
  • Ist eine Obermenge der Bourne-Shell.
  • Unterstützt alles in der Bourne-Shell.
  • Verfügt über interaktive Funktionen, die mit denen der C-Shell vergleichbar sind.
  • Umfasst praktische Programmierfunktionen wie integrierte Arithmetik und C-ähnliche Arrays , Funktionen , und String-Manipulationsmöglichkeiten .
  • Ist schneller als die C-Shell.
  • Führt Skripte aus, die für die Bourne-Shell geschrieben wurden.

Für die Korn-Shell:

  • Der vollständige Pfadname des Befehls lautet /bin/ksh .
  • Die Standardeingabeaufforderung für Nicht-Root-Benutzer ist $ .
  • Die Standardeingabeaufforderung des Root-Benutzers ist # .

4. Die GNU Bourne-Again-Shell

Die GNU Bourne-Again-Shell (bash):

  • Ist kompatibel zur Bourne-Shell.
  • Beinhaltet nützliche Funktionen der Korn- und C-Shells.
  • Verfügt über Pfeiltasten, die automatisch zum Abrufen und Bearbeiten von Befehlen zugeordnet sind.

Für die GNU Bourne-Again-Shell die:

  • Der vollständige Pfadname des Befehls lautet /bin/bash .
  • Die Standardeingabeaufforderung für einen Nicht-Root-Benutzer ist bash-x.xx$ . (wobei x.xx die Shell-Versionsnummer angibt. Zum Beispiel bash-3.50$)
  • Die Standardeingabeaufforderung des Root-Benutzers ist bash-x.xx# . (Wobei x.xx die Shell-Versionsnummer angibt. Beispiel:bash-3.50$#)

Hier ein kurzer Vergleich aller 4 Schalen und ihrer Eigenschaften.

Schale Pfad Standardeingabeaufforderung (Nicht-Root-Benutzer) Standardeingabeaufforderung (Root-Benutzer)
Die Bourne-Muschel (sh) /bin/sh und /sbin/sh $ #
Die C-Shell (csh) /bin/csh % #
Die Korn-Shell (ksh) /bin/ksh $ #
Die GNU Bourne-Again-Shell (Bash) /bin/bash bash-x.xx$ bash-x.xx#


Linux
  1. Was sind die verschiedenen Arten von Shells in Linux?

  2. Was sind Sparse-Dateien in Linux?

  3. Was sind gute Linux/Unix-Bücher für fortgeschrittene Benutzer?

  4. Was macht % in Linux-Shell-Strings?

  5. Sind verschiedene Linux/Unix-Kernel austauschbar?

Was ist die Shell unter Linux?

Was ist Subshell in Linux?

Was ist die Login-Shell in Linux?

Was ist Shebang in Linux Shell Scripting?

Was sind Inodes unter Linux?

8 Arten von Linux-Shells