Spaceuit


Informatique Appliquée

Fillière Intelligence Artificielle

Automne 2024

Ali El Hourch
[email protected]


Guide
Nouveau
Assistant AI
Visual Studio Code Google Classroom Whatsapp Whatsapp Discord Discord
Module 1: Probabilités Et Statistiques Module 2: Architecture Des Ordinateurs Module 3: Structure De Données En C Module 4: Système d'exploitation 1 Module 5: Programmation Web 1 Module 6: Langues Etrangéres Module 7: Compétences Culturelles & Artistiques

Semestres

Automne 2024

Tronc Communs

Informatique Appliquée

Série 1 Système Exploitation


Série 2


Exercice 1


  • Navigation et manipulation des répertoires
    1. Affichez le répertoire de travail actuel à l'aide de la commande pwd.
    2. Créez un nouveau répertoire appelé "mon_repertoire".
    3. Utilisez cd pour accéder au répertoire nouvellement créé.
    4. Affichez à nouveau le répertoire de travail actuel avec pwd.
    5. Créez un sous-répertoire nommé "sous_repertoire" dans "mon_repertoire".
    6. Utilisez cd pour accéder au sous-répertoire "sous_repertoire".
    7. Affichez le contenu du répertoire courant avec la commande ls.
    8. Revenez au répertoire parent en utilisant cd ...
    9. Supprimez le répertoire "sous_repertoire" vide en utilisant la commande rmdir.
    10. Affichez à nouveau le contenu du répertoire parent avec ls.
    11. Utilisez cd pour retourner au répertoire d'accueil de l'utilisateur.
    Correction
    ┌────┬───────────────────────────────┬───────────────────────────────────────────────────────────────────────┐
    │ #  │ Commande                      │ Effet                                                                 │
    ├────┼───────────────────────────────┼───────────────────────────────────────────────────────────────────────┤
    │ 1  │ pwd                           │ Affiche le chemin complet du répertoire de travail actuel.            │
    ├────┼───────────────────────────────┼───────────────────────────────────────────────────────────────────────┤
    │ 2  │ mkdir mon_repertoire          │ Crée un nouveau répertoire appelé "mon_repertoire".                   │
    ├────┼───────────────────────────────┼───────────────────────────────────────────────────────────────────────┤
    │ 3  │ cd mon_repertoire             │ Change le répertoire courant pour accéder à "mon_repertoire".         │
    ├────┼───────────────────────────────┼───────────────────────────────────────────────────────────────────────┤
    │ 4  │ pwd                           │ Affiche de nouveau le chemin complet du répertoire courant.           │
    ├────┼───────────────────────────────┼───────────────────────────────────────────────────────────────────────┤
    │ 5  │ mkdir sous_repertoire         │ Crée un sous-répertoire nommé "sous_repertoire" dans "mon_repertoire".│
    ├────┼───────────────────────────────┼───────────────────────────────────────────────────────────────────────┤
    │ 6  │ cd sous_repertoire            │ Change le répertoire courant pour accéder à "sous_repertoire".        │
    ├────┼───────────────────────────────┼───────────────────────────────────────────────────────────────────────┤
    │ 7  │ ls                            │ Liste le contenu du répertoire courant ("sous_repertoire").           │
    ├────┼───────────────────────────────┼───────────────────────────────────────────────────────────────────────┤
    │ 8  │ cd ..                         │ Revient au répertoire parent (ici "mon_repertoire").                  │
    ├────┼───────────────────────────────┼───────────────────────────────────────────────────────────────────────┤
    │ 9  │ rmdir sous_repertoire         │ Supprime le répertoire vide "sous_repertoire".                        │
    ├────┼───────────────────────────────┼───────────────────────────────────────────────────────────────────────┤
    │ 10 │ ls                            │ Affiche le contenu du répertoire parent (ici "mon_repertoire").       │
    ├────┼───────────────────────────────┼───────────────────────────────────────────────────────────────────────┤
    │ 11 │ cd ~                          │ Retourne au répertoire d'accueil de l'utilisateur.                    │
    └────┴───────────────────────────────┴───────────────────────────────────────────────────────────────────────┘
    

