Avertissement : ce site est la captation et sauvegarde personnelle d'un site créé par Pascal Gentil et qui fut hébergé sur les serveurs de l'université Rennes 1 mais n'est désormais plus disponible. Cette sauvegarde (qui n'est que partielle et comporte donc de légères modifications, pour éviter les liens morts) est faite sans l'autorisation de l'auteur, et est uniquement motivée par la volonté de laisser un accès à un contenu que je trouve être de valeur.

Documentation Unix : les commandes relatives aux fichiers


file

Identifie le type d'un fichier

Syntaxe : file fichier

Exemple :
file .scilab : renvoie commands text

Les types text peuvent êtres transformés en PostScript pour impression au moyen de l'utilitaire a2ps.

Il existe tellement de types de fichiers différents que nous ne voyons ici que les plus courants. Il s'agit des types :

Il existe des fichiers archivés, compressés ou codés qui peuvent se ramener à des fichiers textes. Ce sont les types :

Les types suivants correspondent à des fichiers non imprimables. Ce peuvent être des binaires tels :

des images : Enfin lorsque file ne reconnaît pas le type d'un fichier, il affiche :
Haut de page

iconv

Convertit l'encodage

Syntaxe : iconv -f oldcode -t newcode entree -o sortie

Les versions anciennes de GNU/Linux utilisaient l'encodage ISOLATIN-1 (ou ISO 8859-1 ou ISO 8859-15). Depuis la distribution RedHat 9, l'encodage utilisé est l'Universal Character Set (UCS) qui contient les caractères nécessaires pour représenter presque tous les langages connus. Il inclut les alphabets latin, grec, cyrillique, hébreu, arabe, arménien, chinois, japonais, coréen, bengali, thai, tibétain, mongol, ...

Exemple :
iconv -f latin1 -t utf8 test.iso -o test.unic : convertit le fichier test.iso en test.unic de l'encodage iso-latin en utf-8.


Haut de page

tr

Transpose ou élimine des caractères.

Syntaxe : tr [-cstd]   chaine1 chaine2

tr permet de :

Options principales :

Exemples :

Conversion de minuscules en majuscules (de 3 manières différentes) :
tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
tr a-z A-Z
tr '[:lower:]' '[:upper:]'

Une utilisation pratique pour les francophones est la suppression des caractères accentués d'un texte :
tr "àçéèêëîïôöùüÂÇÉÈÊËÎÏÔÖÙÜ" "aceeeeiioouuACEEEEIIOOUU"

Supprimer les octets nuls :
tr -d '\000'

Afficher chaque mot sur une ligne indépendante en convertissant tous les caractères non alphanumériques en sauts de lignes, puis en regroupant les lignes blanches successives en un seul saut de ligne :
tr -cs '[a-zA-Z0-9]' '[\n*]'

Convertir les séquences de sauts de lignes en un seul saut de ligne donc en supprimant les lignes blanches :
tr -s '\n'


Haut de page

cat

Affiche le contenu d'un fichier.

Syntaxe : cat [-n] fichier

Option principale : -n : numérote les lignes

NB : Il existe une autre utilisation de la commande cat

Exemples :
cat -n essai.1 : affiche le fichier essai.1 à l'écran en numérotant les lignes.
cat essai.1 essai.2 : affiche à l'écran le fichier essai.1 puis le fichier essai.2.


Haut de page

more

Affiche le contenu d'un fichier page par page.

Syntaxe : more [-c] fichier

Option principale : -c : efface la fenêtre avant l'affichage.

Exemple :
more essai.c : affiche la première page du fichier essai.c. Puis tapez :


Haut de page

less

Affiche le contenu d'un fichier page par page.

Syntaxe : less [-c] fichier

Option principale : -c : efface la fenêtre avant l'affichage.

less peut être considéré comme le successeur de more. Il fait la même chose mais offre davantage de possibilités, comme le retour en arrière.


Haut de page

head

Affiche le début d'un fichier.

Syntaxe : head [-num]   fichier

