Know-how für die Kommandozeile

Aus EasyLinux 04/2015

Know-how für die Kommandozeile

Shell-Tipps

Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sie manche Aufgabe schneller bewältigen als in grafischen Programmen. Wir stellen interessante Anwendungen und Aufrufparameter vor, um auch Einsteiger zu einem Ausflug in die Shell zu ermutigen.

Tipp: Eingabe in der Shell korrigieren

Die Bash kennt einige Tastenkürzel, die bei Vertippern helfen. So löscht [Strg]+[U] beispielsweise alle Zeichen rückwärts bis zum Anfang der Zeile, was den Shortcut ideal macht, um falsch eingegebene Kennwörter zu korrigieren. Melden Sie sich auf einer der virtuellen Konsolen ([Strg]+[Alt]+[F1],[Strg]+[Alt]+[F2] usw.) oder per SSH auf einem entfernten Rechner an, fragt das System Sie (bei der lokalen Anmeldung nach Eingabe des Benutzernamens) nach Ihrem Passwort (Abbildung 1). Was Sie hier tippen, sehen Sie nicht. Es erscheinen auch keine Sternchen oder Kreise als visuelles Feedback. Wenn Sie also glauben, dass Sie sich vertippt haben, müssen Sie nicht auf die Meldung Login incorrect warten, sondern drücken einfach [Strg]+[U] und tippen das Kennwort noch einmal.

Abbildung 1: Ein visuelles Feedback für die Passworteingabe erhalten Sie weder auf der Konsole noch bei SSH-Verbindungen.

Abbildung 1: Ein visuelles Feedback für die Passworteingabe erhalten Sie weder auf der Konsole noch bei SSH-Verbindungen.

Auch in die andere Richtung können Sie zeilenweise aufräumen: Drücken Sie [Strg]+[K], um von der aktuellen Position aus alle Zeichen bis zum Zeilenende zu löschen. Wortweises Entfernen kennt die Bash ebenfalls: [Strg]+[W] löscht das Wort links vom Cursor, [Alt]+[D] erwischt das rechte.

Praktisch: Alle per [Strg]+[U],[Strg]+[K],[Strg]+[W] und [Alt]+[D] gelöschten Eingaben schneidet die Bash aus, das heißt, sie landen in der Zwischenablage. Die Tastenkombination [Strg]+[Y] fügt deren Inhalt an der aktuellen Cursorposition ein.

Tipp: Zeitstempel für die Bash-History

Die Bash “merkt” sich Befehle, die Sie eingeben. Früher eingegebene Kommandos holen Sie zurück auf den Schirm, indem Sie einmal oder mehrmals [Pfeil auf] drücken, und mit [Pfeil ab] blättern Sie wieder nach vorne. Was sich alles in der “History” genannten Liste alter Kommandos befindet, erfahren Sie über das gleichnamige Kommando:

$ history
 1  sudo apt-get update
 2  apt-cache show unity
 3  sudo apt-get upgrade
 4  less /var/log/Xorg.0.log
 5  sudo apt-get install virtualbox-guest-dkms
[...]

Soll die Bash zusätzlich den Zeitpunkt der Befehle notieren, können Sie das durch Setzen der UmgebungsvariablenHISTTIMEFORMAT erreichen. Für diese definieren Sie, welche Angaben Sie sehen möchten. Die Tabelle Zeitstempel-Kürzel zeigt die erlaubten Kürzel.

Zeitstempel-Kürzel

Kürzel Erklärung
%a Wochentag (verkürzte Form), z. B. Mi oder Do
%A Wochentag (ausgeschrieben), z. B. Mittwoch oder Donnerstag
%d Tag als zweistellige Dezimalzahl (01, 02 bis 31)
%b Monat (verkürzte Form), z. B. Sep oder Aug
%B Monat (ausgeschrieben), z. B. September oder August
%m Monat als zweistellige Dezimalzahl (01 bis 12)
%y Jahr als zweistellige Dezimalzahl ohne Jahrhundert, z. B. 15
%Y Jahr als zweistellige Dezimalzahl mit Jahrhundert, z. B. 2015
%H Stunde als zweistellige Dezimalzahl (24-Stunden-Format, 00 bis 23)
%M Minute als zweistellige Dezimalzahl (00 bis 59)
%S Sekunden als zweistellige Dezimalzahl (00 bis 60; eigentlich müsste es 00 bis 59 sein, es gibt aber Schaltsekunden)
%R Uhrzeit im 24-Stunden-Format ohne Sekunden (z. B. 13:49), entspricht %H:%M
%T Uhrzeit im 24-Stunden-Format mit Sekunden (z. B. 13:49:23), entspricht %H:%M:%S
%D entspricht %m/%d/%y, also z. B. 09/23/15
%F entspricht %Y-%m-%d, also z. B. 2015-09-23

In Listing 1 sehen Sie, wie Sie den Zeitstempel mit den genannten Kürzeln so formatieren, dass Datum und Uhrzeit in einer übersichtlichen und nicht zu langen Schreibweise erscheinen.

