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 2 Système Exploitation


Série 3


Exercice 1


  • Quelles commandes Linux devez-vous exécuter pour obtenir à l’écran :
    Il y a xxx utilisateurs de ce systeme dont le login shell est bash
  • Indication
    • Pour passer la sortie d'une commande à une autre commande, vous pouvez utiliser les caractères $( command ).
      Exemple :
    • echo "Il y a $(ls | wc -l) fichiers dans desktop" # Affiche le nombre de fichiers dans le répertoire courant (desktop)
      
    • Pour obtenir les lignes qui contiennent une chaîne de caractères, utilisez la commande grep [CHAÎNE] [DESTINATION]
    • Pour retourner le nombre de lignes à partir de grep, utiliser l'option -c
    Correction
      echo "Il y a $(grep -c "/bin/bash" /etc/passwd) utilisateurs de ce systeme dont le login shell est bash"
      

Exercice 2


  • En utilisant la commande find, trouvez et listez les noms de :
    1. Tous les fichiers sous le répertoire /etc dont les noms commencent par rc,
    2. Indication
      • Pour trouver les fichiers commençant par le caractère rc, utilisez la séquence "rc* ". Le « * » signifie 0 à n fois caractères, donc "rc*" correspond aux chaînes de caractères qui commencent par les caractères rc.
      • Les fichiers sont :
        • Fichiers réguliers
        • Répértoires
        • Liens symboliques
        • ...
      • Les fichiers réguliers sont :
        • Fichiers textes (e.g., .txt, .csv)
        • Fichiers binaires (e.g, programmes compilé, images, exécutables comme .exe et .com)
        • Scripts executables (e.g, .sh)
      • Utiliser l'option -type f pour trouver les fichiers réguliers.
      Correction
        find /etc -name  "rc*" -print # Recherche dans /etc tous les fichiers/dossiers dont le nom commence par "rc"
        
    3. Tous les fichiers réguliers vous appartenant ; mettez le résultat dans le fichier /tmp/findmoi et les erreurs dans /dev/null.
    4. Indication
      • Les fichiers sont :
        • Fichiers réguliers
        • Répértoires
        • Liens symboliques
        • ...
      • Les fichiers réguliers sont :
        • Fichiers textes (e.g., .txt, .csv)
        • Fichiers binaires (e.g, programmes compilé, images, exécutables comme .exe et .com)
        • Scripts executables (e.g, .sh)
      • Utiliser l'option -type f pour trouver les fichiers réguliers.
      • Chercher les fichiers réguliers dans $HOME, /tmp, et /var/spool au lieu de simplement rechercher dans / (la racine du système) pour plusieurs raisons :
        1. Efficacité
          • Rechercher dans / (toute la racine) est très lent et consomme beaucoup de ressources car cela inclut tous les fichiers du système, y compris ceux de l’administrateur (root) et d’autres utilisateurs.
        2. Permissions
          • En recherchant dans /, vous risquez de rencontrer de nombreux messages d’erreur “Permission denied”, car certains répertoires et fichiers ne sont accessibles qu’à l’administrateur. Cela rendrait la recherche plus compliquée.
      Correction
        RACINE="$HOME /tmp /var/spool"
        find $RACINE -type f -user $(whoami) -print >/tmp/findmoi 2>/dev/null
        
      • Remarquez que je n'ai pas inclus l'option -print parce que cela cacherait la commande que j'ai exécutée dans le terminal. J'ai donc décidé de ne pas la mentionner, mais la réponse finale devrait l'inclure comme le code fourni ci-dessus.
    5. Tous les sous–répertoires de /etc.
    6. Correction
        find /etc -type d -print # Recherche et affiche tous les répertoires dans /etc
        
    7. Tous les fichiers réguliers se trouvant sous votre répertoire d’accueil et qui n’ont pas été modifiés dans les 10 derniers jours.
    8. Indication
      • Utiliser l'option -mtime [(+/-) n] avec la commande find pour trouver les fichiers qui sont été modifiés aprés, avant ou pendant n jours.
      Correction
        find $HOME -type f -mtime +9 -print # Recherche les fichiers modifiés il y a plus de 9 jours dans le répertoire $HOME
        
      • Remarque

      • $HOME est identique à ~, les deux correspondent à votre répertoire d’accueil.