Option principale : -num : affiche les num premières lignes du fichier. Par défaut, num = 10.

Exemple :
head -10 *.c : affiche les 10 premières lignes de tous les fichiers sources C du répertoire courant.


Haut de page

tail

Affiche la fin d'un fichier.

Syntaxe : tail [-num]   fichier

Option principale : -num : affiche les num dernières lignes du fichier. Par défaut, num = 10.

Exemple :
tail -50 essai : affiche les 50 dernières lignes du fichier essai.


Haut de page

tac

Affiche le contenu d'un fichier en ordre inverse, c'est à dire en commençant par la fin.

Syntaxe : tac fichier

Exemple :
tac essai.txt : affiche le fichier essai.txt en ordre inverse, c'est à dire en commençant par la fin.


Haut de page

nl

Affiche les lignes d'un fichier précédées de leur numéro.

Syntaxe : nl [-ba]   fichier

Options principales :

Exemple :
nl -ba essai.c : affiche toutes les lignes du fichier essai.c précédées de leur numéro.
Haut de page

wc

Compte le nombre de lignes, de mots ou de caractères d'un fichier.

Syntaxe : wc [-clw]   fichier

Options principales :

Exemple :
wc -l essai.c : renvoie le nombre de lignes du fichier essai.c.
Haut de page

uniq

Recherche les lignes consécutives identiques dans un fichier.

Syntaxe : uniq [-udc] [+m] [-n]   fichier

Options principales :

Exemple : Prenons le fichier noms :

   alain
   jean 
   maurice 
   alain 
   robert 
   jean
Après l'avoir trié en tapant : sort noms -o nomstries , la commande :
uniq -c nomstries renvoie
   2 alain
   2 jean
   1 maurice
   1 robert

Haut de page

grep

Recherche une (ou plusieurs) expression(s) dans un fichier.

Syntaxe : grep [-cilnrvE]   expression   fichier

Options principales :

Exemples :
grep -i -c 'integer' * : affiche le nombre de fois où les expressions integer, Integer ou INTEGER sont rencontrées dans chaque fichier du répertoire courant.
grep -Eir "fortran|Python" /codes : cherche les chaînes fortran ou Python, sans tenir compte de la casse, dans le répertoire /codes et ses sous-répertoires.


Haut de page

sort

Trie les champs d'un fichier.

Syntaxe : sort [-fnru] [-t car] [+i] [-j] [-o sortie]   fichier

Options principales :

Exemples :
Le fichier liste contient une liste de noms, prénoms de la forme :

     Alex TERIEUR 
     Alain VERSE 
     Jean NEMARD 
     Robert BIDOCHON 
sort +1 liste : trie le fichier liste par ordre alphabétique des noms.

Le fichier adresses contient une liste de prénoms,numéros de téléphone et villes de la forme suivante (les champs sont séparés par :) :

     alain:0298123456:Quimper 
     alex:0466789012:Marseille 
     jean:0144567890:Paris 
     robert:0380234567:Dijon 
sort -n -t : +1 -2 adresses : trie le fichier adresses par numéros de téléphones.
Haut de page

cut

Extrait des champs d'un fichier.

Syntaxe : cut [-cf] [-d car] [+i] [-j]  fichier

Options principales :

Contrairement à sort, le premier champ est noté 1, le second 2 ,...
Exemples:
En reprenant le fichier adresses (Voir sort ), la commande :
cut -c10 adresses : extrait les 10 premiers caractères de chaque ligne, soit :
     alain:0298
     alex:04667
     jean:01445
     robert:038
cut -d : -f2 adresses : extrait le deuxième champ, soit les numéros de téléphones :
     0298123456
     0466789012
     0144567890
     0380234567

Haut de page

paste

Ajoute des champs à un fichier

Syntaxe : paste [-s] [-d car]   fichier1  fichier2

Options principales :

Exemple :
Reprenons le fichier adresses (Voir sort )et considérons le fichier professions :

     boucher
     journaliste
     instituteur
     mécanicien