Der dort verwendete export-Befehl setzt die Variable nur für die aktuelle Shell-Sitzung. Um die History dauerhaft mit diesen Informationen zu bestücken, tragen Sie ihn in die Datei ~/.bashrc ein, melden sich ab und wieder an oder geben alternativ in bereits gestarteten Shells source ~/.bashrc ein, um die veränderte Konfiguration neu einzulesen.

Listing 1

Umgebungsvariable “HISTTIMEFORMAT” setzen

$ export HISTTIMEFORMAT="%a %b %Y %T "
$ history
 1  Mi Sep 2015 13:23:01 sudo apt-get update
 2  Mi Sep 2015 13:49:10 apt-cache show unity
 3  Mi Sep 2015 13:53:45 sudo apt-get upgrade
 4  Mi Sep 2015 13:55:36 less /var/log/Xorg.0.log
 5  Mi Sep 2015 14:10:26 sudo apt-get install virtualbox-guest-dkms
[...]

Tipp: Größe der Bash-History verändern

Die Anzahl der Befehle in der History ist ebenfalls in einer Umgebungsvariablen definiert; je nach Distribution sind in HISTSIZE 500 oder 1000 Kommandos vorgesehen. Unter Ubuntu 15.04 sind es beispielsweise 1000 Einträge:

$ echo $HISTSIZE
1000

Reicht das nicht aus, können Sie selbst die Länge bestimmen. Dazu verwenden Sie wieder einen export-Aufruf, ähnlich wie in Listing 1. Dieses Mal definieren Sie HISTSIZE neu:

$ export HISTSIZE=4000
$ echo $HISTSIZE
4000

Genau wie im vorigen Tipp gilt, dass die Änderung nur in der aktuellen Shell greift. Um sie dauerhaft zu machen, gehört der export-Befehl in die Datei ~/.bashrc.

Tipp: Prozesse aus “top” heraus beenden

Der Prozessmonitor top zeigt Informationen zu laufenden Programmen, zur Auslastung von CPU und Arbeitsspeicher, die Prozess-IDs und mehr an. Nach dem Start über den gleichnamigen Befehl sehen Sie eine Tabelle, die ihre Anzeige regelmäßig alle drei Sekunden aktualisiert. Die meisten Anwender nutzen top, um Programme zu identifizieren, die besonders viel Speicher belegen, und kümmern sich um diese dann mit einem Kommando wie kill oder renice[1]. Dazu müssen Sie nicht zwingend ein zweites Terminal öffnen oder top anhalten: Sie können sämtliche kill-Signale auch im laufenden Betrieb absetzen.

Zur Erinnerung: kill -l blendet eine Liste aller bekannten Signale ein. In der Regel benötigen Sie von diesen SIGSTOP (kill -19 oder kill -STOP), um einen Prozess anzuhalten, SIGCONT (kill -18 bzw. kill -CONT), um ihn wieder fortzusetzen, SIGTERM (kill -15, kill -TERM), um ihn “freundlich” zu beenden (das heißt, die Anwendung erhält noch die Chance, offene Dateien zu schließen), oder SIGKILL (kill -9, kill -KILL), um den Prozess sofort und ohne Vorwarnung abzubrechen. Dahinter steht jeweils die eindeutige PID (Prozessnummer).

Um nun eines der Signale aus top heraus zu senden, suchen Sie zunächst in der Anzeige nach der Prozess-ID (PID), die Sie in der ersten Spalte finden. Drücken Sie [U] und geben Sie einen Benutzernamen ein, um die Anzeige auf Prozesse eines bestimmten Anwenders zu beschränken. Haben Sie die PID gefunden, drücken Sie [K] – über der Tabelle erscheint dann die Aufforderung:

PID to signal/kill [default pid = 1466]

top fragt Sie also hier nach der Prozessnummer, die Sie einfach eintippen können (Abbildung 2, blauer Rahmen). (Geben Sie keine PID ein, sondern drücken direkt [Eingabe], dann übernimmt top die hinter default pid= angezeigte PID des aktuell ganz oben in der Liste stehenden Prozesses.)

Nachdem Sie mit [Eingabe] bestätigt haben, gilt es, die Art des Signals auszuwählen. In der Voreinstellung schickt top das Signal SIGTERM (15). Sie können hier aber auch eine andere Zahl oder den Signalnamen eingeben, z. B. 19, 9, KILL oder STOP.

Abbildung 2: Drücken Sie im Prozessmonitor "top" die Taste <code srcset=

K, können Sie Signale an Prozesse schicken.” width=”300″ height=”192″ /> Abbildung 2: Drücken Sie im Prozessmonitor “top” die Taste K, können Sie Signale an Prozesse schicken.

Tipp: Manpages mit Farbe dank “most”

