« Gestion des fichiers » : différence entre les versions

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche
mAucun résumé des modifications
Aucun résumé des modifications
Ligne 13 : Ligne 13 :
=== La commande '''cat'''  ===
=== La commande '''cat'''  ===


Afficher le contenu du fichier ''file'' dans la console.  
Afficher le contenu du fichier ''fichier'' dans la console.  
 
  $ cat fichier
  $ cat fichier


Affiche et copie le contenu de ''fichier'' dans ''fichier2''.  
Afficher et copier le contenu de ''fichier'' dans ''fichier2''.  
 
  $ cat file > file2
  $ cat file > file2


Affiche le contenu d'un fichier et numérote les lignes.  
Afficher le contenu d'un fichier et numérote les lignes.  
 
  $ cat -n fichier
  $ cat -n fichier


=== La commande '''chgrp'''  ===
=== La commande '''chgrp'''  ===


Affecter un fichier à un groupe. Le changement de groupe peut être réalisé par n'importe quel utilisateur... '''mais''' on ne peut donner un fichier qu'à l'un des groupes dont on est membre. L'administrateur évidemment peut affecter un fichier à n'importe quel groupe d'utilisateur. Exemple&nbsp;:''<nowiki># chgrp -R toto /home/titi/fichier</nowiki>''Le répertoire ''/home/titi/fichier'' et son contenu appartiendront désormais au groupe ''toto''.
Changer le groupe auquel appartient un fichier :
 
  $ chgrp groupe fichier
  $ chgrp groupe fichier


<br>  
Affecter un fichier à un groupe. Le changement de groupe peut être réalisé par n'importe quel utilisateur... '''mais''' on ne peut donner un fichier qu'à l'un des groupes dont on est membre.<br>L'administrateur évidemment peut affecter un fichier à n'importe quel groupe d'utilisateur.<br>Exemple&nbsp;:''<nowiki>$ chgrp -R toto /home/titi/rep</nowiki>'' Le répertoire ''/home/titi/rep/'' et son contenu appartiendront désormais au groupe ''toto''.


=== La commande '''cp'''  ===
=== La commande '''cp'''  ===


Copier des fichiers dans des répertoires. Exemple&nbsp;:  
Copier un/des fichier(s). Exemple&nbsp;:  
$ cp fichier /home/toto/vrac


  $ cp
Copier ''fichier_source'' dans ''répertoire_cible''.
  $ cp fichier_source /repertoire_cible/


#''<nowiki># cp fichier_source /repertoire_cible/</nowiki>'' copie ''fichier_source'' dans ''répertoire_cible''.  
Copier ''repertoire_source'' dans ''repertoire_cible'' sans demander de confirmation.
#''<nowiki># cp -Rf repertoire_source /repertoire_cible</nowiki>'' copie ''repertoire_source'' dans ''repertoire_cible'' sans demander de confirmation.
$ cp -Rf repertoire_source /repertoire_cible


Attention&nbsp;: Copier un fichier vers un fichier de même nom l'écrasera. Pour copier plusieurs fichiers à la fois, pensez à utiliser les caractères génériques&nbsp;? et *.
Attention&nbsp;: Copier un fichier vers un fichier de même nom l'écrasera.<br>Pour copier plusieurs fichiers à la fois, pensez à utiliser les caractères génériques&nbsp;? et *.  
 
Copie sans écrasement du fichier destination. Le fichier écrasé est sauvegardé, seul le nom du fichier d'origine est modifié (ajout d'un tilde ''~'' à la fin du nom du fichier).  


Copier sans écrasement du fichier destination (Le fichier écrasé est sauvegardé, seul le nom du fichier d'origine est modifié (ajout d'un tilde ''~'' à la fin du nom du fichier)) :
  $ cp -b
  $ cp -b


Prévient Celui qui lance la commande de l'existence d'un fichier du même nom et lui demande s'il peut ou non remplacer son contenu. Permet de ne pas écraser par inadvertance des fichiers importants.
Prévient celui qui lance la commande de l'existence d'un fichier du même nom et lui demande s'il peut ou non remplacer son contenu. Permet de ne pas écraser par inadvertance des fichiers importants :
 
  $ cp -i
  $ cp -i


Affiche le nom des fichiers copiés (-v = verbose ou "verbeux"). Pratique si vous copiez plusieurs fichiers à l'aide des caractères génériques * et/ou&nbsp;? et que vous souhaitez voir le bon déroulement de la multicopie.  
Afficher le nom des fichiers copiés (-v = verbose ou "verbeux"). Pratique si vous copiez plusieurs fichiers à l'aide des caractères génériques * et/ou&nbsp;? et que vous souhaitez voir le bon déroulement de la multicopie.  
 
  $ cp -v
  $ cp -v


Ligne 60 : Ligne 55 :
Copier dans un fichier le contenu exact d'un support donné (disquette, table de partition...), sans tenir compte de la structure ou du format. '''Commande dangereuse'''&nbsp;: vous risquez, en cas d'erreur, de faire totalement et irrémédiablement disparaître les partitions de votre disque dur.  
Copier dans un fichier le contenu exact d'un support donné (disquette, table de partition...), sans tenir compte de la structure ou du format. '''Commande dangereuse'''&nbsp;: vous risquez, en cas d'erreur, de faire totalement et irrémédiablement disparaître les partitions de votre disque dur.  


  $ dd
S'utilise avec les droits "root"
 
Exemple Pour sauvegarder le MBR du disque hda dans le fichier mbr.sav :
  # dd if=/dev/hda of=mbr.sav bs=512 count=1
1+0 enregistrements lus
1+0 enregistrements écrits
512 octets (512 B) copiés, 9,3797e-05 s, 5,5 MB/s


=== La commande '''diff'''  ===
=== La commande '''diff'''  ===


Comparer deux fichiers et indique les différences. Les lignes provenant de ''fich1'' sont préfixées par ''&gt;'' et celles provenant de ''fich2'' par ''<nowiki><</nowiki>''. Des lignes de contexte indiquent les blocs de lignes qui ont été modifiés (c), ajoutés (a) ou détruits (d), le principe étant d'indiquer les modifications à effectuer pour convertir ''fich1'' en ''fich2''.  
Comparer deux fichiers et indique les différences. Les lignes provenant de ''fich1'' sont préfixées par ''&gt;'' et celles provenant de ''fich2'' par ''<nowiki><</nowiki>''. Des lignes de contexte indiquent les blocs de lignes qui ont été modifiés (c), ajoutés (a) ou détruits (d), le principe étant d'indiquer les modifications à effectuer pour convertir ''fich1'' en ''fich2''.  
  $ diff fichier1 fichier2
  $ diff fichier1 fichier2


Ligne 71 : Ligne 71 :


Il peut arriver qu'un fichier ait une extension défectueuse ou qu'il n'en ait pas. ''File'' permet de retrouver le type de fichier. Il suffit d'indiquer après file le ou les noms des fichiers à analyser. Exemple&nbsp;: <nowiki># file /bin/bash /etc/passwd</nowiki>  
Il peut arriver qu'un fichier ait une extension défectueuse ou qu'il n'en ait pas. ''File'' permet de retrouver le type de fichier. Il suffit d'indiquer après file le ou les noms des fichiers à analyser. Exemple&nbsp;: <nowiki># file /bin/bash /etc/passwd</nowiki>  
  $ file fichier
  $ file fichier


Ligne 77 : Ligne 76 :


Rechercher de ''fichier''. Ex&nbsp;:''<nowiki># find /home/toto/bazard -name *.jpeg</nowiki>'' donne la liste des fichiers .jpeg contenu dans le répertoire''/home/toto/bazard''. Vous pouvez utiliser un caractère générique pour remplacer les lettres, il faut le faire précéder d'une barre oblique inverse&nbsp;:<nowiki># find / -name image\*</nowiki>  
Rechercher de ''fichier''. Ex&nbsp;:''<nowiki># find /home/toto/bazard -name *.jpeg</nowiki>'' donne la liste des fichiers .jpeg contenu dans le répertoire''/home/toto/bazard''. Vous pouvez utiliser un caractère générique pour remplacer les lettres, il faut le faire précéder d'une barre oblique inverse&nbsp;:<nowiki># find / -name image\*</nowiki>  
  $ find -name fichier
  $ find -name fichier


Affiche le résultat de la recherche, avec les chemins relatifs.  
Afficher le résultat de la recherche, avec les chemins relatifs.  
 
  $ find -name fichier -print
  $ find -name fichier -print


Indique le type de fichier à rechercher. Remplacez ''x'' par ''f'' pour les fichiers, ''d'' pour les répertoires et ''l'' pour les liens symboliques.  
Indiquer le type de fichier à rechercher. Remplacez ''x'' par ''f'' pour les fichiers, ''d'' pour les répertoires et ''l'' pour les liens symboliques.  
 
  $ find -type x -name fichier
  $ find -type x -name fichier


=== La commande '''less'''  ===
=== La commande '''less'''  ===


Visualiser ''fich'' page par page.Utilisez les touches directionnelles haut et bas pour faire défiler le texte, ''q'' pour quitter.  
Visualiser ''fichier'' page par page. Utilisez les touches directionnelles haut et bas pour faire défiler le texte, ''q'' pour quitter.  
 
  $ less fichier
  $ less fichier


=== La commande '''locate'''  ===
=== La commande '''locate'''  ===


Localiser. ''Locate'' est un lien symbolique de la commande ''slocate''. Exemple&nbsp;: ''<nowiki># locate titi</nowiki>'' affiche la liste des fichiers dont le nom contient le mot ''titi''.''Locate'' affiche tous les noms de fichiers correspondant au critère indiqué. Pour n'afficher que les fichiers autorisés, utilisez ''slocate''.''Locate'' se base sur une base de données de tous les noms de fichiers, mise à jour quotidiennement. Des fichiers récemment créés ne seront donc pas forcément référencés. Pour forcer une mise à jour manuelle, tapez&nbsp;:<nowiki># updatedb</nowiki>ou<nowiki># slocate -u</nowiki>  
Localiser un fichier. ''Locate'' est un lien symbolique de la commande ''slocate''. Exemple&nbsp;: ''<nowiki># locate titi</nowiki>'' affiche la liste des fichiers dont le nom contient le mot ''titi''.''Locate'' affiche tous les noms de fichiers correspondant au critère indiqué. Pour n'afficher que les fichiers autorisés, utilisez ''slocate''.''Locate'' se base sur une base de données de tous les noms de fichiers, mise à jour quotidiennement. Des fichiers récemment créés ne seront donc pas forcément référencés. Pour forcer une mise à jour manuelle, tapez&nbsp;:<nowiki># updatedb</nowiki>ou<nowiki># slocate -u</nowiki>  
 
  $ locate x
  $ locate x


=== La commande '''ls'''  ===
=== La commande '''ls'''  ===


Liste les fichiers et les sous-répertoires de ''/rep''.  
Lister les fichiers et les sous-répertoires de ''/rep''.  
 
  $ ls /rep
  $ ls /rep


Liste tous les fichiers du répertoire indiqué, fichiers cachés (dont le nom commence par un point) compris. Si vous n'indiquez pas de répertoire, c'est le contenu du répertoire courant qui est listé.  
Lister tous les fichiers du répertoire indiqué, fichiers cachés (dont le nom commence par un point) compris. Si vous n'indiquez pas de répertoire, c'est le contenu du répertoire courant qui est listé.  
 
  $ ls -a /rep
  $ ls -a /rep


Affiche tous les sous-répertoires de ''/rep''.  
Afficher tous les sous-répertoires de ''/rep''.  
 
  $ ls -d /rep
  $ ls -d /rep


Affichage long&nbsp;: droits, nom et groupe du propriétaire, taille, date de dernière modification.Si vous tapez le nom d'un lien, vous connaîtrez son fichier ou répertoire cible.  
Affichage long&nbsp;: droits, nom et groupe du propriétaire, taille, date de dernière modification.Si vous tapez le nom d'un lien, vous connaîtrez son fichier ou répertoire cible.  
  $ ls -l
  $ ls -l


Affiche tout le contenu du répertoire de façon détaillée.  
Affiche tout le contenu du répertoire de façon détaillée.  
  $ ls -la
  $ ls -la


Liste le contenu d'un répertoire en donnant pour chaque fichier/répertoire plus de détails qu'un simple ''ls''.  
Liste le contenu d'un répertoire en donnant pour chaque fichier/répertoire plus de détails qu'un simple ''ls''.  
  $ ls -lh /rep
  $ ls -lh /rep


Liste les fichiers par type. Un fichier suivi d'un slash est un répertoire, un fichier suivi d'une étoile est un fichier exécutable et un fichier suivi d'un ''@'' est un lien.  
Liste les fichiers par type. Un fichier suivi d'un slash est un répertoire, un fichier suivi d'une étoile est un fichier exécutable et un fichier suivi d'un ''@'' est un lien.  
  $ ls -F
  $ ls -F


Liste les fichiers en les séparant par une virgule au lieu de les présenter en colonnes.  
Liste les fichiers en les séparant par une virgule au lieu de les présenter en colonnes.  
  $ ls -m
  $ ls -m


En complément de ''-l'', affiche le nom et le groupe des propriétaires en fonction de leur UID et de leur GID.  
En complément de ''-l'', affiche le nom et le groupe des propriétaires en fonction de leur UID et de leur GID.  
  $ ls -n
  $ ls -n


Liste les fichiers en ordre alphabétique inverse.  
Liste les fichiers en ordre alphabétique inverse.  
  $ ls -r
  $ ls -r


Liste les fichiers triés par ordre de taille décroissante.  
Liste les fichiers triés par ordre de taille décroissante.  
  $ ls -S
  $ ls -S


Liste le contenu de ''/rep'' en triant par date de modification, du plus récent au plus ancien.  
Liste le contenu de ''/rep'' en triant par date de modification, du plus récent au plus ancien.  
  $ ls -t /rep
  $ ls -t /rep


Liste les fichiers par type d'extension.  
Liste les fichiers par type d'extension.  
  $ ls -X
  $ ls -X


Ligne 157 : Ligne 138 :


Pour créer des fichiers de caractères majuscules ou spéciaux.  
Pour créer des fichiers de caractères majuscules ou spéciaux.  
  $ mknod
  $ mknod


Ligne 163 : Ligne 143 :


Permet de visualiser le contenu de ''fich'' page par page. Utilisez ''Enter'' pour le faire défiler, ''q'' pour quitter.La commande ''<nowiki># cat fich  more</nowiki>'' donne le même résultat.  
Permet de visualiser le contenu de ''fich'' page par page. Utilisez ''Enter'' pour le faire défiler, ''q'' pour quitter.La commande ''<nowiki># cat fich  more</nowiki>'' donne le même résultat.  
  $ more fich
  $ more fich


Ligne 169 : Ligne 148 :


Pour déplacer ou renommer un fichier. Exemple&nbsp;:''<nowiki># mv toto /clown/titi</nowiki>'' déplacera le fichier ''toto'' dans le répertoire ''clown'' (qui doit exister) et le renommera''titi''.  
Pour déplacer ou renommer un fichier. Exemple&nbsp;:''<nowiki># mv toto /clown/titi</nowiki>'' déplacera le fichier ''toto'' dans le répertoire ''clown'' (qui doit exister) et le renommera''titi''.  
  $ mv source destination
  $ mv source destination


Effectue une sauvegarde du fichier avant de le déplacer.  
Effectue une sauvegarde du fichier avant de le déplacer.  
  $ mv -b
  $ mv -b


Effectue le déplacement même si la cible existe déjà, et ce sans message d'avertissement.  
Effectue le déplacement même si la cible existe déjà, et ce sans message d'avertissement.  
  $ mv -f
  $ mv -f


Demande une confirmation si des fichiers risquent d'être écrasés par le déplacement.  
Demande une confirmation si des fichiers risquent d'être écrasés par le déplacement.  
  $ mv -i
  $ mv -i


Ligne 187 : Ligne 162 :


Supprime ''fich''. Une fois un fichier effacé, il n'est plus possible de récupérer son contenu.Il est possible de spécifier plusieurs fichiers à la commande ''rm''&nbsp;: dans ce cas, ils seront tous supprimés.Pour supprimer un fichier dont le nom commence par un tiret -, tapez&nbsp;:<nowiki># rm -- -lenomdufichier</nowiki>ou<nowiki># rm ./-lenomdufichier</nowiki>  
Supprime ''fich''. Une fois un fichier effacé, il n'est plus possible de récupérer son contenu.Il est possible de spécifier plusieurs fichiers à la commande ''rm''&nbsp;: dans ce cas, ils seront tous supprimés.Pour supprimer un fichier dont le nom commence par un tiret -, tapez&nbsp;:<nowiki># rm -- -lenomdufichier</nowiki>ou<nowiki># rm ./-lenomdufichier</nowiki>  
  $ rm fich
  $ rm fich


Supprime ''fich'' sans demander de confirmation, même si le fichier est protégé en écriture.  
Supprime ''fich'' sans demander de confirmation, même si le fichier est protégé en écriture.  
  $ rm -f fich
  $ rm -f fich


Permet de demander à l'utilisateur une confirmation avant de supprimer le ou les fichiers en question.  
Permet de demander à l'utilisateur une confirmation avant de supprimer le ou les fichiers en question.  
  $ rm -i
  $ rm -i


Ligne 201 : Ligne 173 :


Pour afficher la liste des fichiers dont le nom contient le mot ''couic''. La commande ''slocate'' est la version sécurisée de ''locate''&nbsp;: elle permet de ne pas afficher des fichiers qu'un utilisateur normal n'a pas à voir. Elle permet également une recherche plus rapide qu'avec ''find''.  
Pour afficher la liste des fichiers dont le nom contient le mot ''couic''. La commande ''slocate'' est la version sécurisée de ''locate''&nbsp;: elle permet de ne pas afficher des fichiers qu'un utilisateur normal n'a pas à voir. Elle permet également une recherche plus rapide qu'avec ''find''.  
  $ slocate couic
  $ slocate couic


Ligne 209 : Ligne 180 :


Pour afficher le contenu de ''fich'' à l'écran en commençant par le bas.  
Pour afficher le contenu de ''fich'' à l'écran en commençant par le bas.  
  $ tac fich
  $ tac fich


Ligne 215 : Ligne 185 :


Pour afficher les 10 dernières lignes de ''fich''.  
Pour afficher les 10 dernières lignes de ''fich''.  
  $ tail fich
  $ tail fich


Pour afficher les 2 dernières lignes de ''fich''.  
Pour afficher les 2 dernières lignes de ''fich''.  
  $ tail -2 fich
  $ tail -2 fich


Ligne 225 : Ligne 193 :


Sert normalement à modifier la date de création et de modification du fichier, mais permet aussi de créer le fichier ''fich''.  
Sert normalement à modifier la date de création et de modification du fichier, mais permet aussi de créer le fichier ''fich''.  
  $ touch fich
  $ touch fich


Ligne 233 : Ligne 200 :


Il arrive que l'on fasse une fausse manipulation dans les commandes shell et que l'on se retrouve avec un fichier ayant un nom débutant par un tiret. Taper&nbsp;:  
Il arrive que l'on fasse une fausse manipulation dans les commandes shell et que l'on se retrouve avec un fichier ayant un nom débutant par un tiret. Taper&nbsp;:  
  $ rm -nom_du_fichier
  $ rm -nom_du_fichier


ne marchera pas, rm croyant qu'on est en train de lui passer une option puisque telle est la signification du premier tiret. Il faut donc utiliser l'option de fin de commande symbolisée par deux tirest consécutifs --. Pour notre exemple, on tapera&nbsp;:  
ne marchera pas, rm croyant qu'on est en train de lui passer une option puisque telle est la signification du premier tiret. Il faut donc utiliser l'option de fin de commande symbolisée par deux tirest consécutifs --. Pour notre exemple, on tapera&nbsp;:  
  $ rm -- -fichier.txt
  $ rm -- -fichier.txt


Ligne 258 : Ligne 223 :
=== Taper un nom de fichier contenant des espaces.  ===
=== Taper un nom de fichier contenant des espaces.  ===


Il suffit de mettre le nom entre guillemets.
Il suffit de mettre le nom entre guillemets :
 
  $ mv tutoriel linux/introduction renverra une erreur. Il faut taper&nbsp;:
  $ mv tutoriel linux/introduction renverra une erreur. Il faut taper&nbsp;:
  $ mv "tutoriel linux"/introduction
  $ mv "tutoriel linux"/introduction
Ligne 268 : Ligne 232 :


Exemple&nbsp;: pour renommer les fichiers *.mpeg en *.mpg, tapez la ligne entière suivante&nbsp;:  
Exemple&nbsp;: pour renommer les fichiers *.mpeg en *.mpg, tapez la ligne entière suivante&nbsp;:  
  $ for i in *.mpeg; do mv "$i" "${i%.mpeg}.mpg"; done
  $ for i in *.mpeg; do mv "$i" "${i%.mpeg}.mpg"; done


Ligne 274 : Ligne 237 :


Les lignes commentées sont celles qui commencent par # dans les fichiers. Pour afficher à l'écran le contenu du fichier sans ces lignes, tapez&nbsp;:  
Les lignes commentées sont celles qui commencent par # dans les fichiers. Pour afficher à l'écran le contenu du fichier sans ces lignes, tapez&nbsp;:  
  $ sed -e "/^#/d" fichier
  $ sed -e "/^#/d" fichier


Ligne 284 : Ligne 246 :


Il peut arriver que vous ayez les caractères ^M affichés en fin de ligne d'un fichier texte écrit sous Windows. Pour les enlever, tapez&nbsp;:  
Il peut arriver que vous ayez les caractères ^M affichés en fin de ligne d'un fichier texte écrit sous Windows. Pour les enlever, tapez&nbsp;:  
  $ tr -d 'r' &lt; fichier_windows.txt &gt; fichier_windows_converti.txt
  $ tr -d 'r' &lt; fichier_windows.txt &gt; fichier_windows_converti.txt


Ligne 290 : Ligne 251 :


Trop de fichiers ouverts. Ceci est dû à une valeur trop petite affectée à file-max (8096 par défaut). Pour corriger ce problème, tapez&nbsp;:  
Trop de fichiers ouverts. Ceci est dû à une valeur trop petite affectée à file-max (8096 par défaut). Pour corriger ce problème, tapez&nbsp;:  
$ echo "65536" &gt;/proc/sys/fs/file-max


$ echo "65536" &gt;/proc/sys/fs/file-max
[[Catégorie:commandes]]
[[Catégorie:commandes]]

Version du 29 janvier 2010 à 07:32

Attention! Ce document n'a pas été validé par la communauté. Soyez prudent vis-à-vis de son contenu! Si au cours de vos manipulations un problème survenait, vous ne pouvez en aucun cas incriminer ce site. Posez vos questions sur le forum


BROUILLON... La rédaction n'est pas encore terminée.


Gestion des fichiers

Quelques commandes

La commande cat

Afficher le contenu du fichier fichier dans la console.

$ cat fichier

Afficher et copier le contenu de fichier dans fichier2.

$ cat file > file2

Afficher le contenu d'un fichier et numérote les lignes.

$ cat -n fichier

La commande chgrp

Changer le groupe auquel appartient un fichier :

$ chgrp groupe fichier

Affecter un fichier à un groupe. Le changement de groupe peut être réalisé par n'importe quel utilisateur... mais on ne peut donner un fichier qu'à l'un des groupes dont on est membre.
L'administrateur évidemment peut affecter un fichier à n'importe quel groupe d'utilisateur.
Exemple :$ chgrp -R toto /home/titi/rep Le répertoire /home/titi/rep/ et son contenu appartiendront désormais au groupe toto.

La commande cp

Copier un/des fichier(s). Exemple :

$ cp fichier /home/toto/vrac

Copier fichier_source dans répertoire_cible.

$ cp fichier_source /repertoire_cible/ 

Copier repertoire_source dans repertoire_cible sans demander de confirmation.

$ cp -Rf repertoire_source /repertoire_cible

Attention : Copier un fichier vers un fichier de même nom l'écrasera.
Pour copier plusieurs fichiers à la fois, pensez à utiliser les caractères génériques ? et *.

Copier sans écrasement du fichier destination (Le fichier écrasé est sauvegardé, seul le nom du fichier d'origine est modifié (ajout d'un tilde ~ à la fin du nom du fichier)) :

$ cp -b

Prévient celui qui lance la commande de l'existence d'un fichier du même nom et lui demande s'il peut ou non remplacer son contenu. Permet de ne pas écraser par inadvertance des fichiers importants :

$ cp -i

Afficher le nom des fichiers copiés (-v = verbose ou "verbeux"). Pratique si vous copiez plusieurs fichiers à l'aide des caractères génériques * et/ou ? et que vous souhaitez voir le bon déroulement de la multicopie.

$ cp -v

La commande dd

Copier dans un fichier le contenu exact d'un support donné (disquette, table de partition...), sans tenir compte de la structure ou du format. Commande dangereuse : vous risquez, en cas d'erreur, de faire totalement et irrémédiablement disparaître les partitions de votre disque dur.

S'utilise avec les droits "root"

Exemple Pour sauvegarder le MBR du disque hda dans le fichier mbr.sav :

# dd if=/dev/hda of=mbr.sav bs=512 count=1
1+0 enregistrements lus
1+0 enregistrements écrits
512 octets (512 B) copiés, 9,3797e-05 s, 5,5 MB/s

La commande diff

Comparer deux fichiers et indique les différences. Les lignes provenant de fich1 sont préfixées par > et celles provenant de fich2 par <. Des lignes de contexte indiquent les blocs de lignes qui ont été modifiés (c), ajoutés (a) ou détruits (d), le principe étant d'indiquer les modifications à effectuer pour convertir fich1 en fich2.

$ diff fichier1 fichier2

La commande file

Il peut arriver qu'un fichier ait une extension défectueuse ou qu'il n'en ait pas. File permet de retrouver le type de fichier. Il suffit d'indiquer après file le ou les noms des fichiers à analyser. Exemple : # file /bin/bash /etc/passwd

$ file fichier

La commande find

Rechercher de fichier. Ex :# find /home/toto/bazard -name *.jpeg donne la liste des fichiers .jpeg contenu dans le répertoire/home/toto/bazard. Vous pouvez utiliser un caractère générique pour remplacer les lettres, il faut le faire précéder d'une barre oblique inverse :# find / -name image\*

$ find -name fichier

Afficher le résultat de la recherche, avec les chemins relatifs.

$ find -name fichier -print

Indiquer le type de fichier à rechercher. Remplacez x par f pour les fichiers, d pour les répertoires et l pour les liens symboliques.

$ find -type x -name fichier

La commande less

Visualiser fichier page par page. Utilisez les touches directionnelles haut et bas pour faire défiler le texte, q pour quitter.

$ less fichier

La commande locate

Localiser un fichier. Locate est un lien symbolique de la commande slocate. Exemple : # locate titi affiche la liste des fichiers dont le nom contient le mot titi.Locate affiche tous les noms de fichiers correspondant au critère indiqué. Pour n'afficher que les fichiers autorisés, utilisez slocate.Locate se base sur une base de données de tous les noms de fichiers, mise à jour quotidiennement. Des fichiers récemment créés ne seront donc pas forcément référencés. Pour forcer une mise à jour manuelle, tapez :# updatedbou# slocate -u

$ locate x

La commande ls

Lister les fichiers et les sous-répertoires de /rep.

$ ls /rep

Lister tous les fichiers du répertoire indiqué, fichiers cachés (dont le nom commence par un point) compris. Si vous n'indiquez pas de répertoire, c'est le contenu du répertoire courant qui est listé.

$ ls -a /rep

Afficher tous les sous-répertoires de /rep.

$ ls -d /rep

Affichage long : droits, nom et groupe du propriétaire, taille, date de dernière modification.Si vous tapez le nom d'un lien, vous connaîtrez son fichier ou répertoire cible.

$ ls -l

Affiche tout le contenu du répertoire de façon détaillée.

$ ls -la

Liste le contenu d'un répertoire en donnant pour chaque fichier/répertoire plus de détails qu'un simple ls.

$ ls -lh /rep

Liste les fichiers par type. Un fichier suivi d'un slash est un répertoire, un fichier suivi d'une étoile est un fichier exécutable et un fichier suivi d'un @ est un lien.

$ ls -F

Liste les fichiers en les séparant par une virgule au lieu de les présenter en colonnes.

$ ls -m

En complément de -l, affiche le nom et le groupe des propriétaires en fonction de leur UID et de leur GID.

$ ls -n

Liste les fichiers en ordre alphabétique inverse.

$ ls -r

Liste les fichiers triés par ordre de taille décroissante.

$ ls -S

Liste le contenu de /rep en triant par date de modification, du plus récent au plus ancien.

$ ls -t /rep

Liste les fichiers par type d'extension.

$ ls -X

La commande mknod

Pour créer des fichiers de caractères majuscules ou spéciaux.

$ mknod

La commande more

Permet de visualiser le contenu de fich page par page. Utilisez Enter pour le faire défiler, q pour quitter.La commande # cat fich more donne le même résultat.

$ more fich

La commande mv

Pour déplacer ou renommer un fichier. Exemple :# mv toto /clown/titi déplacera le fichier toto dans le répertoire clown (qui doit exister) et le renommeratiti.

$ mv source destination

Effectue une sauvegarde du fichier avant de le déplacer.

$ mv -b

Effectue le déplacement même si la cible existe déjà, et ce sans message d'avertissement.

$ mv -f

Demande une confirmation si des fichiers risquent d'être écrasés par le déplacement.

$ mv -i

La commande rm

Supprime fich. Une fois un fichier effacé, il n'est plus possible de récupérer son contenu.Il est possible de spécifier plusieurs fichiers à la commande rm : dans ce cas, ils seront tous supprimés.Pour supprimer un fichier dont le nom commence par un tiret -, tapez :# rm -- -lenomdufichierou# rm ./-lenomdufichier

$ rm fich

Supprime fich sans demander de confirmation, même si le fichier est protégé en écriture.

$ rm -f fich

Permet de demander à l'utilisateur une confirmation avant de supprimer le ou les fichiers en question.

$ rm -i

La commande slocate

Pour afficher la liste des fichiers dont le nom contient le mot couic. La commande slocate est la version sécurisée de locate : elle permet de ne pas afficher des fichiers qu'un utilisateur normal n'a pas à voir. Elle permet également une recherche plus rapide qu'avec find.

$ slocate couic

Si vous installez le paquet suidmanager, vous pourrez employer la commande suidregister pour afficher en option les fichiers auxquels vous n'avez normalement pas accès, à condition de fournir le mot de passe.

La commande tac

Pour afficher le contenu de fich à l'écran en commençant par le bas.

$ tac fich

La commande tail

Pour afficher les 10 dernières lignes de fich.

$ tail fich

Pour afficher les 2 dernières lignes de fich.

$ tail -2 fich

La commande touch

Sert normalement à modifier la date de création et de modification du fichier, mais permet aussi de créer le fichier fich.

$ touch fich

Quelques "trucs"

Effacer le fichier -fichier.txt.

Il arrive que l'on fasse une fausse manipulation dans les commandes shell et que l'on se retrouve avec un fichier ayant un nom débutant par un tiret. Taper :

$ rm -nom_du_fichier

ne marchera pas, rm croyant qu'on est en train de lui passer une option puisque telle est la signification du premier tiret. Il faut donc utiliser l'option de fin de commande symbolisée par deux tirest consécutifs --. Pour notre exemple, on tapera :

$ rm -- -fichier.txt

Note : -- est utilisable pour toutes les commandes shell.

Renommer un fichier commençant par un tiret

$ mv -- \-monfichier1 monfichier2

probleme de nom: renommer un fichier commencant par un tiret

Effacer un fichier avec des caractères spéciaux

$ rm mon_fichier_avec_un_nom_à_la_con\&

Comme pour tout caractère compris par le batch comme une commande il faut faire précéder ce caractère de "escape" ( \ )

supprimer fichier avec '&'

Taper un nom de fichier contenant des espaces.

Il suffit de mettre le nom entre guillemets :

$ mv tutoriel linux/introduction renverra une erreur. Il faut taper :
$ mv "tutoriel linux"/introduction

Cette astuce fonctionne avec d'autres caractères spéciaux.

Renommer plusieurs fichiers simultanément.

Exemple : pour renommer les fichiers *.mpeg en *.mpg, tapez la ligne entière suivante :

$ for i in *.mpeg; do mv "$i" "${i%.mpeg}.mpg"; done

Afficher les lignes d'un fichier sans les lignes commentées.

Les lignes commentées sont celles qui commencent par # dans les fichiers. Pour afficher à l'écran le contenu du fichier sans ces lignes, tapez :

$ sed -e "/^#/d" fichier

Explication de la commande :

sed (Stream Editor) permet de travailler sur les flux. ^ signifie tout ce qui commence par (dans notre cas, ce qui commence par #). d permet de supprimer les lignes qui correspondent à l'expression indiquée entre les barres obliques (/^#/ dans notre exemple).

Supprimer les ^M d'un fichier texte de Windows.

Il peut arriver que vous ayez les caractères ^M affichés en fin de ligne d'un fichier texte écrit sous Windows. Pour les enlever, tapez :

$ tr -d 'r' < fichier_windows.txt > fichier_windows_converti.txt

Message Too many open files

Trop de fichiers ouverts. Ceci est dû à une valeur trop petite affectée à file-max (8096 par défaut). Pour corriger ce problème, tapez :

$ echo "65536" >/proc/sys/fs/file-max