Système d’exploitation I – Théorie 1EXP1A-T PDF
Document Details
Uploaded by CooperativeSupernova
Haute École Bruxelles-Brabant
2025
null
M. Bastreghi (MBA) M. Codutti (MCD)
Tags
Summary
Ce document présente une théorie sur les commandes Linux, y compris l'anatomie des commandes, les arguments et les options. Il inclut des exemples et des exercices.
Full Transcript
Système d’exploitation I – Théorie 1EXP1A-T M. Bastreghi (MBA) M. Codutti (MCD) Haute École Bruxelles-Brabant Département des Sciences Informatiques Campus de l’École Supérieure d’Informatique Année académique 2024 / 2025 3 Les co...
Système d’exploitation I – Théorie 1EXP1A-T M. Bastreghi (MBA) M. Codutti (MCD) Haute École Bruxelles-Brabant Département des Sciences Informatiques Campus de l’École Supérieure d’Informatique Année académique 2024 / 2025 3 Les commandes Linux Anatomie Le nom Les arguments Les options Les globs Quelques commandes courantes Anatomie d’une commande La forme générale d’une commande est Le nom de la commande peut faire référence à 1 une commande interne (peu nombreuses, ex : cd) 2 un chemin (relatif ou absolu) du fichier contenant le code de la commande (ex : /usr/bin/bash) 3 un nom de fichier contenant le code de la commande which commande - montre le chemin absolu de l’exécutable d’une commande HE2B - ESI 2023 – 2024 1EXP1A – Ch. 3 : Les commandes Linux 55 / 66 Le PATH Le bash cherche partout une commande ? Non ! ⋄ Uniquement dans les dossiers repris dans une variable d’environnement appelée PATH ⋄ Plus rapide et plus sûr Note Variable d’environnement : variable contenant une chaine, connue par les processus. Note Pour voir le contenu d’une variable d’environnement : utiliser le caractère d’expansion $ et la commande echo. Ex : echo $PATH /home/user0/bin:/usr/local/bin:/usr/bin:/bin (une suite de dossiers, séparés par :) HE2B - ESI 2023 – 2024 1EXP1A – Ch. 3 : Les commandes Linux 56 / 66 Les arguments (ou paramètres) ⋄ Précisent à la commande sur quoi travailler ⋄ Ex : mv oldname newname Le fichier à renommer est oldname Son nouveau nom sera newname ⋄ Leur nombre et ordre sont imposés par la commande ⋄ Par convention, les paramètres sont placés en fin de commande (après les options) HE2B - ESI 2023 – 2024 1EXP1A – Ch. 3 : Les commandes Linux 57 / 66 Les options ⋄ Modifient le comportement de la commande ⋄ Ex : mv -i oldname newname (confirmation si il faut écraser le fichier newname si il existe déja) ⋄ Certaines options ont un paramètre (Ex : tar -c -f "backup.tar" ˜/Documents où "backup.tar" est le paramètre de l’option f) peut aussi s’écrire tar -cf... ⋄ La forme plus moderne est --option ou --option=valeur Note Le début de la page de manuel de la commande mv, man mv, explique son utilisation mv [OPTION]... [-T] SOURCE CIBLE mv [OPTION]... SOURCE... RÉPERTOIRE mv [OPTION]... -t RÉPERTOIRE SOURCE...... HE2B - ESI 2023 – 2024 1EXP1A – Ch. 3 : Les commandes Linux 58 / 66 Exercices 1 Cochez les commandes ayant un seul paramètre ✓ ls -a / ✓ echo "hello world" ✓ cp old new ✓ cd. 2 Si le fichier /usr/bin/brol contient le code d’un programme, que doit contenir la variable d’environnement PATH pour qu’il suffise d’entrer brol dans le shell pour l’exécuter ? HE2B - ESI 2023 – 2024 1EXP1A – Ch. 3 : Les commandes Linux 59 / 66 Les globs (jokers) Étude de cas : Alice veut supprimer tous les fichiers de son dossier courant qui commencent par temp 1 Elle peut taper une commande pour chaque fichier (lourd) $ rm temp1 $ rm temp2 $ rm temp3 2 Elle peut tous les supprimer en une seule commande (car rm accepte plusieurs fichiers en argument) $ rm temp1 temp2 temp3 3 Elle peut utiliser un glob $ rm temp* HE2B - ESI 2023 – 2024 1EXP1A – Ch. 3 : Les commandes Linux 60 / 66 ? : un caractère quelconque Dans un argument, ? désigne un caractère quelconque (un seul) placé exactement à cet endroit là Exemples temp? correspond à temp1, tempa mais pas à temp10 ni 1temp ni temp a?c? correspond à abcd, acca mais pas à abc ni acd a?? correspond à abc, aa0 mais pas à a1 ni a100 HE2B - ESI 2023 – 2024 1EXP1A – Ch. 3 : Les commandes Linux 61 / 66 * : une séquence de caractères Dans un argument, * désigne une séquence de caractères quelconques (voire un seul ou même aucun) placée exactement à cet endroit là Exemples temp* correspond à temp1, tempa, temp10, temp mais pas à 1temp ni 10 *.txt correspond à note.txt, a.txt mais pas à note.pdf ni note-txt n-*-s-*.txt correspond à n-exp1-s-1.txt mais pas à note-exp1-2.txt ni n=exp1=s=1.txt On peut aussi les combiner... HE2B - ESI 2023 – 2024 1EXP1A – Ch. 3 : Les commandes Linux 62 / 66 Les globs sont traités par le shell Lorsqu’un glob apparait dans un argument ⋄ Le shell considère l’argument comme un nom de fichier/répertoire ⋄ Il cherche les fichiers/répertoires qui peuvent correspondre Dans le dossier courant si c’est juste un nom Dans le dossier désigné si c’est un chemin absolu ou relatif ⋄ Il remplace l’argument par tous les fichiers/répertoires trouvés Ou le laisse tel quel si aucune correspondance trouvée ⋄ C’est totalement transparent pour la commande Ne fonctionne que si la commande accepte ce nombre de noms de fichiers HE2B - ESI 2023 – 2024 1EXP1A – Ch. 3 : Les commandes Linux 63 / 66 Exercices 1 Donnez des noms de fichiers qui peuvent correspondre à etd?????.txt *.* *.pdf note?.* 2 Que fait la commande rm td?/*.java ? 3 Quelle différence de comportement entre ls et ls * ? 4 Que fait la commande rm "*" ? 5 Quelle différence entre find -name * et find -name "*" ? HE2B - ESI 2023 – 2024 1EXP1A – Ch. 3 : Les commandes Linux 64 / 66 Quelques commandes courantes mkdir/rmdir crée/supprime un dossier touch crée un fichier vide/met à jour sa date de modification mkdir/rmdir Crée/supprime un dossier ls affiche le contenu d’un répertoire cat/less affiche le contenu d’un fichier cd se déplacer dans le système de fichier pwd affiche le répertoire courant mv déplace/renomme un fichier cp copie un fichier rm supprime un fichier du affiche l’espace disque occupé par un fichier/répertoire date affiche la date et l’heure file affiche le type d’un fichier (texte, binaire...) diff affiche les différences entre 2 fichiers whoami indique votre login groups affiche vos groupes (...) HE2B - ESI 2023 – 2024 1EXP1A – Ch. 3 : Les commandes Linux 65 / 66 Quelques commandes courantes (...) ps/top affiche les processus en cours kill envoie un signal à un processus, par défaut, cela tue le processus chmod modifie les permissions d’un fichier ou répertoire chgrp change le groupe d’un fichier find cherche un fichier selon de nombreux critères grep sélectionne des lignes contenant un certain texte head/tail n’affiche que les 1res/dernières lignes cut ne garde que certaines colonnes sort trie les lignes uniq supprime les doublons Note Consultez les manuels pour les détails HE2B - ESI 2023 – 2024 1EXP1A – Ch. 3 : Les commandes Linux 66 / 66