Archiv der Kategorie: Sonstiges

linuxlogo

Mit dem Programm linuxlogo lässt sich in der Konsole ein ASCII-Logo und Systeminformationen darstellen. Einfach linuxlogo installieren, dann in die .bashrc im home-Verzeichnis ans Ende linuxlogo schreiben und schon begrüßt einen ein die Kosnole mit Informationen.

awk

. Bawk Ausdruck { Anweisungen } Datei

Ausdruck

Der erste Parameter ist ein regulärer Ausdruck.

Anweisungen

Den zweiten Parameter stellen die awk-Anweisungen (anzugeben in geschweiften Klammern) dar. Diese Anweisungen legen fest, welche Manipulationen am Input-Stream durchgeführt werden sollen.

Datei

Der Parameter Datei legt die Datei fest, aus der der Input-Stream gelesen werden soll. Ohne Angabe liest awk von der Standardeingabe oder aus einer Pipe.

Beispiele

Beispiel 1: 2. Spalte ausgeben (z. B. Prozess-ID bei grep)

Beispiel 2: alle Zeilen einer Datei mit dem Buchstaben „n“ ausgeben:

Tastaturbefehle (BASH)

Wort-Befehle

Esc b Ein Wort zurück bewegen
Esc f Ein Wort vor bewegen
Strg-W Das Wort links vom Cursor löschen
Esc d Das Wort unter dem Cursor löschen
Strg-Y Das zuletzt gelöschte Wort zurückholen (»yank«)

Zeilenbefehle

Strg-A Cursor am Zeilenanfang positionieren
Strg-E Cursor am Zeilenende positionieren
Strg-K Vom Cursor bis zum Zeilenende alle Zeichen löschen

Diverse andere Befehle

Strg-T Vertauscht das unter dem Cursor stehende Zeichen mit seinem linken Nachbarn
Strg-U Löscht alle Zeichen vom Zeilenanfang bis zum Cursor
Strg-V Das nächste eingegebene Zeichen wird maskiert, d. h. seiner besonderen Bedeutung beraubt
Strg-C Unterbricht das gerade laufende Kommando
Strg-S Bildschirmausgabe anhalten
Strg-Q Gehaltene Bildschirmausgabe fortsetzen

bc

Führt mathematische Berechnungen in der Konsole aus. Der zu berechnende Ausdruck wird über die Standardeingabe eingelesen und das Ergebnis über die Standardausgabe ausgegeben.

Über die Option -l wird die Mathematik-Library geladen. Diese ermöglicht Berechnungen mit Winkelfunktionen.

 +, -, *, /, ^ entsprechend der Mathematischen Bedeutung
 – wert liefert den negativen Wert von „wert“
 ++ var, — var die Variable wird um 1 erhöht/erniedrigt und dann das Ergebnis ausgegeben
 var ++, var — die Variable wird als Ergebnis ausgegeben und dann um 1 erhöht/erniedrigt
 <, <=, >, >=, ==, != Vergleiche (liefert 1 oder 0)
 !wert  liefert 1, wenn „wert=0“ ist
 &&  liefert 1, wenn zwei Ausdrücke nicht 0 sind
 ||  liefert 1, wenn keiner der Ausdrücke 0 ist

Für folgende Berechnungen muss die Mathematik-Library mit der Option -l geladen werden:

 s (x)  sin (x) in rad
 c (x)  cos (x) in rad
 a (x)  arctan(x) in rad
 l (x)  ln (x)
 e (x)  e-Funktion
 j (x)  Bessel-Funktion

Beispiele:
echo "(5+3)/2 | bcecho "s (64.4)" | bc -l
mit scale abgetrennt durch ein Semikolon kann die Anzahl der Nachkommastellen, auf die gerundet wird, angegeben werden:
echo "scale=1; s (64.4)" | bc -l

read

Liest eine Zeichenkette von der Standardeingabe ein.
-n Anzahl der einzulesenden Zeichen
-s x Wartet maximal x Sekunden auf die Eingabe
-p Text gibt „Text“ vor dem Einlesen auf der Standardausgabe aus

Quoting

