Linux Professional Institute Learning Logo.
Weiter zum Inhalt
  • Home
    • Alle Ressourcen
    • LPI Lernmaterialien
    • Mitmachen
    • Publishing Partner
    • Publishing Partner werden
    • Über uns
    • FAQ
    • Mitwirkende
    • Roadmap
    • Kontakt
  • LPI.org
103.1 Lektion 1
Thema 101: Systemarchitektur
101.1 Hardwareeinstellungen ermitteln und konfigurieren
  • 101.1 Lektion 1
101.2 Das System starten
  • 101.2 Lektion 1
101.3 Runlevel wechseln und das System anhalten oder neu starten
  • 101.3 Lektion 1
Thema 102: Linux-Installation und -Paketverwaltung
102.1 Festplattenaufteilung planen
  • 102.1 Lektion 1
102.2 Einen Bootmanager installieren
  • 102.2 Lektion 1
102.3 Shared Libraries verwalten
  • 102.3 Lektion 1
102.4 Debian-Paketverwaltung verwenden
  • 102.4 Lektion 1
102.5 RPM und YUM-Paketverwaltung verwenden
  • 102.5 Lektion 1
102.6 Linux als Virtualisierungs-Gast
  • 102.6 Lektion 1
Thema 103: GNU- und Unix-Befehle
103.1 Auf der Befehlszeile arbeiten
  • 103.1 Lektion 1
  • 103.1 Lektion 2
103.2 Textströme mit Filtern verarbeiten
  • 103.2 Lektion 1
103.3 Grundlegende Dateiverwaltung
  • 103.3 Lektion 1
  • 103.3 Lektion 2
103.4 Ströme, Pipes und Umleitungen verwenden
  • 103.4 Lektion 1
  • 103.4 Lektion 2
103.5 Prozesse erzeugen, überwachen und beenden
  • 103.5 Lektion 1
  • 103.5 Lektion 2
103.6 Prozess-Ausführungsprioritäten ändern
  • 103.6 Lektion 1
103.7 Textdateien mit regulären Ausdrücken durchsuchen
  • 103.7 Lektion 1
  • 103.7 Lektion 2
103.8 Grundlegendes Editieren von Dateien
  • 103.8 Lektion 1
Thema 104: Geräte, Linux-Dateisysteme, Filesystem Hierarchy Standard
104.1 Partitionen und Dateisysteme anlegen
  • 104.1 Lektion 1
104.2 Die Integrität von Dateisystemen sichern
  • 104.2 Lektion 1
104.3 Das Mounten und Unmounten von Dateisystemen steuern
  • 104.3 Lektion 1
104.5 Dateizugriffsrechte und -eigentümerschaft verwalten
  • 104.5 Lektion 1
104.6 Symbolische und Hardlinks anlegen und ändern
  • 104.6 Lektion 1
104.7 Systemdateien finden und Dateien am richtigen Ort plazieren
  • 104.7 Lektion 1
How to get certified
  1. Thema 103: GNU- und Unix-Befehle
  2. 103.1 Auf der Befehlszeile arbeiten
  3. 103.1 Lektion 1

103.1 Lektion 1

Zertifikat:

LPIC-1

Version:

5.0

Thema:

103 GNU- und Unix-Befehle

Lernziel:

103.1 Auf der Befehlszeile arbeiten

Lektion:

1 von 2

Einführung

Neulinge in der Welt der Linux-Administration und der Bash-Shell fühlen sich ohne den beruhigenden Komfort einer GUI-Oberfläche oft etwas verloren. Sie sind es gewohnt, mit einem Rechtsklick auf die visuellen Hinweise und Kontextinformationen zuzugreifen, die grafische Dateimanager zur Verfügung stellen. Daher ist es wichtig, den relativ kleinen Satz von Kommandozeilenwerkzeugen schnell zu erlernen und zu beherrschen, durch die Sie sofort auf alle Daten zugreifen können, welche eine GUI bietet - und mehr.

Einholen von Systeminformationen

