Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

Lorsqu'un shell de connexion se ferme, bash lit et exécute les commandes du fichier ~ / .bash_logout, s'il existe. Cette procédure est expliquée en détail dans le vous connecter et bash pages de manuel.

7.2.3. Un ensemble typique de fichiers d'installation


7.2.3.1. /etc/exemple de profil


Regardons certains de ces fichiers de configuration. D'abord / etc / profile est lu, dans lequel des variables importantes telles que

PATH, USER et HOSTNAME sont définis :


debby :~> chat /etc/profil

# /etc/profil


# Environnement à l'échelle du système et programmes de démarrage, pour la configuration de la connexion

# Les fonctions et les alias vont dans /etc/bashrc


# Manipulation de chemin

si [ `id -u` = 0 ] && ! echo $CHEMIN | /bin/grep -q "/sbin" ; alors CHEMIN=/sbin:$CHEMIN

fi


si [ `id -u` = 0 ] && ! echo $CHEMIN | /bin/grep -q "/usr/sbin" ; puis CHEMIN=/usr/sbin:$CHEMIN

fi


si [ `id -u` = 0 ] && ! echo $CHEMIN | /bin/grep -q "/usr/local/sbin" puis

CHEMIN=/usr/local/sbin:$CHEMIN

fi


si ! echo $CHEMIN | /bin/grep -q "/usr/X11R6/bin" ; puis CHEMIN="$CHEMIN:/usr/X11R6/bin"

fi

debby :~> chat /etc/profil

# /etc/profil


# Environnement à l'échelle du système et programmes de démarrage, pour la configuration de la connexion

# Les fonctions et les alias vont dans /etc/bashrc


# Manipulation de chemin

si [ `id -u` = 0 ] && ! echo $CHEMIN | /bin/grep -q "/sbin" ; alors CHEMIN=/sbin:$CHEMIN

fi


si [ `id -u` = 0 ] && ! echo $CHEMIN | /bin/grep -q "/usr/sbin" ; puis CHEMIN=/usr/sbin:$CHEMIN

fi


si [ `id -u` = 0 ] && ! echo $CHEMIN | /bin/grep -q "/usr/local/sbin" puis

CHEMIN=/usr/local/sbin:$CHEMIN

fi


si ! echo $CHEMIN | /bin/grep -q "/usr/X11R6/bin" ; puis CHEMIN="$CHEMIN:/usr/X11R6/bin"

fi

Ces lignes vérifient le chemin à définir : si racine ouvre un shell (user ID 0), on vérifie que / sbin, / usr / sbin et

/usr/local/sbin sont dans le chemin. Sinon, ils sont ajoutés. Il est vérifié pour tous ceux qui

/usr/X11R6/bin est dans le chemin.


# Aucun fichier core par défaut ulimit -S -c 0 > /dev/null 2>&1

# Aucun fichier core par défaut ulimit -S -c 0 > /dev/null 2>&1

Toutes les ordures vont à / dev / null si l'utilisateur ne modifie pas ce paramètre.


USER=`id -un` LOGNAME=$USER

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


HOSTNAME=`/bin/hostname` ISTSIZE=1000

USER=`id -un` LOGNAME=$USER

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


HOSTNAME=`/bin/hostname` ISTSIZE=1000

Ici, les variables générales reçoivent leurs valeurs propres.


si [ -z "$ENTRÉE" -a ! -f "$HOME/.inputrc" ]; puis INPUTRC=/etc/inputrc

fi

si [ -z "$ENTRÉE" -a ! -f "$HOME/.inputrc" ]; puis INPUTRC=/etc/inputrc

fi

Si la variable ENTRÉE n'est pas défini, et il n'y a pas .inputrc dans le répertoire personnel de l'utilisateur, le fichier de contrôle d'entrée par défaut est chargé.


image


Exporter PATH UTILISATEUR NOM DU JOURNAL MAIL HOSTNAME TAILLE HIST ENTRÉE

Toutes les variables sont exportées, afin qu'elles soient disponibles pour d'autres programmes demandant des informations sur votre environnement.


image

7.2.3.2. Le répertoire profile.d


