Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
04 juin 2010

coreutils GNU           Utilitaires Linux


coreutils

coreutils

Options Communes

   Certaines options sont disponible pour tous les programmes. Elle sont décrites ici. Tout programme GNU accepte ces options.

  Normalement les options et opérandes peuvent apparaître dans n'importe quel ordre, et les programmes agissent comme si toutes les options apparaissaient avec les opérandes. Beaucoup de programmes qui acceptent les options longues, reconnaissent l'abréviation non-ambigu de ces options.Certains de ces programmes reconnaissent les options --help et --version seulement si l'option est la seule de la ligne de commande.

--help Affiche une aide sur l'utilisation du programme, et quitte.
--version Affiche la version du programme, puis quitte.
-- délimite la liste d'options. les arguments suivants, s'il y'en a, sont traités comme opérande même s'ils commence avec '-'.

Code de sortie

   Les programmes renvoient généralement 0 en cas de succès, et une valeur différente (typiquement 1) dans le cas contraire. Cependant il y'a quelques programmes qui produisent d'autres code de sortie : chroot, env, expr, nice, nohup, printenv, sort, su, test, timeout, tty.

Options de backup

   Certains programmes (cp, install, ln et mv) peuvent créer une copie des fichiers avant d'écrire les nouvelles versions. Ces options contrôlent les détails de ces backups.

-b, --backup[=METHOD] Crée un backup de chaque fichier qui va être écrasé ou supprimé. Sans cette option, les versions originales sont détruites. l'option METHOD, si non spécifiée, utilise la variable d'environnement VERSION_CONTROL, et si elle n'est pas définie, utilise 'existing' par défaut. Les valeurs valides sont :

        none
        off ne jamais faire de backup
        numbered
        t Toujours créer des backups numérotées
        existing
        nil Toujours créer desbackup numérotées des fichiers qui en ont déjà un, simple backup pour les autres.
        simple
        never Toujours créer des backups simple.

-S --suffix=SUFFIX Ajoute SUFFIX à chaque backup crée avec l'option -b. Si cette option n'est pas spécifiée, la valeur de la variable d'environnement SIMPLE_BACKUP_SUFFIX est utilisée, et si elle n'est pas définie le défaut est ' ', comme dans Emacs.

Taille de block

   Certains programmes (df, du et ls) affichent les tailles en blocks. On peut utiliser la taille de block et la méthode d'affichage. La taille de block utilisée pour l'affichage est indépendant de la taille de block des systèmes de fichiers. La taille de block par défaut est choisie en examinant les variables d'environnement. La première qui est définie détermine la taille de block.

        DF_BLOCK_SIZE Spécifie la taille de block par défaut pour df
        DU_BLOCK_SIZE Spécifie la taille de block par défaut pour du
        LS_BLOCK_SIZE Spécifie la taille de block par défaut pour ls
        BLOCK_SIZE Spécifie la taille de block par défaut pour les 3 commandes

   BLOCKSIZE Spécifie le taille de block par défaut pour toutes les valeurs qui sont normalement affichées comme block, si [XX_]BLOCK_SIZE ne sont pas définies.

  POSIXLY_CORRECT si aucune des variables ci-dessus ne sont définies, la taille de block par défaut est 512.

  Si aucune variable n'est définie, la taille de block par défaut est 1024 la plupart du temps. Pour les tailles de fichiers de ls, la taille de block par défaut est 1 octet.

  Une taille de block peut être spécifié par un nombre entier spécifiant le nombre d'octets par block, ou peut être au format 'human-readable'. Une spécification de taille de block précédée par "'" affiche les sorties avec les séparateurs de milliers. ex : --block-size="'1kB" n'affichera pas 1234000 octets, mais 1,234.

  Une taille de block peut être suivie par un multiple de la taillee. Par ex, 1M, 1MiB sont équivalent à 1048576, et 1MB vaut 1000000.

        kB KiloOctets : 10^3 = 1000
        k, KiB KibiOctets : 2^10 = 1024
        MB MegaOctets : 10^6 = 1,000,000
        M, MiB MebiOctets : 2^20 = 1,048,576
        GB GigaOctets : 10^9 = 1,000,000,000
        G, GiB GibiOctets : 2^30 = 1,073,741,824
        TB TeraOctets : 10^12 = 1,000,000,000,000
        T, TiB TebiOctets : 2^40 = 1,099,511,627,776
        PB PetaOctets : 10^15 = 1,000,000,000,000,000
        P, PiB PetaOctets : 2^50 = 1,125,899,906,842,624
        EB ExaOctets : 10^18 = 1,000,000,000,000,000,000
        E, EiB ExbiOctets : 2^60 = 1,152,921,504,606,846,976
        ZB ZettaOctets : 10^21 = 1,000,000,000,000,000,000,000
        Z, ZiB 2^70 = 1,180,591,620,717,411,303,424.
        YB YottaOctets : 10^24 = 1,000,000,000,000,000,000,000,000
        YiB 2^80 = 1,208,925,819,614,629,174,706,176

           Pour spécifier la taille par défaut, utiliser --block-size=SIZE. L'option -k est équivalent --block-size=1K. L'option -h ou --human-readable est équivalent à --block-size=human-readable. --si est équivalent à --block-size=si.

Spécification de signal

