Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi1:shell_configdateien

Prompt

Aufgabe:

Lese 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. 1)

Bash Konfigurationsdateien

Testen, welche Konfigurationsdateien wann benutzt werden:

for file in /etc/profile /etc/bash.bashrc ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc ~/.bash_logout;
do
  echo "echo Hello $file" >> $file
done

Vorsicht: Nur die Erste zählt! (man bash → INVOCATION)

profile oder bashrc?

umask und exportierte 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.

Beispiel Umgebungsvariable setzen

~/.profile
…
 
VAR=wert
export VAR

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='egrep -v "^\s*(#|$)"'

oder

function ccat { 
  egrep -v '^\s*(#|$)' "$1" 
}

Dateiinhalt ohne Kommentare durchsuchen:

function cgrep {
  egrep -v '^\s*(#|$)' "$2" | grep --colour=auto "$1"
}

Funktonen und Variablen anzeigen:

set

Funktion löschen

unset -f ccat

Dokumentation

man bash
/INVOCATION
help function
1)
PS1="\u@\h (\!) \w\$"
lpi1/shell_configdateien.txt · Zuletzt geändert: 2018/08/15 17:05 (Externe Bearbeitung)