1. Variables d’environnement
La variable PATH
contient les chemins dans lesquels le shell cherche les programmes à lancer.
- Afficher le contenu de cette variable via la commande
echo $PATH
. - Modifier cette variable pour y ajouter le chemin de Desktop :
PATH=$PATH:~/Bureau
. Exécuterwhich firefox
pour voir le chemin complet du navigateur. - Afficher le contenu de PATH dans le terminal courant, dans un terminal fils, dans un terminal disjoint.
- Utiliser la commande
export PATH
et afficher le contenu de PATH dans le terminal courant, puis dans un terminal fils (en lançant simplement la commandebash
pour entrer dans un shell fils ; il suffit de tapez la commandeexit
ou la combinaison de touchesCTRL D
pour revenir au shell parent). - La variable
HOME
contient le chemin de votre dossier personnel. La variablePWD
contient le chemin courant. HOST contient le nom de l’ordinateur courant. RANDOM contient un nombre aléatoire (change à chaque appel). Toutes ces variables se comportent comme PATH : si elles sont exportées, elles se transmettent aux processus fils ; le contenu de la variable est obtenu en le précédant d’un$
.
Le fichier .bashrc
est lu à chaque démarrage du shell. Si on veut que des réglages se conservent au prochain démarrage, on peut ajouter ces réglages dans ce fichier. Si on y met des commandes, elles seront elles aussi exécutées au démarrage du shell. Par exemple, ajoutons echo "Salutations $USER"
en dernière ligne du fichier .bashrc
. Au prochain lancement de bash, nous serons accueillis par des salutations.
Il est également possible d’ajouter des raccourcis de commande. Par exemple pour que cd..
fasse l’effet de cd ..
, on peut ajouter alias cd..="cd .."
. On peut aussi ajouter alias ll="ls -ail"
.
2. Scripts
À l’aide de tubes et redirections, nous pouvons faire des commandes complexes. Si celles-ci sont amenées à être réutilisées, on peut les transformer en scripts qui pourront être réutilisés. Pour celà, on écrit la commande en question dans un fichier dont la première ligne sera #!/bin/sh
. On octroie les droits d’exécution sur ce fichier et on l’appelle par la commande ./fichier
.
Recopiez les lignes suivantes dans un fichier psit.sh
#!/bin/sh ps aux | cut -d ' ' -f 1 | sort | uniq
Exécutez ce script avec
./psit.sh
.- Écrivez un script comptant les membres de chaque groupe d’utilisateurs locaux.
Le symbole
$1
représente le premier argument du script. Testez le script suivant avec et sans argument :#!/bin/sh ps aux | grep $1 | tr -s ' ' | cut -d ' ' -f 2
Nous aimerions maintenant envoyer un signal (avec
kill
) aux processus repérés par le script précédent. Pour celà, nous allons utiliser la commandekill
sur le résultat de cette commande. Il faut entourer cette commande d’accents graves.Modifiez le script précédent comme suit
#!/bin/sh kill `ps aux | grep $1 | tr -s ' ' | cut -d ' ' -f 2`
Que fait-il ?