la commande paste -d : adresses professions > carnet crée le fichier carnet contenant :
     alain:0298123456:Quimper:boucher
     alex:0466789012:Marseille:journaliste
     jean:0144567890:Paris:instituteur
     robert:0380234567:Dijon:mécanicien

Haut de page

cp

Copie de fichier.

Syntaxe : cp [-ipr]  source   cible

Pour copier plusieurs fichiers d'un seul coup, il faut utiliser les caractères spéciaux du shell.

Option principale : -p : le fichier cible conserve les permissions et la date de dernière modification du fichier source (au lieu de la date courante).

Exemples:
cp tp1/* tp2 : copie tous les fichiers du répertoire tp1 dans le répertoire tp2
cp -ir tp1 tp2 : copie le répertoire tp1 dans le répertoire tp2 en demandant confirmation à chaque fichier.


Haut de page

ln

Crée un lien sur un fichier.

Syntaxe : ln [-s]  source  cible

Option principale : -s : crée un lien symbolique.

Créer un lien revient à définir un alias à un fichier qui existe déjà. Un lien ne peut se faire qu'entre fichiers d'un même filesystem. Sinon il faut utiliser l'option -s.
De manière générale, il est recommandé d'utiliser systématiquement l'option -s.

Exemple :
ln -s /export/home/pub/stage/unixc/pg.c pg.c : crée un lien symbolique. Pratiquement, c'est comme si le fichier pg.c se trouvait dans le répertoire courant mais sans avoir à en faire la copie.


Haut de page

mv

Déplace ou change le nom d'un fichier

Syntaxe : mv [-fi]  source  cible

Si cible est un nom de fichier, source est renommé en cible.
Si cible est un nom de répertoire, source est déplacé dans le répertoire cible.

Option principale : -f : force la commande.

Exemples :
mv essai.1 essai.2 : renomme le fichier essai.1 en essai.2
mv tp11.c tp/tp1 : déplace le fichier tp11.c dans le répertoire tp/tp1


Haut de page

split

Découpe un fichier.

Syntaxe : split [-num]  fichier [nom]

Options principales :

Exemple :
split -100 essai.c petit : découpe le fichier essai.c en fichiers de 100 lignes nommés petitaapetitab,...


Haut de page

rm

Supprime un fichier ou répertoire.

Syntaxe : rm [-if]  fichier ou rm [-if] -r répertoire

Options principales :

Exemples :
rm essai.2 : suppression du fichier essai2
rm -r tp : suppression du répertoire tp


Haut de page

comm

Recherche les lignes identiques à 2 fichiers.

Syntaxe : comm [-123]   fichier1 fichier2

comm sépare les lignes en 3 groupes :

  1. les lignes présentes seulement dans le premierfichier.
  2. les lignes présentes seulement dans le deuxièmefichier.
  3. les lignes présentes seulement dans les 2 fichiers.

Options :

Exemple :
Soit le fichier adresses2 suivant :

     alain:0298662544:Brest
     alex:0466789012:Marseille
     jean:0144567890:Paris
     robert:0380234567:Dijon
comm adresses adresses2 le compare au fichier adresses (Voir sort ), et renvoie :
     alain:0298123456:Quimper
     alain:0298662544:Brest  
     alex:0466789012:Marseille
     jean:0144567890:Paris
     robert:0380234567:Dijon
On voit que la première ligne est différente.
Haut de page

diff

Recherche les lignes différentes à 2 fichiers.

Syntaxe : diff  fichier1 fichier2

Options principales :

Exemples :
Reprenons les fichiers adresses et adresses2
diff adresses2 adresses renvoie :

     1c1
     < alain:0298123456:Quimper
     ---
     > alain:0298662544:Brest  
On voit que la première ligne est différente.
Haut de page

cat

Concaténer 2 fichiers (ou plus)

Syntaxe : cat  fichier1 fichier2 ... > fichierx

NB : Il existe une autre utilisation de la commande cat

Exemple :
cat tp1 tp2 > tp : copie les fichiers tp1 puis tp2 dans tp


Dernière modification : 5 décembre 2013