Während Sie auf das blinkende Rechteck eines Kommandozeilen-Prompts starren, wird Ihre erste Frage wahrscheinlich lauten: “Wo bin ich?” oder, genauer gesagt, “Wo im Linuxdateisystem befinde ich mich gerade und, wenn ich eine neue Datei erstellen würde, wo würde diese angelegt?” Was Sie hier suchen, ist Ihr aktuelles Arbeitsverzeichnis, und der Befehl pwd wird uns sagen, was wir wissen wollen:

$ pwd
/home/frank

Angenommen, Frank ist derzeit im System angemeldet und befindet sich derzeit in seinem Homeverzeichnis: /home/frank/. Sollte Frank mit dem Befehl touch eine leere Datei erstellen, ohne einen anderen Ort im Dateisystem anzugeben, wird die Datei innerhalb von /home/frank/ erstellt. Eine Auflistung des Verzeichnisinhalts mit ls zeigt uns diese neue Datei:

$ touch newfile
$ ls
newfile

Neben Ihrem Standort im Dateisystem werden Sie oft auch Informationen über das verwendete Linux-System benötigen. Dies kann die genaue Versionsnummer Ihrer Distribution oder die aktuell geladene Version des Linux-Kernels umfassen. Das Werkzeug uname ist das, wonach Sie hier suchen. Und insbesondere uname unter Verwendung der Option -a (“alles”).

$ uname -a
Linux base 4.18.0-18-generic #19~18.04.1-Ubuntu SMP Fri Apr 5 10:22:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Hier zeigt uname, dass auf Franks Maschine der Linux-Kernel in Version 4.18.0 installiert ist und Ubuntu 18.04 auf einer 64-Bit (x86_64) CPU läuft.

Einholen von Befehlsinformationen

Sie werden oft auf Dokumentationen stoßen, in denen von Linuxbefehlen die Rede ist, mit denen Sie noch nicht vertraut sind. Die Kommandozeile selbst bietet alle möglichen hilfreichen Informationen darüber, was Befehle bewirken und wie man sie effektiv einsetzen kann. Die vielleicht nützlichsten Informationen sind in den vielen Dateien des man-Systems zu finden.

In der Regel schreiben Linuxentwickler man-Dateien und verteilen diese zusammen mit den dazugehörigen Dienstprogrammen. man-Dateien sind stark strukturierte Dokumente, deren Inhalt intuitiv durch Sektionsüberschriften unterteilt ist. Wenn Sie man gefolgt von dem Namen eines Befehls eingeben, erhalten Sie Informationen, wie den Befehlsnamen, eine kurze Zusammenfassung der Benutzung, eine detailliertere Beschreibung und einige wichtige historische und lizenzrechtliche Hintergründe. Folgend ein Beispiel:

$ man uname
UNAME(1)             User Commands            UNAME(1)
NAME
   uname - print system information
SYNOPSIS
   uname [OPTION]...
DESCRIPTION
   Print certain system information.  With no OPTION, same as -s.
   -a, --all
      print  all information, in the following order, except omit -p
      and -i if unknown:
   -s, --kernel-name
      print the kernel name
   -n, --nodename
      print the network node hostname
   -r, --kernel-release
      print the kernel release
   -v, --kernel-version
      print the kernel version
   -m, --machine
      print the machine hardware name
   -p, --processor
      print the processor type (non-portable)
   -i, --hardware-platform
      print the hardware platform (non-portable)
   -o, --operating-system
      print the operating system
   --help display this help and exit
   --version
      output version information and exit
AUTHOR
   Written by David MacKenzie.
REPORTING BUGS
   GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
   Report uname translation bugs to
   <http://translationproject.org/team/>
COPYRIGHT
   Copyright©2017 Free Software Foundation, Inc. License  GPLv3+: GNU
   GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
   This is free software: you are free to change and redistribute it.
   There is NO WARRANTY, to the extent permitted by law.
SEE ALSO
   arch(1), uname(2)
   Full documentation at: <http://www.gnu.org/software/coreutils/uname>
   or available locally via: info '(coreutils) uname invocation'
GNU coreutils 8.28       January 2018             UNAME(1)

man funktioniert nur, wenn Sie einen exakten Befehlsnamen übergeben. Wenn Sie sich jedoch über den Namen des gewünschten Befehls nicht sicher sind, können Sie den Befehl apropos verwenden, um die Namen und Beschreibungen der man-Seiten zu durchsuchen. Angenommen, Sie können sich nicht daran erinnern, dass uname der Befehl ist, welcher die aktuelle Linux-Kernelversion liefert, dann können Sie das Wort kernel als Parameter an apropros übergeben. Die resultierende Ausgabe wird wahrscheinlich deutlich umfangreicher sein, aber neben anderen Zeilen wird diese das Folgende enthalten:

$ apropos kernel
systemd-udevd-kernel.socket (8) - Device event managing daemon
uname (2)            - get name and information about current kernel
urandom (4)          - kernel random number source devices

Wenn Sie nicht die vollständige Dokumentation eines Befehls benötigen, können Sie mit type schnell grundlegende Informationen über einen Befehl erhalten. Das folgende Beispiel verwendet type, um vier verschiedene Befehle gleichzeitig abzufragen. Die Ergebnisse zeigen uns, dass cp (“copy”) ein Programm ist, das in /bin/cp abgelegt ist, und dass kill (den Zustand eines laufenden Prozesses ändernd) eine eingebaute Funktion darstellt - was bedeutet, dass es ein Teil der Bash-Shell selbst ist:

$ type uname cp kill which
uname is hashed (/bin/uname)
cp is /bin/cp
kill is a shell builtin
which is /usr/bin/which

Beachten Sie, dass uname nicht nur ein regulärer Binärbefehl wie cp ist, sondern gehasht ist. Das liegt daran, dass Frank vor Kurzem uname benutzt hat. Um die Effizienz des Systems zu erhöhen, wurde dieser Pfad zu einer Hashtabelle hinzugefügt, damit dieser beim nächsten Aufruf leichter zugänglich ist. Nach einem Systemstart würde Frank in der Ausgabe von type uname feststellen, dass uname wieder als reguläres Binärprogramm aufgeführt wird.

Note

Ein schnellerer Weg, die Hashtabelle zu leeren, ist der Befehl hash -d.

Manchmal - insbesondere bei der Arbeit mit automatisierten Skripten - benötigen Sie eine simplere Informationsquelle. Der Befehl which, den der vorherige Befehl type für uns zurückverfolgt hat, liefert nichts anderes als den absoluten Ort eines Befehls. Im folgendem Beispiel finden Sie sowohl den Befehl uname als auch den Befehl which.

$ which uname which
/bin/uname
/usr/bin/which
Note

Wenn Sie Informationen über “integrierte” Befehle anzeigen möchten, können Sie den Befehl help verwenden.

Anzeigen der Befehlshistorie

Sie werden oft sorgfältig die richtige Verwendung für ein Kommando recherchieren und es zusammen mit einer komplizierten Reihe von Optionen und Argumenten ausführen. Aber was passiert ein paar Wochen später, wenn Sie den gleichen Befehl mit den gleichen Optionen und Argumenten erneut ausführen müssen, sich aber nicht mehr an die Details erinnern können? Anstatt Ihre Nachforschungen wieder von vorne beginnen zu lassen, werden Sie in der Lage sein, den ursprünglichen Befehl mit Hilfe der “Historie” wiederzufinden.

Wenn Sie history eintippen, erhalten Sie die zuletzt ausgeführten Befehle zurück, wobei der zuletzt ausgeführte Befehl als letztes angezeigt wird. Sie können diese Befehle leicht durchsuchen, indem Sie dem Befehl grep eine bestimmte Zeichenfolge per Pipeline zuweisen. In diesem Beispiel wird nach jedem Befehl gesucht, der den Text bash_history enthält:

