Table des matières

Niveau : Utilisateur Numéro de la Leçon Dernière Modification
1/4 <progrecss 2/5 style=inline /> 2020/01/30 03:28

Commandes de Base et Outils de Manipulation de Fichiers Texte

<note> Vous êtes actuellement connecté(e) en tant que root dans votre terminal. Avant de procéder plus loin, tapez la commande exit et appuyez sur la touch ↵ Entrée. </note>

La commande stty

Dès votre connexion à un système Linux, Il est conseillé de lancer la commande suivante

$ stty –a [Entrée]

Faites attention à utiliser des minuscules. En effet Linux différencie les minuscules et les majuscules.

trainee@debian:~$ stty -a
speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

Dans l’information qui s’affiche à l’écran, cherchez la chaîne intr =. Si la valeur est «Del», il faut utiliser la touche Suppr au lieu de la commande ^C pour interrompre un programme en cours d’exécution dans un terminal.

Options de la commande

Les options de cette commande sont :

trainee@debian:~$ stty --help
Utilisation : stty [-F DEVICE] | --file=DEVICE] [SETTING]...
         ou : stty [-F DEVICE | --file=DEVICE] [-a|--all]
         ou : stty [-F DEVICE | --file=DEVICE] [-g|--save]
Affiche ou modifie les caractéristiques du terminal.

  -a, --all          affiche toutes les paramètres actuels dans un format
                     humainement lisible
  -g, --save         affiche toutes les paramètres actuels dans un format
                     lisible par « stty »
  -F, --file=DEVICE  utilise le périphérique spécifié au lieu de stdin
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Un « - » optionnel avant SETTINGS indique une négation. Un * indique des
paramètres non-POSIX. Le système sous-jacent détermine les paramètres
applicables.

