Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
|
lpi1:shell_configdateien [2018/08/15 17:05] |
lpi1:shell_configdateien [2023/10/25 07:53] (aktuell) |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ===== .bashrc ====== | ||
| + | ==== Aufgabe 1: History ==== | ||
| + | |||
| + | 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 ===== | ||
| + | |||
| + | ''ls -l'' abkürzen: | ||
| + | alias ll='ls -l' | ||
| + | |||
| + | Aliase anzeigen: | ||
| + | alias | ||
| + | |||
| + | Dateiinhalt ohne Kommentare ausgeben: | ||
| + | alias ccat='grep -Ev "^\s*(#|$)"' | ||
| + | oder | ||
| + | <code bash> | ||
| + | function ccat { | ||
| + | grep -Ev '^\s*(#|$)' "$1" | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | Dateiinhalt ohne Kommentare durchsuchen: | ||
| + | <code bash> | ||
| + | function cgrep { | ||
| + | grep -Ev '^\s*(#|$)' "$2" | grep --colour=auto "$1" | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | Funktonen und Variablen anzeigen: | ||
| + | set | ||
| + | |||
| + | Funktion löschen | ||
| + | unset -f ccat | ||
| + | |||
| + | ===== Dokumentation ===== | ||
| + | man bash | ||
| + | /INVOCATION | ||
| + | |||
| + | help function | ||
| + | |||