Exercice 3


  • Trouvez à partir de votre répertoire d’accueil, le nombre de fichiers ayant une taille supérieure à 1 Mega-octets et stockez leurs noms dans un fichier (utilisez la commande tee).
  • Correction
      find ~ -size 1M | tee fichiers.txt # Recherche les fichiers de 1 Mo dans le 
                          répertoire d’accueil et enregistre la liste dans fichiers.txt
      

Exercice 4


  • Créez dans le répertoire rep1 les fichiers suivants : fich1, fich2, fich11,
    fich12, fich1a, ficha1, fich33,.fich1, .fich2, toto, afich.
    Listez les fichiers :
    1. Indication
      ┌────┬───────────────────────────────┬─────────────────────────────────────────────────────────────────────────────┐
      │ #  │ Motif                         │ Effet                                                                       │
      ├────┼───────────────────────────────┼─────────────────────────────────────────────────────────────────────────────┤
      │ 1  │ *                             │ Correspond à zéro ou plusieurs caractères.                                  │
      │    │                               │ Exemple : `ba*` correspond à `ba`, `baa`, `baaa`, et tout fichier ou        │
      │    │                               │ dossier commençant par `ba`.                                                │
      ├────┼───────────────────────────────┼─────────────────────────────────────────────────────────────────────────────┤
      │ 2  │ ?                             │ Correspond à exactement un caractère.                                       │
      │    │                               │ Exemple : `ba?` correspond à `baa`, `bab`, `bac`, mais pas `ba` ou `baaa`.  │
      ├────┼───────────────────────────────┼─────────────────────────────────────────────────────────────────────────────┤
      │ 3  │ [abc]                         │ Correspond à un caractère unique parmi ceux indiqués dans les crochets.     │
      │    │                               │ Exemple : `ba[xyz]` correspond à `bax`, `bay` ou `baz`.                     │
      ├────┼───────────────────────────────┼─────────────────────────────────────────────────────────────────────────────┤
      │ 4  │ [!abc]                        │ Correspond à un caractère unique qui n’est pas dans les crochets.           │
      │    │                               │ Exemple : `ba[!xyz]` correspond à `bab`, `bac`, mais pas à `bax`, `bay`.    │
      ├────┼───────────────────────────────┼─────────────────────────────────────────────────────────────────────────────┤
      │ 5  │ [a-z]                         │ Correspond à un caractère dans une plage définie.                           │
      │    │                               │ Exemple : `ba[a-c]` correspond à `baa`, `bab`, ou `bac`.                    │
      ├────┼───────────────────────────────┼─────────────────────────────────────────────────────────────────────────────┤
      │ 6  │ {foo,bar}                     │ Correspond à une des chaînes spécifiées entre accolades.                    │
      │    │                               │ Exemple : `ba{r,z}` correspond à `bar` ou `baz`.                            │
      ├────┼───────────────────────────────┼─────────────────────────────────────────────────────────────────────────────┤
      │ 7  │ \                             │ Échappe les caractères spéciaux pour qu’ils soient traités littéralement.   │
      │    │                               │ Exemple : `ba\*` correspond littéralement à `ba*` et non aux fichiers.      │
      └────┴───────────────────────────────┴─────────────────────────────────────────────────────────────────────────────┘
      
    2. Dont les noms commencent par fich,
    3. Correction
      ls fich* # Liste tous les fichiers ou dossiers dont le nom commence par "fich" dans le répertoire courant
      
    4. Dont les noms commencent par fich suivi d’un seul caractère,
    5. Correction
      ls fich?
      
    6. Dont les noms commencent par fich suivi d’un chiffre,
    7. Correction
      ls fich[0-9] 
      
    8. Dont les noms commencent par .,
    9. Correction
      ls .??* # Ne pas prendre . et .. 
      
    10. Dont les noms ne commencent pas par f,
    11. Correction
      ls [!f]*  
      
    12. Dont les noms contiennent fich.
    13. Correction
      ls *fich*