Niveau : Utilisateur | Numéro de la Leçon | Dernière Modification |
---|---|---|
1/4 | <progrecss 2/5 style=inline /> | 2020/01/30 03:28 |
<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>
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@opensuse:~> 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.
Les options de cette commande sont :
trainee@opensuse:~> 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' »
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@opensuse:~> date lun. nov. 7 11:44:24 CET 2011
Les options de cette commande sont :
trainee@opensuse:~> 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 century; like %Y, except omit last two digits (e.g., 20) %d day of month (e.g., 01) %D date; same as %m/%d/%y %e day of month, space padded; same as %_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 +hhmm numeric time zone (e.g., -0400) %:z +hh:mm numeric time zone (e.g., -04:00) %::z +hh:mm:ss numeric time zone (e.g., -04:00:00) %:::z numeric time zone with : to necessary precision (e.g., -04, +05:30) %Z alphabetic time zone abbreviation (e.g., EDT) By default, date pads numeric fields with zeroes. 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' »
Cette commande affiche les utilisateurs connectés au système:
trainee@opensuse:~> who trainee :0 2011-10-20 15:41 (console) trainee console 2011-10-20 15:41 (:0) trainee pts/0 2011-10-20 15:44 (: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 premier terminal texte (tty1). La deuxième ligne démontre que l'utilisateur trainee est connecté au pseudo-terminal texte généré par l'application Terminal GNOME (pts/0). </note>
Les options de cette commande sont :
trainee@opensuse:~> 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 -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' »
Cette commande affiche l'espace disque libre sur chacun des unités montés (connectés au système):
trainee@opensuse:~> df Sys. de fichiers 1K-blocs Utilisé Dispo. Uti% Monté sur rootfs 5036544 4560316 220384 96% / devtmpfs 500816 188 500628 1% /dev tmpfs 506160 148 506012 1% /dev/shm /dev/sda2 5036544 4560316 220384 96% / /dev/sda1 108075 29334 73161 29% /boot
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@opensuse:~> df -h Sys. de fichiers Taille Uti. Disp. Uti% Monté sur rootfs 4,9G 4,4G 216M 96% / devtmpfs 490M 188K 489M 1% /dev tmpfs 495M 148K 495M 1% /dev/shm /dev/sda2 4,9G 4,4G 216M 96% / /dev/sda1 106M 29M 72M 29% /boot
Les options de cette commande sont :
trainee@opensuse:~> 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 include dummy file systems -B, --block-size=SIZE scale sizes by SIZE before printing them. E.g., `-BM' prints sizes in units of 1,048,576 bytes. See SIZE format below. --total produce a grand total -h, --human-readable print sizes in human readable format (e.g., 1K 234M 2G) -H, --si likewise, but use powers of 1000 not 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' »
Cette commande affiche les détails de la mémoire disponible :
trainee@opensuse:~> free total used free shared buffers cached Mem: 1012320 896604 115716 0 90100 503080 -/+ buffers/cache: 303424 708896 Swap: 2047996 0 2047996
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@opensuse:~> 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@opensuse:~> free -m total used free shared buffers cached Mem: 988 874 114 0 87 491 -/+ buffers/cache: 295 693 Swap: 1999 0 1999
La sortie ci-dessus nous informe qu'il y a :
Les options de cette commande sont :
trainee@opensuse:~> 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
Cette commande affiche le nom associé à l'UID courant effectif, autrement dit, le nom de votre compte courant :
trainee@opensuse:~> whoami trainee
Devenez maintenant l'administrateur root :
trainee@opensuse:~> 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 :
opensuse:~ # whoami root
<note important> Notez maintenant que vous êtes root. </note>
Saisissiez en suite la commande exit pour redevenir l'utilisateur trainee :
opensuse:~ # exit logout
Les options de cette commande sont :
trainee@opensuse:~> 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' »
Cette commande affiche le répertoire courant de travail :
trainee@opensuse:~> pwd /home/trainee
Les options de cette commande sont :
trainee@opensuse:~> 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.
Cette commande permet de changer de répertoire courant pour le répertoire passé en argument à la commande :
trainee@opensuse:~> cd /tmp trainee@opensuse:/tmp> pwd /tmp
Les options de cette commande sont :
trainee@opensuse:/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. <code> =====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 : <code> trainee@opensuse:/tmp> ls hsperfdata_trainee keyring-eNDXzS pulse-ThNmqyY7uQEz virtual-trainee.61wRJA icedteaplugin-trainee mozilla-media-cache SimpleHelp1674393770722982080 virtual-trainee.Cufrrn jar_cache6202297203218743135.tmp netx-native-25662 SimpleHelp2670031095574134323 virtual-trainee.KXFvE2 jar_cache7316512180383045650.tmp netx-native-63491 tracker-trainee virtual-trainee.L5gYXn keyring-386sie orbit-gdm unique virtual-trainee.pMhhgn keyring-39MtBR orbit-trainee vboxguest-Module.symvers virtual-trainee.QVeXhm keyring-4Q8xoi plugtmp virtual-trainee.0Eb5WF virtual-trainee.WzpGmw keyring-6DhwTd pulse-l0HmhbrKIQBb virtual-trainee.0pd1zs
Les options de cette commande sont :
trainee@opensuse:/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 n'ignore pas les entrées débutant par . -A, --almost-all n'inclut pas dans la liste . et .. --author avec -l, affiche l'auteur de chaque fichier -b, --escape affiche les caractères non-graphiques par des échappements selon le style C --block-size=SIZE scale sizes by SIZE before printing them. E.g., `--block-size=M' prints sizes in units of 1,048,576 bytes. See SIZE format below. -B, --ignore-backups do not list implied entries ending with ~ -c with -lt: sort by, and show, ctime (time of last modification of file status information) with -l: show ctime and sort by name otherwise: sort by 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' »
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@opensuse:/tmp> touch test trainee@opensuse:/tmp> ls hsperfdata_trainee keyring-eNDXzS pulse-ThNmqyY7uQEz virtual-trainee.0pd1zs icedteaplugin-trainee mozilla-media-cache SimpleHelp1674393770722982080 virtual-trainee.61wRJA jar_cache6202297203218743135.tmp netx-native-25662 SimpleHelp2670031095574134323 virtual-trainee.Cufrrn jar_cache7316512180383045650.tmp netx-native-63491 test virtual-trainee.KXFvE2 keyring-386sie orbit-gdm tracker-trainee virtual-trainee.L5gYXn keyring-39MtBR orbit-trainee unique virtual-trainee.pMhhgn keyring-4Q8xoi plugtmp vboxguest-Module.symvers virtual-trainee.QVeXhm keyring-6DhwTd pulse-l0HmhbrKIQBb virtual-trainee.0Eb5WF virtual-trainee.WzpGmw
Les options de cette commande sont :
trainee@opensuse:/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' »
Cette commande écrit les arguments vers la sortie standard (autrement dit à l'écran) :
trainee@opensuse:/tmp> echo fenestros fenestros
Les options de cette commande sont :
trainee@opensuse:/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 Exit Status: Returns success unless a write error occurs.
La commande cp permet de copier une source vers une destination ou de multiples sources vers un répertoire :
trainee@opensuse:/tmp> cp test ~ trainee@opensuse:/tmp> ls -l ~ total 44 drwxr-xr-x 2 trainee users 4096 17 mai 15:25 bin drwxr-xr-x 2 trainee users 4096 24 mai 10:15 Bureau drwxr-xr-x 2 trainee users 4096 24 mai 10:15 Documents drwxr-xr-x 2 trainee users 4096 24 mai 10:15 Images drwxr-xr-x 2 trainee users 4096 24 mai 10:15 Modèles drwxr-xr-x 2 trainee users 4096 24 mai 10:15 Musique drwxr-xr-x 2 trainee users 4096 24 mai 10:15 Public drwxr-xr-x 2 trainee users 4096 17 mai 15:25 public_html drwxr-xr-x+ 2 root root 4096 17 oct. 19:08 rep1 drwxr-xr-x 2 trainee users 4096 24 mai 10:15 Téléchargements -rw-r--r-- 1 trainee users 0 7 nov. 13:17 test drwxr-xr-x 2 trainee users 4096 24 mai 10:15 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>
Les options de cette commande sont :
trainee@opensuse:/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 same as -dR --preserve=all --attributes-only don't copy the file data, just the attributes --backup[=CONTROL] make a backup of each existing destination file -b like --backup but does not accept an argument --copy-contents copy contents of special files when recursive -d same as --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 copie récursivement les répertoires --reflink[=WHEN] contrôle les copies clones/COW (Copy On Write). Voir ci-dessous. --remove-destination supprime chaque fichier de destination existant avant de tenter de l'ouvrir (par opposition avec --force) --sparse=WHEN contrôle la création des fichiers dispersés. Voir ci-dessous. --strip-trailing-slashes enlève les « / » de terminaison de chaque argument SOURCE -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' »
Cette commande permet de connaître le type d'un fichier:
trainee@opensuse:/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@opensuse:/tmp> echo "fenestros" > ~/test
En utilisant de nouveau la commande file, celle-ci est capable de vous indiquer le type de fichier :
trainee@opensuse:/tmp> file ~/test /home/trainee/test: ASCII text
Les options de cette commande sont :
trainee@opensuse:/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 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@opensuse:/tmp> cat ~/test fenestros
Les options de cette commande sont :
trainee@opensuse:/tmp> cat --help Utilisation : cat [OPTION]... [FILE]... Concatenate FILE(s), or standard input, to standard output. -A, --show-all equivalent to -vET -b, --number-nonblank number nonempty output lines, overrides -n -e equivalent to -vE -E, --show-ends display $ at end of each line -n, --number number all output lines -s, --squeeze-blank suppress repeated empty output lines -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 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@opensuse:/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@opensuse:/tmp> ls -l ~ total 44 drwxr-xr-x 2 trainee users 4096 17 mai 15:25 bin drwxr-xr-x 2 trainee users 4096 24 mai 10:15 Bureau drwxr-xr-x 2 trainee users 4096 24 mai 10:15 Documents drwxr-xr-x 2 trainee users 4096 24 mai 10:15 Images drwxr-xr-x 2 trainee users 4096 24 mai 10:15 Modèles drwxr-xr-x 2 trainee users 4096 24 mai 10:15 Musique drwxr-xr-x 2 trainee users 4096 24 mai 10:15 Public drwxr-xr-x 2 trainee users 4096 17 mai 15:25 public_html drwxr-xr-x+ 2 root root 4096 17 oct. 19:08 rep1 drwxr-xr-x 2 trainee users 4096 24 mai 10:15 Téléchargements drwxr-xr-x 2 trainee users 4096 24 mai 10:15 Vidéos
Utilisez maintenant la commande mv pour renommer le fichier test en TeSt :
trainee@opensuse:/tmp> mv test TeSt
Constatez le bon fonctionnement de votre commande :
trainee@opensuse:/tmp> ls -l total 144 drwxr-xr-x 2 trainee users 4096 2 août 08:07 hsperfdata_trainee drwx------ 2 trainee users 4096 28 juil. 11:22 icedteaplugin-trainee -rw-r--r-- 1 trainee users 0 2 août 08:07 jar_cache6202297203218743135.tmp -rw-r--r-- 1 trainee users 0 2 août 08:07 jar_cache7316512180383045650.tmp drwx------ 2 trainee users 4096 19 oct. 14:20 keyring-386sie drwx------ 2 trainee users 4096 24 mai 10:15 keyring-39MtBR drwx------ 2 trainee users 4096 20 oct. 15:41 keyring-4Q8xoi drwx------ 2 trainee users 4096 2 août 08:06 keyring-6DhwTd drwx------ 2 trainee users 4096 1 juin 11:20 keyring-eNDXzS drwx------ 2 trainee users 4096 7 nov. 12:44 mozilla-media-cache drwxr-xr-x 2 trainee users 4096 28 juil. 11:16 netx-native-25662 drwxr-xr-x 2 trainee users 4096 28 juil. 11:21 netx-native-63491 drwx------ 2 gdm gdm 4096 20 oct. 15:41 orbit-gdm drwx------ 2 trainee users 12288 8 nov. 09:31 orbit-trainee drwx------ 2 trainee users 4096 7 nov. 12:46 plugtmp drwx------ 2 gdm gdm 4096 20 oct. 15:41 pulse-l0HmhbrKIQBb drwx------ 2 trainee users 4096 20 oct. 15:41 pulse-ThNmqyY7uQEz drwxr-xr-x 2 trainee users 4096 28 juil. 11:24 SimpleHelp1674393770722982080 drwxr-xr-x 2 trainee users 4096 2 août 08:07 SimpleHelp2670031095574134323 -rw-r--r-- 1 trainee users 10 7 nov. 13:18 TeSt drwxr-xr-x 2 trainee users 4096 24 mai 10:15 tracker-trainee drwxr-xr-x 2 root root 4096 28 juil. 10:57 unique -rw-r--r-- 1 root root 17034 28 juil. 11:12 vboxguest-Module.symvers drwx------ 2 trainee users 4096 19 oct. 11:25 virtual-trainee.0Eb5WF drwx------ 2 trainee users 4096 24 mai 10:15 virtual-trainee.0pd1zs drwx------ 2 trainee users 4096 1 juin 11:20 virtual-trainee.61wRJA drwx------ 2 trainee users 4096 2 août 08:06 virtual-trainee.Cufrrn drwx------ 2 trainee users 4096 28 juil. 11:14 virtual-trainee.KXFvE2 drwx------ 2 trainee users 4096 20 oct. 15:41 virtual-trainee.L5gYXn drwx------ 2 trainee users 4096 28 juil. 10:40 virtual-trainee.pMhhgn drwx------ 2 trainee users 4096 4 oct. 11:04 virtual-trainee.QVeXhm drwx------ 2 trainee users 4096 19 oct. 14:20 virtual-trainee.WzpGmw
Les options de cette commande sont :
trainee@opensuse:/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 permet de créer un répertoire.
Placez-vous dans votre répertoire personnel :
trainee@opensuse:/tmp> cd ~
Créez le répertoire testdir :
trainee@opensuse:~> mkdir testdir
Constatez le bon fonctionnement de votre commande :
trainee@opensuse:~> ls bin Bureau Documents Images Modèles Musique Public public_html Téléchargements testdir Vidéos
Les options de cette commande sont :
trainee@opensuse:~> 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 permet de supprimer un répertoire vide.
Utilisez la commande rmdir pour supprimer le répertoire testdir :
trainee@opensuse:~> rmdir testdir
Constatez le bon fonctionnement de votre commande :
trainee@opensuse:~> ls bin Bureau Documents Images Modèles Musique Public public_html Téléchargements Vidéos
Les options de cette commande sont :
trainee@opensuse:~> 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 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@opensuse:~> mkdir testdir1
Changez de répertoire courant vers /tmp :
trainee@opensuse:~> cd /tmp
Créez le fichier vide TeSt :
trainee@opensuse:/tmp> touch TeSt
Injectez la chaîne fenestros dans le fichier TeSt :
trainee@opensuse:/tmp> echo "fenestros" > TeSt
Changez de répertoire courant vers /home/trainee :
trainee@opensuse:/tmp> cd ~
Déplacez le fichier /tmp/TeSt vers /home/trainee/testdir1 :
trainee@opensuse:~> mv /tmp/TeSt ~/testdir1
Constatez que le fichier TeSt est bien présent dans le répertoire ~/testdir1 :
trainee@opensuse:~> ls -lR testdir1/ testdir1/: total 4 -rw-r--r-- 1 trainee users 10 8 nov. 14:54 TeSt
Supprimez maintenant le répertorie ~/testdir1 ainsi que son contenu :
trainee@opensuse:~> rm -rf testdir1/
Vérifiez la suppression du répertoire ~/testdir1 :
trainee@opensuse:~> ls bin Bureau Documents Images Modèles Musique Public public_html Téléchargements Vidéos
Les options de cette commande sont :
trainee@opensuse:~> 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 Si vous utilisez « rm » pour supprimer un fichier, il est habituellement possible de récupérer une partie de son contenu, en disposant de suffisamment d'expertise et de temps. Pour être certain que le contenu ne soit pas récupérable, envisagez l'utilisation de « 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' »
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@opensuse:~> touch aac abc bca xyz
Constatez le bon fonctionnement de votre commande :
trainee@opensuse:~> ls aac abc bca bin Bureau Documents Images Modèles Musique Public public_html Téléchargements Vidéos xyz
Triez maintenant la liste du contenu du répertoire courant :
trainee@opensuse:~> ls | sort aac abc bca bin Bureau Documents Images Modèles Musique Public public_html 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@opensuse:~> ls | sort -r xyz Vidéos Téléchargements public_html Public Musique Modèles Images Documents Bureau bin bca abc aac
Les options de cette commande sont :
trainee@opensuse:~> 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 check for sorted input; do not sort -C, --check=quiet, --check=silent like -c, but do not report first bad line --compress-program=PROG compress temporaries with PROG; decompress them with PROG -d --debug annotate the part of the line used to sort, and warn about questionable usage to stderr --files0-from=F read input from the files specified by NUL-terminated names in file F; If F is - then read names from standard input -k, --key=POS1[,POS2] start a key at POS1 (origin 1), end it at POS2 (default end of line). See POS syntax below -m, --merge merge already sorted files; do not sort -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 use SEP instead of non-blank to blank transition -T, --temporary-directory=DIR use DIR for temporaries, not $TMPDIR or /tmp; multiple options specify multiple directories --parallel=N change the number of sorts run concurrently to N -u, --unique with -c, check for strict ordering; without -c, output only the first of an equal run -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' »
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@opensuse:~> more /etc/group at:!:25: audio:x:17:pulse avahi:!:105: bin:x:1:daemon cdrom:x:20: console:x:21: daemon:x:2: dialout:x:16: disk:x:6: floppy:x:19: ftp:x:49: games:x:40: gdm:!:109: kmem:x:9: lock:x:54: lp:x:7: mail:x:12: maildrop:!:59: man:x:62: messagebus:!:104: modem:x:43: news:x:13: nobody:x:65533: --Plus--(48%)
<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>
Les options de cette commande sont :
trainee@opensuse:~> more --help more : option inconnue « -h » utilisation : more [-dflpcsu] [+no-de-ligne | +/patron] nom1 nom2 ...
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@opensuse:~> 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@opensuse:~> find aac aac
<note important> Notez que ce fichier existe et que le système vous en informe en vous indiquant son nom. </note>
Les options de cette commande sont :
trainee@opensuse:~> find --help Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression] default path is the current directory; default expression is -print expression may consist of: operators, options, tests, and actions: operators (decreasing precedence; -and is implicit where no others are given): ( EXPR ) ! EXPR -not EXPR EXPR1 -a EXPR2 EXPR1 -and EXPR2 EXPR1 -o EXPR2 EXPR1 -or EXPR2 EXPR1 , EXPR2 positional options (always true): -daystart -follow -regextype normal options (always true, specified before other expressions): -depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf --version -xdev -ignore_readdir_race -noignore_readdir_race tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N -cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME -ilname PATTERN -iname PATTERN -inum N -iwholename PATTERN -iregex PATTERN -links N -lname PATTERN -mmin N -mtime N -name PATTERN -newer FILE -nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN -readable -writable -executable -wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N -used N -user NAME -xtype [bcdpfls] -context CONTEXT actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print -fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit -exec COMMAND ; -exec COMMAND {} + -ok COMMAND ; -execdir COMMAND ; -execdir COMMAND {} + -okdir COMMAND ; Report (and track progress on fixing) bugs via the findutils bug-reporting page at http://savannah.gnu.org/ or, if you have no web access, by sending email to <bug-findutils@gnu.org>.
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@opensuse:~> su - Mot de passe : fenestros opensuse:~ #
<note important> Notez que le mot de passe saisi ne sera pas visible. </note>
Les options de cette commande sont :
opensuse:~ # su --help Usage: su [OPTION]... [-] [USER [ARG]...] Change the effective user id and group id to that of USER. -, -l, --login make the shell a login shell -c, --command=COMMAND pass a single COMMAND to the shell with -c -f, --fast pass -f to the shell (for csh or tcsh) -m, --preserve-environment do not reset environment variables -p same as -m -s, --shell=SHELL run SHELL if /etc/shells allows it --help display this help and exit --version output version information and exit A mere - implies -l. If USER not given, assume root. Report su bugs to bug-coreutils@gnu.org GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> Report su translation bugs to <http://translationproject.org/team/> For complete documentation, run: info coreutils 'su invocation'
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 openSUSE, les binaires locate et updatedb ne sont pas installés par défaut. Par conséquent il est nécessaire de les installer :
opensuse:~ # cnf locate Le programme 'locate' peut être trouvé dans les paquets suivant : * findutils-locate [ chemin : /usr/bin/locate, dépôt : zypp (openSUSE-11.4-11.4-0) ] * findutils-locate [ chemin : /usr/bin/locate, dépôt : zypp (repo-oss) ] Try installing with: zypper install findutils-locate
L'installation se fait donc avec la ligne de commande suivante :
opensuse:~ # zypper install findutils-locate Loading repository data... Reading installed packages... Resolving package dependencies... The following NEW package is going to be installed: findutils-locate 1 new package to install. Overall download size: 52.0 KiB. After the operation, additional 132.0 KiB will be used. Continue? [y/n/?] (y): y Retrieving package findutils-locate-4.4.2-11.1.i586 (1/1), 52.0 KiB (132.0 KiB unpacked) Retrieving: findutils-locate-4.4.2-11.1.i586.rpm [done] Installing: findutils-locate-4.4.2-11.1 [done] Additional rpm output: Updating /etc/sysconfig/locate...
Sous openSUSE, la base de données par défaut est /var/lib/locatedb :
opensuse:~ # ls -l /var/lib/locatedb -rw-r--r-- 1 root root 2006126 Nov 8 15:15 /var/lib/locatedb
<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/sysconfig/locate :
## Path: Applications/Locate ## Description: Configuration of updatedb ## Type: yesno ## Default: yes # # Should updatedb (for locate) be started by cron.daily ("yes" or "no") # RUN_UPDATEDB=yes ## Type: string(nobody,root) ## Default: nobody # # updatedb has a parameter "--localuser". # It runs the "find" command as this user. Some people think this is a # security hole if set to 'root' (because some directory information can # be read which is normally protected). Others think it is useful to hold # all files in the database. # So if you want full information in locate db, set RUN_UPDATEDB_AS=root. # If you want security use RUN_UPDATEDB_AS=nobody. # RUN_UPDATEDB_AS=nobody ## Type: string ## Default: "" # # uptdatedb normally only scans local harddisks, but can include net paths # in the database as well. If you specify directories here, they will be # scanned. # UPDATEDB_NETPATHS="" ## Type: string ## Default: "/mnt /cdrom /tmp /usr/tmp /var/tmp /var/spool /proc /media /sys" # # uptdatedb can skip directories for its database. The following parameter # says which ones. # UPDATEDB_PRUNEPATHS="/mnt /cdrom /tmp /usr/tmp /var/tmp /var/spool /proc /media /sys" ## Type: string("",nobody) ## Default: "" # # Search net paths as ? (e.g. nobody) # UPDATEDB_NETUSER="" ## Type: string ## Default: "" # # updatedb can skip certain filesystem types completely # this sets the parameter "--prunefs" for updatedb # UPDATEDB_PRUNEFS=""
L'utilisation des deux commandes est illustrée ci-après :
opensuse:~ # updatedb /usr/bin/find: `/home/trainee/.gvfs': Permission denied opensuse:~ # locate passwd /etc/apparmor/profiles/extras/usr.bin.passwd /etc/default/passwd /etc/pam.d/passwd /etc/passwd /etc/passwd.old /etc/passwd.YaST2save /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db /lib/security/pam_unix_passwd.so /usr/bin/gpasswd /usr/bin/ldappasswd /usr/bin/lppasswd /usr/bin/passwd /usr/bin/smbpasswd /usr/bin/vino-passwd /usr/bin/vncpasswd /usr/bin/vncpasswd.arg /usr/bin/yppasswd /usr/include/rpcsvc/yppasswd.h /usr/include/rpcsvc/yppasswd.x /usr/lib/perl5/vendor_perl/5.12.3/i586-linux-thread-multi/rpcsvc/yppasswd.ph /usr/lib/YaST2/servers_non_y2/ag_passwd /usr/sbin/chpasswd /usr/sbin/saslpasswd2 /usr/share/awk/passwd.awk ...
Les options de la commande updatedb sont :
opensuse:~ # updatedb --help Usage: /usr/bin/updatedb [--findoptions='-option1 -option2...'] [--localpaths='dir1 dir2...'] [--netpaths='dir1 dir2...'] [--prunepaths='dir1 dir2...'] [--prunefs='fs1 fs2...'] [--output=dbfile] [--netuser=user] [--localuser=user] [--old-format] [--dbformat] [--version] [--help] Report bugs to <bug-findutils@gnu.org>.
Les options de la commande locate sont :
opensuse:~ # locate --help Usage: locate [-d path | --database=path] [-e | -E | --[non-]existing] [-i | --ignore-case] [-w | --wholename] [-b | --basename] [--limit=N | -l N] [-S | --statistics] [-0 | --null] [-c | --count] [-P | -H | --nofollow] [-L | --follow] [-m | --mmap ] [ -s | --stdio ] [-A | --all] [-p | --print] [-r | --regex ] [--regextype=TYPE] [--max-database-age D] [--version] [--help] pattern... Report bugs to <bug-findutils@gnu.org>.
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 :
opensuse:~ # whereis passwd passwd: /usr/bin/passwd /etc/passwd /etc/passwd.old /etc/passwd.YaST2save /usr/bin/X11/passwd /usr/share/man/man1/passwd.1ssl.gz /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz
Les options de cette commande sont :
opensuse:~ # whereis --help whereis [ -sbmu ] [ -SBM dir ... -f ] name...
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é :
opensuse:~ # which passwd /usr/bin/passwd
Les options de cette commande sont :
opensuse:~ # which --help Usage: which [options] [--] COMMAND [...] Write the full path of COMMAND(s) to standard output. --version, -[vV] Print version and exit successfully. --help, Print this help and exit successfully. --skip-dot Skip directories in PATH that start with a dot. --skip-tilde Skip directories in PATH that start with a tilde. --show-dot Don't expand a dot to current directory in output. --show-tilde Output a tilde for HOME directory for non-root. --tty-only Stop processing options on the right if not on tty. --all, -a Print all matches in PATH, not just the first --read-alias, -i Read list of aliases from stdin. --skip-alias Ignore option --read-alias; don't read stdin. --read-functions Read shell functions from stdin. --skip-functions Ignore option --read-functions; don't read stdin. Recommended use is to write the output of (alias; declare -f) to standard input, so that which can show aliases and shell functions. See which(1) for examples. If the options --read-alias and/or --read-functions are specified then the output can be a full alias or function definition, optionally followed by the full path of each command used inside of those. Report bugs to <which-bugs@gnu.org>.
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 :
opensuse:~ # uptime 16:11pm up 9:27, 3 users, load average: 0.20, 0.13, 0.08
Les options de cette commande sont :
opensuse:~ # uptime --help Usage: uptime [OPTION]... [FILE] Print the current time, the length of time the system has been up, the number of users on the system, and the average number of jobs in the run queue over the last 1, 5 and 15 minutes. Processes in an uninterruptible sleep state also contribute to the load average. If FILE is not specified, use /var/run/utmp. /var/log/wtmp as FILE is common. --help display this help and exit --version output version information and exit Report uptime bugs to bug-coreutils@gnu.org GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> Report uptime translation bugs to <http://translationproject.org/team/> For complete documentation, run: info coreutils 'uptime invocation'
Cette commande reprend les informations de la commande uptime et y ajoute des détails sur les utilisateurs connectés via un terminal :
opensuse:~ # w 16:12:24 up 9:28, 3 users, load average: 0.13, 0.13, 0.08 USER TTY LOGIN@ IDLE JCPU PCPU WHAT trainee :0 20Oct11 ?xdm? 1:50m 0.06s /usr/lib/gdm/gdm-simple-slave --display-id /org/gnome/DisplayManager/Dis trainee console 20Oct11 19days 0.00s 0.06s /usr/lib/gdm/gdm-simple-slave --display-id /org/gnome/DisplayManager/Dis trainee pts/0 20Oct11 1.00s 0.41s 36.32s 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).
Les options de cette commande sont :
opensuse:~ # w --help w: invalid option -- '-' usage: w -hlsufV [user] -h skip header -l long listing (default) -s short listing -n non truncated listing (large) -u ignore uid of processes -f toggle FROM field (default off) -V display version
Cette commande affiche des informations sur le système :
opensuse:~ # uname -a Linux opensuse 2.6.37.6-0.5-desktop #1 SMP PREEMPT 2011-04-25 21:48:33 +0200 i686 i686 i386 GNU/Linux opensuse:~ # uname -s Linux opensuse:~ # uname -n opensuse opensuse:~ # uname -r 2.6.37.6-0.5-desktop opensuse:~ # uname -v #1 SMP PREEMPT 2011-04-25 21:48:33 +0200 opensuse:~ # uname -m i686 opensuse:~ # uname -p i686 opensuse:~ # uname -i i386 opensuse:~ # uname -o GNU/Linux
Les options de cette commande sont :
opensuse:~ # uname --help Usage: uname [OPTION]... Print certain system information. With no OPTION, same as -s. -a, --all print all information, in the following order, except omit -p and -i if unknown: -s, --kernel-name print the kernel name -n, --nodename print the network node hostname -r, --kernel-release print the kernel release -v, --kernel-version print the kernel version -m, --machine print the machine hardware name -p, --processor print the processor type or "unknown" -i, --hardware-platform print the hardware platform or "unknown" -o, --operating-system print the operating system --help display this help and exit --version output version information and exit Report uname bugs to bug-coreutils@gnu.org GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> Report uname translation bugs to <http://translationproject.org/team/> For complete documentation, run: info coreutils 'uname invocation'
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 :
opensuse:~ # du -sh /* 2>/dev/null 8.5M /bin 24M /boot 336K /dev 68M /etc 76M /home 134M /lib 16K /lost+found 4.0K /media 4.0K /mnt 17M /opt 0 /proc 116K /root 13M /sbin 4.0K /selinux 88K /srv 0 /sys 7.4M /tmp 3.7G /usr 232M /var
<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 :
opensuse:~ # du -sh /* 8.5M /bin 24M /boot 336K /dev 68M /etc du: cannot access `/home/trainee/.gvfs': Permission denied 76M /home 134M /lib 16K /lost+found 4.0K /media 4.0K /mnt 17M /opt du: cannot access `/proc/11145/task/11145/fd/4': No such file or directory du: cannot access `/proc/11145/task/11145/fdinfo/4': No such file or directory du: cannot access `/proc/11145/fd/4': No such file or directory du: cannot access `/proc/11145/fdinfo/4': No such file or directory 0 /proc 116K /root 13M /sbin 4.0K /selinux 88K /srv 0 /sys 7.4M /tmp 3.7G /usr 232M /var
<note important> Notez l'apparition des erreurs dans la sortie. </note>
Les options de cette commande sont :
opensuse:~ # du --help Usage: du [OPTION]... [FILE]... or: du [OPTION]... --files0-from=F Summarize disk usage of each FILE, recursively for directories. Mandatory arguments to long options are mandatory for short options too. -a, --all write counts for all files, not just directories --apparent-size print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be larger due to holes in (`sparse') files, internal fragmentation, indirect blocks, and the like -B, --block-size=SIZE scale sizes by SIZE before printing them. E.g., `-BM' prints sizes in units of 1,048,576 bytes. See SIZE format below. -b, --bytes equivalent to `--apparent-size --block-size=1' -c, --total produce a grand total -D, --dereference-args dereference only symlinks that are listed on the command line --files0-from=F summarize disk usage of the NUL-terminated file names specified in file F; If F is - then read names from standard input -H equivalent to --dereference-args (-D) -h, --human-readable print sizes in human readable format (e.g., 1K 234M 2G) --si like -h, but use powers of 1000 not 1024 -k like --block-size=1K -l, --count-links count sizes many times if hard linked -m like --block-size=1M -L, --dereference dereference all symbolic links -P, --no-dereference don't follow any symbolic links (this is the default) -0, --null end each output line with 0 byte rather than newline -S, --separate-dirs do not include size of subdirectories -s, --summarize display only a total for each argument -x, --one-file-system skip directories on different file systems -X, --exclude-from=FILE exclude files that match any pattern in FILE --exclude=PATTERN exclude files that match PATTERN -d, --max-depth=N print the total for a directory (or file, with --all) only if it is N or fewer levels below the command line argument; --max-depth=0 is the same as --summarize --time show time of the last modification of any file in the directory, or any of its subdirectories --time=WORD show time as WORD instead of modification time: atime, access, use, ctime or status --time-style=STYLE show times using style STYLE: full-iso, long-iso, iso, +FORMAT FORMAT is interpreted like `date' --help display this help and exit --version output version information and exit Display values are in units of the first available SIZE from --block-size, and the DU_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE environment variables. Otherwise, units default to 1024 bytes (or 512 if POSIXLY_CORRECT is set). SIZE may be (or may be an integer optionally followed by) one of following: KB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T, P, E, Z, Y. Report du bugs to bug-coreutils@gnu.org GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> Report du translation bugs to <http://translationproject.org/team/> For complete documentation, run: info coreutils 'du invocation'
Le noyau ou kernel est la partie du système d'exploitation qui gère les entrées/sorties avec des périphériques. Dans certains cas il est préférable de recompiler le noyau de Linux. La motivation de cette recompilation peut être :
Dans le cas d'une utilisation courante de Linux, il est cependant préférable de faire appel aux modules. Les modules se trouvent dans le répertoire /lib/modules/<version-du-noyau> :
opensuse:~ # ls /lib/modules/2.6.37.6-0.5-desktop/ build modules.alias modules.builtin.bin modules.devname modules.symbols systemtap kernel modules.alias.bin modules.dep modules.order modules.symbols.bin vdso misc modules.builtin modules.dep.bin modules.softdep source weak-updates
<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 :
Pour consulter la liste des modules chargés, utilisez la commande lsmod :
opensuse:~ # lsmod Module Size Used by fuse 72011 2 ip6t_LOG 7940 5 xt_tcpudp 3052 2 xt_pkttype 960 3 ipt_LOG 7845 5 xt_limit 1753 10 af_packet 20330 0 vboxsf 40320 0 snd_pcm_oss 48271 0 snd_mixer_oss 17521 1 snd_pcm_oss snd_seq 57777 0 snd_seq_device 6678 1 snd_seq mperf 1271 0 vboxvideo 1276 1 drm 191946 2 vboxvideo edd 8752 0 ip6t_REJECT 4192 3 nf_conntrack_ipv6 8286 3 nf_defrag_ipv6 9434 1 nf_conntrack_ipv6 ip6table_raw 1203 1 xt_NOTRACK 864 4 ipt_REJECT 2200 3 iptable_raw 1294 1 iptable_filter 1466 1 ip6table_mangle 1636 0 nf_conntrack_netbios_ns 1366 0 nf_conntrack_ipv4 8584 3 nf_defrag_ipv4 1281 1 nf_conntrack_ipv4 ip_tables 13128 2 iptable_raw,iptable_filter xt_conntrack 2480 6 nf_conntrack 75967 5 nf_conntrack_ipv6,xt_NOTRACK,nf_conntrack_netbios_ns,nf_conntrack_ipv4,xt_conntrack ip6table_filter 1375 1 ip6_tables 13404 4 ip6t_LOG,ip6table_raw,ip6table_mangle,ip6table_filter x_tables 18727 16 ip6t_LOG,xt_tcpudp,xt_pkttype,ipt_LOG,xt_limit,ip6t_REJECT,ip6table_raw,xt_NOTRACK,ipt_REJECT,iptable_raw,iptable_filter,ip6table_mangle,ip_tables,xt_conntrack,ip6table_filter,ip6_tables dm_mod 76266 0 snd_intel8x0 27702 2 snd_ac97_codec 106769 1 snd_intel8x0 ac97_bus 1082 1 snd_ac97_codec i2c_piix4 10342 0 sr_mod 15048 0 snd_pcm 88841 3 snd_pcm_oss,snd_intel8x0,snd_ac97_codec ppdev 7883 0 cdrom 38437 1 sr_mod joydev 9578 0 snd_timer 22055 2 snd_seq,snd_pcm parport_pc 33763 0 e1000 139787 0 vboxguest 188883 12 vboxsf sg 28446 0 snd 67246 12 snd_pcm_oss,snd_mixer_oss,snd_seq,snd_seq_device,snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer parport 34550 2 ppdev,parport_pc soundcore 7270 1 snd snd_page_alloc 8121 2 snd_intel8x0,snd_pcm pcspkr 1662 0 battery 10066 0 ac 3227 0 button 5497 0 fan 2575 0 processor 36507 0 thermal 13154 0 thermal_sys 14790 3 fan,processor,thermal ata_generic 3015 0
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 :
opensuse:~ # modprobe ppa opensuse:~ # lsmod Module Size Used by ppa 10337 0 fuse 72011 2 ip6t_LOG 7940 5 xt_tcpudp 3052 2 xt_pkttype 960 3 ipt_LOG 7845 5 xt_limit 1753 10 ...
<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 :
opensuse:~ # modprobe -r ppa opensuse:~ # lsmod Module Size Used by fuse 72011 2 ip6t_LOG 7940 5 xt_tcpudp 3052 2 xt_pkttype 960 3 ipt_LOG 7845 5 xt_limit 1753 10 ...
<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 :
opensuse:~ # depmod -v ... /lib/modules/2.6.37.6-0.5-desktop/misc/vboxsf.ko needs "VBoxGuest_RTAssertMsg2Weak": /lib/modules/2.6.37.6-0.5-desktop/misc/vboxguest.ko /lib/modules/2.6.37.6-0.5-desktop/misc/vboxvideo.ko needs "drm_open": /lib/modules/2.6.37.6-0.5-desktop/kernel/drivers/gpu/drm/drm.ko /lib/modules/2.6.37.6-0.5-desktop/misc/vboxvideo.ko needs "drm_fasync": /lib/modules/2.6.37.6-0.5-desktop/kernel/drivers/gpu/drm/drm.ko /lib/modules/2.6.37.6-0.5-desktop/misc/vboxvideo.ko needs "drm_poll": /lib/modules/2.6.37.6-0.5-desktop/kernel/drivers/gpu/drm/drm.ko /lib/modules/2.6.37.6-0.5-desktop/misc/vboxvideo.ko needs "drm_ioctl": /lib/modules/2.6.37.6-0.5-desktop/kernel/drivers/gpu/drm/drm.ko /lib/modules/2.6.37.6-0.5-desktop/misc/vboxvideo.ko needs "drm_exit": /lib/modules/2.6.37.6-0.5-desktop/kernel/drivers/gpu/drm/drm.ko /lib/modules/2.6.37.6-0.5-desktop/misc/vboxvideo.ko needs "drm_init": /lib/modules/2.6.37.6-0.5-desktop/kernel/drivers/gpu/drm/drm.ko /lib/modules/2.6.37.6-0.5-desktop/misc/vboxvideo.ko needs "drm_vblank_init": /lib/modules/2.6.37.6-0.5-desktop/kernel/drivers/gpu/drm/drm.ko /lib/modules/2.6.37.6-0.5-desktop/misc/vboxvideo.ko needs "drm_mmap": /lib/modules/2.6.37.6-0.5-desktop/kernel/drivers/gpu/drm/drm.ko /lib/modules/2.6.37.6-0.5-desktop/misc/vboxvideo.ko needs "drm_core_reclaim_buffers": /lib/modules/2.6.37.6-0.5-desktop/kernel/drivers/gpu/drm/drm.ko /lib/modules/2.6.37.6-0.5-desktop/misc/vboxvideo.ko needs "drm_release": /lib/modules/2.6.37.6-0.5-desktop/kernel/drivers/gpu/drm/drm.ko opensuse:~ # opensuse:~ # more /lib/modules/2.6.37.6-0.5-desktop/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/mperf.ko kernel/arch/x86/kernel/cpu/cpufreq/mperf.ko: kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko: kernel/drivers/acpi/processor.ko kernel/drivers/thermal/thermal_sys.k o kernel/arch/x86/kernel/cpu/cpufreq/mperf.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/e_powersaver.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/p4-clockmod.ko: kernel/arch/x86/kernel/cpu/cpufreq/speedstep-lib.ko kernel/arch/x86/kernel/cpu/cpufreq/cpufreq-nforce2.ko: kernel/arch/x86/kernel/cpuid.ko: kernel/arch/x86/kernel/apm.ko: kernel/arch/x86/kernel/microcode.ko: kernel/arch/x86/crypto/aes-i586.ko: kernel/arch/x86/crypto/twofish-i586.ko: kernel/crypto/twofish_common.ko kernel/arch/x86/crypto/salsa20-i586.ko: --More--(0%)
Sous openSUSE, 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 :
opensuse:~ # ls /etc/modprobe.d 00-system.conf 50-bluetooth.conf 50-iwl3945.conf 50-sound.conf 50-tv.conf 10-unsupported-modules.conf 50-ipw2200.conf 50-nvidia.conf 50-sound.conf.YaST2save 99-local.conf 50-blacklist.conf 50-iwagn.conf 50-prism54.conf 50-thinkpad_acpi.conf
C'est le fichier /etc/modprobe.d/00-system.conf qui contient la majorité des configurations importantes :
# # Copyright (c) 1996-2002 SuSE Linux AG Nuernberg, Germany. # All rights reserved. # # Author: Hubert Mantel <mantel@suse.de>, 1996-2002 # # Configuration file for loadable modules; used by modprobe # # Please don't edit this file. Place your settings into # /etc/modprobe.d/99-local.conf instead. # # ######################################################################## # If you want to use the new autofs4 ######################################################################## alias autofs autofs4 ######################################################################## # block dev aliases ######################################################################## # network block device alias block-major-45 pd alias block-major-47 pf ######################################################################## # char dev aliases ######################################################################## install char-major-10-134 /bin/true install char-major-10-135 /bin/true alias char-major-10-181 toshiba alias char-major-10-250 sonypi options sonypi minor=250 ######################################################################## # ISDN ######################################################################## install b1pci /bin/true install c4 /bin/true install sc /bin/true install hisax /bin/true install hisax_fcpcipnp /bin/true install hfc4s8s_l1 /bin/true install hysdn /bin/true install pcbit /bin/true install t1pci /bin/true install divas /bin/true # NFS alias nfs4 nfs # rpc_pipefs install rpc_pipefs /sbin/modprobe sunrpc # we don't want ide-scsi handle CD drives (bnc#242009) options ide-scsi idescsi_nocd=1 # pata_acpi is useful for certain limited cases but it tries to attach any # controller with IDE class code causing more harm than good if loaded by # default. Blacklist it so that it can be used selectively. blacklist pata_acpi # "Warning! ehci_hcd should always be loaded before uhci_hcd and ohci_hcd, not # after" (bnc#449853) # mkinitrd hints: # SUSE INITRD: uhci-hcd REQUIRES ehci-hcd # SUSE INITRD: ohci-hcd REQUIRES ehci-hcd install uhci-hcd /sbin/modprobe ehci-hcd; /sbin/modprobe --ignore-install uhci-hcd install ohci-hcd /sbin/modprobe ehci-hcd; /sbin/modprobe --ignore-install ohci-hcd # libcrc32c calls crypto_alloc_shash("crc32c", 0, 0), which results in a # request_module("crc32c"), but that dependency is not seen by modpost/depmod # https://bugzilla.novell.com/552443 # SUSE INITRD: libcrc32c REQUIRES crc32c # end of common part for modprobe.conf # begin of i386 part for modprobe.conf alias parport_lowlevel parport_pc # disable DMA for parallel port (bnc#180390) options parport_pc dma=none # options parport_pc io=0x378 irq=none # If you have multiple parallel ports, specify them this way: # options parport_pc io=0x378,0x278 irq=none,none # Linux ACP modem (Mwave) alias char-major-10-219 mwave # options mwave dspirq=10 dspio=0x130 uartirq=3 uartio=0x2f8 # IBM thinkpad tpctl # see /usr/share/doc/packages/tpctl/ alias char-major-10-170 thinkpad # options thinkpad enable_smapi=0 # required for DRI support on SiS chips options sisfb mode=none mem=12288 # ata_piix can't handle ICH6 in AHCI mode install ata_piix /sbin/modprobe ahci 2>&1 |:; /sbin/modprobe --ignore-install ata_piix # QEMU/KVM can handle ACPI Hotplugging alias dmi:bvnQEMU:bvrQEMU:* acpiphp # end of i386 part for modprobe.conf
Les options de cette commande sont :
opensuse:~ # 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> ...]
Il est possible d'obtenir des informations sur un module grâce à la commande modinfo :
opensuse:~ # modinfo ppa filename: /lib/modules/2.6.37.6-0.5-desktop/kernel/drivers/scsi/ppa.ko license: GPL srcversion: B19ED8FD82AFB840F5006C3 depends: parport vermagic: 2.6.37.6-0.5-desktop SMP preempt mod_unload modversions 686
Les options de cette commande sont :
opensuse:~ # 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.
Cette commande est utilisée pour effacer le contenu de l'écran courant du terminal :
opensuse:~ # clear opensuse:~ #
Cette commande ferme le terminal courant.
Les options de cette commande sont :
opensuse:~ # 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.
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.
Les options de cette commande sont :
opensuse:~ # 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 utilisée pour arrêter le système est la commande shutdown :
shutdown [-t sec] [-akrhHPfnc] heure [message]
Lors de l'arrêt de la machine, Linux procède, entre autre, aux tâches suivantes :
L'utilisation de la commande shutdown peut être accordée à d'autres utilisateurs de root en utilisant le fichier /etc/shutdown.allow
Les options de cette commande sont :
opensuse:~ # shutdown --help shutdown: invalid option -- '-' Usage: shutdown [-akrhPHfFnc] [-t sec] time [warning message] -a: use /etc/shutdown.allow -k: don't really shutdown, only warn. -r: reboot after shutdown. -h: halt after shutdown. -P: halt action is to turn off power. -H: halt action is to just halt. -f: do a 'fast' reboot (skip fsck). -F: Force fsck on reboot. -n: do not go through "init" but go down real fast. -c: cancel a running shutdown. -t secs: delay between warning and kill signal. ** the "time" argument is mandatory! (try "now") **
Parmi les options les plus importantes, on note :
Option | Description |
---|---|
-h | Arrêter le système |
-r | Re-démarrer le système |
-c | Annuler l'opération shutdown en cours |
-f | Re-démarrer rapidement sans vérifier les systèmes de fichiers |
-F | Forcer la vérification des systèmes de fichiers lors du prochain démarrage |
L'option heure peut prendre plusieurs valeurs :
Valeur | Description |
---|---|
hh:mm | L'heure à laquelle l'opération aura lieu |
+m | Nombre de minutes avant que l'opération aura lieu |
now | L'opération est immédiate |
<note warning> Si l'opération est programmée pour dans moins de 5 minutes, les connexions supplémentaires sont interdites. </note>
Cette commande redémarre le système. Quand le système fonctionne normalement, l'exécution de reboot appelle la commande shutdown -r.
Les options de cette commande sont :
opensuse:~ # reboot --help usage: reboot [-n] [-w] [-d] [-f] [-h] [-i] -n: don't sync before halting the system -w: only write a wtmp reboot record and exit. -d: don't write a wtmp record. -f: force halt/reboot, don't call shutdown. -h: put harddisks in standby mode. -i: shut down all network interfaces.
Cette commande arrête le système. Quand le système fonctionne normalement, l'exécution de halt appelle la commande shutdown -h.
Les options de cette commande sont :
opensuse:~ # halt --help usage: halt [-n] [-w] [-d] [-f] [-h] [-i] [-p] -n: don't sync before halting the system -w: only write a wtmp reboot record and exit. -d: don't write a wtmp record. -f: force halt/reboot, don't call shutdown. -h: put harddisks in standby mode. -i: shut down all network interfaces. -p: power down the system (if possible, otherwise halt).
Cette commande arrête le système et coupe l'alimentation électrique. Elle est l'équivalente de la commande halt -p. Quand le système fonctionne normalement, l'exécution de poweroff appelle la commande shutdown -hP.
Les options de cette commande sont :
opensuse:~ # poweroff --help usage: poweroff [-n] [-w] [-d] [-f] [-h] [-i] -n: don't sync before halting the system -w: only write a wtmp reboot record and exit. -d: don't write a wtmp record. -f: force halt/reboot, don't call shutdown. -h: put harddisks in standby mode. -i: shut down all network interfaces.
Cette commande pause le terminal pour le nombre de secondes passé en argument.
Les options de cette commande sont :
opensuse:~ # sleep --help Usage: sleep NUMBER[SUFFIX]... or: sleep OPTION Pause for NUMBER seconds. SUFFIX may be `s' for seconds (the default), `m' for minutes, `h' for hours or `d' for days. Unlike most implementations that require NUMBER be an integer, here NUMBER may be an arbitrary floating point number. Given two or more arguments, pause for the amount of time specified by the sum of their values. --help display this help and exit --version output version information and exit Report sleep bugs to bug-coreutils@gnu.org GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> Report sleep translation bugs to <http://translationproject.org/team/> For complete documentation, run: info coreutils 'sleep invocation'
Les options sous Linux peuvent être exprimées au format court ou au format long. Plusieurs différences sont importantes à noter.
Premièrement les options courtes sont précédées par un simple tiré -, tandis que les options longues sont précédées par deux tirés –.
Un exemple est l'option de l'aide pour la plupart des commandes bash :
Deuxièmement les options courtes peuvent être combinées tandis que les options longues ne peuvent pas l'être. Par exemple, la ligne de commande ls -l -a -i peut être aussi écrite ls -lai, ls -lia ou encore ls -ali :
opensuse:/tmp # ls -lai total 176 104001 drwxrwxrwt 34 root root 4096 Nov 8 16:42 . 2 drwxr-xr-x 21 root root 4096 Oct 19 14:20 .. 104700 drwxrwxrwt 2 root root 4096 Oct 20 15:41 .ICE-unix 105191 -r--r--r-- 1 root root 11 Oct 20 15:01 .X0-lock 104701 drwxrwxrwt 2 root root 4096 Oct 20 15:01 .X11-unix 106881 srwxr-xr-x 1 trainee users 0 Aug 2 08:07 .com.sun.deploy.net.socket.4492.457798194027358583.AF_UNIX 104881 drwx------ 2 trainee users 4096 Oct 20 15:41 .esd-1000 104825 drwx------ 2 gdm gdm 4096 Oct 20 15:41 .esd-107 105321 drwxr-xr-x 2 trainee users 4096 Jul 28 11:24 SimpleHelp1674393770722982080 106886 drwxr-xr-x 2 trainee users 4096 Aug 2 08:07 SimpleHelp2670031095574134323 105159 -rw-r--r-- 1 root root 49 Nov 8 16:35 greptest 106887 drwxr-xr-x 2 trainee users 4096 Aug 2 08:07 hsperfdata_trainee 106884 drwx------ 2 trainee users 4096 Jul 28 11:22 icedteaplugin-trainee 106883 -rw-r--r-- 1 trainee users 0 Aug 2 08:07 jar_cache6202297203218743135.tmp 106885 -rw-r--r-- 1 trainee users 0 Aug 2 08:07 jar_cache7316512180383045650.tmp 105219 drwx------ 2 trainee users 4096 Oct 19 14:20 keyring-386sie 104733 drwx------ 2 trainee users 4096 May 24 10:15 keyring-39MtBR 107528 drwx------ 2 trainee users 4096 Oct 20 15:41 keyring-4Q8xoi 105182 drwx------ 2 trainee users 4096 Aug 2 08:06 keyring-6DhwTd 105275 drwx------ 2 trainee users 4096 Jun 1 11:20 keyring-eNDXzS 107511 drwx------ 2 trainee users 4096 Nov 7 12:44 mozilla-media-cache 106903 drwxr-xr-x 2 trainee users 4096 Jul 28 11:16 netx-native-25662 106986 drwxr-xr-x 2 trainee users 4096 Jul 28 11:21 netx-native-63491 104709 drwx------ 2 gdm gdm 4096 Oct 20 15:41 orbit-gdm 104843 drwx------ 2 trainee users 12288 Nov 8 16:06 orbit-trainee 107524 drwx------ 2 trainee users 4096 Nov 7 12:46 plugtmp 104870 drwx------ 2 trainee users 4096 Oct 20 15:41 pulse-ThNmqyY7uQEz 104731 drwx------ 2 gdm gdm 4096 Oct 20 15:41 pulse-l0HmhbrKIQBb 106981 -rw-r--r-- 1 root root 125 Nov 8 16:42 scriptawk 105002 drwxr-xr-x 2 trainee users 4096 May 24 10:15 tracker-trainee 105181 drwxr-xr-x 2 root root 4096 Jul 28 10:57 unique 122770 -rw-r--r-- 1 root root 17034 Jul 28 11:12 vboxguest-Module.symvers 107104 drwx------ 2 trainee users 4096 Oct 19 11:25 virtual-trainee.0Eb5WF 104956 drwx------ 2 trainee users 4096 May 24 10:15 virtual-trainee.0pd1zs 105289 drwx------ 2 trainee users 4096 Jun 1 11:20 virtual-trainee.61wRJA 105313 drwx------ 2 trainee users 4096 Aug 2 08:06 virtual-trainee.Cufrrn 105304 drwx------ 2 trainee users 4096 Jul 28 11:14 virtual-trainee.KXFvE2 107111 drwx------ 2 trainee users 4096 Oct 20 15:41 virtual-trainee.L5gYXn 107105 drwx------ 2 trainee users 4096 Oct 4 11:04 virtual-trainee.QVeXhm 107109 drwx------ 2 trainee users 4096 Oct 19 14:20 virtual-trainee.WzpGmw 104942 drwx------ 2 trainee users 4096 Jul 28 10:40 virtual-trainee.pMhhgn opensuse:/tmp # ls -lia total 176 104001 drwxrwxrwt 34 root root 4096 Nov 8 16:42 . 2 drwxr-xr-x 21 root root 4096 Oct 19 14:20 .. 104700 drwxrwxrwt 2 root root 4096 Oct 20 15:41 .ICE-unix 105191 -r--r--r-- 1 root root 11 Oct 20 15:01 .X0-lock 104701 drwxrwxrwt 2 root root 4096 Oct 20 15:01 .X11-unix 106881 srwxr-xr-x 1 trainee users 0 Aug 2 08:07 .com.sun.deploy.net.socket.4492.457798194027358583.AF_UNIX 104881 drwx------ 2 trainee users 4096 Oct 20 15:41 .esd-1000 104825 drwx------ 2 gdm gdm 4096 Oct 20 15:41 .esd-107 105321 drwxr-xr-x 2 trainee users 4096 Jul 28 11:24 SimpleHelp1674393770722982080 106886 drwxr-xr-x 2 trainee users 4096 Aug 2 08:07 SimpleHelp2670031095574134323 105159 -rw-r--r-- 1 root root 49 Nov 8 16:35 greptest 106887 drwxr-xr-x 2 trainee users 4096 Aug 2 08:07 hsperfdata_trainee 106884 drwx------ 2 trainee users 4096 Jul 28 11:22 icedteaplugin-trainee 106883 -rw-r--r-- 1 trainee users 0 Aug 2 08:07 jar_cache6202297203218743135.tmp 106885 -rw-r--r-- 1 trainee users 0 Aug 2 08:07 jar_cache7316512180383045650.tmp 105219 drwx------ 2 trainee users 4096 Oct 19 14:20 keyring-386sie 104733 drwx------ 2 trainee users 4096 May 24 10:15 keyring-39MtBR 107528 drwx------ 2 trainee users 4096 Oct 20 15:41 keyring-4Q8xoi 105182 drwx------ 2 trainee users 4096 Aug 2 08:06 keyring-6DhwTd 105275 drwx------ 2 trainee users 4096 Jun 1 11:20 keyring-eNDXzS 107511 drwx------ 2 trainee users 4096 Nov 7 12:44 mozilla-media-cache 106903 drwxr-xr-x 2 trainee users 4096 Jul 28 11:16 netx-native-25662 106986 drwxr-xr-x 2 trainee users 4096 Jul 28 11:21 netx-native-63491 104709 drwx------ 2 gdm gdm 4096 Oct 20 15:41 orbit-gdm 104843 drwx------ 2 trainee users 12288 Nov 8 16:06 orbit-trainee 107524 drwx------ 2 trainee users 4096 Nov 7 12:46 plugtmp 104870 drwx------ 2 trainee users 4096 Oct 20 15:41 pulse-ThNmqyY7uQEz 104731 drwx------ 2 gdm gdm 4096 Oct 20 15:41 pulse-l0HmhbrKIQBb 106981 -rw-r--r-- 1 root root 125 Nov 8 16:42 scriptawk 105002 drwxr-xr-x 2 trainee users 4096 May 24 10:15 tracker-trainee 105181 drwxr-xr-x 2 root root 4096 Jul 28 10:57 unique 122770 -rw-r--r-- 1 root root 17034 Jul 28 11:12 vboxguest-Module.symvers 107104 drwx------ 2 trainee users 4096 Oct 19 11:25 virtual-trainee.0Eb5WF 104956 drwx------ 2 trainee users 4096 May 24 10:15 virtual-trainee.0pd1zs 105289 drwx------ 2 trainee users 4096 Jun 1 11:20 virtual-trainee.61wRJA 105313 drwx------ 2 trainee users 4096 Aug 2 08:06 virtual-trainee.Cufrrn 105304 drwx------ 2 trainee users 4096 Jul 28 11:14 virtual-trainee.KXFvE2 107111 drwx------ 2 trainee users 4096 Oct 20 15:41 virtual-trainee.L5gYXn 107105 drwx------ 2 trainee users 4096 Oct 4 11:04 virtual-trainee.QVeXhm 107109 drwx------ 2 trainee users 4096 Oct 19 14:20 virtual-trainee.WzpGmw 104942 drwx------ 2 trainee users 4096 Jul 28 10:40 virtual-trainee.pMhhgn opensuse:/tmp # ls -ali total 176 104001 drwxrwxrwt 34 root root 4096 Nov 8 16:42 . 2 drwxr-xr-x 21 root root 4096 Oct 19 14:20 .. 104700 drwxrwxrwt 2 root root 4096 Oct 20 15:41 .ICE-unix 105191 -r--r--r-- 1 root root 11 Oct 20 15:01 .X0-lock 104701 drwxrwxrwt 2 root root 4096 Oct 20 15:01 .X11-unix 106881 srwxr-xr-x 1 trainee users 0 Aug 2 08:07 .com.sun.deploy.net.socket.4492.457798194027358583.AF_UNIX 104881 drwx------ 2 trainee users 4096 Oct 20 15:41 .esd-1000 104825 drwx------ 2 gdm gdm 4096 Oct 20 15:41 .esd-107 105321 drwxr-xr-x 2 trainee users 4096 Jul 28 11:24 SimpleHelp1674393770722982080 106886 drwxr-xr-x 2 trainee users 4096 Aug 2 08:07 SimpleHelp2670031095574134323 105159 -rw-r--r-- 1 root root 49 Nov 8 16:35 greptest 106887 drwxr-xr-x 2 trainee users 4096 Aug 2 08:07 hsperfdata_trainee 106884 drwx------ 2 trainee users 4096 Jul 28 11:22 icedteaplugin-trainee 106883 -rw-r--r-- 1 trainee users 0 Aug 2 08:07 jar_cache6202297203218743135.tmp 106885 -rw-r--r-- 1 trainee users 0 Aug 2 08:07 jar_cache7316512180383045650.tmp 105219 drwx------ 2 trainee users 4096 Oct 19 14:20 keyring-386sie 104733 drwx------ 2 trainee users 4096 May 24 10:15 keyring-39MtBR 107528 drwx------ 2 trainee users 4096 Oct 20 15:41 keyring-4Q8xoi 105182 drwx------ 2 trainee users 4096 Aug 2 08:06 keyring-6DhwTd 105275 drwx------ 2 trainee users 4096 Jun 1 11:20 keyring-eNDXzS 107511 drwx------ 2 trainee users 4096 Nov 7 12:44 mozilla-media-cache 106903 drwxr-xr-x 2 trainee users 4096 Jul 28 11:16 netx-native-25662 106986 drwxr-xr-x 2 trainee users 4096 Jul 28 11:21 netx-native-63491 104709 drwx------ 2 gdm gdm 4096 Oct 20 15:41 orbit-gdm 104843 drwx------ 2 trainee users 12288 Nov 8 16:06 orbit-trainee 107524 drwx------ 2 trainee users 4096 Nov 7 12:46 plugtmp 104870 drwx------ 2 trainee users 4096 Oct 20 15:41 pulse-ThNmqyY7uQEz 104731 drwx------ 2 gdm gdm 4096 Oct 20 15:41 pulse-l0HmhbrKIQBb 106981 -rw-r--r-- 1 root root 125 Nov 8 16:42 scriptawk 105002 drwxr-xr-x 2 trainee users 4096 May 24 10:15 tracker-trainee 105181 drwxr-xr-x 2 root root 4096 Jul 28 10:57 unique 122770 -rw-r--r-- 1 root root 17034 Jul 28 11:12 vboxguest-Module.symvers 107104 drwx------ 2 trainee users 4096 Oct 19 11:25 virtual-trainee.0Eb5WF 104956 drwx------ 2 trainee users 4096 May 24 10:15 virtual-trainee.0pd1zs 105289 drwx------ 2 trainee users 4096 Jun 1 11:20 virtual-trainee.61wRJA 105313 drwx------ 2 trainee users 4096 Aug 2 08:06 virtual-trainee.Cufrrn 105304 drwx------ 2 trainee users 4096 Jul 28 11:14 virtual-trainee.KXFvE2 107111 drwx------ 2 trainee users 4096 Oct 20 15:41 virtual-trainee.L5gYXn 107105 drwx------ 2 trainee users 4096 Oct 4 11:04 virtual-trainee.QVeXhm 107109 drwx------ 2 trainee users 4096 Oct 19 14:20 virtual-trainee.WzpGmw 104942 drwx------ 2 trainee users 4096 Jul 28 10:40 virtual-trainee.pMhhgn
La commande ls -l –all –inode ne peut pas être écrite ls -l –allinode :
opensuse:/tmp # ls -l --all --inode total 176 104001 drwxrwxrwt 34 root root 4096 Nov 8 16:42 . 2 drwxr-xr-x 21 root root 4096 Oct 19 14:20 .. 104700 drwxrwxrwt 2 root root 4096 Oct 20 15:41 .ICE-unix 105191 -r--r--r-- 1 root root 11 Oct 20 15:01 .X0-lock 104701 drwxrwxrwt 2 root root 4096 Oct 20 15:01 .X11-unix 106881 srwxr-xr-x 1 trainee users 0 Aug 2 08:07 .com.sun.deploy.net.socket.4492.457798194027358583.AF_UNIX 104881 drwx------ 2 trainee users 4096 Oct 20 15:41 .esd-1000 104825 drwx------ 2 gdm gdm 4096 Oct 20 15:41 .esd-107 105321 drwxr-xr-x 2 trainee users 4096 Jul 28 11:24 SimpleHelp1674393770722982080 106886 drwxr-xr-x 2 trainee users 4096 Aug 2 08:07 SimpleHelp2670031095574134323 105159 -rw-r--r-- 1 root root 49 Nov 8 16:35 greptest 106887 drwxr-xr-x 2 trainee users 4096 Aug 2 08:07 hsperfdata_trainee 106884 drwx------ 2 trainee users 4096 Jul 28 11:22 icedteaplugin-trainee 106883 -rw-r--r-- 1 trainee users 0 Aug 2 08:07 jar_cache6202297203218743135.tmp 106885 -rw-r--r-- 1 trainee users 0 Aug 2 08:07 jar_cache7316512180383045650.tmp 105219 drwx------ 2 trainee users 4096 Oct 19 14:20 keyring-386sie 104733 drwx------ 2 trainee users 4096 May 24 10:15 keyring-39MtBR 107528 drwx------ 2 trainee users 4096 Oct 20 15:41 keyring-4Q8xoi 105182 drwx------ 2 trainee users 4096 Aug 2 08:06 keyring-6DhwTd 105275 drwx------ 2 trainee users 4096 Jun 1 11:20 keyring-eNDXzS 107511 drwx------ 2 trainee users 4096 Nov 7 12:44 mozilla-media-cache 106903 drwxr-xr-x 2 trainee users 4096 Jul 28 11:16 netx-native-25662 106986 drwxr-xr-x 2 trainee users 4096 Jul 28 11:21 netx-native-63491 104709 drwx------ 2 gdm gdm 4096 Oct 20 15:41 orbit-gdm 104843 drwx------ 2 trainee users 12288 Nov 8 16:06 orbit-trainee 107524 drwx------ 2 trainee users 4096 Nov 7 12:46 plugtmp 104870 drwx------ 2 trainee users 4096 Oct 20 15:41 pulse-ThNmqyY7uQEz 104731 drwx------ 2 gdm gdm 4096 Oct 20 15:41 pulse-l0HmhbrKIQBb 106981 -rw-r--r-- 1 root root 125 Nov 8 16:42 scriptawk 105002 drwxr-xr-x 2 trainee users 4096 May 24 10:15 tracker-trainee 105181 drwxr-xr-x 2 root root 4096 Jul 28 10:57 unique 122770 -rw-r--r-- 1 root root 17034 Jul 28 11:12 vboxguest-Module.symvers 107104 drwx------ 2 trainee users 4096 Oct 19 11:25 virtual-trainee.0Eb5WF 104956 drwx------ 2 trainee users 4096 May 24 10:15 virtual-trainee.0pd1zs 105289 drwx------ 2 trainee users 4096 Jun 1 11:20 virtual-trainee.61wRJA 105313 drwx------ 2 trainee users 4096 Aug 2 08:06 virtual-trainee.Cufrrn 105304 drwx------ 2 trainee users 4096 Jul 28 11:14 virtual-trainee.KXFvE2 107111 drwx------ 2 trainee users 4096 Oct 20 15:41 virtual-trainee.L5gYXn 107105 drwx------ 2 trainee users 4096 Oct 4 11:04 virtual-trainee.QVeXhm 107109 drwx------ 2 trainee users 4096 Oct 19 14:20 virtual-trainee.WzpGmw 104942 drwx------ 2 trainee users 4096 Jul 28 10:40 virtual-trainee.pMhhgn opensuse:/tmp # ls -l --allinode ls: unrecognized option '--allinode' Try `ls --help' for more information.
<note important> Par convention, les options prenant un argument ne sont pas combinées avec les autres options. </note>
La manipulation de fichiers textes utilise des expressions régulières. Sous Linux il existe deux types d'expressions régulières :
Les expressions régulières utilisent des caractères spéciaux. Certains caractères sont communs aux Erb et aux Ere :
Caractère spécial | Description |
---|---|
^ | Trouver la chaîne au début de la ligne |
$ | Trouver la chaîne à la fin de la ligne |
\ | Annuler l'effet spécial du caractère suivant |
[ ] | Trouver n'importe quel des caractères entre les crochets |
[^] | Exclure les caractères entre crochets |
. | Trouver n'importe quel caractère sauf à la fin de la ligne |
* | Trouver 0 ou plus du caractère qui précède |
\< | Trouver la chaîne au début d'un mot |
\> | Trouver la chaîne à la fin d'un mot |
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 |
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 |
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 :
fenestrOS fenestros 555-5555 f .fenestros .fe £
Placez ce fichier dans le répertoire /tmp :
opensuse:~# mv /home/trainee/Téléchargements/greptest.txt /tmp/greptest
Recherchez maintenant toute ligne du fichier /tmp/greptest contenant au moins une lettre :
opensuse:~ # grep '[a-zA-Z]' /tmp/greptest fenestrOS fenestros f .fenestros .fe
Recherchez maintenant toute ligne contenant au moins une lettre ou un chiffre :
opensuse:~ # 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 :
opensuse:~ # grep '[0-9]\{3\}-[0-9]\{4\}' /tmp/greptest 555-5555
Recherchez maintenant toute ligne contenant exactement un caractère :
opensuse:~ # 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 :
opensuse:~ # 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>
Les options de cette commande sont :
opensuse:~ # grep --help Usage: grep [OPTION]... PATTERN [FILE]... Search for PATTERN in each FILE or standard input. PATTERN is, by default, a basic regular expression (BRE). Example: grep -i 'hello world' menu.h main.c Regexp selection and interpretation: -E, --extended-regexp PATTERN is an extended regular expression (ERE) -F, --fixed-strings PATTERN is a set of newline-separated fixed strings -G, --basic-regexp PATTERN is a basic regular expression (BRE) -P, --perl-regexp PATTERN is a Perl regular expression -e, --regexp=PATTERN use PATTERN for matching -f, --file=FILE obtain PATTERN from FILE -i, --ignore-case ignore case distinctions -w, --word-regexp force PATTERN to match only whole words -x, --line-regexp force PATTERN to match only whole lines -z, --null-data a data line ends in 0 byte, not newline 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' means `grep -E'. `fgrep' means `grep -F'. Direct invocation as either `egrep' or `fgrep' is deprecated. With no FILE, or when FILE is -, read standard input. If less than two FILEs are given, assume -h. Exit status is 0 if any line was selected, 1 otherwise; if any error occurs and -q was not given, the exit status is 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 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 :
# 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 :
opensuse:~ # 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 :
opensuse:~ # egrep -v '^(#|$)' /tmp/greptest > /tmp/greptest1 opensuse:~ # 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érer facilement un fichier ne contenant que les directives activées. </note>
Les options de cette commande sont :
opensuse:~ # egrep --help Usage: egrep [OPTION]... PATTERN [FILE]... Search for PATTERN in each FILE or standard input. PATTERN is an extended regular expression (ERE). Example: egrep -i 'hello world' menu.h main.c Regexp selection and interpretation: -e, --regexp=PATTERN use PATTERN for matching -f, --file=FILE obtain PATTERN from FILE -i, --ignore-case ignore case distinctions -w, --word-regexp force PATTERN to match only whole words -x, --line-regexp force PATTERN to match only whole lines -z, --null-data a data line ends in 0 byte, not newline 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) Invocation as `egrep' is deprecated; use `grep -E' instead. With no FILE, or when FILE is -, read standard input. If less than two FILEs are given, assume -h. Exit status is 0 if any line was selected, 1 otherwise; if any error occurs and -q was not given, the exit status is 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 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 :
# 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 ^ :
opensuse:~ # fgrep '^' /tmp/greptest ^ voici une ligne pour la recherche fgrep
Comparez le résultat ci-dessus avec celui de la commande grep :
opensuse:~ # 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 :
opensuse:~ # grep '^\^' /tmp/greptest ^ voici une ligne pour la recherche fgrep
Les options de cette commande sont :
opensuse:~ # fgrep --help Usage: fgrep [OPTION]... PATTERN [FILE]... Search for PATTERN in each FILE or standard input. PATTERN is a set of newline-separated fixed strings. Example: fgrep -i 'hello world' menu.h main.c Regexp selection and interpretation: -e, --regexp=PATTERN use PATTERN for matching -f, --file=FILE obtain PATTERN from FILE -i, --ignore-case ignore case distinctions -w, --word-regexp force PATTERN to match only whole words -x, --line-regexp force PATTERN to match only whole lines -z, --null-data a data line ends in 0 byte, not newline 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) Invocation as `fgrep' is deprecated; use `grep -F' instead. With no FILE, or when FILE is -, read standard input. If less than two FILEs are given, assume -h. Exit status is 0 if any line was selected, 1 otherwise; if any error occurs and -q was not given, the exit status is 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 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 la 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 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 :
opensuse:~ # sed '1,10d' /etc/services | more # See also: services(5), http://www.sethwklein.net/projects/iana-etc/ # # PORT NUMBERS # # (last updated 2008-01-25) # # The port numbers are divided into three ranges: the Well Known Ports, # the Registered Ports, and the Dynamic and/or Private Ports. # # The Well Known Ports are those from 0 through 1023. # # DCCP Well Known ports SHOULD NOT be used without IANA registration. # The registration procedure is defined in [RFC4340], Section 19.9. # # The Registered Ports are those from 1024 through 49151 # # DCCP Registered ports SHOULD NOT be used without IANA registration. # The registration procedure is defined in [RFC4340], Section 19.9. # # The Dynamic and/or Private Ports are those from 49152 through 65535 # # A value of 0 in the port numbers registry below indicates that no port # has been allocated. # # ************************************************************************ # * PLEASE NOTE THE FOLLOWING: * # * * # * IESG STATEMENT TO THE IANA * # * THE IESG BELIEVES THAT IANA MAY ALLOCATE AN ADDITIONAL PORT IN * # * THE 'USER PORT' RANGE TO PROTOCOLS WHOSE CURRENT PORT ALLOCATION * # * REQUIRES ACCESS TO A PRIVILEGED PORT. THIS ALLOCATION SHOULD NOT * # * BE AUTOMATIC, BUT MAY OCCUR UPON APPLICATION BY AN INTERESTED * # * PARTY WHOSE APPLICATION WOULD OTHERWISE FIT IANA'S POLICIES. * # * * # * 1. UNASSIGNED PORT NUMBERS SHOULD NOT BE USED. THE IANA WILL ASSIGN * # * THE NUMBER FOR THE PORT AFTER YOUR APPLICATION HAS BEEN APPROVED. * # * * # * 2. ASSIGNMENT OF A PORT NUMBER DOES NOT IN ANY WAY IMPLY AN * # * ENDORSEMENT OF AN APPLICATION OR PRODUCT, AND THE FACT THAT NETWORK * --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 # :
opensuse:~ # sed '/^#/d' /etc/services | more tcpmux 1/tcp # TCP Port Service Multiplexer tcpmux 1/udp # TCP Port Service Multiplexer compressnet 2/tcp # Management Utility compressnet 2/udp # Management Utility compressnet 3/tcp # Compression Process compressnet 3/udp # Compression Process rje 5/tcp # Remote Job Entry rje 5/udp # Remote Job Entry echo 7/tcp # Echo echo 7/udp # Echo discard 9/tcp # Discard discard 9/udp # Discard discard 9/sctp # Discard discard 9/dccp # Discard SC:DISC systat 11/tcp # Active Users systat 11/udp # Active Users daytime 13/tcp # Daytime (RFC 867) daytime 13/udp # Daytime (RFC 867) qotd 17/tcp # Quote of the Day qotd 17/udp # Quote of the Day msp 18/tcp # Message Send Protocol msp 18/udp # Message Send Protocol chargen 19/tcp # Character Generator chargen 19/udp # Character Generator ftp-data 20/tcp # File Transfer [Default Data] ftp-data 20/udp # File Transfer [Default Data] ftp-data 20/sctp # FTP ftp 21/tcp # File Transfer [Control] ftp 21/udp # File Transfer [Control] ftp 21/sctp # FTP ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp # SSH Remote Login Protocol ssh 22/sctp # SSH telnet 23/tcp # Telnet telnet 23/udp # Telnet smtp 25/tcp # Simple Mail Transfer smtp 25/udp # Simple Mail Transfer nsw-fe 27/tcp # NSW User System FE nsw-fe 27/udp # NSW User System FE --More--
<note important> Notez que l'ERb est entourée des caractères / et /. </note>
La commande sed vous permet d'afficher à l'écran certaines lignes spécifiées en utilisant la commande p :
opensuse:~ # sed '1,2p' /etc/passwd at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash avahi:x:103:105:User for Avahi:/var/run/avahi-daemon:/bin/false avahi:x:103:105:User for Avahi:/var/run/avahi-daemon:/bin/false bin:x:1:1:bin:/bin:/bin/bash daemon:x:2:2:Daemon:/sbin:/bin/bash dnsmasq:x:102:65534:dnsmasq:/var/lib/empty:/bin/false ftp:x:40:49:FTP account:/srv/ftp:/bin/bash games:x:12:100:Games account:/var/games:/bin/bash gdm:x:107:109:Gnome Display Manager daemon:/var/lib/gdm:/bin/false lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash messagebus:x:101:104:User for D-Bus:/var/run/dbus:/bin/false news:x:9:13:News system:/etc/news:/bin/bash nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash ntp:x:74:103:NTP daemon:/var/lib/ntp:/bin/false postfix:x:51:51:Postfix Daemon:/var/spool/postfix:/bin/false pulse:x:105:107:PulseAudio daemon:/var/lib/pulseaudio:/sbin/nologin root:x:0:0:root:/root:/bin/bash rtkit:x:104:106:RealtimeKit:/proc:/bin/false sshd:x:100:102:SSH daemon:/var/lib/sshd:/bin/false statd:x:106:65534:NFS statd daemon:/var/lib/nfs:/sbin/nologin usbmux:x:108:65534:usbmuxd daemon:/var/lib/usbmuxd:/sbin/nologin uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false trainee:x:1000:100:trainee:/home/trainee:/bin/bash vboxadd:x:109:1::/var/run/vboxadd:/bin/false
<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 :
opensuse:~ # sed -n '1,2p' /etc/passwd at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash avahi:x:103:105:User for Avahi:/var/run/avahi-daemon:/bin/false
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 :
opensuse:~ # sed -n '/^#/!w /tmp/sedtest' /etc/services opensuse:~ # more /tmp/sedtest tcpmux 1/tcp # TCP Port Service Multiplexer tcpmux 1/udp # TCP Port Service Multiplexer compressnet 2/tcp # Management Utility compressnet 2/udp # Management Utility compressnet 3/tcp # Compression Process compressnet 3/udp # Compression Process rje 5/tcp # Remote Job Entry rje 5/udp # Remote Job Entry echo 7/tcp # Echo echo 7/udp # Echo discard 9/tcp # Discard discard 9/udp # Discard discard 9/sctp # Discard discard 9/dccp # Discard SC:DISC systat 11/tcp # Active Users systat 11/udp # Active Users daytime 13/tcp # Daytime (RFC 867) daytime 13/udp # Daytime (RFC 867) qotd 17/tcp # Quote of the Day qotd 17/udp # Quote of the Day msp 18/tcp # Message Send Protocol msp 18/udp # Message Send Protocol chargen 19/tcp # Character Generator chargen 19/udp # Character Generator ftp-data 20/tcp # File Transfer [Default Data] ftp-data 20/udp # File Transfer [Default Data] ftp-data 20/sctp # FTP ftp 21/tcp # File Transfer [Control] ftp 21/udp # File Transfer [Control] ftp 21/sctp # FTP ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp # SSH Remote Login Protocol ssh 22/sctp # SSH telnet 23/tcp # Telnet telnet 23/udp # Telnet smtp 25/tcp # Simple Mail Transfer smtp 25/udp # Simple Mail Transfer nsw-fe 27/tcp # NSW User System FE nsw-fe 27/udp # NSW User System FE --More--(0%)
La commande s permet de procéder à une substitution :
opensuse:~ # echo "user1,user2,user3" > /tmp/sedtest1 opensuse:~ # 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>
Les options de cette commande sont :
opensuse:~ # sed --help Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]... -n, --quiet, --silent suppress automatic printing of pattern space -e script, --expression=script add the script to the commands to be executed -f script-file, --file=script-file add the contents of script-file to the commands to be executed --follow-symlinks follow symlinks when processing in place -i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if extension supplied) -l N, --line-length=N specify the desired line-wrap length for the `l' command --posix disable all GNU extensions. -r, --regexp-extended use extended regular expressions in the script. -s, --separate consider files as separate rather than as a single continuous long stream. -u, --unbuffered load minimal amounts of data from the input files and flush the output buffers more often --help display this help and exit --version output version information and exit If no -e, --expression, -f, or --file option is given, then the first non-option argument is taken as the sed script to interpret. All remaining arguments are names of input files; if no input files are specified, then the standard input is read. 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.
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]
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 :
opensuse:~ # ls -l | awk '{print $8 $3 $4}' 12:57rootroot 2011rootroot 2005rootroot 11:10rootroot 07:59rootroot 2011rootroot 2011rootroot 10:55rootroot 07:59rootroot 17:10rootroot 08:55rootroot 15:54rootroot 11:03rootroot 17:06rootroot 16:08rootroot 15:48rootroot 2011rootroot 17:08rootroot 2011rootroot 15:39rootroot 2011rootroot 09:47rootroot 11:49rootroot 10:04rootroot 11:54rootroot 08:57rootroot 10:12rootroot 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 :
opensuse:~ # ls -l | awk '{print $8 " " $3 " " $4}' 12:57 root root 2011 root root 2005 root root 11:10 root root 07:59 root root 2011 root root 2011 root root 10:55 root root 07:59 root root 17:10 root root 08:55 root root 15:54 root root 11:03 root root 17:06 root root 16:08 root root 15:48 root root 2011 root root 17:08 root root 2011 root root 15:39 root root 2011 root root 09:47 root root 11:49 root root 10:04 root root 11:54 root root 08:57 root root 10:12 root root 2011 root root
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 :
awk sélectionne des lignes en utilisant un opérateur de correspondance ou de non-correspondance :
Opérateur | Condition |
---|---|
~ | Correspondance |
!~ | Non-correspondance |
Les opérateurs sont :
Opérateur | Condition |
---|---|
< | Inférieur |
<= | Inférieur ou égal |
== | Egal |
!= | Différent |
> | Supérieur |
>= | Supérieur ou égal |
Les opérateurs sont :
Opérateur logique | Condition |
---|---|
|| | OU |
&& | ET |
! | NON |
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“ |
Quand un programme awk comporte plusieurs clauses composées de critères et d'actions, il convient de d'écrire un script awk. Ce script comporte trois sections :
<note important>
</note>
Par exemple :
opensuse:~ # cd /tmp opensuse:/tmp # cat > scriptawk BEGIN { print "Liste des systèmes de fichiers montés"} {print $0} END { print "====================================="} [^D]
<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 :
opensuse:/tmp # awk -f scriptawk /etc/fstab Liste des systèmes de fichiers montés /dev/sda3 swap swap defaults 0 0 /dev/sda2 / ext3 acl,user_xattr 1 1 /dev/sda1 /boot ext3 acl,user_xattr 1 2 proc /proc proc defaults 0 0 sysfs /sys sysfs noauto 0 0 debugfs /sys/kernel/debug debugfs noauto 0 0 usbfs /proc/bus/usb usbfs noauto 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 =====================================
<note important> Notez l'utilisation de l'option -f qui applique le script awk au fichier donné en argument. </note>
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 |
awk peut utiliser des structures de contrôle.
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
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] }
La syntaxe de la structure de contrôle while est la suivante :
while condition { commande commande ... }
La syntaxe de la structure de contrôle do-while est la suivante :
do { commande commande ... } while condition
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 :
# 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 :
opensuse:/tmp # cd ~ opensuse:~ # mv /home/trainee/Téléchargements/ventes_materiel.txt /root/ventes_materiel
Téléchargez maintenant le script 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 :
opensuse:~ # mv /home/trainee/Téléchargements/ventes.awk /root
Ce script comporte 13 lignes et a pour but de calculer le nombre total de PC vendus dans les trois départements cités dans le fichier ventes_materiel :
1 # BEGIN 2 BEGIN { 3 FS="§" 4 } 5 # TABLEAU 6 $1 !~ /^#/ && $1 !~ /^$/ { 7 ventes[$1]+=$2 8 } 9 # END 10 END { 11 for (pc in ventes) 12 printf("Type PC : %s \t Ventes (06+13+83) : %10d\n",pc,ventes[pc]); 13 }
Dans ce script vous noterez :
Appliquez maintenant votre script awk au fichier ventes_materiel :
opensuse:~ # awk -f ventes.awk ventes_materiel Type PC : Portables Ventes (06+13+83) : 175 Type PC : Serveurs Ventes (06+13+83) : 41 Type PC : Desktops Ventes (06+13+83) : 329 Type PC : Tablettes Ventes (06+13+83) : 76
Les options de la commande sont :
opensuse:~ # awk --help Usage: awk [POSIX or GNU style options] -f progfile [--] file ... Usage: awk [POSIX or GNU style options] [--] 'program' file ... POSIX options: GNU long options: -f progfile --file=progfile -F fs --field-separator=fs -v var=val --assign=var=val -m[fr] val -W compat --compat -W copyleft --copyleft -W copyright --copyright -W dump-variables[=file] --dump-variables[=file] -W exec=file --exec=file -W gen-po --gen-po -W help --help -W lint[=fatal] --lint[=fatal] -W lint-old --lint-old -W non-decimal-data --non-decimal-data -W profile[=file] --profile[=file] -W posix --posix -W re-interval --re-interval -W source=program-text --source=program-text -W traditional --traditional -W usage --usage -W use-lc-numeric --use-lc-numeric -W version --version To report bugs, see node `Bugs' in `gawk.info', which is section `Reporting Problems and Bugs' in the printed version. gawk is a pattern scanning and processing language. By default it reads standard input and writes standard output. Examples: gawk '{ sum += $1 }; END { print sum }' file gawk -F: '{ print $1 }' /etc/passwd
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@centos ~]# cut -c1-7 /etc/passwd root:x: bin:x:1 daemon: adm:x:3 lp:x:4: sync:x: shutdow halt:x: mail:x: uucp:x: operato games:x gopher: ftp:x:1 nobody: dbus:x: usbmuxd avahi-a vcsa:x: rpc:x:3 rtkit:x abrt:x: nscd:x: tcpdump haldaem apache: nslcd:x saslaut postfix avahi:x ntp:x:3 rpcuser nfsnobo sshd:x: pulse:x gdm:x:4 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@centos ~]# cut -c1-5,10-15,30- /etc/passwd root:0:rootsh bin:x:bin:/gin daemo2:2:dain/nologin adm:x:adm:/nologin lp:x:lp:/vabin/nologin sync:0:syncnc shutdx:6:0::/sbin/shutdown halt:0:haltalt mail:12:maiail:/sbin/nologin uucp::14:uuuucp:/sbin/nologin operax:11:0t:/sbin/nologin games2:100:es:/sbin/nologin gophe13:30:pher:/sbin/nologin ftp:x50:FTP:/sbin/nologin nobod99:99:/nologin dbus::81:Syus:/:/sbin/nologin usbmu:113:1r:/:/sbin/nologin avahioipd:x IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin vcsa::69:vimemory owner:/dev:/sbin/nologin rpc:x32:Rpcar/cache/rpcbind:/sbin/nologin rtkit99:499proc:/sbin/nologin abrt:8:498:in/nologin nscd::28:NSbin/nologin tcpdu:72:72gin halda:x:68:/:/sbin/nologin apach48:48:w:/sbin/nologin nslcd5:55:Lr:/:/sbin/nologin saslax:497: user":/var/empty/saslauth:/sbin/nologin postf:89:89ostfix:/sbin/nologin avahi0:70:ASD Stack:/var/run/avahi-daemon:/sbin/nologin ntp:x38::/eologin rpcus:29:29ser:/var/lib/nfs:/sbin/nologin nfsno:x:655mous NFS User:/var/lib/nfs:/sbin/nologin sshd::74:Prted SSH:/var/empty/sshd:/sbin/nologin pulse96:494stem Daemon:/var/run/pulse:/sbin/nologin gdm:x42::/vin/nologin train:500:5me/trainee:/bin/bash vboxa:495:1xadd:/bin/false
Pour sélectionner les champs 2, 4 et 6 du fichier, il convient d'utiliser la commande suivante :
[root@centos ~]# cut -d: -f2,4,6 /etc/passwd x:0:/root x:1:/bin x:2:/sbin x:4:/var/adm x:7:/var/spool/lpd x:0:/sbin x:0:/sbin x:0:/sbin x:12:/var/spool/mail x:14:/var/spool/uucp x:0:/root x:100:/usr/games x:30:/var/gopher x:50:/var/ftp x:99:/ x:81:/ x:113:/ x:170:/var/lib/avahi-autoipd x:69:/dev x:32:/var/cache/rpcbind x:499:/proc x:498:/etc/abrt x:28:/ x:72:/ x:68:/ x:48:/var/www x:55:/ x:495:/var/empty/saslauth x:89:/var/spool/postfix x:70:/var/run/avahi-daemon x:38:/etc/ntp x:29:/var/lib/nfs x:65534:/var/lib/nfs x:74:/var/empty/sshd x:494:/var/run/pulse x:42:/var/lib/gdm x:500:/home/trainee x:1:/var/run/vboxadd
Les options de cette commande sont :
[root@centos ~]# 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 select only these fields; also print any line that contains no delimiter character, unless the -s option is specified -n with -b: don't split multibyte characters --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 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
Les options de cette commande sont :
opensuse:~ # uniq --help Usage: uniq [OPTION]... [INPUT [OUTPUT]] Filter adjacent matching lines from INPUT (or standard input), writing to OUTPUT (or standard output). With no options, matching lines are merged to the first occurrence. Mandatory arguments to long options are mandatory for short options too. -c, --count prefix lines by the number of occurrences -d, --repeated only print duplicate lines -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 compare no more than N characters in lines --help display this help and exit --version output version information and exit A field is a run of blanks (usually spaces and/or TABs), then non-blank characters. Fields are skipped before chars. Note: 'uniq' does not detect repeated lines unless they are adjacent. You may want to sort the input first, or use `sort -u' without `uniq'. Also, comparisons honor the rules specified by `LC_COLLATE'. Report uniq bugs to bug-coreutils@gnu.org GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> Report uniq translation bugs to <http://translationproject.org/team/> For complete documentation, run: info coreutils 'uniq invocation'
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.
opensuse:~ # cat /etc/passwd | tr "[a-z]" "[A-Z]" AT:X:25:25:BATCH JOBS DAEMON:/VAR/SPOOL/ATJOBS:/BIN/BASH AVAHI:X:103:105:USER FOR AVAHI:/VAR/RUN/AVAHI-DAEMON:/BIN/FALSE BIN:X:1:1:BIN:/BIN:/BIN/BASH DAEMON:X:2:2:DAEMON:/SBIN:/BIN/BASH DNSMASQ:X:102:65534:DNSMASQ:/VAR/LIB/EMPTY:/BIN/FALSE FTP:X:40:49:FTP ACCOUNT:/SRV/FTP:/BIN/BASH GAMES:X:12:100:GAMES ACCOUNT:/VAR/GAMES:/BIN/BASH GDM:X:107:109:GNOME DISPLAY MANAGER DAEMON:/VAR/LIB/GDM:/BIN/FALSE LP:X:4:7:PRINTING DAEMON:/VAR/SPOOL/LPD:/BIN/BASH MAIL:X:8:12:MAILER DAEMON:/VAR/SPOOL/CLIENTMQUEUE:/BIN/FALSE MAN:X:13:62:MANUAL PAGES VIEWER:/VAR/CACHE/MAN:/BIN/BASH MESSAGEBUS:X:101:104:USER FOR D-BUS:/VAR/RUN/DBUS:/BIN/FALSE NEWS:X:9:13:NEWS SYSTEM:/ETC/NEWS:/BIN/BASH NOBODY:X:65534:65533:NOBODY:/VAR/LIB/NOBODY:/BIN/BASH NTP:X:74:103:NTP DAEMON:/VAR/LIB/NTP:/BIN/FALSE POSTFIX:X:51:51:POSTFIX DAEMON:/VAR/SPOOL/POSTFIX:/BIN/FALSE PULSE:X:105:107:PULSEAUDIO DAEMON:/VAR/LIB/PULSEAUDIO:/SBIN/NOLOGIN ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH RTKIT:X:104:106:REALTIMEKIT:/PROC:/BIN/FALSE SSHD:X:100:102:SSH DAEMON:/VAR/LIB/SSHD:/BIN/FALSE STATD:X:106:65534:NFS STATD DAEMON:/VAR/LIB/NFS:/SBIN/NOLOGIN USBMUX:X:108:65534:USBMUXD DAEMON:/VAR/LIB/USBMUXD:/SBIN/NOLOGIN UUCP:X:10:14:UNIX-TO-UNIX COPY SYSTEM:/ETC/UUCP:/BIN/BASH WWWRUN:X:30:8:WWW DAEMON APACHE:/VAR/LIB/WWWRUN:/BIN/FALSE TRAINEE:X:1000:100:TRAINEE:/HOME/TRAINEE:/BIN/BASH VBOXADD:X:109: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 :
opensuse:~ # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 08:00:27:5A:43:78 inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe5a:4378/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4142 errors:0 dropped:0 overruns:0 frame:0 TX packets:5118 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2172068 (2.0 Mb) TX bytes:4020334 (3.8 Mb) opensuse:~ # ifconfig eth0 | grep "inet" inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe5a:4378/64 Scope:Link opensuse:~ # ifconfig eth0 | grep "inet" | grep -v "inet6" inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 opensuse:~ # ifconfig eth0 | grep "inet" | grep -v "inet6" | tr -s " " ":" :inet:addr:10.0.2.15:Bcast:10.0.2.255:Mask:255.255.255.0 opensuse:~ # 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>
Les options de cette commande sont :
opensuse:~ # tr --help Usage: tr [OPTION]... SET1 [SET2] Translate, squeeze, and/or delete characters from standard input, writing to standard output. -c, -C, --complement use the complement of SET1 -d, --delete delete characters in SET1, do not translate -s, --squeeze-repeats replace each input sequence of a repeated character that is listed in SET1 with a single occurrence of that character -t, --truncate-set1 first truncate SET1 to length of SET2 --help display this help and exit --version output version information and exit SETs are specified as strings of characters. Most represent themselves. Interpreted sequences are: \NNN character with octal value NNN (1 to 3 octal digits) \\ backslash \a audible BEL \b backspace \f form feed \n new line \r return \t horizontal tab \v vertical tab CHAR1-CHAR2 all characters from CHAR1 to CHAR2 in ascending order [CHAR*] in SET2, copies of CHAR until length of SET1 [CHAR*REPEAT] REPEAT copies of CHAR, REPEAT octal if starting with 0 [:alnum:] all letters and digits [:alpha:] all letters [:blank:] all horizontal whitespace [:cntrl:] all control characters [:digit:] all digits [:graph:] all printable characters, not including space [:lower:] all lower case letters [:print:] all printable characters, including space [:punct:] all punctuation characters [:space:] all horizontal or vertical whitespace [:upper:] all upper case letters [:xdigit:] all hexadecimal digits [=CHAR=] all characters which are equivalent to CHAR Translation occurs if -d is not given and both SET1 and SET2 appear. -t may be used only when translating. SET2 is extended to length of SET1 by repeating its last character as necessary. Excess characters of SET2 are ignored. Only [:lower:] and [:upper:] are guaranteed to expand in ascending order; used in SET2 while translating, they may only be used in pairs to specify case conversion. -s uses SET1 if not translating nor deleting; else squeezing uses SET2 and occurs after translation or deletion. Report tr bugs to bug-coreutils@gnu.org GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> Report tr translation bugs to <http://translationproject.org/team/> For complete documentation, run: info coreutils 'tr invocation'
La commande paste concatène les lignes de n fichiers. Par exemple :
opensuse:~ # paste -d: /etc/passwd /etc/shadow at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash:at:*:15111:0:99999:7::: avahi:x:103:105:User for Avahi:/var/run/avahi-daemon:/bin/false:avahi:*:15035:0:99999:7::: bin:x:1:1:bin:/bin:/bin/bash:bin:*:15035:::::: daemon:x:2:2:Daemon:/sbin:/bin/bash:daemon:*:15035:::::: dnsmasq:x:102:65534:dnsmasq:/var/lib/empty:/bin/false:dnsmasq:*:15035:0:99999:7::: ftp:x:40:49:FTP account:/srv/ftp:/bin/bash:ftp:*:15035:::::: games:x:12:100:Games account:/var/games:/bin/bash:games:*:15035:::::: gdm:x:107:109:Gnome Display Manager daemon:/var/lib/gdm:/bin/false:gdm:*:15035:0:99999:7::: lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash:lp:*:15035:::::: mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false:mail:*:15035:::::: man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash:man:*:15035:::::: messagebus:x:101:104:User for D-Bus:/var/run/dbus:/bin/false:messagebus:*:15035:0:99999:7::: news:x:9:13:News system:/etc/news:/bin/bash:news:*:15035:::::: nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash:nobody:*:15035:::::: ntp:x:74:103:NTP daemon:/var/lib/ntp:/bin/false:ntp:*:15035:0:99999:7::: postfix:x:51:51:Postfix Daemon:/var/spool/postfix:/bin/false:postfix:*:15035:0:99999:7::: pulse:x:105:107:PulseAudio daemon:/var/lib/pulseaudio:/sbin/nologin:pulse:*:15035:0:99999:7::: root:x:0:0:root:/root:/bin/bash:root:$2a$05$vjaGlr9oXOAbGv1rwcoYn.zd59GevXgDrPPESbsikCTwrnvMfctBS:15111:::::: rtkit:x:104:106:RealtimeKit:/proc:/bin/false:rtkit:*:15035:0:99999:7::: sshd:x:100:102:SSH daemon:/var/lib/sshd:/bin/false:sshd:*:15035:0:99999:7::: statd:x:106:65534:NFS statd daemon:/var/lib/nfs:/sbin/nologin:statd:*:15035:0:99999:7::: usbmux:x:108:65534:usbmuxd daemon:/var/lib/usbmuxd:/sbin/nologin:usbmux:*:15111:0:99999:7::: uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash:uucp:*:15035:::::: wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false:wwwrun:*:15035:::::: trainee:x:1000:100:trainee:/home/trainee:/bin/bash:trainee:$2a$05$KZSJtWwMIvyLcQJuxTbaHuXWokuhYVSSBp.yqUa606iGgTrpaY7R.:15111:0:99999:7::: vboxadd:x:109:1::/var/run/vboxadd:/bin/false:vboxadd:*:15183:0:99999:7:::
Les options de cette commande sont :
opensuse:~ # paste --help Usage: paste [OPTION]... [FILE]... Write lines consisting of the sequentially corresponding lines from each FILE, separated by TABs, to standard output. With no FILE, or when FILE is -, read standard input. Mandatory arguments to long options are mandatory for short options too. -d, --delimiters=LIST reuse characters from LIST instead of TABs -s, --serial paste one file at a time instead of in parallel --help display this help and exit --version output version information and exit Report paste bugs to bug-coreutils@gnu.org GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> Report paste translation bugs to <http://translationproject.org/team/> For complete documentation, run: info coreutils 'paste invocation'
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 :
opensuse:~ # dd if=/dev/zero of=/file bs=1024k count=250 250+0 records in 250+0 records out 262144000 bytes (262 MB) copied, 0.924002 s, 284 MB/s
Utilisez maintenant la commande split pour diviser ce fichier en morceaux de 50 Mo :
opensuse:~ # split -b 50m /file filepart opensuse:~ # ls -l | grep filepart -rw-r--r-- 1 root root 52428800 May 17 08:35 filepartaa -rw-r--r-- 1 root root 52428800 May 17 08:35 filepartab -rw-r--r-- 1 root root 52428800 May 17 08:35 filepartac -rw-r--r-- 1 root root 52428800 May 17 08:35 filepartad -rw-r--r-- 1 root root 52428800 May 17 08:35 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 :
opensuse:~ # cat fileparta* > newfile opensuse:~ # ls -l | grep new -rw-r--r-- 1 root root 262144000 May 17 08:36 newfile
Les options de cette commande sont :
[root@centos ~]# 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 indique les modifications à apporter à deux fichiers pour que ceux-ci soient identique.
Pour commencer, copiez le fichier /etc/passwd vers le répertoire /root :
opensuse:~ # cp /etc/passwd /root
Modifiez ensuite le fichier la ligne trainee du fichier /root/passwd ainsi :
... trainee10:x:1000:100:trainee:/home/trainee:/bin/bash ...
Supprimez les lignes postfix et pulse dans le fichier /root/passwd et ajoutez en fin de fichier la ligne suivante :
... Linux est super!
Comparez maintenant les deux fichiers :
opensuse:~ # diff /etc/passwd /root/passwd 16,17d15 < postfix:x:51:51:Postfix Daemon:/var/spool/postfix:/bin/false < pulse:x:105:107:PulseAudio daemon:/var/lib/pulseaudio:/sbin/nologin 25c23 < trainee:x:1000:100:trainee:/home/trainee:/bin/bash --- > trainee10:x:1000:100:trainee:/home/trainee:/bin/bash 26a25 > 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 16,17d15 indique qu'il faut supprimer les lignes 16 et 17 dans /etc/passwd car elle n'existent pas après la ligne 15 dans le fichier /root/passwd.
Le message 25c23 indique qu'il faut changer la ligne 25 dans /etc/passwd afin que celle-ci corresponde à la ligne 23 dans /root/passwd.
Le message 26a25 indique qu'à la ligne 26 dans /etc/passwd il faut ajouter la ligne 25 de /root/passwd.
Inversez maintenant l'ordre de comparaison :
opensuse:~ # diff /root/passwd /etc/passwd 15a16,17 > postfix:x:51:51:Postfix Daemon:/var/spool/postfix:/bin/false > pulse:x:105:107:PulseAudio daemon:/var/lib/pulseaudio:/sbin/nologin 23c25 < trainee10:x:1000:100:trainee:/home/trainee:/bin/bash --- > trainee:x:1000:100:trainee:/home/trainee:/bin/bash 25d26 < Linux est super!
<note important> Notez que les messages sont maintenant inversés. </note>
Les options de cette commande sont :
opensuse:~ # diff --help Usage: diff [OPTION]... FILES Compare files line by line. -i --ignore-case Ignore case differences in file contents. --ignore-file-name-case Ignore case when comparing file names. --no-ignore-file-name-case Consider case when comparing file names. -E --ignore-tab-expansion Ignore changes due to tab expansion. -b --ignore-space-change Ignore changes in the amount of white space. -w --ignore-all-space Ignore all white space. -B --ignore-blank-lines Ignore changes whose lines are all blank. -I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE. --strip-trailing-cr Strip trailing carriage return on input. -a --text Treat all files as text. -c -C NUM --context[=NUM] Output NUM (default 3) lines of copied context. -u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified context. --label LABEL Use LABEL instead of file name. -p --show-c-function Show which C function each change is in. -F RE --show-function-line=RE Show the most recent line matching RE. -q --brief Output only whether files differ. -e --ed Output an ed script. --normal Output a normal diff. -n --rcs Output an RCS format diff. -y --side-by-side Output in two columns. -W NUM --width=NUM Output at most NUM (default 130) print columns. --left-column Output only the left column of common lines. --suppress-common-lines Do not output common lines. -D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs. --GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT. --line-format=LFMT Similar, but format all input lines with LFMT. --LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT. LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'. GFMT may contain: %< lines from FILE1 %> lines from FILE2 %= lines common to FILE1 and FILE2 %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER LETTERs are as follows for new group, lower case for old group: F first line number L last line number N number of lines = L-F+1 E F-1 M L+1 LFMT may contain: %L contents of line %l contents of line, excluding any trailing newline %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number Either GFMT or LFMT may contain: %% % %c'C' the single character C %c'\OOO' the character with octal code OOO -l --paginate Pass the output through `pr' to paginate it. -t --expand-tabs Expand tabs to spaces in output. -T --initial-tab Make tabs line up by prepending a tab. --tabsize=NUM Tab stops are every NUM (default 8) print columns. --suppress-blank-empty Suppress space or tab before empty output lines. -r --recursive Recursively compare any subdirectories found. -N --new-file Treat absent files as empty. --unidirectional-new-file Treat absent first files as empty. -s --report-identical-files Report when two files are the same. -x PAT --exclude=PAT Exclude files that match PAT. -X FILE --exclude-from=FILE Exclude files that match any pattern in FILE. -S FILE --starting-file=FILE Start with FILE when comparing directories. --from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory. --to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory. --horizon-lines=NUM Keep NUM lines of the common prefix and suffix. -d --minimal Try hard to find a smaller set of changes. --speed-large-files Assume large files and many scattered small changes. -v --version Output version info. --help Output this help. FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'. If --from-file or --to-file is given, there are no restrictions on FILES. If a FILE is `-', read standard input. Exit status is 0 if inputs are the same, 1 if different, 2 if trouble. 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 compare les fichiers caractère par caractère. Par défaut la commande s'arrête à la première différence rencontrée :
opensuse:~ # cmp /root/passwd /etc/passwd /root/passwd /etc/passwd differ: char 776, line 16
L'option -l de la commande indique toutes les différences en trois colonnes :
opensuse:~ # cmp -l /root/passwd /etc/passwd | more cmp: EOF on /root/passwd 776 162 160 778 157 163 780 72 146 781 170 151 782 72 170 783 60 72 784 72 170 785 60 72 786 72 65 787 162 61 788 157 72 789 157 65 790 164 61 792 57 120 793 162 157 794 157 163 795 157 164 796 164 146 797 72 151 798 57 170 799 142 40 800 151 104 801 156 141 802 57 145 803 142 155 804 141 157 805 163 156 806 150 72 807 12 57 808 162 166 809 164 141 810 153 162 811 151 57 --More--
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.
Les options de cette commande sont :
opensuse:~ # cmp --help Usage: cmp [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]] Compare two files byte by byte. -b --print-bytes Print differing bytes. -i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input. -i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2 Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2. -l --verbose Output byte numbers and values of all differing bytes. -n LIMIT --bytes=LIMIT Compare at most LIMIT bytes. -s --quiet --silent Output nothing; yield exit status only. -v --version Output version info. --help Output this help. SKIP1 and SKIP2 are the number of bytes to skip in each file. SKIP values may be followed by the following multiplicative suffixes: kB 1000, K 1024, MB 1,000,000, M 1,048,576, GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y. If a FILE is `-' or missing, read standard input. Exit status is 0 if inputs are the same, 1 if different, 2 if trouble. 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 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 :
opensuse:~ # 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 opensuse:~ # 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
opensuse:~ # cd /tmp opensuse:/tmp # diff -u greptest greptest1 > greptest.patch
L'examen du fichier de patch démontre les modifications à apporter au fichier greptest :
opensuse:/tmp # cat greptest.patch --- greptest 2012-05-16 15:54:37.000000000 +0200 +++ greptest1 2012-05-16 15:52:58.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 :
opensuse:/tmp # patch < greptest.patch patching file greptest
Contrôlez maintenant le contenu du fichier greptest :
opensuse:/tmp # cat greptest fenestrOS fenestros 555-5555 f .fenestros .fe £
Les options de cette commande sont :
opensuse:/tmp # cd ~ opensuse:~ # 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. -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 est utilisée pour trouver toutes les chaînes de caractères qui peuvent être imprimés dans un ou plusieurs fichiers objets ou exécutables passés en argument. Un fichier objet est un fichier intermédiaire intervenant dans le processus de compilation.
Sous Linux et Unix, le format d'un fichier objet est le format ELF, (Executable and Linkable Format). Ce format est aussi utilisé pour :
Sans option, la commande strings trouve toutes les chaînes d'une longueur de 4 caractères ou plus suivies par un caractère non-imprimable :
opensuse:~ # strings /usr/bin/passwd | more /lib/ld-linux.so.2 SuSESuSE libpam_misc.so.0 __gmon_start__ _Jv_RegisterClasses misc_conv libpam.so.0 pam_start pam_strerror pam_chauthtok pam_end libldap-2.4.so.2 ldap_msgfree ldap_get_option ldap_get_dn ldap_result ldap_set_rebind_proc ldap_simple_bind_s ldap_initialize ldap_start_tls_s ldap_next_entry ldap_simple_bind ldap_value_free ldap_add_s ldap_err2string ldap_first_entry _fini ldap_next_attribute ldap_modify_s ldap_init ldap_get_values ldap_parse_result ldap_search_s --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 :
opensuse:~ # strings -t d /usr/bin/passwd | more 340 /lib/ld-linux.so.2 400 SuSESuSE 5309 libpam_misc.so.0 5326 __gmon_start__ 5341 _Jv_RegisterClasses 5361 misc_conv 5371 libpam.so.0 5383 pam_start 5393 pam_strerror 5406 pam_chauthtok 5420 pam_end 5428 libldap-2.4.so.2 5445 ldap_msgfree 5458 ldap_get_option 5474 ldap_get_dn 5486 ldap_result 5498 ldap_set_rebind_proc 5519 ldap_simple_bind_s 5538 ldap_initialize 5554 ldap_start_tls_s 5571 ldap_next_entry 5587 ldap_simple_bind 5604 ldap_value_free 5620 ldap_add_s 5631 ldap_err2string 5647 ldap_first_entry 5664 _fini 5670 ldap_next_attribute 5690 ldap_modify_s 5704 ldap_init 5714 ldap_get_values 5730 ldap_parse_result 5748 ldap_search_s --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 :
opensuse:~ # strings -t d -n 15 /usr/bin/passwd | more 340 /lib/ld-linux.so.2 5309 libpam_misc.so.0 5341 _Jv_RegisterClasses 5428 libldap-2.4.so.2 5458 ldap_get_option 5498 ldap_set_rebind_proc 5519 ldap_simple_bind_s 5538 ldap_initialize 5554 ldap_start_tls_s 5571 ldap_next_entry 5587 ldap_simple_bind 5604 ldap_value_free 5631 ldap_err2string 5647 ldap_first_entry 5670 ldap_next_attribute 5714 ldap_get_values 5730 ldap_parse_result 5788 ldap_set_option 5804 ldap_result2error 5822 ldap_first_attribute 5843 liblber-2.4.so.2 5887 __pthread_mutex_lock 5908 __pthread_mutex_unlock 5931 nis_local_directory 5951 nis_local_principal 5994 nis_clone_object 6032 nis_getservlist 6048 nis_free_object 6117 nis_modify_entry 6134 yp_get_default_domain 6156 nis_freeservlist 6173 libselinux.so.1 6189 is_selinux_enabled --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 :
opensuse:~ # strings -f /bin/* | grep "(c)" /bin/csh: @(#) Copyright (c) 1991 The Regents of the University of California. /bin/openvt: openvt 1.4b - (c) Jon Tombs 1994 /bin/ping: @(#) Copyright (c) 1989 The Regents of the University of California. /bin/ping6: @(#) Copyright (c) 1989 The Regents of the University of California. /bin/tcsh: @(#) Copyright (c) 1991 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>
Les options de cette commande sont :
[root@centos ~]# 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 elf64-x86-64 elf64-l1om elf64-little elf64-big elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex trad-core Report bugs to <http://bugzilla.redhat.com/bugzilla/>
La commande comm est utilisée pour comparer deux fichiers texte. La sortie de la commande sépare les lignes en trois catégories :
Utilisez la commande comm pour comparer les fichiers /etc/passwd et /root/passwd :
opensuse:~ # comm /etc/passwd /root/passwd at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash avahi:x:103:105:User for Avahi:/var/run/avahi-daemon:/bin/false bin:x:1:1:bin:/bin:/bin/bash daemon:x:2:2:Daemon:/sbin:/bin/bash dnsmasq:x:102:65534:dnsmasq:/var/lib/empty:/bin/false ftp:x:40:49:FTP account:/srv/ftp:/bin/bash games:x:12:100:Games account:/var/games:/bin/bash gdm:x:107:109:Gnome Display Manager daemon:/var/lib/gdm:/bin/false lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash messagebus:x:101:104:User for D-Bus:/var/run/dbus:/bin/false news:x:9:13:News system:/etc/news:/bin/bash nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash ntp:x:74:103:NTP daemon:/var/lib/ntp:/bin/false postfix:x:51:51:Postfix Daemon:/var/spool/postfix:/bin/false pulse:x:105:107:PulseAudio daemon:/var/lib/pulseaudio:/sbin/nologin root:x:0:0:root:/root:/bin/bash rtkit:x:104:106:RealtimeKit:/proc:/bin/false sshd:x:100:102:SSH daemon:/var/lib/sshd:/bin/false statd:x:106:65534:NFS statd daemon:/var/lib/nfs:/sbin/nologin usbmux:x:108:65534:usbmuxd daemon:/var/lib/usbmuxd:/sbin/nologin uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false comm: file 1 is not in sorted order comm: file 2 is not in sorted order trainee10:x:1000:100:trainee:/home/trainee:/bin/bash trainee:x:1000:100:trainee:/home/trainee:/bin/bash vboxadd:x:109: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 :
opensuse:~ # comm -12 /etc/passwd /root/passwd at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash avahi:x:103:105:User for Avahi:/var/run/avahi-daemon:/bin/false bin:x:1:1:bin:/bin:/bin/bash daemon:x:2:2:Daemon:/sbin:/bin/bash dnsmasq:x:102:65534:dnsmasq:/var/lib/empty:/bin/false ftp:x:40:49:FTP account:/srv/ftp:/bin/bash games:x:12:100:Games account:/var/games:/bin/bash gdm:x:107:109:Gnome Display Manager daemon:/var/lib/gdm:/bin/false lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash messagebus:x:101:104:User for D-Bus:/var/run/dbus:/bin/false news:x:9:13:News system:/etc/news:/bin/bash nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash ntp:x:74:103:NTP daemon:/var/lib/ntp:/bin/false root:x:0:0:root:/root:/bin/bash rtkit:x:104:106:RealtimeKit:/proc:/bin/false sshd:x:100:102:SSH daemon:/var/lib/sshd:/bin/false statd:x:106:65534:NFS statd daemon:/var/lib/nfs:/sbin/nologin usbmux:x:108:65534:usbmuxd daemon:/var/lib/usbmuxd:/sbin/nologin uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false comm: file 1 is not in sorted order comm: file 2 is not in sorted order vboxadd:x:109:1::/var/run/vboxadd:/bin/false
Les options de cette commande sont :
opensuse:~ # comm --help Usage: comm [OPTION]... FILE1 FILE2 Compare sorted files FILE1 and FILE2 line by line. With no options, produce three-column output. Column one contains lines unique to FILE1, column two contains lines unique to FILE2, and column three contains lines common to both files. -1 suppress column 1 (lines unique to FILE1) -2 suppress column 2 (lines unique to FILE2) -3 suppress column 3 (lines that appear in both files) --check-order check that the input is correctly sorted, even if all input lines are pairable --nocheck-order do not check that the input is correctly sorted --output-delimiter=STR separate columns with STR --help display this help and exit --version output version information and exit Note, comparisons honor the rules specified by `LC_COLLATE'. Examples: comm -12 file1 file2 Print only lines present in both file1 and file2. comm -3 file1 file2 Print lines in file1 not in file2, and vice versa. Report comm bugs to bug-coreutils@gnu.org GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> Report comm translation bugs to <http://translationproject.org/team/> For complete documentation, run: info coreutils 'comm invocation'
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 :
opensuse:~ # head /etc/passwd at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash avahi:x:103:105:User for Avahi:/var/run/avahi-daemon:/bin/false bin:x:1:1:bin:/bin:/bin/bash daemon:x:2:2:Daemon:/sbin:/bin/bash dnsmasq:x:102:65534:dnsmasq:/var/lib/empty:/bin/false ftp:x:40:49:FTP account:/srv/ftp:/bin/bash games:x:12:100:Games account:/var/games:/bin/bash gdm:x:107:109:Gnome Display Manager daemon:/var/lib/gdm:/bin/false lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false
Avec l'option -n, la valeur de x peut être spécifiée :
opensuse:~ # head -n 15 /etc/passwd at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash avahi:x:103:105:User for Avahi:/var/run/avahi-daemon:/bin/false bin:x:1:1:bin:/bin:/bin/bash daemon:x:2:2:Daemon:/sbin:/bin/bash dnsmasq:x:102:65534:dnsmasq:/var/lib/empty:/bin/false ftp:x:40:49:FTP account:/srv/ftp:/bin/bash games:x:12:100:Games account:/var/games:/bin/bash gdm:x:107:109:Gnome Display Manager daemon:/var/lib/gdm:/bin/false lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash messagebus:x:101:104:User for D-Bus:/var/run/dbus:/bin/false news:x:9:13:News system:/etc/news:/bin/bash nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash ntp:x:74:103:NTP daemon:/var/lib/ntp:/bin/false
La commande head peut également être utilisée pour afficher les premiers y octets en utilisant l'option -c :
opensuse:~ # head -c 150 /etc/passwd at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash avahi:x:103:105:User for Avahi:/var/run/avahi-daemon:/bin/false bin:x:1:1:bin:/bin:/bin/bash
Dans le cas où le y est négatif, la commande head affiche tous les octets du fichier sauf les derniers y octets :
opensuse:~ # head -c -150 /etc/passwd at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash avahi:x:103:105:User for Avahi:/var/run/avahi-daemon:/bin/false bin:x:1:1:bin:/bin:/bin/bash daemon:x:2:2:Daemon:/sbin:/bin/bash dnsmasq:x:102:65534:dnsmasq:/var/lib/empty:/bin/false ftp:x:40:49:FTP account:/srv/ftp:/bin/bash games:x:12:100:Games account:/var/games:/bin/bash gdm:x:107:109:Gnome Display Manager daemon:/var/lib/gdm:/bin/false lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash messagebus:x:101:104:User for D-Bus:/var/run/dbus:/bin/false news:x:9:13:News system:/etc/news:/bin/bash nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash ntp:x:74:103:NTP daemon:/var/lib/ntp:/bin/false postfix:x:51:51:Postfix Daemon:/var/spool/postfix:/bin/false pulse:x:105:107:PulseAudio daemon:/var/lib/pulseaudio:/sbin/nologin root:x:0:0:root:/root:/bin/bash rtkit:x:104:106:RealtimeKit:/proc:/bin/false sshd:x:100:102:SSH daemon:/var/lib/sshd:/bin/false statd:x:106:65534:NFS statd daemon:/var/lib/nfs:/sbin/nologin usbmux:x:108:65534:usbmuxd daemon:/var/lib/usbmuxd:/sbin/nologin uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash wwwruopensuse:~ #
Les valeurs x et y acceptent des multiplicateurs :
opensuse:~ # head -c 1b /etc/passwd at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash avahi:x:103:105:User for Avahi:/var/run/avahi-daemon:/bin/false bin:x:1:1:bin:/bin:/bin/bash daemon:x:2:2:Daemon:/sbin:/bin/bash dnsmasq:x:102:65534:dnsmasq:/var/lib/empty:/bin/false ftp:x:40:49:FTP account:/srv/ftp:/bin/bash games:x:12:100:Games account:/var/games:/bin/bash gdm:x:107:109:Gnome Display Manager daemon:/var/lib/gdm:/bin/false lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false mopensuse:~ # head -c 512 /etc/passwd at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash avahi:x:103:105:User for Avahi:/var/run/avahi-daemon:/bin/false bin:x:1:1:bin:/bin:/bin/bash daemon:x:2:2:Daemon:/sbin:/bin/bash dnsmasq:x:102:65534:dnsmasq:/var/lib/empty:/bin/false ftp:x:40:49:FTP account:/srv/ftp:/bin/bash games:x:12:100:Games account:/var/games:/bin/bash gdm:x:107:109:Gnome Display Manager daemon:/var/lib/gdm:/bin/false lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false mopensuse:~ #
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 |
Les options de la commande sont :
opensuse:~ # head --help Usage: head [OPTION]... [FILE]... Print the first 10 lines of each FILE to standard output. With more than one FILE, precede each with a header giving the file name. With no FILE, or when FILE is -, read standard input. Mandatory arguments to long options are mandatory for short options too. -c, --bytes=[-]K print the first K bytes of each file; with the leading `-', print all but the last K bytes of each file -n, --lines=[-]K print the first K lines instead of the first 10; with the leading `-', print all but the last K lines of each file -q, --quiet, --silent never print headers giving file names -v, --verbose always print headers giving file names --help display this help and exit --version output version information and exit K may have a multiplier suffix: b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y. Report head bugs to bug-coreutils@gnu.org GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> Report head translation bugs to <http://translationproject.org/team/> For complete documentation, run: info coreutils 'head invocation'
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 :
opensuse:~ # tail /etc/passwd pulse:x:105:107:PulseAudio daemon:/var/lib/pulseaudio:/sbin/nologin root:x:0:0:root:/root:/bin/bash rtkit:x:104:106:RealtimeKit:/proc:/bin/false sshd:x:100:102:SSH daemon:/var/lib/sshd:/bin/false statd:x:106:65534:NFS statd daemon:/var/lib/nfs:/sbin/nologin usbmux:x:108:65534:usbmuxd daemon:/var/lib/usbmuxd:/sbin/nologin uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false trainee:x:1000:100:trainee:/home/trainee:/bin/bash vboxadd:x:109:1::/var/run/vboxadd:/bin/false
Avec l'option -n, la valeur de x peut être spécifiée :
opensuse:~ # tail -n 15 /etc/passwd messagebus:x:101:104:User for D-Bus:/var/run/dbus:/bin/false news:x:9:13:News system:/etc/news:/bin/bash nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash ntp:x:74:103:NTP daemon:/var/lib/ntp:/bin/false postfix:x:51:51:Postfix Daemon:/var/spool/postfix:/bin/false pulse:x:105:107:PulseAudio daemon:/var/lib/pulseaudio:/sbin/nologin root:x:0:0:root:/root:/bin/bash rtkit:x:104:106:RealtimeKit:/proc:/bin/false sshd:x:100:102:SSH daemon:/var/lib/sshd:/bin/false statd:x:106:65534:NFS statd daemon:/var/lib/nfs:/sbin/nologin usbmux:x:108:65534:usbmuxd daemon:/var/lib/usbmuxd:/sbin/nologin uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false trainee:x:1000:100:trainee:/home/trainee:/bin/bash vboxadd:x:109: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 :
opensuse:~ # tail -c 150 /etc/passwd n:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false trainee:x:1000:100:trainee:/home/trainee:/bin/bash vboxadd:x:109: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 :
opensuse:~ # tail -c +150 /etc/passwd daemon:x:2:2:Daemon:/sbin:/bin/bash dnsmasq:x:102:65534:dnsmasq:/var/lib/empty:/bin/false ftp:x:40:49:FTP account:/srv/ftp:/bin/bash games:x:12:100:Games account:/var/games:/bin/bash gdm:x:107:109:Gnome Display Manager daemon:/var/lib/gdm:/bin/false lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash messagebus:x:101:104:User for D-Bus:/var/run/dbus:/bin/false news:x:9:13:News system:/etc/news:/bin/bash nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash ntp:x:74:103:NTP daemon:/var/lib/ntp:/bin/false postfix:x:51:51:Postfix Daemon:/var/spool/postfix:/bin/false pulse:x:105:107:PulseAudio daemon:/var/lib/pulseaudio:/sbin/nologin root:x:0:0:root:/root:/bin/bash rtkit:x:104:106:RealtimeKit:/proc:/bin/false sshd:x:100:102:SSH daemon:/var/lib/sshd:/bin/false statd:x:106:65534:NFS statd daemon:/var/lib/nfs:/sbin/nologin usbmux:x:108:65534:usbmuxd daemon:/var/lib/usbmuxd:/sbin/nologin uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false trainee:x:1000:100:trainee:/home/trainee:/bin/bash vboxadd:x:109:1::/var/run/vboxadd:/bin/false
Les valeurs x et y acceptent des multiplicateurs :
opensuse:~ # tail -c 1b /etc/passwd io daemon:/var/lib/pulseaudio:/sbin/nologin root:x:0:0:root:/root:/bin/bash rtkit:x:104:106:RealtimeKit:/proc:/bin/false sshd:x:100:102:SSH daemon:/var/lib/sshd:/bin/false statd:x:106:65534:NFS statd daemon:/var/lib/nfs:/sbin/nologin usbmux:x:108:65534:usbmuxd daemon:/var/lib/usbmuxd:/sbin/nologin uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false trainee:x:1000:100:trainee:/home/trainee:/bin/bash vboxadd:x:109:1::/var/run/vboxadd:/bin/false opensuse:~ # tail -c 512 /etc/passwd io daemon:/var/lib/pulseaudio:/sbin/nologin root:x:0:0:root:/root:/bin/bash rtkit:x:104:106:RealtimeKit:/proc:/bin/false sshd:x:100:102:SSH daemon:/var/lib/sshd:/bin/false statd:x:106:65534:NFS statd daemon:/var/lib/nfs:/sbin/nologin usbmux:x:108:65534:usbmuxd daemon:/var/lib/usbmuxd:/sbin/nologin uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false trainee:x:1000:100:trainee:/home/trainee:/bin/bash vboxadd:x:109: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 :
opensuse:~ # tail -f /var/log/messages May 17 09:47:01 opensuse /USR/SBIN/CRON[8723]: (trainee) CMD (/bin/pwd > pwd.txt) May 17 09:48:01 opensuse /USR/SBIN/CRON[8732]: (trainee) CMD (/bin/pwd > pwd.txt) May 17 09:49:01 opensuse /USR/SBIN/CRON[8741]: (trainee) CMD (/bin/pwd > pwd.txt) May 17 09:50:01 opensuse /USR/SBIN/CRON[8749]: (trainee) CMD (/bin/pwd > pwd.txt) May 17 09:51:01 opensuse /USR/SBIN/CRON[8764]: (trainee) CMD (/bin/pwd > pwd.txt) May 17 09:52:02 opensuse /USR/SBIN/CRON[8771]: (trainee) CMD (/bin/pwd > pwd.txt) May 17 09:53:01 opensuse /USR/SBIN/CRON[8778]: (trainee) CMD (/bin/pwd > pwd.txt) May 17 09:54:01 opensuse /USR/SBIN/CRON[8787]: (trainee) CMD (/bin/pwd > pwd.txt) May 17 09:55:01 opensuse /USR/SBIN/CRON[8796]: (trainee) CMD (/bin/pwd > pwd.txt) May 17 09:56:01 opensuse /USR/SBIN/CRON[8807]: (trainee) CMD (/bin/pwd > pwd.txt) ^C
opensuse:~ # tail --help Usage: tail [OPTION]... [FILE]... Print the last 10 lines of each FILE to standard output. With more than one FILE, precede each with a header giving the file name. With no FILE, or when FILE is -, read standard input. Mandatory arguments to long options are mandatory for short options too. -c, --bytes=K output the last K bytes; alternatively, use -c +K to output bytes starting with the Kth of each file -f, --follow[={name|descriptor}] output appended data as the file grows; -f, --follow, and --follow=descriptor are equivalent -F same as --follow=name --retry -n, --lines=K output the last K lines, instead of the last 10; or use -n +K to output lines starting with the Kth --max-unchanged-stats=N with --follow=name, reopen a FILE which has not changed size after N (default 5) iterations to see if it has been unlinked or renamed (this is the usual case of rotated log files). With inotify, this option is rarely useful. --pid=PID with -f, terminate after process ID, PID dies -q, --quiet, --silent never output headers giving file names --retry keep trying to open a file even when it is or becomes inaccessible; useful when following by name, i.e., with --follow=name -s, --sleep-interval=N with -f, sleep for approximately N seconds (default 1.0) between iterations. With inotify, this option is rarely useful. -v, --verbose always output headers giving file names --help display this help and exit --version output version information and exit If the first character of K (the number of bytes or lines) is a `+', print beginning with the Kth item from the start of each file, otherwise, print the last K items in the file. K may have a multiplier suffix: b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y. With --follow (-f), tail defaults to following the file descriptor, which means that even if a tail'ed file is renamed, tail will continue to track its end. This default behavior is not desirable when you really want to track the actual name of the file, not the file descriptor (e.g., log rotation). Use --follow=name in that case. That causes tail to track the named file in a way that accommodates renaming, removal and creation. Report tail bugs to bug-coreutils@gnu.org GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> Report tail translation bugs to <http://translationproject.org/team/> For complete documentation, run: info coreutils 'tail invocation'
~~DISCUSSION:off~~
{(rater>id=opensuse_11_l102|name=cette page|type=rate|trace=user|tracedetails=1)}