Die Linux-Handbuchseiten (Manpages) präsentieren sich normalerweise ohne farbliche Hervorhebungen in Schwarz-Weiß bzw. den Terminalfarben. Zwar sind die Zwischenüberschriften, Befehle und Optionen durch Einrückungen abgesetzt, so mancher Nutzer wünscht sich aber Syntax-Highlighting, wenn er man aufruft. Die nächste Schritt-für-Schritt-Anleitung zeigt, wie’s geht:

  1. Installieren Sie über den Paketmanager Ihrer Distribution das Paket most, das bei OpenSuse und Ubuntu im Haupt-Repository zu finden ist.
  2. Erklären Sie das Tool zu Ihrem Standard-Pager-Programm und lösen Sie damit less ab, das bisher die Manpages dargestellt hat:

    export PAGER=most
  3. Rufen Sie nun eine Manpage Ihrer Wahl auf, z. B. man ls, und Sie sollten Befehle und Parameter farblich hervorgehoben sehen (Abbildung 3).

    Abbildung 3: Das kleine Tool "most" bringt Farbe in den grauen Manpage-Alltag.

    Abbildung 3: Das kleine Tool “most” bringt Farbe in den grauen Manpage-Alltag.

Beachten Sie, dass die so gesetzte Umgebungsvariable PAGER nur in der aktuellen Shell-Sitzung gilt. Tragen Sie den export-Befehl daher in die Datei ~/.bashrc ein, wenn Sie most dauerhaft als Pager verwenden möchten.

Tipp: Eigene Farben für “most” definieren

In der Voreinstellung färbt most beim Anzeigen von Manpages die Abschnitte und Befehle rot ein, Parameter erscheinen in Grün, den einfachen Text lässt das Tool in Ruhe, und die most-Statuszeile am unteren Fensterrand erscheint in Blau mit gelber Schrift. Wer ein hellgelbes Terminal mit schwarzer Schrift, wie in Abbildung 3 zu sehen, verwendet, möchte vielleicht die hellgrüne Schrift durch eine andere Farbe ersetzen, und auch die Statuszeile ist nicht ganz optimal. Um die farblichen Hervorhebungen anzupassen, benötigen Sie eine Konfigurationsdatei für most, die im eigenen Home-Verzeichnis liegt und auf den Namen .mostrc hört.

Am leichtesten erstellen Sie diese, indem Sie die systemweite Vorlage kopieren. Unter OpenSuse liegt diese unter /usr/share/doc/packages/most/most.rc, Ubuntu bewahrt sie als /usr/share/doc/most/most.rc auf. Auf der Shell kopieren Sie die Vorlage mit dem folgenden Befehl (Ubuntu):

cp /usr/share/doc/most/most.rc ~/.mostrc

OpenSuse-Anwender passen den Pfad im Kommando entsprechend an. Bearbeiten Sie die neue Datei ~/.mostrc in einem Texteditor Ihrer Wahl. Die Farben sind ganz am Anfang im Abschnitt Color settings konfiguriert:

color normal lightgray black
color status yellow blue
color underline brightgreen black
color overstrike brightred black

Wie Sie sehen, können Sie nicht besonders viel einstellen: normal bezieht sich auf den normalen Text, status auf die most-Statuszeile, underline und overstrike sind im Fall von Manpages unterschiedliche Hervorhebungsmodi (Befehle und Parameter). Jede Zeile definiert außerdem die Vorder- und die Hintergrundfarbe:

color normal lightgray black

bedeutet also, dass der normale Text in Hellgrau auf schwarzem Untergrund steht.

Sie können nun in den Farbtopf greifen und eigene Nuancen bestimmen. Abbildung 4 zeigt im Hintergrund den Texteditor GEdit und die Konfigurationsdatei ~/.mostrc. Die Hervorhebung für normalen Text ist deaktiviert, die Statuszeile zeigt hellgraue Schrift auf violettem Hintergrund, die Befehle und Zwischenüberschriften sind nach wie vor rot, und die Optionen türkis. Als Hintergrundfarbe ist für die beiden letzten Zeilen jeweils default definiert, was bedeutet, dass most die Terminaleinstellung nicht überschreibt.

Abbildung 4: Die farblichen Hervorhebungen des Pagers "most" bestimmen Sie in der persönlichen Einrichtungsdatei "~/.mostrc".

Abbildung 4: Die farblichen Hervorhebungen des Pagers “most” bestimmen Sie in der persönlichen Einrichtungsdatei “~/.mostrc”.

Glossar

Umgebungsvariablen

Diese konfigurierbaren Variablen enthalten Einstellungen für Programme, Pfade zu Anwendungen usw. Die Shell weist vielen dieser Variablen beim Start Werte zu. Einige systemweite Einstellungen finden Sie in der Datei /etc/profile, persönliche gehören in die Datei ~/.bashrc oder ~/.profile.

Infos

[1] Artikel zu top, kill, renice & Co: Hans-Geog Eßer, “Prozesse im Griff”, EasyLinux 04/2008, S. 122 ff., http://www.easylinux.de/2008/04/122-guru/

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
EasyLinux 04/2015 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben