Gestion des fichiers sous Linux (2IDL - FS Tétouan 2024/2025) PDF

Document Details

WorthHarmonica

Uploaded by WorthHarmonica

Tétouan

2024

Zaynab El Khattabi

Tags

Linux file management operating systems computer science

Summary

These are notes from a lecture on file management in Linux systems. They cover topics such as file types, paths, and command-line tools. The notes seem to be part of a computer science course.

Full Transcript

Année académique : 2024/2025 2IDL – FS Tétouan Les Systèmes d’exploitation Gestion des fichiers sous Linux Pr. Zaynab El Khattabi La gestion des fichiers sous Linux ▪ Dans Linux et Unix, tout est fichier. Les répertoires sont des fichiers, les fichiers sont des fichiers et les périphéri...

Année académique : 2024/2025 2IDL – FS Tétouan Les Systèmes d’exploitation Gestion des fichiers sous Linux Pr. Zaynab El Khattabi La gestion des fichiers sous Linux ▪ Dans Linux et Unix, tout est fichier. Les répertoires sont des fichiers, les fichiers sont des fichiers et les périphériques sont des fichiers. Même si les périphériques sont souvent appelés nœuds, ce sont quand même des fichiers. ▪ Les systèmes de fichiers de Linux sont organisés selon une structure hiérarchique, en arbre. Le niveau le plus élevé du système de fichiers est le / ou répertoire racine. ▪ Sous linux, tout est fichier, organisé suivant une unique arborescence (dont la racine est nommée / et dont l'administrateur est root) La gestion des fichiers sous Linux ▪ Sous Linux, tout élément est représenté sous forme de fichier ▪ 4 types de fichiers : ▪ fichiers normaux (ordinaire): sources des programmes, scripts, configuration ; * exécutables : programmes en code binaire ▪ fichiers répertoires: des fichiers conteneurs qui contiennent des références à d'autres fichiers. ils permettent d'organiser les fichiers par catégories ▪ fichiers liens symboliques : des fichiers qui ne contiennent qu'une référence (un pointeur) à un autre fichier ▪ fichiers spéciaux: situés dans /dev, ce sont les points d'accès préparés par le système aux périphériques. ▪ Chaque fichier est caractérisé par son nom, sa taille, ses droits d'accès, son propriétaire, ses dates de création, de modification... Structure arborescente de fichiers La gestion des fichiers sous Linux L’arborescence ▪ Le principe de l’arborescence sous Linux est totalement différent de celui de Windows. ▪ Le principe est d’avoir une arborescence qui ne dépend pas des disques durs et de leurs partitions. ▪ / : est la racine de cette arborescence ▪ Les nœuds sont les répertoires Les fichiers sont les feuilles La gestion des fichiers sous Linux Dans le répertoire racine (/) se trouvent quelques répertoires importants communs à la majorité des distributions Linux. ▪ /bin - applications binaires importantes ▪ /boot - fichiers de configuration du démarrage (boot), noyaux et d'autres fichiers indispensables au moment du démarrage (boot). ▪ /dev - fichiers de périphériques (devices) ▪ /etc - fichiers de configuration, scripts de démarrage, etc. ▪ /home - répertoires personnels des différents utilisateurs ▪ /initrd - utilisé lors de la création du processus de démarrage initrd personnalisé ▪ /lib - bibliothèques (libraries) système ▪ /root - répertoire personnel du super-utilisateur (root) ▪ /sys - fichiers système ▪ /tmp - fichiers temporaires ▪ /usr - applications et fichiers généralement accessibles à tous les utilisateurs (users) ▪ /var - fichiers variables tels que journaux et bases de données La gestion des fichiers sous Linux Chemin absolu/relatif Selon ce schéma, 2 désignations possibles du chemin vers un fichier : Le chemin absolu Exemple : monProg.c ▪ Partant de la racine, le chemin serait: /home/user1/formation/maitre2/monProg.c Si le nom de répertoire commence par / il s’agit d’une référence absolue, constituée d’une liste des répertoires à parcourir depuis la racine / pour accéder au fichier. La gestion des fichiers sous Linux Le chemin relatif Exemple : monProg.c ▪ Le chemin relatif à l’emplacement ou on se trouve : maitre2/monProg.c Si le nom de répertoire ne commence pas par / il s’agit d’une référence relative par rapport au répertoire courant. La gestion des fichiers sous Linux Chemin du dossier personnel ▪ L’operateur ~ (tilde) : ▪ Il permet de se positionner facilement et directement dans le dossier personnel sans taper son chemin. ▪ Le répertoire personnel : ▪ Sur les systèmes d'exploitation de type Unix, tilde ~ indique souvent le répertoire home de l'utilisateur actuel : par exemple, si le répertoire home de l'utilisateur actuel est /home/user1 on peut utiliser la commande cd ~ à la place de cd /home/user1 ou cd $HOME La gestion des fichiers sous Linux Afficher le dossier courant ▪ Syntaxe: pwd [options] ▪ La commande pwd indique votre position actuelle au sein du système de fichiers. ▪ Elle permet de savoir où vous êtes dans le système de fichiers. ▪ La commande pwd commande n'a pas d'arguments, il suffit de taper pwd sur le Shell La gestion des fichiers sous Linux Les chemins ✓ Si vous saisissez cd., vous ne bougez pas. ✓ Le cd.. remonte d’un niveau. ✓ La commande cd sans argument permet de retourner directement dans son répertoire utilisateur. La gestion des fichiers sous Linux Lister les fichiers Syntaxe: ls [options] [paramètres] La commande ls permet de lister le contenu d’un répertoire (catalogue) en lignes ou colonnes. Elle supporte plusieurs paramètres dont voici les plus pertinents. Paramètre Signification -l Pour chaque fichier ou dossier, fournit des informations détaillées. -a Les fichiers cachés sont affichés (ils commencent par un point). -d Sur un répertoire, précise le répertoire lui-même et non son contenu. -F Rajoute un caractère à la fin du nom pour spécifier le type : / pour un répertoire, * pour un exécutable, @ pour un lien symbolique, etc. -R Si la commande rencontre des répertoires, elle rentre dans les sous-répertoires, sous-sous-répertoires, etc., de manière récursive. -t La sortie est triée par date de modification du plus récent au plus ancien. Cette date est affichée. -r L’ordre de sortie est inversé. La gestion des fichiers sous Linux Lister les fichiers Syntaxe: ls [options] [paramètres] ✓ Le paramètre qui vous fournit le plus d’informations est le -l : il donne un certain nombre de détails sur les fichiers. ls -l La gestion des fichiers sous Linux Lister les fichiers Syntaxe: ls [options] [paramètres] ✓ La ligne total indique la taille totale en kilo-octets du contenu du répertoire. Cette taille est celle de l’ensemble des fichiers ordinaires du répertoire et ne prend pas en compte les éventuels sous- répertoires et leur contenu ✓ Le premier caractère représente le type de fichier - : ordinaire, d : répertoire, l : lien symbolique... ✓ les autres, par blocs de trois, les droits pour l’utilisateur (rw-), le groupe (r--) tous (r--). La gestion des fichiers sous Linux Lister les fichiers Syntaxe: ls [options] [paramètres] ✓ La ligne total indique la taille totale en kilo-octets du contenu du répertoire. Cette taille est celle de l’ensemble des fichiers ordinaires du répertoire et ne prend pas en compte les éventuels sous- répertoires et leur contenu ✓ Un compteur de liens. La gestion des fichiers sous Linux Lister les fichiers Syntaxe: ls [options] [paramètres] ✓ La ligne total indique la taille totale en kilo-octets du contenu du répertoire. Cette taille est celle de l’ensemble des fichiers ordinaires du répertoire et ne prend pas en compte les éventuels sous- répertoires et leur contenu ✓ Le propriétaire du fichier, généralement celui qui l’a créé. La gestion des fichiers sous Linux Lister les fichiers Syntaxe: ls [options] [paramètres] ✓ La ligne total indique la taille totale en kilo-octets du contenu du répertoire. Cette taille est celle de l’ensemble des fichiers ordinaires du répertoire et ne prend pas en compte les éventuels sous- répertoires et leur contenu ✓ Le groupe auquel appartient le fichier. La gestion des fichiers sous Linux Lister les fichiers Syntaxe: ls [options] [paramètres] ✓ La ligne total indique la taille totale en kilo-octets du contenu du répertoire. Cette taille est celle de l’ensemble des fichiers ordinaires du répertoire et ne prend pas en compte les éventuels sous- répertoires et leur contenu ✓ La taille du fichier en octets. La gestion des fichiers sous Linux Lister les fichiers Syntaxe: ls [options] [paramètres] ✓ La ligne total indique la taille totale en kilo-octets du contenu du répertoire. Cette taille est celle de l’ensemble des fichiers ordinaires du répertoire et ne prend pas en compte les éventuels sous- répertoires et leur contenu ✓ La date de dernière modification (parfois avec l’heure), La gestion des fichiers sous Linux Lister les fichiers Syntaxe: ls [options] [paramètres] ✓ La ligne total indique la taille totale en kilo-octets du contenu du répertoire. Cette taille est celle de l’ensemble des fichiers ordinaires du répertoire et ne prend pas en compte les éventuels sous- répertoires et leur contenu ✓ Le nom du fichier. La gestion des fichiers sous Linux Lister les fichiers Syntaxe: ls [options] [paramètres] ls –i permet d’afficher l’inode des fichiers listés. ▪ Dans le système de fichiers de Linux, chaque fichier a un numéro d’identification que l’on appelle numéro d’inode. Ce numéro permet d’identifier l’inode du fichier, qui est une structure de données contenant des informations à propos d’un fichier (mais pas le contenu du fichier). Ces informations concernent le fichier, son propriétaire, ses permissions, etc. ▪ Les inodes sont uniques et dépendants du périphérique sur lequel ils sont situés. ▪ Les noms de fichiers pointent donc sur des inodes et les inodes contiennent les informations nécessaires à la récupération du contenu du fichier. La gestion des fichiers sous Linux Créer un fichier: ✓ Créer des fichiers vides touch fictest ▪ Si vous relancez la même commande sur fichier existant , la date de modification change. ✓ Créer des répertoires mkdir [-p] rep1 [rep2]... [repn] ▪ La commande mkdir (make directory) permet de créer un ou plusieurs répertoires, ou une arborescence complète, utilisez le paramètre -p. La gestion des fichiers sous Linux Créer un fichier: mkdir Documents mkdir Documents/Photos mkdir -p Archives/vieilleries ls -R.: Archives Documents fictest./Archives: vieilleries./Archives/vieilleries:./Documents: Photos./Documents/Photos: La gestion des fichiers sous Linux Supprimer un repértoire rmdir rep1 [rep2]... [repn] ▪ La commande rmdir (remove directory) supprime un ou plusieurs répertoires. ▪ Elle ne peut pas supprimer une arborescence! ▪ Si des fichiers sont encore présents dans le répertoire, la commande retourne une erreur. ▪ Le répertoire ne doit donc contenir ni fichiers ni répertoires et ceci même si les sous-répertoires sont eux-mêmes vides. rmdir Documents/ rmdir: Documents/: Le répertoire n’est pas vide. rmdir Documents/Photos La gestion des fichiers sous Linux Afficher le contenu d’un fichier: ▪ Visualiser le contenu d’un fichier est l’un des usages les plus fondamentaux de la commande cat. Sans aucune option, la commande lira le contenu d’un fichier et l’affichera dans la console. Syntaxe: cat [OPTION] [FICHIER] ▪ -n Afficher les numéros de ligne ▪ -s Pour supprimer les lignes vides répétées, ▪ -b Numérotation des lignes non vides ▪ Pour visualiser le contenu d’un fichier dans l’ordre inverse, en commençant par la dernière ligne et en terminant par la première: tac [OPTION] [FICHIER] La gestion des fichiers sous Linux Afficher le contenu d’un fichier: Visualisation de texte ✓ En pleine page page par page : more, less ✓ Début d’un fichier head [-nblignes] [fic1...] head -3 liste Produit objet prix quantites souris optique 30 15 dur 30giga 100 30 La gestion des fichiers sous Linux Afficher le contenu d’un fichier: Visualisation de texte ✓ Fin d’un fichier: Pour voir les dernières lignes d’un fichier, utilisez la commande tail. tail -5 liste ecran 19 500 20 clavier 105 45 30 clavier 115 55 30 carte son 45 30 carte video 145 30 La gestion des fichiers sous Linux Afficher des informations sur un fichier ▪ La commande wc de Linux vous permet de compter le nombre de lignes, de mots, de caractères et d’octets de chaque fichier donné ou d’entrée standard et d’imprimer le résultat. ▪ Syntaxe: wc [OPTION] [FICHIER] ▪ -l: afficher uniquement le nombre de lignes ▪ -w: afficher uniquement le nombre de mots ▪ -c: afficher uniquement le nombre d’octets ▪ -m : compte le nombre de caractères La gestion des fichiers sous Linux Afficher des informations sur un fichier ▪ Exemple: La gestion des fichiers sous Linux Editer un fichier: ▪ Les éditeurs de texte dans Linux vous permettent de créer et de modifier des fichiers texte directement à partir du terminal. ▪ Ces éditeurs sont légers, ce qui les rend parfaits pour des tâches telles que l'édition de fichiers de configuration, de scripts et de journaux, ▪ Linux propose plusieurs éditeurs de texte en ligne de commande (nano , vi et vim,…). ▪ gedit est l’éditeur par défaut et officiel de l’environnement de travail GNOME. Il est facile et simple à utiliser. Son mode d’exécution est graphique. La gestion des fichiers sous Linux Editer un fichier – Exemple: La gestion des fichiers sous Linux Copier des fichiers cp fic1 [fic2... ficn] Destination ✓ La commande cp (copy) copie un ou plusieurs fichiers vers un autre fichier ou vers un répertoire. ✓ Dans le premier cas, fic1 est recopié en Destination. Si Destination existe, il est copié sans avertissement selon le paramètre passé et selon les droits. ✓ Dans le second cas, fic1, fic2 et ainsi de suite sont recopiés dans le répertoire destination. La gestion des fichiers sous Linux ✓ Les chemins peuvent êtres absolus ou relatifs. Les options suivantes : Paramètre Signification -i Demande de confirmation de copie pour chaque fichier. -r Récursif : copie un répertoire et tout son contenu. -p Les permissions et dates sont préservées. -f Forcer la copie. ls rep1 rep2 cp -r rep1 rep2 ls rep2 rep1 La gestion des fichiers sous Linux Déplacer et renommer un fichier ✓ La commande mv (move) permet de déplacer, de renommer un fichier, ou les deux en même temps. ✓ Elle fonctionne comme la commande cp. Les paramètres -f et -i ont le même effet. touch txt1 txt2 txt3 mv txt1 txt1.old mv txt2 rep1/txt2 mv txt3 rep1/txt3.old ✓ paramètre -u : si le fichier de destination existe avec une date plus récente, cela vous évite de l’écraser. La gestion des fichiers sous Linux Supprimer un fichier ou une arborescence La commande rm (remove) supprime un ou plusieurs fichiers, et éventuellement une arborescence complète, suivant les options. La suppression est définitive. rm [Options] fic1 [fic2...] Paramètre Signification -i La commande demandera une confirmation pour chacun des fichiers à supprimer. Suivant la version d’Unix, le message change et la réponse aussi : y, Y, O, o, N, n, parfois toutes. -r Le paramètre suivant attendu est un répertoire. Dans ce cas, la suppression est récursive : tous les niveaux inférieurs sont supprimés, les répertoires comme les fichiers. -f Force la suppression. La gestion des fichiers sous Linux Supprimer un fichier ou une arborescence rm fic1 rm -r rep1 rm -rf /home/public/depots La gestion des fichiers sous Linux Les liens physiques ▪ Linux permet d’établir deux types de liens entre les fichiers : des liens physiques et des liens symboliques. Le lien physique permet de faire en sorte que deux noms de fichiers différents pointent sur le même inode. ▪ Si on modifie un fichier, l’autre fichier sera modifié aussi (puisque les deux noms de fichiers pointent sur le même inode). Si on supprime un des deux fichiers, l’autre, en revanche, ne sera pas supprimé. ▪ La commande pour créer un lien physique est ln. ▪ Attention : on ne peut pas créer de lien physique sur un répertoire! La gestion des fichiers sous Linux Les liens physiques - Exemple La gestion des fichiers sous Linux Les liens symboliques ✓ Un lien symbolique crée un lien vers un nom de fichier, et non vers son inode. En conséquence, si l’on détruit le fichier, le lien pointe “dans le vide”. ✓ En fait, les liens symboliques ressemblent aux raccourcis. Si on supprime le raccourci, le fichier n’est pas supprimé pour autant. Par contre, si on supprime le fichier, alors le raccourci ne fonctionnera plus, bien que ce dernier existe toujours. ✓ Il est possible de créer des liens symboliques vers n’importe quel type de fichier, quel qu’il soit et où qu’il soit. ✓ Il est même possible de créer des liens sur des fichiers qui n’existent pas. ln -s fichier lien La gestion des fichiers sous Linux Les liens symboliques ✓ Le lien se comporte à l’identique du fichier pointé avec les mêmes permissions et les mêmes propriétés : si le fichier pointé est un programme, lancer le lien lance le programme si le fichier pointé est un répertoire, un cd sur le lien rentre dans ce répertoire si le fichier pointé est un fichier spécial (périphérique), le lien est vu comme périphérique ✓ La suppression d’un lien symbolique n’entraîne que la suppression de ce lien, pas du fichier pointé. ✓ La suppression du fichier pointé n’entraîne pas la suppression des liens symboliques associés. La gestion des fichiers sous Linux Les liens symboliques La gestion des fichiers sous Linux Les liens symboliques touch fic1 ln -s fic1 lienfic1 ls -l -rw-r--r-- 1 seb users 0 mar 4 19:16 fic1 lrwxrwxrwx 1 seb users 4 mar 4 19:17 lienfic1 -> fic1 ls -F fic1 lienfic1@ echo hello > fic1 cat lienfic1 hello ✓ Attention, les droits indiqués sont ceux du fichier spécial et n’ont pas de signification autre : ils ne veulent pas dire que tout le monde à tous les droits sur le fichier pointé. Lors de son utilisation, ce sont les droits du fichier ou du dossier pointés qui prennent le dessus! La gestion des fichiers sous Linux Caractères de substitution ✓ Lors de l’utilisation de commandes en rapport avec le système de fichier, il peut devenir intéressant de filtrer la sortie de noms de fichiers à l’aide de certains critères, ✓ Par exemple avec la commande ls. Au lieu d’afficher toute la liste des fichiers, on peut filtrer l’affichage à l’aide de divers critères et caractères spéciaux. Caractère(s) Rôle * Remplace une chaîne de longueur variable, même vide. ? Remplace un caractère unique quelconque. [...] Une série ou une plage de caractères. [a-b] Un caractère parmi la plage indiquée (de a à b inclus). [!...] Inversion de la recherche. La gestion des fichiers sous Linux Caractères de substitution Exemple: ls afic afic2 bfic bfic2 cfic cfic2 dfic dfic2 afic1 afic3 bfic1 bfic3 cfic1 cfic3 dfic1 dfic3 ls a* afic afic1 afic2 afic3 ls a??? afic ls b??* bfic bfic1 bfic2 bfic3 ls * afic1 afic2 bfic1 bfic2 cfic1 cfic2 dfic1 dfic2 La gestion des fichiers sous Linux Caractères de substitution Exemple: ls [a-c]?* afic1 afic2 bfic1 bfic2 cfic1 cfic2 ls *[ !3] afic afic1 afic2 bfic bfic1 bfic2 cfic cfic1 cfic2 dfic dfic1 dfic2 ✓ C’est le shell qui est chargé d’effectuer la substitution de ces caractères avant le passage des paramètres à une commande. La gestion des fichiers sous Linux Recherche des fichiers ✓ La commande find permet de rechercher des fichiers au sein de l’arborescence du système de fichiers à l’aide de critères et donne la possibilité d’agir sur les résultats retournés. find chemin critères options ✓ La commande find étant récursive, il suffit d’indiquer un répertoire de base pour que toute l’arborescence depuis ce répertoire soit développée. La gestion des fichiers sous Linux Recherche des fichiers: Critères de recherche ✓ Les paramètres permettent de définir les critères de recherche. ✓ -name permet une sélection par noms de fichiers. Le critère est idéalement placé entre guillemets. find. -name "fic*" -print./fic1./fic2./fic3./fic4 La gestion des fichiers sous Linux Critères de recherche ✓ -type permet une sélection par type de fichier. (ex, liens, répertoires et fichiers simples, etc...) Code Type de fichier b Fichier spécial en mode bloc c Fichier spécial en mode caractère d Répertoire (directory) f Fichier ordinaire l Lien symbolique p Tube nommé (pipe) s Socket (Connexion réseau) find. -name "re*" -type d -print./rep1./rep2 La gestion des fichiers sous Linux Critères de recherche ✓ user et group permettent une recherche sur le propriétaire et le groupe d’appartenance des fichiers. Il est possible de préciser le nom (utilisateur, groupe) ou l’ID (UID, GID). find. -type f -user seb -group users -print./fic1./fic3 ✓ -size permet de préciser la taille des fichiers recherchés. Sa syntaxe est particulière car elle travaille par défaut en blocs si vous ne précisez rien. Caractère Signification b Par défaut si non précisé, c’est un bloc de 512 octets. c C’est un caractère, au sens ASCII, donc 1 octet. w C’est un mot (au sens ancien) de 2 octets. k 1 Ko (1024 octets). La gestion des fichiers sous Linux Critères de recherche ✓ La valeur peut être précédée d’un + ou d’un - signifiant "plus de" ou "moins de". Sans cette indication, la taille recherchée doit correspondre EXACTEMENT. -Size 5 : recherche les fichiers d’une taille de 5 blocs (512 octets par bloc, soit ici 2560 octets). -size 152c : recherche les fichiers d’une taille de 152 caractères (octets). -size 10k : recherche les fichiers d’une taille de 10 Ko (10*1024 octets = 10240 octets). -size +5000k : les fichiers de plus de 5000 Ko. -size 100k : les fichiers de moins de 100 Ko. find -size +100k La gestion des fichiers sous Linux Commandes de recherche ✓ -ls Le critère affiche des informations détaillées sur les fichiers trouvés correspondant au critère au lieu du simple nom de fichier. La sortie correspond à une commande ls avec les paramètres d, l et s (taille en blocs de 1 Ko). find -size +500000k -ls 2342935 584388 -rw-r--r-- 1 seb users 597817344 fév 24 11:52./eeexubuntu- 7.10.3-desktop-i386.iso La gestion des fichiers sous Linux Commandes de recherche ✓ -exec va exécuter la commande située juste après pour chaque occurrence trouvée. -exec doit obligatoirement être la dernière option de la commande find. La commande exécutée par -exec doit se terminer par un « ; ». Ce caractère spécial doit s’écrire \; pour ne pas être interprété par le shell. Pour passer comme paramètre pour la commande le fichier trouvé par find, il faut écrire {} (substitution du fichier). find. -type f -name "*.mp3" -exec rm -f {} \; ✓ -printf permet d’afficher les fichiers de façon formatée. On peut gérer l’affichage des infos sur le fichier: %p: chemin du fichier; %s: taille du fichier; %u: nom d’utilisateur. find. -type f -name "*.mp3" –printf “%p, %s ko, user: %u\n” La gestion des fichiers sous Linux Critères AND / OR / NOT ✓ Il est possible de combiner les options de critère de sélection. Sans aucune précision c’est le ET logique qui est implicite. Critère Action a, and AND, ET logique, par défaut o, or OR, OU logique ! Négation du critère ✓ Exemple avec tous les fichiers ne contenant pas fic dans leur nom find. ! -name "*fic*" -print../rep1./liste La gestion des fichiers sous Linux Critères AND / OR / NOT ✓ Exemple avec tous les fichiers n’étant ni normaux ni des répertoires. find. ! \( -type f -o -type d \) -ls 409 0 lrwxrwxrwx 1 oracle system 4 Aug 14 15:21./lien_fic1 -> fic1 634 0 lrwxrwxrwx 1 oracle system 4 Aug 14 15:21./lien_fic2 -> fic2 La gestion des fichiers sous Linux Recherche des fichiers ▪ Locate donne tous les fichiers qui contiennent le mot donné en paramètre dans leur nom. Que ce soient des fichiers ou des dossiers, elle ne fait pas la différence. ▪ Syntaxe: locate [options] nom ▪ locate est extrêmement rapide car il recherche dans une base de données. Ainsi, cela évite une recherche sur chaque disque local ce qui peut prendre du temps. ▪ Si vous avez besoin de mettre à jour la base de données manuellement pour refléter les dernières modifications de fichiers, utilisez la commande updatedb (à utiliser en root avec sudo) : sudo updatedb La gestion des fichiers sous Linux Retrouver des exécutables ✓ La commande which recherche une commande dans le PATH (chemin des exécutables) et vous fournit la première qu’elle trouve : which date /bin/date ✓ Il arrive que des commandes de même nom existent dans plusieurs chemins, vous pouvez dès lors préciser le paramètre -a pour que which continue sa recherche. ✓ c’est la première qui sera exécutée par défaut si vous la lancez. which -a passwd /usr/bin/passwd /usr/bin/X11/passwd La gestion des fichiers sous Linux Principe des redirections ✓ Les redirections donnent la possibilité de rediriger l’affichage de l’écran vers un fichier, une imprimante ou tout autre périphérique, les messages d’erreur vers un autre fichier, de remplacer la saisie clavier par le contenu d’un fichier. ✓ Tout flux de données en entrée ou en sortie de commande passe par un canal. Il est possible de dévier le cours des données vers une autre destination ou depuis une autre source. ✓ Linux utilise des canaux d’entrées/sorties pour lire et écrire ses données. Par défaut le canal d’entrée est le clavier, et le canal de sortie, l’écran. Un troisième canal, le canal d’erreur, est aussi redirigé vers l’écran par défaut. ✓ Il est possible de rediriger ces canaux vers des fichiers, ou du flux texte de manière transparente pour les commandes Linux. La gestion des fichiers sous Linux Redirection en sortie: ✓ On se sert du caractère > pour rediriger la sortie standard (celle qui va normalement sur l’écran). On indique ensuite le nom du fichier où seront placés les résultats de sortie. ls -l > resultat.txt cat resultat.txt total 1 -rw-r--r-- 1 Administ ssh_user 0 Jul 4 12:04 ABC -rw-r--r-- 1 Administ ssh_user 0 Jul 25 15:13 resultat.txt -rw-r--r-- 1 Administ ssh_user 171 Jul 25 15:13 test.txt ✓ Si le fichier n’existe pas, il sera créé. S’il existe, son contenu sera écrasé, même si la commande tapée est incorrecte. ✓ Le shell commence d’abord par créer le fichier puis exécute ensuite la commande. La gestion des fichiers sous Linux Redirection en sortie: ✓ Pour rajouter des données à la suite du fichier, donc sans l’écraser, on utilise la double redirection >>. Le résultat de la commande est ajouté à la fin du fichier. ls -l > resultat.txt date >> resultat.txt cat resultat.txt total 1 -rw-r--r-- 1 Administ ssh_user Thu Jul 25 15:20:12 2002 -rw-r--r-- 1 Administ ssh_user 0 Jul 4 12:04 ABC -rw-r--r-- 1 Administ ssh_user 0 Jul 25 15:13 resultat.txt 171 Jul 25 15:13 test.txt La gestion des fichiers sous Linux Redirection en entrée ✓ Les commandes qui attendent des données ou des paramètres depuis le clavier peuvent aussi en recevoir depuis un fichier, à l’aide du caractère error.log cat error.log rmdir: `dossier2’: No such file or directory La gestion des fichiers sous Linux ✓ Vous pouvez rediriger les deux canaux de sortie dans un seul et même fichier, en les liant. On utilise pour cela le caractère >&. ls -l > resultat.txt 2>&1 ✓ La sortie 2 est redirigée vers la sortie 1, donc les messages d’erreurs passeront par la sortie standard. Puis le résultat de la sortie standard de la commande ls est redirigé vers le fichier resultat.txt. ✓ Vous pouvez utiliser les deux types de redirection à la fois : wc < resultat.txt > compte.txt cat compte.txt 4 29 203 La gestion des fichiers sous Linux Ouverture de canaux ✓ Les canaux standards sont au nombre de trois et numérotés de 0 à 2. Ainsi 0< équivaut à < et 1> à >. ✓ exec permet d’ouvrir 7 autres canaux numérotés de 3 à 9 (dix canaux Max). exec 3>dump.log ls -l >&3 cat dump.log total 3952 -rw-r--r-- 1 seb users 167212 oct 9 09:27 battlestar_1280.jpg drwxr-xr-x 2 seb users 4096 mar 4 08:51 bin ✓ Tous ce qui sera écrit dans le canal 3 sera écrit dans le fichier dump.log. Pour fermer le canal (canal de fermeture - ). exec 3>&- La gestion des fichiers sous Linux Filtre : définition ✓ Un filtre (ou une commande filtre) est un programme sachant écrire et lire des données par les canaux standards d’entrée et de sortie. Il en modifie ou traite éventuellement le contenu. wc est un filtre. more (affiche les données page par page), sort ( tri des données), grep (critères de recherche). ✓ Les utilitaires sans être obligatoirement des filtres permettent un certain nombre d’actions sur des fichiers ou leur contenu comme le formatage ou l’impression. La gestion des fichiers sous Linux Pipelines / tubes ✓ Les tubes ou pipes permettent de rediriger directement le canal de sortie d’une commande vers le canal d’entrée d’une autre. On utilise le caractère | ls -l | wc ✓ Il est possible de placer plusieurs | sur une même ligne. ls -l | wc | wc 1 3 24 La gestion des fichiers sous Linux Extraction des noms et chemins ✓ La commande basename permet d’extraire le nom du fichier dans un chemin. basename /tmp/seb/liste Liste ✓ La commande dirname effectue l’inverse, elle extrait le chemin. dirname /tmp/seb/liste /tmp/seb La gestion des fichiers sous Linux Expressions régulières La gestion des fichiers sous Linux Expressions régulières La gestion des fichiers sous Linux Ancres La gestion des fichiers sous Linux La gestion des fichiers sous Linux Recherche de lignes ✓ Il s’agit d’extraire des lignes d’un fichier selon divers critères. Pour cela vous disposez de trois commandes grep, egrep et fgrep qui lisent les données soit depuis un fichier d’entrée, soit depuis le canal d’entrée standard. grep [Options] modèle [Fichier1...] cat fic4 Cochon Veau Boeuf rat Rat boeuf La gestion des fichiers sous Linux Recherche de lignes ✓ La commande grep peut aussi prendre quelques options intéressantes. -v effectue la recherche inverse : toutes les lignes ne correspondant pas aux critères sont affichées. -c ne retourne que le nombre de lignes trouvées sans les afficher. -i ne différencie pas les majuscules et les minuscules. -n indique le numéro de ligne pour chaque ligne trouvée. -l dans le cas de fichiers multiples, indique dans quel fichier la ligne a été trouvée. grep "^[bB]" fic4 grep -i "^b" fic4 Boeuf Boeuf boeuf boeuf La gestion des fichiers sous Linux Colonnes et champs ✓ La commande cut permet de sélectionner des colonnes et des champs dans un fichier. cut -cColonnes [fic1...] ✓ Une colonne est la position d’un caractère dans la ligne. Le premier caractère est la colonne 1, le deuxième la colonne 2, et ainsi de suite. ✓ Une ligne de 80 caractères dispose de 80 colonnes. ✓ C’est la méthode idéale pour des fichiers plats et à format fixe où chaque champ débute et finit à des positions données. La gestion des fichiers sous Linux Colonnes ✓ Le format de sélection de colonne est le suivant : une colonne seule (ex. -c2 pour la colonne 2) une plage (ex. -c2-4 pour les colonnes 2, 3 et 4) une liste de colonnes (ex. -c1,3,6 pour les colonnes 1, 3 et 6) La gestion des fichiers sous Linux Exemples cat liste Produit prix quantites souris 30 15 disque 100 30 ecran 300 20 clavier 45 30 cut -c1-5 liste cut -c1-3,10-12,15 Produ Prorixu souri sou 15 disqu dis0 3 ecran ecr 20 clavi cla5 3 La gestion des fichiers sous Linux Champs ✓ La commande cut permet aussi de sélectionner des champs. ✓ Ces champs doivent être par défaut délimités par une tabulation, ✓ mais le paramètre -d permet de sélectionner un autre caractère (espace, …). cut -dc -fChamps [fic1...] La gestion des fichiers sous Linux Exemples cat liste Produit prix quantites souris 30 15 dur 100 30 disque 100 30 ecran 300 20 clavier 45 30 Carte 45 30 cut -f1 liste cut -f1,3 liste Produit Produit quantites souris souris 15 dur dur 30 disque disque 30 ecran ecran 20 clavier clavier 30 carte carte 30 La gestion des fichiers sous Linux Exemple: ✓ Voici comment isoler les noms d’un groupe et leurs identifiants respectifs : cat /etc/group at:!:25: audio:x:17: avahi:!:106: beagleindex:!:107: bin:x:1:daemon cut -d: -f1,3 /etc/group at:25 audio:17 avahi:106 beagleindex:107 bin:1 La gestion des fichiers sous Linux Tri de lignes ✓ La commande sort permet de trier des lignes. Par défaut le tri s’effectue sur tout le tableau et en ordre croissant. Le tri est possible sur un ou plusieurs champs. La numérotation des champs commence à 1. sort [options] [-k pos1[,pos2]] [fic1...] sort -k 1 liste carte son 45 30 carte video 145 30 clavier 105 45 30 clavier 115 55 30 disque souple 10 30 disque zip 12 30 dur 30giga 100 30 dur 70giga 150 30 ecran 15 150 20 ecran 17 300 20 ecran 19 500 20 souris optique 30 15 La gestion des fichiers sous Linux Tri de lignes Quelques paramètres: Option Rôle -d Dictionnary sort (tri dictionnaire). Ne prend comme critère de tri que les lettres les chiffres et les espaces. -n Tri numérique, idéal pour les colonnes de chiffres. -b Ignore les espaces en début de champ. -f Pas de différences entre majuscules et minuscules (conversion en minuscules puis tri). -r Reverse, tri en ordre décroissant. La gestion des fichiers sous Linux ✓ Exemple, tri numérique sur le prix par produits en ordre décroissant : sort -n -r -k 3 liste ecran 19 500 20 ecran 17 300 20 ecran 15 150 20 dur 70giga 150 30 carte video 145 30 dur 30giga 100 30 clavier 115 55 30 clavier 105 45 30 carte son 45 30 souris optique 30 15 disque zip 12 30 disque souple 10 30 ✓ Il est aussi possible de démarrer le tri à partir d’un certain caractère d’un champ. Pour cela vous devez spécifier le «.pos » : -k1.3 commencera le tri à partir du troisième caractère du champ 1. La gestion des fichiers sous Linux Suppression des doublons ✓ La commande uniq permet de supprimer les doublons dans des flux en entrée ou des fichiers triés. ✓ Syntaxe: uniq [options] [fichier] ✓ Pour supprimer les doublons et mettre le résultat dans un autre fichier: uniq fich_avec_doublons fich_sans_doublons ✓ La commande uniq s’applique sur un fichier trié! ✓ L’option –c permet de compter le nombre d’occurrences de chaque nom La gestion des fichiers sous Linux Suppression des doublons Exemple: ✓ comment sortir uniquement la liste des GID réellement utilisés comme groupe principal des utilisateurs : cut -d: -f4 /etc/passwd | sort -n | uniq 0 1 2 7 8 12 13 51 62... La gestion des fichiers sous Linux Découpage d’un fichier en morceaux ✓ Découper: split, permet de découper un gros fichier en plusieurs morceaux d’une taille donnée. split [-l n] [-b n[bkm] [fichier [préfixe]] ✓ La commande peut fonctionner selon deux modes : découpage par lignes avec -l : les fichiers en sortie auront tous n lignes de texte (sauf éventuellement le dernier) découpage à taille fixe avec -b : les fichiers auront tous une taille fixe de n octets. Le suffixe b indique une taille de n blocs (512 octets), k indique n ko (1024 octets) et m indique n Mo (1024 ko). La gestion des fichiers sous Linux ✓ Voici un fichier de 1 Go à découper en tranches de 150 Mo. Le préfixe est fic. Chaque fichier en sortie s’appelle ficaa, ficab, ficac, ficad, et ainsi de suite. ls -l grosfichier -rw-r--r-- 1 seb users 1073741824 mar 12 19:47 grosfichier split -b 150m grosfichier fic ls -l fic* -rw-r--r-- 1 seb users 157286400 mar 12 20:15 ficaa -rw-r--r-- 1 seb users 157286400 mar 12 20:15 ficab -rw-r--r-- 1 seb users 157286400 mar 12 20:15 ficac -rw-r--r-- 1 seb users 157286400 mar 12 20:16 ficad -rw-r--r-- 1 seb users 157286400 mar 12 20:16 ficae -rw-r--r-- 1 seb users 157286400 mar 12 20:16 ficaf -rw-r--r-- 1 seb users 130023424 mar 12 20:16 ficag ✓ pour reconstruire un fichier splité à l’aide des redirections : cat fic* > newfic ls -l newfic -rw-r--r-- 1 seb users 1073741824 mar 12 20:47 newfic La gestion des fichiers sous Linux Remplacement de caractères Liste de caractères ✓ La commande tr permet de substituer des caractères à d’autres et n’accepte que des données provenant du canal d’entrée standard, pas les fichiers. tr [options] original destination ✓ L’original et la destination représentent un ou plusieurs caractères. ✓ Les caractères originaux sont remplacés par les caractères de destination dans l’ordre indiqué. Les crochets permettent de définir des plages. La gestion des fichiers sous Linux Remplacement de caractères cat liste | tr "oi" "ea" Preduat ebjet prax quantates Seuras eptaque 30 15 dur 30gaga 100 30 dur 70gaga 150 30 Dasque zap 12 30 ✓ Avec cette commande vous pouvez convertir une chaîne en majuscules ou en minuscules. cat liste | tr "[a-z]" "[A-Z]" PRODUIT OBJET PRIX QUANTITES SOURIS OPTIQUE 30 15 DUR 30GIGA 100 30 DUR 70GIGA 150 30 DISQUE ZIP 12 30 La gestion des fichiers sous Linux Supprimer les répétitions ✓ tr admet deux paramètres, -s (squeeze) et -d (delete), qui permettent de supprimer des caractères en doublons ou non. C’est parfait dans le cas de séparateurs multiples. ✓ Voici un exemple pratique où l’on cherche à isoler l’adresse IP d’une machine. ifconfig eth0 | grep "inet " | tr -s " " ":" | cut -d: -f3 La gestion des fichiers sous Linux ifconfig eth0 | grep "inet " | tr -s " " ":" | cut -d: -f3 La gestion des fichiers sous Linux Comparaison de fichiers ✓ Les deux commandes permettant de comparer le contenu de deux fichiers, ou d’un fichier et d’un flux sont les commandes diff et cmp. ✓ La commande diff indique les modifications à apporter aux deux fichiers en entrée pour que leur contenu soit identique. diff [-b] [-e] fic1 fic2 APPEND : ligne1 a ligne3,ligne4, ex 5 a 6,8 veut dire : à la ligne 5 de fic1 il faut raccrocher les lignes 6 à 8 de fic2 pour que leurs contenus soient identiques. DELETE : ligne1,ligne2 d ligne3, ex 7,9 d 6 veut dire : les lignes 7 à 9 de fic1 doivent être supprimées, elles n’existent pas derrière la ligne 6 de fic2. CHANGE : ligne1,ligne2 c ligne3,ligne4, ex 8,12 c 9,13 veut dire : les lignes 8 à 12 de fic1 doivent être échangées contre les lignes 9 à 13 de fic2. La gestion des fichiers sous Linux ✓ Dans tous les cas, le signe " < " indique les lignes de fic1 concernées, et le signe " > " les lignes de fic2 concernées. ✓ Le fichier liste est l’original. Dans liste2, la deuxième ligne a été modifiée, une ligne écran a été ajoutée et les deux dernières lignes ont été supprimées. La gestion des fichiers sous Linux diff liste liste2 2c2 < souris optique 30 15 > souris boutons 30 15 9a10 > ecran 21 500 20 12,13d12 < carte son 45 30 < carte video 145 30 2c2 : les lignes 2 de liste et liste2 doivent être échangées (elles doivent concorder soit en optique, soit en boutons). 9a10 : après la ligne 9 de liste (écran 19) il faut ajouter la ligne 10 (écran 21) de liste2. 12,13d12 : les lignes 12 et 13 de liste (carte son et vidéo) doivent être supprimés car elles n’existent pas après la ligne 12 de liste2. La gestion des fichiers sous Linux ✓ La commande cmp compare les fichiers caractère par caractère. Par défaut la commande s’arrête dès la première différence rencontrée et indique la position de l’erreur. cmp liste liste2 liste liste2 differ: char 38, line 2 ✓ Le paramètre -l détaille toutes les différences en trois colonnes. La première colonne représente le numéro de caractère, la deuxième la valeur ASCII du caractère concerné de fic1 et la troisième la valeur ASCII du caractère concerné de fic2. cmp -l liste liste2 38 157 142 39 160 157 40 164 165 41 151 164 42 161 157...

Use Quizgecko on...
Browser
Browser