OnWorks Linux- und Windows-Online-WorkStations

Logo

Kostenloses Online-Hosting für WorkStations

<Zurück | Inhalte | Weiter>

Wenn eine Login-Shell beendet wird, bash liest und führt Befehle aus der Datei aus ~ / .bash_logout, falls vorhanden. Dieses Verfahren wird im Detail erläutert login und bash man-Seiten.

7.2.3. Ein typischer Satz Setup-Dateien


7.2.3.1. /etc/profile-Beispiel


Schauen wir uns einige dieser Konfigurationsdateien an. Erste / etc / profile gelesen wird, in dem wichtige Variablen wie z

PATH, USER und HOSTNAME sind festgelegt:


debby:~> cat /etc/profile

# /etc/profile


# Systemweite Umgebung und Startprogramme für die Anmeldeeinrichtung

# Funktionen und Aliase befinden sich in /etc/bashrc


# Pfadmanipulation

if [ `id -u` = 0 ] && ! echo $PATH | /bin/grep -q "/sbin" ; dann PATH=/sbin:$PATH

fi


if [ `id -u` = 0 ] && ! echo $PATH | /bin/grep -q "/usr/sbin" ; dann PATH=/usr/sbin:$PATH

fi


if [ `id -u` = 0 ] && ! echo $PATH | /bin/grep -q "/usr/local/sbin" dann

PATH=/usr/local/sbin:$PATH

fi


Wenn ! echo $PATH | /bin/grep -q "/usr/X11R6/bin" ; dann PATH="$PATH:/usr/X11R6/bin"

fi

debby:~> cat /etc/profile

# /etc/profile


# Systemweite Umgebung und Startprogramme für die Anmeldeeinrichtung

# Funktionen und Aliase befinden sich in /etc/bashrc


# Pfadmanipulation

if [ `id -u` = 0 ] && ! echo $PATH | /bin/grep -q "/sbin" ; dann PATH=/sbin:$PATH

fi


if [ `id -u` = 0 ] && ! echo $PATH | /bin/grep -q "/usr/sbin" ; dann PATH=/usr/sbin:$PATH

fi


if [ `id -u` = 0 ] && ! echo $PATH | /bin/grep -q "/usr/local/sbin" dann

PATH=/usr/local/sbin:$PATH

fi


Wenn ! echo $PATH | /bin/grep -q "/usr/X11R6/bin" ; dann PATH="$PATH:/usr/X11R6/bin"

fi

Diese Zeilen überprüfen den festzulegenden Pfad: if Wurzel Öffnet eine Shell (Benutzer-ID 0), das wird überprüft / sbin, / usr / sbin und

/usr/local/sbin befinden sich im Pfad. Wenn nicht, werden sie hinzugefügt. Das wird bei jedem überprüft

/usr/X11R6/bin befindet sich im Pfad.


# Standardmäßig keine Kerndateien ulimit -S -c 0 > /dev/null 2>&1

# Standardmäßig keine Kerndateien ulimit -S -c 0 > /dev/null 2>&1

Der gesamte Müll geht an / dev / null wenn der Benutzer diese Einstellung nicht ändert.


USER=`id -un` LOGNAME=$USER

MAIL="/var/spool/mail/$USER"


HOSTNAME=`/bin/hostname` HISTSIZE=1000

USER=`id -un` LOGNAME=$USER

MAIL="/var/spool/mail/$USER"


HOSTNAME=`/bin/hostname` HISTSIZE=1000

Hier werden allgemeinen Variablen die richtigen Werte zugewiesen.


if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; dann INPUTRC=/etc/inputrc

fi

if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; dann INPUTRC=/etc/inputrc

fi

Wenn die Variable EINGANG ist nicht eingestellt, und es gibt keine .inputrc im Home-Verzeichnis des Benutzers wird dann die Standard-Eingabesteuerdatei geladen.


Image


exportieren PATH USER LOGNAME MAIL HOSTNAME HISTGRÖSSE EINGANG

Alle Variablen werden exportiert, sodass sie anderen Programmen zur Verfügung stehen, die Informationen über Ihre Umgebung anfordern.


Image

7.2.3.2. Das Verzeichnis „profile.d“.