Caractères spéciaux :
* dsusp CHAR    CHAR émettra un signal d'arrêt de terminal une fois le tampon
                d'entrée vidé
  eof CHAR      CHAR émettra une fin de fichier (pour arrêter l'entrée)
  eol CHAR      CHAR arrêtera la ligne
* eol2 CHAR     CHAR alternatif pour arrêter la ligne
  erase CHAR    CHAR supprimera le dernier caractère saisi
  intr CHAR     CHAR émettra un signal d'interruption
  kill CHAR     CHAR supprimera la ligne actuelle
* lnext CHAR    CHAR entrera le prochain caractère entre guillemets
  quit CHAR     CHAR émettra un signal de fin
* rprnt CHAR    CHAR ré-affichera la ligne actuelle
  start CHAR    CHAR redémarrera la sortie après l'avoir arrêtée
  stop CHAR     CHAR arrêtera la sortie
  susp CHAR     CHAR émettra un signal d'arrêt de terminal
* swtch CHAR    CHAR permettra de basculer à une couche différente du shell
* werase CHAR   CHAR supprimera le dernier mot saisi

Paramètres spéciaux :
  N             initialise les vitesses d'entrée et de sortie à N bauds
* cols N        indique au kernel que le terminal a N colonnes
* columns N     identique à « cols N »
  ispeed N      initialise la vitesse d'entrée à N
* line N        utilise la discipline de ligne N
  min N         avec -icanon, initialise à N le nombre de caractères
                nécessaires pour obtenir une lecture complète
  ospeed N      initialise la vitesse de sortie à N
* rows N        indique au kernel que le terminal a N lignes
* size          affiche le nombre de lignes et de colonnes selon les paramètres
                du kernel
  speed         affiche la vitesse du terminal
  time N        avec -icanon, initialise le délai d'inactivité de lecture à
                N dizièmes de seconde

Paramètres de contrôle :
  [-]clocal     inhibe les signaux de contrôle du modem
  [-]cread      autorise la réception sur l'entrée
* [-]crtscts    autorise RTS/CTS handshaking
  csN           initialise la taille des caractères à N bits,
                N variant entre [5..8]
  [-]cstopb     utilise 2 bits d'arrêt par caractère (un avec « - »)
  [-]hup        émet un signal de déconnexion quand le dernier processus ferme
                le lien tty
  [-]hupcl      identique à [-]hup
  [-]parenb     génère le bit de parité pour la sortie et traite l'entrée avec
                un bit de parité implicite
  [-]parodd     utilise une parité impaire (paire avec « - »)

Paramètres d'entrée :
  [-]brkint     break provoque un signal d'interruption
  [-]icrnl      transforme le retour de chariot en saut de ligne
  [-]ignbrk     ignore les caractères break
  [-]igncr      ignore le retour de chariot
  [-]ignpar     ignore les caractères ayant des erreurs de parité
* [-]imaxbel    émet un bip et ne vide pas le tampon d'entrée plein lors de
                l'arrivée d'un caractère
  [-]inlcr      transforme le saut de ligne en retour de chariot
  [-]inpck      autorise la vérification de la parité à l'entrée
  [-]istrip     met à zéro le bit haut (8e) des caractères en entrée
 * [-]iutf8      présume que les caractères en entrée sont codés en UTF-8
* [-]iuclc      transforme les majuscles en minuscules
* [-]ixany      permet à n'importe quel caractère de relancer l'affichage
                sur la sortie, pas uniquement le caractère de redémarrage
  [-]ixoff      autorise l'envoi d'un caractère d'arrêt/départ
  [-]ixon       autorise le contrôle de flux XON/XOFF
  [-]parmrk     indique les erreurs de parité par une séquence de
                caractères (255-0)
  [-]tandem     identique à [-]ixoff

Paramètres de sortie :
* bsN           style du délai de retour arrière, N parmi [0..1]
* crN           style du délai du retour de chariot, N parmi [0..3]
* ffN           style du délai du saut de page, N parmi [0..1]
* nlN           style du délai du saut de ligne, N parmi [0..1]
* [-]ocrnl      transforme un retour de chariot par un saut de ligne
* [-]ofdel      utilise des caractères d'effacement comme caractère
                de remplissage au lieu de caractères nuls
* [-]ofill      utilise le remplissage de caractères au lieu du délai par
                minuterie
* [-]olcuc      traduit les minuscules en majuscules
* [-]onlcr      traduit le saut de ligne en retour de chariot-saut de ligne
* [-]onlret     le saut de ligne génère un retour de chariot
* [-]onocr      n'affiche pas un retour chariot en première colonne
  [-]opost      post-traitement de sortie
* tabN          style du délai de tabulation horizontale, N parmi [0..3]
* tabs          identique à tab0
* -tabs         identique à tab3
* vtN           style du délai de tabulation verticale, N parmi [0..1]

Paramètres locaux :
  [-]crterase   écho du caractère « erase » comme séquence
                retour arrière-espace-retour arrière
* crtkill       supprime toute ligne en respectant les paramètres « echoprt » et
                « echoe »
* -crtkill      supprime toute ligne en respectant les paramètres « echoctl » et
                « echok »
* [-]ctlecho    écho des caractères de contrôle par une notation en
                chapeau (« ^c »)
  [-]echo       écho des caractères en entrée
* [-]echoctl    identique à [-]ctlecho
  [-]echoe      identique à [-]crterase
  [-]echok      écho d'un saut de ligne après un caractère d'annulation
* [-]echoke     identique à [-]crtkill
  [-]echonl     écho d'un saut de ligne même s'il n'y pas d'écho des autres
                caractères
* [-]echoprt    écho des caractères d'effacement par retour arrière, entre
                « \ » et « / »
  [-]icanon     autorise les caractères spéciaux
                « erase », « kill », « werase », et « rprnt »
  [-]iexten     autorise les caractères spéciaux non-POSIX
  [-]isig       autorise les caractères spéciaux
                « interrupt », « quit », et « suspend »
  [-]noflsh     désactive la vidange après réception des caractères
                « interrupt » et « quit »
* [-]prterase   identique à [-]echoprt
* [-]tostop     arrête les tâches d'arrière plan qui essaient d'écrire sur le
                terminal
* [-]xcase      avec « icanon », protège les majuscules avec « \ »

Paramètres de combinaison :
* [-]LCASE      identique à [-]lcase
  cbreak        identique à -icanon
  -cbreak       identique à icanon
  cooked        identique à brkint ignpar istrip icrnl ixon opost isig
                icanon, eof et eol selon leur valeur par défaut
  -cooked       identique à raw
  crt           identique à echoe echoctl echoke
  dec           identique à echoe echoctl echoke -ixany intr ^c erase 0177
                kill ^u
* [-]decctlq    identique à [-]ixany
  ek            réinitialiser les caractères erase et kill à leur valeur
                par défaut
  evenp         identique à parenb -parodd cs7
  -evenp        identique à -parenb cs8
* [-]lcase      identique à xcase iuclc olcuc
  litout        identique à -parenb -istrip -opost cs8
  -litout       identique à parenb istrip opost cs7
  nl            identique à -icrnl -onlcr
  -nl           identique à icrnl -inlcr -igncr onlcr -ocrnl -onlret
  oddp          identique à parenb parodd cs7
  -oddp         identique à -parenb cs8
  [-]parity     identique à [-]evenp
  pass8         identique à -parenb -istrip cs8
  -pass8        identique à parenb istrip cs7
  raw           identique à -ignbrk -brkint -ignpar -parmrk -inpck -istrip
                -inlcr -igncr -icrnl  -ixon  -ixoff  -iuclc  -ixany
                -imaxbel -opost -isig -icanon -xcase min 1 fois 0
  -raw          identique à cooked
   sane          identique à cread -ignbrk brkint -inlcr -igncr icrnl -iutf8
                  -ixoff -iuclc -ixany imaxbel opost -olcuc -ocrnl onlcr
                  -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
                  isig icanon iexten echo echoe echok -echonl -noflsh
                  -xcase -tostop -echoprt echoctl echoke, tous les caractères
                  spéciaux avec leur valeur par défaut.

Prend en charge la ligne « tty » reliée à l'entrée standard. En l'absence
d'argument, affiche la vitesse, la discipline de ligne et les modifications
appliquées par « stty sane ». Dans les paramètres, CHAR est pris littéralement,
ou codé comme ^c, 0x37, 0177 ou 127 ; les valeurs spéciales comme ^- ou
indéfinies sont utilisées pour inhiber les caractères spéciaux.

Signalez les anomalies de « stty » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « stty » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'stty invocation' »

La commande date

Cette commande affiche la date et l’heure de la machine. La commande peut aussi être utilisée pour régler la date du système :

trainee@debian:~$ date
lundi 7 novembre 2011, 07:55:40 (UTC+0100)

Options de la commande

Les options de cette commande sont :

trainee@debian:~$ date --help
Utilisation : date [OPTION]... [+FORMAT]
         ou : date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Affiche la date actuelle selon le FORMAT spécifié ou initialise la date système.

  -d, --date=STRING        affiche la date selon le format STRING, sans « now »
  -f, --file=DATEFILE      identique à --date pour chaque ligne de DATEFILE
  -r, --reference=FILE      affiche la dernière heure de modification de FILE
  -R, --rfc-2822            affiche la date et l'heure selon le format RFC 2822.
                            Exemple, Mon, 07 Aug 2006 12:34:56 -0600
      --rfc-3339=TIMESPEC  affiche la date et l'heure selon le format RFC-3339.
                           TIMESPEC=`date', `seconds', ou `ns' pour
                           la date et l'heure selon la précision voulue.
                           Les éléments date et heure sont séparés par
                           une simple espace, 2006-08-07 12:34:56-06:00
  -s, --set=STRING         initialise la date selon STRING
  -u, --utc, --universal   affiche ou initialise le système de temps universel
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

FORMAT contrôle l'affichage. Les séquences interprétées sont :

  %%   un caractère %
  %a   les noms abrégés des jours de la semaine (p. ex. lun.)
  %A   les noms complets localisés des jours de la semaine (p. ex. lundi)
  %b   les noms abrégés localisés des mois (p. ex. janv.)
  %B   les noms complets localisés des mois (p. ex. janvier)
  %c   la date et l'heure localisées (p. ex. mar. 28 avril 2009 08:37:32 CEST)
  %C   siècle ; comme %Y, sans les 2 derniers chiffres (p. ex. 20)
  %d   jour du mois (p. ex. 01)
  %D   date, identique à %m/%d/%y
  %e   jour du mois, complété avec une espace, identique à %_d
  %F   la date complète, identique à %Y-%m-%d
  %g   les deux derniers chiffres de l'année du numéro de semaine ISO (voir %G)
  %G   l'année correspondant au numéro de semaine ISO (voir %V) ; normalement\
       utile seulement avec %V
  %h   identique à %b
  %H   heure (00..23)
  %I   heure (01..12)
  %j   jour de l'année (001..366)
  %k   heure ( 0..23)
  %l   heure ( 1..12)
  %m   mois (01..12)
  %M   minute (00..59)
  %n   un retour à ligne
  %N   nanosecondes (000000000..999999999)
  %p   indicateur localisé AM ou PM en majuscules (blanc si inconnu)
  %P   identique à %p mais en minuscules
  %r   heure locale au format 12-heure (p. ex. 11:11:01 PM)
  %R   heure en format 24-heure identique à %H:%M
  %s   secondes depuis 1970-01-01 00:00:00 UTC
  %S   secondes (00..60)
  %t   une tabulation
  %T   l'heure, identique à %H:%M:%S
  %u   le jour de la semaine (1..7) ; 1 représente le lundi
  %U   le numéro de la semaine de l'année, avec le dimanche comme premier jour
       de la semaine (00..53)
  %V   le numéro de la semaine ISO, avec le lundi comme premier jour de la
       semaine (01..53)
  %w   le jour de la semaine (0..6), avec 0 étant le dimanche
  %W   le numéro de la semaine, avec le lundi comme premier jour de la semaine
       (00..53)
  %x   représentation localisée de la date (p. ex. 12/31/99)
  %X   représentation localisée de l'heure (p. ex. 23:13:48)
  %y   les deux derniers chiffres de l'année (00..99)
  %Y   l'année
  %z   fuseau horaire numérique +hhmm  (p. ex. -0400)
  %:z  fuseau horaire numérique +hh:mm (p. ex. -04:00)
  %::z  fuseau horaire numérique +hh:mm:ss (p. ex. -04:00:00)
  %:::z  fuseau horaire numérique selon la précision nécessaire (p. ex. -04, +05:30)
  %Z   abréviation alphabétique des fuseaux horaires (p. ex. EDT)

Par défaut, les champs de date numériques sont remplis par des zéros.
Les drapeaux optionnels suivants peuvent suivre « % » :

  -  (hyphen) ne remplit pas le champs
  _  (underscore) remplit avec espace
  0  (zero) remplit avec zéro
  ^  emploie majuscule si possible
  #  emploie la casse opposée si possible

Après chaque drapeau suit un champ optionnel de largeur, sous la forme 
d'un nombre décimal ainsi que modificateur optionnel tel que :
E pour utiliser la représentation locale alternative si disponible, ou
O pour utiliser la représentation locale alternative de symboles numériques si
disponible.

Signalez les anomalies de « date » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « date » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'date invocation' »

La commande who

Cette commande affiche les utilisateurs connectés au système:

trainee@debian:~$ who
trainee  tty7         2011-10-21 08:47 (:0)
trainee  pts/0        2011-11-07 07:54 (:0.0)

<note important> La première ligne démontre que l'utilisateur trainee est connecté au premier terminal graphique (:0) généré à partir du septième terminal texte (tty7). La deuxième ligne démontre que l'utilisateur trainee est connecté au pseudo-terminal texte généré par l'application Terminal (pts/0). </note>

Options de la commande

Les options de cette commande sont :

trainee@debian:~$ who --help
Utilisation : who [OPTION]... [ FILE | ARG1 ARG2 ]
Affiche des informations sur les utilisateurs connectés.

  -a, --all        identique à -b -d --login -p -r -t -T -u
  -b, --boot       affiche l'heure du dernier démarrage système
  -d, --dead       affiche la liste des processus morts
  -H, --heading    affiche les en-têtes de colonne des lignes
      --ips         print ips instead of hostnames. with --lookup,
                    canonicalizes based on stored IP, if available,
                    rather than stored hostname
  -l, --login       affiche le processus de login du système
      --lookup      utilise la forme canonique des noms d'hôte via DNS
  -m                seulement le nom d'hôte et d'utilisateur associé à stdin
  -p, --process     affiche la liste des processus lancés par init
  -q, --count       affiche tous noms de connexion des utilisateurs connectés
  -r, --runlevel    affiche le niveau d'exécution actuel
  -s, --short       affiche seulement le nom, la ligne et l'heure (par défaut)
  -t, --time        affiche le dernier changement d'heure du système
  -T, -w, --mesg    ajoute le statut du message de l'utilisateur avec +, - ou ?
  -u, --users       affiche la liste des utilisateurs actifs
      --message     identique à -T
      --writeable   identique à -T
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Si FILE n'est pas spécifié, utilise /var/run/utmp. /var/log/wtmp en tant que FILE est usuel.
Si ARG1 ARG2 sont renseignés, -m est supposé, « am i » ou « mom likes » sont
usuels.

Signalez les anomalies de « who » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « who » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'who invocation' »

La commande df

Cette commande affiche l'espace disque libre sur chacun des unités montés (connectés au système):

trainee@debian:~$ df
Sys. de fichiers      1K-blocs   Utilisé    Dispo. Uti% Monté sur
/dev/sda1              4694884   4401712     54660  99% /
tmpfs                   517236         0    517236   0% /lib/init/rw
udev                    512824       176    512648   1% /dev
tmpfs                   517236       140    517096   1% /dev/shm

Les unités sont en blocs. Afin d'humaniser la sortie, il est possible d'utiliser l'option -h. Une option est aussi connue sous le nom parameter, switch ou flag :

trainee@debian:~$ df -h
Sys. de fichiers    Taille  Uti. Disp. Uti% Monté sur
/dev/sda1             4,5G  4,2G   54M  99% /
tmpfs                 506M     0  506M   0% /lib/init/rw
udev                  501M  176K  501M   1% /dev
tmpfs                 506M  140K  505M   1% /dev/shm

Options de la commande

Les options de cette commande sont :

trainee@debian:~$ df --help
Utilisation : df [OPTION]... [FILE]...
Affiche des informations sur le système de fichiers sur lequel chaque
chaque FILE réside ou de tous les systèmes de fichiers par défaut.

Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
  -a, --all             inclut les systèmes de fichiers factices
  -B, --block-size=SIZE utilise des blocs de SIZE octets
      --total           produit un total général
  -h, --human-readable  affiche les tailles dans un format lisible par un humain
                        (par ex. 1K, 234M ou 2G)
  -H, --si              identique avec un multiple de 1000 et non de 1024
  -i, --inodes          liste les informations des « inodes » au lieu des blocs
  -k                    identique à --block-size=1K
  -l, --local           limite le parcours au système des fichiers local
      --no-sync         n'effectue pas de synchronisation avant d'obtenir les
                        informations d'utilisation (par défaut)
  -P, --portability     utilise le format de sortie POSIX
      --sync            invoque sync avant d'obtenir les informations 
                        d'utilisation
  -t, --type=TYPE       limite le parcours aux systèmes de fichier de type TYPE
  -T, --print-type      affiche le type du système de fichiers
  -x, --exclude-type=TYPE  limite le parcours aux systèmes de fichiers 
                        différents du type TYPE
  -v                    (ignorée)
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Les valeurs sont affichées selon les unités du premier SIZE parmi --block-size
et les variables d'environnement DF_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE.
Dans le cas contraire, les unités par défaut sont 1 024 octets (ou 512 si
POSIXLY_CORRECT est défini).

SIZE peut être (ou un entier optionnellement suivi par) l'une des valeurs
suivantes : kB 1000, K 1024, MB 1000*1000, M 1024*1024 et ainsi de suite pour
G, T, P, E, Z et Y.

Signalez les anomalies de « df » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « df » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'df invocation' »

La commande free

Cette commande affiche les détails de la mémoire disponible :

trainee@debian:~$ free
             total       used       free     shared    buffers     cached
Mem:       1034472     547604     486868          0      57068     289572
-/+ buffers/cache:     200964     833508
Swap:      1951856          0    1951856

Au contraire de la commande précédente, l'option -h ne sert pas à humaniser la sortie. Dans le cas présent, cette option fait apparaître l'aide de la commande :

trainee@debian:~$ free -h
free: invalid option -- 'h'
usage: free [-b|-k|-m|-g] [-l] [-o] [-t] [-s delay] [-c count] [-V]
  -b,-k,-m,-g show output in bytes, KB, MB, or GB
  -l show detailed low and high memory statistics
  -o use old format (no -/+buffers/cache line)
  -t display total for RAM + swap
  -s update every [delay] seconds
  -c update [count] times
  -V display version information and exit

L'aide de la commande nous informe que l'option -m permettra une sortie en Mo :

trainee@debian:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1010        533        476          0         55        281
-/+ buffers/cache:        196        813
Swap:         1906          0       1906

La sortie ci-dessus nous informe qu'il y a :

Options de la commande

Les options de cette commande sont :

trainee@debian:~$ free --help
free: invalid option -- '-'
usage: free [-b|-k|-m|-g] [-l] [-o] [-t] [-s delay] [-c count] [-V]
  -b,-k,-m,-g show output in bytes, KB, MB, or GB
  -l show detailed low and high memory statistics
  -o use old format (no -/+buffers/cache line)
  -t display total for RAM + swap
  -s update every [delay] seconds
  -c update [count] times
  -V display version information and exit

La commande whoami

Cette commande affiche le nom associé à l'UID courant effectif, autrement dit, le nom de votre compte courant :

trainee@debian:~$ whoami
trainee

Devenez maintenant l'administrateur root :

trainee@debian:~$ su -
Mot de passe : fenestros

<note important> Notez que le mot de passe saisi ne sera pas visible. </note>

Saisissez maintenant la commande whoami de nouveau :

root@debian:~# whoami
root

<note important> Notez maintenant que vous êtes root. </note>

Saisissiez en suite la commande exit pour redevenir l'utilisateur trainee :

root@debian:~# exit
logout

Options de la commande

Les options de cette commande sont :

trainee@debian:~$ whoami --help
Utilisation : whoami [OPTION]...
Affiche le nom de l'utilisateur associé à l'ID effectif actuel.
Identique à « id -un ».

      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Signalez les anomalies de « whoami » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « whoami » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'whoami invocation' »

La commande pwd

Cette commande affiche le répertoire courant de travail :

trainee@debian:~$ pwd
/home/trainee

Options de la commande

Les options de cette commande sont :

trainee@debian:~$ help pwd
pwd: pwd [-LP]
    Print the name of the current working directory.
    
    Options:
      -L	print the value of $PWD if it names the current working
    	directory
      -P	print the physical directory, without any symbolic links
    
    By default, `pwd' behaves as if `-L' were specified.
    
    Exit Status:
    Returns 0 unless an invalid option is given or the current directory
    cannot be read.

La commande cd

Cette commande permet de changer de répertoire courant pour le répertoire passé en argument à la commande :

trainee@debian:~$ cd /tmp
trainee@debian:/tmp$ pwd
/tmp

Options de la commande

Les options de cette commande sont :

trainee@debian:/tmp$ help cd
cd: cd [-L|-P] [dir]
    Change the shell working directory.
    
    Change the current directory to DIR.  The default DIR is the value of the
    HOME shell variable.
    
    The variable CDPATH defines the search path for the directory containing
    DIR.  Alternative directory names in CDPATH are separated by a colon (:).
    A null directory name is the same as the current directory.  If DIR begins
    with a slash (/), then CDPATH is not used.
    
    If the directory is not found, and the shell option `cdable_vars' is set,
    the word is assumed to be  a variable name.  If that variable has a value,
    its value is used for DIR.
    
    Options:
        -L	force symbolic links to be followed
        -P	use the physical directory structure without following symbolic
    	links
    
    The default is to follow symbolic links, as if `-L' were specified.
    
    Exit Status:
    Returns 0 if the directory is changed; non-zero otherwise.

La commande ls

Cette commande permet de lister le contenu d'un répertoire passé en argument à la commande. Si aucun argument n'est spécifié, la commande liste le contenu du répertoire courant :

trainee@debian:/tmp$ ls
keyring-QPYpqd      orbit-trainee    virtual-trainee.0rZVgk
keyring-zUlGgt      seahorse-DNpSDh  virtual-trainee.6gVmti
mkinitramfs_475s0i  seahorse-yuvmVS  virtual-trainee.KnZml3
mkinitramfs_D27tSZ  ssh-HfVASw1833   virtual-trainee.uk9U8R
orbit-Debian-gdm    ssh-NqNSIa1847

Options de la commande

Les options de cette commande sont :

trainee@debian:/tmp$ ls --help
Utilisation : ls [OPTION]... [FILE]...
Affiche les informations à propos des FILE(s) (du répertoire actuel par défaut).
Trie les entrées alphabétiquement si aucune des options -cftuvSUX ou --sort
n'est utilisées.
Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
  -a, --all                  do not ignore entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               with -l, print the author of each file
  -b, --escape               print C-style escapes for nongraphic characters
      --block-size=SIZE      utilise des blocs de SIZE octets. Voir le format de
                             SIZE ci-dessous.
  -B, --ignore-backups       n'inclut pas dans la liste, les entrées se
                             terminant par ~
  -c                         avec -lt, affiche et tri selon ctime (date de
                             dernière modification provenant des informations de
                             statut du fichier)
                             avec -l, affiche ctime et tri selon le nom
                             autrement, tri selon ctime
  -C                         liste les noms en colonnes
      --color[=WHEN]         colore la sortie. Par défaut, WHEN est défini à
                             « always » (toujours) mais peut aussi être
                             « never » (jamais) ou « auto » (automatique).
  -d, --directory            liste les noms de répertoires plutôt que leur
                             contenu et ne déréférence pas les liens symboliques
  -D, --dired                génére une sortie adaptée pour le mode « dired » de
                             Emacs
  -f                         ne trie pas, active -aU, désactive -ls --color
  -F, --classify             ajoute un indicateur (parmi */=>@|) aux entrées
      --file-type            identique mais sans ajout de « * »
      --format=WORD          « across » -x (croisé),
                             « commas » -m (avec virgules),
                             « horizontal » -x (horizontal),
                             « long » -l (long),
                             « single-column » -1 (colonne simple),
                             « verbose » -l (verbeux),
                             « vertical » -C (vertical)
      --full-time            identique à -l --time-style=full-iso
  -g                         identique à -l mais n'affiche pas le propriétaire
      --group-directories-first
                             regroupe les répertoires avant les fichiers.
                             augmente avec l'option a --sort, mais tout usage
                             de --sort=none (-U) inhibe le regroupement
  -G, --no-group             dans une longue liste, n'affiche pas les noms de
                             groupe
  -h, --human-readable       avec -l affiche les tailles dans un format lisible
                             par un humain (p. ex. 1K, 234M ou 2G)
      --si                   similaire, mais utilise une puissance de 1 000 au
                             lieu de 1 024
  -H, --dereference-command-line
                             suit les liens symboliques de la ligne de commande
      --dereference-command-line-symlink-to-dir
                             suit chaque lien symbolique de la ligne de commande
                             qui pointe vers un répertoire
      --hide=PATTERN         ne liste pas les entrées implicites concordant
                             avec le PATTERN de shell (surdéfini par -a ou -A)
      --indicator-style=WORD  ajoute un indicateur de type à chaque entrée, en
                              respectant le style indiqué par WORD :
                              « none » (aucun suffixe, par défaut),
                              « slash » (barre oblique, comme l'option -p),
                              « file-type » (type de fichier, comme --file-type)
                              ou « classify » (classé, commme l'option -F)
  -i, --inode                affiche le numéro d'index de chaque fichier
  -I, --ignore=PATTERN       ne liste pas les entrées implicites concordant avec
                             le PATTERN du shell
  -k                         identique à --block-size=1K
  -l                         utilise le format long d'affichage
  -L, --dereference          affiche les informations des fichiers référencés
                             par les liens symboliques plutôt que sur le lien
                             symbolique lui-même
  -m                         remplit la largeur avec une liste d'entrées
                             séparées par des virgules
  -n, --numeric-uid-gid      identique à -l mais liste les valeurs numériques
                             des ID d'utilisateur et de groupe
  -N, --literal              affiche les noms bruts (sans traiter les caractères
                             de contrôle spécialement par exemple)
  -o                         identique à -l mais ne liste pas les informations
                             de groupe
  -p, --indicator-style=slash
                             ajoute l'indicateur « / » aux répertoires
  -q, --hide-control-chars   affiche « ? » au lieu de caractères non-graphiques
      --show-control-chars   affiche les caractères non graphiques tel quel (par
                             défaut)
  -Q, --quote-name           encapsule chaque nom d'entrée entre guillemets
      --quoting-style=WORD   utilise le style d'encapsultation défini par
                             WORD : « literal », « shell », « shell-always »,
                             « c » ou « escape »
  -r, --reverse              inverse l'ordre de tri
  -R, --recursive            liste récursivement les sous-répertoires 
  -s, --size                 affiche la taille d'allocation de chaque fichier,
                             en blocs
  -S                         trie selon la taille des fichiers
      --sort=WORD            trie selon WORD au lieu du nom :
                             « none » (aucun, -U),
                             « extension » (extension, -X),
                             « size » (taille, -S), « date » (date, -t),
                             « version » (version, -v)
      --time=WORD            avec -l, affiche la date selon WORD au lieu de
                             la date de modification :
                             « atime » -u, « access » -u, « use » -u,
                             « ctime » -c, ou « status » -c ; utilise la date
                             spécifiée comme clé de tri si --sort=time
      --time-style=STYLE     avec -l, affiche les dates selon STYLE :
                             « full-iso », « long-iso », « iso », « locale »,
                             « +FORMAT ». FORMAT est interprété comme « date » ;
                             si FORMAT est FORMAT1<nouvelle ligne>FORMAT2,
                             FORMAT1 s'applique aux fichiers non récents et
                             FORMAT2 aux fichiers récents ;
                             si STYLE est préfixé par « posix- », STYLE prend
                             seulement effet en dehors de la localisation POSIX
  -t                         trie selon la date de modification
  -T, --tabsize=COLS         utilise des tabulations à chaque COLS au lieu de 8
  -u                         avec -lt, affiche et tri selon la date d'accès
                             avec -l, affiche la date d'accès et tri par nom
                             sinon tri selon la date d'accès
  -U                         ne trie pas, liste les entrées dans l'ordre du
                             répertoire
  -v                         tri naturel des numéros (de versions) dans le texte
  -w, --width=COLS           définit la largeur de l'écran au lieu de la valeur
                             actuelle
  -x                         liste les entrées en ligne au lieu de colonne
  -X                         trie alphabétiquement selon les extension des
                             entrées
  -Z, --context              affiche les contextes de sécurité SELinux de
                             chaque fichier
  -1                         liste un fichier par ligne
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

SIZE peut être (ou un entier optionnellement suivi par) l'une des valeurs
suivantes : kB 1000, K 1024, MB 1000*1000, M 1024*1024 et ainsi de suite pour
G, T, P, E, Z et Y.

L'utilisation de la couleur pour distinguer les types de fichier est désactivée
par défaut et avec --color=never (jamais). Avec color=auto, ls émet des codes
couleur seulement quand la sortie standard est connectée à un terminal. La
variable d'environnement LS_COLORS peut modifier les paramètres. Utilisez la
commande dircolors pour le définir.

Statut de sortie :
 0  si OK,
 1  si problème mineur (p. ex. impossible d'accéder à un sous-répertoire),
 2  si problème majeur (p. ex. impossible d'accéder à un argument de ligne de
    commande).

Signalez les anomalies de « ls » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « ls » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'ls invocation' »

La commande lsof

<note tip> lsof = list open files </note>

La commande lsof affiche des informations sur les fichiers ouverts par des processus :

root@debian:~# lsof | more
COMMAND    PID        USER   FD      TYPE     DEVICE  SIZE/OFF       NODE NAME
init         1        root  cwd       DIR        8,1      4096          2 /
init         1        root  rtd       DIR        8,1      4096          2 /
init         1        root  txt       REG        8,1     31676     239714 /sbin/init
init         1        root  mem       REG        8,1      9736     147775 /lib/libdl-2.11.3.so
init         1        root  mem       REG        8,1   1319176     147794 /lib/libc-2.11.3.so
init         1        root  mem       REG        8,1    104276      73047 /lib/libselinux.so.1
init         1        root  mem       REG        8,1    215520      73080 /lib/libsepol.so.1
init         1        root  mem       REG        8,1    118060     147787 /lib/ld-2.11.3.so
init         1        root   10u     FIFO        0,5       0t0       1875 /dev/initctl
kthreadd     2        root  cwd       DIR        8,1      4096          2 /
kthreadd     2        root  rtd       DIR        8,1      4096          2 /
kthreadd     2        root  txt   unknown                                 /proc/2/exe
migration    3        root  cwd       DIR        8,1      4096          2 /
migration    3        root  rtd       DIR        8,1      4096          2 /
migration    3        root  txt   unknown                                 /proc/3/exe
ksoftirqd    4        root  cwd       DIR        8,1      4096          2 /
ksoftirqd    4        root  rtd       DIR        8,1      4096          2 /
ksoftirqd    4        root  txt   unknown                                 /proc/4/exe
watchdog/    5        root  cwd       DIR        8,1      4096          2 /
watchdog/    5        root  rtd       DIR        8,1      4096          2 /
watchdog/    5        root  txt   unknown                                 /proc/5/exe
events/0     6        root  cwd       DIR        8,1      4096          2 /
events/0     6        root  rtd       DIR        8,1      4096          2 /
events/0     6        root  txt   unknown                                 /proc/6/exe
cpuset       7        root  cwd       DIR        8,1      4096          2 /
cpuset       7        root  rtd       DIR        8,1      4096          2 /
cpuset       7        root  txt   unknown                                 /proc/7/exe
khelper      8        root  cwd       DIR        8,1      4096          2 /
khelper      8        root  rtd       DIR        8,1      4096          2 /
khelper      8        root  txt   unknown                                 /proc/8/exe
netns        9        root  cwd       DIR        8,1      4096          2 /
--More--

Options de la commande

Les options de cette commande sont :

root@debian:~# lsof --help
lsof: illegal option character: -
lsof: illegal option character: e
lsof: no process ID specified
lsof 4.81
 latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
 latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
 latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
 usage: [-?abhlnNoOPRtUvVX] [+|-c c] [+|-d s] [+D D] [+|-f[gG]]
 [-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-p s]
[+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]
Defaults in parentheses; comma-separated set (s) items; dash-separated ranges.
  -?|-h list help          -a AND selections (OR)     -b avoid kernel blocks
  -c c  cmd c ^c /c/[bix]  +c w  COMMAND width (9)     
  +d s  dir s files        -d s  select by FD set     +D D  dir D tree *SLOW?*
                           -i select IPv[46] files    -l list UID numbers
  -n no host names         -N select NFS files        -o list file offset
  -O avoid overhead *RISK  -P no port names           -R list paRent PID
  -s list file size        -t terse listing           -T disable TCP/TPI info
  -U select Unix socket    -v list version info       -V verbose search
  +|-w  Warnings (+)       -X skip TCP&UDP* files     -- end option scan
  +f|-f  +filesystem or -file names     +|-f[gG] flaGs 
  -F [f] select fields; -F? for help  
  +|-L [l] list (+) suppress (-) link counts < l (0 = all; default = 0)
                                        +m [m] use|create mount supplement
  +|-M   portMap registration (-)       -o o   o 0t offset digits (8)
  -p s   exclude(^)|select PIDs         -S [t] t second stat timeout (15)
  -T qs TCP/TPI Q,St (s) info
  -g [s] exclude(^)|select and print process group IDs
  -i i   select by IPv[46] address: [46][proto][@host|addr][:svc_list|port_list]
  +|-r [t[m<fmt>]] repeat every t seconds (15);  + until no files, - forever.
       An optional suffix to t is m<fmt>; m must separate t from <fmt> and
      <fmt> is an strftime(3) format for the marker line.
  -s p:s  exclude(^)|select protocol (p = TCP|UDP) states by name(s).
  -u s   exclude(^)|select login|UID set s
  -x [fl] cross over +d|+D File systems or symbolic Links
  names  select named files or files on named file systems
Anyone can list all files; /dev warnings disabled; kernel ID check disabled.

La commande touch

Cette commande sert à modifier l'horodatage de la date de dernière modification du contenu (mtime) et la date du dernier accès (atime), d'un ou de plusieurs fichiers passé(s) en argument(s), selon la date courante. Si le(s) fichier(s) n'existe(nt) pas, il(s) est (sont) créé(s) :

trainee@debian:/tmp$ touch test
trainee@debian:/tmp$ ls
keyring-QPYpqd      orbit-trainee    test
keyring-zUlGgt      seahorse-DNpSDh  virtual-trainee.0rZVgk
mkinitramfs_475s0i  seahorse-yuvmVS  virtual-trainee.6gVmti
mkinitramfs_D27tSZ  ssh-HfVASw1833   virtual-trainee.KnZml3
orbit-Debian-gdm    ssh-NqNSIa1847   virtual-trainee.uk9U8R

Options de la commande

Les options de cette commande sont :

trainee@debian:/tmp$ touch --help
Utilisation : touch [OPTION]... FILE...
Met à jour la date d'accès et de modification de chaque FILE à l'heure actuelle.

Un argument FILE qui n'existe pas est créé vide, sauf si -c ou -h est spécifié.

Une chaîne d'argument FILE à - est géré spécifiquement et fait que touch
change la date du fichier associé à la sortie standard.

Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
  -a                     modifie seulement la date d'accès
  -c, --no-create        ne crée aucun fichier
  -d, --date=STRING      analyse STRING et l'utilise au lieu de la date actuelle
  -f                     (ignorée)
  -h, --no-dereference   affecte les liens symboliques au lieu des fichiers
                         référencés (utile seulement sur les systèmes permettant
                         de changer le propriétaire d'un lien symbolique)
  -m                     modifie uniquement la date de modification
  -r, --reference=FILE  utilise la date de ce fichier au lieu de la date
                        actuelle
  -t STAMP              utilise [[CC]AA]MMJJhhmm[.ss] au lieu de la date
                        actuelle
  --time=WORD           modifie le temps indiqué :
                        WORD est « access », « atime » ou « use » ; équivalent
                        à -a
                        WORD est « modify », « mtime » ; équivalent à -m
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Notez que les options -d et -t acceptent différents formats de date et d'heure.

Signalez les anomalies de « touch » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « touch » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'touch invocation' »

La commande echo

Cette commande écrit les arguments vers la sortie standard (autrement dit à l'écran) :

trainee@debian:/tmp$ echo fenestros
fenestros

Options de la commande

Les options de cette commande sont :

trainee@debian:/tmp$ help echo
echo: echo [-neE] [arg ...]
    Write arguments to the standard output.
    
    Display the ARGs on the standard output followed by a newline.
    
    Options:
      -n	do not append a newline
      -e	enable interpretation of the following backslash escapes
      -E	explicitly suppress interpretation of backslash escapes
    
    `echo' interprets the following backslash-escaped characters:
      \a	alert (bell)
      \b	backspace
      \c	suppress further output
      \e	escape character
      \f	form feed
      \n	new line
      \r	carriage return
      \t	horizontal tab
      \v	vertical tab
      \\	backslash
      \0nnn	the character whose ASCII code is NNN (octal).  NNN can be
    	0 to 3 octal digits
      \xHH	the eight-bit character whose value is HH (hexadecimal).  HH
    	can be one or two hex digits
    
    Exit Status:
    Returns success unless a write error occurs.

La commande cp

La commande cp permet de copier une source vers une destination ou de multiples sources vers un répertoire :

trainee@debian:/tmp$ cp test ~
trainee@debian:/tmp$ ls -l ~
total 36
drwxr-xr-x. 2 trainee trainee 4096 28 juil. 09:32 Bureau
drwxr-xr-x. 2 trainee trainee 4096 24 avril  2011 Documents
drwxr-xr-x. 2 trainee trainee 4096 24 avril  2011 Images
drwxr-xr-x. 2 trainee trainee 4096 24 avril  2011 Modèles
drwxr-xr-x. 2 trainee trainee 4096 24 avril  2011 Musique
drwxr-xr-x. 2 trainee trainee 4096 24 avril  2011 Public
drwxr-xr-x+ 2 root    root    4096 17 oct.  16:52 rep1
drwxr-xr-x. 2 trainee trainee 4096 28 juil. 09:25 Téléchargements
-rw-r--r--. 1 trainee trainee    0  7 nov.  08:51 test
drwxr-xr-x. 2 trainee trainee 4096 24 avril  2011 Vidéos

<note important> Notez l'utilisation du caractère ~ (tilde) qui est un caractère spécial indiquant le répertoire personnel de l'utilisateur courant, dans ce cas /home/trainee. </note>

Options de la commande

Les options de cette commande sont :

trainee@debian:/tmp$ cp --help
Utilisation : cp [OPTION]... [-T] SOURCE DEST
         ou : cp [OPTION]... SOURCE... DIRECTORY
         ou : cp [OPTION]... --target-directory=DIRECTORY SOURCE...
Copie la SOURCE vers DEST, ou de multiples SOURCES vers DIRECTORY.

Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
  -a, --archive                identique à -dpR --preserve=all
      --backup[=CONTROL]       archive chaque fichier de destination
  -b                           comme --backup mais n'accepte pas d'argument
      --copy-contents          copie le contenu des fichiers spéciaux en mode 
                               récursif
  -d                           identique à --no-dereference --preserve=links
  -f, --force                  si un fichier de destination existe et ne peut
                               être ouvert alors le supprime et essaie à
                               nouveau (redondant si l'option -n est utilisée)
  -i, --interactive            demande confirmation avant d'écraser (surcharge
                               une précédente option -n)
  -H                           suit les liens symboliques de ligne de commande
                               dans SOURCE
  -l, --link                   lie les fichiers au lieu de les copier
  -L, --dereference            toujours suivre les liens symboliques dans SOURCE
  -n, --no-clobber             n'écrase pas un ficier existant (surchage une
                               précédente option -i)
  -P, --no-deference           ne jamais suivre les liens symboliques dans 
                               SOURCE
  -p                           identique à --preserve=mode,ownership,timestamps
      --preserve[=ATTR_LIST]   préserve les attributs spécifiés (par défaut
                               « mode,ownership,timestamps ») et si posssible
                               les attributs additionels « context, links, 
                               xattr, all »
      --no-preserve=ATTR_LIST  ne préserve pas les attributs spécifiques
      --parents                utilise le nom de fichier source complet sous
                               DIRECTORY
  -R, -r, --recursive          copy directories recursively
      --reflink[=WHEN]         control clone/CoW copies. See below
      --remove-destination     remove each existing destination file before
                                 attempting to open it (contrast with --force)
      --sparse=WHEN            control creation of sparse files. See below
      --strip-trailing-slashes  remove any trailing slashes from each SOURCE
                                 argument
  -s, --symbolic-link        crée des liens symboliques au lieu d'une copie
  -S, --suffix=SUFFIX        écrase le suffixe usuel d'archivage
      --target-directory=DIRECTORY  copie tous les arguments SOURCE dans 
                                    RÉPERTOIRE
  -T, --no-target-directory  traite DEST comme un fichier normal
  -u, --update                 copie seulement quand le fichier SOURCE est plus
                               récent que le fichier de destination ou quand le
                               fichier de destination est manquant
  -v, --verbose                explique ce qui est fait
  -x, --one-file-system        reste sur ce système de fichiers
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Par défaut, les fichiers SOURCE dispersés sont détectés par le biais
d'une heuristique grossière et le fichier DEST correspondant est aussi
construit de façon dispersée. Il s'agit du comportement sélectionné par 
l'option --sparse=auto. Spécifiez --sparse=always pour créer un fichier
DEST dispersé lorsque le fichier SOURCE contient une assez longue séquence
d'octets de valeur zéro.
Utilisez --sparse=never pour inhiber la création de fichiers dispersés.

Le suffixe d'archive est « ~ », sauf s'il est définit autrement avec --suffix ou
SIMPLE_BACKUP_SUFFIX. La méthode du contrôle de version peut être sélectionnée
par l'option --backup ou par la variable d'environnement VERSION_CONTROL.
Les valeurs sont les suivantes :

  none, off       n'archive jamais (même si --backup est utilisé)
  numbered, t     effectue des archives numérotées
  existing, nil   numérote si des archives numérotées existent déjà, se
                  comporte comme « simple » dans le cas contraire 
  simple, never   effectue toujours des archives simples

Un cas spécial où « cp » archive SOURCE lorsque les options « force » et
« backup » sont utilisées et que SOURCE et DEST portent le même nom qu'un
fichier standard existant.

Signalez les anomalies de « cp » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « cp » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'cp invocation' »

La commande file

Cette commande permet de connaître le type d'un fichier:

trainee@debian:/tmp$ file ~/test
/home/trainee/test: empty

<note important> Notez que la commande vous indique le type de fichier en fonction de son contenu. Dans l'exemple précédent, puisque le fichier est vide, la commande file ne peut pas indiqué le type de fichier. </note>

Redirigez, en utilisant le caractère >, la sortie de la commande echo vers le fichier /home/trainee/test de façon à ce que ce dernier contient le texte fenestros :

trainee@debian:/tmp$ echo "fenestros" > ~/test

En utilisant de nouveau la commande file, celle-ci est capable de vous indiquer le type de fichier :

trainee@debian:/tmp$ file ~/test
/home/trainee/test: ASCII text

Options de la commande

Les options de cette commande sont :

trainee@debian:/tmp$ file --help
Usage: file [OPTION...] [FILE...]
Determine type of FILEs.

      --help                 display this help and exit
  -v, --version              output version information and exit
  -m, --magic-file LIST      use LIST as a colon-separated list of magic
                               number files
  -z, --uncompress           try to look inside compressed files
  -b, --brief                do not prepend filenames to output lines
  -c, --checking-printout    print the parsed form of the magic file, use in
                               conjunction with -m to debug a new magic file
                               before installing it
  -e, --exclude TEST         exclude TEST from the list of test to be
                               performed for file. Valid tests are:
                               ascii, apptype, compress, elf, soft, tar, tokens, troff
  -f, --files-from FILE      read the filenames to be examined from FILE
  -F, --separator STRING     use string as separator instead of `:'
  -i, --mime                 output MIME type strings (--mime-type and
                               --mime-encoding)
      --apple                output the Apple CREATOR/TYPE
      --mime-type            output the MIME type
      --mime-encoding        output the MIME encoding
  -k, --keep-going           don't stop at the first match
  -L, --dereference          follow symlinks (default)
  -h, --no-dereference       don't follow symlinks
  -n, --no-buffer            do not buffer output
  -N, --no-pad               do not pad output
  -0, --print0               terminate filenames with ASCII NUL
  -p, --preserve-date        preserve access times on files
  -r, --raw                  don't translate unprintable chars to \ooo
  -s, --special-files        treat special (block/char devices) files as
                             ordinary ones
  -C, --compile              compile file specified by -m
  -d, --debug                print debugging messages

La commande cat

La commande cat permet de concaténer les fichiers passés en argument, ou de l'entrée standard ( le clavier ), vers la sortie standard ( l'écran ). Dans le cas où il n'y a qu'un seul fichier passé en argument, le contenu de celui-ci est affiché à l'écran :

trainee@debian:/tmp$ cat ~/test
fenestros

Options de la commande

Les options de cette commande sont :

trainee@debian:/tmp$ cat --help
Utilisation : cat [OPTION]... [FILE]...
Concatène FILE(s), ou l'entrée standard, sur la sortie standard.

  -A, --show-all           équivalent à -vET
  -b, --number-nonblank    numérote les lignes non vides en sortie
  -e                       équivalent à -vE
  -E, --show-ends          affiche $ à la fin de chaque ligne
  -n, --number             numérote toutes les lignes en sortie

  -s, --squeeze-blank      supprime les lignes vides qui se répètent en sortie
  -t                       équivalent à -vT
  -T, --show-tabs          affiche les caractères TAB comme ^I
  -u                       (ignoré)
  -v, --show-nonprinting   utilise la notation ^ et M-, sauf pour LFD et TAB
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

En l'absence de FILE ou quand FILE est -, lit l'entrée standard.

Exemples :
  cat f - g  affiche le contenu de f, puis l'entrée standard et ensuite le
            contenu de g.
  cat        copie l'entrée standard vers la sortie standard.

Signalez les anomalies de « cat » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « cat » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'cat invocation' »

La commande mv

La commande mv permet déplacer ou de renommer un fichier ou répertoire.

Utilisez la commande mv pour déplacer le fichier test de votre répertoire personnel vers le répertoire courant :

trainee@debian:/tmp$ mv ~/test .

<note important> Notez l'utilisation du raccourci . pour indiquer le répertoire courant. </note>

Constatez la disparition du fichier test de votre répertoire personnel :

trainee@debian:/tmp$ ls -l ~
total 36
drwxr-xr-x. 2 trainee trainee 4096 28 juil. 09:32 Bureau
drwxr-xr-x. 2 trainee trainee 4096 24 avril  2011 Documents
drwxr-xr-x. 2 trainee trainee 4096 24 avril  2011 Images
drwxr-xr-x. 2 trainee trainee 4096 24 avril  2011 Modèles
drwxr-xr-x. 2 trainee trainee 4096 24 avril  2011 Musique
drwxr-xr-x. 2 trainee trainee 4096 24 avril  2011 Public
drwxr-xr-x+ 2 root    root    4096 17 oct.  16:52 rep1
drwxr-xr-x. 2 trainee trainee 4096 28 juil. 09:25 Téléchargements
drwxr-xr-x. 2 trainee trainee 4096 24 avril  2011 Vidéos

Utilisez maintenant la commande mv pour renommer le fichier test en TeSt :

trainee@debian:/tmp$ mv test TeSt

Constatez le bon fonctionnement de votre commande :

trainee@debian:/tmp$ ls -l 
total 60
drwx------. 2 trainee    trainee    4096 21 oct.  08:47 keyring-QPYpqd
drwx------. 2 trainee    trainee    4096 21 oct.  08:46 keyring-zUlGgt
drwxr-xr-x. 8 root       root       4096 18 oct.  16:59 mkinitramfs_475s0i
drwxr-xr-x. 8 root       root       4096 18 oct.  19:49 mkinitramfs_D27tSZ
drwx------. 2 Debian-gdm Debian-gdm 4096 21 oct.  08:47 orbit-Debian-gdm
drwx------. 2 trainee    trainee    4096  7 nov.  09:07 orbit-trainee
drwx------. 2 trainee    trainee    4096 21 oct.  08:47 seahorse-DNpSDh
drwx------. 2 trainee    trainee    4096 21 oct.  08:46 seahorse-yuvmVS
drwx------. 2 trainee    trainee    4096 21 oct.  08:46 ssh-HfVASw1833
drwx------. 2 trainee    trainee    4096 21 oct.  08:47 ssh-NqNSIa1847
-rw-r--r--. 1 trainee    trainee      10  7 nov.  08:53 TeSt
drwx------. 2 trainee    trainee    4096 19 oct.  07:19 virtual-trainee.0rZVgk
drwx------. 2 trainee    trainee    4096 16 oct.  16:23 virtual-trainee.6gVmti
drwx------. 2 trainee    trainee    4096 21 oct.  08:47 virtual-trainee.KnZml3
drwx------. 2 trainee    trainee    4096 19 oct.  07:22 virtual-trainee.uk9U8R

Options de la commande

Les options de cette commande sont :

trainee@debian:/tmp$ mv --help
Utilisation : mv [OPTION]... [-T] SOURCE DEST
         ou : mv [OPTION]... SOURCE... DIRECTORY
         ou : mv [OPTION]... --target-directory=DIRECTORY SOURCE...
Renomme SOURCE en DEST, ou déplace SOURCE(s) vers DIRECTORY.

Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
      --backup[=CONTROL]       archive chaque fichier de destination existant
  -b                           identique à --backup mais n'accepte pas d'argument
  -f, --force                  ne demande pas de confirmation avant d'écraser
  -i, --interactive            demande confirmation avant d'écraser
  -n, --no-clobber             n'écrase pas les fichiers existants
Si vous indiquez plusieurs options parmi -i, -f, -n, seulement la dernière sera
effective.
      --strip-trailing-slashes  enlève les « / » en suffixe de chacun
                                 des arguments SOURCE
  -S, --suffix=SUFFIX          écrase le suffixe usuel d'archivage
  -t, --target-directory=DIRECTORY  déplace tous les arguments SOURCE vers
                               DIRECTORY
  -T, --no-target-directory    traite DEST comme un fichier normal
  -u, --update                 déplace uniquement si le fichier SOURCE est plus
                               récent que le fichier cible ou si aucun fichier
                               cible n'existe
  -v, --verbose                explique ce qui a été réalisé
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Le suffixe d'archive est « ~ », sauf s'il est définit autrement avec --suffix ou
SIMPLE_BACKUP_SUFFIX. La méthode du contrôle de version peut être sélectionnée
par l'option --backup ou par la variable d'environnement VERSION_CONTROL.
Les valeurs sont les suivantes :

  none, off       n'archive jamais (même si --backup est utilisé)
  numbered, t     effectue des archives numérotées
  existing, nil   numérote si des archives numérotées existent déjà, se
                  comporte comme « simple » dans le cas contraire 
  simple, never   effectue toujours des archives simples

Signalez les anomalies de « mv » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « mv » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'mv invocation' »

La commande mkdir

La commande mkdir permet de créer un répertoire.

Placez-vous dans votre répertoire personnel :

trainee@debian:/tmp$ cd ~

Créez le répertoire testdir :

trainee@debian:~$ mkdir testdir

Constatez le bon fonctionnement de votre commande :

trainee@debian:~$ ls
Bureau  Documents  Images  Modèles  Musique  Public  Téléchargements  testdir  Vidéos

Options de la commande

Les options de cette commande sont :

trainee@debian:~$ mkdir --help
Utilisation : mkdir [OPTION]... DIRECTORY...
Crée le(s) répertoire(s) DIRECTORY s'il(s) n'existe(nt) pas.

Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
  -m, --mode=MODE   définit l'accès fichier à MODE (comme avec chmod),
                    et non a=rwx - umask
  -p, --parents     pas d'erreur si existant, crée les répertoires parents si
                    nécessaire
  -v, --verbose     affiche un message pour chaque répertoire créé
  -Z, --context=CTX  définit à CTX le contexte de sécurité SELinux de chaque
                     répertoire créé
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Signalez les anomalies de « mkdir » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « mkdir » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'mkdir invocation' »

La commande rmdir

La commande rmdir permet de supprimer un répertoire vide.

Utilisez la commande rmdir pour supprimer le répertoire testdir :

trainee@debian:~$ rmdir testdir

Constatez le bon fonctionnement de votre commande :

trainee@debian:~$ ls
Bureau  Documents  Images  Modèles  Musique  Public  Téléchargements  Vidéos

Options de la commande

Les options de cette commande sont :

trainee@debian:~$ rmdir --help
Utilisation : rmdir [OPTION]... DIRECTORY...
Supprime les répertoires DIRECTORY, s'ils sont vides.

      --ignore-fail-on-non-empty
                  ignore les échecs qui sont uniquement dûs à répertoire non
                  vide
  -p, --parents   supprime DIRECTORY et ses parents, p. ex. « rmdir -p a/b/c »
                  est identique à « rmdir a/b/c a/b a »
  -v, --verbose   affiche un diagnostic pour chaque répertoire traité
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Signalez les anomalies de « rmdir » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « rmdir » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'rmdir invocation' »

La commande rm

La commande rm permet de supprimer un répertoire vide ou non ou un fichier.

Créez d'abord le répertoire testdir1 dans votre répertoire personnel /home/trainee :

trainee@debian:~$ mkdir testdir1

Changez de répertoire courant vers /tmp :

trainee@debian:~$ cd /tmp

Créez le fichier vide TeSt :

trainee@debian:/tmp$ touch TeSt

Injectez la chaîne fenestros dans le fichier TeSt :

trainee@debian:/tmp$ echo "fenestros" > TeSt

Changez de répertoire courant vers /home/trainee :

trainee@debian:/tmp$ cd ~

Déplacez le fichier /tmp/TeSt vers /home/trainee/testdir1 :

trainee@debian:~$ mv /tmp/TeSt ~/testdir1

Constatez que le fichier TeSt est bien présent dans le répertoire ~/testdir1 :

trainee@debian:~$ ls -lR testdir1/
testdir1/:
total 4
-rw-r--r--. 1 trainee trainee 10  7 nov.  09:13 TeSt

Supprimez maintenant le répertorie ~/testdir1 aisni que son contenu :

trainee@debian:~$ rm -rf testdir1/

Vérifiez la suppression du répertoire ~/testdir1 :

trainee@debian:~$ ls
Bureau     Images   Musique  rep1             Vidéos
Documents  Modèles  Public   Téléchargements

Options de la commande

Les options de cette commande sont :

trainee@debian:~$ rm --help
Utilisation : rm [OPTION]... FILE...
Supprime (retire le lien) les fichiers FILE(s).

  -f, --force           ignore les fichiers inexistants, ne demande jamais
  -i                    demande confirmation avant chaque suppression
  -I                    demande confirmation une fois avant de supprimer plus de
                        3 fichiers, ou lors de suppresion recursive. Moins
                        intrusif que -i, tout en protégeant contre la majorité
                        des erreurs
      --interactive[=WHEN]  demande confirmation selon WHEN : « never »
                            (jamais), « once » (une fois, -I), ou « always »
                            (toujours, -i). Sans WHEN, pose la question à chaque
                            fois.
      --one-file-system  quand une hiérarchie est supprimée récursivement, ignore
                         tout répertoire qui est sur un système de fichiers différent
                         de celui de l'argument en question de la ligne de commande
      --no-preserve-root ne traite pas « / » de manière spécifique
      --preserve-root   n'escamote pas « / » (par défaut)
  -r, -R, --recursive   supprime les répertoires et leur contenu récursivement
  -v, --verbose         explique ce qui va être fait
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Par défaut, rm ne supprime pas les répertoires. Utilisez l'option --recursive
(-r ou -R) pour supprimer les répertoires, ainsi que l'intégralité de leur
contenu.

Pour supprimer un fichier dont le nom débute par « - », par exemple « -foo »,
utilisez une des commandes suivantes :
  rm -- -foo

  rm ./-foo

Note that if you use rm to remove a file, it might be possible to recover
some of its contents, given sufficient expertise and/or time.  For greater
assurance that the contents are truly unrecoverable, consider using shred.

Signalez les anomalies de « rm » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « rm » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'rm invocation' »

La commande sort

Cette commande trie dans le canal d’entrée et retourne à l’écran une liste triée.

Commencez par créer les 4 fichiers aac, abc, bca et xyz :

trainee@debian:~$ touch aac abc bca xyz

Constatez le bon fonctionnement de votre commande :

trainee@debian:~$ ls
aac  abc  bca  Bureau  Documents  Images  Modèles  Musique  Public  Téléchargements  Vidéos  xyz

Triez maintenant la liste du contenu du répertoire courant :

trainee@debian:~$ ls | sort
aac
abc
bca
Bureau
Documents
Images
Modèles
Musique
Public
Téléchargements
Vidéos
xyz

<note important> Notez l'utilisation du caractère spécial |, appelé un tube ou encore un pipe. Un tube est utilisé pour présenter sur l'entrée standard de la commande qui suit, la sortie standard de la commande qui précède. </note>

Triez maintenant la liste du contenu du répertoire courant dans le sens inverse :

trainee@debian:~$ ls | sort -r
xyz
Vidéos
Téléchargements
Public
Musique
Modèles
Images
Documents
Bureau
bca
abc
aac

Options de la commande

Les options de cette commande sont :

trainee@debian:~$ sort --help
Utilisation : sort [OPTION]... [FILE]...
         ou : sort [OPTION]... --files0-from=F
Affiche la concaténation triée de tous les FILE(s) sur la sortie standard.

Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
Options de tri :

  -b, --ignore-leading-blanks ignore les blancs en en-tête
  -d, --dictionary-order      considére seulement les blancs et les caractères
                              alphanumériques
  -f, --ignore-case           transforme les caractères minuscules en majuscules
  -g, --general-numeric-sort  compare selon la valeur numérique générale
  -i, --ignore-nonprinting    considère seulement les caractères affichables
  -M, --month-sort            compare (inconnu) < « JANV. » < ... < « DÉC. »
  -h, --human-numeric-sort    compare des chiffres humanisés (p. ex. 2K 1G)
  -n, --numeric-sort          compare selon une valeur numérique de type chaîne
  -R, --random-sort           tri par clé de hachage aléatoire
      --random-source=FILE    obtient des octets aléatoires depuis FILE
  -r, --reverse               inverse le résultat des comparaisons
      --sort=WORD             tri selon WORD :
                                general-numeric -g, human-numeric -h, month -M,
                                numeric -n, random -R, version -V
  -V, --version-sort          tri naturel des chiffres (de version) contenu dans
                              le texte

Autres Options :

      --batch-size=NMERGE   fusionne au plus NMERGE entréeS à la fois;
                            pour plus, employez des fichiers temporaires
  -c, --check, --check=diagnose-first  vérifie le tri de l'entrée ; ne trie pas
  -C, --check=quiet, --check=silent  comme -c, mais n'affiche pas la première
                                     ligne erronée
      --compress-program=PROG     compresse les temporaires avec PROG et les
                                  décompresse avec PROG -d
      --files0-from=F          lit en entrée des fichiers spécifiés par des noms
                               terminés par NULL dans le fichier F.
                               Si F est -, lit les noms depuis l'entrée standard

  -k, --key=POS1[,POS2]     démarre la clé à POS1 (origine 1), finit à POS2
                            (par défault en fin de ligne)
  -m, --merge               fusionne les fichiers déjà triés ; ne trie pas
  -o, --output=FILE         écrit le résultat dans FILE au lieu de la sortie
                            standard
  -s, --stable              stabilise le tri en désactivant la comparaison de
                            dernier recours
  -S, --buffer-size=SIZE    utilise SIZE pour le tampon mémoire principal
  -t, --field-separator=SEP      utilise SEP au lieu de non-blanc pour les
                                 transitions d'espace
  -T, --temporary-directory=DIR  utilise DIR pour les fichiers temporaires, non
                                 pas $TMPDIR ou /tmp ;
                                 des options multiples spécifient de multiples répertoires
  -u, --unique                   avec -c, vérifie l'ordonnancement strict
                                 sans -c, affiche les premiers d'une passe équivalente
  -z, --zero-terminated     termine les lignes avec l'octet 0, 
                            et non pas par un retour de chariot
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

POS est F[.C][OPTS], où F est le numéro de champ et C la position du caractère
dans le champ ;  chacun à origine 1. Si ni -t ni -b est actif, les caractères d'un
champs sont comptés depuis le début de l'espace précédant. OPTS se compose d'une
option de tri d'une ou plusieurs lettres simples, laquelle écrase
l'ordonnancement global pour cette clé. Si aucune clé n'est donnée,
la ligne entière est utilisée comme clé.

SIZE peut être suivi d'un des suffixes multiplicatifs suivants :
% 1% de mémoire, b 1, k 1024 (par défaut), et ainsi de suite pour M, G, T, P,
E, Z, Y.

Sans FILE, ou quand FILE est -, lit l'entrée standard.

*** AVERTISSEMENT ***
La localisation utilisée dans l'environnement affecte l'ordre du tri.
Utilisez LC_ALL=C pour obtenir un tri selon un ordre traditionnel qui utilise
la valeur native des octets.

Signalez les anomalies de « sort » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « sort » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'sort invocation' »

La commande more

Cette commande affiche le contenu d’un fichier texte et l’envoi page par page au canal de sortie à l'aide de la touche Espace :

trainee@debian:~$ more /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:trainee
floppy:x:25:trainee
tape:x:26:
sudo:x:27:trainee
audio:x:29:trainee
dip:x:30:trainee
--More--(35%)

<note important> L'utilisation de la touche ↵ Entrée permet de défiler le fichier ligne par ligne. L'utilisation de la touche Barre d'espace permet de défiler le fichier écran par écran. L'utilisation de la touche Q permets de revenir au prompt. </note>

<note> La commande less produit un résultat similaire à la commande more. Utilisez la commande less en vous référant à l'aide de la commande avec less - -help. Laquelle des deux commandes vous semble la plus puissante ? </note>

Options de la commande

Les options de cette commande sont :

trainee@debian:~$ more --help
more: unknown option "-h"
usage: more [-dflpcsu] [+linenum | +/pattern] name1 name2 ...

La commande find

Cette commande sert à rechercher un ou des fichiers dans le répertoire courant ou le répertoire spécifié en argument.

Recherchez le fichier acc dans le répertoire courant :

trainee@debian:~$ find acc
find: "acc": Aucun fichier ou dossier de ce type

<note important> Notez que ce fichier n'existe pas et que le système vous en informe clairement. </note>

Recherchez maintenant le fichier aac dans le répertoire courant :

trainee@debian:~$ find aac
aac

<note important> Notez que ce fichier existe et que le système vous en informe en vous indiquant son nom. </note>

Options de la commande

Les options de cette commande sont :

trainee@debian:~$ find --help
Utilisation : find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [chemin...] [expression]

Le répertoire utilisé par défaut est le répertoire courant ; l'
option par défaut est -print. Une expression peut être
constituée: d'opérateurs, d'options, de tests et d'actions :

les opérateurs (par précédence décroissante; -and est implicite
lorsqu'aucun autre paramètre n'est fourni):
      ( EXPR )   ! EXPR   -not EXPR   EXPR1 -a EXPR2   EXPR1 -and EXPR2
      EXPR1 -o EXPR2   EXPR1 -or EXPR2   EXPR1 , EXPR2

les options positionnelles (toujours vraies i.e. « true ») :
      -daystart -follow -regextype
les options normales (toujours vraies i.e. « true » et devant être spécifiées
avant les autres expressions):
      -depth --help -maxdepth NIVEAUX -mindepth NIVEAUX -mount -noleaf
      --version -xdev -ignore_readdir_race -noignore_readdir_race

les options de tests (N peut être +N ou -N ou N) :
      -amin N -anewer FICHIER -atime N -cmin N
      -cnewer FICHIER -ctime N -empty -false -fstype TYPE -gid N -group NOM
      -ilname MOTIF -iname MOTIF -inum N -iwholename MOTIF -iregex MOTIF
      -links N -lname MOTIF -mmin N -mtime N -name MOTIF -newer FICHIER
      -nouser -nogroup -path MOTIF -perm [+-]MODE -regex MOTIF
      -readable -writable -executable
      -wholename MOTIF -size N[bcwkMG] -true -type [bcdpflsD] -uid N
      -used N -user NOM -xtype [bcdpfls]

actions : -delete -print0 -printf FORMAT -fprintf FICHIER FORMAT -print 
      -fprint0 FICHIER -fprint FICHIER -ls -fls FICHIER -prune -quit
      -exec COMMANDE ; -exec COMMANDE {} + -ok COMMANDE ;
      -execdir COMMANDE ; -execdir COMMANDE {} + -okdir COMMANDE ;

Rapporter (et faire le suivi du progrès de correctifs) toutes anomalies
en suivant les instructions se situant sur la page http://savannah.gnu.org
ou si vous n'avez pas d'accès web en adressant un courriel à
<bug-findutils@gnu.org>.

La commande su

La commande su (Switch User) permet d'assumer l'identité d'un autre utilisateur du système à condition de connaître son mot de passe. Exécutée sans argument, le système suppose que vous souhaitez devenir root :

trainee@debian:~$ su -
Mot de passe : 
root@debian:~# 

<note important> Notez que le mot de passe saisi ne sera pas visible. </note>

Options de la commande

Les options de cette commande sont :

root@debian:~# su --help
Syntaxe : su [options] [IDENTIFIANT]

Options :
  -c, --command COMMANDE        passer la commande COMMANDE à
                                l'interpréteur de commande appelé ;
  -h, --help                    afficher ce message d'aide et quitter ;
  -, -l, --login                utiliser un interpréteur de commandes
                                initial (« login shell ») ;
  -m, -p,
  --preserve-environment        ne pas réinitialiser les variables
                                d'environnement et conserver le même
                                interpréteur de commandes ;
  -s, --shell SHELL             utiliser SHELL comme interpréteur de
                                commandes à la place de celui défini
                                par défaut dans le fichier passwd.

Les commandes locate et updatedb

La commande locate sert à rechercher un ou des fichiers dans l'ensemble du système de fichiers en commençant à la racine (/) en spécifiant une chaîne à rechercher en argumant à la commande. La commande locate utilise une base de données afin d'effectuer sa recherche. Pour construire ou mettre à jour cette base de données avant l'utilisation de la commande pour une recherche, il faut utiliser la commande updatedb en tant que root.

Sous Debian, la base de données par défaut est /var/lib/mlocate/mlocate.db :

root@debian:~# ls -l /var/lib/mlocate/mlocate.db
-rw-r-----. 1 root mlocate 5557313 21 oct.  09:09 /var/lib/mlocate/mlocate.db

<note important> Pour plus d'information concernant le format de la base de données, consultez cette page. </note>

La commande updatedb peut être configurée en éditant son fichier de configuration /etc/updatedb.conf :

PRUNE_BIND_MOUNTS="yes"
# PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media"
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf fuse.glusterfs fuse.sshfs"

L'utilisation des deux commandes est illustrée ci-après :

root@debian:~# updatedb
root@debian:~# locate passwd
/etc/passwd
/etc/passwd-
/etc/cron.daily/passwd
/etc/exim4/passwd.client
/etc/pam.d/chpasswd
/etc/pam.d/passwd
/etc/security/opasswd
/selinux/class/passwd
/selinux/class/passwd/index
/selinux/class/passwd/perms
/selinux/class/passwd/perms/chfn
/selinux/class/passwd/perms/chsh
/selinux/class/passwd/perms/crontab
/selinux/class/passwd/perms/passwd
/selinux/class/passwd/perms/rootok
/usr/bin/gpasswd
...

Options des commandes

Les options de la commande updatedb sont :

root@debian:~# updatedb --help
Utilisation : updatedb [OPTION]...
Met à jour une base de données mlocate.

  -f, --add-prunefs FS           omettre aussi FS
  -e, --add-prunepaths PATHS     omettre aussi PATHS
  -U, --database-root PATH       la sous-arborescence pour stocker dans la
                                 base de données (par défaut « / »)
  -h, --help                     affiche cette aide
  -o, --output FILE              base de données à mettre à jour (par défaut
                                 « /var/lib/mlocate/mlocate.db »)
      --prune-bind-mounts FLAG   omettre les montages liés (par défaut
                                 « no »)
      --prunefs FS               systèmes de fichiers à omettre de la base
                                 de données
      --prunepaths PATHS         chemins à omettre de la base de données
  -l, --require-visibility FLAG  vérifie la visibilité avant de reporter
                                 les fichiers (par défaut « yes » (oui))
  -v, --verbose                  affiche les chemins des fichiers comme
                                 ils sont trouvés
  -V, --version                  affiche les informations de version

La configuration est définie par défaut aux valeurs lues à partir de
« /etc/updatedb.conf ».

Signalez les anomalies à mitr@redhat.com.

Les options de la commande locate sont :

root@debian:~# locate --help
Utilisation : locate [OPTION]... [MOTIF]...
Rechercher des entrées dans une base de données mlocate.

  -b, --basename         recherche uniquement les noms de base des noms
                         de chemin
  -c, --count            affiche uniquement le nombre d'entrées trouvées
  -d, --database DBPATH  utilise DBPATH au lieu de la base de données
                         par défaut (qui est /var/lib/mlocate/mlocate.db)
  -e, --existing         affiche uniquement les entrées pour les fichiers
                         existants actuellement
  -L, --follow           suivre les liens symboliques finaux lors de la
                         vérification de l'existence des fichiers
                         (par défaut)
  -h, --help             affiche ce message
  -i, --ignore-case      ignore la casse lors de la recherche des motifs
  -l, --limit, -n LIMIT  limite la sortie (ou le décompte) aux entrées LIMIT
  -m, --mmap             ignoré, pour la rétro-compatibilité
  -P, --nofollow, -H     ne pas suivre les liens symboliques finaux lors de
                         la vérification de l'existence des fichiers
  -0, --null             sépare les entrées avec NUL sur la sortie
  -S, --statistics       ne recherche pas les entrées, affiche
                         des statistiques pour chaque base de données utilisée
  -q, --quiet            ne rapporte pas les messages d'erreur concernant
                         la lecture des bases des données
  -r, --regexp REGEXP    recherche les expressions régulières de base REGEXP
      --regex            au lieu des motifs. Les motifs sont des expressions
                         régulières étendues
  -s, --stdio            ignoré, pour rétro-compatibilité
  -V, --version          affiche les informations de version
  -w, --wholename        recherche les noms de chemin complets (par défaut)

Signalez les anomalies à mitr@redhat.com.

La commande whereis

La commande whereis permet une recherche de l'emplacement des exécutables, des fichiers de configuration et des manuels pour la commande passée en argument :

root@debian:~#  whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man5/passwd.5.gz /usr/share/man/man1/passwd.1ssl.gz /usr/share/man/man1/passwd.1.gz

Options de la commande

Les options de cette commande sont :

root@debian:~# whereis --help
whereis [ -sbmu ] [ -SBM dir ... -f ] name...

La commande which

La commande which permet une recherche de l'emplacement d'un exécutable dans le PATH de l'utilisateur courant et retourne le premier qui est trouvé :

root@debian:~# which passwd
/usr/bin/passwd

Options de la commande

Les options de cette commande sont :

root@debian:~# which --help
Illegal option --
Usage: /usr/bin/which [-a] args

La commande uptime

Cette commande nous indique l'heure actuelle, la durée depuis laquelle le système fonctionne, le nombre d'utilisateurs actuellement connectés et la charge système moyenne pour les dernières 1 minute, 5 minutes et 15 minutes :

root@debian:~# uptime
 09:48:44 up  2:34,  2 users,  load average: 0.14, 0.03, 0.01

Options de la commande

Les options de cette commande sont :

root@debian:~# uptime --help
usage: uptime [-V]
    -V    display version

La commande w

Cette commande reprend les informations de la commande uptime et y ajoute des détails sur les utilisateurs connectés via un terminal :

root@debian:~# w
 09:49:32 up  2:35,  2 users,  load average: 0,06, 0,03, 0,00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
trainee  tty7     :0               21Oct11 17days  1:12   0.15s x-session-manag
trainee  pts/0    :0.0             07:54    0.00s  0.62s 20.05s gnome-terminal

La valeur JCPU indique le temps processeur utilisé par tous les processus attachés au terminal de la connexion. Cette valeur n'inclut pas les temps des anciens processus en arrière plan.

La valeur PCPU indique le temps processeur utilisé par les processus attachés au terminal de la connexion et actuellement en cours (autrement dit le processus identifié dans la colonne WHAT).

Options de la commande

Les options de cette commande sont :

root@debian:~# w --help
w : option invalide -- '-'
usage: w -hlsufV [user]
    -h    skip header
    -l    long listing (default)
    -s    short listing
    -u    ignore uid of processes
    -f    toggle FROM field (default on)
    -o    old-style output
    -V    display version

La commande uname

Cette commande affiche des informations sur le système :

root@debian:~# uname -a
Linux debian 2.6.32-5-686 #1 SMP Fri Sep 9 20:51:05 UTC 2011 i686 GNU/Linux
root@debian:~# uname -s
Linux
root@debian:~# uname -n
debian
root@debian:~# uname -r
2.6.32-5-686
root@debian:~# uname -v
#1 SMP Fri Sep 9 20:51:05 UTC 2011
root@debian:~# uname -m
i686
root@debian:~# uname -p
unknown
root@debian:~# uname -i
unknown
root@debian:~# uname -o
GNU/Linux

Options de la commande

Les options de cette commande sont :

root@debian:~# uname --help
Utilisation : uname [OPTION]...
Affiche certaines informations système. Sans OPTION, identique à -s.

  -a, --all                affiche toutes les informations, dans l'ordre
                           suivant, mais sans -p et -i s'il sont inconnus :
  -s, --kernel-name        affiche le nom du kernel
  -n, --nodename           affiche le nom du noeud réseau (hostname)
  -r, --kernel-release     affiche la version du noyau
  -v, --kernel-version     affiche la version du kernel
  -m, --machine            affiche le nom de matériel de la machine
  -p, --processor          affiche le type de processeur ou « unknown » (inconnu)
  -i, --hardware-platform  affiche la plate-forme matérielle ou « unknown » (inconnu)
  -o, --operating-system   affiche le système d'exploitation
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Signalez les anomalies de « uname » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « uname » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'uname invocation' »

La commande du

La commande du peut être utilisée pour afficher la taille des fichiers contenus dans les répertoires passés en arguments. L'utilisation suivante de la commande avec les options -s et -h sur la racine du système affiche la somme des sous-répertoires avec un affichage humanisé en Ko, Mo et Go :

root@debian:~# du -sh /* 2>/dev/null
5,0M	/bin
23M	/boot
176K	/dev
12M	/etc
34M	/home
0	/initrd.img
90M	/lib
20K	/lost+found
8,0K	/media
8,0K	/mnt
115M	/opt
0	/proc
112K	/root
4,7M	/sbin
0	/selinux
4,0K	/srv
0	/sys
788K	/tmp
3,1G	/usr
801M	/var
0	/vmlinuz

<note important> Notez l'utilisation du code 2>/dev/null. Ce code envoie les erreurs éventuelles, contenues dans le canal 2 appelé le canal des erreurs, à /dev/null de façon à ce que les erreurs n'apparaissent pas à l'écran. Le canal des erreurs sera couvert dans la leçon Le Shell Bash. </note>

Saisissez maintenant la même commande sans le code 2>/dev/null :

root@debian:~# du -sh /*
5,0M	/bin
23M	/boot
176K	/dev
12M	/etc
34M	/home
0	/initrd.img
90M	/lib
20K	/lost+found
8,0K	/media
8,0K	/mnt
115M	/opt
du: impossible d'accéder à « /proc/2759/task/2759/fd/4 »: Aucun fichier ou dossier de ce type
du: impossible d'accéder à « /proc/2759/task/2759/fdinfo/4 »: Aucun fichier ou dossier de ce type
du: impossible d'accéder à « /proc/2759/fd/4 »: Aucun fichier ou dossier de ce type
du: impossible d'accéder à « /proc/2759/fdinfo/4 »: Aucun fichier ou dossier de ce type
0	/proc
112K	/root
4,7M	/sbin
0	/selinux
4,0K	/srv
0	/sys
788K	/tmp
3,1G	/usr
801M	/var
0	/vmlinuz

<note important> Notez l'apparition des erreurs dans la sortie. </note>

Options de la commande

Les options de cette commande sont :

root@debian:~# du --help
Utilisation : du [OPTION]... [FILE]...
         ou : du [OPTION]... --files0-from=F
Synthétise l'utilisation de l'espace disque pour chaque FILE, récursivement
pour les répertoires.
Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
  -a, --all             affiche le décompte pour tous les fichiers, pas
                        seulement pour les répertoires.
      --apparent-size   affiche les tailles apparentes, au lieu de l'occupation 
                        disque ; même si la taille apparente est habituellement
                        plus petite, elle peut être plus grande en raison de
                        trous dans les fichiers (« sparse »), de la
                        fragmentation, de blocs indirects et autres raisons
                        similaires
  -B, --block-size=SIZE   utilise des blocs de SIZE octets
  -b, --bytes             équivalent à « --apparent-size --block-size=1 »
  -c, --total             produit le total général
  -D, --dereference-args  déréférence seulement les liens symboliques sur
                          la ligne de commande
      --files0-from=F   résume l'occupation disque des noms de fichiers
                        terminés par NUL, listés dans le fichier F ;
                        Si F est -, alors les noms sont lus de l'entrée standard
  -H,                   équivalent à --dereference-args (-D)
  -h, --human-readable  affiche les tailles dans un format lisible par un humain\n
                        (par ex. 1K, 234M, ou 2G)
      --si              identique à -h mais utilise un multiple de 1 000 au lieu\n
                        de 1 024
  -k,                   identique à --block-size=1K
  -l, --count-links     comptabilise les tailles aussi souvent qu'il y a
                        de liens directs
  -m                    identique à --block-size=1M
  -L, --dereference     déréférence tous les liens symboliques
  -P, --no-dereference  ne suit pas les liens symboliques (par défaut)
  -0, --null            termine chaque ligne de sortie par un octet de
                        valeur 0 au lieu d'un changement de ligne
  -S, --separate-dirs   n'inclut pas la taille des sous-répertoires
  -s, --summarize       affiche seulement un total pour chaque argument
  -x, --one-file-system    ignore les répertoires de différents systèmes de
                           fichiers
  -X, --exclude-from=FILE  exclut les fichiers qui concordent avec un des motifs
                           de FILE
      --exclude=PATTERN    exclut les fichiers qui concordent avec PATTERN
      --max-depth=N        affiche le total pour un répertoire (ou un fichier,
                           avec --all) seulement si il est à N niveaux ou moins
                           selon les arguments de la ligne de commande ;
                           --max-depth=0 est identique à --summarize
      --time            affiche l'heure de la dernière modification de n'importe
                        quel fichier du répertoire ou des sous-répertoires
      --time=WORD       affiche l'heure comme WORD au lieu de l'heure de
                        modification : atime, access, use, ctime ou status.
      --time-style=STYLE affiche l'heure en utilisant STYLE :
                          full-iso, long-iso, iso, +FORMAT
                          FORMAT est interprété comme `date'
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Les valeurs sont affichées selon les unités du premier SIZE parmi --block-size
et les variables d'environnement DU_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE.
Dans le cas contraire, les unités par défaut sont 1 024 octets (ou 512 si
POSIXLY_CORRECT est défini).

SIZE peut être (ou un entier optionnellement suivi par) l'une des valeurs
suivantes : kB 1000, K 1024, MB 1000*1000, M 1024*1024 et ainsi de suite pour
G, T, P, E, Z et Y.

Signalez les anomalies de « du » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « du » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'du invocation' »

Les commandes lsmod, modprobe, insmod et rmmod

Le noyau ou kernel est la partie du système d'exploitation qui gère les entrées/sorties avec des périphériques. Dans certains cas il est préférable de recompiler le noyau de Linux. La motivation de cette recompilation peut être :

Dans le cas d'une utilisation courante de Linux, il est cependant préférable de faire appel aux modules. Les modules se trouvent dans le répertoire /lib/modules/<version-du-noyau> :

root@debian:~# ls /lib/modules/2.6.32-5-686/
build	    modules.alias      modules.devname	modules.symbols.bin
build.save  modules.alias.bin  modules.order	source
kernel	    modules.dep        modules.softdep
misc	    modules.dep.bin    modules.symbols

<note important> Des modules sont des fonctionnalités et pilotes qui n’ont pas étés intégrés dans le noyau. Ces modules peuvent être chargés et déchargés selon les besoins. </note>

Les commandes pour manipuler les modules sont :

La commande lsmod

Pour consulter la liste des modules chargés, utilisez la commande lsmod :

root@debian:~# lsmod
Module                  Size  Used by
cpufreq_userspace       1488  0 
cpufreq_conservative     4018  0 
cpufreq_stats           1940  0 
cpufreq_powersave        602  0 
ppdev                   4058  0 
lp                      5570  0 
vboxvideo               1073  1 
drm                   112096  2 vboxvideo
sco                     5885  2 
bridge                 33051  0 
stp                      996  1 bridge
bnep                    7468  2 
l2cap                  21721  3 bnep
crc16                   1027  1 l2cap
bluetooth              36335  5 sco,bnep,l2cap
rfkill                 10280  3 bluetooth
vboxsf                 27768  0 
binfmt_misc             4915  1 
fuse                   44304  1 
loop                    9773  0 
snd_intel8x0           19595  1 
snd_ac97_codec         79148  1 snd_intel8x0
ac97_bus                 710  1 snd_ac97_codec
snd_pcm                47226  2 snd_intel8x0,snd_ac97_codec
snd_seq                35495  0 
snd_timer              12258  2 snd_pcm,snd_seq
snd_seq_device          3673  1 snd_seq
snd                    34431  8 snd_intel8x0,snd_ac97_codec,snd_pcm,snd_seq,snd_timer,snd_seq_device
soundcore               3450  1 snd
i2c_piix4               7076  0 
snd_page_alloc          5061  2 snd_intel8x0,snd_pcm
i2c_core               12795  2 drm,i2c_piix4
vboxguest             107378  9 vboxsf
button                  3598  0 
ac                      1640  0 
battery                 3782  0 
processor              26343  0 
parport_pc             15799  0 
parport                22554  3 ppdev,lp,parport_pc
pcspkr                  1207  0 
psmouse                44817  0 
evdev                   5609  8 
serio_raw               2916  0 
joydev                  6739  0 
ext3                   94408  1 
jbd                    32217  1 ext3
mbcache                 3762  1 ext3
usb_storage            30841  0 
usbhid                 28040  0 
hid                    50925  1 usbhid
sg                     19945  0 
sr_mod                 10770  0 
sd_mod                 26021  3 
crc_t10dif              1012  1 sd_mod
cdrom                  26487  1 sr_mod
ata_generic             2247  0 
ohci_hcd               17011  0 
ata_piix               17744  2 
ahci                   27418  0 
thermal                 9206  0 
ehci_hcd               28749  0 
thermal_sys             9378  2 processor,thermal
libata                115913  3 ata_generic,ata_piix,ahci
usbcore                98865  5 usb_storage,usbhid,ohci_hcd,ehci_hcd
nls_base                4541  2 vboxsf,usbcore
e1000                  77357  0 
scsi_mod              104889  5 usb_storage,sg,sr_mod,sd_mod,libata

La commande modprobe

Pour ajouter un module, on peut utiliser la commande insmod ou modprobe. Cette dernière ajoute non seulement le module passé en argument mais également ses dépendances :

root@debian:~# modprobe ppa
root@debian:~# lsmod
Module                  Size  Used by
ppa                     6456  0 
cpufreq_userspace       1488  0 
cpufreq_conservative     4018  0 
cpufreq_stats           1940  0 
cpufreq_powersave        602  0 
ppdev                   4058  0 
lp                      5570  0 
vboxvideo               1073  1 
drm                   112096  2 vboxvideo
...

<note important> ppa est le module pour un Iomega ZIP 100 externe en émulation SCSI via le port parallèle. </note>

<note warning> La commande insmod peut aussi être utilisée pour charger un module en mémoire. Cependant au contraire de modprobe la commande insmod ne tient pas compte des dépendances sur d’autres modules. </note>

Pour supprimer un module, on peut utiliser la commande rmmod ou modprobe -r. Cette dernière essaie de supprimer les dépendances non-utilisées également :

root@debian:~# modprobe -r ppa
root@debian:~# lsmod
Module                  Size  Used by
cpufreq_userspace       1488  0 
cpufreq_conservative     4018  0 
cpufreq_stats           1940  0 
cpufreq_powersave        602  0 
ppdev                   4058  0 
lp                      5570  0 
vboxvideo               1073  1 
drm                   112096  2 vboxvideo
...

<note warning> La commande rmmod ne supprime pas les dépendances installées par la commande modprobe. Pour supprimer le module et les dépendances non utilisées, il convient d'utiliser la commande modprobe avec l'option -r. </note>

Les dépendances des modules sont résolus par la commande modprobe grâce aux fichier /lib/modules/<version-du-noyau>/modules.dep. Ce dernier peut être créé manuellement grâce à la commande depmod :

root@debian:~# depmod -v
...
/lib/modules/2.6.32-5-686/misc/vboxvideo.ko needs "drm_fasync": /lib/modules/2.6.32-5-686/kernel/drivers/gpu/drm/drm.ko
/lib/modules/2.6.32-5-686/misc/vboxvideo.ko needs "drm_poll": /lib/modules/2.6.32-5-686/kernel/drivers/gpu/drm/drm.ko
/lib/modules/2.6.32-5-686/misc/vboxvideo.ko needs "drm_core_get_reg_ofs": /lib/modules/2.6.32-5-686/kernel/drivers/gpu/drm/drm.ko
/lib/modules/2.6.32-5-686/misc/vboxvideo.ko needs "drm_ioctl": /lib/modules/2.6.32-5-686/kernel/drivers/gpu/drm/drm.ko
/lib/modules/2.6.32-5-686/misc/vboxvideo.ko needs "drm_exit": /lib/modules/2.6.32-5-686/kernel/drivers/gpu/drm/drm.ko
/lib/modules/2.6.32-5-686/misc/vboxvideo.ko needs "drm_core_get_map_ofs": /lib/modules/2.6.32-5-686/kernel/drivers/gpu/drm/drm.ko
/lib/modules/2.6.32-5-686/misc/vboxvideo.ko needs "drm_init": /lib/modules/2.6.32-5-686/kernel/drivers/gpu/drm/drm.ko
/lib/modules/2.6.32-5-686/misc/vboxvideo.ko needs "drm_vblank_init": /lib/modules/2.6.32-5-686/kernel/drivers/gpu/drm/drm.ko
/lib/modules/2.6.32-5-686/misc/vboxvideo.ko needs "drm_mmap": /lib/modules/2.6.32-5-686/kernel/drivers/gpu/drm/drm.ko
/lib/modules/2.6.32-5-686/misc/vboxvideo.ko needs "drm_core_reclaim_buffers": /lib/modules/2.6.32-5-686/kernel/drivers/gpu/drm/drm.ko
/lib/modules/2.6.32-5-686/misc/vboxvideo.ko needs "drm_release": /lib/modules/2.6.32-5-686/kernel/drivers/gpu/drm/drm.ko
root@debian:~#
root@debian:~# more /lib/modules/2.6.32-5-686/modules.dep
kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko:
kernel/arch/x86/kernel/cpu/cpufreq/powernow-k8.ko: kernel/drivers/acpi/processor
.ko kernel/drivers/thermal/thermal_sys.ko
kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko: kernel/drivers/acpi/processo
r.ko kernel/drivers/thermal/thermal_sys.ko
kernel/arch/x86/kernel/cpu/cpufreq/powernow-k6.ko:
kernel/arch/x86/kernel/cpu/cpufreq/powernow-k7.ko: kernel/drivers/acpi/processor
.ko kernel/drivers/thermal/thermal_sys.ko
kernel/arch/x86/kernel/cpu/cpufreq/longhaul.ko:
kernel/arch/x86/kernel/cpu/cpufreq/longrun.ko:
kernel/arch/x86/kernel/cpu/cpufreq/gx-suspmod.ko:
kernel/arch/x86/kernel/cpu/cpufreq/speedstep-ich.ko: kernel/arch/x86/kernel/cpu/
cpufreq/speedstep-lib.ko
kernel/arch/x86/kernel/cpu/cpufreq/speedstep-lib.ko:
kernel/arch/x86/kernel/cpu/cpufreq/speedstep-smi.ko: kernel/arch/x86/kernel/cpu/
cpufreq/speedstep-lib.ko
kernel/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.ko:
kernel/arch/x86/kernel/cpu/cpufreq/p4-clockmod.ko: kernel/arch/x86/kernel/cpu/cp
ufreq/speedstep-lib.ko
kernel/arch/x86/kernel/cpu/cpufreq/cpufreq-nforce2.ko:
kernel/arch/x86/kernel/msr.ko:
kernel/arch/x86/kernel/cpuid.ko:
kernel/arch/x86/kernel/apm.ko:
--More--(0%)

Sous Debian, les fichiers se trouvant dans le répertoire /etc/modprobe.d sont utilisés pour spécifier les options éventuelles à passer aux modules lors de leur chargement ainsi que les alias utilisés pour leur faire référence :

root@debian:~# ls /etc/modprobe.d/
aliases.conf		  blacklist.conf	linux-sound-base_noOSS.conf
alsa-base-blacklist.conf  fbdev-blacklist.conf	radeon-kms.conf
alsa-base.conf		  i915-kms.conf

Le fichier /etc/modprobe.d/aliases.conf contient les alias :

root@debian:~# cat /etc/modprobe.d/aliases.conf 
# These are the standard aliases for devices and kernel drivers.
# This file does not need to be modified.
#
# No new aliases should be added to this file, please file a bug against
# the kernel for any aliases which are still not built-in.

# network protocols ##########################################################
# alias net-pf-1  unix
# alias net-pf-2  ipv4
# alias net-pf-3  ax25
# alias net-pf-4  ipx
# alias net-pf-5  appletalk
# alias net-pf-6  netrom
# 7 BRIDGE
# alias net-pf-8  atm
# alias net-pf-9  x25
# alias net-pf-10 ipv6
# alias net-pf-11 rose
# alias net-pf-12 decnet
# 13 NETBEUI
# alias net-pf-15 af_key
# alias net-pf-16 af_netlink
# alias net-pf-17 af_packet
# 18 ASH
# alias net-pf-19 econet
# alias net-pf-20 atm
# 22 SNA
# alias net-pf-23 irda
# alias net-pf-24 pppoe
# 25 WANROUTER
# alias net-pf-26 llc2
# alias net-pf-31 bluetooth
# alias net-pf-33 af_rxrpc

alias net-pf-16-proto-1 wire
alias net-pf-16-proto-3 ip_queue
# alias net-pf-16-proto-4 inet_diag
# alias net-pf-16-proto-5 ipt_ULOG
# alias net-pf-16-proto-6 xfrm_user
alias net-pf-16-proto-8 scsi_transport_iscsi
alias net-pf-16-proto-9 audit
alias net-pf-16-proto-11 cn
# alias net-pf-16-proto-12 nfnetlink
alias net-pf-16-proto-13 ip6_queue
# alias net-pf-16-proto-14 dn_rtmsg

# executables formats ########################################################
install binfmt-0000 /bin/true
alias binfmt-204 binfmt_aout
alias binfmt-263 binfmt_aout
alias binfmt-264 binfmt_aout
alias binfmt-267 binfmt_aout
alias binfmt-387 binfmt_aout

# block devices ##############################################################
alias block-major-3-*  ide_generic
alias block-major-22-* ide_generic
alias block-major-33-* ide_generic
alias block-major-34-* ide_generic
alias block-major-37-* ide_tape
alias block-major-44-* ftl
alias block-major-46-* pcd
alias block-major-47-* pf
alias block-major-56-* ide_generic
alias block-major-57-* ide_generic
alias block-major-58-* lvm_mod
alias block-major-88-* ide_generic
alias block-major-89-* ide_generic
alias block-major-90-* ide_generic
alias block-major-91-* ide_generic
alias block-major-93-* nftl
alias block-major-97-* pg

# character devices ##########################################################
alias char-major-10-1 psmouse
alias char-major-10-139 openprom
alias char-major-10-157 applicom
alias char-major-10-181 toshiba
alias char-major-10-183 hw_random
alias char-major-10-187 irnet
alias char-major-10-189 ussp
alias char-major-10-250 hci_vhci
alias char-major-13-0  joydev
alias char-major-13-1  joydev
alias char-major-13-2  joydev
alias char-major-13-3  joydev
alias char-major-13-32 mousedev
alias char-major-13-33 mousedev
alias char-major-13-34 mousedev
alias char-major-13-35 mousedev
alias char-major-13-63 mousedev
alias char-major-13-64 evdev
alias char-major-13-65 evdev
alias char-major-13-66 evdev
alias char-major-13-67 evdev
alias char-major-19-* cyclades
alias char-major-20-* cyclades
alias char-major-22-* pcxx
alias char-major-23-* pcxx
alias char-major-27-* ftape
alias char-major-34-* scc
alias char-major-35-* tclmidi
alias char-major-48-* riscom8
alias char-major-49-* riscom8
alias char-major-57-* esp
alias char-major-58-* esp
alias char-major-63-* kdebug
alias char-major-67-* coda
alias char-major-75-* specialix
alias char-major-76-* specialix
alias char-major-81-* videodev
alias char-major-83-* vtx
alias char-major-89-* i2c_dev
alias char-major-90-* mtdchar
alias char-major-96-* pt
alias char-major-97-* pg
alias char-major-107-* 3dfx
alias char-major-109-* lvm_mod
alias char-major-166-* cdc_acm
alias char-major-171-0 raw1394
alias char-major-171-1 video1394
alias char-major-171-2 dv1394
alias char-major-171-3 amdtp
alias char-major-180-* usbcore
alias char-major-195-* nvidia
alias char-major-200-* vxspec
alias char-major-202-* msr
alias char-major-203-* cpuid
alias char-major-206-* osst
alias char-major-208-* ussp
alias char-major-227-* tub3270
#alias char-major-240-* usb-serial
#alias char-major-240-* hsfserial
#alias char-major-241-* hsfserial

# misc #######################################################################
#alias bt-proto-0 l2cap
#alias bt-proto-2 sco
#alias bt-proto-3 rfcomm
#alias bt-proto-4 bnep
#alias bt-proto-5 cmtp
#alias bt-proto-6 hidp
alias bt-proto-7 avdtp

alias cipcb0 cipcb
alias cipcb1 cipcb
alias cipcb2 cipcb
alias cipcb3 cipcb
alias dummy0 dummy
alias dummy1 dummy
alias plip0 plip
alias plip1 plip
alias slip0 slip
alias slip1 slip
alias tunl0 ipip
alias gre0 ip_gre

alias usbdevfs usbcore

alias nfs4 nfs

# work around other kernel issues ############################################
# The EHCI driver should be loaded before the ones for low speed controllers
# or some devices may be confused when they are disconnected and reconnected.
softdep uhci-hcd pre: ehci-hcd
softdep ohci-hcd pre: ehci-hcd

Les modules qui doivent être chargés au moment du démarrage de la machine sont inscrits dans le fichier /etc/modules/ :

root@debian:~# cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

loop

Options de la commande modprobe

Les options de cette commande sont :

root@debian:~# modprobe --help
modprobe: unrecognized option '--help'
Usage: modprobe [-v] [-V] [-C config-file] [-d <dirname> ] [-n] [-i] [-q] [-b] [-o <modname>] [ --dump-modversions ] <modname> [parameters...]
modprobe -r [-n] [-i] [-v] <modulename> ...
modprobe -l -t <dirname> [ -a <modulename> ...]

La commande modinfo

Il est possible d'obtenir des informations sur un module grâce à la commande modinfo :

root@debian:~# modinfo ppa
filename:       /lib/modules/2.6.32-5-686/kernel/drivers/scsi/ppa.ko
license:        GPL
depends:        parport,scsi_mod
vermagic:       2.6.32-5-686 SMP mod_unload modversions 686 

Options de la commande modinfo

Les options de cette commande sont :

root@debian:~# modinfo --help
Usage: modinfo [-0][-F field][-k kernelversion][-b basedir]  module...
 Prints out the information about one or more module(s).
 If a fieldname is given, just print out that field (or nothing if not found).
 Otherwise, print all information out in a readable form
 If -0 is given, separate with nul, not newline.
 If -b is given, use an image of the module tree.

La commande clear

Cette commande est utilisée pour effacer le contenu de l'écran courant du terminal :

root@debian:~# clear

root@debian:~# 

La commande exit

Cette commande ferme le terminal courant.

Options de la commande

Les options de cette commande sont :

root@debian:~# help exit
exit: exit [n]
    Exit the shell.
    
    Exits the shell with a status of N.  If N is omitted, the exit status
    is that of the last command executed.

La commande logout

Cette commande est utilisée pour se déconnecter d'un terminal de connexion en écrivant les données umtp et wmtp dans les fichiers de journalisation.

Options de la commande

Les options de cette commande sont :

root@debian:~# help logout
logout: logout [n]
    Exit a login shell.
    
    Exits a login shell with exit status N.  Returns an error if not executed
    in a login shell.

La commande sleep

Cette commande pause le terminal pour le nombre de secondes passé en argument.

Options de la commande

Les options de cette commande sont :

root@debian:~# sleep --help
Utilisation : sleep NUMBER[SUFFIX]...
         ou : sleep OPTION
Effectue une pause de NUMBER secondes. SUFFIX peut être « s » pour des
secondes (par défaut), « m » pour minutes, « h » pour heures ou « d »
pour des jours. Contrairement à la plupart des implémentations qui requièrent un
nombre entier, ici NUMBER peut être un nombre arbitraire en virgule flottante.
Avec plusieurs arguments, la pause se fait selon la somme des valeurs.

      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Signalez les anomalies de « sleep » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « sleep » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'sleep invocation' »

Options et Arguments

Les options sous Linux peuvent être exprimées au format court ou au format longue. Plusieurs différences sont importantes à noter.

Premièrement les options courtes sont précédées par un simple tiré -, tandis que les options longues sont précédées par deux tirés .

Un exemple est l'option de l'aide pour la plupart des commandes bash :

Deuxièmement les options courtes peuvent être combinées tandis que les options longues ne peuvent pas l'être. Par exemple, la ligne de commande ls -l -a -i peut être aussi écrite ls -lai, ls -lia ou encore ls -ali :

root@debian:/tmp# ls -lai
total 96
24337 drwxrwxrwt. 20 root       root       4096  7 nov.  11:17 .
    2 drwxr-xr-x. 22 root       root       4096  4 oct.  18:53 ..
61577 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 .com.google.Chrome.BeUuy5
61553 drwx------.  2 trainee    trainee    4096 21 oct.  08:46 .com.google.Chrome.oHSiER
24600 -rw-r--r--.  1 root       root         49  7 nov.  10:33 greptest
67844 drwxrwxrwt.  2 root       root       4096 21 oct.  08:47 .ICE-unix
61021 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 keyring-QPYpqd
60985 drwx------.  2 trainee    trainee    4096 21 oct.  08:46 keyring-zUlGgt
68110 drwxr-xr-x.  8 root       root       4096 18 oct.  16:59 mkinitramfs_475s0i
68234 drwxr-xr-x.  8 root       root       4096 18 oct.  19:49 mkinitramfs_D27tSZ
67860 drwx------.  2 Debian-gdm Debian-gdm 4096 21 oct.  08:47 orbit-Debian-gdm
67866 drwx------.  2 trainee    trainee    4096  7 nov.  11:14 orbit-trainee
73478 -rw-r--r--.  1 root       root        125  7 nov.  11:16 scriptawk
61543 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 seahorse-DNpSDh
61540 drwx------.  2 trainee    trainee    4096 21 oct.  08:46 seahorse-yuvmVS
61279 drwx------.  2 trainee    trainee    4096 21 oct.  08:46 ssh-HfVASw1833
61541 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 ssh-NqNSIa1847
61524 drwx------.  2 trainee    trainee    4096 19 oct.  07:19 virtual-trainee.0rZVgk
67889 drwx------.  2 trainee    trainee    4096 16 oct.  16:23 virtual-trainee.6gVmti
61544 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 virtual-trainee.KnZml3
61551 drwx------.  2 trainee    trainee    4096 19 oct.  07:22 virtual-trainee.uk9U8R
24339 -r--r--r--.  1 root       root         11 21 oct.  08:46 .X0-lock
67840 drwxrwxrwt.  2 root       root       4096 21 oct.  08:46 .X11-unix
root@debian:/tmp# ls -lia
total 96
24337 drwxrwxrwt. 20 root       root       4096  7 nov.  11:17 .
    2 drwxr-xr-x. 22 root       root       4096  4 oct.  18:53 ..
61577 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 .com.google.Chrome.BeUuy5
61553 drwx------.  2 trainee    trainee    4096 21 oct.  08:46 .com.google.Chrome.oHSiER
24600 -rw-r--r--.  1 root       root         49  7 nov.  10:33 greptest
67844 drwxrwxrwt.  2 root       root       4096 21 oct.  08:47 .ICE-unix
61021 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 keyring-QPYpqd
60985 drwx------.  2 trainee    trainee    4096 21 oct.  08:46 keyring-zUlGgt
68110 drwxr-xr-x.  8 root       root       4096 18 oct.  16:59 mkinitramfs_475s0i
68234 drwxr-xr-x.  8 root       root       4096 18 oct.  19:49 mkinitramfs_D27tSZ
67860 drwx------.  2 Debian-gdm Debian-gdm 4096 21 oct.  08:47 orbit-Debian-gdm
67866 drwx------.  2 trainee    trainee    4096  7 nov.  11:14 orbit-trainee
73478 -rw-r--r--.  1 root       root        125  7 nov.  11:16 scriptawk
61543 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 seahorse-DNpSDh
61540 drwx------.  2 trainee    trainee    4096 21 oct.  08:46 seahorse-yuvmVS
61279 drwx------.  2 trainee    trainee    4096 21 oct.  08:46 ssh-HfVASw1833
61541 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 ssh-NqNSIa1847
61524 drwx------.  2 trainee    trainee    4096 19 oct.  07:19 virtual-trainee.0rZVgk
67889 drwx------.  2 trainee    trainee    4096 16 oct.  16:23 virtual-trainee.6gVmti
61544 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 virtual-trainee.KnZml3
61551 drwx------.  2 trainee    trainee    4096 19 oct.  07:22 virtual-trainee.uk9U8R
24339 -r--r--r--.  1 root       root         11 21 oct.  08:46 .X0-lock
67840 drwxrwxrwt.  2 root       root       4096 21 oct.  08:46 .X11-unix
root@debian:/tmp# ls -ali
total 96
24337 drwxrwxrwt. 20 root       root       4096  7 nov.  11:17 .
    2 drwxr-xr-x. 22 root       root       4096  4 oct.  18:53 ..
61577 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 .com.google.Chrome.BeUuy5
61553 drwx------.  2 trainee    trainee    4096 21 oct.  08:46 .com.google.Chrome.oHSiER
24600 -rw-r--r--.  1 root       root         49  7 nov.  10:33 greptest
67844 drwxrwxrwt.  2 root       root       4096 21 oct.  08:47 .ICE-unix
61021 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 keyring-QPYpqd
60985 drwx------.  2 trainee    trainee    4096 21 oct.  08:46 keyring-zUlGgt
68110 drwxr-xr-x.  8 root       root       4096 18 oct.  16:59 mkinitramfs_475s0i
68234 drwxr-xr-x.  8 root       root       4096 18 oct.  19:49 mkinitramfs_D27tSZ
67860 drwx------.  2 Debian-gdm Debian-gdm 4096 21 oct.  08:47 orbit-Debian-gdm
67866 drwx------.  2 trainee    trainee    4096  7 nov.  11:14 orbit-trainee
73478 -rw-r--r--.  1 root       root        125  7 nov.  11:16 scriptawk
61543 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 seahorse-DNpSDh
61540 drwx------.  2 trainee    trainee    4096 21 oct.  08:46 seahorse-yuvmVS
61279 drwx------.  2 trainee    trainee    4096 21 oct.  08:46 ssh-HfVASw1833
61541 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 ssh-NqNSIa1847
61524 drwx------.  2 trainee    trainee    4096 19 oct.  07:19 virtual-trainee.0rZVgk
67889 drwx------.  2 trainee    trainee    4096 16 oct.  16:23 virtual-trainee.6gVmti
61544 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 virtual-trainee.KnZml3
61551 drwx------.  2 trainee    trainee    4096 19 oct.  07:22 virtual-trainee.uk9U8R
24339 -r--r--r--.  1 root       root         11 21 oct.  08:46 .X0-lock
67840 drwxrwxrwt.  2 root       root       4096 21 oct.  08:46 .X11-unix

La commande ls -l –all –inode ne peut pas être écrite ls -l –allinode :

root@debian:/tmp# ls -l --all --inode
total 96
24337 drwxrwxrwt. 20 root       root       4096  7 nov.  11:17 .
    2 drwxr-xr-x. 22 root       root       4096  4 oct.  18:53 ..
61577 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 .com.google.Chrome.BeUuy5
61553 drwx------.  2 trainee    trainee    4096 21 oct.  08:46 .com.google.Chrome.oHSiER
24600 -rw-r--r--.  1 root       root         49  7 nov.  10:33 greptest
67844 drwxrwxrwt.  2 root       root       4096 21 oct.  08:47 .ICE-unix
61021 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 keyring-QPYpqd
60985 drwx------.  2 trainee    trainee    4096 21 oct.  08:46 keyring-zUlGgt
68110 drwxr-xr-x.  8 root       root       4096 18 oct.  16:59 mkinitramfs_475s0i
68234 drwxr-xr-x.  8 root       root       4096 18 oct.  19:49 mkinitramfs_D27tSZ
67860 drwx------.  2 Debian-gdm Debian-gdm 4096 21 oct.  08:47 orbit-Debian-gdm
67866 drwx------.  2 trainee    trainee    4096  7 nov.  11:14 orbit-trainee
73478 -rw-r--r--.  1 root       root        125  7 nov.  11:16 scriptawk
61543 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 seahorse-DNpSDh
61540 drwx------.  2 trainee    trainee    4096 21 oct.  08:46 seahorse-yuvmVS
61279 drwx------.  2 trainee    trainee    4096 21 oct.  08:46 ssh-HfVASw1833
61541 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 ssh-NqNSIa1847
61524 drwx------.  2 trainee    trainee    4096 19 oct.  07:19 virtual-trainee.0rZVgk
67889 drwx------.  2 trainee    trainee    4096 16 oct.  16:23 virtual-trainee.6gVmti
61544 drwx------.  2 trainee    trainee    4096 21 oct.  08:47 virtual-trainee.KnZml3
61551 drwx------.  2 trainee    trainee    4096 19 oct.  07:22 virtual-trainee.uk9U8R
24339 -r--r--r--.  1 root       root         11 21 oct.  08:46 .X0-lock
67840 drwxrwxrwt.  2 root       root       4096 21 oct.  08:46 .X11-unix
root@debian:/tmp# ls -l --allinode
ls : option non reconnue « --allinode »
Saisissez « ls --help » pour plus d'informations.

<note important> Par convention, les options prenant un argument ne sont pas combinées avec les autres options. </note>

Expressions Régulières

La manipulation de fichiers textes utilise des expressions régulières. Sous Linux il existe deux types d'expressions régulières :

Les expressions régulières utilisent des caractères spéciaux. Certains caractères sont communs aux Erb et aux Ere :

Caractère spécial Description
^ Trouver la chaîne au début de la ligne
$ Trouver la chaîne à la fin de la ligne
\ Annuler l'effet spécial du caractère suivant
[ ] Trouver n'importe quel des caractères entre les crochets
[^] Exclure les caractères entre crochets
. Trouver n'importe quel caractère sauf à la fin de la ligne
* Trouver 0 ou plus du caractère qui précède
\< Trouver la chaîne au début d'un mot
\> Trouver la chaîne à la fin d'un mot

ERb

Certains caractères spéciaux sont spécifiques aux ERb :

Caractère spécial Description
\{a,b\} Trouver de a à b occurrences de ce qui précède
\{a\} Trouver exactement le nombre a d'occurrences de ce qui précède
\{a,\} Trouver le nombre a ou plus d'occurrences de ce qui précède
\(ERb) Mémoriser une ERb
\1 Rappeler la première ERb mémorisée
\2, \3 … Rappeler la deuxième ERb mémorisée, rappeler la troisième ERb mémorisée etc

ERe

Certains caractères spéciaux sont spécifiques aux ERe :

Caractère spécial Description
? Trouver 0 ou 1 occurrence de ce qui précède
+ Trouver 1 ou n d'occurrences de ce qui précède
{a,b} Trouver de a à b occurrences de ce qui précède
{a} Trouver exactement le nombre a d'occurrences de ce qui précède
{a,} Trouver le nombre a ou plus d'occurrences de ce qui précède
() Faire un ET des expressions régulières entre les paranthèses
| Faire un OU des expressions régulières se trouvant de chaque côté du pipe

Outils de Manipulation de Fichiers Texte

La commande grep

La commande grep peut être utilisée pour rechercher des lignes contenant une chaîne de caractères dans un jeu de fichiers.

Par défaut, la commande grep est sensible à la casse. Pour rendre cette commande insensible à la casse, il faut utiliser l'option -i.

La commande grep peut être aussi utilisée pour faire l'inverse, autrement dit de montrer les lignes qui ne contiennent pas la chaîne recherchée. Dans ce cas, il faut utiliser l'option –v.

La commande grep peut être utilisée avec des Expressions Régulières basiques. Ceci est utile pour rechercher dans le contenu de fichiers.

Téléchargez le fichier greptest en cliquant sur le titre du fichier exemple ci-dessous :

greptest
fenestrOS
fenestros
555-5555
f
.fenestros
.fe
£

Placez ce fichier dans le répertoire /tmp :

root@debian:~# mv /home/trainee/Téléchargements/greptest.txt /tmp/greptest

Recherchez maintenant toute ligne du fichier /tmp/greptest contenant au moins une lettre :

root@debian:~# grep '[a-zA-Z]' /tmp/greptest
fenestrOS
fenestros
f
.fenestros
.fe

Recherchez maintenant toute ligne contenant au moins une lettre ou un chiffre :

root@debian:~# grep '[a-zA-Z0-9]' /tmp/greptest
fenestrOS
fenestros
555-5555
f
.fenestros
.fe

<note important> Notez la présence de la ligne 555-5555. </note>

Recherchez maintenant toute ligne contenant un numéro de téléphone au format NNN-NNNN :

root@debian:~# grep '[0-9]\{3\}-[0-9]\{4\}' /tmp/greptest
555-5555

Recherchez maintenant toute ligne contenant exactement un caractère :

root@debian:~# grep '^.$' /tmp/greptest
f
£

<note important> Notez l'utilisation des caractères spéciaux le début de ligne : ^, n'importe quel caractère : . et la fin de ligne : $. </note>

Recherchez maintenant toute ligne commençant par un point :

root@debian:~# grep '^\.' /tmp/greptest
.fenestros
.fe

<note important> Notez l'utilisation du caractère d'échappement \ pour annuler l'effet du caractère spécial . </note>

Options de la commande

Les options de cette commande sont :

root@debian:~# grep --help
Usage: grep [OPTION]... MOTIF [FICHIER]...
Cherche MOTIF dans chaque FICHIER ou à partir de l'entrée standard.
MOTIF est, par défaut, une expression régulière simple
Exemple: grep -i 'hello world» menu.h main.c

Sélection et interprétation de l'expression régulière:
  -E, --extended-regexp     MOTIF est une expression regulière étendue
  -F, --fixed-regexp        MOTIF est un ensemble chaînes fixes séparées par des retours chariot
  -G, --basic-regexp        MOTIF est une expression régulière de base
  -P, --perl-regexp         MOTIF est une expression régulière en Perl
  -e, --regexp=MOTIF        utiliser MOTIF comme expression régulière
  -f, --file=FICHIER        charger le MOTIF depuis ce FICHIER
  -i, --ignore-case         ignorer la distinction de la casse
  -w, --word-regexp         forcer la concordance du MOTIF à des mots entiers
  -x, --line-regexp         forcer la concordance du MOTIF à des lignes entières
  -z, --null-data           ligne de données finissant par 0 et pas par un retour chariot

Miscellaneous:
  -s, --no-messages         suppress error messages
  -v, --invert-match        select non-matching lines
  -V, --version             print version information and exit
      --help                display this help and exit
      --mmap                ignored for backwards compatibility

Output control:
  -m, --max-count=NUM       stop after NUM matches
  -b, --byte-offset         print the byte offset with output lines
  -n, --line-number         print line number with output lines
      --line-buffered       flush output on every line
  -H, --with-filename       print the filename for each match
  -h, --no-filename         suppress the prefixing filename on output
      --label=LABEL         print LABEL as filename for standard input
  -o, --only-matching       show only the part of a line matching PATTERN
  -q, --quiet, --silent     suppress all normal output
      --binary-files=TYPE   assume that binary files are TYPE;
                            TYPE is `binary', `text', or `without-match'
  -a, --text                equivalent to --binary-files=text
  -I                        equivalent to --binary-files=without-match
  -d, --directories=ACTION  how to handle directories;
                            ACTION is `read', `recurse', or `skip'
  -D, --devices=ACTION      how to handle devices, FIFOs and sockets;
                            ACTION is `read' or `skip'
  -R, -r, --recursive       equivalent to --directories=recurse
      --include=FILE_PATTERN  search only files that match FILE_PATTERN
      --exclude=FILE_PATTERN  skip files and directories matching FILE_PATTERN
      --exclude-from=FILE   skip files matching any file pattern from FILE
      --exclude-dir=PATTERN  directories that match PATTERN will be skipped.
  -L, --files-without-match  print only names of FILEs containing no match
  -l, --files-with-matches  print only names of FILEs containing matches
  -c, --count               print only a count of matching lines per FILE
  -T, --initial-tab         make tabs line up (if needed)
  -Z, --null                print 0 byte after FILE name

Context control:
  -B, --before-context=NUM  print NUM lines of leading context
  -A, --after-context=NUM   print NUM lines of trailing context
  -C, --context=NUM         print NUM lines of output context
  -NUM                      same as --context=NUM
      --color[=WHEN],
      --colour[=WHEN]       use markers to highlight the matching strings;
                            WHEN is `always', `never', or `auto'
  -U, --binary              do not strip CR characters at EOL (MSDOS)
  -u, --unix-byte-offsets   report offsets as if CRs were not there (MSDOS)

"egrep" équivaut à "grep -E". "fgrep" équivaut à "grep -F".
Sans FICHIER, ou si FICHIER vaut -, lit l'entrée standard. Si moins de 2 fichiers
sont donnés, utilise -h. Code de sortie 0 si une ligne est sélectionnée, 1 sinon;
en cas d'erreur et si l'option -q n'est pas présente, le code de sortie vaut 2.

Report bugs to: bug-grep@gnu.org
GNU Grep home page: <http://www.gnu.org/software/grep/>
General help using GNU software: <http://www.gnu.org/gethelp/>

La Commande egrep

La commande egrep est identique à la commande grep -E. Dans les deux cas, l'utilisation des expressions régulières est étendue aux ERe.

Éditez maintenant votre fichier /tmp/greptest ainsi :

greptest
# Commentaire du début
fenestrOS
fenestros
# Un autre commentaire
555-5555
f
 
.fenestros
 
.fe
 
£
# Commentaire de la fin

Utilisez maintenant la commande grep avec l'option -E pour supprimer les lignes de commentaires ainsi que les lignes vides :

root@debian:~# grep -E -v '^(#|$)' /tmp/greptest
fenestrOS
fenestros
555-5555
f
.fenestros
.fe
£

<note important> Notez l'utilisation des parenthèses pour faire un regroupement ainsi que le pipe pour représenter un OU. L'expression '^(#|$)' indique donc “toute ligne commençant par le caractère #” OU “toute ligne où le début de la ligne est aussi la fin de la ligne”. </note>

Utilisez maintenant la commande egrep pour envoyer le contenu du fichier /tmp/greptest, sans commentaires et sans lignes vides, dans le fichier /tmp/greptest1 :

root@debian:~# egrep -v '^(#|$)'  /tmp/greptest > /tmp/greptest1
root@debian:~# cat /tmp/greptest1
fenestrOS
fenestros
555-5555
f
.fenestros
.fe
£

<note important> Cette commande est particulièrement utile face à un fichier de configuration de plusieurs centaines de lignes dont certaines contiennent des directives activées d'autres sont vides ou en commentaires. De cette façon vous pouvez généré facilement un fichier ne contenant que les directives activées. </note>

Options de la commande

Les options de cette commande sont :

root@debian:~# egrep --help
Usage: egrep [OPTION]... MOTIF [FICHIER]...
Cherche MOTIF dans chaque FICHIER ou à partir de l'entrée standard.
MOTIF est une expression régulière étendue
Exemple: egrep -i 'hello world» menu.h main.c

Sélection et interprétation de l'expression régulière:
  -e, --regexp=MOTIF        utiliser MOTIF comme expression régulière
  -f, --file=FICHIER        charger le MOTIF depuis ce FICHIER
  -i, --ignore-case         ignorer la distinction de la casse
  -w, --word-regexp         forcer la concordance du MOTIF à des mots entiers
  -x, --line-regexp         forcer la concordance du MOTIF à des lignes entières
  -z, --null-data           ligne de données finissant par 0 et pas par un retour chariot

Miscellaneous:
  -s, --no-messages         suppress error messages
  -v, --invert-match        select non-matching lines
  -V, --version             print version information and exit
      --help                display this help and exit
      --mmap                ignored for backwards compatibility

Output control:
  -m, --max-count=NUM       stop after NUM matches
  -b, --byte-offset         print the byte offset with output lines
  -n, --line-number         print line number with output lines
      --line-buffered       flush output on every line
  -H, --with-filename       print the filename for each match
  -h, --no-filename         suppress the prefixing filename on output
      --label=LABEL         print LABEL as filename for standard input
  -o, --only-matching       show only the part of a line matching PATTERN
  -q, --quiet, --silent     suppress all normal output
      --binary-files=TYPE   assume that binary files are TYPE;
                            TYPE is `binary', `text', or `without-match'
  -a, --text                equivalent to --binary-files=text
  -I                        equivalent to --binary-files=without-match
  -d, --directories=ACTION  how to handle directories;
                            ACTION is `read', `recurse', or `skip'
  -D, --devices=ACTION      how to handle devices, FIFOs and sockets;
                            ACTION is `read' or `skip'
  -R, -r, --recursive       equivalent to --directories=recurse
      --include=FILE_PATTERN  search only files that match FILE_PATTERN
      --exclude=FILE_PATTERN  skip files and directories matching FILE_PATTERN
      --exclude-from=FILE   skip files matching any file pattern from FILE
      --exclude-dir=PATTERN  directories that match PATTERN will be skipped.
  -L, --files-without-match  print only names of FILEs containing no match
  -l, --files-with-matches  print only names of FILEs containing matches
  -c, --count               print only a count of matching lines per FILE
  -T, --initial-tab         make tabs line up (if needed)
  -Z, --null                print 0 byte after FILE name

Context control:
  -B, --before-context=NUM  print NUM lines of leading context
  -A, --after-context=NUM   print NUM lines of trailing context
  -C, --context=NUM         print NUM lines of output context
  -NUM                      same as --context=NUM
      --color[=WHEN],
      --colour[=WHEN]       use markers to highlight the matching strings;
                            WHEN is `always', `never', or `auto'
  -U, --binary              do not strip CR characters at EOL (MSDOS)
  -u, --unix-byte-offsets   report offsets as if CRs were not there (MSDOS)

L'utilisation de "egrep" doit être abandonnée ; utilisez "grep -E" à la place.
Sans FICHIER, ou si FICHIER vaut -, lit l'entrée standard. Si moins de 2 fichiers
sont donnés, utilise -h. Code de sortie 0 si une ligne est sélectionnée, 1 sinon;
en cas d'erreur et si l'option -q n'est pas présente, le code de sortie vaut 2.

Report bugs to: bug-grep@gnu.org
GNU Grep home page: <http://www.gnu.org/software/grep/>
General help using GNU software: <http://www.gnu.org/gethelp/>

La Commande fgrep

La commande fgrep est identique à la commande grep -F. Dans les deux cas et par défaut la recherche concerne une chaîne de caractères interprétés dans un sens littéral sans utilisation de caractères spéciaux ni d'expressions régulières.

Éditez maintenant votre fichier /tmp/greptest ainsi :

greptest
# Commentaire du début
^ voici une ligne pour la recherche fgrep
fenestrOS
fenestros
# Un autre commentaire
555-5555
f
 
.fenestros
 
.fe
 
£
# Commentaire de la fin

Utilisez maintenant la commande fgrep pour rechercher la ligne commençant par le caractère ^ :

root@debian:~# fgrep '^' /tmp/greptest
^ voici une ligne pour la recherche fgrep

Comparez le résultat ci-dessus avec celui de la commande grep :

root@debian:~# grep '^' /tmp/greptest
# Commentaire du début
^ voici une ligne pour la recherche fgrep
fenestrOS
fenestros
# Un autre commentaire
555-5555
f

.fenestros

.fe

£
# Commentaire de la fin

En effet, la ligne de commande en utilisant la commande grep devrait être :

root@debian:~# grep '^\^' /tmp/greptest
^ voici une ligne pour la recherche fgrep

Options de la commande

Les options de cette commande sont :

root@debian:~# fgrep --help
Usage: fgrep [OPTION]... MOTIF [FICHIER]...
Cherche MOTIF dans chaque FICHIER ou à partir de l'entrée standard.
MOTIF est un ensemble de chaines fixes séparées par des retours chariot.
Exemple: fgrep -i 'hello world» menu.h main.c

Sélection et interprétation de l'expression régulière:
  -e, --regexp=MOTIF        utiliser MOTIF comme expression régulière
  -f, --file=FICHIER        charger le MOTIF depuis ce FICHIER
  -i, --ignore-case         ignorer la distinction de la casse
  -w, --word-regexp         forcer la concordance du MOTIF à des mots entiers
  -x, --line-regexp         forcer la concordance du MOTIF à des lignes entières
  -z, --null-data           ligne de données finissant par 0 et pas par un retour chariot

Miscellaneous:
  -s, --no-messages         suppress error messages
  -v, --invert-match        select non-matching lines
  -V, --version             print version information and exit
      --help                display this help and exit
      --mmap                ignored for backwards compatibility

Output control:
  -m, --max-count=NUM       stop after NUM matches
  -b, --byte-offset         print the byte offset with output lines
  -n, --line-number         print line number with output lines
      --line-buffered       flush output on every line
  -H, --with-filename       print the filename for each match
  -h, --no-filename         suppress the prefixing filename on output
      --label=LABEL         print LABEL as filename for standard input
  -o, --only-matching       show only the part of a line matching PATTERN
  -q, --quiet, --silent     suppress all normal output
      --binary-files=TYPE   assume that binary files are TYPE;
                            TYPE is `binary', `text', or `without-match'
  -a, --text                equivalent to --binary-files=text
  -I                        equivalent to --binary-files=without-match
  -d, --directories=ACTION  how to handle directories;
                            ACTION is `read', `recurse', or `skip'
  -D, --devices=ACTION      how to handle devices, FIFOs and sockets;
                            ACTION is `read' or `skip'
  -R, -r, --recursive       equivalent to --directories=recurse
      --include=FILE_PATTERN  search only files that match FILE_PATTERN
      --exclude=FILE_PATTERN  skip files and directories matching FILE_PATTERN
      --exclude-from=FILE   skip files matching any file pattern from FILE
      --exclude-dir=PATTERN  directories that match PATTERN will be skipped.
  -L, --files-without-match  print only names of FILEs containing no match
  -l, --files-with-matches  print only names of FILEs containing matches
  -c, --count               print only a count of matching lines per FILE
  -T, --initial-tab         make tabs line up (if needed)
  -Z, --null                print 0 byte after FILE name

Context control:
  -B, --before-context=NUM  print NUM lines of leading context
  -A, --after-context=NUM   print NUM lines of trailing context
  -C, --context=NUM         print NUM lines of output context
  -NUM                      same as --context=NUM
      --color[=WHEN],
      --colour[=WHEN]       use markers to highlight the matching strings;
                            WHEN is `always', `never', or `auto'
  -U, --binary              do not strip CR characters at EOL (MSDOS)
  -u, --unix-byte-offsets   report offsets as if CRs were not there (MSDOS)

L'utilisation de "fgrep" doit être abandonnée ; utilisez "grep -F" à la place.
Sans FICHIER, ou si FICHIER vaut -, lit l'entrée standard. Si moins de 2 fichiers
sont donnés, utilise -h. Code de sortie 0 si une ligne est sélectionnée, 1 sinon;
en cas d'erreur et si l'option -q n'est pas présente, le code de sortie vaut 2.

Report bugs to: bug-grep@gnu.org
GNU Grep home page: <http://www.gnu.org/software/grep/>
General help using GNU software: <http://www.gnu.org/gethelp/>

Le Commande sed

La commande sed ou Stream EDitor est un éditeur de texte non-intéractif. Les actions spécifiées par la commande sed sont exécutées par défaut sur chaque ligne du fichier. La commande sed ne modifie pas le fichier d'origine et sa sortie standard est le canal 1.

Si plusieurs actions sont spécifiées dans la ligne de commande, chacune doit être précédée par l'option -e.

La syntaxe de la commande sed est la suivante :

sed [adresse] commande [arguments]

L'adresse permet de stipuler les lignes concernées par la commande.

La syntaxe d'une adresse peut être :

adresse Lignes concernées
a La ligne numéro a
$ La dernière ligne
/ERb/ Les lignes qui correspondent à l'ERb
a,b De la ligne numéro a jusqu'à la ligne numéro b
/ERb1/, /ERb2/ Toutes les lignes entre la première occurrence correspondant à l'ERb1 jusqu'à la première occurrence correspondant à l'ERb2

Le commandes de sed sont :

commande Description
d Ne pas afficher la ou les ligne(s)
p Afficher la ou les ligne(s)
s Effectuer une substitution
w Ecrire le ou les ligne(s) dans un fichier
= Afficher le numéro de la ligne spécifiée
! Exécuter la commande ci-dessus sur toutes les lignes sauf celle spécifiées dans l'adresse

La Commande d

La commande d de sed permet de ne pas afficher certaines lignes à l'écran. Dans l'exemple qui suit, les 10 premières lignes du fichier /etc/services ne sont pas affichées à l'écran :

root@debian:~# sed '1,10d' /etc/services | more
# If you need a huge list of used numbers please install the nmap package.

tcpmux		1/tcp				# TCP port service multiplexer
echo		7/tcp
echo		7/udp
discard		9/tcp		sink null
discard		9/udp		sink null
systat		11/tcp		users
daytime		13/tcp
daytime		13/udp
netstat		15/tcp
qotd		17/tcp		quote
msp		18/tcp				# message send protocol
msp		18/udp
chargen		19/tcp		ttytst source
chargen		19/udp		ttytst source
ftp-data	20/tcp
ftp		21/tcp
fsp		21/udp		fspd
ssh		22/tcp				# SSH Remote Login Protocol
ssh		22/udp
telnet		23/tcp
smtp		25/tcp		mail
--More--

Dans l'exemple qui suit, sed n'affiche pas de lignes de commentaires, c'est-à-dire les lignes commençant par le caractère # :

root@debian:~# sed '/^#/d' /etc/services | more

tcpmux		1/tcp				# TCP port service multiplexer
echo		7/tcp
echo		7/udp
discard		9/tcp		sink null
discard		9/udp		sink null
systat		11/tcp		users
daytime		13/tcp
daytime		13/udp
netstat		15/tcp
qotd		17/tcp		quote
msp		18/tcp				# message send protocol
msp		18/udp
chargen		19/tcp		ttytst source
chargen		19/udp		ttytst source
ftp-data	20/tcp
ftp		21/tcp
fsp		21/udp		fspd
ssh		22/tcp				# SSH Remote Login Protocol
ssh		22/udp
telnet		23/tcp
smtp		25/tcp		mail
time		37/tcp		timserver
--More--

<note important> Notez que l'ERb est entourée des caractères / et /. </note>

La Commande p

La commande sed vous permet d'afficher à l'écran certaines lignes spécifiées en utilisant la commande p :

root@debian:~# sed '1,2p' /etc/passwd
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
...

<note important> Notez que sed affiche également tout le contenu du fichier. Ceci implique que les lignes 1 et 2 s'affichent deux fois. </note>

Pour n'afficher que les lignes spécifiées, il convient d'utiliser l'option -n :

root@debian:~# sed -n '1,2p' /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh

La Commande w

La commande w permet d'écrire dans un fichier. Par exemple pour écrire dans le fichier /tmp/sedtest toutes les lignes du fichier /etc/services ne commençant pas par le caractère #, il convient d'utiliser la commande suivante :

root@debian:~# sed -n '/^#/!w /tmp/sedtest' /etc/services
root@debian:~# more /tmp/sedtest

tcpmux		1/tcp				# TCP port service multiplexer
echo		7/tcp
echo		7/udp
discard		9/tcp		sink null
discard		9/udp		sink null
systat		11/tcp		users
daytime		13/tcp
daytime		13/udp
netstat		15/tcp
qotd		17/tcp		quote
msp		18/tcp				# message send protocol
msp		18/udp
chargen		19/tcp		ttytst source
chargen		19/udp		ttytst source
ftp-data	20/tcp
ftp		21/tcp
fsp		21/udp		fspd
ssh		22/tcp				# SSH Remote Login Protocol
ssh		22/udp
telnet		23/tcp
smtp		25/tcp		mail
time		37/tcp		timserver
--More--(2%)

La Commande s

La commande s permet de procéder à une substitution :

root@debian:~# echo "user1,user2,user3" > /tmp/sedtest1
root@debian:~# cat /tmp/sedtest1 | sed 's/,/ /g'
user1 user2 user3

<note important> Notez que dans cet exemple, la commande s est suivi par un argument qui prend la forme /ce qui est à remplacer (caractère, chaîne ou ERb)/chaîne de remplacement/g. Le caractère g force le remplacement de toutes les occurrences. Sans elle, uniquement la première occurrence serait remplacée. Dans le cas de l'exemple, on remplace donc les virgules par des espaces. </note>

Options de la commande

Les options de cette commande sont :

Utilisation: sed [OPTION]... {script-seulement-si-pas-d'autre-script}
[fichier-d'entrée]...

  -n, --quiet, --silent
                 supprimer l'écriture automatique de l'espace des motifs
  -e script, --expression=script
                 ajouter le script aux commandes à être exécutées
  -f fichier-script, --file=fichier-script
                 ajouter le contenu de fichier-script aux commandes
                 à être exécutées
  --follow-symlinks
                 follow symlinks when processing in place
  -i[SUFFIXE], --in-place[=SUFFIXE]
                 éditer les fichiers à leur place (fait une
                 sauvegarde si l'extension est fournie)
  -l N, --line-length=N
                spécifier la longueur de coupure de ligne désirée pour la
                commande `l'
  --posix
                 désactiver toutes les extensions GNU.
  -r, --regexp-extended
                 utiliser la syntaxe des expressions régulières
                 étendues dans le script.
  -s, --separate
                considérer les fichiers comme séparés plutôt que comme un
                simple flux long et continu.
  -u, --unbuffered
                 charger des quantités minimales de données depuis les
                 fichiers d'entrée et libérer les tampons de sortie plus
                 souvent
      --help     afficher cette aide et sortir
      --version  afficher les informations de version du logiciel et sortir

Si aucune option -e, --expression, -f ou --file n'est donnée, le
premier argument qui n'est pas une option sera pris comme étant le script
sed à interpréter. Tous les arguments restants sont les noms des fichiers
d'entrée; si aucun fichier d'entrée n'est spécifiée, l'entrée standard
est lue.
GNU sed home page: <http://www.gnu.org/software/sed/>.
General help using GNU software: <http://www.gnu.org/gethelp/>.
E-mail bug reports to: <bug-gnu-utils@gnu.org>.
Be sure to include the word ``sed'' somewhere in the ``Subject:'' field.

La Commande awk

Présentation

Le processeur de texte awk est un filtre. Une action awk est fournie sur la ligne de commande entourée de ' ou de “ :

awk [-F séparateur] 'critère {action}' [fichier1 ... fichiern]

<note important> Le couple critère {action} s'appelle une clause. </note>

Dans le cas de l'utilisation d'un script awk, la syntaxe de la commande devient :

awk [-F séparateur] -f script [fichier1 ... fichiern]

Découpage en champs

awk sait identifier les champs de la ligne soit parce que ceux-ci sont séparés par un espace ou par une tabulation soit parce que la ligne de commande lui a identifié le séparateur grâce à l'option -F.

awk stocke les informations de la ligne dans des variables :

Variable Description
$0 Contient toute la ligne
$1, $2 … Contient le premier champ de la ligne, contient le deuxième champ de la ligne …

Par exemple :

root@debian:~# ls -la | awk '{print $8 $3 $4}'

08:46rootroot
2011rootroot
2011rootroot
10:22rootroot
2010rootroot
2011rootroot
08:38rootroot
08:38rootroot
2011rootroot
2011rootroot
2011rootroot
2007rootroot
2011rootroot

Comme vous pouvez constater, awk a extrait du résultat de la commande ls-l les champs nom de l'élément, le propriétaire et le groupe.

Afin de le rendre un peu plus lisible, saisissez la commande suivante :

root@debian:~# ls -la | awk '{print $8 " " $3 " " $4}'
  
08:46 root root
2011 root root
2011 root root
10:22 root root
2010 root root
2011 root root
08:38 root root
08:38 root root
2011 root root
2011 root root
2011 root root
2007 root root
2011 root root

Critères

Les critères conditionnent l'exécution d'une action dans une clause.

Plusieurs types de critères sont possibles. Les plus utilisées sont les suivantes :

Une expression régulière valide pour la ligne
Une expression régulière valide pour un champ

awk sélectionne des lignes en utilisant un opérateur de correspondance ou de non-correspondance :

Opérateur Condition
~ Correspondance
!~ Non-correspondance
Une comparaison

Les opérateurs sont :

Opérateur Condition
< Inférieur
<= Inférieur ou égal
== Egal
!= Différent
> Supérieur
>= Supérieur ou égal
Un opérateur logique

Les opérateurs sont :

Opérateur logique Condition
|| OU
&& ET
! NON
Une variable interne

Les variables sont :

Variable Description
NR Nombre total de lignes
NF Nombre total de champs
FILENAME Le nom du fichier en entrée
FS Le séparateur de champs en entrée. Par défaut un espace ou une tabulation
RS Le séparateur de lignes en entrée. Par défaut une nouvelle ligne
OFS Le séparateur de champs en sortie. Par défaut un espace
ORS Le séparateur de lignes en sortie. Par défaut une nouvelle ligne
OFMT Le format numérique. Par défaut ”%.6g“

Scripts awk

Quand un programme awk comporte plusieurs clauses composées de critères et d'actions, il convient de d'écrire un script awk. Ce script comporte trois sections :

<note important>

</note>

Par exemple :

root@debian:~# cd /tmp 
root@debian:/tmp# cat > scriptawk
BEGIN {
  print "Liste des systèmes de fichiers montés"}
{print $0}
END {
  print "====================================="}

<note important> Dans l'exemple ci-dessus, la ligne [^D] indique que vous devez appuyer simultanément sur les touches CTRL et D. </note>

Ensuite saisissez la commande suivante :

root@debian:/tmp# awk -f scriptawk /etc/fstab
Liste des systèmes de fichiers montés
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# / was on /dev/sda1 during installation
UUID=a42a1ddd-14bc-4dde-a537-e6c1b984a782 /               ext3    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=e21d8931-21ca-4ab3-9fbb-bd71657b312e none            swap    sw              0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0       0
=====================================

<note important> Notez l'utilisation de l'option -f qui applique le script awk au fichier donné en argument. </note>

La Fonction printf

La fonction intégrée printf permet de formater des affichages. Elle a la syntaxe suivante :

printf ("chaine",expression1,expression2,...,expressionn)

chaine contient autant de formats qu'il y a d'expressions.

Les formats de printf sont, par exemple :

Format Description
%30s Affichage d'une chaîne (s=string) sur 30 positions avec cadrage à droite
%-30s Affichage d'une chaîne (s=string) sur 30 positions avec cadrage à gauche
%4d Affichage d'un entier sur 4 positions avec cadrage à droite
%-4d Affichage d'un entier sur 4 positions avec cadrage à gauche

Structures de Contrôle

awk peut utiliser des structures de contrôle.

if

La syntaxe de la commande if est la suivante :

if condition { 

    commande
    commande
    ...
}

else {

    commande
    commande
    ...
}

ou dans le cas d'une seule commande :

if condition

    commande

else

    commande
for

La syntaxe de la structure de contrôle for est la suivante :

for variable in liste_variables {

    commande
    commande
    ...

}

ou dans le cas d'une seule commande :

for variable in liste_variables

    commande

ou dans le cas d'un tableau :

for clef dans tableau {

    print clef , tableau[clef]

}
while

La syntaxe de la structure de contrôle while est la suivante :

while condition {

     commande
     commande
     ...

}
do-while

La syntaxe de la structure de contrôle do-while est la suivante :

do {

     commande
     commande
     ...

} while condition

Tableaux

Pour illustrer l'utilisation des tableaux, téléchargez d'abord le fichier ventes_materiel en cliquant sur le titre du fichier exemple ci-dessous :

ventes_materiel
# FenestrOs.com
# Ventes annuelles par département
# 83
Desktops§100
Portables§50
Serveurs§21
Tablettes§4
 
# 06
Desktops§99
Portables§60
Serveurs§8
Tablettes§16
 
# 13
Desktops§130
Portables§65
Serveurs§12
Tablettes§56

Ce fichier contient des statistiques de vente par type de PC et par département.

Déplacez ce fichier vers le répertoire /root :

root@debian:tmp# cd ~
root@debian:~# mv /home/trainee/Téléchargements/ventes_materiel.txt /root/ventes_materiel

Téléchargez maintenant le script awk ventes.awk :

ventes.awk
# BEGIN
BEGIN {
    FS="§"
}
# TABLEAU
$1 !~ /^#/ && $1 !~ /^$/ {
	ventes[$1]+=$2
}
# END
END {
	for (pc in ventes)
	printf("Type PC :  %s \t Ventes (06+13+83) : %10d\n",pc,ventes[pc]);
}

Déplacez ce fichier vers le répertoire /root :

root@debian:~# mv /home/trainee/Téléchargements/ventes.awk /root

Ce script comporte 13 lignes et a pour but de calculer le nombre total de PC vendus dans les trois départements cités dans le fichier ventes_materiel :

     1	# BEGIN
     2	BEGIN {
     3		FS="§"
     4	}
     5	# TABLEAU
     6	$1 !~ /^#/ && $1 !~ /^$/ {
     7		ventes[$1]+=$2
     8	}
     9	# END
    10	END {
    11		for (pc in ventes)
    12		printf("Type PC :  %s \t Ventes (06+13+83) : %10d\n",pc,ventes[pc]);
    13	}

Dans ce script vous noterez :

Appliquez maintenant votre script awk au fichier ventes_materiel :

root@debian:~# awk -f ventes.awk ventes_materiel
Type PC :  Tablettes 	 Ventes (06+13+83) :         76
Type PC :  Portables 	 Ventes (06+13+83) :        175
Type PC :  Desktops 	 Ventes (06+13+83) :        329
Type PC :  Serveurs 	 Ventes (06+13+83) :         41

Options de la commande

<note important> Sous Debian, les options ne sont consultables que dans le manuel d'awk. </note>

La Commande expand

La commande expand convertit des tabulations dans un fichier en espaces et envoie le résultat à la sortie standard. Sans fichier en argument ou avec le caractère -, la commande prend son entrée de l'entrée standard.

Téléchargez le fichier suivant :

expand
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinq

Déplacez le fichier vers /root :

root@debian:~# mv /home/trainee/Téléchargements/expand.txt /root/expand

Visualisez le fichier avec la commande cat :

root@debian:~# cat expand
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinq
un	deux	trois	quatre	cinqroot@debian:~# 

Utilisez les option -vet de la commande cat pour visualiser les caractères invisibles :

root@debian:~# cat -vet expand
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinqroot@debian:~#

<note important> Comme vous pouvez constater, les tabulations sont représentées par ^I et les fins de lignes par $. </note>

Utilisez maintenant la commande expand pour convertir les tabulations en espaces en envoyant le résultat dans le fichier expand1 :

root@debian:~# expand expand > expand1

Visualisez le fichier avec la commande cat et les options -vet :

root@debian:~# cat -vet expand1
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinqroot@debian:~# 

<note important> Comme vous pouvez constater, les tabulations ont été converties en espaces. </note>

Options de la commande

Les options d cette commande sont :

root@debian:~# expand --help
Utilisation : expand [OPTION]... [FILE]...
Convertit les tabulations de chaque FILE en espaces, en écrivant sur la sortie
standard. Sans FILE, ou quand FILE est -, lit de l'entrée standard.

Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
  -i, --initial       ne convertit pas les tabulations après des non-blancs
  -t, --tabs=N        utilise des tabulations de N caractères et non 8
  -t, --tabs=LIST    utilise une liste explicite de positions de tabulations
                     séparées par des virgules
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Signalez les anomalies de « expand » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « expand » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'expand invocation' »

La Commande unexpand

La commande unexpand convertit des espaces dans un fichier en tabulations et envoie le résultat à la sortie standard. Sans fichier en argument ou avec le caractère -, la commande prend son entrée de l'entrée standard.

Utilisez la commande unexpand sur le fichier expand1 et envoyez le résultat dans le fichier expand2 :

root@debian:~# cat -vet expand1
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinq$
un      deux    trois   quatre  cinqroot@debian:~# 
root@debian:~# unexpand -a expand1 > expand2
root@debian:~# cat -vet expand2
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinq$
un^Ideux^Itrois^Iquatre^Icinqroot@debian:~# 

<note important> Notez que les espaces ont été remplacés par des tabulations. </note>

Options de la commande

Les options de cette commande sont :

root@debian:~# unexpand --help
Utilisation : unexpand [OPTION]... [FILE]...
Converti les blancs de chaque FILE par des tabulations, lors de l'écriture
sur la sortie standard.
Sans FILE ou quand le FILE est -, lit l'entrée standard.
Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
  -a, --all         convertit tous les blancs, pas seulement les blancs
                    initiaux
      --first-only  convertit seulement les séquences de blancs en tête
                    (surdéfini -a)
  -t, --tabs=N      utilise N caractères de tabulations au lieu de 8 (active -a)
  -t, --tabs=LIST   utilise une liste de positions de tabulation séparées par
                    des virgules (active -a)
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Signalez les anomalies de « unexpand » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « unexpand » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'unexpand invocation' »

La Commande cut

Chaque ligne est divisée en colonnes. Dans une ligne le premier caractère est dans la colonne numéro un, le deuxième dans la colonne deux et ainsi de suite. Dans une ligne il peut y avoir des champs séparés par des tabulations.

La commande cut permet de sélectionner des colonnes et des champs dans un fichier. La commande permet aussi d'utiliser une critère de séparation de champs autre que la tabulation en spécifiant cette critère en utilisant l'option -d.

Par exemple, pour sélectionner les 7 premières colonnes du fichier /etc/passwd la commande est :

root@debian:~# cut -c1-7 /etc/passwd
root:x:
daemon:
bin:x:2
sys:x:3
sync:x:
games:x
man:x:6
lp:x:7:
mail:x:
news:x:
uucp:x:
proxy:x
www-dat
backup:
list:x:
irc:x:3
gnats:x
nobody:
libuuid
message
Debian-
statd:x
avahi:x
usbmux:
Debian-
saned:x
hplip:x
trainee
vboxadd

Pour sélectionner les colonnes 1 à 5, les colonnes 10 à 15 et les colonnes 30 et après, il convient d’utiliser la commande suivante :

root@debian:~# cut -c1-5,10-15,30- /etc/passwd
root:0:rootsh
daemo1:1:da:/bin/sh
bin:x:bin:/
sys:x:sys:/
sync:65534:/sync
games:60:ga:/bin/sh
man:x2:man::/bin/sh
lp:x:lp:/vain/sh
mail:8:mailn/sh
news:9:newsws:/bin/sh
uucp::10:uuuucp:/bin/sh
proxy3:13:p/sh
www-dx:33:3r/www:/bin/sh
backu34:34:ckups:/bin/sh
list::38:Maager:/var/list:/bin/sh
irc:x39:ircd:/bin/sh
gnats1:41:Gting System (admin):/var/lib/gnats:/bin/sh
nobod65534:nonexistent:/bin/sh
libuu:100:1ibuuid:/bin/sh
messas:x:10n/dbus:/bin/false
Debiaim:x:1pool/exim4:/bin/false
statd03:655fs:/bin/false
avahi04:107emon,,,:/var/run/avahi-daemon:/bin/false
usbmu105:46,,,:/home/usbmux:/bin/false
Debiam:x:10splay Manager:/var/lib/gdm3:/bin/false
saned07:116/bin/false
hplip08:7:Her,,,:/var/run/hplip:/bin/false
train:1000:,:/home/trainee:/bin/bash
vboxa:999:1xadd:/bin/false

Pour sélectionner les champs 2, 4 et 6 du fichier, il convient d'utiliser la commande suivante :

root@debian:~# cut -d: -f2,4,6 /etc/passwd
x:0:/root
x:1:/usr/sbin
x:2:/bin
x:3:/dev
x:65534:/bin
x:60:/usr/games
x:12:/var/cache/man
x:7:/var/spool/lpd
x:8:/var/mail
x:9:/var/spool/news
x:10:/var/spool/uucp
x:13:/bin
x:33:/var/www
x:34:/var/backups
x:38:/var/list
x:39:/var/run/ircd
x:41:/var/lib/gnats
x:65534:/nonexistent
x:101:/var/lib/libuuid
x:103:/var/run/dbus
x:104:/var/spool/exim4
x:65534:/var/lib/nfs
x:107:/var/run/avahi-daemon
x:46:/home/usbmux
x:114:/var/lib/gdm3
x:116:/home/saned
x:7:/var/run/hplip
x:1000:/home/trainee
x:1:/var/run/vboxadd

Options de la commande

Les options de cette commande sont :

root@debian:~# cut --help
Utilisation : cut [OPTION]... [FILE]...
Affiche des extraits de lignes de chaque FILE vers la sortie standard.

Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
  -b, --bytes=LIST        sélectionne seulement ces octets
  -c, --characters=LIST   sélectionne seulement ces caractères
  -d, --delimiter=DELIM   utilise DELIM au lieu de TAB comme délimiteur de
                          champs
  -f, --fields=LIST       sélectionne seulement ces champs ; affiche aussi
                          toutes les lignes qui ne contiennent pas de caractère
                          délimiteur, à moins que l'option -s soit spécifiée
  -n                      (ignoré)
      --complement        compléte le jeu des octets sélectionnés, caractères
                          ou champs
  -s, --only-delimited    n'affiche pas les lignes ne contenant pas de
                          délimiteurs
      --output-delimiter=STRING  utilise STRING comme délimiteur de sortie, par                           défaut le délimiteur de l'entrée est utilisé
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Utilisez un, et seulement un parmi -b, -c ou -f. Chaque LIST est fait d'un
intervalle, ou de plusieurs intervalles séparés par des virgules. L'entrée
sélectionnée est écrite dans le même ordre qu'elle est lue, et seulement une
fois.
Chaque intervalle est l'un de :

  N     Ne octet, caractère ou champ, compté à partir de 1
  N-    du Ne octet, caractère ou champ jusqu'à la fin de la ligne
  N-M   du Ne au Me octets (inclus), caractère ou champ
  -M    du premier au Me octets (inclus), caractère ou champ

Sans FILE, ou quand FILE est -, lit l'entrée standard.

Signalez les anomalies de « cut » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « cut » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'cut invocation' »

La Commande uniq

La commande suivante permet d'extraire du fichier /etc/passwd les GID utilisés en tant que groupes principaux des utilisateurs :

[root@centos ~]# cut -d: -f4 /etc/passwd | sort -n | uniq
0
1
2
4
7
12
14
28
29
30
32
38
42
48
50
55
68
69
70
72
74
81
89
99
100
113
170
494
495
498
499
500
65534

Options de la commande

Les options de cette commande sont :

root@debian:~# uniq --help
Utilisation : uniq [OPTION]... [INPUT [OUTPUT]]
Filtre les lignes adjacentes correspondantes depuis INPUT (entrée standard),
en écrivant dans OUTPUT (ou la sortie standard).

Sans option, les lignes correspondantes sont fusionnées sur la première
occurence.
Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
  -c, --count           préfixe les lignes par le nombre d'occurences
  -d, --repeated        affiche seulement les lignes ayant des duplicatats
  -D, --all-repeated[=delimit-method]  print all duplicate lines
                        delimit-method={none(default),prepend,separate}
                        Delimiting is done with blank lines
  -f, --skip-fields=N   avoid comparing the first N fields
  -i, --ignore-case     ignore differences in case when comparing
  -s, --skip-chars=N    avoid comparing the first N characters
  -u, --unique          only print unique lines
  -z, --zero-terminated  end lines with 0 byte, not newline
  -w, --check-chars=N   ne compare pas plus de N caractères dans les lignes
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Un champ est une suite de blancs (souvent des espaces et/ou tabulations), suivi
de caractères non-blancs. Les champs avant les caractères sont ignorés.

Note : « uniq » ne détecte pas les lignes répétées à moins qu'elles soient
adjacentes. Il est possible de trier l'entrée en premier, ou d'utiliser 
« sort -u » sans « uniq ».
Les comparaisons respectent les rêgles définies par « LC_COLLATE ».

Signalez les anomalies de « uniq » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « uniq » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'uniq invocation' »

La Commande tr

La commande tr permet de substituer des caractères pour d'autres. Cette commande n'accepte que des données en provenance de son entrée standard et non en provenance d'un fichier.

root@debian:~# cat /etc/passwd | tr "[a-z]" "[A-Z]"
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
DAEMON:X:1:1:DAEMON:/USR/SBIN:/BIN/SH
BIN:X:2:2:BIN:/BIN:/BIN/SH
SYS:X:3:3:SYS:/DEV:/BIN/SH
SYNC:X:4:65534:SYNC:/BIN:/BIN/SYNC
GAMES:X:5:60:GAMES:/USR/GAMES:/BIN/SH
MAN:X:6:12:MAN:/VAR/CACHE/MAN:/BIN/SH
LP:X:7:7:LP:/VAR/SPOOL/LPD:/BIN/SH
MAIL:X:8:8:MAIL:/VAR/MAIL:/BIN/SH
NEWS:X:9:9:NEWS:/VAR/SPOOL/NEWS:/BIN/SH
UUCP:X:10:10:UUCP:/VAR/SPOOL/UUCP:/BIN/SH
PROXY:X:13:13:PROXY:/BIN:/BIN/SH
WWW-DATA:X:33:33:WWW-DATA:/VAR/WWW:/BIN/SH
BACKUP:X:34:34:BACKUP:/VAR/BACKUPS:/BIN/SH
LIST:X:38:38:MAILING LIST MANAGER:/VAR/LIST:/BIN/SH
IRC:X:39:39:IRCD:/VAR/RUN/IRCD:/BIN/SH
GNATS:X:41:41:GNATS BUG-REPORTING SYSTEM (ADMIN):/VAR/LIB/GNATS:/BIN/SH
NOBODY:X:65534:65534:NOBODY:/NONEXISTENT:/BIN/SH
LIBUUID:X:100:101::/VAR/LIB/LIBUUID:/BIN/SH
MESSAGEBUS:X:101:103::/VAR/RUN/DBUS:/BIN/FALSE
DEBIAN-EXIM:X:102:104::/VAR/SPOOL/EXIM4:/BIN/FALSE
STATD:X:103:65534::/VAR/LIB/NFS:/BIN/FALSE
AVAHI:X:104:107:AVAHI MDNS DAEMON,,,:/VAR/RUN/AVAHI-DAEMON:/BIN/FALSE
USBMUX:X:105:46:USBMUX DAEMON,,,:/HOME/USBMUX:/BIN/FALSE
DEBIAN-GDM:X:106:114:GNOME DISPLAY MANAGER:/VAR/LIB/GDM3:/BIN/FALSE
SANED:X:107:116::/HOME/SANED:/BIN/FALSE
HPLIP:X:108:7:HPLIP SYSTEM USER,,,:/VAR/RUN/HPLIP:/BIN/FALSE
TRAINEE:X:1000:1000:TRAINEE,,,:/HOME/TRAINEE:/BIN/BASH
VBOXADD:X:999:1::/VAR/RUN/VBOXADD:/BIN/FALSE

La commande tr peut être utilisée pour isoler une chaîne. Par exemple pour isoler l'adresse IP de la carte eth0 dans la sortie de la commande ifconfig :

root@debian:~# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 08:00:27:2a:02:5c  
          inet adr:10.0.2.15  Bcast:10.0.2.255  Masque:255.255.255.0
          adr inet6: fe80::a00:27ff:fe2a:25c/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:20173 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17163 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000 
          RX bytes:14591415 (13.9 MiB)  TX bytes:7216044 (6.8 MiB)

root@debian:~# ifconfig eth0 | grep "inet" 
          inet adr:10.0.2.15  Bcast:10.0.2.255  Masque:255.255.255.0
          adr inet6: fe80::a00:27ff:fe2a:25c/64 Scope:Lien
root@debian:~# ifconfig eth0 | grep "inet" | grep -v "inet6"
          inet adr:10.0.2.15  Bcast:10.0.2.255  Masque:255.255.255.0
root@debian:~# ifconfig eth0 | grep "inet" | grep -v "inet6" | tr -s " " ":"
:inet:adr:10.0.2.15:Bcast:10.0.2.255:Masque:255.255.255.0
root@debian:~# ifconfig eth0 | grep "inet" | grep -v "inet6" | tr -s " " ":" | cut -d: -f4
10.0.2.15

<note important> Notez l'utilisation de l'option -s avec la commande tr. Cette option permet de remplacer une suite de x caractères identiques par un seul caractère. </note>

Options de la commande

Les options de cette commande sont :

root@debian:~# tr --help
Utilisation : tr [OPTION]... SET1 [SET2]
Converti, compresse et/ou élimine des caractères de l'entrée standard en
écrivant sur la sortie standard.

  -c, -C, --complement    complément à un de SET1 
  -d, --delete            supprime les caractères de SET1, ne convertit
                          pas
  -s, --squeeze-repeats   remplace chaque séquence en entrée de caractères
                          répétés qui apparaît dans SET1 par une seule
                          occurence de ce caractère
  -t, --truncate-set1     tronque d'abord SET1 à la longueur de SET2
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Les ENSEMBLES sont spécifiés comme des chaînes de caractères.
La plupart se représente eux-mêmes.
Les séquences d'interprétation sont les suivantes :

  \NNN            caractère ayant la valeur octale NNN (1 à 3 chiffres octaux)
  \\              barre oblique inverse
  \a              alerte sonore 
  \b              retour arrière
  \f              saut de page
  \n              saut de ligne
  \r              retour
  \t              saut horizontal
  \v              saut vertical
  CHAR1-CHAR2     tous les caractères de CHAR1 à CHAR2 en ordre croissant
  [CHAR*]         dans SET2, copie de CHAR jusqu'à longueur de SET1
  [CHAR*REPEAT]   REPEAT copies de CHAR, REPEAT est un octal s'il débute par 0
  [:alnum:]       toutes les lettres et les chiffres
  [:alpha:]       toutes les lettres
  [:blank:]       tous les blancs horizontaux
  [:cntrl:]       tous les caractères de contrôle
  [:digit:]       tous les chiffres
  [:graph:]       tous les caractères imprimables, sans inclure les blancs
  [:lower:]       tous les lettres minuscules
  [:print:]       tous les caractères imprimables, incluant les blancs
  [:punct:]       tous les caractères de ponctuation
  [:space:]       tous les sauts verticaux ou horizontaux
  [:upper:]       toutes les lettres majuscules
  [:xdigit:]      tous les chiffres hexadécimaux
  [=CHAR=]        tous les caractères équivalents à CHAR

La conversion se fait si -d n'est pas donné et si à la fois, SET1 et SET2
apparaissent. -t peut être employé seulement en conversion. SET2 est adapté à
la longueur de SET1 par la répétition de son dernier caractère. Les caratères
en excédents de SET2 sont ignorés. Seulement [:lower:] et [:upper:] offre la
garantie de l'expansion dans l'ordre ascendant ; utilisé dans SET2 durant la
conversion, ils ne devraient être pas utilisés que par paires pour spécifier
le changement de casse. -s emploie SET1 s'il n'y a pas de conversion, ni de
suppression ; sinon la compression emploie SET2 et intervient après la
conversion et la suppression.

Signalez les anomalies de « tr » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « tr » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'tr invocation' »

La Commande paste

La commande paste concatène les lignes de n fichiers. Par exemple :

root@debian:~# paste -d: /etc/passwd /etc/shadow
root:x:0:0:root:/root:/bin/bash:root:$6$fPk.t6Kf$V8EJWK3gMvt/FK3096D91v1phWzqvfsNyt9RcyhqMNqKgSgi.PsFJJrb6sddCII4CeiXTzOkNHykJt.HRJjGB.:15088:0:99999:7:::
daemon:x:1:1:daemon:/usr/sbin:/bin/sh:daemon:*:15088:0:99999:7:::
bin:x:2:2:bin:/bin:/bin/sh:bin:*:15088:0:99999:7:::
sys:x:3:3:sys:/dev:/bin/sh:sys:*:15088:0:99999:7:::
sync:x:4:65534:sync:/bin:/bin/sync:sync:*:15088:0:99999:7:::
games:x:5:60:games:/usr/games:/bin/sh:games:*:15088:0:99999:7:::
man:x:6:12:man:/var/cache/man:/bin/sh:man:*:15088:0:99999:7:::
lp:x:7:7:lp:/var/spool/lpd:/bin/sh:lp:*:15088:0:99999:7:::
mail:x:8:8:mail:/var/mail:/bin/sh:mail:*:15088:0:99999:7:::
news:x:9:9:news:/var/spool/news:/bin/sh:news:*:15088:0:99999:7:::
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh:uucp:*:15088:0:99999:7:::
proxy:x:13:13:proxy:/bin:/bin/sh:proxy:*:15088:0:99999:7:::
www-data:x:33:33:www-data:/var/www:/bin/sh:www-data:*:15088:0:99999:7:::
backup:x:34:34:backup:/var/backups:/bin/sh:backup:*:15088:0:99999:7:::
list:x:38:38:Mailing List Manager:/var/list:/bin/sh:list:*:15088:0:99999:7:::
irc:x:39:39:ircd:/var/run/ircd:/bin/sh:irc:*:15088:0:99999:7:::
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh:gnats:*:15088:0:99999:7:::
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh:nobody:*:15088:0:99999:7:::
libuuid:x:100:101::/var/lib/libuuid:/bin/sh:libuuid:!:15088:0:99999:7:::
messagebus:x:101:103::/var/run/dbus:/bin/false:messagebus:*:15088:0:99999:7:::
Debian-exim:x:102:104::/var/spool/exim4:/bin/false:Debian-exim:!:15088:0:99999:7:::
statd:x:103:65534::/var/lib/nfs:/bin/false:statd:*:15088:0:99999:7:::
avahi:x:104:107:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false:avahi:*:15088:0:99999:7:::
usbmux:x:105:46:usbmux daemon,,,:/home/usbmux:/bin/false:usbmux:*:15088:0:99999:7:::
Debian-gdm:x:106:114:Gnome Display Manager:/var/lib/gdm3:/bin/false:Debian-gdm:*:15088:0:99999:7:::
saned:x:107:116::/home/saned:/bin/false:saned:*:15088:0:99999:7:::
hplip:x:108:7:HPLIP system user,,,:/var/run/hplip:/bin/false:hplip:*:15088:0:99999:7:::
trainee:x:1000:1000:trainee,,,:/home/trainee:/bin/bash:trainee:$6$6Ie1tC6k$njVbKQWFCBrfXKB9ewRxuaE18kSE95Mkp8N3C/daikawoVERSO8UUONuGpeGS5rjTcKwcdlL6e2Y2z8YOs1Vx.:15088:0:99999:7:::
vboxadd:x:999:1::/var/run/vboxadd:/bin/false:vboxadd:!:15091::::::

Options de la commande

Les options de cette commande sont :

root@debian:~# paste --help
Utilisation : paste [OPTION]... [FILE]...
Écrit séquentiellement les lignes correspondantes de chaque
FILE, séparées par des tabulations, vers la sortie standard.
Sans FILE, ou quand FILE est -, lit l'entrée standard.

Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
  -d, --delimiters=LIST   utilise les caractères de LIST au lieu de tabulations
  -s, --serial            copie un seul fichier à la fois au lieu de le faire
                          en parallèle
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Signalez les anomalies de « paste » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « paste » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'paste invocation' »

La Commande split

La commande split est utilisée pour découper de grands fichiers en petit morceaux d'un taille fixe ou d'un nombre de lignes fixe.

Créez d'abord un fichier d'une taille de 250Mo :

root@debian:~# dd if=/dev/zero of=/file bs=1024k count=250
250+0 enregistrements lus
250+0 enregistrements écrits
262144000 octets (262 MB) copiés, 0,747337 s, 351 MB/s

Utilisez maintenant la commande split pour diviser ce fichier en morceaux de 50 Mo :

root@debian:~# split -b 50m /file filepart
root@debian:~# ls -l | grep filepart
-rw-r--r-- 1 root root 52428800 17 mai   11:53 filepartaa
-rw-r--r-- 1 root root 52428800 17 mai   11:53 filepartab
-rw-r--r-- 1 root root 52428800 17 mai   11:53 filepartac
-rw-r--r-- 1 root root 52428800 17 mai   11:53 filepartad
-rw-r--r-- 1 root root 52428800 17 mai   11:53 filepartae

<note important> Notez que cinq morceaux ont été créés dans le répertoire courant. </note>

Reconstruisez simplement le fichier avec la commande cat :

root@debian:~# cat fileparta* > newfile
root@debian:~# ls -l | grep new
-rw-r--r-- 1 root root 262144000 17 mai   11:54 newfile

Options de la commande

Les options de cette commande sont :

root@debian:~# split --help
Utilisation : split [OPTION]... [INPUT [PREFIX]]
Affiche sur la sortie des morceaux de INPUT de taille fixe selon PREFIXaa,
PREFIXab, ... ; par défaut la taille est de 1000 lignes et le préfixe par
défaut est « x ».
Sans INPUT ou quand INPUT est -, la lecture se fait sur l'entrée standard.

Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
  -a, --suffix-length=N   utilise les suffixes de longueur N (par défaut 2)
  -b, --bytes=BYTES       écrit BYTES octets par fichier de sortie
  -C, --line-bytes=SIZE   écrit au plus SIZE octets par ligne par fichier de
                          sortie
  -d, --numeric-suffixes  utilise des suffixes numériques et non alphabétiques
  -l, --lines=NUMBER      écrit NUMBER lignes par fichier de sortie
      --verbose           affiche un diagnostic juste avant chaque ouverture de
                          fichier de sortie
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

SIZE peut être (ou un entier optionnellement suivi par) l'une des valeurs
suivantes : kB 1000, K 1024, MB 1000*1000, M 1024*1024 et ainsi de suite pour
G, T, P, E, Z et Y.

Signalez les anomalies de « split » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « split » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'split invocation' »

La Commande diff

La commande diff indique les modifications à apporter à deux fichiers pour que ceux-ci soient identique.

Pour commencer, copiez le fichier /etc/passwd vers le répertoire /root :

[root@centos ~]# cp /etc/passwd /root

Modifiez ensuite le fichier la ligne trainee du fichier /root/passwd ainsi :

...
trainee10:x:1000:1000:trainee,,,:/home/trainee:/bin/bash
...

Supprimez les lignes statd et avahi dans le fichier /root/passwd et ajoutez en fin de fichier la ligne suivante :

...
Linux est super!

Comparez maintenant les deux fichiers :

root@debian:~# diff /etc/passwd /root/passwd
22,23d21
< statd:x:103:65534::/var/lib/nfs:/bin/false
< avahi:x:104:107:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
28c26
< trainee:x:1000:1000:trainee,,,:/home/trainee:/bin/bash
---
> trainee10:x:1000:1000:trainee,,,:/home/trainee:/bin/bash
29a28
> Linux est super!

Dans cette sortie on constate le caractère < et le caractère >. Le premier indique le premier fichier qui a suivi la commande diff tandis que le deuxième indique le deuxième fichier.

Le message 22,23d21 indique qu'il faut supprimer les lignes 22 et 23 dans /etc/passwd car elle n'existent pas après la ligne 21 dans le fichier /root/passwd.

Le message 28c26 indique qu'il faut changer la ligne 28 dans /etc/passwd afin que celle-ci corresponde à la ligne 26 dans /root/passwd.

Le message 29a28 indique qu'à la ligne 29 dans /etc/passwd il faut ajouter la ligne 28 de /root/passwd.

Inversez maintenant l'ordre de comparaison :

root@debian:~# diff /root/passwd /etc/passwd
21a22,23
> statd:x:103:65534::/var/lib/nfs:/bin/false
> avahi:x:104:107:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
26c28
< trainee10:x:1000:1000:trainee,,,:/home/trainee:/bin/bash
---
> trainee:x:1000:1000:trainee,,,:/home/trainee:/bin/bash
28d29
< Linux est super!

<note important> Notez que les messages sont maintenant inversés. </note>

Options de la commande

Les options de cette commande sont :

root@debian:~# diff --help
Usage: diff [OPTION]... FICHIERS
Comparer les fichiers ligne par ligne

  -i  --ignore-case  ignorer les différences de casses dans le contenu des fichi
ers
  --ignore-file-name-case  ignorer la casse lors de la comparaison des noms de f
ichiers
  --no-ignore-file-name-case  tenir compte de la casse lors de la comparaison de
s noms de fichiers
  -E  --ignore-tab-expansion  ignorer les changements liés à l'expansion des tab
ulations
  -b  --ignore-space-change  ignorer les changements dans l'espacement
  -w  --ignore-all-space  ignorer tout blanc d'espacement
  -B  --ignore-blank-lines  ignorer les changements dont toutes les lignes sont 
blanches
  -I EXPREG  --ignore-matching-lines=EXPREG  ignorer les différences dont les li
gnes concordent à l'EXPression RÉGulière
  --strip-trailing-cr  éliminer les retours de chariot de l'entrée.
  -a  --text  traiter tous les fichiers comme des textes.

  -c  -C N    --context[=N]     afficher N lignes de contexte (3 par défaut)
  -u  -U N    --unified[=N]     afficher N lignes du contexte unifié (3 par défa
ut)
    --label ÉTIQ                utiliser l'ÉTIQuette comme nom de fichier.
    -p       --show-c-function  identifier la fonction contenant chaque différen
ce.
    -F EXPREG
             --show-function-line=EXPREG
                                afficher la ligne la plus récente qui concorde
                                avec l'EXPression RÉGulière
  -q  --brief  indiquer seulement si les fichiers diffèrent ou non
  -e  --ed  générer un script pour « ed »
  --normal  produire un « diff » en format normal
  -n  --rcs  générer un fichier  de type « diff » en format RCS
  -y  --side-by-side         afficher la sortie sur deux colonnes
    -w N    --width=N        limiter la sortie à N caractères par ligne (130 par
 défaut)
    --left-column            afficher seulement la colonne de gauche pour les li
gnes identiques
    --suppress-common-lines  ne pas afficher les lignes identiques
  -D NOM   --ifdef=NOM   afficher la fusion des fichiers en indiquant les différ
ences par des « #ifdef NAME » dans le « diff » produit
  --GTYPE-group-format=GFMT  similaire, mais formater les groupes
                             d'entrée GTYPE avec GFMT
  --line-format=LFMT  similaire, mais formater toutes les lignes d'entrée avec L
FMT
  --LTYPE-line-format=LFMT  similaire, mais formater les lignes
                            d'entrée LTYPE avec LFMT
LTYPE peut être soit « old », « new », ou « unchanged ».  GTYPE prend une des va
leurs de LTYPE ou « changed ».
  GFMT peut contenir:
    %<  pour marquer les lignes du FICHIER1
    %>  pour marquer les lignes du FICHIER2
    %=  pour marquer les lignes identiques entre FICHIER1 et FICHIER2
    %[-][LARGEUR][.[PREC]]{doxX}LETTRE, les spécifications de LETTRE
      sont identiques à la notation que l'on retrouve dans « printf() »
      dont les codes possibles de LETTRE sont
      en majuscule pour le nouveau groupe, 
      en minuscules pour l'ancien groupe:
        F  numéro de la première ligne
        L  numéro de la dernière ligne
        N  nombre de lignes = L-F+1
        E  F-1
        M  L+1
  LFMT peut contenir:
    %L                             pour le contenu de la ligne
    %l                             pour le contenu de la ligne sans fin de ligne
    %[-][LARGEUR][.[PREC]]{doxX}n  la spécification du numéro de ligne
                                   d'entrée selon le format de printf()
  GFMT ou LFMT peuvent contenir:
    %%  %
    %c« C »     le caractère « C » lui-même
    %c'\OOO» le caractère dont le code octal est OOO

  -l  --paginate  relayer la sortie à « pr » afin de la paginer
  -t  --expand-tabs  étaler les tabulateurs en espaces dans la sortie.
  -T  --initial-tab  aligner les tabulateurs par l'ajout d'un tabulateur de préf
ixe
  --tabsize=N    les balises de tabulation sont à chaque N (8 par défaut) colonn
es.
  --suppress-blank-empty  Suppress space or tab before empty output lines.

  -r  --recursive  comparer récursivement les sous-répertoires présents
  -N  --new-file  traiter les fichiers absents comme des fichiers vides
  --unidirectional-new-file      traiter les fichiers absents comme vides
  -s  --report-identical-files  indiquer si les deux fichiers sont identiques
  -x PAT  --exclude=PAT  exclure les fichiers dont les noms concordent avec le P
ATron
  -X FICHIER --exclude-from=FICHIER  exclure les fichiers dont les noms
                                     concordent à ceux contenus dans le FICHIER
  -S FICHIER  --starting-file=FICHIER  débuter la comparaison des
                                       répertoires par le FICHIER
  --from-file=FICHIER1
                     comparer le FICHIER1 à toutes les opérandes.
                     FICHIER1 peut être un répertoire.
  --to-file=FICHIER2
                     comparer toutes les opérandes à FICHIER2.
                     FICHIER2 peut être un répertoire.

  --horizon-lines=N   retenir N lignes ayant des préfixes et suffixes identiques
  -d  --minimal  si possible afficher le plus petit ensemble de différences.
  --speed-large-files  traiter de grands fichiers et ayant plusieurs petits chan
gements dispersés

  -v  --version  afficher le nom et la version du logiciel
  --help               afficher l'aide-mémoire

FICHIERS sont « FICHIER1 FICHIER2 » ou « RÉP1 RÉP2 » ou « RÉP FICHIER... » ou «F
ICHIER... RÉP'.
Si --from-file ou --to-file est fournie, il n'y a pas de restriction sur les FIC
HIERS.
Si le FICHIER spécifié est « - » alors lire de l'entrée standard.
Le statut de fin d'exécution est 0 si les entrées sont les mêmes, 1 si différent
es et 2 si problématiques

  --to-file=FICHIER2
                     comparer toutes les opérandes à FICHIER2.
                     FICHIER2 peut être un répertoire.

  --horizon-lines=N   retenir N lignes ayant des préfixes et suffixes identiques
  -d  --minimal  si possible afficher le plus petit ensemble de différences.
  --speed-large-files  traiter de grands fichiers et ayant plusieurs petits chan
gements dispersés

  -v  --version  afficher le nom et la version du logiciel
  --help               afficher l'aide-mémoire

FICHIERS sont « FICHIER1 FICHIER2 » ou « RÉP1 RÉP2 » ou « RÉP FICHIER... » ou «F
ICHIER... RÉP'.
Si --from-file ou --to-file est fournie, il n'y a pas de restriction sur les FIC
HIERS.
Si le FICHIER spécifié est « - » alors lire de l'entrée standard.
Le statut de fin d'exécution est 0 si les entrées sont les mêmes, 1 si différent
es et 2 si problématiques

Report bugs to: bug-diffutils@gnu.org
GNU diffutils home page: <http://www.gnu.org/software/diffutils/>
General help using GNU software: <http://www.gnu.org/gethelp/>

La Commande cmp

La commande cmp compare les fichiers caractère par caractère. Par défaut la commande s'arrête à la première différence rencontrée :

root@debian:~# cmp /root/passwd /etc/passwd
/root/passwd /etc/passwd sont différents: octet 860, ligne 22

L'option -l de la commande indique toutes les différences en trois colonnes :

root@debian:~# cmp -l /root/passwd /etc/passwd | more
 860 165 163
 861 163 164
 862 142 141
 863 155 164
 864 165 144
 865 170  72
 866  72 170
 867 170  72
 868  72  61
 869  61  60
 870  60  63
 871  65  72
 872  72  66
 873  64  65
 874  66  65
 875  72  63
 876 165  64
 877 163  72
 878 142  72
 879 155  57
 880 165 166
 881 170 141
 882  40 162
--More--cmp: Fin-de-fichier (EOF) sur /root/passwd

La première colonne représente le numéro de caractère, la deuxième la valeur octale ASCII du caractère dans le fichier /root/passwd et la troisième la valeur octale ASCII du caractère dans le fichier /etc/passwd.

Options de la commande

Les options de cette commande sont :

root@debian:~# cmp --help
Usage: cmp [OPTION]... FICHIER1 [FICHIER2 [SAUT1 [SAUT2]]]
Comparer deux fichiers octet par octet

  -b  --print-bytes  afficher les octets qui diffèrent
  -i N  --ignore-initial=N  escamoter les N premiers octets à l'entrée
  -i SAUT1:SAUT2        --ignore-initial=SAUT1:SAUT2
    escamoter les SAUT1 premiers octets du FICHIER1 et les SAUT2 premiers octets du FICHIER2
  -l  --verbose  afficher les numéros d'octets et les valeurs de tous les octets qui diffèrent
  -n LIMITE --bytes=LIMITE comparer un nombre d'octets selon la LIMITE.
  -s  --quiet  --silent  ne rien afficher, produire seulement un constat de fin d'exécution
  -v  --version  afficher le nom et la version du logiciel
  --help               afficher l'aide-mémoire

SAUT1 et SAUT2 correspondent au nombre d'octets à escamoter dans chaque fichier
valeurs de SAUT peuvent être suivies par un des suffixes multiplicateurs suivants:
kB 1000, K 1024, MB 1,000,000, M 1,048,576,
GB 1,000,000,000, G 1,073,741,824, et ainsi de suite pour T, P, E, Z, Y.

Si FICHIER spécifié est « - » ou manquant, lire de l'entrée standard
Le statut de fin d'exécution est 0 si les entrées sont les mêmes, 1 si différentes et 2 si problématiques

Report bugs to: bug-diffutils@gnu.org
GNU diffutils home page: <http://www.gnu.org/software/diffutils/>
General help using GNU software: <http://www.gnu.org/gethelp/>

La commande patch

La commande patch est utilisée pour appliquer des modifications à un fichier à partir d'un fichier patch qui contient les différences entre le contenu de l'ancienne version du fichier et la nouvelle version.

Rappelez-vous des modifications apportées au fichier /tmp/greptest :

root@debian:~# cat /tmp/greptest
# Commentaire du début
^ voici une ligne pour la recherche fgrep
fenestrOS
fenestros
# Un autre commentaire
555-5555
f

.fenestros

.fe

£
# Commentaire de la fin
root@debian:~# cat /tmp/greptest1
fenestrOS
fenestros
555-5555
f
.fenestros
.fe
£

Afin de créer un fichier de patch, il convient d'utiliser la commande diff avec l'option -u

root@debian:~# cd /tmp
root@debian:/tmp# diff -u greptest greptest1 > greptest.patch

L'examen du fichier de patch démontre les modifications à apporter au fichier greptest :

root@debian:/tmp# cat greptest.patch
--- greptest	2012-05-17 10:54:18.000000000 +0200
+++ greptest1	2012-05-17 10:53:07.000000000 +0200
@@ -1,14 +1,7 @@
-# Commentaire du début
-^ voici une ligne pour la recherche fgrep
 fenestrOS
 fenestros
-# Un autre commentaire
 555-5555
 f
-
 .fenestros
-
 .fe
-
 £
-# Commentaire de la fin

Procédez maintenant à l'application du fichier patch :

root@debian:/tmp# patch < greptest.patch
patching file greptest

Contrôlez maintenant le contenu du fichier greptest :

root@debian:/tmp# cat greptest
fenestrOS
fenestros
555-5555
f
.fenestros
.fe
£

Options de la commande

Les options de cette commande sont :

root@debian:/tmp# cd ~
root@debian:~# patch --help
Usage: patch [OPTION]... [ORIGFILE [PATCHFILE]]

Input options:

  -p NUM  --strip=NUM  Strip NUM leading components from file names.
  -F LINES  --fuzz LINES  Set the fuzz factor to LINES for inexact matching.
  -l  --ignore-whitespace  Ignore white space changes between patch and input.

  -c  --context  Interpret the patch as a context difference.
  -e  --ed  Interpret the patch as an ed script.
  -n  --normal  Interpret the patch as a normal difference.
  -u  --unified  Interpret the patch as a unified difference.

  -N  --forward  Ignore patches that appear to be reversed or already applied.
  -R  --reverse  Assume patches were created with old and new files swapped.

  -i PATCHFILE  --input=PATCHFILE  Read patch from PATCHFILE instead of stdin.

Output options:

  -o FILE  --output=FILE  Output patched files to FILE.
  -r FILE  --reject-file=FILE  Output rejects to FILE.

  -D NAME  --ifdef=NAME  Make merged if-then-else output using NAME.
  -m  --merge  Merge using conflict markers instead of creating reject files.
  -E  --remove-empty-files  Remove output files that are empty after patching.

  -Z  --set-utc  Set times of patched files, assuming diff uses UTC (GMT).
  -T  --set-time  Likewise, assuming local time.

  --quoting-style=WORD   output file names using quoting style WORD.
    Valid WORDs are: literal, shell, shell-always, c, escape.
    Default is taken from QUOTING_STYLE env variable, or 'shell' if unset.

Backup and version control options:

  -b  --backup  Back up the original contents of each file.
  --backup-if-mismatch  Back up if the patch does not match exactly.
  --no-backup-if-mismatch  Back up mismatches only if otherwise requested.

  -V STYLE  --version-control=STYLE  Use STYLE version control.
	STYLE is either 'simple', 'numbered', or 'existing'.
  -B PREFIX  --prefix=PREFIX  Prepend PREFIX to backup file names.
  -Y PREFIX  --basename-prefix=PREFIX  Prepend PREFIX to backup file basenames.
  -z SUFFIX  --suffix=SUFFIX  Append SUFFIX to backup file names.

  -B PREFIX  --prefix=PREFIX  Prepend PREFIX to backup file names.
  -Y PREFIX  --basename-prefix=PREFIX  Prepend PREFIX to backup file basenames.
  -z SUFFIX  --suffix=SUFFIX  Append SUFFIX to backup file names.

  -g NUM  --get=NUM  Get files from RCS etc. if positive; ask if negative.

Miscellaneous options:

  -t  --batch  Ask no questions; skip bad-Prereq patches; assume reversed.
  -f  --force  Like -t, but ignore bad-Prereq patches, and assume unreversed.
  -s  --quiet  --silent  Work silently unless an error occurs.
  --verbose  Output extra information about the work being done.
  --dry-run  Do not actually change any files; just print what would happen.
  --posix  Conform to the POSIX standard.

  -d DIR  --directory=DIR  Change the working directory to DIR first.
  --reject-format=FORMAT  Create 'context' or 'unified' rejects.
  --binary  Read and write data in binary mode.

  -v  --version  Output version info.
  --help  Output this help.

Report bugs to <bug-patch@gnu.org>.

La commande strings

La commande strings est utilisée pour trouver toutes les chaînes de caractères qui peuvent être imprimés dans un ou plusieurs fichiers objets ou exécutables passés en argument. Un fichier objet est un fichier intermédiaire intervenant dans le processus de compilation.

Sous Linux et Unix, le format d'un fichier objet est le format ELF, (Executable and Linkable Format). Ce format est aussi utilisé pour :

Sans option, la commande strings trouve toutes les chaînes d'une longueur de 4 caractères ou plus suivies par un caractère non-imprimable :

root@debian:~# strings /usr/bin/passwd | more
/lib/ld-linux.so.2
libpam.so.0
__gmon_start__
_Jv_RegisterClasses
pam_start
pam_strerror
pam_chauthtok
pam_end
libpam_misc.so.0
misc_conv
libselinux.so.1
_init
is_selinux_enabled
security_getenforce
context_user_get
security_compute_av
getfscreatecon
fgetfilecon
freecon
context_free
setfscreatecon
context_new
getprevcon
--More--

L'option -t de la commande retourne, en plus des chaînes concernées, la position de décalage pour chaque ligne sur laquelle une ou plusieurs chaînes se trouvent :

root@debian:~# strings -t d /usr/bin/passwd | more
    276 /lib/ld-linux.so.2
   3209 libpam.so.0
   3221 __gmon_start__
   3236 _Jv_RegisterClasses
   3256 pam_start
   3266 pam_strerror
   3279 pam_chauthtok
   3293 pam_end
   3301 libpam_misc.so.0
   3318 misc_conv
   3328 libselinux.so.1
   3344 _init
   3350 is_selinux_enabled
   3369 security_getenforce
   3389 context_user_get
   3406 security_compute_av
   3426 getfscreatecon
   3441 fgetfilecon
   3453 freecon
   3461 context_free
   3474 setfscreatecon
   3489 context_new
   3501 getprevcon
--More--

L'option -t prend un de trois arguments qui indique le système de numérotation à utiliser :

Argument Système de Numérotation
d Décimal
o Octal
x Héxadécimal

L'option -n de la commande permet de modifier le nombre de caractères minimales dans les chaînes recherchées :

root@debian:~# strings -t d -n 15 /usr/bin/passwd | more
    276 /lib/ld-linux.so.2
   3236 _Jv_RegisterClasses
   3301 libpam_misc.so.0
   3328 libselinux.so.1
   3350 is_selinux_enabled
   3369 security_getenforce
   3389 context_user_get
   3406 security_compute_av
   3804 __errno_location
   4153 __libc_start_main
   4249 LIBPAM_MISC_1.0
  26896 Usage: passwd [options] [LOGIN]
  26938   -a, --all                     report password status on all accounts
  27009   -d, --delete                  delete the password for the named accoun
t
  27083   -e, --expire                  force expire the password for the named 
account
  27163   -h, --help                    display this help message and exit
  27230   -k, --keep-tokens             change password only if expired
  27294   -i, --inactive INACTIVE       set password inactive after expiration
  27365                                 to INACTIVE
  27409   -l, --lock                    lock the password of the named account
  27480   -n, --mindays MIN_DAYS        set minimum number of days before passwo
--More--

Dans le cas de l'utilisation de la commande avec plus d'un fichier, l'option -f devient très utile. Par exemple, imaginons que vous souhaitez connaître les détails disponibles des Copyright des fichiers dans /bin :

root@debian:~# strings -f /bin/* | grep "(c)"
/bin/ping: @(#) Copyright (c) 1989 The Regents of the University of California.
/bin/ping6: @(#) Copyright (c) 1989 The Regents of the University of California.

<note important> Notez que l'option -f a pour conséquence d'imprimer le nom du fichier contenant la chaîne au début de chaque ligne. </note>

Options de la commande

Les options de cette commande sont :

root@debian:~# strings --help
Usage: strings [option(s)] [file(s)]
 Display printable strings in [file(s)] (stdin by default)
 The options are:
  -a - --all                Scan the entire file, not just the data section
  -f --print-file-name      Print the name of the file before each string
  -n --bytes=[number]       Locate & print any NUL-terminated sequence of at
  -<number>                   least [number] characters (default 4).
  -t --radix={o,d,x}        Print the location of the string in base 8, 10 or 16
  -o                        An alias for --radix=o
  -T --target=<BFDNAME>     Specify the binary file format
  -e --encoding={s,S,b,l,B,L} Select character size and endianness:
                            s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit
  @<file>                   Read options from <file>
  -h --help                 Display this information
  -v -V --version           Print the program's version number
strings: supported targets: elf32-i386 a.out-i386-linux pei-i386 elf32-little elf32-big elf64-x86-64 pei-x86-64 elf64-l1om elf64-little elf64-big plugin srec symbolsrec verilog tekhex binary ihex trad-core
Report bugs to <http://www.sourceware.org/bugzilla/>

La commande comm

La commande comm est utilisée pour comparer deux fichiers texte. La sortie de la commande sépare les lignes en trois catégories :

Utilisez la commande comm pour comparer les fichiers /etc/passwd et /root/passwd :

root@debian:~# comm /etc/passwd /root/passwd
		root:x:0:0:root:/root:/bin/bash
		daemon:x:1:1:daemon:/usr/sbin:/bin/sh
		bin:x:2:2:bin:/bin:/bin/sh
		sys:x:3:3:sys:/dev:/bin/sh
		sync:x:4:65534:sync:/bin:/bin/sync
		games:x:5:60:games:/usr/games:/bin/sh
		man:x:6:12:man:/var/cache/man:/bin/sh
		lp:x:7:7:lp:/var/spool/lpd:/bin/sh
		mail:x:8:8:mail:/var/mail:/bin/sh
		news:x:9:9:news:/var/spool/news:/bin/sh
		uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
		proxy:x:13:13:proxy:/bin:/bin/sh
		www-data:x:33:33:www-data:/var/www:/bin/sh
		backup:x:34:34:backup:/var/backups:/bin/sh
		list:x:38:38:Mailing List Manager:/var/list:/bin/sh
		irc:x:39:39:ircd:/var/run/ircd:/bin/sh
		gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
		nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
		libuuid:x:100:101::/var/lib/libuuid:/bin/sh
		messagebus:x:101:103::/var/run/dbus:/bin/false
		Debian-exim:x:102:104::/var/spool/exim4:/bin/false
statd:x:103:65534::/var/lib/nfs:/bin/false
comm: fichier 1 n'est pas dans l'ordre attendu
avahi:x:104:107:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
		usbmux:x:105:46:usbmux daemon,,,:/home/usbmux:/bin/false
comm: fichier 2 n'est pas dans l'ordre attendu
		Debian-gdm:x:106:114:Gnome Display Manager:/var/lib/gdm3:/bin/false
		saned:x:107:116::/home/saned:/bin/false
		hplip:x:108:7:HPLIP system user,,,:/var/run/hplip:/bin/false
	trainee10:x:1000:1000:trainee,,,:/home/trainee:/bin/bash
trainee:x:1000:1000:trainee,,,:/home/trainee:/bin/bash
		vboxadd:x:999:1::/var/run/vboxadd:/bin/false
	Linux est super!

Pour afficher uniquement les lignes présentes dans les deux fichiers, il convient d'utiliser les options -1 et -2 :

root@debian:~# comm -12 /etc/passwd /root/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
messagebus:x:101:103::/var/run/dbus:/bin/false
Debian-exim:x:102:104::/var/spool/exim4:/bin/false
comm: fichier 1 n'est pas dans l'ordre attendu
usbmux:x:105:46:usbmux daemon,,,:/home/usbmux:/bin/false
comm: fichier 2 n'est pas dans l'ordre attendu
Debian-gdm:x:106:114:Gnome Display Manager:/var/lib/gdm3:/bin/false
saned:x:107:116::/home/saned:/bin/false
hplip:x:108:7:HPLIP system user,,,:/var/run/hplip:/bin/false
vboxadd:x:999:1::/var/run/vboxadd:/bin/false

Options de la commande

Les options de cette commande sont :

root@debian:~# comm --help
Utilisation : comm [OPTION]... FILE1 FILE2
Compare les fichiers triés FILE1 et FILE2 ligne à ligne.

Sans option, l'affichage s'effectue sur 3 colonnes. La première colonne 
contient les lignes uniques de FILE1, la seconde contient les lignes uniques de
FILE2, et la troisième contient les lignes communes aux deux fichiers.

  -1              supprime la colonne 1 (lignes uniques de FILE1)
  -2              supprime la colonne 2 (lignes uniques de FILE2)
  -3              supprime la colonne 3 (lignes présentes dans les 2 fichiers)

  --check-order     vérifie que l'entrée est correctement triée, même
                    si toutes les lignes en entrée sont appairées
  --nocheck-order   ne vérifie pas que l'entrée est correctement triée
  --output-delimiter=STR  sépare les colonnes avec STR
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Note, les comparaisons honorent les règles définies par « LC_COLLATE ».

Exemples :
  comm -12 file1 file2  affiche seulement les lignes présentes à la fois dans
                      file1 and file2.
  comm -3  file1 file2  affiche les lignes dans file1 qui ne sont pas dans file2,
                      et vice versa.

Signalez les anomalies de « comm » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « comm » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'comm invocation' »

La commande head

La commande head permet d'afficher les x premières lignes d'un fichier. Sans options, la valeur de x est de 10 par défaut :

root@debian:~# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh

Avec l'option -n, la valeur de x peut être spécifiée :

root@debian:~# head -n 15 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh

La commande head peut également être utilisée pour afficher les premiers y octets en utilisant l'option -c :

root@debian:~# head -c 150 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/root@debian:~# 

Dans le cas où le y est négatif, la commande head affiche tous les octets du fichier sauf les derniers y octets :

root@debian:~# head -c -150 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
messagebus:x:101:103::/var/run/dbus:/bin/false
Debian-exim:x:102:104::/var/spool/exim4:/bin/false
statd:x:103:65534::/var/lib/nfs:/bin/false
avahi:x:104:107:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
usbmux:x:105:46:usbmux daemon,,,:/home/usbmux:/bin/false
Debian-gdm:x:106:114:Gnome Display Manager:/var/lib/gdm3:/bin/false
saned:x:107:116::/home/saned:/bin/false
hplip:x:108root@debian:~# 

Les valeurs x et y acceptent des multiplicateurs :

root@debian:~# head -c 1b /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:root@debian:~# head -c 512 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:root@debian:~# 

Les multiplicateurs les plus utilisés sont :

Multiplicateur Valeur en octets
b 512
KB 1000
K 1024
MB 1000*1000
M 1024*1024
GB 1000*1000*1000
G 1024*1024*1024

Options de la commande

Les options de la commande sont :

root@debian:~# head --help
Utilisation : head [OPTION]... [FILE]...
Affiche les 10 premières lignes de chaque FILE sur la sortie standard.
Chaque fichier est précédé d'une en-tête avec son nom, si plusieurs fichiers.
En l'absence de FILE, ou quand FILE est -, lit de l'entrée standard.

Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
  -c, --bytes=[-]K        affiche les premiers K octets de chaque fichier ;
                          lorsque le préfixe « - » est présent, affiche tous les
                          octets sauf les derniers K octets de chaque fichier 
  -n, --lines=[-]K        affiche les K premières lignes au lieu des 10 premières ;
                          lorsque le préfixe « - » est présent, affiche toutes
                          les lignes sauf les N dernières de chaque fichier
  -q, --quiet, --silent    n'affiche pas les en-têtes avec les noms de fichier
  -v, --verbose            affiche toujours les en-têtes avec les noms de
                           fichier
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

K peut avoir un suffixe multiplicateur :
b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,
GB 1000*1000*1000, G 1024*1024*1024, et ainsi de suite pour T, P, E, Z, Y.

Signalez les anomalies de « head » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « head » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'head invocation' »

La commande tail

La commande tail permet d'afficher les x dernières lignes d'un fichier. Sans options, la valeur de x est de 10 par défaut :

root@debian:~# tail /etc/passwd
messagebus:x:101:103::/var/run/dbus:/bin/false
Debian-exim:x:102:104::/var/spool/exim4:/bin/false
statd:x:103:65534::/var/lib/nfs:/bin/false
avahi:x:104:107:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
usbmux:x:105:46:usbmux daemon,,,:/home/usbmux:/bin/false
Debian-gdm:x:106:114:Gnome Display Manager:/var/lib/gdm3:/bin/false
saned:x:107:116::/home/saned:/bin/false
hplip:x:108:7:HPLIP system user,,,:/var/run/hplip:/bin/false
trainee:x:1000:1000:trainee,,,:/home/trainee:/bin/bash
vboxadd:x:999:1::/var/run/vboxadd:/bin/false

Avec l'option -n, la valeur de x peut être spécifiée :

root@debian:~# tail -n 15 /etc/passwd
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
messagebus:x:101:103::/var/run/dbus:/bin/false
Debian-exim:x:102:104::/var/spool/exim4:/bin/false
statd:x:103:65534::/var/lib/nfs:/bin/false
avahi:x:104:107:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
usbmux:x:105:46:usbmux daemon,,,:/home/usbmux:/bin/false
Debian-gdm:x:106:114:Gnome Display Manager:/var/lib/gdm3:/bin/false
saned:x:107:116::/home/saned:/bin/false
hplip:x:108:7:HPLIP system user,,,:/var/run/hplip:/bin/false
trainee:x:1000:1000:trainee,,,:/home/trainee:/bin/bash
vboxadd:x:999:1::/var/run/vboxadd:/bin/false

La commande tail peut également être utilisée pour afficher les derniers y octets en utilisant l'option -c :

root@debian:~# tail -c 150 /etc/passwd
:7:HPLIP system user,,,:/var/run/hplip:/bin/false
trainee:x:1000:1000:trainee,,,:/home/trainee:/bin/bash
vboxadd:x:999:1::/var/run/vboxadd:/bin/false

Dans le cas où le y est positif, la commande tail affiche tous les octets du fichier à partir de la position de yième octet :

root@debian:~# tail -c +150 /etc/passwd
/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
messagebus:x:101:103::/var/run/dbus:/bin/false
Debian-exim:x:102:104::/var/spool/exim4:/bin/false
statd:x:103:65534::/var/lib/nfs:/bin/false
avahi:x:104:107:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
usbmux:x:105:46:usbmux daemon,,,:/home/usbmux:/bin/false
Debian-gdm:x:106:114:Gnome Display Manager:/var/lib/gdm3:/bin/false
saned:x:107:116::/home/saned:/bin/false
hplip:x:108:7:HPLIP system user,,,:/var/run/hplip:/bin/false
trainee:x:1000:1000:trainee,,,:/home/trainee:/bin/bash
vboxadd:x:999:1::/var/run/vboxadd:/bin/false

Les valeurs x et y acceptent des multiplicateurs :

root@debian:~# tail -c 1b /etc/passwd
r/run/dbus:/bin/false
Debian-exim:x:102:104::/var/spool/exim4:/bin/false
statd:x:103:65534::/var/lib/nfs:/bin/false
avahi:x:104:107:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
usbmux:x:105:46:usbmux daemon,,,:/home/usbmux:/bin/false
Debian-gdm:x:106:114:Gnome Display Manager:/var/lib/gdm3:/bin/false
saned:x:107:116::/home/saned:/bin/false
hplip:x:108:7:HPLIP system user,,,:/var/run/hplip:/bin/false
trainee:x:1000:1000:trainee,,,:/home/trainee:/bin/bash
vboxadd:x:999:1::/var/run/vboxadd:/bin/false
root@debian:~# tail -c 512 /etc/passwd
r/run/dbus:/bin/false
Debian-exim:x:102:104::/var/spool/exim4:/bin/false
statd:x:103:65534::/var/lib/nfs:/bin/false
avahi:x:104:107:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
usbmux:x:105:46:usbmux daemon,,,:/home/usbmux:/bin/false
Debian-gdm:x:106:114:Gnome Display Manager:/var/lib/gdm3:/bin/false
saned:x:107:116::/home/saned:/bin/false
hplip:x:108:7:HPLIP system user,,,:/var/run/hplip:/bin/false
trainee:x:1000:1000:trainee,,,:/home/trainee:/bin/bash
vboxadd:x:999:1::/var/run/vboxadd:/bin/false

Les multiplicateurs les plus utilisés sont :

Multiplicateur Valeur en octets
b 512
KB 1000
K 1024
MB 1000*1000
M 1024*1024
GB 1000*1000*1000
G 1024*1024*1024

Une option intéressante pour la surveillance des fichiers de journalisation est -f. Cette option met à jour l'affichage au fur et au mesure que le fichier est mis à jour :

root@debian:~# tail -f /var/log/messages
May 17 10:22:27 debian kernel: [    6.300011] [drm] Initialized vboxvideo 1.0.0 20090303 for 0000:00:02.0 on minor 0
May 17 10:42:25 debian rsyslogd: -- MARK --
May 17 11:02:25 debian rsyslogd: -- MARK --
May 17 11:22:25 debian rsyslogd: -- MARK --
May 17 11:42:25 debian rsyslogd: -- MARK --
May 17 12:02:25 debian rsyslogd: -- MARK --
May 17 12:22:26 debian rsyslogd: -- MARK --
May 17 12:42:26 debian rsyslogd: -- MARK --
May 17 13:02:26 debian rsyslogd: -- MARK --
May 17 13:22:26 debian rsyslogd: -- MARK --
^C

Options de la commande

root@debian:~# tail --help
Utilisation : tail [OPTION]... [FILE]...
Affiche les 10 dernières lignes de chaque FILE sur la sortie standard.
Avec plusieurs fichiers FILE, précéde chacun d'une en-tête donnant le nom.
En l'absence de FILE, ou quand FILE est -, lit l'entrée standard.

Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
  -c, --bytes=K            affiche les K derniers octets ; il est aussi possible
                           d'utiliser -c pour afficher les octets débutant au Ke
                           de chaque fichier
  -f, --follow[={name|descriptor}]
                           affiche les données ajoutées au fur et à mesure
                           que le fichier grandit ; -f, --follow et
                           --follow=descriptor sont équivalents
  -F                       identique à --follow=name --retry
  -n, --lines=K            affiche les K dernières lignes, au lieu des 10
                           derniers ou utilisez -n +K pour afficher les lignes
                           à partir de la Ne
      --max-unchanged-stats=N
                           avec l'option --follow=name, ouvre à nouveau un FILE
                           qui n'a pas changé de taille après N itérations (par
                           défaut 5) afin de vérifier s'il a été délié ou
                           renommé (c'est le cas habituellement des fichiers
                           rotatifs de journalisation)
      --pid=PID            avec -f, termine après le processus ID, PID s'arrête
  -q, --quiet, --silent    n'affiche jamais l'en-tête qui donne les noms de
                           fichiers
      --retry              continue d'essayer à ouvrir un fichier même quand il
                           est ou devient inaccessible ; utile quand le suivi
                           s'effecture par le nom, par ex., with --follow=nom
  -s, --sleep-interval=N   avec -f, dort environ N secondes (1.0 par défaut)
                           entre les itérations
  -v, --verbose            affiche toujours les en-têtes des noms de fichier
      --help     affiche l'aide et quitte
      --version  affiche des informations de version et quitte

Si le premier caractère de K (le nombre d'octets ou de lignes) est un « + »,
affiche à partir du Ke éléments depuis le début de chaque fichier, autrement,
affiche les K derniers éléments du fichier. K peut avoir un suffixe
multiplicateur :
b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,
GB 1000*1000*1000, G 1024*1024*1024 et ainsi de suite pour T, P, E, Z, Y.

Avec l'option --follow (-f), tail utilise par défaut le descripteur de fichier,
lui ainsi permettant de suivre l'évolution du fichier ciblé même s'il change de
nom. Ce comportement par défaut n'est pas désirable lorsqu'on désire suivre
l'évolution d'un fichier à l'aide de son nom et non via le descripteur de
fichier (par ex. lors de la rotation des journaux). Dans ce cas, utilisez
--follow=name et tail suivra l'évolution du fichier en s'accomodant des
changements de nom, des suppressions ou des créations.

Signalez les anomalies de « tail » à <bug-coreutils@gnu.org>
Page d'accueil de « GNU coreutils » : <http://www.gnu.org/software/coreutils/>
Aide générale sur les logiciels GNU : <http://www.gnu.org/gethelp/>
Traduction de « tail » à <http://translationproject.org/team/fr.html>
Pour une documentation complète, lancer « info coreutils 'tail invocation' »

~~DISCUSSION:off~~

Donner votre Avis

{(rater>id=debian_6_l102|name=cette page|type=rate|trace=user|tracedetails=1)}