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.
Archiv der Kategorie: Sonstiges
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)
ps aux | grep suchstring | awk '{print $2}'
Beispiel 2: alle Zeilen einer Datei mit dem Buchstaben „n“ ausgeben:
awk '/n/' /etc/group
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 | bc
echo "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
read -n 1 -s 5 eingabe if [ $? -eq 1 ] ; then echo "Zeitüberschreitung für die Eingabe ..." fi echo $eingabe
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
xargs
Generiert aus der Standardeingabe eine Kommandozeile und führt diese aus:
find -name "*.pdf" -print0 | xargs -0 echo
sucht rekursiv alle pdf-Dateien und gibt diese mit echo aus.
Befehle in Abhängigkeit ausführen
Ein zweiter Befehl wird in Abhängigkeit eines ersten Befehls ausgeführt:
- Zweiter Befehl nach Beendigung des ersten Befehls ausführten:
date; ls
- Zweiter Befehl ausführen, wenn der erste erfolgreich war:
make && make install
- Zweiter Befehle ausführen, wenn der erste nicht erfolgreich war:
ls datei || touch datei
- Kombination aus 2 und 3:
ls datei && echo "Datei vorhanden" || touch datei
Pause für x Sekunden
Skriptabarbeitung für z. B. 5 Sekunden unterbrechen: sleep 5
echo
Textausgabe mit Zeilenumbruch: echo Text
Textausgabe ohne Zeilenumbruch: echo -n Text