`HUP' 1 Hangup.
`INT' 2 Terminal interrupt.
`QUIT' 3 Terminal quit.
`ABRT' 6 Process abort.
`KILL' 9 Kill (cannot be caught or ignored).
`ALRM' 14 Alarm Clock.
`TERM' 15 Termination.
`BUS' Access to an undefined portion of a memory object.
`CHLD' Child process terminated, stopped, or continued.
`CONT' Continue executing, if stopped.
`FPE' Erroneous arithmetic operation.
`ILL' Illegal Instruction.
`PIPE' Write on a pipe with no one to read it.
`SEGV' Invalid memory reference.
`STOP' Stop executing (cannot be caught or ignored).
`TSTP' Terminal stop.
`TTIN' Background process attempting read.
`TTOU' Background process attempting write.
`URG' High bandwidth data is available at a socket.
`USR1' User-defined signal 1.
`USR2' User-defined signal 2.
`POLL' Pollable event.
`PROF' Profiling timer expired.
`SYS' Bad system call.
`TRAP' Trace/breakpoint trap.
`VTALRM' Virtual timer expired.
`XCPU' CPU time limit exceeded.
`XFSZ' File size limit exceeded.

chown et chgrp : ID et noms utilisateur ambigües

   Vu que les arguments OWNER et GROUP de chown et chgrp peuvent être spécifiés soit pas le nom soit pas l'ID, il y'a une ambiguitée. POSIX requière que chown et chgrp tentent d'abord de résoudre la chaîne spécifiée comme nom, et seulement s'ils échouent, ils réessayent en l'interprétant comme ID. Pour forcer un ID à être interprété comme tel, le précéder par un '+'.

exemples :
chown +42 F
chgrp +$numeric_group_id another-file
chown +0 :+0 /

Sources de données aléatoire

   Les commandes shuff, shred et sort ont parfois besoin de données aléatoires. Par défaut ces commandes utilisent un générateur pseudo-aléatoire interne, mais peut être redirigés pour utiliser une source externe avec l'option --random-source=FILE. Une erreur est reportée si FILE ne contient pas suffisamment d'octets. Par exemple, le fichier /dev/urandom peut être utilisé. Les applications qui nécessitent un haut niveau de sécurité à long terme peuvent utiliser /dev/random ou /dev/arandom.

Dossier cible

   Les commandes cp, install, ln et mv traitent la dernière opérande spécialement quand il s'agit d'un répertoire ou un lien symbolique vers un répertoire. Par exemple cp source dest est équivalent à cp source dest/source si dest est un répertoire. Parfois ce mode de fonctionnement n'est pas ce que l'on souhaite, donc pour outrepasser ce mode :

        -T, --no-target-directory Ne traite pas la dernière opérande spécialement
        -t DIRECTORY, --target-directory=DIRECTORY Utilise DIRECTORY comme répertoire de destination de tous les fichiers. Permet notamment à xarg d'être utilisé convenablement.

exemples:
ls | xargs mv -t ../d --
Cette commande ne permet pas de déplacer les fichiers commençant par '.'
find . -mindepth 1 -maxdepth 1 | xargs mv -t ../d
les 2 commandes précédantes échouent s'il n'y a aucun fichier dans le répertoire courant ou si aucun nom de fichier ne contient un blanc ou autre caractère spécial
find . -mindepth 1 -maxdepth 1 | xargs --null --no-run-if-empty mv -t ../d

Slashs

   Certains programmes comme cp et mv permettent de supprimer les slashs de chaque argument SOURCE avant de les traiter. l'option --strip-trailing-slashes autorise ce mode.

Traverser les liens

   Les options suivantes modifient la manière dont chown et chgrp traversent une hiérarchie quand l'option --recursive ou -R est spécifié. Si plus d'une options suivante est spécifiée, seule l'option final prend effet. Ces options spécifient si le traitement d'un lien symbolique vers un répertoire entraine l'opération sur le lien uniquement ou sur tous les fichiers dans ce répertoire.

  Ces options sont indépendantes de --dereference et --no-dereference, qui contrôle si on modifie un lien ou sa référence.

        -H Si --recursive ou -R est spécifié et un argument est un lien vers un répertoire, le traverser
        -L Traverse tous lien vers un répertoire qui est rencontré.
        -P Ne traverse aucun lien symbolique. (par défaut si -H, -L ou -P ne sont pas spécifiés)

Traiter '/' spécialement

   Certaines commandes peuvent opérer de manière destructive sur une hiérarchie entière. Par exemple rm -rf /. Si on veut vraiment détruire tous les fichiers d'un système, on peut utiliser --no-preserve-root, mais le mode par défaut (--preserve-option) est plus sûr. Les commandes chgrp, chmod et chown peuvent aussi être destructeur sur une hiérarchie, ils peuvent donc supporter ces options également.

Utilitaires intégrés

. : break continue eval exit export readonly return set shift times trap unset
Il s'agit d'utilitaires intégrés qui sont standardisés par POSIX. Bash en contient d'autres. Tenter de les lancer via un autre programme comme nice, générera une erreur.

Conformité des standards

   Dans certains cas, les utilitaires GNU en mode par défaut sont incompatibles avec le standard posix. Pour supprimer ces incompatibilités, définir la variable POSIXLY_CORRECT. Les utilitaires GNU sont normalement conforme avec la version POSIX de votre système. Pour les forcer à se conformer à une version POSIX différente, définir la variable d'environnement _POSIX2_VERSION à une valeur sous la forme YYYYMM spécifiant l'année et le mois où le standard à été adopté. 2 valeurs sont actuellement supportées : 199209 et 200112