Linux Mint/Ubuntu Tutorial: Terminal für Anfänger [Neu]
Inhaltsverzeichnis:
- Verwenden des Befehls "
history
und derhistory
- Verlaufsliste speichern
- Verlauf löschen
- Verlaufsverhalten ändern
- Fazit
Im Folgenden wird der Befehl
history
, mit dem Sie eine Liste der zuvor ausgeführten Befehle anzeigen, die Liste durchsuchen und die Verlaufsdatei bearbeiten können.
Verwenden des Befehls "
history
und der
history
history
ist eine eingebaute Shell, und ihr Verhalten kann sich von Shell zu Shell geringfügig unterscheiden. Wir werden die in Bash eingebaute Version der
history
.
In seiner einfachsten Form zeigt der Befehl
history
beim Aufrufen ohne Option oder Argument die gesamte Verlaufsliste mit Zeilennummern an.
history
… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history
Wenn Sie
!n
eingeben, wird der n-te Befehl aus der Verlaufsliste ausgeführt, und
!-n
der Befehl wird in n Zeilen zurückgesetzt. Im folgenden Beispiel führen wir den Befehl in Zeile
467
:
!467
Eine andere Möglichkeit, einen Befehl auszuführen, ist die Verwendung der
!word
Erweiterung.
word
bezieht sich auf den letzten Befehl, der mit 'wort' beginnt.
In der Regel werden im
history
viele Ausgabezeilen angezeigt, die nicht auf den Bildschirm passen. Um die Ausgabe seitenweise anzuzeigen, leiten Sie sie wie folgt an ein Pager-Programm
more
:
history | less
Übergeben Sie die Zahl als Argument an den Befehl, um die letzten
n
Zeilen anzuzeigen. Um beispielsweise nur die letzten fünf Zeilen der Verlaufsliste anzuzeigen, geben Sie Folgendes ein:
history -5
Verwenden Sie die
up
und Abwärtspfeiltasten, um durch die Einträge in der Liste zu navigieren. Wenn der gesuchte Befehl angezeigt wird, drücken Sie die
Enter
, um ihn auszuführen.
Typ
!!
So führen Sie den vorherigen Befehl aus:
!!
Dies ist besonders nützlich, wenn Sie vergessen haben, einen Befehl mit
sudo
zu verknüpfen, und statt den Befehl erneut einzugeben, können Sie Folgendes eingeben:
sudo !!
!-1
ist dasselbe wie
!!
und führt den letzten Befehl aus der Verlaufsliste aus
!-2
Sekunden vor dem letzten usw.
^word1^word2^
Erweiterung
^word1^word2^
können Sie den letzten Befehl erneut ausführen und "word1" durch "word2" ersetzen. Wenn Sie versehentlich
sduo command
anstelle des
sudo command
eingegeben
sduo command
, können Sie den Befehl mit folgendem Wort wiederholen:
^sduo^sudo^
Verwenden Sie den Befehl
grep
, um die Ausgabe zu filtern. Um beispielsweise alle Befehle einschließlich "nano" anzuzeigen, würden Sie Folgendes ausführen:
history | grep nano
302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh
Wenn Sie
nano setup.py
Befehl
nano setup.py
erneut ausführen möchten, geben Sie einfach
nano setup.py
:
!356
Eine andere Möglichkeit zum Durchsuchen des Befehlsverlaufs ist das Drücken von
Ctrl-R
. Die Eingabeaufforderung ändert sich wie folgt und Sie können nach einem zuvor ausgeführten Befehl suchen.
(reverse-i-search)`':
Die Shell zeigt eine übereinstimmende Linie an. Um zum nächsten passenden Vorschlag zu gelangen, drücken Sie erneut
Ctrl-R
.
Weitere Informationen zu Verlaufserweiterungen, Modifizierern und Bezeichnern finden Sie im Bash-Handbuch.
Verlaufsliste speichern
Standardmäßig liest Bash beim Starten einer neuen Sitzung die Verlaufsliste aus der Datei
.bash_history
. Die Liste der Befehle, die in der aktuellen Sitzung ausgeführt werden, wird gespeichert und in der Datei gespeichert, wenn die Sitzung geschlossen wird.
Mit der Option
-a
können Sie die aktuelle Sitzungsverlaufsliste in der Datei
.bash_history
speichern:
history -a
Die Option
-w
schreibt die vollständige Verlaufsliste in die Verlaufsdatei.
Verlauf löschen
Mit dem Befehl
history
können Sie die gesamte Verlaufsliste löschen oder bestimmte Teile entfernen.
Verwenden Sie zum Löschen der Verlaufsliste die Option
-c
:
history -c
Verwenden Sie die Option
-d
um eine bestimmte Linie oder Linien zwischen einer Start- und einer Endposition aus der Verlaufsliste zu löschen.
Um beispielsweise die Zeilen zwischen 365 und 375 (einschließlich dieser Zeilen) zu entfernen, geben Sie Folgendes ein:
history -d 365 375
Wenn eine negative Ganzzahl verwendet wird, werden die Zeilen ab dem Ende der Verlaufsliste zurückgezählt.
Die obigen Befehle löschen die Verlaufsliste, die sich im Speicher befindet, aber keine Einträge aus der Datei
.bash_history
auf der Festplatte entfernt. Um die Datei zu löschen, müssen Sie die Verlaufsliste in die Datei schreiben:
Verlaufsverhalten ändern
Das Verhalten des Bash-Verlaufs kann mithilfe verschiedener Umgebungsvariablen definiert werden.
~/.bashrc
beim Ändern des Verlaufsverhaltens die Variablen in
~/.bashrc
oder in einer anderen Konfigurationsdatei fest, die beim
~/.bashrc
des Benutzers geladen wird.
Standardmäßig behält Bash 500 Zeilen in der Befehlsverlaufsliste. Mit der Variablen
HISTSIZE
können Sie diesen Wert ändern.
.bashrc
Ihrer
.bashrc
Datei die folgende Zeile hinzu, um sie auf 10000
.bashrc
:
HISTSIZE=10000
Die Variable
HISTCONTROL
akzeptiert eine durch Doppelpunkte getrennte Liste von Werten, die definieren, wie die Befehle in der Verlaufsliste gespeichert werden:
-
ignorespace
- Befehle, die mit Leerzeichen beginnen, werden nicht in der Verlaufsliste gespeichert.ignoredups
- doppelte Befehle werden nicht gespeichert.ignoreboth
- ist eine Abkürzung, die sowohlignorespace
als auchignoredups
.
HISTCONTROL=ignoreboth
Wenn die Variable
HISTTIMEFORMAT
ist, stellt Bash dem Befehl in jeder Zeile einen Ausführungszeitstempel voran.
Wenn Sie beispielsweise Folgendes festlegen:
HISTTIMEFORMAT="%F %T: "
Der Verlauf wird im folgenden Format angezeigt:
413 2019-10-27 21:13:07: sudo nano /etc/hosts
Fazit
Der
history
zeigt eine Liste der zuvor ausgeführten Befehle an. Sie können beispielsweise den Verlauf verwenden, um einen langen Befehl anzuzeigen, den Sie zuvor verwendet haben und an den Sie sich nicht erinnern können.
Befehl Chgrp unter Linux (Gruppe wechseln)
In Linux ist jede Datei einem Eigentümer und einer Gruppe zugeordnet und verfügt über Berechtigungen, die festlegen, welche Benutzer die Datei lesen, schreiben oder ausführen dürfen. Der Befehl chgrpc ändert die Gruppeneigentümerschaft für bestimmte Dateien.
Diff Befehl unter Linux
diff ist ein Befehlszeilenprogramm, mit dem Sie zwei Dateien zeilenweise vergleichen können. Es kann auch den Inhalt von Verzeichnissen vergleichen.
Befehl Dmesg unter Linux
Das Befehlszeilendienstprogramm dmesg druckt und steuert den Kernel-Ringpuffer. Es ist nützlich, um Kernel-Boot-Meldungen zu untersuchen und Hardware-Probleme zu beheben.