für i in /etc/profile.d/*.sh ; do if [ -r $i ]; Dann

. $i

fi erledigt unset i

für i in /etc/profile.d/*.sh ; do if [ -r $i ]; Dann

. $i

fi erledigt unset i

Alle lesbaren Shell-Skripte aus dem /etc/profile.d Verzeichnis werden gelesen und ausgeführt. Diese bewirken beispielsweise die Aktivierung Farbls, Aliasing vi zu vim, Gebietsschemas festlegen usw. Die temporäre Variable i ist deaktiviert, um zu verhindern, dass es später das Shell-Verhalten stört.


Image

7.2.3.3. .bash_profile-Beispiel


Dann bash sucht nach a Bash_profile im Home-Verzeichnis des Benutzers:


Image

debby:~> cat .bash_profile

.. ###############

# #

# .bash_profile-Datei #

# #

# Wird von der Bash-Shell ausgeführt, wenn Sie sich anmelden. #

# #

.. ###############


Quelle ~/.bashrc Quelle ~/.bash_login

Diese sehr einfache Datei weist Ihre Shell an, zuerst zu lesen ~ / .bashrc und dann ~ / .bash_login. Sie werden auf das stoßen Quelle Integrierter Shell-Befehl regelmäßig beim Arbeiten in einer Shell-Umgebung: Er wird verwendet, um Konfigurationsänderungen auf die aktuelle Umgebung anzuwenden.


Image

7.2.3.4. .bash_login-Beispiel


Das ~ / .bash_login file definiert den Standarddateischutz durch Festlegen von umask Wert siehe Abschnitt 3.4.2.2. Der ~ / .bashrc Die Datei wird verwendet, um eine Reihe benutzerspezifischer Aliase und Funktionen sowie persönliche Umgebungsvariablen zu definieren. Es liest sich zunächst / Etc / bashrc, das die Standardaufforderung beschreibt (PS1) und den Standardwert für umask. Danach können Sie Ihre eigenen Einstellungen hinzufügen. Wenn nein ~ / .bashrc existiert, / Etc / bashrc wird standardmäßig gelesen.


Image

7.2.3.5. /etc/bashrc-Beispiel


Ihr / Etc / bashrc Datei könnte so aussehen:


debby:~> cat /etc/bashrc

# /etc/bashrc


# Systemweite Funktionen und Aliase

# Umgebungsinhalte kommen in /etc/profile


# Standardmäßig möchten wir, dass dies festgelegt wird.

debby:~> cat /etc/bashrc

# /etc/bashrc


# Systemweite Funktionen und Aliase

# Umgebungsinhalte kommen in /etc/profile


# Standardmäßig möchten wir, dass dies festgelegt wird.


# Auch für nicht interaktive Shells ohne Anmeldung.

if [ `id -gn` = `id -un` -a `id -u` -gt 99 ]; dann umask 002

sonst

Maske 022

fi

# Auch für nicht interaktive Shells ohne Anmeldung.

if [ `id -gn` = `id -un` -a `id -u` -gt 99 ]; dann umask 002

sonst

Maske 022

fi

Diese Zeilen legen die fest umask Wert. Dann wird je nach Shell-Typ die Eingabeaufforderung gesetzt:


# Sind wir eine interaktive Hülle? if [ "$PS1" ]; Dann

if [ -x /usr/bin/tput ]; Dann

if [ "x`tput kbs`" != "x" ]; Dann

# Wir können dies nicht mit dem „dummen“ Terminal tun, indem wir „tput kbs“ löschen

elif [ -x /usr/bin/wc ]; Dann

if [ "`tput kbs|wc -c `" -gt 0 ]; Dann

# Wir können dies nicht mit dem „dummen“ Terminal tun, indem wir „tput kbs“ löschen

fi fi

fi

Fall $TERM in

xterm*)

if [ -e /etc/sysconfig/bash-prompt-xterm ]; dann PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm

sonst

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:\

${PWD/$HOME/~}\007"'

fi

;;

*)

[ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=\

/etc/sysconfig/bash-prompt-default

;;

esac

[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "


if [ "x$SHLVL" != "x1" ]; then # Wir sind keine Login-Shell für i in /etc/profile.d/*.sh; Tun

if [ -x $i ]; Dann

. $i

fi

erledigt

fi

fi

# Sind wir eine interaktive Hülle? if [ "$PS1" ]; Dann

if [ -x /usr/bin/tput ]; Dann

if [ "x`tput kbs`" != "x" ]; Dann

# Wir können dies nicht mit dem „dummen“ Terminal tun, indem wir „tput kbs“ löschen

elif [ -x /usr/bin/wc ]; Dann

if [ "`tput kbs|wc -c `" -gt 0 ]; Dann

# Wir können dies nicht mit dem „dummen“ Terminal tun, indem wir „tput kbs“ löschen

fi fi

fi

Fall $TERM in

xterm*)

if [ -e /etc/sysconfig/bash-prompt-xterm ]; dann PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm

sonst

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:\

${PWD/$HOME/~}\007"'

fi

;;

*)

[ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=\

/etc/sysconfig/bash-prompt-default

;;

esac

[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "


if [ "x$SHLVL" != "x1" ]; then # Wir sind keine Login-Shell für i in /etc/profile.d/*.sh; Tun

if [ -x $i ]; Dann

. $i

fi

erledigt

fi

fi


Image


7.2.3.6. .bash_logout-Beispiel


Beim Abmelden werden die Befehle angezeigt ~ / .bash_logout werden ausgeführt, was beispielsweise das Terminal löschen kann, sodass Sie beim Abmelden von einer Remote-Sitzung oder beim Verlassen der Systemkonsole ein sauberes Fenster haben:


debby:~> cat .bash_logout

# ~/.bash_logout


klar

debby:~> cat .bash_logout

# ~/.bash_logout


klar

Schauen wir uns im nächsten Abschnitt genauer an, wie diese Skripte funktionieren. Halten Info bash in unmittelbarer Nähe.


Image


Top OS Cloud Computing bei OnWorks: