0% ont trouvé ce document utile (0 vote)
6 vues3 pages

Scripts Bash et commandes Linux essentielles

Ce document présente un TP sur l'écriture de scripts en Linux/Bash, abordant des commandes essentielles comme uname, df, et des concepts de création de scripts. Il inclut des exercices pratiques pour manipuler des fichiers, créer des liens, et utiliser des arguments positionnels dans des scripts. Les étudiants sont également guidés sur l'utilisation de boucles et de conditions dans leurs scripts.

Transféré par

brisingeur15
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues3 pages

Scripts Bash et commandes Linux essentielles

Ce document présente un TP sur l'écriture de scripts en Linux/Bash, abordant des commandes essentielles comme uname, df, et des concepts de création de scripts. Il inclut des exercices pratiques pour manipuler des fichiers, créer des liens, et utiliser des arguments positionnels dans des scripts. Les étudiants sont également guidés sur l'utilisation de boucles et de conditions dans leurs scripts.

Transféré par

brisingeur15
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

IUT Rouen - Réseaux & Télécoms 1 19 novembre 2024

TP2 - Linux/Bash: écriture de scripts

Préambule : la commande uname permet d’obtenir des infos sur l’OS ins- mande au fur et à mesure de leur exécution (équivalent de echo on sous
tallé. Faites man uname, chercher l’option permettant d’avoir toutes les in- Windows). Une fois le déboggage terminé, on remplace par set +x. Taper
formations, et l’utiliser pour avoir la version du noyau Linux qui est utilisée. help set pour plus de détails.
Commande : - version OS : Sous Linux, un script est un fichier texte dont la première ligne contient un
sheebang, qui sert à spécifier l’interpréteur à utiliser. En effet, plusieurs shells
Chercher sur [Link] et donner la dernière version stable ayant la peuvent être utilisés, avec de légères différences de syntaxe ("bash", "sh",
même version majeure : "zsh").
Cette ligne à la forme #!/xxx/yyy , avec /xxx/yyy le programme (shell)
1 Système de fichiers à utiliser avec son chemin absolu.
Pour avoir des informations sur le système de fichiers, deux commandes sont
disponibles : fdisk, qui donne des infos sur la table de partitions (mais dis- Q2.1 - Nous utiliserons bash, trouvez son chemin avec la commande
ponible uniquement par "root") et df, qui donne des infos sur l’occupation which, qui permet d’obtenir la localisation d’une commande. Ceci vous
des partitions. donnera le chemin à préciser dans le sheebang.
Q2.2 - Donner la commande pour créer un dossier tests dans votre dos-
Q1.1 - Avec df, donner l’occupation actuelle du disque, en % :
sier personnel :

Recherche de fichiers (voir annexe TP4) Q2.3 - Déplacer le dossier courant vers tests et y créer un fichier texte
avec touch [Link]. L’éditer ensuite avec nano, y saisir le sheebang
Q1.2 - Donner la commande pour rechercher tous les fichiers pdf dans le de bash en 1ère ligne et y taper ceci :
dossier /usr/share, à partir de votre dossier home.

echo bonjour $USER


echo "bonjour $USER"
Q1.3 - Combien en trouvez-vous :
echo ’bonjour $USER’
Q1.4 - tapez cd /etc et donner la commande pour rechercher tous les
fichiers de configuration (d’extension .conf) qui se trouvent dans ce
dossier et dans tous les sous-répertoires, et qui va afficher leur nombre. Q2.4 - Taper ./[Link] pour l’exécuter. Celà fonctionne-t-il ? Pourquoi ?
(vous aider de la commande ls -l).

2 Premier script Q2.5 - Donner la commande chmod à utiliser pour pouvoir l’exécuter, en
Note En cas de difficulté de mise au point d’un script, on pourra ajouter ne modifiant que les droits pour vous même.
en haut la commande set -x, qui va provoquer l’affichage de chaque com-

R108 - Systèmes d’exploitation 1 S. Kramm


IUT Rouen - Réseaux & Télécoms 1 19 novembre 2024

Q2.6 - Quelle est la différence entre guillements doubles et simple (apos- Q3.6 - Qu’est ce qui a changé dans l’affichage donné par ls -l sur
trophe) : [Link] ?

Q2.7 - Editer le fichier avec nano et supprimer le sheebang. Sauvergardez, Q3.7 - Donner la commande pour compter le nombre de liens qui se
quittez, et essayer de l’exécuter. Cela fonctionne-t-il ? Pourquoi ? (indice : trouvent dans /etc et ses sous-répertoires
chercher dans la liste des variable d’environnement - commande env -le (cf. document TP : Annexes, commande find) :
contenu de la variable SHELL)

Q3.8 - Combien en trouve-t-on :


3 Liens sur fichiers Q3.9 - De façon à les examiner, si on les liste tel quel, leur quantité fait qu’il
Deux types de liens existent sur Linux : des liens symboliques (soft links) et de sera difficile de s’y retrouver. On pourrait rediriger la sortie de la com-
liens physiques (hard links). Le premier peut-être considéré comme un "rac- mande précédente vers un fichier texte, puis étudier ce fichier. L’autre
courci" sur un fichier, le deuxième permet d’avoir un deuxième nom pour le approche consiste à utiliser un filtre dans lesquels on va passer la sortie
même fichier. de la commande de recherche, via un "pipe" :
commande-qui-sort-beaucoup-de-lignes | less
Pour créer un lien :
(on quitte avec la touche ’q’)
— Lien symbolique : ln -s target linkname
— Lien physique : ln target linkname

Q3.1 - Donner la commande pour créer un lien symbolique sur le fichier 4 Arguments positionnels et test
[Link] nommé lien1.
Dans les 2 exercices ci-dessous, il faudra vérifier la présence des arguments,
et afficher un message d’erreur en cas d’utilisation incorrecte.
Q3.2 - Visualisez le contenu du dossier. Comment apparaît lien1 :
Les tests se font avec la syntaxe suivante (attention, espaces obligatoires !) :
if [ a = b ]
Q3.3 - Tapez la commande lien1. Le script s’exécute-t-il ? then
. . . commande
fi
Q3.4 - Donner la commande pour créer un lien physique sur le fichier
[Link] nommé lien2. ou, si on souhaite la branche "else" :
if [ a = b ]
Q3.5 - Visualisez le contenu du dossier (ls -l). Comment apparaît then
lien2 : . . . commande 1
else

R108 - Systèmes d’exploitation 2 S. Kramm


IUT Rouen - Réseaux & Télécoms 1 19 novembre 2024

. . . commande 2 Exercices
fi Q5.1 - Saisir la boucle numérique ci-dessus dans un script [Link] et vé-
rifier le fonctionnement. Modifier ensuite la boucle de façon à ce que le
comptage part de la valeur d’une variable n1 et aille jusqu’à la valeur
Q4.1 - Ecrire un script [Link] qui va prendre un argument et qui va af- d’une variable n2, auquel vous donnerez les valeurs 5 et 10.
ficher OUI ou NON selon que celui-ci correspond (ou pas) à l’utilisateur Q5.2 - Écrire un script [Link] qui va afficher tous les nombres entre a
actuel (quel que soit celui-ci, via la variable d’environnement USER). et b, ces deux valeurs étant données en argument du script. En cas d’ab-
Q4.2 - Ecrire un script [Link] qui va prendre deux arguments : un utili- sence d’un 2e argument, il faudra prendre la valeur du 1er auquel on ajou-
sateur comme 1er argument et un chemin comme 2e, et qui va afficher le tera 10. En cas d’absence du 1er argument, il faudra avoir la valeur 5 par
nombre de fichiers de cet utilisateur dans le chemin indiqué. défaut.
(il faut utiliser la commande find) Exemples :
Exemple d’utilisation : $ ./[Link] user1 /home $ ./[Link] → affiche de 5 à 15
$ ./[Link] 3 → affiche de 3 à 13
$ ./[Link] 4 8 → affiche de 4 à 8
5 Boucles "for" Q5.3 - Écrire un script [Link] qui itère sur tous les fichiers de /etc com-
En Bash, on peut itérer sur des valeurs numériques ou sur des fichiers. Pour mencant par la première lettre donnée en argument du script, et qui af-
itérer par exemple sur tous les fichiers d’un dossier ayant l’extension sh, on fiche le type de fichier, avec la commande file
écrira : (utilisation de la commande "for" pour l’itération).
f o r var in * . sh
do
commande utilisant $var
done

Ceci va exécuter "commande" en remplaçant "var" par le nom de chaque fi-


chier répondant à la spécification de fichier donnée. La commande sera exé-
cutée autant de fois qu’il y a de fichiers correspondants.
Pour les boucles numériques, la syntaxe est la suivante :
f o r ( ( i = 1 ; i<=100;i++) ) ;
do
echo $i
done

R108 - Systèmes d’exploitation 3 S. Kramm

Vous aimerez peut-être aussi