pour i dans /etc/profile.d/*.sh ; faire si [ -r $i ] ; alors

. $ je

fi fait unset i

pour i dans /etc/profile.d/*.sh ; faire si [ -r $i ] ; alors

. $ je

fi fait unset i

Tous les scripts shell lisibles du /etc/profil.d répertoire sont lus et exécutés. Ceux-ci font des choses comme permettre couleur-ls, alias vi à entrain, définir les paramètres régionaux, etc. La variable temporaire i est désactivé pour l'empêcher de perturber le comportement du shell par la suite.


image

7.2.3.3. exemple .bash_profile


Ensuite bash cherche un .bash_profile dans le répertoire personnel de l'utilisateur :


image

debby :~> chat .bash_profile

################################################## ###############

# #

# .bash_profile fichier #

# #

# Exécuté depuis le shell bash lorsque vous vous connectez. #

# #

################################################## ###############


source ~/.bashrc source ~/.bash_login

Ce fichier très simple demande à votre shell de lire d'abord ~ / .bashrc et alors ~ / .bash_login. Vous rencontrerez le source commande shell intégrée régulièrement lorsque vous travaillez dans un environnement shell : elle est utilisée pour appliquer les modifications de configuration à l'environnement actuel.


image

7.2.3.4. exemple .bash_login


Le manuel de formation ~ / .bash_login fichier définit la protection de fichier par défaut en définissant le umask valeur, voir Section 3.4.2.2. Les ~ / .bashrc est utilisé pour définir un tas d'alias et de fonctions spécifiques à l'utilisateur et des variables d'environnement personnel. Il lit d'abord / Etc / bashrc, qui décrit l'invite par défaut (PS1) et la valeur umask par défaut. Après cela, vous pouvez ajouter vos propres paramètres. Sinon ~ / .bashrc existe, / Etc / bashrc est lu par défaut.


image

7.2.3.5. /etc/bashrc exemple


Votre / Etc / bashrc le fichier peut ressembler à ceci :


debby :~> chat /etc/bashrc

# /etc/bashrc


# Fonctions et alias à l'échelle du système

# Les éléments d'environnement vont dans /etc/profile


# par défaut, nous voulons que cela soit défini.

debby :~> chat /etc/bashrc

# /etc/bashrc


# Fonctions et alias à l'échelle du système

# Les éléments d'environnement vont dans /etc/profile


# par défaut, nous voulons que cela soit défini.


# Même pour les shells non interactifs et sans connexion.

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

d'autre

masque 022

fi

# Même pour les shells non interactifs et sans connexion.

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

d'autre

masque 022

fi

Ces lignes définissent le umask valeur. Ensuite, selon le type de shell, l'invite est définie :


# Sommes-nous un shell interactif ? if [ "$PS1" ]; alors

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

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

# Nous ne pouvons pas faire cela avec le terminal "stupide" stty effacer `tput kbs`

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

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

# Nous ne pouvons pas faire cela avec le terminal "stupide" stty effacer `tput kbs`

être être

fi

cas $TERM dans

xterm*)

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

d'autre

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 # Nous ne sommes pas un shell de connexion pour i dans /etc/profile.d/*.sh ; faire

si [ -x $i ] ; alors

. $ je

fi

fait

fi

fi

# Sommes-nous un shell interactif ? if [ "$PS1" ]; alors

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

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

# Nous ne pouvons pas faire cela avec le terminal "stupide" stty effacer `tput kbs`

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

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

# Nous ne pouvons pas faire cela avec le terminal "stupide" stty effacer `tput kbs`

être être

fi

cas $TERM dans

xterm*)

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

d'autre

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 # Nous ne sommes pas un shell de connexion pour i dans /etc/profile.d/*.sh ; faire

si [ -x $i ] ; alors

. $ je

fi

fait

fi

fi


image


7.2.3.6. exemple .bash_logout


Lors de la déconnexion, les commandes de ~ / .bash_logout sont exécutées, ce qui peut par exemple effacer le terminal, de sorte que vous ayez une fenêtre propre lors de la déconnexion d'une session à distance, ou en quittant la console système :


debby :~> chat .bash_logout

# ~/.bash_logout


clair

debby :~> chat .bash_logout

# ~/.bash_logout


clair

Examinons de plus près le fonctionnement de ces scripts dans la section suivante. Garder info bash à proximité.


image


Meilleur système d'exploitation Cloud Computing chez OnWorks :