bash
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
bash [2011/10/10 09:49] – 130.75.57.116 | bash [2024/03/03 18:19] (aktuell) – olli | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Bash ====== | ====== Bash ====== | ||
+ | |||
+ | ===== Umleiten der Ausgabe ===== | ||
+ | stdout -> Datei | ||
+ | <code bash> | ||
+ | programm > datei.txt | ||
+ | </ | ||
+ | stderr -> Datei | ||
+ | <code bash> | ||
+ | programm 2> datei.txt | ||
+ | </ | ||
+ | stdout **und** stderr -> Datei | ||
+ | <code bash> | ||
+ | programm &> datei.txt | ||
+ | </ | ||
===== Erweiterung von Dateiname entfernen ===== | ===== Erweiterung von Dateiname entfernen ===== | ||
<code bash> | <code bash> | ||
Zeile 6: | Zeile 20: | ||
</ | </ | ||
+ | ===== Bulk-Rename ===== | ||
+ | Um mehrere Dateien auf einmal umzubenennen (zum Beispiel ap2 in allen Dateien durch ap3 zu ersetzen): | ||
+ | <code bash> | ||
+ | for file in ap2* ; do mv $file `echo $file | sed ' | ||
+ | </ | ||
+ | Um die Umbenennung vorher gefahrlos zu testen, kann man ein echo einfügen: | ||
+ | <code bash> | ||
+ | for file in ap2* ; do echo mv $file `echo $file | sed ' | ||
+ | </ | ||
===== Verzeichnis, | ===== Verzeichnis, | ||
<code bash> | <code bash> | ||
Zeile 11: | Zeile 34: | ||
</ | </ | ||
+ | ===== Gezieltes Blättern in der History ===== | ||
+ | Um gezieltes Blättern oder Suchen in der History zu aktiveren, muss in ''/ | ||
+ | <code bash> | ||
+ | # search the history with arrow-up and arrow-down | ||
+ | " | ||
+ | " | ||
+ | </ | ||
+ | eingefügt werden. Dann kann man den Anfang eines schon mal eingegebenen Befehls eingeben und mit Pfeil-Hoch und -Runter den gewünschten aussuchen. | ||
+ | |||
+ | Wenn dies nur für einen einzelnen Benutzer aktiviert werden soll, werden die Befehle in '' | ||
+ | beginnen. | ||
+ | |||
+ | ===== Aliases ===== | ||
+ | In der '' | ||
+ | |||
+ | Beispiel: | ||
+ | <code bash> | ||
+ | alias ls='ls --color=auto' | ||
+ | </ | ||
+ | |||
+ | Mit '' | ||
+ | |||
+ | Beispiel: | ||
+ | <code bash> | ||
+ | $ type ls | ||
+ | ls is aliased to `ls --color=auto' | ||
+ | </ | ||
+ | |||
+ | Um den Befehl ohne den Alias auszuführen, | ||
+ | * Backslash: '' | ||
+ | * command: '' | ||
+ | * Voller Pfad: ''/ | ||
+ | * Anführungszeichen: | ||
+ | |||
+ | ==== Nützliche Aliases ==== | ||
+ | |||
+ | <code bash> | ||
+ | alias diff=' | ||
+ | alias less=' | ||
+ | alias ls='ls --color=auto' | ||
+ | alias ll='ls -al' #show long ls format | ||
+ | </ | ||
+ | |||
+ | [[https:// | ||
+ | <code bash> | ||
+ | # Go up directory tree X number of directories | ||
+ | function up() { | ||
+ | COUNTER=" | ||
+ | # default $COUNTER to 1 if it isn't already set | ||
+ | if [[ -z $COUNTER ]]; then | ||
+ | COUNTER=1 | ||
+ | fi | ||
+ | # make sure $COUNTER is a number | ||
+ | if [ $COUNTER -eq $COUNTER 2> /dev/null ]; | ||
+ | then nwd=`pwd` # Set new working directory (nwd) to current directory | ||
+ | # Loop $nwd up directory tree one at a time | ||
+ | until [[ $COUNTER -lt 1 ]]; do | ||
+ | nwd=`dirname $nwd` | ||
+ | let COUNTER-=1 | ||
+ | done | ||
+ | cd $nwd # change directories to the new working directory | ||
+ | else | ||
+ | # print usage and return error | ||
+ | echo " | ||
+ | return 1 | ||
+ | fi | ||
+ | } | ||
+ | </ | ||
+ | ===== Farbige Ausgabe ===== | ||
+ | Mit Escapesequenzen für das VT100-Terminal kann die Ausgabe eingefärbt werden. Wichtig ist dabei das -e, sonst werden Escapesequenzen nicht als solche ausgewertet. | ||
+ | <code bash> | ||
+ | red=' | ||
+ | NC=' | ||
+ | echo -e " | ||
+ | </ | ||
+ | Folgende Farbcodes können verwendet werden: | ||
+ | ^Farbe ^Code ^Farbe ^Code ^ | ||
+ | |Black | ||
+ | |Blue | ||
+ | |Green | ||
+ | |Cyan | ||
+ | |Red |0;31 | ||
+ | |Purple | ||
+ | |Brown/ | ||
+ | |Light Gray | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | ===== Debugging ===== | ||
+ | Um Bash-Skripte zu debuggen, können sie mit '' | ||
+ | <code bash> | ||
+ | bash -x ./script.sh | ||
+ | </ | ||
+ | oder im Skript | ||
+ | <code bash> | ||
+ | set -x | ||
+ | </ | ||
+ | gesetzt werden. | ||
+ | |||
+ | Für weitere Logging- und Debugmöglichkeiten siehe [[https:// | ||
+ | |||
{{tag> | {{tag> | ||
bash.1318232969.txt.gz · Zuletzt geändert: 2011/10/10 09:49 von 130.75.57.116