$ history | grep bash_history
1605 sudo find /home -name ".bash_history" | xargs grep sudo

Hier sehen Sie, wie ein einzelner Befehl zusammen mit seiner Nummerierung (1605) ausgegeben wurde.

Und wo wir gerade von bash_history sprechen: Das ist eigentlich der Name einer versteckten Datei, welche Sie im Homeverzeichnis Ihres Benutzers finden sollten. Da es sich um eine versteckte Datei handelt (als solche gekennzeichnet durch den Punkt, der dem Dateinamen vorangestellt ist), wird sie nur sichtbar, wenn Sie den Verzeichnisinhalt mit ls plus dem Argument -a auflisten:

$ ls /home/frank
newfile
$ ls -a /home/frank
.  ..  .bash_history  .bash_logout  .bashrc  .profile  .ssh  newfile

Was steht in der Datei .bash_history? Schauen Sie selbst: Sie werden Hunderte und Aberhunderte Ihrer zuletzt eingegebenen Befehle sehen. Möglicherweise sind Sie jedoch zu überrascht festzustellen, dass einige Ihrer letzten Befehle fehlen. Das liegt daran, dass diese Befehle zwar direkt zur dynamischen history-Datenbank hinzugefügt werden, aber die neuesten Ergänzungen zu Ihrer Befehlshistorie erst in die .bash_history-Datei geschrieben werden, nachdem die Sitzung beendet wurde.

Sie können den Inhalt von history nutzen, um Ihre Kommandozeilenerfahrung mit den Auf- und Ab-Pfeiltasten Ihrer Tastatur deutlich schneller und effizienter zu gestalten. Wenn Sie die Aufwärts-Pfeiltaste mehrmals drücken, wird die Befehlszeile mit dem zuletzt erfolgreich ausgeführten Befehl ergänzt. Wenn Sie zu dem Befehl gelangen, den Sie ein zweites Mal ausführen möchten, können Sie ihn durch Drücken der Eingabetaste erneut ausführen. Auf diese Weise ist es einfach, Befehle während einer Shellsitzung wiederholt aufzurufen und, falls gewünscht, zu ändern.

Geführte Übungen

  1. Benutzen Sie das man-System, um herauszufinden, wie apropos angewiesen werden kann, lediglich eine kurze Übersicht zur Benutzung anzuzeigen und sich anschließend zu beenden.

  2. Benutzen Sie das man-System, um zu herauszufinden, unter welcher Copyright-Lizenz der grep-Befehl steht.

Offene Übungen

  1. Identifizieren Sie die Hardwarearchitektur und die Linux-Kernelversion, welche Ihr Computer verwendet, in einem leicht lesbaren Ausgabeformat.

  2. Geben Sie die letzten zwanzig Zeilen der dynamischen history-Datenbank und der .bash_history-Datei aus, um diese zu vergleichen.

  3. Verwenden Sie den Befehl apropos, um die man-Seite zu identifizieren, auf der Sie den Befehl finden, um die Größe eines angeschlossenen physischen Blockgerätes in Bytes statt in Megabytes oder Gigabytes anzuzeigen.

Zusammenfassung

In dieser Lektion haben Sie gelernt:

  • Wie Sie Informationen über den Speicherort Ihres Dateisystems und den Softwarestack des Betriebssystems erhalten.

  • Wie Sie Hilfe zur Verwendung von Befehlen erhalten.

  • Wie man den Ort des Dateisystems und den Typ von Befehlsbinärdateien identifiziert.

  • Wie man zuvor ausgeführte Befehle findet und wiederverwendet.

Die folgenden Befehle wurden in dieser Lektion besprochen:

pwd

Zeigt den Pfad des aktuellen Arbeitsverzeichnis an.

uname

Zeigt unter anderem die Hardwarearchitektur Ihres Systems, die Linux-Kernelversion, die Distribution und die Version der verwendeten Distribution an.

man

Liefert Zugriff auf Hilfedateien, welche die Befehlsverwendung dokumentieren.