Exercice 2


  • Recherche de fichiers
    1. Créez un nouveau fichier vide nommé "mon_fichier.txt".
    2. Utilisez la commande echo pour ajouter du texte à "mon_fichier.txt". Par exemple, ajoutez "Ceci est un exemple de texte." au fichier.
    3. Affichez le contenu du fichier "mon_fichier.txt" à l'aide de la commande cat.
    4. Utilisez la commande cp pour créer une copie du fichier "mon_fichier.txt" nommée "copie_fichier.txt".
    5. Renommez "copie_fichier.txt" en "backup.txt" en utilisant la commande mv.
    6. Affichez le contenu du répertoire courant pour vérifier le nouveau nom du fichier avec ls.
    7. Supprimez le fichier "backup.txt" à l'aide de la commande rm.
    8. Utilisez ls pour vérifier que le fichier a été supprimé.
    Indication
    Commande                                 Effet
    ------------------------------------     -----------------------------------------------
    echo "Exemple text" > text.txt           Crée le fichier "text.txt" (ou le remplace s'il existe déjà) et y ajoute la ligne spécifiée.
    echo "Autre ligne texte" >> text.txt     Ajoute une nouvelle ligne au fichier sans écraser son contenu précédent.
    
    Correction
    ┌───┬───────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────┐
    │ # │ Commande                                                      │ Effet                                                │
    ├───┼───────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────┤
    │ 1 │ touch mon_fichier.txt                                         │ Crée un nouveau fichier vide nommé "mon_fichier.txt" │
    ├───┼───────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────┤
    │ 2 │ echo "Ceci est un exemple de texte." > mon_fichier.txt        │ Ajoute du texte au fichier "mon_fichier.txt".        │
    ├───┼───────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────┤
    │ 3 │ cat mon_fichier.txt                                           │ Affiche le contenu du fichier "mon_fichier.txt".     │
    ├───┼───────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────┤
    │ 4 │ cp mon_fichier.txt copie_fichier.txt                          │ Crée une copie nommée "copie_fichier.txt".           │
    ├───┼───────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────┤
    │ 5 │ mv copie_fichier.txt backup.txt                               │ Renomme "copie_fichier.txt" en "backup.txt".         │
    ├───┼───────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────┤
    │ 6 │ ls                                                            │ Vérifie le nouveau nom du fichier dans le répertoire │
    ├───┼───────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────┤
    │ 7 │ rm backup.txt                                                 │ Supprime le fichier "backup.txt".                    │
    ├───┼───────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────┤
    │ 8 │ ls                                                            │ Vérifie que "backup.txt" a bien été supprimé.        │
    └───┴───────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────┘
    

Exercice 3


  • Recherche de fichiers
    1. Utilisez la commande find pour rechercher tous les fichiers portant le nom ".bash_profile" à partir du répertoire de l'utilisateur connecté et affichez-les.
    2. Utilisez find pour rechercher tous les fichiers de taille supérieure à 400 000 caractères à partir du répertoire courant et affichez la liste de ces fichiers.
    3. Changez de répertoire pour vous positionner dans le répertoire de l'utilisateur connecté, puis utilisez find pour rechercher tous les fichiers portant le nom "core". Ensuite, supprimez ces fichiers à l'aide de la commande rm.
    Correction
    ┌───┬──────────────────────────────────────────────┬─────────────────────────────────────────────┐
    │ # │ Commande                                     │ Effet                                       │
    ├───┼──────────────────────────────────────────────┼─────────────────────────────────────────────┤
    │ 1 │ find ~ -name .bash_profile -print            │ Recherche tous les fichiers nommés          │
    │   │                                              │ ".bash_profile" à partir du répertoire      │
    │   │                                              │ de l'utilisateur connecté.                  │
    ├───┼──────────────────────────────────────────────┼─────────────────────────────────────────────┤
    │ 2 │ find . -size +400000c -print                 │ Recherche tous les fichiers de taille       │
    │   │                                              │ supérieure à 400 000 caractères             │
    │   │                                              │ à partir du répertoire courant.             │
    ├───┼──────────────────────────────────────────────┼─────────────────────────────────────────────┤
    │ 3 │ cd ~                                         │ Changement de répertoire pour celui         │
    │   │                                              │ de l'utilisateur connecté.                  │
    │   │ find . -name "core" -exec rm -f {} \;        │ Recherche et supprime les fichiers nommés   │
    │   │                                              │ "core" dans le répertoire de                │
    │   │                                              │ l'utilisateur connecté.                     │
    └───┴──────────────────────────────────────────────┴─────────────────────────────────────────────┘
    

Exercice 4


  • Recherche de fichiers et création de liens symboliques
    1. Utilisez la commande locate pour rechercher tous les fichiers et répertoires contenant la chaîne de caractères "linux" dans leur nom.
    2. Affichez la liste des résultats de la recherche.
    3. Choisissez l'un des fichiers ou répertoires trouvés dans l'étape précédente et utilisez la commande ln pour créer un lien symbolique vers ce fichier ou répertoire dans votre répertoire personnel.
    4. Vérifiez que le lien symbolique a été créé avec succès en utilisant la commande ls.
    5. Utilisez la commande rm pour supprimer le lien symbolique que vous avez créé.
    Indication
    • Si l'exécution de locate renvoie une erreur : « La commande 'locate' n'a pas été trouvée », exécutez alors : sudo apt install plocate
    • Pour créer un lien symbolique vers un fichier ou un répertoire, exécutez la commande ln -s [CHEMIN D'UNE RÉPERTOIRE OU FICHIER] [NOM DU LIEN].
    Correction
    ┌────┬───────────────────────────────┬────────────────────────────────────────────────────────────────────────┐
    │ #  │ Commande                      │ Effet                                                                  │
    ├────┼───────────────────────────────┼────────────────────────────────────────────────────────────────────────┤
    │ 1  │ locate linux                  │ Recherche tous les fichiers et répertoires contenant la chaîne         │
    │    │                               │ de caractères "linux" dans leur nom et affiche la liste des résultats. │
    ├────┼───────────────────────────────┼────────────────────────────────────────────────────────────────────────┤
    │ 2  │ ln -s /var/lib ~/lien         │ Crée un lien symbolique nommé "lien_symbolique" dans le répertoire     │
    │    │                               │ personnel vers un fichier ou répertoire trouvé lors de la recherche.   │
    ├────┼───────────────────────────────┼────────────────────────────────────────────────────────────────────────┤
    │ 3  │ ls ~                          │ Vérifie si le lien symbolique a été créé avec succès dans le répertoire│
    │    │                               │ personnel.                                                             │
    ├────┼───────────────────────────────┼────────────────────────────────────────────────────────────────────────┤
    │ 4  │ rm ~/lien                     │ Supprime le lien symbolique que vous avez créé.                        │
    └────┴───────────────────────────────┴────────────────────────────────────────────────────────────────────────┘
    

Exercice 5


  • Écrivez votre propre commande "dir" affichant page par page les informations données par la commande ls -l, incluant les fichiers cachés (sauf . et ..)
  • Indication
    • Pour créer votre propre commande sous Linux, vous pouvez déclarer une fonction dans votre terminal comme suit :
    • test() {
          echo "Bonjour" # Afficher Bonjour
      }
      
    • Pour avoir accès aux arguments passés avec la commande, vous pouvez utiliser les caractères :
    • ┌────┬──────────────────────────┬───────────────────────────────────────────────────────────────────────────────┐
      │ #  │ Caractère                │ Effet                                                                         │
      ├────┼──────────────────────────┼───────────────────────────────────────────────────────────────────────────────┤
      │ 1  │ $0                       │ Représente l'intégralité de la correspondance trouvée ou le nom du script     │
      │    │                          │ dans les scripts shell.                                                       │
      ├────┼──────────────────────────┼───────────────────────────────────────────────────────────────────────────────┤
      │ 2  │ $1, $2,...               │ Correspond aux groupes capturés dans une expression régulière.                │
      │    │                          │ Exemple : $1 est le premier groupe capturé.                                   │
      ├────┼──────────────────────────┼───────────────────────────────────────────────────────────────────────────────┤
      │ 3  │ $*                       │ Regroupe tous les arguments passés à un script en une seule chaîne.           │
      ├────┼──────────────────────────┼───────────────────────────────────────────────────────────────────────────────┤
      │ 4  │ $#                       │ Affiche le nombre total d'arguments passés à un script.                       │
      ├────┼──────────────────────────┼───────────────────────────────────────────────────────────────────────────────┤
      │ 5  │ $?                       │ Retourne le code de sortie de la dernière commande exécutée.                  │
      ├────┼──────────────────────────┼───────────────────────────────────────────────────────────────────────────────┤
      │ 6  │ $$                       │ Représente l'ID de processus (PID) du script en cours d'exécution.            │
      ├────┼──────────────────────────┼───────────────────────────────────────────────────────────────────────────────┤
      │ 7  │ $_                       │ Représente le dernier argument de la commande précédente.                     │
      └────┴──────────────────────────┴───────────────────────────────────────────────────────────────────────────────┘
      
    • Exemple :
    • test() {
          echo $1 # Affiche le premier argument passé
      }
      
    Correction
      dir() {
          ls $* -l | more # Affiche la liste des fichiers en format détaillé et passe la sortie à la commande "more"
      }
      

Exercice 6


  1. Écrivez un alias imposant la confirmation sur la suppression des fichiers.
  2. Indication
    • Pour supprimer un fichier avec confirmation, exécutez la commande :
    • rm -i file.txt
      
    • Pour confirmer la suppression, entrer Y ou Yes. Si non, N ou No.
    • Pour créer un alias pour une commande, exécutez :
    • alias print="echo" # Crée un alias nommé "print" qui exécute la commande "echo"
      
    Correction
      alias rm="rm -i" # Crée un alias pour "rm" avec confirmation avant suppression
      
  3. Écrivez la commande "psmoi" permettant d’obtenir la liste de tous les processus vous appartenant (utilisez la commande ps).
  4. Indication
    • La commande ps permet d'afficher des informations sur les processus actifs.
    • L'option -f produit une liste au format complet contenant des informations plus détaillées sur chaque processus, notamment:
      • UID
      • PID (Process ID)
      • PPID (Parent Process ID)
      • C (CPU Usage)
      • STIME (Start time)
      • TTY (Terminal)
      • CMD (Command)
    • L'option -u [Chaine] filtre la sortie pour afficher les éléments qui contiennent la chaîne[Chaine]
    • La variable $LOGNAME contient le nom d'utilisateur de l'utilisateur actuellement connecté.
    Correction
    • Avec alias :
    • alias psmoi="ps -f -u $LOGNAME"
      
    • Avec les fonctions :
    • Si vous avez déjà défini un alias psmoi, vous devrez le désaliaser pour créer une fonction du même nom.
    • psmoi() {
          ps -f -u $LOGNAME 
      }
      

Exercice 7


  • Modifier :
    • l’invite afin qu’elle indique le nom de l’ordinateur sur lequel vous travaillez et votre répertoire courant,
    • la valeur par défaut des protections des fichiers et répertoires que vous allez créer.
  • De plus vous souhaitez retrouver ces modifications lors de chacune de vos entrées en session.
  • Indication
    • Ici, l'invite signifie le PWD qui est affiché dans votre terminal :
    • Par exemple, l'invite ici est : alielhourch@Ubuntu:~/Desktop$
    • Cette invitation est la variable PS1.
    • Les caractères affichés comme \u, \e, \033 sont des caractères spéciaux qui insèrent une variable comme le nom de l'utilisateur ou changent la couleur du texte.
    • Par exemple, l'option -e permet de formater le texte avec des séquences spéciales comme :
      \[\033[01;32m
      qui met la couleur de texte en vert et
      \[\033[00m
      pour réinitialiser la séquence précédente.
    • Ensuite, pour changer l'invite qui s'affiche dans le terminal, il suffit de changer la valeur de la variable PS1.
    • Il existe plusieurs caractères spéciaux, dont les plus importants :
      • \u : Insère le nom d'utilisateur de l'utilisateur actuel.
      • \h : Insère le HOME du système.
      • \w : Insère le répertoire de travail actuel.
      • \W : Insère le nom de base du répertoire de travail actuel.
      • \n : Insère une nouvelle ligne.
      • \t : Insère l'heure actuelle au format 24 heures (HH:MM:SS).
      • \d : Insère la date actuelle au format « Weekday Month Day » (par exemple, « Mon Sep 20 »).
      • \\$: : Insère le symbole $ pour un utilisateur normal ou le symbole # pour l'utilisateur root.
    • Les sequences de couleur :
      • Noir : \[\033[0;30m\]
      • Rouge : \[\033[0;31m\]
      • Vert : \[\033[0;32m\]
      • Jaune : \[\033[0;33m\]
      • Bleu : \[\033[0;34m\]
      • Violet : \[\033[0;35m\]
      • Cyan : \[\033[0;36m\]
      • Blanc : \[\033[0;37m\]
    Correction
      PS1="\h:$PWD$ "
      

Exercice 8


  • Écrivez votre propre fonction "fd" permettant de rechercher à partir du répertoire courant l’emplacement d’un répertoire. Testez votre fonction en recherchant tous les répertoires commençant par r.
  • Indication
    • Pour trouver des éléments de type répertoire, utilisez l'option -type d
    • Pour trouver les fichiers commençant par le caractère r, utilisez la séquence "r* ". Le « * » signifie 0 à n fois caractères, donc "r*" correspond aux chaînes de caractères qui commencent par le caractère r.
    Correction
      fd() {
          find . -name "$1" -type d -print
      }