Académique Documents
Professionnel Documents
Culture Documents
cd /home/dd/tmp
note : si le rpertoire courant de lutilisateur est dans le PATH il est inutile de spcifier le ./ .
#!/bin/bash # script bonjour.sh echo Bonjour $USER echo Aujourdhui nous sommes le ; date echo et il va falloir se mettre au Shell !!
Pour excuter un script on lappelle simplement par son nom, mais il y a 2 conditions satisfaire :
Entres-sorties
Pour afficher on utilise la commande echo de la facon suivante : echo un texte quelconque entre guillemets
le script doit tre excutable par celui qui le lance le script doit tre dans le chemin dexcution ou son chemin spcifi compltement
\n (saut ligne),
1/12
echo $xy
2/12
Les fonctions
3/12
La Structure if
4/12
Testes soit par la commande test soit par placement de lexpression entre [] : test expression [ expression ] # attention aux espaces !!!!! Nous allons passer en revue les diffrents oprateurs utilisables dans les conditions logiques. Il en existe pour chaque type doprande (chaines de
Alternatives imbriques : if condition1 then instruction1 instruction2 . elif condition2 then instruction3 instruction4 .. elif condition3 then instruction5 instruction6 .. fi
tests de chaines
test dEntiers
n1 -eq n2 ( eq veut dire equals on teste donc si n1==n2) n1 -ne n2 ( ne veut dire not equals on teste donc si n1 != n2) n1 -gt n2 gt veut dire greater than ou plus grand que on teste donc si
5/12
test de Fichiers
. /.bashrc fi
-r fich (r = readable , fichier fich lisible ? ) -w fich (w = writable , fichier fich modifiable ? ) -x fich (x = eXecutable , fichier fich excutable ? ) -f fich (f = file : fich fichier ordinaire ? ) -d fich (d = directory , fich est un rpertoire ? ) -s fich (fich fichier non vide ? ) Permet de comparer une expression plusieurs autres expressions constantes ou comportant des caractres spciaux pour le shell (?, *, []) : case $variable in valeur1) #1er bloc dinstructions expr1 -o expr2 (expr1 ou expr2) expr1 -a expr2 (expr1 et expr2) expression (ngation de expr1) Quelques exemples ;; valeur2) #2me bloc dinstructions ;; valeur3) #3me bloc dinstructions ;;
La Structure case
6/12
La Boucle for
Itrer lexcution dun groupe de commandes avec un paramtre prenant ses valeurs successives dans une liste for variable in liste_de_valeurs do # Traitement rpter done do et done doivent tre sur une nouvelle ligne (ou prcds dun ;) $> une simple boucle $> # on ne fait pas un script $> # on enchaine les commandes $> for i in 1 2 3 4 > do > echo $i
La Boucle while
Permet de boucler tant quune expression renvoie la valeur Vrai : while instructions do # instructions rpter done 1 do et done doivent tre sur une nouvelle ligne (ou prcds de ;) while who | grep -s stage3 do
7/12
5 : Les fichiers spciaux 7 : Les possibilits diverses 8 ou 1m : Les commandes d'administrations systme 9 : glossaire
Interruptions
On peut spcifier la section dans laquelle on veut effectuer la recherche (grace au paramtre n).
Il est possible dinterrompre plus ou moins violemment (en continuant ou pas le programme ou le shell) break : interrompt lexcution et reprend linstruction qui suit la boucle return : interrompt lexcution et sort du script en cours
who
fournit de informations sur l'ensemble des utilistaeurs qui sont actuellement connects sur la station. who am i renvoie uniquement les informations relatives l'utilisateur courant. whoami renvoit l'identificateur de l'utilisateur courant. id renvoie l'UID (user identifier), le GID (Groupe identifier) de l'utilisateur courant. Il ne faut pas confondre who am i (cas particulier de la commande who) et whoami. Le premier donne des informations sur l'utilisateur connect et le second l'identificateur de l'utilisateur courant.
1 : Les commandes utilisateurs 2 : Les appels sytmes 3 : La librairie des sous-routines 4 : Les formats de fichiers
un login (identificateur de l'utilisateur) assign par votre administrateur systme un password (mot de passe) propre chaque utilisateur
8/12
changer de rpertoire
cd chemin change le rpertoire courant pour celui specifi par le chemin. cd change le rpertoire courant pour le home directory. cd change le rpertoire courant pour le rpertoire prcdent pwd (print working directory) affiche le chemin du rpertoire courant
echo chaine affiche la chaine passe en paramtre .(vous pouvez aussi afficher des variables: echo $PATH, pour visualiser la variable PATH) banner chaine affiche la chaine passe en paramtre avec des grosses lettres
ls [-FaRl] liste le contenu d'un rpertoire quelques options : -F Positionne la fin des noms un / pour les rpertoires et un * : : -R : pour les fichiers excutables commencent par . ) Affichage rcursif Description complte du contenu d'un rpertoire (une ligne par fichier). Le premier caractre de la ligne indique le type du -l : fichier : - : standard d : rpertoire -a Affiche tous les fichiers, y compris les fichiers cachs (ceux qui
mkdir rpertoire cration d'un rpertoire contenant les deux fichiers . et .. rmdir rpertoire supprime un rpertoire vide (pour supprimer un rpertoire non vide, il faut utiliser la commande rm
cat fich1 fich2 concatne et affiche (sur la sortie standard) le contenu des fichiers paste fich1 fich 2
9/12
cp source destination copie le fichier source dans le fichier destination. Si le fichierdestination n'existe pas, il est cr . Sinon son contenu est ecras sans avertissement. Si la destination est un rpertoire, alors la source peut tre une liste de fichiers.
Imprimer un fichier
lp [-dimp] fichiers imprime le ou les fichiers spcifis sur l'imprimante par dfaut ou sur celle spcifie par l'option -d (attention, pas de blanc entre l'option et le nom de l'imprimante). lpq visualise la file d'impression courante lpstat [-t] renvoie des informations sur l'etat de l'imprimante par dfaut et de sa queue d'impression . (l'option -t permet de visualiser toutes les imprimantes) cancel num_impression detruit l'impression designe par num_impression(vous recuperz ce numero par la commande lpq ou lpstat)
mv source destination renomme ou deplace le fichier source en destination. Si la destination est un rpertoire, alors la source peut tre une liste de fichiers.
Chercher une chaine de caractres dans un fichier
file fichiers grep [-iv] expression fichiers sans option : recherche dans les fichiers les lignes contenant l'expression Dtermine le type du ou des fichiers spcifis. (Attention, le rsultat est parfois errone)
10/12
Crer un lien sur un fichier -f : ln [-s] source destination cration un lien sur un fichier ou un rpertoire. Un lien est un moyen d'accder un mme fichier ou un rpertoire sous plusieurs noms ou partir de plusieurs rpertoires. Attention un lien n'est pas une copie: si vous modifiez le fichier alors tous les liens sur ce fichier seront modifis. Il existe deux sortes de liens: le lien physique et le lien symbolique (avec l'option -s). Le lien physique ne peut adresser que des fichiers, alors que le lien symbolique peut aussi lier des rpertoires. : force la suppression du fichier
Rechercher un fichier
find rep -name nom -print recherche le(s) fichier(s) caractris par name (vous pouvez utiliser une expression rgulire), partir du rpertoire rep et affiche le rsultat. vous pouvez dcrire le fichier rechercher par une expression rguliere, ou indiquer le type de fichiers chercher ou encore le propritaire fichiers... (pour plus de dtails, voir le man) ... vous pouvez aussi executer d'autres actions, comme effacer le
Dans le cas de lien physique, pour effacer le fichier, vous devez effacer tous les liens qui pointent sur ce fichier. Par contre pour des liens symboliques, vous pouvez effacer le fichier sans effacer les liens, mais alors ceux-ci seront invalides. Pour chaque fichier, il y a trois classes d'utilisateurs utilisateur : le propritaire du fichier groupe : autre : r : lecture w : criture le groupe auquel appartient le fichier tous les autres
Dtruire un fichier
rm [-irf] fichiers efface les fichiers(attention, on ne peut pas rcuperer un fichier qui a t effac) -i : intractif, demande une confirmation sur chaque fichier
11/12
affiche la liste des processus actifs. Attention les options de cette commande change suivant le systme que vous avez, (verifiez les par le man)
Tuer un processus
Divers
kill num_process supprime le processus specifi (vous recuperez le numro du processus par un ps). Si malgr la commande, le processus n'est pas dtruit, essayez kill -9 num_process
su [-] utilisateur change l'utilisateur courant . Vous devez saisir le mot de passe du nouvel utilisateur (sauf si le compte d'origine est le root). Si vous indiquez - alors les fichiers de login (.cshrc ou autre suivant le shell) sont excuts et vous vous retrouvez dans le home directory du nouveau compte.
La redirection des erreurs dpend du shell dans lequel vous tes, soit sh , soit ksh ou encore csh
12/12