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 :
- 1 010 Mo de mémoire physique au total,
- 533 Mo (196+55+281) de mémoire physique utilisée et 476 Mo de mémoire physique libre,
- 1 906 Mo de mémoire swap avec 0 Mo utilisée.
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 :
- la diminution de la taille du noyau,
- la prise en charge de nouveau matériel,
- l'ajout de fonctionnalités,
- l'optimisation du code,
- la correction de bogues,
- le besoin d'une fonctionnalité expérimentale.
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 :
- lsmod
- modprobe
- insmod
- rmmod
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 :
- -h
- –help
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 :
- expressions régulières basiques, appelées ERb,
- utilisées par les commandes vi, grep, expr et sed,
- expressions régulières étendues, appelées ERe,
- utilisées par les commandes egrep ( grep -E ) et awk.
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
- Format:
- /expression régulière/ {instruction}
- Exemple:
- /ERe/ {print $0}
Une expression régulière valide pour un champ
- Format:
- $n ~/expression régulière/ {instruction}
- $n!~/expression régulière/ {instruction}
- Exemple:
- $1 ~/ERe/ {print $0}
- $1!~/ERe/ {print $0}
awk sélectionne des lignes en utilisant un opérateur de correspondance ou de non-correspondance :
Opérateur | Condition |
---|---|
~ | Correspondance |
!~ | Non-correspondance |
Une comparaison
- Format:
- $n opérateur critère de comparaison {action}
- Exemple:
- $1 > 20 {print $0}
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
- Format:
- test1 opérateur logique test2 {action}
- Exemple:
- $1 ~/ERe/ && $2 > 20 {print $0}
Les opérateurs sont :
Opérateur logique | Condition |
---|---|
|| | OU |
&& | ET |
! | NON |
Une variable interne
- Format:
- expression1, expression2 {action}
- Exemple:
- NR==7, NR==10 {print $0}
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>
- La section BEGIN
- Cette section est exécutée avant la lecture du script
- La section principale
- Cette section contient les clauses
- La section END
- Cette sectione est exécutée une fois à la fin du script
</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 :
- La ligne 3,
- Cette ligne se trouve dans la section BEGIN. Elle spécifie le séparateur de champs.
- La ligne 6,
- Cette ligne évite le traitement de toute ligne commençant par le caractère # ainsi que toute ligne vide.
- La ligne 7,
- Ce tableau a pour clef la valeur de $1, c'est-à-dire, les noms des différents types de PC. Le valeurs du tableau sont le nombre de PC vendus, ici représenté par $2. Les caractères += indique qu'à chaque traitement de ligne, le nombre de PC vendus sur la ligne doit être rajouté à la valeur déjà présente dans le tableau.
- La ligne 11,
- Cette ligne démarre une boucle for.7
- La ligne 12,
- Cette ligne utilise printf afin d'imprimer à l'écran les valeurs calculées et stockées dans le tableau.
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 :
- les exécutables,
- les bibliothèques partagés,
- les core dumps.
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 :
- Les lignes présentes seulement dans le premier fichier,
- Les lignes présentes seulement dans le deuxième fichier,
- Les lignes présentes dans la deux fichiers.
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)}