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 :
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.
Syntaxe : tr [-cstd] chaine1 chaine2
tr permet de :
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'
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.
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 :
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.
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.
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.
Syntaxe : tac fichier
Exemple :
tac essai.txt : affiche le fichier essai.txt en ordre inverse,
c'est à dire en commençant par la fin.
Syntaxe : nl [-ba] fichier
Options principales :
Syntaxe : wc [-clw] fichier
Options principales :
Syntaxe : uniq [-udc] [+m] [-n] fichier
Options principales :
Exemple : Prenons le fichier noms :
alain jean maurice alain robert jeanAprès l'avoir trié en tapant : sort noms -o nomstries , la commande :
2 alain 2 jean 1 maurice 1 robert
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.
Syntaxe : sort [-fnru] [-t car] [+i] [-j] [-o sortie] fichier
Options principales :
Le premier champ est noté 0, le second 1 ,...
Exemples :
Le fichier liste contient une liste de noms, prénoms de la forme :
Alex TERIEUR Alain VERSE Jean NEMARD Robert BIDOCHONsort +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:Dijonsort -n -t : +1 -2 adresses : trie le fichier adresses par numéros de téléphones.
Syntaxe : cut [-cf] [-d car] [+i] [-j] fichier
Options principales :
Exemples:Contrairement à sort, le premier champ est noté 1, le second 2 ,...
alain:0298 alex:04667 jean:01445 robert:038cut -d : -f2 adresses : extrait le deuxième champ, soit les numéros de téléphones :
0298123456 0466789012 0144567890 0380234567
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écanicienla 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
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.
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.
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
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 petitaa, petitab,...
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
Syntaxe : comm [-123] fichier1 fichier2
comm sépare les lignes en 3 groupes :
Options :
Exemple :
Soit le fichier adresses2 suivant :
alain:0298662544:Brest alex:0466789012:Marseille jean:0144567890:Paris robert:0380234567:Dijoncomm 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:DijonOn voit que la première ligne est différente.
Syntaxe : diff fichier1 fichier2
Options principales :
Exemples :
Reprenons les fichiers adresses et adresses2
diff adresses2 adresses renvoie :
1c1 < alain:0298123456:Quimper --- > alain:0298662544:BrestOn voit que la première ligne est différente.
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