Die folgenden Zeichen haben eine spezielle Bedeutung innerhalb der Shell:

 ; Befehls-Trennzeichen
 & Hintergrund-Verarbeitung
 ( ) Befehls-Gruppierung
 | Pipe
 <>& Umlenkungssymbole
 *?[]~+-@! Meta-Zeichen für Dateinamen
 ` ` (Backticks) Befehls-Substitution (Die Backticks erhält man durch [shift] und die Taste
neben dem Backspace.
 $ Variablen-Substitution
 [newline] [space] [tab] Wort-Trennzeichen

Die folgenden Zeichen können zum Quoten verwendet werden:

 “ „ Anführungszeichen Alles zwischen diesen Zeichen ist buchstabengetreu zu interpretieren. Ausnahmen sind folgende Zeichen, die ihre spezielle Bedeutung
beibehalten: $ ` „
 ‚ ‚ Ticks Alles zwischen diesen Zeichen wird wörtlich genommen, mit Ausnahme
eines weiteren ‚ und \. (Die Ticks erhält man bei deutschen Tastaturen
durch die Taste neben dem Backspace — ohne [shift].)
  \ Backslash Das Zeichen nach einem \ wird wörtlich genommen. Anwendung z. B.
innerhalb von “ „, um „, $ und ` zu entwerten. Häufig verwendet zur
Angabe von Leerzeichen (space) und Zeilenendezeichen, oder um ein
\-Zeichen selbst anzugeben.

Reguläre Ausdrücke

Sonderzeichen in Suchmustern:

 . Steht für ein beliebiges *einzelnes* Zeichen, mit Ausnahme des Zeilenendezeichens.
 * Steht für eine beliebige (auch leere) Menge des einzelnen Zeichens vor dem Sternchen.
Das vorangehende Zeichen kann auch ein regulärer Ausdruck sein. Beispielsweise steht .*
für eine beliebige Anzahl eines beliebigen Zeichens
 ^ Übereinstimmung, wenn der folgende Ausdruck am Zeilenanfang steht.
 $ Übereinstimmung, wenn der vorhergehende Ausdruck am Zeilenende steht.
 \\ Schaltet die Sonderbedeutung des nachfolgenden Zeichens ab.
 [ ] Steht für *ein* beliebiges Zeichen aus der eingeklammerten Gruppe. Mit dem Bindestrich
kann man einen Bereich aufeinanderfolgender Zeichen auswählen ([a-e]). Ein Zirkumflex
(~) wirkt als Umkehrung: [^a-z] erfasst alle Zeichen, die keine Kleinbuchstaben sind. Ein
Bindestrich oder eine schließende eckige Klammer am Listenanfang werden als Teil der
Liste angesehen, alle anderen Sonderzeichen verlieren in der Liste ihre Bedeutung.
 \\( \\) Speichert das Muster zwischen \( und \) in einem speziellen Puffer. In einer Zeile können
bis zu neun solcher Puffer belegt werden. In Substitutionen können sie über die
Zeichenfolgen \1 bis \9 wieder benutzt werden.
/ \{ \\} Steht für den Vorkommensbereich des unmittelbar vorhergehenden Zeichens. \{n\} bezieht
sich auf genau n Vorkommen, \{n,\} auf mindestens n Vorkommen und \{n,m\} auf eine
beliebige Anzahl von Vorkommen zwischen n und m. Dabei müssen n und m im Bereich
zwischen 0 und 256 liegen.
 \\< \\> Steht für ein Zeichen am Anfang (\<) oder am Ende (\>) eines Wortes.
 + Steht für ein oder mehrere Vorkommen des vorhergehenden regulären Ausdrucks = \{1,\}
 ? Steht für kein oder ein Vorkommen des vorhergehenden Ausdrucks. = \{0,1\}
 | Übereinstimmung, wenn entweder der vorhergehende oder der nachfolgende reguläre
Ausdruck übereinstimmen.
 ( ) Steht für die eingeschlossene Gruppe von regulären Ausdrücken.

Sonderzeichen in Ersatzmustern:

 \\ Hebt die spezielle Bedeutung des nächsten Zeichens auf.
 \\n Ruft das n-te Muster aus dem Puffer ab (siehe oben, unter \( \).) Dabei ist n eine Zahl
zwischen 1 und 9.
 & Verwendet das vorherige Suchmuster erneut als Teil eines Ersatzmusters.
 ~ Verwendet das vorherige Ersatzmuster erneut im momentanen Ersatzmuster.
 \\u Ändert das erste Zeichen des Ersatzmusters auf Großschreibung.
 \\U Ändert alle Zeichen des Ersatzmusters auf Großschreibung.
 \\l Ändert das erste Zeichen des Ersatzmusters auf Kleinschreibung.
 \\L Ändert alle Zeichen des Ersatzmusters auf Kleinschreibung.
 \\e Hebt das vorangegangene \u oder \l auf.
  \\E Hebt das vorangegangene \U oder \L auf.

Beispiele: Muster

 Haus Die Zeichenfolge „Haus“.
 ^Haus „Haus“ am Zeilenanfang.
 Haus$ „Haus“ am Zeilenende.
 ^Haus$ „Haus“ als einziges Wort in einer Zeile.
 [Hh]aus „Haus“ oder „haus“
 Ha[unl]s „Haus“, „Hals“ oder „Hans“
 [^HML]aus Weder „Haus“, noch „Maus“, noch „Laus“, dafür aber andere Zeichenfolgen, welche „aus“ enthalten.
 Ha.s Der dritte Buchstabe ist ein beliebiges Zeichen.
 ^…$ Jede Zeile mit genau drei Zeichen.
 ^\\. Jede Zeile, die mit einem Punkt beginnt.
^\\.[a-z][a-z] Jede Zeile, die mit einem Punkt und zwei Kleinbuchstaben beginnt.
 ^\\.[a-z]\\{2\} Wie oben, jedoch nur in grep und sed zulässig.
 ^[^.] Jede Zeile, die nicht mit einem Punkt beginnt.
 Fehler* „Fehle“(!), „Fehler“, „Fehlers“, etc.
 „Wort“ Ein Wort in Anführunszeichen.
 „*Wort“* Ein Wort mit beliebig vielen (auch keinen) Anführungszeichen.
 [A-Z][A-Z]* Ein oder mehrere Großbuchstaben.
 [A-Z]+ Wie oben, jedoch nur in egrep und awk zulässig.
 [A-Z].* Ein Großbuchstabe, gefolgt von keinem oder beliebig vielen Zeichen.
 [A-Z]* Kein, ein oder mehrere Großbuchstaben
 [a-zA-Z] Ein Buchstabe.
 [^0-9a-zA-Z] Symbole (weder Buchstaben noch Zahlen).
[0-9a-zA-Z] Jedes alphanumerische Zeichen.

Beispiele: Suchen und Ersetzen mit sed. Im Folgenden werden Leerzeichen durch _ und
Tabulatoren durch TAB gekennzeichnet.

 s/.*/( & )/ Wiederholt die ganze Zeile, fügt aber Klammern hinzu.
 s/.*/mv & &.old/ Formt eine Wortliste (ein Wort pro Zeile) zu mv-Befehlen um.
 /^$/d Löscht Leerzeilen.
 /^[_TAB]*$/d Löscht Leerzeilen und Zeilen, die nur aus Leerzeichen oder Tabulatoren
bestehen.
 / */ /g Wandelt ein oder mehrere Leerzeichen in ein Leerzeichen um.
\(.*\)\n sucht nach einem Ausdruck in Klammern, gefolgt von einem Zeilenumbruch

test […]

Der Befehl test dient zum Überprüfen von Dateitypen bzw. Vorhandensein von Dateien und zum Vergleichen von Werten. Der Aufruf erfolgt mit test Vergleich wobei Vergleich die Prüfung bzw. den Vergleich enthält. Als Ergebnis gibt test 0 für Wahr (true) und 1 für Falsch (false) zurück. Der Rückgabewert wird mit Hilfe der Shelleigenen Variablen $? ermittelt. Es gibt Vergleiche für Dateien, Zeichenketten und Integer-Zahlen.

Anstatt des Befehls test kann die Bedingung auch in eckige Klammern gesetzt werden. Hierbei ist darauf zu achten, dass zwischen den Klammern und dem Vergleich jeweils ein ein Leerzeichen steht:   [ Vergleich ]
Weiterlesen

Befehle in Abhängigkeit ausführen

Ein zweiter Befehl wird in Abhängigkeit eines ersten Befehls ausgeführt:

  1. Zweiter Befehl nach Beendigung des ersten Befehls ausführten:
    date; ls 
  2. Zweiter Befehl ausführen, wenn der erste erfolgreich war:
     make && make install
  3. Zweiter Befehle ausführen, wenn der erste nicht erfolgreich war:
    ls datei || touch datei
  4. Kombination aus 2 und 3:
     ls datei && echo "Datei vorhanden" || touch datei