Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
lpi1:shell_configdateien [2011/07/19 08:55] ingo_wichmann [Häufige Kommandofolgen abkürzen] |
lpi1:shell_configdateien [2023/10/25 07:53] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ===== Bash Konfigurationsdateien ===== | + | ===== .bashrc ====== |
- | Testen, welche Konfigurationsdateien wann benutzt werden: | + | ==== Aufgabe 1: History ==== |
- | for file in /etc/profile /etc/bash.bashrc ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc ~/.bash_logout; | + | |
- | do | + | |
- | echo "echo Hello $file" >> $file | + | |
- | done | + | |
+ | Erweitere die history list so, dass sie Platz für 2000 Befehle hat und 200000 Befehle in einer Datei bewahrt. | ||
+ | Was ändert sich mit der Variable\\ | ||
+ | ''HISTTIMEFORMAT='[%F_%T] ''' | ||
+ | |||
+ | |||
+ | ==== Aufgabe 2: Prompt ==== | ||
+ | |||
+ | Lies das Kapitel "Prompting" in der "man"-Page für "bash". Erstelle einen Prompt-String welcher die folgenden Daten beinhaltet: | ||
+ | |||
+ | * Loginname | ||
+ | * Hostname des Rechners | ||
+ | * die History-Nummer des aktuellen Kommandos, in Klammern "z. B. (10)" | ||
+ | * das aktuelle Verzeichnis | ||
+ | * Prompt-Zeichen für normalen Benutzer oder "root" | ||
+ | |||
+ | Baue das neue Prompt in das Profile-Startscript für die Bash für deinen aktuellen Benutzer ein. | ||
+ | |||
+ | |||
+ | ==== profile oder bashrc? ==== | ||
+ | ''umask'' und ''export''ierte Variablen gehören besser in die ''.profile'', weil beides an die Kindprozesse vererbt wird. | ||
+ | |||
+ | Eine Ersetzung in der Form ''%%PATH="$PATH:$HOME/bin"%%'' würde z. B. mit jeder weiteren Subshell ausgeführt und jedes Mal neu evaluiert werden, so dass dieselbe Ergänzung jedes Mal wieder stattfindet. | ||
+ | |||
+ | === Beispiel Umgebungsvariable setzen === | ||
+ | |||
+ | <file bash ~/.profile> | ||
+ | |||
+ | … | ||
+ | |||
+ | VAR=wert | ||
+ | export VAR | ||
+ | </file> | ||
+ | |||
+ | Abmelden: Grafisch oder | ||
+ | loginctl list-sessions | ||
+ | loginctl terminate-session 5 | ||
+ | Wieder anmelden. | ||
+ | echo $VAR | ||
+ | | ||
+ | (Neustart ''gnome-terminal'' reicht nicht) | ||
===== Häufige Kommandofolgen abkürzen ===== | ===== Häufige Kommandofolgen abkürzen ===== | ||
Zeile 15: | Zeile 51: | ||
alias | alias | ||
- | Dabeiinhalt ohne Kommentare ausgeben: | + | Dateiinhalt ohne Kommentare ausgeben: |
+ | alias ccat='grep -Ev "^\s*(#|$)"' | ||
+ | oder | ||
<code bash> | <code bash> | ||
function ccat { | function ccat { | ||
- | egrep -v '^\s*(#|$)' $1 | + | grep -Ev '^\s*(#|$)' "$1" |
} | } | ||
</code> | </code> | ||
Zeile 25: | Zeile 63: | ||
<code bash> | <code bash> | ||
function cgrep { | function cgrep { | ||
- | egrep -v '^\s*(#|$)' $2 | grep --colour=auto $1 | + | grep -Ev '^\s*(#|$)' "$2" | grep --colour=auto "$1" |
} | } | ||
</code> | </code> |