┌────┬───────────────────────────────┬───────────────────────────────────────────────────────────────────────┐ │ # │ 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. │ └────┴───────────────────────────────┴───────────────────────────────────────────────────────────────────────┘
Série 1 Système Exploitation
Série 2
Exercice 1
- Navigation et manipulation des répertoires
- Affichez le répertoire de travail actuel à l'aide de la commande pwd.
- Créez un nouveau répertoire appelé "mon_repertoire".
- Utilisez cd pour accéder au répertoire nouvellement créé.
- Affichez à nouveau le répertoire de travail actuel avec pwd.
- Créez un sous-répertoire nommé "sous_repertoire" dans "mon_repertoire".
- Utilisez cd pour accéder au sous-répertoire "sous_repertoire".
- Affichez le contenu du répertoire courant avec la commande ls.
- Revenez au répertoire parent en utilisant cd ...
- Supprimez le répertoire "sous_repertoire" vide en utilisant la commande rmdir.
- Affichez à nouveau le contenu du répertoire parent avec ls.
- Utilisez cd pour retourner au répertoire d'accueil de l'utilisateur.
Correction
Exercice 2
- Recherche de fichiers
- Créez un nouveau fichier vide nommé "mon_fichier.txt".
- Utilisez la commande echo pour ajouter du texte à "mon_fichier.txt". Par exemple, ajoutez "Ceci est un exemple de texte." au fichier.
- Affichez le contenu du fichier "mon_fichier.txt" à l'aide de la commande cat.
- Utilisez la commande cp pour créer une copie du fichier "mon_fichier.txt" nommée "copie_fichier.txt".
- Renommez "copie_fichier.txt" en "backup.txt" en utilisant la commande mv.
- Affichez le contenu du répertoire courant pour vérifier le nouveau nom du fichier avec ls.
- Supprimez le fichier "backup.txt" à l'aide de la commande rm.
- 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
- 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.
- 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.
- 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
- Utilisez la commande locate pour rechercher tous les fichiers et répertoires contenant la chaîne de caractères "linux" dans leur nom.
- Affichez la liste des résultats de la recherche.
- 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.
- Vérifiez que le lien symbolique a été créé avec succès en utilisant la commande ls.
- Utilisez la commande rm pour supprimer le lien symbolique que vous avez créé.
- 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].
Indication
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 ..)
- Pour créer votre propre commande sous Linux, vous pouvez déclarer une fonction dans votre terminal comme suit :
- Pour avoir accès aux arguments passés avec la commande, vous pouvez utiliser les caractères :
- Exemple :
Indication
test() { echo "Bonjour" # Afficher Bonjour }
┌────┬──────────────────────────┬───────────────────────────────────────────────────────────────────────────────┐ │ # │ 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. │ └────┴──────────────────────────┴───────────────────────────────────────────────────────────────────────────────┘
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
- Écrivez un alias imposant la confirmation sur la suppression des fichiers.
- Pour supprimer un fichier avec confirmation, exécutez la commande :
- Pour confirmer la suppression, entrer Y ou Yes. Si non, N ou No.
- Pour créer un alias pour une commande, exécutez :
- Écrivez la commande "psmoi" permettant d’obtenir la liste de tous les processus vous appartenant (utilisez la commande ps).
- 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é.
- Avec alias :
- 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.
Indication
rm -i file.txt
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
Indication
Correction
alias psmoi="ps -f -u $LOGNAME"
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.
- 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\]
Indication
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.
- 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.
Indication
Correction
fd() { find . -name "$1" -type d -print }