type

Zeigt den Speicherort und den Typ für einen oder mehrere Befehle an.

which

Liefert den absoluten Dateisystempfad für einen oder mehrere Befehle.

history

Dient zur Anzeige oder Wiederverwendung von Befehlen, welche zuvor ausgeführt wurden.

Lösungen zu den geführten Übungen

  1. Benutzen Sie das man-System, um herauszufinden, wie apropos angewiesen werden kann, lediglich eine kurze Übersicht zur Benutzung anzuzeigen und sich anschließend zu beenden.

    Führen Sie man apropos aus und scrollen Sie durch den Abschnitt “Options”, bis Sie zum Abschnitt --usage gelangen.

  2. Benutzen Sie das man-System, um zu herauszufinden, unter welcher Copyright-Lizenz der Befehl grep steht.

    Führen Sie man grep aus und scrollen Sie nach unten zum Abschnitt “Copyright” des Dokuments. Beachten Sie, dass das Programm ein Copyright der Free Software Foundation verwendet.

Lösungen zu den offenen Übungen

  1. Identifizieren Sie die Hardwarearchitektur und die Linux-Kernelversion, welche Ihr Computer verwendet, in einem leicht lesbaren Ausgabeformat.

    Führen Sie man uname aus, lesen Sie sich den Abschnitt “Description” durch und identifizieren Sie jene Befehlsargumente, welche nur die gewünschten Ergebnisse anzeigen. Beachten Sie, wie -v die Kernelversion und -i die Hardwareplattform ausgibt.

    $ man uname
    $ uname -v
    $ uname -i
  2. Geben Sie die letzten zwanzig Zeilen der dynamischen history-Datenbank und der .bash_history-Datei aus, um diese zu vergleichen.

    $ history 20
    $ tail -n 20 .bash_history
  3. Verwenden Sie den Befehl apropos, um die man-Seite zu identifizieren, auf der Sie den Befehl finden, um die Größe eines angeschlossenen physischen Blockgerätes in Bytes statt in Megabytes oder Gigabytes anzuzeigen.

    Eine Möglichkeit besteht darin, apropos mit der Zeichenkette block auszuführen, die Ergebnisse zu durchsuchen und lsblk als Befehl zur Auflistung von Blockgeräten zu identifizieren (welches das wahrscheinlichste Werkzeug für unsere Bedürfnisse darstellt). Anschließend sollte man lsblk ausgeführt werden und der Abschnitt “Description” durchscrollt werden. Danach kann man so die Option -b herausfiltern, welche die Gerätegröße in Bytes anzeigt. Führen Sie schließlich lsblk -b aus, um sich das Ergebnis ausgeben zu lassen.

    $ apropos block
    $ man lsblk
    $ lsblk -b

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

Nächste Lektion

103.1 Auf der Befehlszeile arbeiten (103.1 Lektion 2)

Nächste Lektion lesen

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

LPI ist eine Non-Profit-Organisation.

© 2023 Linux Professional Institute (LPI) ist eine globale Organisation für Zertifizierungsstandards und zur Karriereplanung für Open-Source-Profis. Mit mehr als 200.000 Zertifikatsinhabern ist es die weltweit erste und größte herstellerneutrale Linux- und Open-Source-Zertifizierungsstelle. LPI verfügt über zertifizierte Fachleute in über 180 Ländern, bietet Prüfungen in mehreren Sprachen an und hat Hunderte von Trainingspartnern.

Unser Ziel ist es, wirtschaftliche und kreative Möglichkeiten für alle zu ermöglichen, indem wir Open-Source-Wissens- und Kompetenzzertifizierungen allgemein zugänglich machen.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Kontaktieren Sie uns
  • Datenschutz und Cookie-Richtlinien

Haben Sie einen Fehler entdeckt oder möchten Sie helfen, diese Seite zu verbessern? Lassen Sie es uns wissen.

© 1999–2023 The Linux Professional Institute Inc. Alle Rechte vorbehalten.