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)
03 juin 2014

htmlpdflatexmanmd




bash

bash

GNU Bourne-Again Shell

   Bash est un interpreteur de commande compatible sh qui exécute les commandes lues depuis l'entrée standard ou un fichier. Bash imcorpore également de nombreuses fonctionnalités des shells Korn et C. Toutes les options simple caractère documentés dans la description de la commande intégré set peuvent être utilisés comme option quand le shell est invoqué. En plus, bash interprète les options suivantes:

OPTIONS

-c string Les commandes sont lus depuis string. S'il y'a des arguments après string, ils sont assignés aux paramètres positionnels en commençant par $0
-i Mode interactif
-l Agit comme s'il avait été invoqué comme login shell
-r Mode shell restreins
-s Sans arguments après les options, les commandes sont lues depuis l'entrée standard
-D Une liste de toutes les chaînes précédés par $ est affiché sur la sortie standard. implique -n. Aucune commande n'est exécutée
[-+]O [shopt_option] shopt_option est une option accepté par la commande intégré shopt. Si présent, -O définis la valeur de cette option. +O la reset. Si shopt_option n'est pas fournis, les noms et leur valeurs acceptés par shopt sont affichés. Avec +O, la sortie est affichée dans un format qui peut être ré-utilisé en entrée.
-- Signal la fin des options et désactive le traitement des options qui suivent. Tout ce qui suit est traité comme noms de fichier et arguments.

   Bash interprète également des options multi-caractères. Ces options doivent apparaître sur la ligne de commande avant les options simple caractère pour être reconnus.

--debugger le profile debugger est exécuté avant que le shell démarre.
--dump-po-strings Équivalent à -D, mais la sortie est au format po GNU gettext
--dump-strings Équivalent à -D
--init-file file Éxecute les commandes depuis le fichier spécifié au lieu du fichier système /etc/bash.bashrc et le fichier personnel ~/.bashrc
--rcfile file Éxecute les commandes depuis le fichier spécifié au lieu du fichier système /etc/bash.bashrc et le fichier personnel ~/.bashrc
--login Équivalent à -l
--noediting N'utilise pas GNU readline pour lire les lignes de commandes quand le shell est interactif
--noprofile Ne lis ni /etc/profile, ni les fichiers d'initialisation personnel ~/.bash_profile, ~/.bash_login, ou ~/.profile.
--norc Ne lis pas le fichier d'initialisation /etc/bash.bashrc et le fichier d'initialisation personnel ~/.bashrc si le shell est interactif. (par défaut si le shell est invoqué en tant que sh)
--posix Force bash à être conforme posix
--restricted Mode restreins
--verbose Équivalent à -v

Arguments

   Si des arguments restent après le traitement des options, et ni -c ni -s ne sont présents, le premier argument est supposé être un nom de fichier contenant des commandes shell. Si bash est lancé de cette manière, $0 est définis au nom de ce fichier, et les paramètres positionnels sont définis avec les arguments restant. Bash lit et exécute les commandes de ce fichier puis se termine. Le code de sortie de Bash est le code de sortie de la dernière commande exécutée dans le script.

Invocation

   Un login shell est un shell dont le premier caractère de l'argument zéro est un -, ou lancé avec --login.

  Un shell interactif est un shell lancé sans arguments non-option et sans -c et dont l'entrée et la sortie standard sont connectés aux terminaux ( comme déterminé par isatty(3) ), ou lancé avec -i. PS1 est définis et $- inclus i si bash est interactif, permettant à un script shell ou un fichier de démarrage de tester cet état.

Fichiers de démarrage

   Si un des fichier existe mais ne peut pas être lu, Bash reporte une erreur. Quand Bash est invoqué, il lit et exécute /etc/profile s'il existe. Puis il lit et exécute ~/.bash_profile, ~/.bash_login, et ~/.profile, dans cet ordre. L'option --noprofile peut être utilisé pour empêcher ce mode. Quand un login shell existe, Bash lit et exécute ~/.bash_logout. Quand un shell qui n'est pas un login shell est lancé, bash lit et exécute les commandes depuis /etc/bash.bashrc et ~/.bashrc. Peut être inhibé avec --norc. --rcfile va forcer bash à lire et exécuter les commandes depuis le fichier spécifié au lieu de /etc/bash.bashrc et ~/.bashrc

   Quand bash est lancé non intéractivement, pour lancer un script shell, par exemple, il cherche la variable BASH_ENV, étend ses valeurs, et utilise la valeur étendue comme nom de fichier à exécuter.

Bash fonctionne comme cette commande au lancement, sauf que PATH n'est pas utilisé:
if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi

sh

   Si bash est invoqué avec le nom sh, il tente de se comporter comme la version historique de sh et le standard POSIX. Invoqué comme login shell, il tente d'exécuter /etc/profile et ~/.profile, dans cet ordre. Peut être inhibé avec --noprofile. Invoqué comme shell interactif, il recherche la variable ENV, l'étend et l'utilise comme nom de fichier à exécuter. Invoqué avec le nom sh, il ne tente pas de lire d'autre fichiers. l'option --rcfile n'a pas d'effet. Invoqué en shell non interactif, il ne tente pas de lire d'autres fichiers. Il entre en mode POSIX une fois les fichiers de démarrage lancé.

   Quand bash est lancé en mode posix, comme avec l'option --posix, il suit le standard POSIX pour les fichiers de démarrage. Dans ce mode, les shells interactif étendent la variable ENV. Aucun fichier de démarrage n'est exécuté.

   Bash tente de déterminer quand il est lancé avec son entrée standard connecté à une connexion réseaux, comme lorsqu'il est exécuté par un service de shell distant, généralement rshd ou sshd. Si bash détermine qu'il est dans ce mode, il lit et exécute les commandes depuis ~/etc/bashrc et ~/.bashrc. Il ne le fera pas s'il est invoqué en sh. L'option --rcfile peut être utilisé pour forcer à lire un autre fichier, et --norc pour inhiber ce mode.

   Si le shell est lancé avec l'id utilisateur/group effectif différent de l'id utilisateur/group réel, et que l'option -p n'est pas fournis, aucun fichier de démarrage n'est lu, les fonctions shell d'héritent pas le l'environnement, les variables SHELLOPTS, BASHOPTS, CDPATH, et GLOBIGNORE sont ignorées, et l'id effectif est définis comme id réel. Si l'option -p est fournie, le démarrage est le même, mais l'id effectif n'est pas réinitialisé.

Définitions

   Les définitions suivantes sont utilisée dans le reste de ce document:

blank Un espace ou une tabulation
word Une séquence de caractères considérés comme une simple unité par le shell. Également connu comme un token
name Un word consistant uniquement de caractères alphanumérique et "_", et commençant avec un caractère alphabétique ou un "_". Également appelé un identifier
metacharacter Un caractère que, sans guillemets, sépare les mots. un des suivant: | & ; ( ) ‹ › space tab
control operator Un token qui exécute une fonction de contrôle. un des suivant: || & && ; ;; ( ) | |& ‹newline›

Mots Réservés

   Les mot réservés sont des mots qui ont une signification pour le shell:

  ! case do done elif else esac fi for function if in select then until while { } time [[ ]]

Commandes simple

   Une commande simple est une séquence d'assignement de variable optionnel, suivi par des mots et redirection, terminés par un opérateur de contrôle. Le premier mot spécifie la commande à exécuter, et est passé comme argument 0. Les autres mots sont passés en argument à la commande invoqué. La valeur de retour est sont code de sortie, ou 128+n si la commande est terminée par le signal n

Pipelines

Un pipeline est une séquence d'une ou plusieurs commandes séparés par un des opérateurs de contrôle | ou |&. Le format est:
[time [-p]] [ ! ] command [ [|||&] command2 ... ]

   La sortie standard de command est connectée via un pipe à l'entrée standard de command2. Cette connexion est effectuée avant toute redirection spécifiée par le commande. Si |& est utilisé, l'erreur standard de command est connectée à l'entrée standard de command2, est est un raccourci pour 2›&1 |. Cette redirection implicite de l'erreur standard est effectuée après toute redirection spécifiée par la commande. Chaque commande dans un pipeline est exécuté comme processus séparé.

   Le status de retour d'un pipeline est le status de sortie de la dernière commande, sauf si l'option pipefail est spécifiée. Si pipefail est activé, le status de retour du pipeline est la valeur commande qui se termine avec un status non-zéro, ou 0 si toutes les commandes ont réussit. Si le mot réservé ! précède un pipeline, de code de sortie de ce pipeline est la négation logique du status de sortie.

   Si time est spécifié, le temps système, utilisateur et d'exécution sont reportés quand le pipeline se termine. l'option -p change le format de sortie pour être conforme POSIX. En mode posix, le mot time n'est pas reconnus si le token suivant commence avec un -. La variable TIMEFORMAT peut être utilisé pour le format de temps. Quand le shell est en mode posix, time peut être suivi d'un newline. Dans ce cas, le shell affiche le temps total consommé par le shell et ses enfants.

Listes

   Une liste est une séquence d'un ou plusieurs pipelines, séparés par un ou plusieurs opérateurs ;, &, &&, ou ||, et optionnellement terminé par ;, &, ou ‹newline›.De cette liste d'opérateurs, && et || ont une précédence égale, suivi par ; et & qui ont une précédence égale. Une séquence d'une ou plusieurs newlines peut apparaître dans une liste au lieu de ; pour délimiter les commandes.

   Si une commande est terminée par l'opérateur de contrôle &, le shell exécute la commande dans un sous shell en tâche de fond. Le shell n'attend pas la fin de l'exécution de la commande et retourne le status 0. Les commandes séparées par ; sont exécutée séquenciellement; le shell attend que chaque commande se termine. Les listes AND et OR sont des séquences d'un ou plusieurs pipelines, séparés par les opérateurs de contrôle && et ||, respectivement.

Une liste AND a la forme:
command1 && command2
command2 est exécuté si command1 retourne un status de sortie de 0
Un liste OR a la forme:
command1 || command2
command2 est exécutée si command1 retourne un status de sortie autre que 0

Commandes composées

   Une commande composées est une des suivante:

(list) list est exécuté dans un environnement sous-shell. Les assignements de variable et le commandes intégrée qui affectent l'environnement du shell n'ont plus d'effet une fois la commande complétée.
{ list; } list est simplement exécuté dans l'environnement du shell courant. list doit être terminé avec un newline ou un point-virgule. Le status de retour est le code de sortie de list.
((expression)) L'expression est évaluée en accord avec les règles décrites dans Évaluation arithmétique. Si la valeur de l'expression est non-zéro, le status de retour et 0; sinon 1. C'est exactement équivalent à let "expression"
[[ expression ]] Retourne un status 0 ou 1 en fonction de l'évaluation de l'expression conditionnelle. Les expressions sont composées de primaires, décrites dans Expressions conditionnelles. le splitting des mots et l'expansion des path ne sont pas effectués. Utilisé avec [[, les opérateurs et trient lexicographiquement en utilisant les locales en cours.

   Quand les opérateurs == et != sont utilisés, la chaîne à la droite de l'opérateur est considéré être un motif et évalué en accord avec les règles décrites plus bas dans Pattern Matching. Si l'option shell nocasematch est présent, le match est effectué sans regarder la casse. La valeur de retour et 0 si la chaîne match (==) ou ne match pas (!=), sinon 1.

   Un opérateur additionnel est disponible: =~, avec la même précédence. Quand il est utilisé, la chaîne à la droite de l'opérateur est considéré comme expression régulière étendue. la valeur de retour est 0 si elle match, 1 sinon, ou 2 si la syntaxe de l'expression est incorrect. Si l'option nocasematch est présente, le match est insensible à la casse. Les sous-chaînes matchés par les sous-expressions sous parenthèses dans l'expression sont sauvée dans la variable tableau BASH_REMATCH.

Les expressions peuvent être combinés en utilisant les opérateurs suivant, listés dans l'ordre décroissant de précédence:
( expression ) Retourne la valeur de l'expression. Peut être utilisé pour forcer la précédence normal des opérateurs
! expression Vrai si l'expression est fausse
expression1 && expression2 Vrai si les 2 expressions sont vrai
expression1 || expression2 Vrai si une et une seul expression est vrai

   Les opérateurs && et || n'évaluent pas expression2 si la valeur de l'expression1 est suffisante pour déterminer la valeur de retour.

for name [ [ in [ word ... ] ] ; ] do list ; done La liste de mots suivant in est étendue, générant un liste d'éléments. la variable name est définis à chaque élément de cette liste, et list est exécuté chaque fois. Si in est omis, for exécute liste une fois pour chaque paramètres positionnels. Le status de retour est le code de sortie de la dernière commande exécutée. Si l'expansion de list résulte en une liste vide, aucune commande n'est exécutée et le code de sortie est 0.
for (( expr1 ; expr2 ; expr3 )) ; do list ; done expr1 est évalué. expr2 est ensuite évaluée en boucle tant qu'elle n'est pas évaluée à 0. À chaque itération de expr2, list est exécuté et expr3 est évalué. Si une des expression est manquante, elle est évaluée à 1.
select name [ in word ] ; do list ; done La liste de mots après in est étendue, générant une liste d'éléments. Le jeu étendu est affiché sur l'erreur standard, chacun précédé par un nombre. Si ces mots sont omis, les paramètres positionnels sont affichés. la prompt PS3 est ensuite affiché avec un line read de l'entrée standard. Si la ligne consiste d'un nombre correspondant à un des mots affiché, la valeur de name est définie à ce mot. Si la ligne est vide, les mots et le prompt sont ré-affichés. Si EOF est lu, la commande se termine. Toute autre valeur lue définis name à NULL. Le line read est placé dans REPLY. La liste est exécutée aprés chaque séléction jusqu'à un break
case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac Étend les mots, et tente de correspondre avec chaque pattern. Quand un match est trouvé, la list correspondante est exécutée. Si l'opérateur ;; est utilisé, aucun autre match n'est tenté aprés le premier match. Utiliser ;& à la place force à continuer les matchs.
if list; then list; [ elif list; then list; ] ... [ else list; ] fi list de if est exécuté. Si son code de sortie est 0, list de then est exécuté, sinon list de elif est exécuté, et si son code de sortie est 0, list de then est exécuté. Sinon list de else est exécuté.
while list-1; do list-2; done Exécute list-2 tant que la dernière commande de list-1 retourne un code 0.
until list-1; do list-2; done Identique à while mais le test est inversé ( tant que list-1 ne retourne pas 0)

Coprocesses

   Une commande shell précédée par coproc est exécutée de manière asynchrone dans un sous-shell, comme si elle avait été terminée par &. Le format est

  coproc [NAME] command [redirections]

  Cela créé un coprocessus nommé NAME. Si NAME n'est pas fournis, il est nommé COPROC. NAME ne doit pas être fournie pour une commande simple, sinon il est interprété comme le premier mot d'une commande simple. Quand le coprocessus est exécuté, le shell créé un tableau de variable nommé NAME dans le contexte du shell exécutant. La sortie standard de la commande est connectée via un pipe à un descripteur de fichier dans de shell exécutant, et ce descripteur est assigné à NAME[0].

   L'entrée standard de la commande est connectée via un pipe à un descripteur de fichier dans le shell exécutant, et ce descripteur est assigné à NAME[1]. Ce pipe est établis avant toute redirection spécifiée par la commande. Les descripteurs de fichier peuvent être utilisé comme arguments aux commandes shells est aux redirections en utilisant l'expansion de mots standard. Le process ID du shell est disponible comme valeur de la variable NAME_PID. La commande wait peut être utilisé pour attendre que le coprocessus se termine. Le status de retour d'un coprocess est le code de sortie de la commande.

Définitions des fonctions shell

   Une fonction shell est un objet qui est appelé comme une commande simple est exécute une commande composée avec un nouveau jeu de paramètres positionnels. Les fonctions shell sont déclarées

  name () compound-command [redirection]

  function name [()] compound-command [redirection]

   Cela définis une fonction nommé name. Le mot réservé function est optionnel. Si le mot function est spécifié, les parenthèses sont optionnels. Le corp de la fonction est la commande composée. Cette commande est généralement une listes de commandes entre { est }, mais peut être tout type de commande composé. Toute redirection spécifié quand une fonction est définie sont effectués quand la fonction est exécutée.

   Le status de sortie d'une définition de fonction est 0 sauf si une erreur de syntaxe de produit ou une fonction lecture seule avec le même nom existe déjà. Une fois exécuté, le code de sortie d'une fonction est le code de la dernière commande exécuté.

Commentaires

   Dans un shell non-interactif, ou un shell interactif dans lequel l'option interactive_comments de la commande shopt est activé, # et tout ce qui suit sur la ligne est un commentaire.

Quoting

   Le quoting est utilisé pour supprimer la signification spéciale de certains caractères ou mots. Chacun des méta-caractères listé dans Définitions a une signification spéciale pour le shell et doit être quoté pour qu'il ne soit pas être interprété par le shell. Quand les expansions d'historique de commande sont utilisées, le caractère d'expansion, généralement !, doit être quoté pour empêcher l'expansion de l'historique.

   Il y a 3 mécanismes de quoting: le caractère d'échappement, les guillemets simples, et les guillemets double.

  Le \ est le caractère d'échappement. Il préserve la valeur littérale du caractère suivant.

  Les caractères entre guillemets simples préservent la valeur littérale de chaque caractères.

  Les caractères entre guillemets double préservent la valeur littérale de tous les caractères, à l'exception de $, `, \, et, quand l'expansion d'historique est activé, !. Les caractères $ et ` conservent leur signification. Le \ conserve sa signification spéciale uniquement lorsqu'il est suivi par $, `, ", \ ou ‹newline.

   Les paramètres spéciaux * et @ ont une signification spéciale dans les guillemets double. Les mots sous la forme $'string' sont traités spécialement. L'extension de string, avec les caractères échappés remplacés comme spécifié par le standard ANSI C. Les caractères d'échappement, si présents, sont décodés comme suit:

        \a alert (bell)
        \b BACKSPACE
        \e Un caractère échappe
        \e Un caractère échappe
        \f form feed
        \n new line
        \r carriage return
        \t horizontal tab
        \v vertical tab
        \\ backslash
        \' single quote
        \" double quote
        \nnn Le caractère 8bits dont la valeur est nnn en octal
        \xHH Le caractère 8bits dont la valeur est HH en en hexadécimal
        \uHHHH Le caractère unicode (ISO/IEC 10646) dont la valeur est HHHH en hexadécimal
        \UHHHHHHHH Le caractère unicode (ISO/IEC 10646) dont la valeur est HHHHHHHH en hexadécimal
        \cx Le caractère control-x

Paramètres

   Un paramètre est une entité qui stocke une valeur. Il peut être un nom, un nombre, ou un des caractères spéciaux listés dans Paramètres Spéciaux. Une variable est un paramètre dénoté par un nom. Une variable a une valeur et 0 ou plusieurs attributs. Les attributs sont assignés en utilisant la commande declare. Un paramètre est définis si une valeur lui a été assignée. La chaîne null est une valeur valide. Une fois une valeur définie, unset permet de l'enlever.

Une variable peut être assignée par une déclaration sous la forme:
name=[value]

   Si value n'est pas donnée, la variable est assigné à la chaîne null. Toutes les valeurs sont soumises à l'expansion du tilde, expansion de paramètres et de variables, substitution de commande, expansion arithmétique, et suppression de quotes. Si la variable a son attribut integer défini, la valeur est évaluée comme expression arithmétique même si l'expansion $((...)) n'est pas utilisé. Le word splitting n'est pas effectué, à l'exception de $@. l'expansion de chemin n'est pas effectué. La déclaration d'assignement peut aussi apparaître comme argument des commandes alias, declare, typeset, export, readonly, et local.

   Dans le context de déclaration d'assignement d'une valeur à une variable shell ou un index de tableau, l'opérateur += peut être utilisé pour attacher ou ajouter à la valeur précédente. Pour une variable entière, La valeur est ajoutée. Pour une variable tableau, les nouvelles valeurs sont assigné au tableau en commençant par l'index maximum + 1 (pour les tableaux indexés), ou ajoutées en paires de clé additionnelles dans un tableau associatif.

Paramètres positionnels

   Un paramètre positionnel est un paramètre dénoté par un ou plusieurs chiffres, autre que 0. Ils sont assignés depuis les arguments du shell quand il est invoqué, et peuvent être ré-assignés en utilisant set. Les paramètres positionnels ne peuvent pas être assignés avec des déclaration d'assignement. Ils sont temporairement remplacés quand un fonction shell est exécutée. Quand un paramètre positionnel consistant de plus d'un chiffre est étendus, il doit être mis entre accolades.

Paramètres spéciaux

   Le shell traite de nombreux paramètres de manière spéciales, ces paramètres peuvent seulement être référencés, leur assignement n'est pas permis.

        Étend les paramètres positionnels, commençant à 1. Quand l'expansion se produit dans des guillemets doubles, il étend un simple mot avec la valeur de chaque paramètre séparés par le premier caractère de IFS, donc "$*" est équivalent à "$1c$2c..." où c est le premier caractère de IFS.
        @ Étend les paramètres positionnels, commençant à 1. Quand l'expansion se produit dans des guillemets doubles, Chaque paramètre est étendu à un mot séparé, donc"$@" est équivalent à "$1" "$2" .... Si l'expansion double-quoted se produit dans un mot, l'expansion du premier paramètre est join avec le début du mot original, et l'expansion du dernier paramètre est join à la fin du mot original.
        # Étend le nombre de paramètres positionnels en décimal
        ? Étend le status de sortie du pipeline le plus récemment exécuté
        - Étend les flags d'options courants comme spécifiés à l'invocation, par la commande set ou ceux définis par le shell lui-même.
        $ Étend le process ID du shell ou du script shell.
        ! Étend le process ID de la commande la plus récemment exécutée
        0 Étend le nom du shell ou du script
        _ Au démarrage du shell, définis le chemin absolu utilisé pour invoquer le shell ou le script à exécuter tel que passé dans l'environnement ou la liste d'arguments. Définis également le chemin complet de chaque commande exécutée et placé dans l'environnement exporté à cette commande. En vérifiant les mail, maintient le nom et le fichier mail actuellement vérifié.

Variables Shell

BASH Étend au nom complet utilisé pour invoquer cette instance de bash
BASHOPTS Liste valide d'options pour -s, séparés par de ",". Sont activés avant de lire les fichiers de démarrage
BASHPID Process ID du shell courant
BASH_ALIASES Une variable tableau associatif dont les membres correspondent à la liste interne d'aliase tel que maintenu par la commande alias.
BASH_ARGC Un tableau de variables dont les valeurs sont le nombre de paramètre dans chaque frame de la pile d'appel d'exécution du shell courant. Le nombre de paramètres de la sous-routine courante est en haut de la pile
BASH_ARGV Une variable tableau contenant tous les paramètres dans la pile d'appel du bash courant. Le paramètre final de l'appel de la dernière sous-routine est en haut de la pile.
BASH_CMDS Une variable tableau associatif dont les membres correspondent à la table de hash interne de commandes tel que maintenu par la commande hash.
BASH_COMMAND La commande actuellement exécutée ou à exécuter, sauf si le shell exécute une commande commme résultat d'un trap, dans ce cas c'est la commande exécutée au moment du trap.
BASH_EXECUTION_STRING L'argument de commande pour l'option d'invocation -c
BASH_LINENO Un tableau dont les membres sont les numéros de ligne dans les fichiers sources pour chaque membre de FUNCNAME invoqué. ${BASH_LINENO[$i]} est le numéro de ligne dans le fichier source (${BASH_SOURCE[$i+1]} où ${FUNCNAME[$i]} a été appelé (ou ${BASH_LINENO[$i-1]} si référencé dans une autre fonction.
BASH_REMATCH tableau dont les membres sont assignés par l'opérateur binaire =~ à la commande [[. variable read-only
BASH_SOURCE Tableau dont les membres sont les noms de fichier source où les nom de fonction shell correspondant dans le tableau FUNCNAME sont définis. La fonction shell ${FUNCNAME[$i]} est définis dans le fichier ${BASH_SOURCE[$i]} et appelée depuis ${BASH_SOURCE[$i+1]}
BASH_SUBSHELL Incrémenté de 1 chaque fois qu'un sous-shell ou un environnement sous-shell est généré.
BASH_VERSINFO Variable read-only dont les membres maintiennent les informations de version de cette instance de bash. les valeurs assignées sont les suivantes

        BASH_VERSINFO[0] Numéro de version majeur
        BASH_VERSINFO[1] Numéro de version mineur
        BASH_VERSINFO[2] Niveau de patch
        BASH_VERSINFO[3] Version de build
        BASH_VERSINFO[4] Status de la release
        BASH_VERSINFO[5] La valeur de MACHTYPE

BASH_VERSION Étend la chaîne décrivant la version de cette instance de bash
COMP_CWORD Un index dans ${COMP_WORDS} du mot contenant la position courante du curseur. disponible uniquement dans les fonctions shell invoqués par les completion programmables
COMP_KEY La touche (ou la touche final d'un séquence de touche) utilisé pour invoquer la fonction de completion courante.
COMP_LINE Ligne de commande courante. Disponible seulement dans les fonctions shell et les commandes externes invoqués par la completion programmable.
COMP_POINT l'index de la position du curseur courant relative au début de la commande courante. Si la position courante est à la fin de la commande courante, la valeur est égale à ${#COMP_LINE}. Disponible seulement dans les fonctions shell et les commandes externes invoqués par la completion programmable.
COMP_TYPE Définis une valeur entière correspondant au type de completion tenté qui a causé la fonction de completion à être appelée: TAB, pour une completion normale, ? pour une completion de listing après des tabs successifs, ! pour des listing alternatifs sur des completion de mot partiels, @ pour des completions de liste si le mot n'est pas modifié, ou % pour une completion de menu. Disponible seulement dans les fonctions shell et les commandes externes invoqués par la completion programmable.
COMP_WORDBREAKS Le jeu de caractères que readline traite comme séparateur de mots en effectuant la completion de mot.
COMP_WORDS Un tableau consistant de mots individuels dans la ligne de commande courante. La ligne est splité en mots comme le fait readline, en utilisant COMP_WORDBREAKS Disponible seulement dans les fonctions shell et les commandes externes invoqués par la completion programmable.
COPROC Tableau créé pour maintenir les descripteurs de fichier pour les sorties et entrée des co-processus non nommés.
DIRSTACK Un tableau contenant le contenu courant de la pile de répertoire. Les répertoires apparaissent dans la pile dans l'ordre qu'ils sont affichés par la commande dirs. pushd et popd doivent être utilisés pour ajouter ou supprimer des répertoires.
EUID Étend l'ID utilisateur effectif de l'utilisateur courant, initialisé au démarrage du shell. variable read-only
FUNCNAME Tableau contenant les noms de toutes les fonctions shell actuellement dans la pile d'appel d'exécution. L'élément d'index 0 est le nom de la fonction actuellement exécutée, l'élément d'index le plus élevé est la fonction main. Cette variable peut être utilisée avec BASH_LINENO et BASH_SOURCE. Chaque élément de FUNCNAME a des éléments correspondant dans ces 2 variables pour décrire la pile. ${FUNCNAME[$i]} a été appelé depuis le fichier ${BASH_SOURCE[$i+1]} à la ligne numéro ${BASH_LINENO[$i]}. La commande caller affiche la pile d'appel courante utilisant cette information.
GROUPS Un tableau contenant la liste de groupes dont l'utilisateur est membre.
HISTCMD Le numéro d'historique, ou index dans la liste d'historique, de la commande courante
HOSTNAME Définis automatiquement au nom de l'hôte courant
HOSTTYPE Définis automatiquement à une chaîne que décris de manière unique le type de machine sur lequel bash est exécuté.
LINENO Chaque fois que ce paramètre est référencé, le shell substitue un nombre décimal représentant le numéro de ligne séquentiel courant dans un script ou fonction. Quand ce n'est pas un script ou une fonction, la valeur substituée n'a pas de signification garantie.
MACHTYPE Définis automatiquement à une chaîne qui décris de type de système sur lequel bash est exécuté dans de format GNU standard.
MAPFILE Un tableau créé pour maintenir le texte lu par la fonction mapfile quand aucun nom de variable n'est fournis
OLDPWD Le répertoire de travail précédent
OPTARG La valeur du dernier argument traité par la commande getopts
OPTIND d'index du prochain argument à traiter par la commande getopts
OSTYPE Définis automatiquement à une chaîne qui décris le système d'exploitation sur lequel bash est exécuté
PIPESTATUS Un tableau contenant une liste de status de sortie des processus dans le pipeline le plus récemment exécuté
PPID Le process ID du shell parent. read-only
PWD Le répertoire de travail courant, définis par cd
RANDOM Chaque fois que ce paramètre est référencé, un entier entre 0 et 32767 est généré. La séquence de nombres aléatoire peut être initialisée en assignant une valeur à RANDOM.
READLINE_LINE Le contenu du tampon de ligne de readline, à utiliser avec bind -x
READLINE_POINT La position du point d'insertion dans le tampon de ligne de readline, à utiliser avec bind -x
REPLY Définis à la ligne de l'entrée lus par la commande read quand aucun argument n'est fournis
SECONDS Chaque fois que ce paramètre est référencé, le nombre de secondes depuis l'invocation du shell est retourné. Si une valeur est assigné à SECONDS, retourne le nombre de seconde depuis l'assignement plus la valeur assigné.
SHELLOPTS Une liste séparée par des virgules d'options du shell. Chaque mot dans la liste est un argument valide pour l'option -o de la commande set. Cette variable est lu avant tout fichier de démarrage.
SHLVL Incrémenté de 1 chaque fois qu'une instance de bash est lancée
UID Étend l'ID utilisateur, initialisé au démarrage du shell, read-only

   Les variables suivantes sont utilisés par le shell, Dans certain cas, bash assigne une valeur par défaut.

BASH_ENV Si ce paramètre est définis quand bash exécute un script, sa valeur est interprété comme nom de fichier contenant des commandes pour initialiser le shell, comme dans ~/.bashrc. Sa valeur est sujet à l'expansion de paramètre, substitution de commande et expansion arithmétique avant d'être interprété comme nom de fichier. PATH n'est pas utilisé pour rechercher le fichier
BASH_XTRACEFD Si définis à un entier correspondant à un descripteur de fichier valide, bash écrit les donnée générées par set -x dans ce descripteur de fichier. Ce descripteur est fermé quand BASH_XTRACEFD est ré-initialisé ou assigné à une autre valeur.
CDPATH Le chemin de recherche pour la commande cd. Liste séparé par des virgules de répertoires dans lequel le shell recherche les répertoires de destination spécifiés par la commande cd. ex ".:~:/usr"
COLUMNS Utilisé par select pour déterminer la largeur du terminal en affichant la liste de sélection. Automatiquement définis à la réception de SIGWINCH
COMPREPLY Un tableau dans lequel bash lis les completions possibles générées par un fonction shell invoqué par la completion programmable.
EMACS Si bash trouve cette variable au démarrage et qu'elle commence par "t", il assume que le shell fonctionne comme un shell Emacs et désactive l'édition de ligne.
ENV Similaire à BASH_ENV, utilisé quand le shell est invoqué en mode posix
FCEDIT L'éditeur par défaut pour la commande fc
FIGNORE Une liste séparée par des virgules de suffixes à ignorer lors des completion de nom de fichier. ex: ".o:~"
FUNCNEST Si définis à une valeur numérique supérieur à 0, définis le niveau maximum de niveau imbriqué.
GLOBIGNORE Une liste séparée par des virgules de patterns définissant le jeu de noms de fichier à ignorer par l'expansion de nom de fichier.
HISTCONTROL Une liste séparée par des virgules de valeur contrôlant la manière dont les commandes sont sauvées dans la liste d'historique. Si HISTCONTROL n'est pas définis ou n'inclus pas de valeur valide, toutes les lignes sont sauvegardées dans l'historique, sujet à HISTIGNORE. Les lignes d'une commande composée multi-ligne excepté la première ne sont pas testées et sont ajoutés dans l'historique sans regarder la valeur de HISTCONTROL. La liste peut inclure les mots clé suivant:

        ignorespace les lignes commençant par un espace ne sont pas sauvés.
        ignoredups ne sauve pas les lignes qui matche en entrée précédente dans l'historique.
        ignoreboth raccourci pour ignorespace et ignoredups
        erasedups supprime toutes les précédente lignes matchant la ligne courant avant de sauver la ligne.

HISTFILE Nom du fichier dans lequel l'historique des commandes est sauvegardé. Défaut: ~/.bash_history. Si non définis, l'historique n'est pas sauvegardé.
HISTFILESIZE Nombre maximum de lignes contenus dans le fichier d'historique.
HISTIGNORE Liste de patterns utilisés pour décider quelles lignes de commandes devraient être sauvés dans l'historique. Chaque pattern doit matcher la ligne complète. & match la ligne précédente dans l'historique. Les lignes d'une commande composée multi-ligne excepté la première ne sont pas testées
HISTSIZE Nombre de commandes à mémoriser dans l'historique de commandes. Défaut: 500
HISTTIMEFORMAT Utilisée pour formater les timestamp via strftime(3) dans le fichier d'historique.
HOME Le répertoire home de l'utilisateur courant. argument par défaut de la commande cd
HOSTFILE Contient le nom d'un fichier dans le même format que /etc/hosts qui devrait être utilisé quand le shell doit compléter un nom d'hôte. La liste peut être changé pendant l'exécution du shell. Si non définis, utilise /etc/hosts.
IFS Internal Field Separator utilisé pour séparer les mots après l'expansion et pour séparer les lignes en mots avec la commande read. Défaut: "‹space›‹tab›‹newline›"
IGNOREEOF Contrôle l'action d'un shell interactif à la réception du caractère EOF. Si définis, la valeur est le nombre de caractères EOF consécutifs qui doivent être tapés avant que bash se termine. Défaut: 10 si la variable est définis mais vide. Si elle n'existe pas, EOF signifie la fin de l'entrée du shell.
INPUTRC Nom du fichier de démarrage pour readline. Défaut: ~/.inputrc
LANG Utilisé pour déterminer la catégorie de la locale
LC_ALL Remplace LANG et tout autre variable LC_ spécifiant une catégorie de locale
LC_COLLATE Détermine l'ordre de classement utilisé lors du trie des résultat de l'expansion de nom de fichier, et détermine la méthode de plage d'expression, d'équivalence de classe, et de classement de séquences dans l'expansion de nom de fichier et de recherche de pattern.
LC_CTYPE Détermine l'interprétation des caractères et le mode de classes de caractères dans l'expansion de chemin et de pattern matching
LC_MESSAGES Détermine la locale utilisée pour traduire les chaînes entre guillemets double précédés par un $
LC_NUMERIC Détermine la locale utilisée pour formatter les nombres
LINES Utilisé par select pour déterminer la longueur de colonne pour afficher la liste de sélection. Définis automatiquement à la réception d'un SIGWINCH
MAIL Si définis à un fichier ou un répertoire et que MAILPATH n'est pas définis, bash informe l'utilisateur de l'arrivée de mails dans fichier/répertoire spécifié.
MAILCHECK Spécifie la fréquence en secondes que bash vérifis les mails. le message peut être spécifié en séparane le nom du fichier du message par un "?". quand utilisé dans le texte du message $_ étend au nom du fichier. (ex: MAILPATH='/var/mail/bfox?"You have mail":~/shell-mail?"$_ has mail!"')
OPTERR À 1, bash affiche les messages d'erreur générés par la commande getopts. OPTERR est initialisé à 1 à chaque fois que le shell est invoqué ou qu'un script shell est exécuté
PATH Les chemins de recherche pour les commandes
POSIXLY_CORRECT Si cette variable est dans l'environnement lorsque bash démarre, le shell entre en mode posix avant de lire les fichiers de démarrage.
PROMPT_COMMAND Si définis, la valeur est exécutée comme commande avant de fournir chaque prompt primaire.
PROMPT_DIRTRIM Si définis à un nombre supérieur à 0, la valeur est utilisée comme nombre de composants de répertoire à conserver en étendant la chaîne \w et \W.
PS1 La valeur de ce paramètre est étendu et utilisé comme prompt primaire. Défaut: \s-\v\$
PS2 La valeur de ce paramètre est étendu et utilisé comme prompt secondaire. Défaut:
PS3 La valeur de ce paramètre est étendu et utilisé comme prompt pour la commande select
PS4 La valeur de ce paramètre est étendu et utilisé comme PS1 et la valeur est affichée avant chaque commande que bash affiche en mode trace. Le premier caractère est répliqué plusieurs fois si nécessaire, pour indiquer plusieurs niveaux d'indirection. Défaut: +
SHELL Le chemin complet du shell est conserver dans cette variable.
TIMEFORMAT La valeur de ce paramètre est utilisé pour spécifier comment les information de temps pour les pipe, préfixeés avec le mot réservé time sont affichés. Défaut: $'\nreal\t%3lR\nuser\t%3lU\nsys%3lS'. % introduit une séquence échappée.

        %% un % littéral
        %[p][l]R Le temps passé en secondes
        %[p][l]U Le nombres de secondes CPU passé en mode utilisateur
        %[p][l]S Le nombres de secondes CPU passé en mode système
        %P Le pourcentage de CPU, calculé avec (%U + %S) / %R

           p spécifie la précision (de 0 à 3). l spécifie un format plus long sous la forme MMmSS.FFs

TMOUT Si définis à une valeur supérieure à 0, est traité comme timeout par défaut pour les commandes read et select. Dans un shell interactif, la valeur est interprétée comme nombre de secondes à attendre une entrée après avoir fournis le prompt primaire.
TMPDIR Spécifie un répertoire dans lequel bash créé les fichiers temporaires
auto_resume Contrôle comment le shell interagis avec l'utilisateur et le contrôle de job. Si la valeur est définis, une commande simple mot sans redirection est traitée comme candidat à la reprise d'un job stoppé. Il n'y a pas ambiguïté permise, si plus d'un job commence avec la chaîne tapée, le job le plus récent est sélectionné. Le nom d'un job, dans ce contexte, est la ligne de commande utilisée pour la lancer. Si définis à exact, la chaîne fournie doit matcher exactement le nom d'un job stoppé. Si définis à substring, la valeur fournie est analogue à %?. Si définis à une autre valeur, la chaîne fournie doit être préfixeé par le nom d'un job stoppé, analogue à %string.
histchars Les 2 ou 3 caractères qui contrôlent l'expansion d'historique et la tokenisation. Le premier caractère est le caractère l'expansion d'historique (généralement !). Le second est le caractère quick substitution, qui est utilisé comme raccourci pour relancer la commande précédente (généralement ^). Le 3ème caractère, optionnel, est le caractère qui indique que le reste de la ligne est un commentaire quand il est trouvé comme premier caractère d'un mot, généralement #. Il permet à la substitution d'historique de sauter les mots restants sur la ligne.

tableaux

   bash fournis des variable tableaux indexés et associatifs à une dimension. Toute variable peut être utilisée comme un tableau indexé; la commande declare déclare implicitement un tableau. Il n'y a pas de limite sur la taille d'un tableau, ni ne requière que ses membres soient indexés ou assignés en continus. Les tableaux indexés sont référencés en utilisant des entiers (incluant des expressions mathématiques). Les tableaux associatifs sont référencés en utilisant des chaînes arbitraires.

   Un tableau indexé est crée automatiquement si une variable est assignée en utilisant la syntaxe name[subscript]=value. subscript est traité comme expression arithmétique que doit évaluer un nombre. si subscript évalue un nombre inférieur à 0, il est utilisé comme offset depuis le plus grand élément du tableau (ex: -1 réfère au dernier élément du tableau).

   les tableaux indexé peuvent être créés implicitement avec declare -a, les tableaux associatifs avec declare -A. Les attributs peuvent être spécifiés en utilisant declare et readonly. Chaque attribut s'applique à tout le tableau.

   Les tableaux sont assignés en utilisant les assignements composés sous la forme name=(value1 ... valuen), où chaque valeur est sous la forme [subscript]=string. En assignant un tableau associatif, le subscript est requis. La syntaxe est accepté par la commande declare. Les éléments individuels peuvent être assignés avec name[subscript]=value

   Tout élément dans un tableau peut être référencé en utilisant ${name[subscript]}. Si subscript est @ ou *, le mot s'étend à tous les membres de name. Ces subscripts diffèrent seulement quand le mot apparaît entre guillemets double. Si le mot est entre guillemets double, ${name[*]} étend à un simple mot avec la valeur de chaque membre du tableau, et ${name[@]} étend chaque élément de name à un mot séparé. ${#name[subscript]} étend à la longueur de ${name[subscript]}. Si subscript est * ou @, l'expansion est le nombre d'éléments dans le tableau. Référence un tableau sans subscript est équivalent à référencer le tableau avec un subscript de 0.

   Un tableau est considéré définis si un subscript à été assigné. Une chaîne null est une valeur valide. unset permet de détruire un tableau. unset name[subscript] détruit l'élément du tableau. Les commandes declare, local, et readonly acceptent chacun l'option -a pour spécifier un tableau indexé, et -A pour spécifier un tableau associatif. read acceptent -a pour assigner une liste de mots lus depuis l'entrée standard dans un tableau. set et declare affichent les valeurs de tableau de manière à ce qu'ils puissent être réutilisés comme assignement.

Expansion

   L'expansion est effectuée sur la ligne de commande après qu'elle ait été splitté en mots. Il y a 7 types d'expansion: expansion d'accolades, expansion de tilde, expansion de paramètre et de variable, La substitution de commande, l'expansion arithmétique, le word splitting, et l'expansion de nom de chemin, dans l'ordre d'expansion. Sur les systèmes qui le supporte, il y a une expansion supplémentaire: la substitution de processus.

   Seul l'expansion d'accolades, le word splitting et l'expansion de nom de chemin peuvent changer le nombre de mots de l'expansion; les autres étendent un simple mot en un simple mot. Les seuls exceptions sont les expansions de $@ et ${name[@]}.

Expansion d'accolades

   L'expansion l'accolades est un mécanisme par lequel des chaînes arbitraires peuvent être générées. Il est similaire à l'expansion de chemin, mais les noms de fichiers n'ont pas besoin d'exister. Les motifs à étendre prennent la forme d'un préambule optionnel, suivi par soit une série de chaînes séparées par de virgules, soit une séquence d'expressions entre une paire d'accolades, suivi par un postscript optionnel. Le préambule est préfixeé à chaque chaîne, est le postscript est ajouté à chaque chaîne résultante.

   Les expansions d'accolades peuvent être imbriquées. Le résultat de chaque chaîne étendue n'est pas trié; l'ordre de gauche à droite est préservé. Par exemple, a{d,c,b}e s'étend à 'ade ace abe. Une séquence d'expression prend la forme {x..y[..incr]}, où x et y sont soit des entiers soit un simple caractère, et incr, un incrément optionnel, un entier. Quand des entiers sont fournis, l'expression étend à chaque nombre entre x et y, inclusif. Les entiers fournis peuvent être préfixeés avec des 0 pour forcer chaque terme à avoir la même largeur. Quand des caractères sont fournis, l'expression étend à chaque caractère lexicographiquement entre x et y, inclusif. x et y doivent être de même type. Quand l'incrément est fournis, il est utilsié comme différence entre chaque terme. l'incrément par défaut est 1 ou -1.

   l'expansion d'accolades est effectuée avant tout autre expansion, et tout caractère spécial pour d'autres expansions sont préservés dans le résultat. bash n'applique aucune interprétation syntaxique au contexte de l'expansion ou au texte entre les accolades.

mkdir /usr/local/src/bash/{old,new,dist,bugs}
chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}

Expansion de tilde

   Si un mot commence avec un tilde non quoté, tous les caractères précédant le premier "/" non quotés ( ou tous les caractères, s'il n'y a aucun / non quoté ) sont considérés comme préfixe de tilde. Si aucun des caractères dans le préfixe de tilde ne sont quotés, les caractères dans le préfixe de tilde suivant le tilde sont traités comme un nom de login. Si le nom de login est une chaîne null, le tilde est remplacé avec la valeur du paramètre HOME. Si HOME n'est pas définis, le répertoire de l'utilisateur courant est utilisé. Sinon, le préfixe de tilde est remplacé avec le home associé avec le nom de login spécifié.

   Si le préfixe de tilde est ~+, La valeur de PWD remplace le préfixe de tilde. Si le préfixe de tilde est ~-, la valeur de OLDPWD, si définis, est substitué. Si le caractère suivant le tilde dans le préfixe de tilde consiste d'un nombre N, optionnellement préfixeé par un + ou un -, le préfixe est remplacé avec l'élément correspondant depuis la pile de répertoire, comme si c'était affiché par dirs invoqué avec le préfixe de tilde comme argument. Si les caractères suivant le tilde dans le préfixe de tilde consiste d'un nombre sans commencer par un + ou -, + est assumé.

   Si le nom de login est invalide, ou l'expansion de tildes échoue, de mot est inchangé. Chaque assignement de variable est vérifié pour des préfixe de tilde suivant immédiatement un : ou le premier =. Dans ce cas, l'expansion de tilde est aussi effectué. En conséquence, on peut utiliser des noms de fichiers avec des tildes en assignement à PATH, MAILPATH, et CDPATH, et le shell assigne la valeur étendue.

Expansion de paramètres

   Le caractère $ introduit l'expansion de paramètre, la substitution de commande, ou l'expansion arithmétique. le nom de paramètre ou symbole à étendre peut être entre accolades, qui sont optionnels mais servent à protéger la variable de l'extension depuis le caractère immédiatement après, qui peuvent être une partie du nom.

${parameter} La valeur de parameter est substitué. Les accolades sont requises quand parameter est un paramètre positionnel avec plus d'un chiffre, ou quand il est suivi par un caractère qui ne doit pas être interprété comme partie de son nom.

   Si le premier caractère de parameter est un !, un niveau d'indirection de variable est introduit. bash utilise la valeur de la variable formée depuis le reste de parameter comme nom de variable. Cette variable est ensuite étendue et cette valeur est utilisée dans le reste de la substitution au lieu de la valeur de parameter elle-même. C'est l'expansion d'indirection. Les exceptions sont les expansions de ${!prefix*} et ${!name[@]}.

   Dans chacun de ces cas, word est sujet à l'expansion du tilde, l'expansion de paramètre, la substitution de commande et l'expansion arithmétique.

${parameter:-word} Si parameter est non définis ou null, l'expansion de word est substitué. Sinon, la valeur de parameter est substitué
${parameter:=word} Si parameter est non définis ou null, l'expansion de word est assigné à parameter. la valeur de parameter est ensuite substitué. les paramètres positionnels et paramètres spéciaux ne peuvent pas être assignés de cette manière.
${parameter:?word} Si parameter est non définis ou null, l'expansion de word ( ou un message à cet effet si word n'est pas présent) est affiché sur stderr et le shell, s'il n'est pas interactif, quitte. Sinon, la valeur de parameter est substitué.
${parameter:+word} Si parameter est non définis ou null, rien n'est substitué, sinon l'expansion de word est substitué.
${parameter:offset}
${parameter:offset:length} Étend jusqu'à length caractères de parameter, en commençant au caractère spécifié par offset. Si length est omis, étend à la sous-chaîne de paramètre en commençant au caractère spécifié par offset. length et offset sont des expressions arithmétique. Si offset évalue à un nombre inférieur à 0, la valeur est utilisée comme offset depuis la fin de la valeur de paramètre. Les expressions arithmétique commenfant avec un - doivent être séparés par un espace blanc du précédent.

   Si length évalue à un nombre inférieur à 0, et parameter n'est pas @ ni un tableau, il est interprété comme offset depuis la fin de la valeur de parameter. Si parameter est un nom de tableau indexé, le résultat sont les length membres du tableau commençant avec ${parameter[offset]}. Si offset est 0 et que les paramètres positionnels sont utilisés, $0 est préfixé à la liste.

${!prefix*}
${!prefix@} Étends aux noms de variables dont les noms commencent avec prefix, séparés par le premier caractère de IFS. Quand @ est utilisé et que l'expansion apparaît dans des guillemets doubles, chaque nom de variable s'étends à un mot séparé.
${!name[@]}
${!name[*]} Si name est un tableau, étends à la liste d'indices assignés dans name. Si name n'est pas un tableau, étends à 0 si name est définis et null sinon. Quand @ est utilisé et que l'expansion apparaît dans des guillemets doubles, chaque indice d'étends à un mot séparé
${#parameter} Subsitute à la longueur en caractères de la valeur de parameter. Si parameter est * ou @, la valeur substitué est le nombre de paramètres positionnel. Si parameter est un tableau, la valeur substitué est le nombres d'éléments dans le tableau
${parameter#word}
${parameter##word} word est étendu pour produire un pattern comme dans une expansion de pathname. Is le pattern match le début de la valeur de parameter, le résultat est la valeur de parameter raccourci du pattern matchant le plus court ( # ), ou le plus long ( ## ). Si parameter est @ ou * , l'opération de suppression est appliqué à chaque paramètre positionnel, et l'expansion est la liste résultante. Si parameter est un tableau, l'opération est appliquée à chaque membre du tableau.
${parameter%word}
${parameter%%word} L'expansion est identique mais l'opération de suppression de pattern se produit en partant de la fin de parameter.
${parameter/pattern/string} pattern est étendu pour produire un un pattern comme dans l'expansion de pathname. parameter est étendu et le plus grand match de pattern est remplacé avec string. Si pattern commence avec /, tous les matches de pattern sont remplacés avec string. Normalement, seul le premier match est remplacé. Si pattern commence avec #, il doit matcher au début de la valeur étendu de paramètre, et à la fin si pattern commence avec %. Si string est null, les matchs sont supprimés. Si parameter est @ ou * , l'opération de substitution est appliquée à chaque paramètre positionnel. Si parameter est un tableau, la substitution est appliquée à chaque membre.
${parameter^pattern}
${parameter^^pattern}
${parameter,pattern}
${parameter,,pattern} Cette expansion modifie la casse des caractères alphabétique dans parameter. ^ convertis en majuscule le premier pattern qui match ( ^^ tous les patterns qui matchent), , convertis en minuscule.

Substitution de commande

   La substitution de commande permet à la sortie d'un commande de remplace de nom de commande. Il y a 2 forme

$(command)
`command`

   Bash effectue l'expansion en exécutant command et en remplaçant la substitution avec la sortie standard de la commande. La substitution de commande $(cat file) peut être remplacé par l'équivalent plus rapide $(‹ file). Quand l'ancien style ` est utilisé, le backslash garde sa signification litérale excepté quand il est suivi par $, ` ou \. Le premier ` non précédé par un \ termine la substitution de commande. En utilisant la forme $(command), tous les caractères entre les parenthèses font la commande, aucun n'est traité spécialement.

   Les substitutions de commande peuvent être imbriqués. Pour imbriquer en utilisant la forme ``, échapper les ` à l'intérieur avec des \. Si la substitution de commande apparaît dans des guillemets doubles, le word splitting et l'expansion de pathname ne sont pas effectués.

Expansion arithmétique

   L'expansion arithmétique permet l'évaluation d'une expression arithmétique et la substitution du résultat. Le format est:

        $((expression))

   L'expression est traitée comme si elle était entre guillemets double, mais un guillemet double dans les parenthèses ne sont pas traités spécialement. tous les tokens dans l'expression subissent l'expansion de paramètre, l'expansion de chaîne, la substitution de commande, et la suppression de quote. Les expressions arithmétique peuvent être imbriqués. L'évaluation est effectué en accord avec les règles listé dans Évaluation arithmétique.

Substitution de processus

   La substitution est supportée sur les systèmes qui supportent les pipes nommés (FIFO) ou la méthode de fichiers /dev/fd. Elle prend la forme ‹(list) ou ›(list). list avec sa sortie ou sa sortie connecté à un FIFO. Le nom de ce fichier est passé en argument à la commande courante en résultat de l'expansion. En utilisant ›(list), écrire dans le fichier fourni une entrée pour list. En utilisant ›(list), le fichier passé en argument devrait être lu pour obtenir la sortie de list. Quand disponible, la substitution est effectué simultanément avec l'expansion de paramètre et de variable, la substitution de commande et l'expansion arithmétique.

Découpage de mots

   Le shell traite chaque caractère de IFS comme délimiteur, et découpe le résultat d'autre expansions en mots. Si IFS n'est pas définis, sa valeur est exactement ‹space›‹tab›‹newline›, et les séquences ‹space›, ‹tab› et ‹newline› au début et à la fin du résultat de l'expansion précédente sont ignorés, et toute autre séquence de caractère de IFS sert à délimiter les mots. Si IFS a une valeur autre que son défaut, alors les séquences space et tab sont ignorés au début et à la fin du mot, tant que le caractère whitespace est dans la valeur d'IFS. Tout caractère dans IFS qui n'est pas un whitespace, délimite un champ. Une séquence de whitspace d'IFS est aussi traité comme un délimiteur. Si la valeur d'IFS est null, aucun découpage ne se produit.

   Les arguments null explicites "" et '' sont retenus. Les arguments null implicite non quotés, résultant de l'expansion de paramètre qui n'a pas de valeur, sont supprimés. Si un paramètre sans valeur est étendu dans des guillemets double, il en résulte un argument null et est retenus. Noter que si aucune expansion ne se produit, aucun découpage n'est effectué.

Expansion de chemin

   Après le word splitting, à moins que l'option -f n'ait été définis, bash scanne chaque mot pour le caractère *, ?, et [. Si un de ces caractères apparaît, alors de mot est lu comme pattern, et remplacé avec une liste triée alphabétiquement de nom de fichiers correspondant au pattern. Si aucun nom de fichier matchant n'est trouvé et que l'option nullgrob n'est pas activé, le mot reste inchangé. Si nullglob est définis, et qu'aucun match n'est trouvé, le mot est supprimé. Si l'option shell failglob est définis et qu'aucun matche n'est trouvé, un message d'erreur est affiché et la commande n'est pas exécutée. Si l'option nocaseglob est activée, le match est effectué sans regarder la casse des caractères.

   Noter qu'en utilisant des expression de plage comme [a-z], les lettres de l'autre casse peuvent être incluent en fonction de LC_COLLATE. Quand un pattern est utilisé pour l'expansion de pathname, le caractère . au début d'un nom ou suivant immédiatement un / doit être matché explicitement sauf si l'option dotglob est définis. En matchant un pathname, le / doit toujours être matché explicitement. Dans les autres cas, . n'est pas traité spécialement.

   La variable GLOBIGNORE peut être utilisé pour restreindre le jeu de noms de fichier matchant un pattern. Si elle est définie, chaque nom de fichier matchant qui match également les patterns dans GLOBIGNORE sont supprimés de la liste des matchs. GLOBIGNORE définis à une valeur null active l'option dotglob, donc tous les noms de fichiers commençant par . vont matcher. pour ignorer les noms de fichier commençant par un ., créer un pattern .* dans GLOBIGNORE, l'option dotglob est désactivé quand GLOBIGNORE est définis.

Motifs de correspondance

   Tout caractère que apparaît dans un pattern, autre que les caractères de pattern spéciaux, se matche lui-même. Le caractère NUL ne peut pas exister dans un pattern. Un '\' échappe les caractère suivant. Les caractères de pattern doivent être quotés s'ils doivent matcher littéralement. Les caractères de pattern spéciaux ont la signification suivante:

Match toutes chaîne, incluant une chaîne null. Quand l'option globstar est activée, et que * est utilisé dans l'expansion de pathname, 2 * adjacent utilisés dans un simple pattern vont matcher tous les fichiers et ou plusieurs répertoire et sous-répertoires. Si suivi par un /, 2 * adjacents vont matcher uniquement les répertoires et sous-répertoires.
? Matche un simple caractère.
[...] Matche un des caractères entre les crochets. Une paire de caractères séparés par un "-" dénote une plage; tous caractères qui se trouvent entre ces 2 caractères sont matchés. Si le premier caractère après [ est un ! ou un ^ alors tous caractères qui n'est pas dans les crochets matchent. L'ordre de trie des caractères dans une plage est déterminé par la locale courant et la valeur de LC_COLLATE, si définis. Un - peut être matché en l'incluant comme premier ou dernier caractère dans les crochets. Un ] peut être matché en l'incluant comme premier caractère.

        - Dans [ et ], les classes de caractères peuvent être spécifiés en utilisant la syntaxe [:class:], où class peut être alnum alpha ascii blank cntrl digit graph lower print punct space upper word xdigit
        - Dans [ et ], une équivalence de classe peut être spécifiée en utilisant la syntaxe [=c=], qui matche tous les caractères de la même classe que le caractère c.
        - Dans [ et ], la syntaxe [.symbol.] matche la même classe de symbole.

   Si extglob est activé, de nombreux opérateurs de correspondance de pattern étendus sont reconnus. Dans les descriptions suivante, pattern-list est une liste d'un ou plusieurs pattern séparés par un |. Les patterns composites peuvent être formés en utilisant un ou plusieurs sous-pattern:

?(pattern-list) Matche 0 ou une occurence des patterns donnés
*(pattern-list) Matche 0 ou plusieurs occurences des patterns donnés
+(pattern-list) Matche 1 ou plusieurs occurences des patterns donnés
@(pattern-list) Matche 1 des patterns donnés
!(pattern-list) Matche tout sauf un des patterns donnés

Suppression de quote

   Après les précédentes expansions, toutes les occurences non-quotés des caractères \, ' et " qui ne résultent pas d'une des précédentes expansions sont supprimés.

Redirection

   Avant qu'une commande soit exécutée, son entrée et sa sortie peuvent être redirigées en utilisant une notation interprétée par le shell. La redirection peut être également utilisée pour ouvrir et fermer des fichiers pour l'environnement d'exécution du shell courant. Les redirections sont traitées dans l'ordre qu'elles apparaissent.

   Chaque redirection qui peut être précédée par un descripteur de fichier peut, à la place, être précédée par un mot sous la forme {varname}. Dans ce cas, pour chaque opérateur de redirection excepté ›&- et ‹&-, le shell va allouer un descripteur de fichier supérieur à 10 et l'assigner à varname. Si ›&- ou ‹&- est précédé par {varname}, la valeur de varname définis le descripteur de fichier à fermer.

   Dans les descriptions suivantes, si le descripteur de fichier est omis, et que le premier caractère de l'opérateur de redirection est , la redirection réfère à l'entrée standard (descripteur de fichier 0). Si le premier caractère de l'opérateur de redirection est , la redirection réfère à la sortie standard (descripteur de fichier 1).

   Le mot suivant l'opérateur de redirection dans les descriptions suivante, sauf mention, est sujet à l'expansion d'accolades, de tilde, et de word splitting. S'il s'étend à plus d'un mot, bash reporte une erreur. Noter que l'ordre des redirections est significatif.

        par exemple, la commande
        ls › dirlist 2›&1
        Dirige la sortie standard et l'erreur standard vers le fichier dirlist, alors que la commande
        ls 2›&1 › dirlist
        dirige seulement la sortie standard vers de ficher dirlist, parce que l'erreur standard a été dupliquée depuis la sortie standard avant que la sortie standard ai été redirigée vers dirlist.

   bash gère de nombreux noms de fichiers spécialement quand ils sont utilisés dans les redirections:

        /dev/fd/fd Si fd est un entier valide, le descripteur fd set dupliqué
        /dev/stdin Le descripteur de fichier 0 est dupliqué
        /dev/stdout Le descripteur de fichier 1 est dupliqué
        /dev/stderr Le descripteur de fichier 2 est dupliqué
        /dev/tcp/host/port Si host est un nom d'hôte valide ou une adresse internet, et port est un numéro de port ou un nom de service, bash tente d'ouvrir une connexion TCP sur le socket correspondant.
        /dev/udp/host/port Si host est un nom d'hôte valide ou une adresse internet, et port est un numéro de port ou un nom de service, bash tente d'ouvrir une connexion UDP sur le socket correspondant.

   Une impossibilité d'ouvrir ou créer un fichier échoue la redirection. Les redirections utilisant les descripteurs de fichier supérieur à 9 devraient être utilisés avec précaution vu qu'ils peuvent être en conflit avec les descripteur de fichiers que le shell utilise en interne. Noter que la commande exec peut créer des redirections qui prennent effet dans le shell courant.

Redirection d'entrée

   La redirection d'entrée ouvre le fichier résultant de word en lecture sur le descripteur de fichier n, ou l'entrée standard si non spécifié. Le format général est:

[n]‹word

Redirection de sortie

   La redirection de sortie ouvre le fichier résultant de word en écriture sur le descripteur de fichier n, ou la sortie standard si non spécifié. Si le fichier n'existe pas il est créé; s'il existe ta taille est tronqué à 0. Le format général est:

[n]›word

   Si l'opérateur de redirection est , et l'option noclobber est définie, la redirection échoue si le fichier dont le nom résulte de l'expansion de word existe et est un fichier régulier. Si l'opérateur de redirection est ›|, ou et l'option noclobber n'est pas activé, la redirection est tentée même si le fichier nommé par word existe.

Ajouter à la sortie redirigée

   La redirection de la sortie de cette manière ouvre le fichier résultant de l'expansion de word à être ouvert sur le descripteur de fichier n pour ajout. Si le fichier n'existe pas il est créé. Le format général est:

[n]››word

Rediriger Stdout et Stderr

   Cette constuction permet à la sortie standard et l'erreur standard d'être redirigés vers de fichier dont le nom est l'expansion de word. Il y a 2 formes:

&›word
et
›&word
Des 2 formes, la première est préféré. C'est équivant à
›word 2›&1

Ajouter Stdout et Stderr

   Cette construction permet à la sortie standard est l'erreur standard d'être ajoutés au fichier dont le nom est l'expansion de word.

&››word
C'est équivalent à
››word 2›&1

Here Documents

   Ce type de redirection instruit de shell de lire l'entrée depuis la source courante jusqu'à ce qu'une ligne contenant seulement delimiter ( sans espace blanc après ) soit vu. Toutes les lignes lues jusqu'à ce point sont utilisés comme entrée standard pour une commande.

‹‹[-]word
here-document
delimiter

   Aucune expansion de paramètre, substitution de commande, expansion arithmétique, expansion de chemin n'est effectué dans word. Si des caractères dans word sont quotés, le delimiter est le résultat de la suppression des quote dans word et les lignes dans le here-document ne sont pas étendues. Si word est non quoté, toutes les ligne du here-document sont sujet à l'expansion de paramètre, substitution de commande et expansion arithmétique. Dans ce dernier cas, la séquence \‹newline› est ignorée, et \ doit être utilisé pour quoter les caractères \, $ et `. Si l'opérateur de redirection est ‹‹-, tous les caractères de tabulation en début de ligne sont supprimés.

Here String

   Une variante de here-document. word est étendu et fournis à la commande sur son entrée standard. le format est:

‹‹‹word

Dupliquer les descripteurs de fichier

   L'opérateur de redirection

  [n]‹&word

  est utilisé pour dupliquer les descripteurs de fichier d'entrée. Si word s'étend à un ou plusieurs chiffres, le descripteur de fichier dénoté par n devient une copie de ce descripteur de fichier. Si word évalue à -, le descripteur n est fermé. Si n n'est pas spécifié, l'entrée standard est utilisée.

   [n]›&word

  est utilisé pour dupliquer les descripteurs de fichier de sortie. Si n n'est pas spécifié, la sortie standard est utilisée. Un cas spécial, si n est omis, et word ne s'étend pas à un ou plusieurs chiffres, l'entrée standard et l'erreur standard sont redirigés comme décris précédemment.

Déplacer les descripteurs de fichier

   L'opérateur de redirection

  [n]‹&digit-

  déplace le descripteur de fichier digit au descripteur de fichier n, ou l'entrée standard si n n'est pas spécifié. digit est fermé après avoir été dupliqué à n. Similairement, l'opérateur de redirection

  [n]›&digit-

  déplace le descripteur de fichier digit au descripteur de fichier n, ou la sortie standard si n n'est pas spécifié.

Ouvrir des descripteurs de fichier en lecture-écriture

   L'opérateur de redirection

  [n]‹›word

  ouvre le fichier en lecture et écriture sur le descripteur de fichier n ou le descripteur de fichier 0 si n n'est pas spécifié. Si le fichier n'existe pas, il est créé.

Alias

   Les alias permettent à une chaîne d'être substituée pour un mot quand il est utilisé comme premier mot d'une simple commande. Le shell maintient une liste d'alias qui peuvent être définis et supprimés avec les commande alias et unalias. Le premier mot de chaque commande simple, si non quoté, est vérifié pour voir si elle a un alias. Si c'est le cas, ce mot est remplacé par le texte de l'alias. Les caractères /, $, `, et = et tout autre métacaractère shell ou caractère de quote ne doivent pas apparaître dans un nom d'alias.

   Le texte de remplacement peut contenir une entrée shell valide, incluant des métacaractères. Le premier mot du remplacement est testé pour un alias, mais un mot qui est identique à un alias qui est étendu n'est pas étendu une seconde fois. Cela signifie que l'on peut créer un alias ls à ls -F. Si le dernier caractère de la valeur de l'alias est un blanc, alors le prochain mot suivant l'alias est aussi vérifié pour l'expansion de l'alias.

   Il n'y a pas de mécanisme pour utiliser des arguments dans le texte de remplacement. Si les arguments sont nécessaires, une fonction shell devrait être utilisée. Les alias ne sont pas étendus quand le shell n'est pas interactif, sauf si l'option expand_aliases est définis.

   Bash lit toujours au moins une ligne complète d'entrée avant d'exécuter les commandes sur la ligne. Les alias sont étendus quand une commande est lue, pas quand elle est exécutée, Cependant, une définition d'alias apparaissant sur la même ligne qu'une autre commande ne prend effet qu'à la ligne suivante, Le problème est similaire avec les fonctions.

Fonctions

   Une fonction shell stocke une série de commande pour une exécution ultérieur. Quand le nom d'une fonction est utilisé comme nom de commande simple, la liste des commandes associée avec cette fonction est exécutée. Les fonctions sont exécutées dans le contexte du shell courant; aucun nouveau processus n'est créé pour les interpréter. Quand une fonction est exécutée, les arguments de cette fonction deviennent les paramètres positionnels durant son exécution. Le paramètre spécial # est mis à jour pour refléter ce changement et 0 est inchangé. Le premier élément de FUNCNAME est définis au nom de la fonction durant son exécution.

   Tous les autres aspects de l'environnement d'exécution du shell sont identiques entre une fonction et son appelant à l'exception des traps DEBUG et RETURN qui ne sont pas hérités sauf si la fonction a été donnée par l'attribut trace ou l'option -o functrace est activée. Le trap ERR n'est pas hérité sauf si -o errtrace est activé.

- Les variables locales aux fonctions peuvent être déclarées avec la commande local. Généralement, les variables et leur valeurs sont partagées entre la fonction et son appelant.
- La variable FUNCNEST, si définie à une valeur numérique supérieur à 0, définis le niveau d'imbrication de fonction maximum. Les invocations de fonction qui excèdent cette limite sont annulées.
- Si la commande return est exécutée dans une fonction, la fonction se termine et retourne à l'appelant. Toute commande associée avant le trap RETURN est exécutée avant que l'exécution se termine. Quand une fonction se termine, les valeurs des paramètres positionels et le paramètre spécial # sont restaurés aux valeurs qu'ils avaient avant l'exécution de la fonction.
- Les fonctions peuvent être récursives, La variable FUNCNEST peut être utilisée pour limiter la profondeur d'appel et restreindre le nombre d'invocation.

   Les noms et définitions de fonction peuvent être listés avec l'option -f des commandes declare ou typeset. L'option -F de declare ou typeset va lister les noms de fonction uniquement (et optionnellement le fichier source et le numéro de ligne, si extdebug est activé). Les fonctions peuvent être exportées pour que les sous-shells les aient automatiquement definies avec l'option -f de la commande export. Une définition de fonction peut être supprimée avec unset -f. Noter que les fonctions shell et le variables de même nom peuvent résulter en plusieurs entrées nommées identiquement dans l'environnement passé aux enfants du shell, cela peut poser problème.

Évaluation Arithmétique

   Le shell permet d'évaluer des expressions arithmétiques, sous certaines circonstances. L'évaluation est faite avec des entiers à largeur fixe sans vérification de débordement. Les opérateurs et leur précédence, l'associativité et les valeurs sont les même que dans le langage C. La liste suivant d'opérateurs est groupé en niveaux de précédence équivalant. Les niveaux sont listés dans l'ordre décroissant de précédence.

id++ id-- post-incrément et post-décrément de variable
++id --id pré-incrément pré-décrément de variable
- + moins et plus unaire
! ~ négation logique et au niveau des bits
**  Exponentialité
* / % multiplication, division et reste
+ - addition et soustraction
‹‹ ›› décalages de bit
‹= ›= ‹ › Comparaison
== != égalité et inégalité
& ET bit à bit
^ OU exclusif bit à bit
| OU bit à bit
&& AND logique
|| OU logique
expr?expr:expr opérateur conditionnel
= *= /= %= += -= ‹‹= ››= &= ^= |= assignements
expr1 , expr2 virgule

   Les variables shell sont des opérandes permises; l'expansion de paramètre est effectué avant que l'expression soit évalué. Dans l'expression, les variables shell peuvent aussi être référencées par mon sans utiliser la syntaxe d'expansion de paramètre. Une variable shell qui est null ou indéfinie évalue à 0 quand elle référencée par nom sans utiliser la syntaxe d'expansion de paramètre. La valeur d'une variable est évaluée comme expression arithmétique quand elle est référencée, ou quand une variable a l'attribut entier. Une valeur null évalue à 0. Une variable shell n'a pas besoin de l'attribut entier pour être utilisé dans une expression

   Les constantes commençant avec un 0 sont interprétées en octal, en celles commençant avec 0x ou 0X sont interprétés en héxadécimal. Sinon, les nombres prennent la forme [base#]n, où base est entre 2 et 64 et représente la base arithmétique, et n est un nombre de cette base. Si base est omis, utilise de système décimal. En spécifiant n, les chiffres supérieur à 9 sont représenté par les lettres minuscule, les lettres majuscules, @, et _, dans cet ordre. Si base est inférieur ou égal à 36, les lettres minuscules et majuscule peuvent être inter-changés. Les opérateurs sont évalués dans l'ordre de précédence. Les sous-expressions entre parenthèses sont évalués en premier et peuvent écraser les règles de précédence.

Expressions conditionnelles

   Les expressions conditionnelles sont utilisée par la commande composée [[ et les commandes test et [ pour tester les attributs de fichier et effectuer des comparaisons arithmétique et de chaîne. Les expressions sont formées depuis les primaires unaire ou binaire suivantes. Si un argument file d'un des primaires est de forme /dev/fd/n, le descripteur de fichier n est vérifié. Sauf mention, les primaires qui opèrent sur les fichiers suivent les liens symbolique. Quand utilisé avec [[, les opérateurs et trient lexicographiquement en utilisant la locale courante. La commande test trie en utilisant l'ordonnancement ASCII.

-a file Vrai si file existe
-b file Vrai si file existe et est un fichier spécial block
-c file Vrai si file existe et est un fichier spécial caractère
-d FILE vrai si FILE existe et est un répertoire
-e file Vrai si file existe
-f FILE vrai si FILE existe et est un fichier régulier
-g file Vrai si file existe et est set-groud-id
-h file Vrai si file existe et est un lien symbolique
-k file Vrai si file existe et son sticky bit est mis
-p file Vrai si file existe et est un pipe nommé
-r file Vrai si file existe et est accéssible en lecture
-s FILE vrai si FILE existe et a une taille supérieur à 0
-t fd Vrai si le descripteur de fichier est ouvert et réfère à un terminal
-u file Vrai si file existe et son set-user-id est mis
-w file Vrai si file existe et est accéssible en écriture
-x file Vrai si file existe et est exécutable
-G file Vrai si file existe et est possédé par l'id de groupe effectif
-L file Vrai si file existe et est un lien symbolique
-N file Vrai si file existe et a été modifié depuis le dernier accès en lecture
-O file Vrai si file existe et est possédé par l'id utilisateur effectif
-S FILE vrai si FILE existe et est un socket
file1 -ef file2 Vrai si file1 et file2 réfèrent au même numéro de device et inode
file1 -nt file2 Vrai si file1 est plus récent que file2, ou si file1 existe et non file2
file1 -ot file2 Vrai si file1 est plus ancien que file2, ou si file2 exist en non file1
-o optname Vrai si l'option shell est activée.
-v varname Vrai si la variable shell est définie
-R varname Vrai si la variable shell est définie et est une référence nommée
-Z STRING vrai si la longueur de STRING est 0
string
-n string Vrai si la longueur de string est différente de 0
string1 == string2
string1 = string2 Vrai si les chaînes sont identiques. = devrait être utilisé avec test.
string1 != string2 Vrai si les chaînes ne sont pas identiques
string1 ‹ string2 Vrai si string1 se trie avant string2 lexicographiquement
string1 › string2 Vrai di string1 se trie après string2 lexicographiquement
arg1 OP arg2 OP vaut: -eq, -ne, -lt, -le, -gt, ou -ge. Ces opérateurs arithmétique retournent vrai si arg1 est égal à, non égal à, inférieur à, inférieur ou égal à, supérieur à, supérieur ou égal à arg2, respectivement.

Expansion de commande simple

   Quand une commande simple est exécutée, le shell effectue les expansions, assignements et redirections suivantes, de gauche à droite:

        1. Les mots que le parser a marqué comme assignement de variable (ceux précédant le nom de commande) et des redirections sont sauvés pour traitement ultérieur.
        2. Les mots qui ne sont pas des assignement de variable ou des redirections sont étendus. Si des mots restent après l'expansion, le premier mot est pris comme nom de commande et les mots restants sont les arguments.
        3. Les redirections sont effectuées
        4. Le texte après le = dans chaque assignement de variable subit d'expansion de tilde, expansion de paramètres, substitution de commande, expansion arithmétique, et suppression de quote avant l'être assigné à la variable.

   S'il ne résulte aucun nom de commande, les assignements de variable affectent le shell courant. Sinon, les variables sont ajoutés à l'environnement de la commande exécutée et n'affecte pas l'environnement du shell courant.

  S'il ne résulte aucun nom de commande, les redirections sont effectuées, mais n'affectent pas l'environnement du shell courant.

Exécution de commande

   Une fois une commande découpée en mots, s'il en résulte en une simple commande et une liste optionnelle d'arguments, les actions suivantes sont effectuées.

   Si le nom de la commande ne contient pas de /, le shell tente de la localiser. S'il existe une fonction shell de ce nom, elle est invoquée. Sinon, si le nom correspond à une commande intégrée, elle est invoquée.

   Si le nom n'est ni une fonction ni un commande intégrée et ne contient pas de /, bash recherche chaque élément de PATH à la recherche d'un fichier exécutable de ce nom. Bash utilise une table de hash pour mémoriser les chemins complet des fichiers exécutable. Une recherche complète des répertoires n'est effectuée que si la commande n'est pas trouvée dans la table. Si la recherche ne donne aucun résultat, le shell recherche une fonction shell définie nommée command_not_found_handle. Si elle existe, elle est invoquée avec la commande original et ses arguments en argument, et le code de sortie de la fonction devient le code de sortie du shell. Si cette fonction n'est pas définie, le shell affiche une erreur et retourne un code de sortie de 127.

   Si la recherche a réussie, ou si le nom de commande contient un ou plusieurs /, le shell exécute le programme nommé dans un environnement séparé. L'argument 0 est le nom donnée.


   Si le programme est un fichier commençant avec #!, le reste de la première ligne spécifie un interpréteur de commande. Le shell exécute l'interpéteur spécifié.

Environnement d'exécution de commande

   Le shell a un environnement d'exécution, qui consiste en:

- Les fichier ouverts hérités par le shell à l'invocation, comme modifié par les redirections fournies à la commande exec
- Le répertoire de travail courant comme définis par cd, pushd ou popd
- Le masque de mode de création des fichiers comme définis par umask ou hérité du shell parent
- Les traps courant définis par trap
- Les paramètres shell qui sont définis par l'assignement de variable ou avec set ou hérités du shell parent
- Les fonctions shell définies durant l'exécution ou hérités du shell parent
- Les options activées à l'invocation ou définis pas set
- les options activée avec shopt
- les alias définis avec alia
- Divers process ID, incluant ceux des tâche de fond, la valeur de $$, et de PPID

   Quand une commande simple autre qu'un commande intégrée ou une fonction shell est exécutée, elle est invoquée dans un environnement d'exécution séparé qui consiste en:

- Les fichier ouverts du shell, plus toute modification et ajout spécifié par les redirections à la commande
- Le répertoire de travail courant
- Le masque de mode de création de fichier
- Les variables et fonctions shell marqué pour l'export, et les variables exportés pour la commande, passés dans l'environnement
- Les traps capturés par le shell sont réinitialisés aux valeurs hérités du shell parent, et les traps ignorés par le shell sont ignorés.

   Une commande invoquée dans un environnement séparés ne peut pas affecter l'environnement d'exécution du shell. La substitution de commande, les commandes groupées avec des parenthèses et les commande asynchrone sont invoquées dans un sous-shell qui est dupliqué depuis l'environnement du shell, excepté que les traps capturés par le shell sont réinitialisés aux valeur que le shell a hérité de son parent à l'invocation. Les commande intégrées qui sont invoquées comme partie d'un pipeline sont aussi exécutés dans un sous-shell. Les changements fait au sous-shell ne peuvent pas affecter l'environnement d'exécution du shell.

   Les sous-shell générés pour exécuter des substitutions de commande héritent de la valeur de l'option -e du shell parent. Quand il n'est pas en mode posix, bash efface l'option -e dans de tels sous-shell. Si une commande est suivie par un & et que le contrôle de job n'est pas actif, l'entrée standard par défaut pour la commande est /dev/null. Sinon, la commande hérite des descripteurs de fichier du shell appelant comme modifié par les redirections.

Environnement

   Quand un programme est invoqué il lui est donné un tableau de chaînes appelé l'environnement. C'est une liste de paire nom=valeur. Le shell fournis de nombreuses manières de manipuler l'environnement. À l'invocation, le shell scanne son propre environnement et créé un paramètre pour chaque nom trouvé, en le marquant automatiquement pour export à ses processus enfant. Les commandes exécutées héritent de l'environnement. Les commandes export et declare -x permettent d'ajouter et de supprimer des fonctions et des variables à l'environnement.L'environnement pour une commande simple ou une fonction peut être augmentée temporairement en la préfixant avec des assignements de paramètre. Ces assignements affectent uniquement l'environnement vu par la commande.

   Si l'option -k est définie, tous les assignements de paramètre sont placés dans l'environnement pour une commande, pas seulement ceux qui précèdent le nom de la commande. Quand bash invoque une commande externe, la variable _ est définie au fichier de la commande et passée à cette commande dans son environnement.

Codes de sortie

   Le statut de sortie d'une commande exécutée est la valeur retournée par l'appel système waitpid ou une fonction équivalente. Les statuts de sortie vont de 0 à 255, bien que le shell utilise les valeurs supérieur à 125 de manière spéciales. Les statuts de sortie des commandes intégrées et des commandes composées sont également limitées à cette plage. Dans certaines circonstances, le shell va utiliser des valeur spéciales pour indiquer des modes d'échec spécifiques.

   Une commande qui se termine avec un code de sortie de 0 à réussie. Un autre code indique une erreur. Quand une commande se termine sur un signal fatal N, bash utilise la valeur de 128+N comme code de sortie. Si une commande n'est pas trouvée, le processus enfant créé pour l'exécuter retourne un statut de 127. Si une commande est trouvée mais n'est pas exécutable, le code de retour est 126. Si une commande échoue à cause d'une erreur durant l'expansion ou la redirection, de code de sortie est supérieur à 0. Les commandes intégrées retournent 0 si elles réussissent. Toutes les commandes intégrées retournent 2 pour indiquer une utilisation incorrect. Bash lui-même retourne le code de sortie de la dernière commande exécutée, sauf si une erreur de syntaxe se produit, dans ce cas il se termine avec un code non-zéro.

Signaux

   Quand bash est interactif, en l'absence de traps, il ignore SIGTERM, et SIGINT est géré (donc wait est intérruptible). Dans tous les cas, bash ignore SIGQUIT. Si de contrôle de job est effectif, bash ignore SIGTTIN, SIGTTOU, et SIGTSTP.

   Les commandes non-intégrées lancées par bash ont des gestionnaires de signaux définis aux valeurs hérités par le shell de son parent. Quand le contrôle de job est effectif, les commandes asynchrone ignorent SIGINT et SIGQUIT en plus des handlers hérités. Les commandes lancées en résultat d'une substitution de commande ignorent les signaux de contrôle générés au clavier SIGTTIN, SIGTTOU, et SIGTSTP.

   Le shell quitte par défaut une fois reçu un SIGHUP. Avant de quitter, un shell interactif envoie SIGHUP a tous les jobs en cours ou stoppés. Les jobs stoppés reçoivent SIGCONT pour s'assurer qu'ils reçoivent bien SIGHUP. Pour empêcher le shell d'envoyer le signal à un job particulier, il doit être supprimé de la table des jobs avec disown ou marqué pour ne pas recevoir SIGHUP en utilisant disown -h.

   Si l'option huponexit a été mis avec shopt, bash envoie un SIGHUP à tous les jobs quand un login shell interactif se termine. Si bash attend qu'une commande se termine et reçoit un signal pour lequel un trap est définis, le trap ne l'exécutera pas tant que la commande ne s'est pas terminé. Quand bash attend une commande asynchrone via wait, la réception d'un signal pour lequel un trap a été définis va forcer wait à retourner immédiatement avec un code de sortie supérieur à 128, immédiatement après que de trap ait été exécuté.

Contrôle de job

   Le contrôle de job réfère à la capacité à sélectivement stopper (suspendre) l'exécution de processus et le continuer leur exécution ultérieurement. Le shell associe un job avec chaque pipeline. Il conserve une table de jobs actuellement exécutés, qui peut être listé avec jobs. Quand bash lance un job asynchrone (en tâche de fond), il affiche un ligne qui ressemble à:

[1] 25647

   indiquant que ce job est le job numéro 1 et le process ID du dernier processus dans le pipeline associé à ce job est 25647. Tous les processus dans un seul pipeline sont membre du même job. bash utilise l'abstraction de job comme base pour le contrôle de job.

   Pour faciliter l'implémentation de l'interface utilisateur pour contrôler les jobs, le système d'exploitation maintient la notion de current terminal process group ID. Les membres de ce groupe de processus (les processus dont le process group ID est égal au process group ID du terminal courant) reçoivent les signaux clavier tel que SIGINT. Ces processus sont dit en foreground. Les processus background sont ceux dont le process group ID diffère de celui du terminal. De tels processus sont immunisés aux signaux clavier. Seul les processus foreground sont autorisés à lire ou écrire dans le terminal, si l'utilisateur le spécifie avec stty tostop. Les processus background qui tentent de lire ou écrire quand stty tostop est effectif dans le terminal reçoivent SIGINT (SIGTTOU) par le pilote terminal du kernel, qui, à moins d'être capturé, suspend le processus.

   Si l'OS supporte le contrôle de job, bash contient de facilitées pour l'utiliser. En tapant de caractère suspend (généralement ^Z, Control-Z) pendant qu'un processus fonctionne, celui-ci est stoppé et le contrôle est retourné à bash. En tapant le caractère delayed suspend (généralement ^Y, Control-Y), le processus est stoppé quand il tente de lire l'entrée depuis le terminal. L'utilisateur peut ainsi manipuler l'état de ce job, en utilisant les commandes bg, fg et kill.

   Il y a différentes manières de faire référence à un job dans le shell. Le caractère % introduit une spécification de job (jobspec). Le job numéro n peut être référencé par %n. Un job peut aussi être référencé en utilisant un préfixe du nom utilisé pour le lancer, ou en utilisant une sous-chaîne qui apparaît dans sa ligne de commande. Par exemple, %ce fait référence au job nommé ce stoppé. Si le préfixe matche plus d'un job, bash reporte une erreur. %?ce fait référence à tout job contenant là chaîne ce dans sa ligne de commande. Si la sous-chaîne matche plus d'un job, bash reporte une erreur. Les symboles %% et %+ font référence à la notion de job courant, qui est le dernier job stoppé pendant qu'il étaie en foreground ou lancé en background. e précédent job peut être référencé en utilisant %-.

   S'il y a seulement un seul job, %+ et %- peuvent être utilisés pour faire référence à ce job. Dans la sortie se rapportant aux jobs (ex: la sortie de la commande jobs), le job courant est toujours flaggé avec un +, et le précédent job avec un -. Un simple % fait également référence au job courant.

   Nommer simplement un job peut être utilisé pour le passer en foreground: %1 est un synonyme pour fg %1, et passe le job 1 du background en foreground. Similairement, %1 & résume le job 1 en background, équivalent à bg %1.

   Le shell apprend immédiatement quand un job change de statut. Normalement, bash attend jusqu'à ce qu'il affiche un prompt avant de reporter les changements dans le statut d'un job afin de ne pas interrompre une autre sortie. Si l'option -b de la commande set est activée, bash reporte de tels changements immédiatement. Tout trap sur SIGCHLD est exécuté pour chaque enfant qui se termine.

   Si une tentative de quitter bash est faite pendant que les jobs sont stoppés, le shell affiche un warning, et, si l'option checkjobs est activé, liste les jobs et leur statuts. La commande jobs peut être ainsi utilisé pour inspecter leur statut.

Prompting

   Exécuté intéractivement, bash affiche le prompt primaire quand il est prêt à lire une commande, et le prompt secontaire quand il demande plus d'entrée pour compléter une commande. les caractères suivants peuvent être utilisés pour personnaliser ces prompt:

\a Le caractère ASCII bell (07)
\d La date au format "Jours Mois" ex: Tue May 26
\D{format} Le format est passé à strftime(3)
\e Le caractère ASCII d'échappement (033)
\h Le nom d'hôte jusqu'au premier point
\H Le nom d'hôte
\j Le nombre de jobs actuellement géré par le shell
\l Le basename du nom du périphérique terminal du shell
\n nouvelle ligne
\r retour charriot
\s Le nom du shel, le basename de $0
\t L'heure courante HH:MM:SS au format 24 heures
\T L'heure courante HH:MM:SS au format 12 heures
\@ L'heure courante HH:MM au format 12 heures
\A L'heure courante HH:MM au format 24 heures
\u Le nom de l'utilisateur courant
\v La version de bash
\V La release de bash
\w Le répertoire de travail courant, $HOME est remplacé par un tilde (valeur de PROMPT_DIRTRIM)
\W Le répertoire de travail courant, $HOME est remplacé par un tilde
\! le numéro d'historique de cette commande
\# Le numéro de commande de cette commande
\$ Is l'ID effectif est 0, un # sinon un $
\nnn Le caractère correspondant au numéro octal nnn
\\ Le caractère \
\[ Commence une séquence de caractère non imprimable, qui peut être utilisé pour embarquer une séquence de contrôle de terminal
\] La fin d'un séquence de caractères non imprimable.

   Le numéro de commande et le numéro d'historique sont généralement différent: le numéro d'historique d'une commande est sa position dans la liste d'historique, qui peut inclure des commandes restaurée depuis le fichier d'historique. Le numéro de commande est la position dans la séquence de commandes exécutées durant la session du shell courant.

READLINE

   C'est la librairie qui manipule l'entrée avec un shell interactif, sauf si l'option --noediting est donné. L'édition de ligne est aussi utilisé avec l'option -e de la commande read. Par défaut, les commandes d'édition de ligne sont similaires à celles d'emacs. Un style vi est également disponible. L'édition de ligne peut être activé avec -o emacs ou -o vi de la commande set. Pour la désactiver, +o emacs ou +o vi.

Notation

   Dans cette section le style emacs est utilisé. Les clés de contrôle sont dénotés par C-key et les clé méta sont dénotés M-key. Pour les claviers sans touche meta, utiliser la touche échappe. Les commandes Readline peuvent être donnés en arguments numériques, qui normalement agit comme un compteur de répétition. Parfois, cependant, c'est le signe de l'argument qui est significatif. En passant un argument négatif à une commande qui agit en avant, agit en arrière. Quand une commande est décrite comme killing teste, le teste supprimé est sauvé pour une récupération future (yanking). Le texte tué est sauvé dans un kill ring. Des kills consécutifs accumulent le texte en une unité, qui peut être yanké en une seule fois. Le commandes qui ne kill pas le texte séparent le portions de texte dans le kill ring.

Initialisation de Readline

   Readline est personnalisé en plaçant des commandes dans un fichier d'initialisation ( le fichier inputrc). Le nom de ce fichier est pris de la valeur de INPUTRC. Si cette variable est non définis, utilise ~/.inputrc. Quand un programme utilise la librairie Readline au démarrage, le fichier d'initialisation est lu, et le combinaisons de touche et variables sont définies. Il n'y a que quelques constructions basiques permises dans le fichier d'initialisation.

Exemple, la ligne suivante
M-Control-u: universal-argument
ou
C-Meta-u: universal-argument
Définis une combinaisons de touche pour la commande readline universal-argument

   Les noms de caractère symbolique suivant sont reconnus: RUBOUT, DEL, ESC, LFD, NEWLINE, RET, RETURN, SPC, SPACE, TAB En plus des noms de commande, Readline permet de lier de touches à une chaîne qui est insérée quand la touche est pressée (une macro).

Combinaisons de touches

   La syntaxe pour contrôler les combinaisons de touche dans le fichier inputrc est simple. Il faut le nom de la commande ou le texte d'une macro et une séquence de touches. Le nom peut être spécifié de deux manières: comme nom de touche symbolique, optionnellement préfixeé avec Meta- ou Control-, ou comme séquence de touche. En utilisant la forme keyname:function-name ou macro, par exemple:

        Control-u: universal-argument
        Meta-Rubout: backward-kill-word
        Control-o: "› output"

   Dans cet exemple, C-u est lié à la fonction universal-argument, M-DEL est lié à la fonction backward-kill-word, et C-o est une macro. (insert "› output").

   Dans la seconde forme, "keyseq".function-name ou macro, Une séquence de touche entière peut être spécifiée en plaçant la séquence entre guillemets. Certains échappements de caractère Emacs peuvent être utilisés, comme dans l'exemple suivant, mais les caractères symboliques ne sont pas reconnus.

        "\C-u": universal-argument
        "\C-x\C-r": re-read-init-file
        "\e[11~": "Function Key 1"

   Dans cet exemple, C-u est lié à la fonction universal-argument, C-x C-r est lié à la fonction re-read-init-file et ESC [ 1 1 ~ est une macro qui insert "Function Key 1". Le jeu complet de séquences d'échappement Emacs est:

        \C- control prefix
        \M- meta prefix
        \e an escape character
        \\ backslash
        \" literal "
        \' literal '

   En plus des séquence Emacs, un autre jeu d'échappement est disponible:

        \a alert (bell)
        \b BACKSPACE
        \d delete
        \f form feed
        \n NEWLINE
        \r retour charriot
        \t tabulation horizontal
        \v tabulation vertical
        \NNN La valeur 9-bits de numéro octal NNN (1 à 3 chiffres)
        \xHH La valeur 9-bits de numéro hexa HH (1 à 2 chiffres)

   En entrant le texte d'un macro, les guillemets simple ou double doivent être utilisés pour indiquer une définition de macro. Le texte non-quoté est supposé être un nom de fonction. Dans le corps d'un macro, l'échappement "\" est étendu. bash permet de modifier ces liaisons avec la commande bind. Le mode édition peut être utilisé en utilisant l'option -o de la commande set.

Variables ReadLine

   Readline a des variables que peuvent être utilisées pour personnaliser sont fonctionnement. Une variable peut être définie dans le fichier inputrc, sous la forme:

        set variable-name value

   Sauf mention, les variables readline peuvent prendre les valeurs on ou off. Les noms de variable non reconnues sont ignorés. Quand une variable est lue, les valeurs vide, null, "on" et "1" sont équivalents à On. Toutes les autres variables sont équivalentes à off. Les valeurs par défauts sont spécifiées entre parenthèses:

bell-style (audible) tente de jouer le bell du terminal, none pour le désactiver.
bind-tty-special-chars (On) Tente le lier les caractères de contrôle traités spécialement par le terminal à leur équivalent readline.
colored-stats (Off) À on, tente d'afficher les completions possibles en utilisant différentes couleurs pour indiquer le type de fichier. Les définitions de couleurs sont prises depuis la valeur LS_COLORS.
comment-begin ("#") La chaîne qui est insérée quand la commande readline insert-comment est exécutée. Cette commande est liée à M-# en mode emacs, et à # en mode vi.
completion-ignore-case (Off) À on, readline est insensible à la casse lors des completions et filename matching.
completion-prefix-display-length (0) La longueur en caractères du préfixe commun d'une liste de complétions possible qui est affiché sans modification. à une valeur supérieur à 0, les préfixes communs plus longs sont remplacés avec une ellipse quand les completions possible sont affichés.
completion-query-items (100) Détermine quand demander à l'utilisateur pour voir les completions possibles générées par la commande possible-completions.
convert-meta (On) Readline convertit les caractères avec le 8-ème bit mit en une séquence clé ASCII en supprimant ce 8-ème bit et en préfixeant du caractère échappe.
disable-completion (Off) À On, readline inhibe la completion de mots. Les completions de caractères seront insérés dans la line comme s'ils avaient été mappés à self-insert.
editing-mode (emacs) Contrôle si Readline utilise un jeu de combinaisons de touches similaire à emacs ou vi.
echo-control-characters (On) Readline répète un caractère correspondant à un signal généré depuis le clavier.
enable-keypad (Off) à on, readline tente d'activer le keypad quand il est appelé. Certains systèmes en ont besoin pour accéder aux touches fléchées.
enable-meta-key (On) readline tente d'activer une touche méta demandé par le terminal. Dans de nombreux terminaux, la touche méta est utilisée pour envoyer des caractères 8-bits.
expand-tilde (Off) à on, l'expansion de tilde est effectuée quand readline tente la completion de mot.
history-preserve-point (Off) à on, le code d'historique tente de placer un point au même emplacement dans chaque ligne d'historique récupérée avec previous-history or next-history.
history-size (0) Définis le nombre maximum d'entrées d'historique sauvegardé. À 0, toutes les entrées sont supprimées et aucune entrée n'est sauvegardée. Par défaut, le nombre d'entrée n'est pas limité.
horizontal-scroll-mode (Off) à on, ReadLine utilise une seule ligne pour l'affichage, scroll l'entrée horizontalement dans une seule ligne quand elle devient plus grande que l'écran.
input-meta (Off) À on, Readline active l'entrée 8-bits sans regardes si le terminal le supporte. le nom meta-flag est un synonyme pour cette variable.
isearch-terminators (``C-[C-J'') La chaîne de caractères qui devrait terminer une recherche incrémentale sans exécuter le caractère comme commande. Si cette variable n'a pas de valeur, les caractères ESC est C-J vont terminer une recherche incrémentale.
keymap (emacs) Définis le mappage ReadLine courant. Les jeu de keymap valide est emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-command et vi-insert.
keyseq-timeout (500) Spécifies la durée d'attente d'un caractère quand une séquence de touche ambigüe est lue. Si aucune entrée n'est reçue passée ce délai, readline utilise la séquence de touche. La valeur est spécifiée en millisecondes, Si non définis ou à une valeur inférieur ou égal à 0 ou à une valeur non-numérique, readline attend toujours une autre touche pour décider quelles séquence de touche compléter.
mark-directories (On) Les noms de répertoires complétés ont un / ajouté.
mark-modified-lines (Off) À on, les lignes d'historique qui ont été modifiés sont suffixés avec un (*)
mark-symlinked-directories (Off) À on, les noms complétés qui sont des liens symboliques vers des répertoires ont un / ajouté
match-hidden-files (On) ReadLine matche les noms de fichiers cachés lors de la completion.
menu-complete-display-prefix (Off) À on, la completion de menu affiche de préfixe commun de la liste de completions possible avant de cycler dans la liste.
output-meta (Off) À on, readline affiche les caractères avec le 8-ième bis mis directement plutôt que comme séquence d'échappement préfixeé par méta.
page-completions (On) ReadLine utilise un pager style more interne pour afficher un écran complet de completions possible.
print-completions-horizontally (Off) À on, ReadLine affiche les completions avec les matches triés horizontalement dans l'ordre alphabétique.
revert-all-at-newline (Off) À on, ReadLine annule tout changements dans les lignes d'historique avant de retourner quand accept-line est exécuté.
show-all-if-ambiguous (Off) À on, les mots qui ont plus d'une completion possible affichent immédiatement les matches au lieu de sonner le bell
show-all-if-unmodified (Off) À on, les mots qui on plus d'une completion possible sans completion partielle possible (les completions possible ne partagent pas de prefixe commun) affichent immédiatement les matches au lieu de sonner le bell
show-mode-in-prompt (Off) À on, ajoute un caractère au début du prompt indiquant le mode d'édition: emacs (@), vi command (:) ou vi insertion (+)
skip-completed-text (Off) À on, Altère la completion en insérant un simple matche dans la ligne. Actif seulement lors de la completion au milieu d'un mot. Si actif, readline n'insert pas de caractères de la completion qui matche les caractère après un point dans le mot à compléter.
visible-stats (Off) À on,Un caractère dénotant un type de fichier comme reporté par stat est ajouté au nom de fichier en listant les completions possibles.

Constructions conditionnelles de ReadLine

   Readline implémente une facilité similaire aux compilations comditionnel du préprocesseur C qui permet à des raccourcis et variables d'être exécutés en tant que résultat de tests. Il y a 4 directives utilisés.

$if Permet de baser les liaisons sur le mode d'édition, le terminal utilisé, ou l'application utilisant readline.

        mode Utilisé pour tester si readline est en mode vi ou emacs.
        term Utilisé pour inclure des liaisons spécifique au terminal, par exemple pour lier la sortie des séquences de touche à des fonctions du terminal. Le mot est testé avec le nom complet du terminal et la portion du nom avant le premier -.
        application Utilisé pour inclure des paramètres spécifiques à une application. Chaque programme utilisant readline définis le nom d'application. La commande suivante ajoute une séquence de touches qui quote le mot courant et le précédant dans bash:

                $if Bash
                # Quote the current or previous word
                "\C-xq": "\eb\"\ef\""
                $endif

$endif Termine une commande $if
$else Exécuté si la directive $if échoue
$include Fichier où lire des commandes et liaisons.

Recherche

   ReadLine fournis des commandes pour rechercher dans l'historique de commandes des lignes contenant une chaîne spécifiée. Il y a 2 modes de recherche: incrémentale et non incrémentale.

   Les recherches incrémentales commencent avant que l'utilisateur ait finis de taper la chaîne de recherche. À chaque caractère entré, readline affiche la prochaine entrée de l'historique correspondante. Une recherche incrémentale nécessite uniquement autant de caractères que nécessaire pour trouver l'entrée d'historique désirée. Les caractères présents dans isearch-terminators sont utilisés pour terminer une recherche incrémentale. Si cette variable n'a pas de valeur, Escape et Control-J terminent la recherche incrémentale. Contrôle-G annule une recherche incrémentale et restaure la ligne originale. Quand la recherche est terminée, l'entrée d'historique contenant la chaîne recherchée devient la ligne courante.

   Pour trouver d'autre entrées correspondantes dans la liste d'historique, utiliser Control-S ou Control-R. Toute autre séquence liée à une commande readline termine la recherche et exécuter la commande. ReadLine mémorise la dernière chaîne de recherche incrémentale. Si 2 Control-R sont tapés sans un caractère définissant une nouvelle recherche, la chaîne mémorisée est utilisée.

   Les recherches non-incrémentales lisent toute la chaîne de recherche avant de commencer la recherche.

Noms de commandes ReadLine

   La liste suivante contient les noms des commandes et leur séquence de touche par défaut. Dans les descriptions, point réfère à la position courant du curseur, et mark réfère à la position du curseur sauvée par la commande set-mark. Le texte entre le point et mark est la region

Commandes de déplacement

beginning-of-line (C-a) Se placer au début de la ligne courante
end-of-line (C-e) Se placer à la fin de la ligne
forward-char (C-f) Se déplacer d'un caractère en avant
backward-char (C-b) Se déplacer d'un caractère en arrière
forward-word (M-f) Se déplacer à la fin du prochain mot
backward-word (M-b) Se déplacer au début du mot courant ou précédent
shell-forward-word Se déplacer à la fin du prochain mot
shell-backward-word Se déplacer au début du mot courant ou précédent
clear-screen (C-l) Effacer l'écran en plaçant la ligne courant à la ligne du haut
redraw-current-line Rafraîchis la ligne courante

Commandes de manipulation d'historique

accept-line (Newline, Return) Accepte la ligne sans regarder où se situe le curseur. Si la ligne n'est pas vide, l'ajoute à la liste d'historique. Si la ligne est une ligne d'historique modifiée, restaure la ligne à son état original
previous-history (C-p) Se déplacer en arrière dans la liste d'historique
next-history (C-n) Se déplacer en avant dans la liste d'historique
beginning-of-history (M-‹) Se placer à la première ligne d'historique
end-of-history (M-›) Se placer à la fin de l'historique
reverse-search-history (C-r) Rechercher en arrière dans l'historique en commençant à la ligne courante. C'est une recherche incrémentale
forward-search-history (C-s) Rechercher en avant dans l'historique en commençant à la ligne courante. C'est une recherche incrémentale
non-incremental-reverse-search-history (M-p) Recherche en arrière dans l'historique en commençant à la ligne courant en utilisant une recherche non-incrémentale.
non-incremental-forward-search-history (M-n) Recherche en avant dans l'historique en commençant à la ligne courant en utilisant une recherche non-incrémentale.
history-search-forward Recherche en avant dans l'historique la chaîne de caractères entre le début de la ligne courante et le point. C'est une recherche non-incrémentale
history-search-backward Recherche en arrière dans l'historique la chaîne de caractères entre le début de la ligne courante et le point. C'est une recherche non-incrémentale
yank-nth-arg (M-C-y) Insert le premier argument de la commande précédente au point. Avec un argument n, insert le n-ième mot de la commande précédente. Un argument négatif commence à la fin de la commande précédente. Une fois l'argument calculé, l'argument est extrait comme si l'expansion !n avait été spécifié.
yank-last-arg (M-., M-_) Insert le dernier argument de la commande précédente. Une fois l'argument calculé, l'argument est extrait comme si l'expansion !$ avait été spécifié.
shell-expand-line (M-C-e) Étend la ligne comme le shell. Celà effectue une expansion d'alias et d'historique de la même manière que l'expansion de mot du shell.
history-expand-line (M-^) Expansion d'historique sur la ligne courante.
magic-space Expansion d'historique sur la ligne courante et insert un espace
alias-expand-line Expansion l'alias sur la ligne courante
history-and-alias-expand-line Expansion d'historique et d'alias sur la ligne courante.
insert-last-argument (M-., M-_) synonyme pour yank-last-arg
operate-and-get-next (C-o) Accepte la ligne courante et remplis la ligne suivante relativement à la ligne courante dan l'historique. Tout argument est ignoré
edit-and-execute-command (C-xC-e) Invoque un éditeur dans la ligne de commande courante, et exécute le résultat en tant que commande shell. bash tente d'invoquer VISUAL, EDITOR, et emacs dans cet ordre.

Commandes pour changer du texte

end-of-file (usually C-d) Le caractère indiquant la fin du fichier.
delete-char (C-d) Supprime le caractère au point.
backward-delete-char (Rubout) Supprime le caractère avane le curseur
forward-backward-delete-char Supprime le caractère sous le curseur
quoted-insert (C-q, C-v) Ajoute le prochain caractère tapé textuellement
tab-insert (C-v TAB) Insert un caractère tabulation
self-insert (a, b, A, 1, !, ...) Insert le caractère tapé
transpose-chars (C-t) Fait glisser le mot avant le point aprés ce point, déplaçant le point après ce mot également. Si le point est à la fin de la ligne, transpose les 2 derniers mot de la ligne.
upcase-word (M-u) Met en majuscule le mot courant, ou le précédant si l'argument est négatif
downcase-word (M-l) Met en minuscule le mot courant, ou le précédant si l'argument est négatif
capitalize-word (M-c) Capitalise le mot courant, ou le précédant si l'argument est négatif
overwrite-mode Passe en mode écarsement. Avec un argument positif explicite, switche en mode overwrite. Avec un argument négatif explicite, switche en mode insert. Chaque appel à readline() commence en mode insert. N'affecte que le mode emacs. En mode overwrite, les caractères liés à self-insert remplacent le texte au point au lieu de pousser le texte. Les caractères liés à backward-delete-char remplacent le caractère avant le point avec un espace.

Killing et Yanking

kill-line (C-k) Tue le texte depuis le point jusqu'à la fin de la ligne
backward-kill-line (C-x Rubout) Tue le teste au début de la ligne
unix-line-discard (C-u) Tue le teste depuis le point jusqu'au début de la ligne. Ce texte tué est sauvé dans le kill-ring
kill-whole-line Tue toute la ligne
kill-word (M-d) Tue le mot courant
backward-kill-word (M-Rubout) Tue le mot avant le point
shell-kill-word (M-d) Tue depuis le point jusqu'à la fin du mot courant
shell-backward-kill-word (M-Rubout) Tue le mot derrière le point
unix-word-rubout (C-w) Tue le mot derrière le point, en utilisant les espaces blanc comme délimiteur de mot. Le texte tué est sauvé dans le kill-ring
unix-filename-rubout Tue le mot derrière le point, en utilisant les espaces blanc et le slash comme délimiteur de mot. Le texte tué est sauvé dans le kill-ring
delete-horizontal-space (M-\) Supprime tous les espaces et tabulations autour du point
kill-region Tue de texte dans la region courante
copy-region-as-kill Copie de texte dans la region dans le tampon kill
copy-backward-word Copie le mot avant le point dans le tampon kill
copy-forward-word Copie le mot suivant le point dans le tampon kill
yank (C-y) déplace le haut du kill-ring dans le tampon au point
yank-pop (M-y) Rotation du kill-ring, et déplace le nouveau haut de la pile.

Arguments numérique

digit-argument (M-0, M-1, ..., M--) Ajoute ce chiffre à l'argument déjà accumulé, ou commence un nouvel argument. M-- commence un argument négatif
universal-argument Autre manière de spécifier un argument. Si cette commande est suivie par un ou plusieurs chiffres, optionnellement avec un signe moins, cet chiffres définissent un argument. Si la commande est suivi par des chiffres, exécuter de nouveau universal-argument termine l'argument, mais est ignoré. Un cas spécial, si la commande est immédiatement suivie par un caractère qui n'est ni un chiffre ni le signe moins, le compteur d'arguments pour la prochaine commande est multiplié par 4.

Conpletion

complete (TAB) Tente d'effectuer une completion sur le texte avant le point. Bash tente la completion en traitant le texte comme une variable (si le texte commence avec $), nom d'utilisateur (si le texte commence avec ~), nom d'hôte (si le texte commence avec @), ou une commande (incluant les alias et fonctions). S'il n'y a toujours aucun match, tente une completion de nom de fichier.
possible-completions (M-?) Leste les completions possible du texte avant le point
insert-completions (M-*) Insert toutes les completions du texte avant le point qui aurait été généré par possible-completion
menu-complete Similaire à complete, mais remplace le mot à completer avec un seul match dans la liste des completions possible. Une exécution répétée de menu-complete passe à l'élément suivant dans la liste des completions possible.
menu-complete-backward Identique à menu-complete mais se déplace en arrière dans la liste des completions possible.
delete-char-or-list Supprime le caractère sous le curseur s'il n'est pas au début ou à la fin de la ligne (comme delete-char). S'il est au début ou à la fin de la ligne, devient identique à possible-completions
complete-filename (M-/) Tente une completion de nom de fichier sur le texte avant le point
possible-filename-completions (C-x /) Liste les completions possible sur le texte avant le point, traité comme nom de fichier
complete-username (M-~) Tente une completion de nom d'utilisateur sur le texte avant le point.
possible-username-completions (C-x ~) Liste les completions possible sur le texte avant le point, traité comme nom d'utilisateur
complete-variable (M-$) Tente une completion de variable sur le texte avant le point.
possible-variable-completions (C-x $) Liste les completions possible sur le texte avant le point, traité comme variable
complete-hostname (M-@) Tente une completion de nom d'hôte sur le texte avant le point.
possible-hostname-completions (C-x @) Liste les completions possible sur le texte avant le point, traité comme nom d'hôte
complete-command (M-!) Tente une completion de commande sur le texte avant le point.
possible-command-completions (C-x !) Liste les completions possible sur le texte avant le point, traité comme commande
dynamic-complete-history (M-TAB) Tente une conpletion d'historique sur le texte avant le point
dabbrev-expand Tente une completion de menu sur le texte avant le point, en comparant le texte avac les lignes de l'historique
complete-into-braces (M-{) Effecture une completion de nom de fichier et insert la liste des completion possible entre accolade pour que la liste sont disponible au shell.

Macros Clavier

start-kbd-macro (C-x () Commence à sauver les caractères tapés dans la macro clavier courante
end-kbd-macro (C-x )) Stop l'enregistrement des caractère tapés dans la macro clavier courante
call-last-kbd-macro (C-x e) Re-exécute la dernière macro définie
print-last-kbd-macro () Affiche la dernière macro définie dans un format utilisable dans inputrc

Divers

re-read-init-file (C-x C-r) recharge le contenu du fichier inputrc,
abort (C-g) Annule la commande d'édition courante.
do-uppercase-version (M-a, M-b, M-x, ...) Si le caractère utilisé avec Méta est en minuscule, lance la commande qui est lié au caractère majuscule correspondant.
prefix-meta (ESC) Le prochain caractère est un caractère méta. par exempre ESC f est équivalent à Meta-f
undo (C-_, C-x C-u) undo incrémental
revert-line (M-r) Annule tout changements fait sur cette ligne
tilde-expand (M-&) Effecue une expansion de tilde sur le mot courant
set-mark (C-@, M-‹space›) Définis le mark sur le point. Si un argument est fournis, définis le mark à cette position
exchange-point-and-mark (C-x C-x) inter-change le point et le mark
character-search (C-]) Un caractère est lu et le point est déplacé à la prochaine occurrence de ce caractère.
character-search-backward (M-C-]) Un caractère est lu est le point est déplacé à la précédente occurrence de ce caractère.
skip-csi-sequence Lit suffisamment de caractère pour consommer une séquence multi-touche telle que celles définies pour des touches comme Home et End. De telles séquences commencent avec un Control Sequence Indicator (CSI), généralement ESC-[. Si la séquence est liée à \[, les touches produisant de telles séquences n'auront pas d'effet sauf explicitement liée à une commande readline, au lieu d'insérer les caractères dans le tampon d'édition.
insert-comment (M-#) Sans argument numérique, la valeur de la variable readline comment-begin est insérée au début de la ligne courante. Si un argument numérique est fournis, cette commande agit comme un switch: Si les caractères au début de la ligne ne matchent pas la valeur de comment-begin, la valeur est insérée, sinon les caractères dans comment-begin sont supprimés du début de la ligne. La valeur par défaut de comment-begin force cette commande à commenter la ligne courante.
glob-complete-word (M-g) Le mot avant le point est traité comme pattern pour l'expansion de chemin, avec un * ajouté implicitement. Ce pattern est utilisé pour générer une liste de noms de fichiers possible.
glob-expand-word (C-x *) Le mot avant le point est traité comme pattern pour l'expansion de chemin, et la liste de noms de fichiers matchant est inséré, remplaçant le mot. Si un argument numérique est fournis, un * est ajouté implicitement avant l'expansion.
glob-list-expansions (C-x g) La liste des expansions qui auraient été générés par glob-expand-word est affichée, et la ligne et redéssinée. Si un argument numérique est fournis, un * est ajouté implicitement avant l'expansion.
dump-functions Affiche toutes les fonctions et leur liaisons dans le flux de sortie de readline. Si un argument numérique est fournis, la sortie est formatée au format inputrc
dump-variables Affiche toutes les variables readline dans le flux de sortie de readline. Si un argument numérique est fournis, la sortie est formatée au format inputrc
dump-macros Affiche toutes les séquences de touche et leur valeurs dans le flux de sortie de readline. Si un argument numérique est fournis, la sortie est formatée au format inputrc
display-shell-version (C-x C-v) Affiche le version de l'instance courante.

Completion Programmable

   Quand la completion de mot et tenté par un argument d'une commande pour laquelle une spécification de completion (compspec) a été définie en utilisant la commande complete, la fonction de completion programmable est invoquée.

   Premièrement, le nom de la commande est identifiée. Si la commande est une chaîne vide, tout compspec définie avec l'option -E de la commande complete est utilisée. Si un compspec a été définis pour cette commande, le compspec est utilisé pour générer la liste de completions possible. Si la commande est un chemin complet, un compspec pour ce chemin complet et recherché en premier. Si ces recherches ne réussissent pas, tout compspec définis avec l'option -D est utilisé.

   Une fois un compspec trouvé, il est utilisé pour générer la liste de mots correspondant. Si un compspec n'est pas trouvé, la completion par défaut de bash est effectué.

   D'abord, les actions spécifiées par le compspec sont utilisés. Seul les matchs qui sont préfixeés par le mot à compléter sont retournés. Quand l'option -f ou -d est utilisé pour la completion de nom de fichier ou de nom de répertoire, la variable shell GLOBIGNORE n'est pas utilisée pour filtrer les matchs, mais la variable FIGNORE est utilisée.

   Ensuite, la chaîne spécifiée comme argument de l'option -W est considérée. La chaîne est d'abord splitté en utilisant les caractères dans IFS. Le quoting est honoré. Chaque mot est ensuite étendu en utilisant l'expansion d'accolade, l'expansion de tilde, l'expansion de paramètre et de variable, la substitution de commande, et l'expansion arithmétique. Les résultat sont splittés en utilisant les règles de Word Splitting. Les résultats de l'expansion sont préfixe-matchés avec le mot à compléter, et les mots matchés deviennent les completions possible.

   Après que ces matchs aient été générés, toute fonction ou commande shell spécifiée avec les options -F et -C est invoquée, les variables COMP_LINE, COMP_POINT, COMP_KEY et COMP_TYPE sont ajustées. Si une fonction shell est invoquée, les variables COMP_WORDS et COMP_CWORD sont également ajustées. Quand la fonction ou la commande est invoquée, le premier argument ($1) est le nom de la commande dont les arguments sont à compléter, le deuxième argument ($2) est le mot à compléter, et le troisième argument ($3) est le mot précédant le mot à compléter sur la ligne courante.

   Toute fonction spécifiée avec -F est invoquée en premier. La fonction peut utiliser toute facilité du shell, incluant le compgen, pour générer les matchs. Il dois placer les completions possible dans le tableau COMPREPLY.

   Ensuite, toute commande spécifiée avec l'option -C est invoquée dans un environnement équivalent à la substitution de commande. Elle devrait afficher une liste de completions, une par ligne, sur la sortie standard. un \ peut être utilisé pour échapper un newline, si nécessaire.

   Une fois toutes les completions possible générées, tout filtre spécifié avec l'option -X est appliqué à la liste. Le filtre est un motif comme utilisé pour l'expansion de chemin; un & dans le pattern est remplacé avec le texte du mot à compléter. Toute completion qui matche le pattern est supprimé de la liste. Un ! inverse le pattern.

   Finallement, tout préfixe et suffixe spécifié avec les options -P et -S sont ajoutés à chaque membre de la liste de completion, et le résultat est retourné au code de completion de readline.

   Si les actions précédemment appliquées ne génèrent aucun match, et que l'option -o dirnames de la commande complete est fournie, la completion de nom de répertoire est tentée. Si l'option -o plusdirs de la commande complete est fournie, la completion de nom de répertoire est tentée et tout matche est ajouté au résultat des autres actions.

   Par défaut, si un compspec est trouvé, tout ce qu'il génère est retourné au code de completion. Les completions bash par défaut ne sont pas effectués, et la completion de nom de fichier par défaut de readline est désactivée. Si l'option -o bashdefault est fournie, les completions par défaut de bash sont tentée quand le compspec ne génère aucun match. Si l'option -o default est fournie, la completion par défaut de readline est effectuée si le compspec ( et, si tenté, les completions de bash) ne génère aucun match.

   Quand un compspec indique que la completion de répertoire est désiré, les fonctions de completion programmable forcent readline à ajouter un / aux noms complétés qui sont des liens symboliques de répertoire, sujet à la valeur de mark-directory, sans regarder la variable mark-symlinked-directories.

   Il y a un support pour les completions dynamiques. C'est plus utile quand utilisé en combinaison avec une completion par défaut spécifiée avec complete -D. Il est possible pour les fonctions shell exécutées comme manipulateurs de completion d'indiquer que la completion devrait être récupérée en retournant un code de sortie 124. Si une fonction shell retourne 124, et les changements du compspec associé avec la commande dans laquelle la completion est tentée, la completion programmable redémarre du début, et tente de trouver un autre compspec pour cette commande. Cela permet à un jeu de completion d'être construit dynamiquement.

Assumons qu'il y a une librairie de compspecs, chacun conservés dans un fichier correspondant au nom de la commande, la fonction de completion par défaut suivante charge les completions dynamiquement:
_completion_loader()
{
    . "/etc/bash_completion.d/$1.sh" ›/dev/null 2›&1 && return 124
}
complete -D -F _completion_loader -o bashdefault -o default

Historique

   Quand set -o history est activé, le shell fournis un accès à l'historique de commande, la liste des commandes précédemment tapés. La valeur de HISTSIZE est utilisé comme nombre de commandes à sauvegarder. Le shell stocke chaque commande avant l'expansion de paramètre et de variables, mais après que l'expansion l'historique ait été effectué, sujet aux valeurs de HISTIGNORE et HISTCONTROL.

   Au démarrage, l'historique est initialisé depuis le fichier nommé par la variable HISTFILE (défaut: ~/.bash_history). Ce fichier est tronqué, si nécessaire, pour ne pas contenir plus de lignes que le nombre spécifié par HISTFILESIZE. Quand le fichier d'historique est lu, les lignes commençant avec le caractère de commentaire d'historique suivi immédiatement par un chiffre sont interprétés comme timestamps pour la précédente ligne d'historique. Ces timestamp sont optionnellement affichés en fonction de la valeur de HISTTIMEFORMAT. Quand un shell avec l'historique activé se termine, les dernière lignes HISTSIZE sont copiées de la liste d'historique dans HISTFILE.

   Si l'option shell histappend est activée, les lignes sont ajoutée au fichier d'historique, sinon les lignes écrasent le contenu du fichier. Si HISTFILE n'est pas définis, ou si le fichier d'historique n'est pas accessible en écriture, l'historique n'est pas sauvegardé. Si HISTTIMEFORMAT est définie, les timestamps sont écris dans le fichier d'historique, marqués avec le caractère de commentaire d'historique. Une fois l'historique sauvé, le fichier d'historique est tronqué pour contenir HISTFILESIZE lignes. Si HISTFILESIZE n'est pas définie, null, une valeur non numérique, ou une valeur inférieur à 0, le fichier d'historique n'est pas tronqué.

   Le commande fc peut être utilisée pour lister ou éditer et ré-exécuter une portion de la liste d'historique. La commande history peut être utilisée pour afficher ou modifier la liste d'historique et manipuler le fichier d'historique. En utilisant l'édition de ligne de commande, les commandes de recherche sont disponible dans chaque mode d'édition qui fournissent un accès au fichier d'historique.

   Le shell permet de contrôler quelles commandes sont sauvées dans la liste d'historique. Les variable HISTCONTROL et HISTIGNORE peuvent être définis pour déterminer ce que le shell sauvegarder dans la liste. La commande cmdhist, si activée, force le shell à tenter de sauver chaque ligne d'un commande multi-ligne dans la même entrée d'historique, en ajoutant des ; où c'est nécessaire. L'option shell lithist force le shell à sauvegarder la commande avec les newline au lieu des ;.

Expansion d'historique

   Le shell supporte l'expansion d'historique qui est similaire à l'expansion d'historique dans csh. Peut être désactivé avec set +H. L'expansion d'historique est effectuée immédiatement après qu'une ligne complète soit lue, avant que le shell la sépare en mots. Elle prend place en 2 parties. La première est pour déterminer quelle ligne de la liste d'historique utiliser durant la substitution. La secondes, les portions de cette ligne à inclure dans la courante. La ligne sélectionnée de l'historique est l'event, et les portions de cette ligne sont les mots. Divers modifieurs sont disponible pour manipuler les mots sélectionnés. La ligne est décomposée en mot de la même manière que lorsque l'entrée est lue, et de nombreux mots séparés par les méta-caractères entourés par des quotes sont considéré comme un seul mot. L'expansion d'historique est introduit par la présence du caractère d'expansion d'historique qui est ! par défaut.

   Des caractères inhibent l'expansion d'historique s'ils sont trouvés juste après le caractère d'expansion d'historique, même s'ils ne sont pas quotés: space, tab, retour charriot, et =. Si l'option extglob est activée, ( inhibe également l'expansion

   Certaine options shell peuvent être utilisées pour modifier le fonctionnement de l'expansion d'historique. Si l'option shell histverify est définie, et que readline est utilisé, les substitutions d'historique ne sont par immédiatement passées au parser. À la place, la ligne étendue est rechargée dans le tampon d'édition de readline pour d'autres modifications. Si readline est utilisé, et que l'option shell histreedit est activée, une substitution d'historique échouée sera rechargée dans le tampon d'édition de readline pour correction. L'option -p de la commande history peut être utilisée pour voir quelle expansion d'historique sera faite avant de l'utiliser. L'option -s peut être utilisée pour ajouter des commandes à la fin de la liste d'historique sans les exécuter.

   Le shell permet de contrôler les divers caractères utilisés par l'expansion d'historique. Le shell utilise le caractère de commentaire d'historique pour marquer les timestamps d'historique en écrivant le fichier d'historique.

Désignateurs d'évènement

   Un event designator est une référence à une ligne de commande dans la liste d'historique. À moins que la référence soit absolue, les events sont relatifs à la position courante dans la liste d'historique.

! Commence une substitution d'historique, avec les exceptions décrites plus haut.
!n Réfère à la ligne de commande n
!-n Réfère à la commande courante - n
!! Réfère à la commande précédente. synonyme de !-1
!string Réfère à la commande la plus récente précédent la position courante commençant avec string
!?string[?] Réfère à la commande la plus récente précédent la position courante commençant avec string, les ? peuvent être omis si string est suivi immédiatement par un newline.
^string1^string2 Substitution rapide. Répète la commande précédante en remplaçant string1 par string2. Équivalent à !!:s/string1/string2/
!# Toute la ligne de commande jusqu'à présent.

Désignateurs de mot

   Les words designator sont utilisés pour sélectionner les mots désirés depuis l'event. Un : sépare la spécification d'event du word designator. Il peut être omis si le word designator commence avec un ^, $, *, -, ou %. Les mots sont numérotés du début de la ligne, en commençant à 0. Les mots sont insérés dans la ligne courante séparés par un espace.

0 Le mot numéro 0. Pour le shell, c'est la commande.
n Le nième mot
^ Le premier argument, le mot numéro 1
$ Le dernier mot
% Le mot matché par le plus récent ?string? recherché
x-y Une plage de mots; -y est une abréviation de 0-y
Tous les mots sauf le premier (0). C'est un synonyme de 1-$.
x*  Abréviation de x-$
x- Abréviation de x-$ come x*, mais omet le dernier mot

   Si un word designator est fournis sans un event specification, la précédante commande est utilisée comme event.

Modificateurs

   Après le word designateur optionnel, il peut apparaître une séquence d'un ou plusieurs modifiers suivants, chacun précédés par un ::

h Supprime un composant restant du nom de fichier, ne laissant que le début
t Supprime tous les composant du nom de fichiers, ne laissant que la fin
r Supprime un suffixe sous la forme .xxx, laissant le basename
e Supprime tout sauf le suffixe restant.
p Affiche la nouvelle commande mais ne l'affiche pas
q Quote les mots substitués
x Quote les mots substitués, mais les sépare sur les blancs et les newline.
s/old/new/ Substitue la première occurence de old à new dans la ligne d'event. Tout délimiteur peut être utilisé à la place de /. Le délimiteur final est optionnel si c'est le dernier caractère de la ligne d'event. Si & apparaît dans new, il est remplacé par old. Un simple \ va quoter le &. Si old est null, il est définis au dernier old substitué, ou, si aucune substitution n'a eu lieu, la dernière chaîne dans la recherche !?string[?]
& Répète la précédente substitution.
g Les changements sont appliqués sur toute la ligne d'event. C'est utilisé en conjonction avec :s (ex: :gs/old/new/), ou :&. Si utilisé avec :s, tout délimiteur peut être utilisé en place de /, et le délimiteur final est optionnel si c'est le dernier caractère de la ligne d'event. Un a peut être utilisé comme synonyme de g.
G Applique de modifieur s une fois pour chaque mot dans la ligne d'event.

Commandes intégrées au shell

   Sauf mention contraire, chaque commande intégrée dans cette section acceptant des options précédés pas - acceptent -- pour signifier la fin des options. Les commandes :, true, false, et test n'acceptent pas d'options et ne traitent par -- spécialement. Les commandes exit, logout, break, continue, let, et shift acceptent et traitent les options commençant par - sans nécessiter --. Les autres commandes qui acceptent des arguments mais n'acceptent pas d'options interprètent les arguments commençant avec - comme invalide et nécessite -- pour empêcher leur interprétation.

: [arguments[ Pas d'effet; la commande ne fait rien hormis étendre les arguments et effectue les redirections spécifiées. Un code de sortie 0 est retourné.
. filename [arguments], source filename [arguments] Lis et exécute les commandes depuis filename dans l'environnement du shell courant et retourne le code de sortie de la dernière commande de filename. Si filename ne contient pas de /, PATH est utilisé pour trouver le fichier. Le fichier recherché dans PATH n'a pas besoin d'être exécutable. Quand bash n'est pas en mode posix, le répertoire courant est recherché si aucun fichier n'est trouvé dans PATH. Si l'option sourcepath de shopt est désactivé, le PATH n'est pas recherché. Retourne 0 si aucune commande n'a été exécutée, et false si filename n'a pas été trouvé ou ne peut être lu.
alias [-p] [name[=value] ...] Sans arguments ou avec l'option -p, affiche la liste des alias sur stdout. Les arguments fournis servent à définir des alias. Un espace après une valeur force le prochain mot à être vérifié pour une substitution d'alias quand l'alias est étendu. Pour chaque nom fournis sans valeur, le nom et la valeur de l'alias sont affichés. aliar retourne true à moins qu'un nom soit donné pour lequel aucun alias n'a été définis.
bg [jobspec ...] Relance chaque job suspendu spécifié en tâche de fond, comme s'il avait été spécifié avec &. Si jobspec n'est pas présent, la notion shell de job courant est utilisé. bg jobspec retourne 0 à moins qu'il soit lancé quand le contrôle de job soit désactivé ou si jobspec n'a pas été trouvé ou a été démarré sans contrôle de job.
bind [-m keymap] [-lpsvPSVX]
bind [-m keymap] [-q function] [-u function] [-r keyseq]
bind [-m keymap] -f filename
bind [-m keymap] -x keyseq:shell-command
bind [-m keymap] keyseq:function-name
bind readline-command Affiche les touches/fonctions readline courante, lie une séquence de touche à une fonction readline ou une macro, ou définis une variable readline. Chaque argument non option est une commande au format .inputrc, mais chaque liaison ou commande doit être passée comme argument séparé; par ex: '"\C-x\C-r": re-read-init-file'. Retourne 0 à moins qu'une option non reconnues soit donnée ou une erreur s'est produite. Les options, si fournies, ont la signification suivante:

        -m keymap Affecte keymap au binding suivant. Les noms de keymap acceptable sont emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, vi-command, et vi-insert. vi est équivalent à vi-command; emacs est équivalent à emacs-standard.
        -l Liste les noms de toutes les fonctions readline
        -p Affiche les noms des fonctions readline et leur liaisons au format readline
        -P Liste les noms des fonctions readline et leur liaisons
        -s Affiche les séquences de touche liées au macros et les chaînes qu'elles affichent au format readline.
        -S Liste les séquences de touche liées au macros et les chaînes qu'elles affichent
        -v Affiche les variables et leur valeurs au format readline
        -V Liste les variables et leur valeurs
        -f filename Lis les liaisons de touche depuis le fichier
        -q function Requête quels touches invoquent la fonction spécifiée
        -u function Supprime toutes les touches liées à la fonction spécifiée
        -r keyseq Supprime la liaison courant pour keyseq
        -x keyseq:shell-command Lie keyseq à la commande. Quand shell-command est exécutée, le shell définis la variable READLINE_LINE au contenu du tampon de ligne readline et la variable READLINE_POINT à l'emplacement courant du point d'insertion. Si la commande exécutée change la valeur d'une de ces 2 variables, ces nouvelles valeurs vont être reflétées dans l'état d'édition.
        -X Liste toutes les séquences liées aux commandes shell au format readline.

break [n] Sort d'une boucle for, while, until, ou select. Si n est fournis, sont de n niveau. n doit être supérieur à 1. Si n est supérieur au nombre de boucles imbriquées, sort de toutes les boucles. Retourne 0 sauf si n est inférieur à 1.
builtin shell-builtin [arguments] Exécute la commande intégrée spécifiée, et retourne son code de sortie. Utile quand une fonction à le même nom qu'une commande intégrée. Retourne false si la commande spécifiée n'est pas une commande intégrée.
caller [expr] Retourne le contexte d'un appel à une sous-routine active (une fonction ou un script exécuté avec . ou source). Sans expr, caller affiche le numéro de ligne et le nom du fichier de l'appel de la sous-routine courante. Si un entier non-négatif est fournis dans expr, caller affiche le numéro de ligne, le nom de la sous-routine, et le fichier source correspondant à la position dans la pile d'appel courante. Cette information peut être utilisée, par exemple, pour afficher un stack trace. La frame courante est la frame 0. La valeur de retour est 0 sauf si le shell n'exécute pas de sous-routine, ou expr ne correspond pas à une position valide dans la pile d'appel.
cd [-L|[-P [-e]] [-@]] [dir] Change de répertoire courant. Si dir n'est pas fournis, la valeur de la variable HOME est le défaut. Tout argument additionnel après dir est ignoré. La variable CDPATH définis le chemin de recherche pour le répertoire contenant dir. Si dir commance par /, CDPATH n'est pas utilisé.

        -P cd utilis la structure de répertoire physique en résolvant les liens symboliques en traversant les répertoires et avant de traiter les instances de .. dans dir.
        -L Suis les liens symboliques et résolvant le lien après le traitement des instances de .. dans dir. Si .. apparaît dans dir, il est traité en supprimant le composant du path précédant.
        Avec -P, si le répertoire courant ne peut être déterminer après un changement de répertoire, cd va retourner une erreur.
        -@ Présente des attributs étendus associés avec un fichier comme répertoire.
        Un argument - est convertis en OLDPWD avant de tenter de changer de répertoire.

command [-pVv] command [arg ...] Lance la commande spécifiée en supprimant la recherche de fonction shell. Seuls les commande intégrée ou les commandes trouvées dans PATH sont exécutées. Si -p est donné, la recherche de la commande est effectuée en utilisant une valeur par défaut pour PATH qui garantit de trouver tous les utilitaires standards. Si -V ou -v est founis, une description de la commande est affiché. -v affiche la commande ou le nom du fichier. -V produit une description plus verbeuse. Si -V ou -v est founis, retourne une code de sortie de 0 si la commande a été trouvée, 1 sinon. Sans ces options, si une erreur s'est produite ou commande n'est pas trouvé, retourne 127. Dans tous les autres cas, retourne le codes de sortie de la commande.
compgen [option] [word] Génère les completions possibles pour le mot en accord avec les options spécifiées, qui peuvent être toutes options acceptées par la commande complete, sauf -p et -r, et écrit les matches sur stdout. En utilisant les options -F ou -C, les divers variables shell définies par la completion programmable, si disponible, n'auront pas de valeurs utiles. Les matches sont générés de la même manière que la completion programmable. Si un mot est spécifié, seul les completions matchant ce mot sont affichés. La valeur retournée est true sauf si une option est invalide, ou qu'aucun matche n'a été généré.
complete [-abcdefgjksuv] [-o comp-option] [-DE] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] name [name ...]
complete -pr [-DE] [name ...] Spécifie comment les arguments de chaque nom devrait être complétés. Si -p est fournis, ou sans options, les spécifications de completion existantes sont affichées dans un format ré-utilisable. L'option -r supprime une spécification de completion pour chaque nom, ou, si aucun nom n'est fournis, toutes les spécifications de completion. L'option -D indique que les options et actions restantes devraient s'appliquer à la commande de completion par défaut; c'est à dire la completion tentée sur une commande pour laquelle aucune completion n'a été définie. L'option -E indique que les options et actions restantes devraient à la commande de completion vide, c'est à dire, la completion tentée sur une ligne vide.

   Les arguments de -G, -W, -X, et les options -P et -S devraient être quotés pour les protéger des expansions avant que complete soit invoqué.

        -o comp-option Contrôle divers aspects du mode de compspec au-delà de la simple générations des completions. comp-option peut être:

                bashdefault Effectue le reste des completion bash par défaut si compspec ne génère aucun match.
                default Utilise la completion par défaut de readline si compspec ne génère aucun match.
                dirnames Effectue une completion de nom de répertoire si compspec ne génère aucun match.
                filenames Dit à readline que compspec génère les noms de fichier, pour qu'il puisse effectuer tout traitement spécifique au noms de fichier (comme ajouter un / aux noms de répertoire, quoter les caractères spéciaux, ou supprimer les espaces restant). À utiliser avec les fonctions shell.
                noquote Dit à readline de ne pas quoter les mots complétés si ils sont des noms de fichier.
                nospace Dit à readline de ne pas ajouter un espace aux mots complétés à la fin de la ligne.
                plusdirs Après que tous les matches définis par le compspec aient été générés, tente la completion de noms de répertoire et tous les matches sont ajoutés au résultat des autres actions.

        -A action L'action peut être une des suivante peut générer la liste des completions possible:

                alias Noms d'alias. Peut aussi être spécifié par -a
                arrayvar Noms de variable tableau
                binding Noms de key binding readline
                builtin Noms des commandes intégrées. Peut aussi être spécifié par -b
                command Noms de commandes. Peut aussi être spécifié par -c
                directory Noms de répertoire. Peut aussi être spécifié par -d
                disabled Noms des builtins désactivés
                enabled Noms des builtins activés
                export Noms des variables shell exportés. Peut aussi être spécifié par -e
                file Noms de fichiers. Peut aussi être spécifié par -f
                function Noms des fonctions shell
                group Noms des groupes. Peut aussi être spécifié par -g
                helptopic Helptopic tels qu'accèptés par la commande help
                hostname Noms d'hôte, pris dans le fichier HOSTFILE
                job Noms de jobs, si le contrôle de job est actif. Peut aussi être spécifié par -j
                keyword Mots réservés du shell. Peut aussi être spécifié par -k
                running Noms des jobs lancés, si le contrôle de job est actif
                service Noms des services. Peut aussi être spécifié par -s
                setopt Arguments valides pour l'option -o de la commande set.
                shopt Noms d'options shell acceptés par la commande shopt
                signal Noms des signaux
                stopped Noms des jobs stoppés, si le contrôle de job est actif.
                user Noms des utilisateurs. Peut aussi être spécifié par -u
                variable Noms des variables shell. Peut aussi être spécifisé par -v

        -C command La commande est exécutée dans un environnement sous-shell, et sa sortie est utilisée comme completion possible.
        -F function La fonction shell est exécutée dans l'environnement du shell courant. Quand la fonction est exécutée, le premier argument est le nom de la commande dons les arguments sont à compléter, le second argument est le mot à compléter, et le troisième argument est le traitement de mot du mot à compléter sur la ligne courante. Une fois terminée, les completions possible sont récupérée depuis la valeur COMPREPLY.
        -G globpat Le motif d'expanion de pathname globpat est étendus pour générer les completions possible.
        -P prefix Le préfixe est ajouté au début de chaque completion possible après que toutes les options aient été appliquées.
        -W wordlist La liste de mot est splittée en utilisant IFS, et chaque mot résultant est étendu. Les completions possible sont les membre de la liste résultante qui matche le mot à compléter.
        -X filterpat Est un motif comme utilisé pour l'expansion de pathname. Il est appliqué à la liste des completions possible généré par les options et arguments précédents, et chaque completion matchant filterpat est supprimé de la liste. si filterpat commence par un !, le motif est inversé.

           La valeur de retour est true sauf si une option est invalide, un option autre que -p ou -r est fournie sans un argument nommé, une tentative de supprimer une spécification de completion pour un nom pour lequel aucune spécification n'existe, ou une erreur s'est produite en ajoutant une spécification de completion.

compopt [-o option] [-DE] [+o option] [name] Modifie les options de completion pour chaque name en accord avec les options, ou pour la completion actuellement exécutée si aucun nom n'est spécifié. Si aucune option n'est donnée, affiche les options de completion pour chaque nom ou la completion courante. Les options sont les même que pour la commande complete. Les options -D et -E ont la même signification que pour la commande complete. La valeur de retour est vraie sauf si une option est invalide, le nom n'a pas de spécification de completion, ou une erreur s'est produite.
continue [n] Passe à l'itération suivante dans une boucle for, while, until ou select. Si n est spécifié, passe à à l'itération suivante de la n-ième boucle. n doit être supérieur à 1. Si n est supérieur au nombre de boucles imbriquées, le boucle du haut est utilisée, La valeur retournée est 0 sauf si n n'est pas égal ou supérieur à 1.
declare [-aAfFgilnrtux] [-p] [name[=value] ...]
typeset [-aAfFgilnrtux] [-p] [name[=value] ...] Déclare des variable et/ou leur donne des attributs. Su aucun nom n'est donné, affiche les valeurs des variables.

        -p affiche les attributs et valeur de chaque nom. Utilisé avec name, les options additionnelles, autre que -f et -F, sont ignorés. Utilisé sans nom, il affiche les attributs et valeurs de toutes les variables ayant les attributs spécifiés par les options additionnelles. Si aucune autre option n'est fournis avec -p, declare va afficher les attribut et valeurs de toutes les variables shell.
        -f restreins d'affichage aux fonctions shell.
        -F inhibe l'affichage des définitions de fonction; seul les noms et attributs des fonctions sont affichés. Si l'option extdebug est active, le nom du fichier source le le numéro de ligne où est définis la fonction est affiché également. Implique -f
        -g Force les variables à être crées ou modifiées dans un scope global, même quand declare est exécuté dans une fonction shell.

           Les options suivantes peuvent être utilisée pour restreindre la sortie aux variables avec les attributs spécifiées, ou pour donner des attributs aux variables:

        -a Chaque nom est une variable tableau indexé
        -A Chaque nom est une variable tableau associatif
        -f Utilise les noms de fonction uniquement
        -i La variable est traitée comme un entier
        -l Convertis tous les caractères majuscule en minuscule lorsque la variable reçoit une valeur.
        -n  Donne à chaque nom l'attribut nameref, c'est à dire une référence à une autre variable. Toutes référence et assignement au nom, excepté pour changer l'attribut -n, sont effectué sur la variable référencée par la valeur du nom. Ne peut pas être appliquée aux variables tableau.
        -r Mode lecture seule. Il n'est plus possible d'assigner de nouvelles valeurs à ces noms
        -t Donne à chaque nom l'attribut trace. les fonction tracées héritent des trap DEBUG et RETURN du shell appelant. N'a pas de signification spéciale pour les variables.
        -u Convertis tous les caractères minuscule en majuscule lorsque la variable reçoit une valeur.
        -x Exporte les noms

   Utiliser + au lieu de - désactive l'attribut, à l'exception de +a qui ne peut pas être utilisé pour détruirs une variable tableau, et +r qui ne supprime par l'attribut lecture seule. Utilisé dans une fonction, declare et typeset rendent chaque nom local, comme avec la commande local, sauf si -g est fournis. Si un nom de variable est suivis par =value, la valeur de la variable est assignée. En utilisant -a ou -A et la syntaxe d'assignement composée pour créer des variables tableaux, les attributs additionnels ne prennent effet qu'après l'assignement. La valeur de retour est 0 sauf si une option invalide est rencontrée, si une fonction est définie avec -f foo=bar, une assignation à une variable lecture seule, une assignation de valeur à une variable tableau sans utiliser l'assignation composée, un noms n'est pas valide, tenter de désactiver l'attribut lecture seul, ou afficher une fonction qui n'existe pas avec -f.

dirs [-clpv] [+n] [-n] Sans options, affiche la liste des répertoires courant mémorisés. L'affichage par défaut est sur une seule ligne. Les répertoires sont ajoutés à la liste avec la commande pushd, popd pour les supprimer. La valeur de retour est 0 sauf si une option invalide est rencontrée, ou l'index n est au-delà de la pile de répertoire.

        -c Efface la pile de répertoires
        -l produit un listing en utilisant les chemin complets.
        -p Affiche la pile de répertoire, une entrée par ligne
        -v Affiche la pile de répertoire, une entrée par ligne, en préfixeant chaque entrée avec sont index dans la pile.
        +n Affiche la n-ième entrée en comptant depuis la gauche de la liste affichée par dirs invoqué sans options, en commençant à 0
        -n  Affiche la n-ième entrée en comptant depuis la droite de la liste affichée par dirs invoqué sans options, en commençant à 0

disown [-ar] [-h] [jobspec ...] Sans options, supprime chaque jobspec de la table des jobs actifs. Si jobspec n'est pas présent et que -a et -r ne sont pas fournis, le job courant est utilisé. Si -h est donné, chaque jobspec nqest pas supprimé de la table, mais est marqué pour que SIGHUP ne soit pas envoyé au job si le shell reçoit ce signal. Si aucun jobspec n'est fournis, -a signifie de supprimer ou marquer tous les jobs et -r restreins l'opération aux jobs lancés. La valeur de retour est 0 sauf si un jobspec n'est pas un job valide.
echo [-neE] [arg ...] Affiche les arguments, séparés par des espaces, suivis par une nouvelle ligne. Le code de retour est 0 sauf si une erreur d'écriture s'est produite. echo n'interprète par --

        -n  n'ajoute pas de nouvelle ligne à la fin
        -e  Interprète les caractère échappés
        -E  Désactive l'interprétation les caractères échappés, même sur les système où ils sont interprétés par défaut. L'option shell xpg_echo peut être utilisée pour déterminer dynamiquement si echo étend les caractères échappés par défaut.

           echo interprète les séquences échappées suivantes:

        \a alerte
        \b BACKSPACE
        \c n'affiche pas la suite
        \e, \E Un caractère échappe
        \f form feed
        \n NEWLINE
        \r retour charriot
        \t tabulation horizontale
        \v taulation verticale
        \\ \
        \0nnn Le caractère 8-bits dont la valeur est nnn en octal
        \xHH Le caractère 8-bits dont la valeur est HH en hexadécimal
        \uHHHH Le caractère Unicode (ISO/IEC 10646) dont la valeur est HHHH en hexadécimal.
        \UHHHHHHHH Le caractère Unicode (ISO/IEC 10646) dont la valeur est HHHHHHHH en hexadécimal.

enable [-a] [-dnps] [-f filename] [name ...] Les commandes enable et disable. Désactiver une commande intégrée permet à une commande qui a le même nom d'être exécutée sans spécifier un pathname complet. La valeur de retour est 0 sauf si nom n'est pas une commande intégrée, ou s'il y a une erreur au chargement d'un objet partagé.

        -n  chaque nom est désactivé, sinon, chaque nom est activé.
        -f Permet de charger la nouvelle commande intégrée depuis le fichier objet partagé, sur les système qui supportent le chargement dynamique.
        -d Supprime une commande intégrée précédemment chargée avec -f.
        -p Liste les commandes intégrées. Sans autre arguments, les toutes les options actives, avec -n, affiche uniquement les commande désactivées.
        -a Liste toutes les commandes intégrées, en spécifiant si elles sont activées ou non.
        -ss La sortie est restreinte aux commandes spéciales POSIX.

eval [arg ...] Les arguments sont lus et concaténés en une commande simple. Cette commande est ensuite lue et exécutée par le shell, et son code de sortie est la valeur retournée par eval. S'il n'y a par d'argument, ou seulement un argument null, eval retourne 0.
exec [-cl] [-a name] [command [arguments]] Si la commande est spécifiée, elle remplace le shell. Aucun nouveau processus n'est créé. Les arguments deviennent les arguments de la commande. Si l'option -l est spécifiée, le shell place un tiret au début de l'argument 0 passé à la commande. C'est ce que login fait. L'option -c exécute la commande avec un environnement vide. -a passe le nom en tant qu'argument 0 à la commande. Si la commande ne peut pas être exécutée, un shell non-interactif se termine, sauf si l'option execfail est actif. Dans ce cas, exec retourne une erreur. Si la commande n'est pas spécifiée, toute redirection prend effet dans le shell courant, et retourne 0. S'il y une erreur de redirection, retourne 1.
exit [n] Le shell se termine avec le code de sortie n. Si n est omis, le code de sortie est celui de la dernière commande exécutée. Un trap sur EXIT est exécuté avant que le shell se termine.
export [-fn] [name[=word]] ...
export -p Les noms fournis sont exportés automatiquement dans l'environnement des commandes exécutées. Si l'option -f est fournis, les mons réfèrent à des fonctions. Si aucun nom n'est donné, ou si l'option -p est fournis, une liste de toutes les variables exportées est affichée. L'option -n supprime la propriété export pour chaque nom. Si un nom de variable est suivi par =word, la valeur lui est assignée. export retourne un code de sortie 0 sauf si une option invalide est rencontrée, un des noms n'est pas une variable shell valide, ou -f est fournis avec un nom qui n'est pas une fonction.
fc [-e ename] [-lnr] [first] [last]
fc -s [pat=rep] [cmd] La forme first sélectionne une plage de commandes de first à last dans la liste d'historique est l'affiche ou l'édite, et les ré-exécute. first et last peuvent être spécifiés comme chaîne (pour localiser la dernière commande commençant avec cette chaîne) ou un nombre (un index dans la liste d'historique, où un nombre négatif est utilisé depuis le numéro de commande courant) Si last n'est pas spécifié, il est définis à la commande courante (donc fc -l -10 affiche les 10 dernières commandes) et à first sinon. Si first n'est pas spécifié il est définis à la commande précédente pour l'édition, et f -16 pour l'affichage.

        -n  Supprime les numéros de commande lors de l'affichage.
        -r Inverse l'ordre des commandes
        -l Les commandes sont listées sur stdout.

           Sinon l'éditeur donné par ename est invoqué sur un fichier contenant les commandes.Si ename n'est pas spécifié, utilise dans l'ordre, FCEDIT ou EDITOR (défaut: vi). Quand l'édition est terminée, les commandes éditées sont exécutées.

  Dans la seconde forme, la commande est ré-exécutée après que chaque instance de pat ait été remplacée par rep. La commande est interprétée de la même manière que first. Un alias utle à utiliser avec ça est r="fr -s", donc en taper r cc, lance la dernière commande commençant avec cc et taper r re-exécute la dernière commande.

           Si la première forme est utilisée, la valeur de retour est 0 sauf si une option invalide est rencontrée, ou first ou last spécifient des lignes d'historique hors plage. Si l'option -e est fournis, la valeur de retour est la valeur de la dernière commande exécutée ou une erreur si une erreur s'est produite avec le fichiers de commandes temporaire. Si la seconde forme est utilisée, le code de retour est celle de la commande ré-exécutée, sauf si la commande ne spécifie pas une ligne d'historique valide.

fg [jobspec] Met jobspec en tâche courante. Si jobspec n'est pas présent, la notion shell de job courant est utilisé. La valeur de retour est celle de la commande placée en foreground, ou une erreur si le contrôle de job est désactivé ou si jobspec ne spécifie pas de job valide ou un job qui a été lancé sans contrôle de job.
getopts optstring name [args] Utilisé par les procédures shell pour parser les paramètres positionnels. optstring contient les caractères d'option à reconnaitre; si un caractère est suivi par une virgule, l'option est supposé avoir un argument, qui devrait être séparé par un espace. Les caractères , et ? ne peuvent pas être utilisés comme caractère d'option. chaque fois qu'il est invoqué, getopts place la prochaine option dans la variable chaîne name, et index le prochaine argument à traiter dans la variable OPTIND. OPTIND est initialisée à 1 chaque fois que le shell ou un script shel est invoqué. Quand une option nécessite un argument, getopts place ect argument dans la variable OPTARG. Le shell ne réinitialise pas OPTIND automatiquement.

           Quand la fin des options est rencontrée, getopts se termine avec une valeur de retour supérieur à 0. OPTIND est définis à l'index du premier argument non-option, et name est définis à ?. getopts parse normalement les paramètres positionnels, mais si plus d'un argument est donné en argument, getopts les parse à la place.

           getopts peut reporter les erreurs de 2 manières. Si le premier caractère de optstring est une virgule, une erreur silencieuse est utilisée. Dans une opération normale, les messages de diagnostique sont affichés quand une option invalide ou manquante est rencontrée. Si la variable OPTERR est à 0, aucun messages d'erreur ne sera affiché, même si le premier caractère de optstring n'est pas une virgule.

           Si une option invalide et trouvée, getopts place un ? dans name et, si non silencieux, affiche un message d'erreur et réinitialise OPTARG. Si getopts est silencieux, le caractère option trouvé est placé dans OPTARG et aucun message n'est affiché.

           Si un argument requis n'est pas trouvé, et non silencieux, un ? est placé dans name, OPTARG est réinitialisé, et un message d'erreur est affiché. Si silencieux, : est placé dans name ,t OPTARG est définis au caractère trouvé.

           getopts retourne vrai si une option, spécifiée ou non spécifiée, est trouvée. Retourne false si la fin des options est rencontrée ou une erreur s'est produite.

hash [-lr] [-p filename] [-dt] [name] Chaque fois que hash est invoqué, le chemin complet de la commande est déterminée en recherchant les répertoires dans PATH et mémorisé. Tout chemin précédemment mémorisé est supprimé. -p ne recherche pas les répertoires, name est utilisé comme chemin complet. -r oubli tous les emplacements mémorisés. -d oublie l'emplacement mémorisé pour chaque nom. -t affiche le chemin pour chaque nom fournis. -l affiche la sortie dans un format réutilisable. Le statut de retour est true sauf si name n'est pas trouvé, ou une option est invalide.
help [-dms] [pattern] Affiche des information d'aide sur les commandes intégrées. Si pattern est spécifié, donne une aide détaillée sur toutes les commandes qui matchent ce pattern; sinon affiche l'aide pour toutes les commandes intégrées. Le code de retour est 0 sauf si aucune commande ne matche pattern.

        -d Affiche une description courte de chaque pattern
        -m Affiche la description de chaque pattern dans un format style manpage
        -s Affiche uniquement le synopsis pour chaque pattern

history [n]
history -c
history -d offset
history -anrw [filename]
history -p arg [arg ...]
history -s arg [arg ...] Sans options, affiche la liste numérotée d'historique de commande. Les lignes listées avec un * ont été modifiées. Un argument de n liste uniquement les dernières n lignes. Si la variable shell HISTTIMEFORMAT est définie et non null, elle est utilisé comme chaîne de formatage pour strftime(3) pour afficher le timestamp associé avec chaque entrée d'historique affichée. Si filename est fournis, il est utilisé comme nom de fichier d'historique; sinon, la valeur de HISTFILE est utilisé.

        -c Effache la liste d'historique
        -d offset Supprime l'entrée d'historique à la position donnée
        -a Ajoute les nouvelles lignes d'historique (les lignes entrées depuis le début de la session bash courante) au fichier d'historique.
        -n  Lit les lignes d'historique pas encore lues du fichier d'historique dans la liste d'historique courante.
        -r Lit le contenu du fichier d'historique et l'ajoute à la liste d'historique courante.
        -w Écrit le liste d'historique courante dans le fichier d'historique, en écrasant le contenu du fichier d'historique
        -p Effectue une substitution d'historique sur les arguments fournis et affiche le résultat. Ne stocke pas le résultat dans la liste d'historique. Chaque argument doit être quoté pour désactiver l'expansion d'historique normal.
        -s Stocke les arguments dans la liste d'historique en une seule entrée. La dernière commande dans la liste d'historique est supprimée avant que les arguments soient ajoutés.

           Si la variable HISTTIMEFORMAT est définie, les informations de timestamp associés avec chaque entrée d'historique est écrit dans le fichier d'historique, marqués avec le caractère de commentaire d'historique. Quand le fichier d'historique est lu, les lignes commançant avec ce caractère suivis immédiatement par un chiffre sont interprétés comme timestamp pour la ligne d'historique précédente. La valeur de retour est 0 sauf si une option invalide est rencontrée, une erreur s'est produite en lisant ou écrivant dans le fichier d'historique, un offset invalide ou l'expansion d'historique fournis avec -p échoue.

jobs [-lnprs] [ jobspec ... ]
jobs -x command [ args ... ] La première forme liste les jobs actifs. Si jobspec est donné, la sortie est restreinte aux informations sur ce job. Le code de retour est 0 sauf si une option invalide est rencontrée ou un jobspec invalide est fournis.

        -l Liste les ID des processus
        -n  Affiche des informations uniquement sur les jobs qui ont changés de status depuis la dernière notification de status reçu par l'utilisateur.
        -p Liste uniquement les process ID des process group leader des jobs.
        -r Affiche uniquement les jobs lancés
        -s Affiche uniquement les jobs stoppés
        -x Remplace tout jobspec trouvé dans la commande ou les arguments avec les process group ID correspondant, et exécute la commandes, retournant son codes de sortie.

kill [-s sigspec | -n signum | -sigspec] [pid | jobspec] ...
kill -l [sigspec | exit_status] Envoie le signal sigspec ou signum aux processus nommés par pid ou jobspec. Si sigspec n'est pas présent, envoie SIGTERM. -l liste les noms des signaux. Si un des argument est donné avec -l, liste les signaux correspondant. Le code de sortie de -l est un nombre décrivant soit le numéro du signal, ou le code de sortie d'un process terminé par un signal. Retourne vrai si au moins un signal a été envoyé avec succès, ou faux si une erreur s'est produite ou une option invalide est rencontrée.
let arg [arg ...] Chaque argument est une expression arithmétique à évaluer. Si le dernier argument évalue à 0, let retourne -1; 0 sinon.
local [option] [name[=value] ...] Permet de créer des variables locales. Les options sont les mêmes que celles acceptées par declare. Sans opérandes, local affiche la liste des variables locales. Retourne 0 sauf si local est utilisé en dehors d'un fonction, un nom est invalide, ou name est une variable lecture seule.
logout Quitte le login shell
mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array] Lis les lignes depuis l'entrée standard dans le tableau indexé array, ou depuis le descripteur de fichier fd si -u est fournis. La variable MAPFILE est le tableau par défaut.

        -n  Copie au maximum count ligne. Si count vaut 0, toutes les lignes sont copiées.
        -O Commence à assigner le tableau là l'index origin. Défaut: 0
        -s Ne tient pas compte des count premières lignes lues
        -t Supprime les newline de fin de chaque ligne lues
        -u Lit les lignes depuis le descripteur de fichier fd au lieu de l'entrée standard
        -C Évalue callback chaque fois que quantum lignes sont lues.
        -c Le quantum. Spécifie le nombre de lignes lues entre chaque appel callback

           Si -C est spécifié sans -c, le quantum par défaut est 5000. Quand callback est évalué, il reçoit l'index du prochain élément du tableau à assigner et la ligne à assigner à cette élément comme argument. callback est évalué après que la ligne soit lue, mais avant l'assignation. Si l'origine n'est pas fournis, mapfile efface le tableau avant de l'assigner. mapfile retourne un succès sauf si une option invalide est rencontrée ou un argument option est fournis, le tableau est invalide ou non assignable, ou si le tableau n'est pas un tableau indexé.

popd [-n] [+n] [-n] Supprime les entrées de la pile de répertoires. Sans arguments, supprime le haut de la pile, et effectue un cd dans le nouveau répertoire top. Si la commande réussie, un dirs est effectué et le code de retour est 0. popd retourne false si une option invalide est rencontrée, la pile de répertoire est vide, une entrée de pile n'existe pas ou le changement de répertoire échoue.

        -n  Supprime le changement de répertoire lors de la suppression des répertoires dans la pile, seul la pile est manipulée.
        +n Supprime la n-ième entrée dans la liste, en comptant de gauche à droite comme affiché par dirs, en commençant à 0
        -n  Supprime la n-ième entrée dans la liste, en comptant de droite à gauche comme affiché par dirs, en commençant à 0

printf [-v var] format [arguments] Écrit les argument formatés en utilisant le format spécifié. L'option -v assigne la sortie à la variable au lieu de l'afficher sur stdout. Le format est une chaîne de caractères qui contient 3 types d'objects: Des caractères normaux qui sont simplements copiés sur la sortie, des séquences de caractères échappés, et des spécification de format, chacun affichant l'argument suivant. En plus des spécification de format de printf(1), printf interprète les extensions suivantes:

        %b Étend les séquences échappées dans l'argument correspondant, excepté que \c termine la sortie, \', \" et \? ne sont pas supprimés, et les échappement octal commençant avec \0 peuvent contenir jusqu'à 4 chiffres.
        %q Affiche l'argument correspondant dans un format réutilisable en entrée.
        %(datefmt)T Affiche la chaîne de date résultante en utilisant datefmt comme format de chaîne pour strftime(3). L'argument correspondant est un entier représentant le nombre de seconde depuis l'epoch. 2 arguments spéciaux peuvent être utilisés: -1 représente le temps courant, et -2 représente l'heure d'invocation du shell. Sans arguments, utilise -1.

           Les arguments pour des spécifieurs de format non-chaîne sont traités comme des constantes C, excepté qu'un signe + ou - est permis, et si ce caractère est un quote simple ou double, la valeur est la valeur ASCII du caractère suivant. Le format est réutilisé si nécessaire pour consommer tous les arguments. Si le format requière plus d'arguments que fournis, les spécifications restantes se comporte comme si une valeur 0 ou une chaîne null avait été fournis. La valeur de retour est 0 sauf en cas d'erreur.

pushd [-n] [+n] [-n]
pushd [-n] [dir] Ajoute un répertoire au-dessus de la pile de répertoire, ou fait tourner la pile pour que le répertoire de travail courant soit en haut de la pile. Sans arguments, échange les 2 répertoires du haut de la pile et retourne 0, sauf si la pile est vide. Si la première forme est utilisée, pushd retourne 0 sauf si cd échoue. Avec la forme suivante, pushd retourne 0 sauf si la pile est vide, en élément de la pile n'existe pas, ou le changement de répertoire échoue.

        -n  Ne change pas de répertoire, n'agit que sur la pile.
        +n Tourne la pile pour que le n-ième répertoire (en comptant de gauche à droite comme affiché par dirs) soit en haut de la pile.
        -n  Tourne la pile pour que le n-ième répertoire (en comptant de droite à gauche comme affiché par dirs) soit en haut de la pile.
        dir Ajoute le répertoire à la pile, puis effectue un cd sur ce répertoire.

pwd [-LP] Affiche le chemin absolue du répertoire de travail courant. Ce chemin est affiché sans liens symbolique si -P est fournis, ou si l'option -o physical est activée. L'option -L permet d'afficher les chemin avec des liens symboliques. Le status de retour est 0 sauf si une erreur s'est produite en lisant le répertoire courant, ou une option invalide est fournie.
read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...] Une ligne est lue depuis l'entrée standard, ou depuis le descripteur de fichier fournis, et le premier mot est assignée au premier nom, le second au deuxième, etc, le dernier nom contient tous les mots restants. S'il à moins de mots que de nom, les noms en trop sont vides. IFS est utilisé pour séparer les mots en utilisant les mêmes règles que le shell pour les expansions. Le \ peut être utilisé pour supprimer toute signification spéciale du prochain caractère lu.

        -a aname Les mots sont assignés aux indices séquentiels du tableau aname, en commençant à 0. aname est ré-initialisé avant d'assigner les nouvelles valeurs. les autres noms sont ignorés.
        -d delim Le premier caractère est utilisé pour terminer la ligne d'entrée, au lieu d'une nouvelle ligne.
        -e  Si l'entrée standard vient du terminal, readline est utilisé pour obtenir la ligne. readline utilise les paramètre d'édition courants.
        -i text Si readline est utilisé pour lire la ligne, le texte est placé dans le tampon d'édition avant que l'édition commence.
        -n nchars retourne après que nchars caractères aient été lus, mais honore les délimiteurs
        -N nchars retourne après que nchars caractères aient été lus, sauf si EOF est rencontré. N'honore pas les délimiteurs.
        -p prompt Affiche le prompt sur l'erreur standard, sans newline final, avant de tenter de lire l'entrée. Le prompt est affiché uniquement si l'entrée provient du terminal.
        -r les \ n'agissent pas comme caractère d'échappement.
        -s Mode silencieux. Si l'entrée vient du terminal, les caractère ne sont pas répétés.
        -t timeout délai en seconde avant que read ne termine et retourne une erreur si l'entrée n'est pas complète. timeout peut être un nombre décimal avec une portion fractionnelle. Effectif uniquement si c'est l'entrée standard, un pipe, ou un fichier spécial; il n'a pas d'effet en lisant un fichier régulier. Si le timeout est atteind, la ligne d'entrée partielle est sauvée dans lu variable name. Si timeout est 0, retourne immédiatement, sans tenter de lire une donnée. Le statut de sortie est 0 si l'entrée est disponible sur le descripteur de fichier, Un statut de sortie de 128 pour un timeout atteind.
        -u fd Lis l'entrée depuis le descripteur donné

           Si aucun nom n'est donné, la ligne lue est assignée à la variable REPLY. Le code de retour est 0, sauf si EOF est rencontré, le timeout est atteind, une erreur lors de l'assignememt de variable ou un descripteur de fichier est invalide.

readonly [-aAf] [-p] [name[=word] ...] Les noms donnés sont marqués en lecture seule; les valeurs de ces noms ne peuvent plus être changés. Le statut de retour est 0 sauf si une option invalide est rencontrée, un des noms n'est pas une variable shell, ou -f est fournis avec une variable qui n'est pas une fonction.

        -f Les fonctions correspondantes sont également marquées.
        -a restreint les variables aux tableaux indexés
        -A Restreint es variables aux tableaux associatif. Si -a est également fournis, -A a précédence.
        -p Si aucun nom n'est fournis ou si -p est spécifié, liste toutes les variables lecture seule dans un format réutilisable.

return [n] Stop l'exécution d'une fonction et retourne la valeur spécifiée par n à son appelant. Si n est omis, retourne le status de la dernière commande exécutée. Si return est utilisé en dehors d'une fonction, mais durant l'exécution d'un script par la commande . (source), le shell stop l'exécution du script. Si n est fournis, la valeur de retour sont les 8bits de poid faible de n. Le status de retour est non-zéro si return est founis avec un argument non-numérique, ou est utilisé hors d'une fonction ou d'un script lancé par .. Toute commande associée avec le trap RETURN est exécuté avant de terminer la fonction ou le script.
set [--abefhkmnptuvxBCEHPT] [-o option-name] [arg ...]
set [+abefhkmnptuvxBCEHPT] [+o option-name] [arg ...] Sans options, le nom et la valeur de chaque variable shell sont affichés dans une format réutilisable. Les variables lecture seul ne peuvent pas être ré-initialisées. En mode posix, seul les variables shell sont listées.a sortie est triée en accord avec la locale courante. Quand des options sont spécifiées, elles définissent ou indéfinissent des attributs du shel. Tous arguments restant après le traitement des options sont traités comme valeurs pour les paramètres positionnels et sont assignés dans l'ordre, de $1, $2, ..., $n.

        -a Marque automatiquement les variables en fonctions qui sont modifiés ou créés en export.
        -b Reporte le statut des jobs de fond terminés immédiatement, et non avant le prochain prompt primaire. C'est effectif uniquement si le contrôle de job est actif.
        -e  Quitte immédiatement si un pipe (que peut consister d'une simple commande), une liste, ou une commande composée fait partie de la liste de commande immédiatement suivant un while ou until, fait partie du test suivant un if ou elif, fait partie d'une commande exécutée dans un && ou || excepté la commande suivant le && ou le || final, une commande dans un pipeline sauf le dernier, ou si la valeur de retour de la commande est inversée avec !. Si une commande composée autre qu'un sous-shell retourne un statut non-zéro à cause d'une commande échouée alors que -e était ignoré, le shell ne se termine pas. Un trap sur ERR est exécuté avant que le shell se termine. Cette option s'applique à l'environnement shell et chaque sous-environnement, et peut terminer les sous-shell avant d'exécuter toutes les commandes dans le sous-shell.

           Si une commande composée ou une fonction shell est exécutée dans un contexte où -e est ignoré, aucune commande exécutée dans la commande composée ou la fonction ne sera affectée par le paramètre -e, même si -e est définis et qu'une commande retourne un statut d'échec. Si une commande composée ou une fonction shell définie -e durant l'exécution dans un contexte où -e est ignoré, ce paramètre n'aura aucun effet tant que la commande composée ou la commande contenant l'appel de la fonction ne soit terminée.

        -f Désactive l'expansion de pathname
        -h Mémorise l'emplacement des commandes comme si elles étaient recherchées pour exécution. Activé par défaut.
        -k Tous les arguments dans la forme de déclaration d'assignement sont placés dans l'environnement pour une commande, pas seulement ceux qui précède le nom de la commande.
        -m Mode monitor. le contrôle de job est activé. Cette option est activée par défaut pour les shells interactifs sur les systèmes qui le supporte. Tous les processus sont lancés dans un groupe de processus séparés. Quand un job de fond se termine, le shell affiche un ligne contenant son code de sortie.
        -n  Lit les commandes mais ne les exécute pas. Peut être utilisé pour vérifier les erreurs de syntaxe des scripts shell. Ignorés par les shells interactifs.
        -o option-name Si option-name n'est pas fournis, les valeurs des options courantes sont affichées. si +o est fournis sans option-name, une série de commandes set pour recréer les paramètres courants est affiché sur stdous. Les options peuvent être les suivantes:

                allexport Idem à -a
                braceexpand Iden à -B
                emacs Utilise une interface d'édition de ligne de commande de style emacs. Activé par défaut quand le shell est interactif, sauf si le shell est lancé avec l'option --noediting. Affecte également l'interface d'édition pour read -e
                errexit Idem à -e
                errtrace Idem à -e
                functrace Idem à -T
                hashall Idem à -h
                histexpand Idem à -H
                history Active l'historique de commandes. Actif par défaut pour les shells interactifs.
                ignoreeof Idem à la commande shell IGNOREEOF=10
                keyword Idem à -k
                monitor Idem à -m
                noclobber Idem à -C
                noexec Idem à -n
                noglob Idem à -f
                nolog Actuellement ignoré
                notify Idem à -b
                nounset Idem à -u
                onecmd Idem à -t
                physical Idem à -P
                pipefail Si définis, la valeur de retour d'un pipeline est la valeur de la dernière commande avec un statut de sortie non-zéro, ou 0 si toutes les commandes ont réussies. Désactivé par défaut.
                posix bash passe en mode posix
                privileged Idem à -p
                verbose Idem à -v
                vi Utilise une interface d'édition de ligne de commande style vi. Affecte également l'interface d'édition utilisé pour read -e
                xtrace Idem à -x

        -P Passe en mode privilégié. Dans ce mode, les fichiers ENV et BASH_ENV ne sont pas traités, les fonctions shell n'héritent pas de l'environnement, les variables SHELLOPTS, BASHOPTS, CDPATH et GLOBIGNORE sont ignorées. Si le shell est lancé avec le user/group ID effectif différent du user/group id réel, et que l'option -p n'est pas fournie, le user id effectif est mis au user id réel. Si l'option -p est fournis au lancement, le user id effectif n'est pas réinitialisé. Désactiver cette option cause les user/group id effectifs à être définis comme user/group id réels.
        -t Quitte après avoir lu et exécuté une commande.
        -u Traite les variables et paramètres non-définis autre que les paramètres spéciaux @ et * comme des erreurs lors de l'expansion de paramètres. Si l'expansion est tenté sur un paramètre ou une variable non-définie, le shell affiche un message d'erreur, et, si non-interactif, quitte avec un code de retour non-zéro.
        -v Affiche les lignes lues
        -x Après chaque expansion d'une commande simple, d'une commande for, case, select, ou une commande for arithmétique, affiche la valeur étendue de PS4, suivi par la commande et ses arguments étendus.
        -B Le shell effectue l'expansion d'accolade. Activé par défaut.
        -C Si définis, bash n'écrase pas les fichiers existants avec , ›&, et ‹›. On peut toujours écraser les fichiers en créant des fichiers avec ›| au lieu de .
        -E  Si définis, un trap sur ERR est hérité par les fonctions, substitutions de commandes, et les commandes exécutées dans en environnement sous-shell. le trap ERR n'est normalement pas hérités dans de tels cas.
        -H Active la subsitution d'historique de commande avec !. Activé par défaut pour les shells interactifs.
        -P Si définis, le shell ne résoud pas les liens symboliques en exécutant les commandes telles que cd. Il utilise la structure de répertoire physique à la place. Par défaut, bash suit les liens.
        -T Si définis, un trap sur DEBUG et RETURN est hérité par les fonctions, substitutions de commandes, et les commandes exécutées dans en environnement sous-shell. Ces trap ne sont normalement pas hérités dans de tels cas.
        -- Si aucun argument ne suit cette option, les paramètres positionnels sont indéfinis. Sinon, les paramètres positionnels sont définis avec les arguments, même si certain d'entre eux commencent par -.
        Signal la fin des options, tous les arguments restants sont assignés aux paramètres positionnels. -x et -v sont désactivés. S'il n'y a aucun argument, les paramètres positionnels restent inchangés

           Les options sont désactivées par défaut, sauf mention. Utiliser + au lieu de - désactive l'option. Les options peuvent également être spécifiées à l'invocation du shell. Le jeu d'options courant peut être trouvé dans $-. Le code de retour est toujours vrai sauf si une option invalide est rencontrée.

shift [n] Les paramètres positionnels de n+1 ... sont renommés en $1 ... Les paramètres représentés par les nombres $# décroissant à $#-n+1 sont indéfinis. n doit être un nombre non-négatif inférieur ou égal à $#. Si n vaut 0, aucun paramètre n'est changé. Si n n'est pas donné, il est assumé 1. Si n est supérieur à $#, les paramètres positionnels ne sont pas changés. Le status de retour est supérieur à 0 si n est supésieur à $# ou inférieur à 0.
shopt [-pqsu] [-o] [optname ...] Active/désactive les paramètres contrôlant le fonctionnement du shell. Ces paramètres peuvent être ceux listés ci-dessous, ou, si -o est donné, ceux disponible avec set -o. Sans options ou avec -p, affiche la liste de tous les paramètres définissable, indiquant s'il sont actif ou non. -p affiche dans un format réutilisable.

        -s Active chaque optname
        -u Désactive chaque optname
        -q Mode silencieux. Le status de retour indique si optname est définis ou non. Si plusieurs optname sont fournis, retourne 0 si tous les optnames sont activés.
        -o Restreins les valeurs de optname à celles définis pour la commande set -o

           Si -s ou -u est utilisé sans optname, shopt affiche uniquement les options qui sont définies ou non. Sauf mention, les options de shopt sont désactivées par défaut. les options shopt sont:

        autocd Un nom de commande qui est le nom d'un repertoire est exécuté comme si elle était un argument de cd. Uniquement pour les shells interactifs.
        cdable_vars Un argument de la commande cd qui n'est pas un répertoire est assumé être le nom d'un variable contenant un répertoire.
        cdspell Les erreurs mineur dans les arguments de la commande cd sont corrigés. Il s'agit des caractères transposés, un caractère manquant, un caractère en trop. Si une correction est trouvée, le nom du fichier corrigé est affiché, et la commande est traitée. Uniquement pour les shells interactifs.
        checkhash Vérifie qu'une commande trouvée dans la table de hash existe avant de tenter de l'exécuter. Si un hash d'une commande n'est pas trouvée, une recherche normale est effectuée.
        checkjobs Liste le statut des jobs lancés et stoppés avant de quitter un shell interactif. Si un job est lancé, la sortie est différée jusqu'à un nouveau exit. Le shell rapporte toujours si des jobs sont stoppés.
        checkwinsize Vérifie toujours la taille de la fenêtre après chaque commande, et, si nécéssaire, met à jour LINES et COLUMNS.
        cmdhist Tente de sauver toutes les lignes d'un commande sur plusieurs lignes dans la même entrée d'historique.
        compat31 Bash change son comportement à la version 3.1 en respectant les arguments quotés de la commande conditionnelle [[ de l'opérateur = et les comparaisons de chaîne spécifique au locale en utilisant les opérateurs et des commandes conditionnelles [[. Les versions de bash avant 4.1 utilisent le classement l'assemblage ASCII et strcmp(3); bash 4.1 et + utilisent la séquence d'assemblage du locale et strcoll(3).
        compat32 Bash change son comportement à la version 3.2 en respectant les comparaisons de chaîne spécifique au locale en utilisant les opérateurs et de la commande conditionnelle [[.
        compat40 Bash change son comportement à la version 4.0 en respectant les comparaisons de chaîne spécifique au locale en utilisant les opérateurs et de la commande conditionnelle [[. et l'effet de l'interruption d'un liste de commande. Bash 4.0 et + interrompt la liste comme si le shell reçoit l'interruption.
        compat41 Bash, en mode posix, traite un simple quote dans une expansion de paramètre double-quoté comme un caractère spécial.
        compat42 Bash ne traite par les chaînes de remplacement dans la substitution de motif de l'expansion de mot en utilisant la suppression de quote.
        complete_fullquote Bash quote tous les métacaractères shell dans les noms de fichier et répertoire en effectuant les completions. Si non définis, bash supprime tous les métacaractères tel que $ du jeu de caractères qui seront quotés dans les noms de fichier complétés quand ces métacaractères apparaissent dans le références de variable shell dans les mot à compléter. Cela signifie que le signe dollar dans les noms de variable qui s'étendent à des repertoires ne seront pas quotés. Cependant, un signe dollar apparaissant dans les noms de fichier ne seront pas quotés. Activé par défaut.
        direxpand Remplace les noms des répertoires avec le résultat de l'expansion de mot lors des completions de pathname. Cange le contenu du tampon d'édition de readline. Non définis, bash tente de préserver ce qui a été tapé.
        dirspell Tente de corriger les noms de répertoires durant la completion de mot si le nom du répertoire initial n'existe pas.
        dotglob Inclus les noms de fichier commençant avec un . dans le résultat de l'expansion de pathname.
        execfail Un shell non-interactif ne se terminera pas s'il ne peut pas exécuter le fichier spécifié en argument de la commande exec. Un shell interactif ne qui jamais dans ce cas.
        expand_aliases Les alias sont étendus. Activé par défaut pour les shells interactifs
        extdebug Utilisé pour les débuggeurs:

                1. L'option -F de la commande declare affiche le nom du fichier source et le numéro de ligne correspondant à chaque nom de fonction fournis en argument.
                2. Si la commande lancé par le trap DEBUG retourne une valeur non-zéro, la prochaine commande est sauté et non exécutée.
                3. Si la commande lancé par le trap DEBUG retourne la valeur 2 et que le shell est exécuté dans une sous-routine (une fonction shell ou un script shell exécuté par . ou source), un appel à return est simulé.
                4. BASH_ARGC et BASH_ARGV sont mis à jours.
                5. Le tracing de fonction est activé: la substitution de commande, les fonctions shell, et les sous-shell invoqués avec ( commande ) héritent des traps DEBUG et RETURN.
                6. Le tracing d'erreur est activé: la substitution de commande, les fonctions shell, et les sous-shell invoqués avec ( commande ) héritent du trap ERR.

        extglob Les fonctionnalités de correspondance de motif étendu décrites dans Expansion de chemin sont activées
        extquote $'string' et $"string" sont effectués dans les expansion ${parameter} enfermés dans les guillemets double. Activé par défaut.
        failglob Les motif qui échouent les correspondance de nom de fichier créer une erreur d'expansion.
        force_fignore Les suffixes spécifiés par FIGNORE forcent les mots à être ignorés lors de l'expansion de mot même si les mots ignorés sont les seules completions possible. Activé par défaut.
        globasciiranges Les expressions de plage utilisés dans les expressions entre accolade de pattern matching fonctionnent comme dans la locale traditionnelle C lors des comparaisons. Donc b ne sera pas assemblé entre A et B, et les caractères ASCII minuscules et majuscule ne seront pas assemblé ensemble.
        globstar le pattern ** utilisé dans l'expansion de pathname va matcher tous les fichiers et 0 ou plusieurs répertoires et sous-répertoires. Si le pattern est suivi par un /, seul les répertoires et sous-répertoires matchent.
        gnu_errfmt Les messages d'erreurs du shell sont écrits au format des messages d'erreurs standard GNU.
        histappend La liste d'historique est ajoutée au fichier nommé par HISTFILE quand le shell quitte, au lieu d'écraser le fichier.
        histreedit Si readline est utilisé, un utilisateur a l'opportunité de ré-éditer une substitution d'historique échouée.
        histverify Si readline est utilisé, le résultat de la substitution d'historique n'est pas passé immédiatement au parser du shell. À la place, la ligne résultante est chargée dans le tampon d'édition de readline, permettant d'autres modifications.
        hostcomplete Si readline est utilisé, bash tente d'effectuer une completion de nom d'hôte quant un mot contient @. Activé par défaut.
        huponexit Tente d'envoyer SIGHUP à tous les jobs quand le login shell intéractif se termine.
        interactive_comments Permet à un mot commençant avec # de forcer ce mot et tous les caractères restant sur la ligne à être ignoré dans le shell intéractif. Activé par défaut.
        lastpipe Si le contrôles de job est actif, le shell lance la dernière commande d'un pipeline non exécutée en tâche de fond dans l'environnement du shell courant.
        lithist Si l'option cmdhist est activé, les commandes multi-ligne sont sauvées dans l'historique avec le newline embraqué au lieu l'utiliser un ;.
        login_shell Le shell définis cette option s'il est lancé comme login shell. Cette valeur ne peut pas être changée.
        mailwarn Si bash vérifie un fichier pour les mails reçus, le message "The mail in ‹mailfile› has been read" est affiché.
        no_empty_cmd_completion Si readline est utilisé, bash ne tente pas de rechercher le PATH pour les completions possible.
        nocaseglob Les matches de noms de fichier lors de l'expansion de pathname sont insensible à la casse.
        nocasematch Les matches de pattern dans les commandes conditionnelles case et [[ sont insensible à la casse.
        nullglob Bash permet au pattern qui ne matchent aucun fichier de s'étendre à une chaîne nulle, au lieu d'eux-même.
        progcomp Les fonctionnalité de completion programmable sont activés, Activé par défaut.
        promptvars les chaînes de prompt sont sujet à l'expansion de paramètre, substitution de commande, expansion arithmétique, et suppression de quotes après avoir été étendus. Activé par défaut
        restricted_shell Le shell est lancé en mode restreint. Cette valeur ne peut pas être changée.
        shift_verbose la commande shift affiche un message d'erreur quand le compteur excède le nombre de paramètres positionnels.
        sourcepath La commande source utilise PATH pour trouver le répertoire contenant le fichier fournis en argument. Activé par défaut.
        xpg_echo La commande echo étend les séquences backslash-excape par défaut.

suspend [-f] Suspend l'exécution du shell jusqu'à ce qu'il reçoive un signal SIGCONT. Un login shell ne peut pas être suspendu; l'option -f peut être utilisé pour forcer cette suspension. Le status de retour est 0 sauf si le shell est un login shel et que -f n'est pas fournis, ou si le contrôle de job n'est pas actif.
test expr
[ expr ] Retourne un status de 0 ou 1 en fonction de l'évaluation de l'expression conditionnelles expr. Chaque opérateur et opérande doit être un argument séparé. Les expressions sont composées des primaires décrites sous expressions conditionnelles. test n'accèpte pas d'options, ni n'accèpte et ignore un argument --. Les expressions peuvent être combinées en utilisant les opérateurs suivant, listés par ordre de précédence décroissant. L'évaluation dépend du nombre d'arguments. La précédence d'opérateur est utilisé quand il y au moins 5 arguments.

        ! expr Vrai si expr est faux
        ( expr ) Retourne la valeur de expr. Peut être utilisé pour outrepasser les précédences
        expr1 -a expr2 Vrai si expr1 et expr2 sont vrai
        expr1 -o expr2 Vrai si expr1 ou expr2 est vrai

           test, [ évaluent les expressions conditionnelles en utilisant un jeu de règles basées sur le nombre d'arguments:

                0 arguments L'expression est fausse
                1 argument L'expression est vrai si et seulement si l'argument n'est pas null.
                2 arguments Si le premier argument est !, l'expression est vrai si et seulement si le second argument est null. Si le premier argument est un des opérateurs conditionnel unaire, l'expression est vrai si le test unaire est vrai. Si le premier argument n'est pas un opérateur conditionnel unaire valide, l'expression est fausse.
                3 arguments Les conditions suivantes sont appliquées dans l'ordre listé. Si le second argument est un des opérateurs conditionnel binaires, le résultat de l'expression est le résultat du test binaire une utilisant le premier et le troisième argument comme opérandes. Les opérateur -a et -o sont considérés comme des opérateurs binaire quand il y a 3 arguments. Si le premier argument est !, la valeur est la négation du test à 2 arguments. Si le premier argument est exactement ( est le troisième exactement ), le resultat est le test 1 argument du second argument. Sinon l'expression est fausse.
                4 arguments Si le premier argument est !, le résultat est la négation de l'expression 3 arguments. Sinon l'expression est parsée est évaluée en accord avec la précédent est utilisant les règles listées plus haut.
                5 ou + arguments L'expression est parsée et évaluée en accord avec les précédence en utilisant les règles ci-dessus.

           Utilisé avec test ou [, les opérateurs et trient lexicographiquement en utilisant l'ordre ASCII.

times Affiche le temps système et utilisateur accumulé pour le shell et pour les processus lancés depuis le shell. Le status de retour est 0.
trap [-lp] [[arg] sigspec ...] La commande arg est lue et exécutée quand le shell reçoit le signal sigspec. Si arg est absent (et il y a un simple sigspec) ou -, chaque signal spécifié est réinitialisé à sa disposition initiale ( la valeur avant d'entrée dans le shell). Si arg est une chaîne null le signal spécifié par chaque sigspec est ignoré par le shell et par la commande qu'il invoque. Si arg n'est pas présent et -p est fournis, les commandes de trap associé avec chaque sigspec sont affichés. Si aucun argument n'est fournis ou si seulement -p est donné, trap affiche la liste des commandes associées avec chaque signal. L'option -l affiche une liste de noms de signaux et leurs numéros correspondant. Chaque sigspec est soit un nom de signal, ou son numéro.

   Si un sigspec est EXIT (0) la commande arg est exécutée à la sortie du shel. Si un sigspec est DEBUG, la commande arg est exécutée avant toute commande simple, for, case, select, et avant la première commande exécutée dans une fonction shell. Si un sigspec est RETURN, La commande arg est exécutée chaque fois qu'une fonction shell ou un script est exécutée avec . ou source.

   Si un sigspec est ERR, la commande arg est exécutée si un pipeline ( qui peut consister d'une commande simple), une liste, ou une commande composée retourne un statut de sortie non-zéro, sujet aux conditions suivante. le trap ERR n'est pas exécuté si la commande échouée fait partie de la liste de commande immédiatement après un while ou until, d'un test dans une déclaration if, partie d'une commande exécutée dans un && ou || excepté la commande finale, une commande dans un pipe sauf la dernière, ou si la valeur de retour de la commande est inversée par !. Ce sont les même conditions pour l'option errexit.

   Les signaux ignorés lors de l'entrée dans le shell ne peuvent plus être trappés ou réinitialisés. Les signaux trappés qui ne sont pas ignorés sont ré-initialisés à leur valeur d'origine dans un sous-shel ou un environnement sous-shell quand il est créé. Le statut de retour est false si un sigspec est invalide, sinon trap retourne true.

type [-aftpP] name [name ...] Sans options, indique comment chaque nom serait interprété si utilisé comme nom de commande.

        -t Affiche une chaîne qui est un parmis alias, keyword, function, builtin ou file. Si le nom n'est pas trouvé, rien n'est affiché et retourne false.
        -p Retourne soit le nom du fichier, ou rien si type -t name ne retournerai pas de fichier.
        -P Force une recherche PATH pour chaque nom, même si type -t name ne retournerai pas de fichier. Si une commande est hashée, -p et -P affichent la valeur hashée, qui n'est pas nécessairement le fichier qui apparaît en premier dans PATH.
        -a Affiche tous les emplacements qui contiennent un exécutable nommé name. Celà inclus les aliases et les fonctions, si est seulement si l'option -p n'est pas utilisée. La table des hash n'est pas consultée avec -a.
        -f Supprime la recherche de fonctions, comme avec la commande command. type retourne true si tous les arguments sont trouvés, false sinon.

ulimit [-HSTabcdefilmnpqrstuvx [limit]] Fournis un contrôle sur les ressources disponibles au shell et aux processus lancés ce dernier. Les options -H et -S spécifient que les limites hard ou soft sont définies pour la ressource donnée. Une limite hard ne peut pas être augmentée par un utilisateur non-root, une limite soft peut être augmentée jusqu'à la valeur hard. Si ni -H ni -S ne sont spécifiés, les 2 limites sont définies. La valeur de limit peut être un nombre dans l'unité spécifée pour la ressource ou au valeur spéciale hard, soft ou unlimited, qui spécifie la limite hard courante, limite soft courant, et aucune limite, respectivement. Si limit est omis, la valeur courante de la limite soft de la ressource est affichée, sauf si -H est donné. Quand plus d'une ressource est spécifié, le nom de la limite et l'unité sont affichés avant la valeur. Les autres options sont interprétés comme suit:

        -a Reporte toutes les limites courante
        -b maximum socket buffer size
        -c maximum size of core files created
        -d maximum size of a process's data segment
        -e  maximum scheduling priority ("nice")
        -f maximum size of files written by the shell and its children
        -i maximum number of pending signals
        -l maximum size that may be locked into memory
        -m maximum resident set size
        -n  maximum number of open file descriptors
        -p pipe size in 512-byte blocks (ne peut pas être définis)
        -q maximum number of bytes in POSIX message queues
        -r maximum real-time scheduling priority
        -s maximum stack size
        -t maximum amount of cpu time in seconds
        -u maximum number of processes available to a single user
        -v maximum amount of virtual memory available to the shell
        -x maximum number of file locks
        -T maximum number of threads

   Si limit est donné sans -a, limit est la nouvelle valeur pour la ressource spécifiée. Si aucune option n'est donnée, assume -f. Les valeurs sont en incrément de 1024 octets, excepté pour -t qui est en secondes, -p qui est en unité de blocks de 512 octets, et -T, -b, -n et -u. Le statut de retour est 0 sauf si une option ou un argument invalide est rencontré, ou une erreur se produit en définissant une nouvelle limite.

umask [-p] [-S] [mode] Définis le masque de création de fichier de l'utilisateur. Si mode commence avec un chiffre, il est interprété en octal, sinon il est interprété similairement à la commande chmod(1). Si mode est omis, la valeur umask courant est affichée. L'option -S affiche le masque sous la forme symbolique, sinon l'affiche en octal. L'option -p, sans mode, affiche dans un format réutilisable. Le statut de retour est 0 si le mode a été changé avec succès ou si aucun mode n'a été fournis, false sinon.
unalias [-a] [name ...] Supprime chaque nom fournis de la liste des alias définis. Si -a est spécifié, toutes les définitions d'alias sont supprimées. La valeur de retour est true sauf si un nom fournis n'est pas un alias.
unset [-fv] [-n] [name ...] Pour chaque nom, supprime la variable ou la fonction correspondante. Si -v, chaque nom réfère à une variable shell, et est supprimée. Les variable lecture seul ne peuvent pas être supprimées. Si -f, chaque nom réfère à une fonction et est supprimée. Si -n et name est une variable avec l'attribut nameref, le nom sera indéfinis au lieu de sa référence. -n n'a pas d'effet si -f est fournis. Sans options, chaque nom réfère à une variable, s'il n'y a pas de variable correspondant au nom, toute fonction avec ce nom est supprimée. Chaque variable ou fonction est supprimée de l'environnement passée aux commandes suivantes. Si un de COMP_WORDBREAKS, RANDOM, SECONDS, LINENO, HISTCMD, FUNCNAME, GROUPS, DIRSTACK est indéfinis, elles perdent leur propriétés spéciales, même si elle sont ré-initialisée ultérieurement. Le code de sortie est true sauf si un nom est en lecture seul.
wait [-n] [n ...] Attend pour chaque processus enfant spécifié et retourne son code de sortie. Chaque n peut être un ID de processus ou une spécification de job. Si un jobspec est donné, attend pour tous les processus dans ce pipeline de job. Si n n'est pas fournis, attend les processus enfant courant actif et retourne 0. Si -n, attend la fin de tous les jobs et retourne son code de sortie. Si n spécifie un processus non-existant, retourne 127, sinon retourne de statut de sortie du dernier job attendu.

Shell restreint

   Si bash est lancé avec le nom rbash, ou -r est fournis à l'invocation, le shell devient restreint. Ce shell est utilisé pour définir un environnement plus contrôlé qu'un shell standard. Les fonctionnalités suivantes sont interdite ou non exécutées:

        - Changer de répertoire avec cd
        - Définir ou indéfinir les valeurs de SHELL, PATH, ENV ou BASH_END
        - Spécifier des noms de commandes contenant /
        - Spécifier un nom de fichier contenant / à la commande .
        - Spécifier un nom de fichier contenan / en argument de l'option -p
        - Importer des définitions de fonction dans l'environnement au démarrage
        - Parcourir la valeur de SHELLOPTS dans l'environnement au démarrage
        - Rediriger la sortie en utilisant ›, ›|, ‹›, ›&, &›, et ››
        - Utiliser la commande exec pour remplace le shell avec une autre commande
        - Ajouter ou supprimer les commandes intégrée avec les options -f ou -d de la commande enable
        - Utiliser la commande enable pour activer des commandes intégrées
        - Spécifier l'option -p à la commande command
        - Désactiver le mode restreint avec set +r ou set +o restricted

   Ces restrictions sont active une fois les fichiers de démarrage lus. Quand une commande est un script shell, rbash désactive toute restriction dans le shell créé pour exécuter le script.

Fichiers

/bin/bash L'exécutable bash
/etc/profile Le fichier d'initialisation système, exécuté par les login shell
/etc/bash.bashrc Le fichier d'initialisation système, exécuté par les shell interactifs
/etc/bash.bash.logout Le fichier d'initialisation système, exécuté quand le login shell se termine
~/.bash_profile Fichier d'initialisation personnel, exécuté par les login shell
~/.bashrc Fichier d'initialisation personnel, exécuté par les shell interactifs
~/.bash_logout Fichier d'initialisation personnel, exécuté quand le login shell se termine
~/.inputrc Fichier d'initialisation readline personnel.
^
05 mars 2014

htmlpdflatexmanmd




bc

bc

langage de calcul arbitraire

   bc est un langage qui supporte les nombres à précision arbitraire avec exécution intéractive des déclarations. Il y'a certaines similarités avec le langage C. bc commence par traiter le code depuis tous les fichiers de la ligne de commande, puis il lit l'entrée standard.

OPTIONS

-i, --interactive Mode interactif
-l, --mathlib Définis la librairie standard
-w, --warn Donne des alertes pour les extensions à bc POSIX
-q, --quiet N'affiche pas le message de bienvenu

Nombres

   C'est l'élément de base de bc. Les nombres sont de précision arbitraire. Tous les nombres sont représentés en interne en décimal et tous les calculs sont fait en décimal. Il y'a 2 attributs de nombres. la longueur et l'échelle. La longueur est le nombre total de chiffres et l'échelle et le nombre total après le point décimal. Par ex:

  .000001 a une longueur de 6 et une échelle de 6.

  1935.000 a une longueur de 7 et une échelle de 3.

Variables

   Les nombres sont stockés dans 2 types de variables, les variables simples et le tableaux. Ces deux types sont nommés. Les noms commencent avec une lettre suivi par des lettres, chiffres et '_'. Toutes les lettres doivent être en minuscules.

  Il y'a 4 types spéciaux de variables, scale, ibase, obase et base. scale définis la manière dont certaines opérations utilisent les chiffres après le point décimal (défaut: 0). ibase et obase définissent le base de conversion pour les nombres entrant et sortant (défaut: 10). last est une variable qui a la valeur du dernier nombre affiché.

Commentaires

   Les commentaires dans bc commencent avec /* et se terminent par */.

  # peut également être utilisé pour les commentaire sur une seule ligne.

Expressions

   Les nombres sont manipulés par des expressions et des déclarations. Il n'y a pas de programme main. À la place, le code est exécutés tel qu'il est rencontré.

  Une simple expression est simplement une constante. bc convertis les constantes en nombres décimal en utilisant la base d'entrée courante, spécifiée par la variable ibase. Les valeurs légales de ibase vont de 2 à 16. Les nombres en entrée peuvent contenir les caractères 0-9 en A-F. Pour les nombres à plusieurs chiffres, bc change tous les chiffres supérieurs ou égal à la valeur de ibase-1. Cela fait du nombre FFF toujours plus large que 3 chiffre de la base d'entrée

   Les expressions sont similaires à d'autre langages de haut niveau. Vu qu'il n'y a qu'un type de nombre, il n'y a pas de règles pour mixer les types. À la place, il y'a des règles sur l'échelle des expressions. Toute expression a une échelle. L'échelle est dérivée des nombres originaux, l'opération est effectuée dans tous les cas, la valeur de la variable scale. les valeurs légales de scale vont de 0 au nombre maximum représentable par un entier C.

  Dans les descriptions suivantes d'expressions légales, expr réfère à une expression complète et var réfère à une variable simple ou un tableau.

Une variable simple est juste: name
et un tableau est spécifié: name[expr]

- expr Le résultat est la négation de l'expression
++ var La variable est incrémenté de un et la nouvelle valeur est le résultat de l'expression
-- var La variable est décrémenté de un et la nouvelle valeur est le résultat de l'expression
var ++ Le résultat de l'expression est la valeur de la variable puis la variable est incrémenté
var -- Le résultat de l'expression est la valeur de la variable puis la variable est décrémenté
expr + expr Le résultat de l'expression est la somme des 2 expressions
expr - expr Le résultat de l'expression est la différence des 2 expressions
expr * expr Le résultat de l'expression est le produit des 2 expressions
expr / expr Le résultat de l'expression est de quotient des 2 expressions. l'échelle du résultat est la valeur de la variable scale
expr % expr Le résultat de l'expression est le reste
expr ^ expr Le résultat de l'expression est la valeur de la première élevé à la seconde. La seconde expression doit être un entier.
( expr ) Altère la précédence standard pour forcer l'évaluation de l'expression
var = expr Assigne la valeur de l'expression à la variable
var ‹op›=expr Est équivalent à "var = var ‹op› expr" à l'exception que var est évalué une seule fois. Peut faire une différence si var est un tableau

   Les expressions relationnels sont un type d'expression spécial qui s'évalue toujours à 1 ou 0. Les opérateurs relationnels sont:

expr1 ‹ expr2 Le résultat est 1 si expr1 est strictement inférieur à expr2
expr1 ‹= expr2 Le résultat est 1 si expr1 est inférieur ou égal à expr2
expr1 › expr2 Le résultat est 1 si expr1 est strictement supérieur à expr2
expr1 ›= expr2 Le résultat est 1 si expr1 est supérieur ou égal à expr2
expr1 == expr2 Le résultat est 1 si expr1 est égal à expr2
expr1 != expr2 Le résultat est 1 si expr1 est différent de expr2

   Les opérations booléennes sont aussi légales. Les opérations booléennes sont:

!expr Le résultat est 1 si expr est 0
expr && expr Le résultat est 1 si les 2 expressions ne valent pas 0
expr || expr Le résultat est 1 si au moins une des expressions ne vaut pas 0

La précédence des expressions est la suivante:
||
&&
!
Opérateurs relationnels
Opérateurs d'assignement
+ et -
^
- unaire
-- et ++

   Cette précédence à été choisie pour être conforme avec la version POSIX de bc. Cela occasionne quelques différences avec d'autres langages. par exemple, a = 3 ‹ 5 va assigner 3 à a puis comparer 3 à 5.

Fonctions spéciales

length ( expression ) retourne le nombre de chiffres dans l'expression
read ( ) Lit un nombre sur l'entrée standard
scale ( expression ) retourne le nombre de chiffres aprés le point décimal dans l'expression
sqrt ( expression ) retourne la racine carré de l'expression. Si l'expression est négative, retourne une erreur

Déclarations

   Les déclarations fournissent le séquençage de l'évaluation d'expression. Dans bc les déclarations sont exécutés dès que possible. ';' et newline sont utilisés comme séparateur de déclaration. À cause de l'exécution immédiate, les newline sont très important. Il est possible de cacher un newline en utilisant un '\'. La séquence "\‹nl›", où ‹nl› est le newline apparaît à bc comme un espace blanc au lieu d'un newline.

expression Si l'expression commence avec "‹variable› ‹assignement› ...", c'est considéré comme une déclaration d'assignement. Si l'expression n'est pas un assignement, elle est évaluée et affichée sur la sortie, suivi d'un newline.
string La chaîne est affichée sur la sortie. Les chaînes sont entre '"'
print list La déclaration print fournis une autre méthode de sortie. list est une liste de chaînes et d'expressions séparé par ','. Les expressions sont évaluées et leur valeur sont affichés et assigné à la variable last.
{ statement_list } Permet de regrouper les déclarations ensemble pour exécution
if ( expression ) statement1 [else statement2] Évalue expression et exécute statement1 ou statement2 en fonction
while ( expression ) statement Exécute la déclaration tant que expression est différent de 0
for ( [expression1] ; [expression2] , [expression3] ) statement expression1 est évalué avant la boucle, expression2 est évalué avant chaque exécution de la déclaration, expression3 est évalué avant chaque ré-évaluation de expression2.

le code suivant est équivalent:
expression1;
while (expression2) {
    statement,
    expression3;
}

break Force à sortir d'une déclaration while ou for
continue Force une nouvelle itération d'une déclaration for
halt force à quitter bc
return Retourne la valeur 0 depuis une fonction
return ( expression ) Retourne la valeur de l'expression depuis une fonction

Pseudo déclarations

   Ces déclarations ne sont pas exécutées, leur fonctions sont effectées à la compilation

limits Affiche les limites locales définis par la version de bc.
quit Identique à halt' excepté qu'il est toujours effectué (ex: if (0 = 1) quit termine bc, ce qui n'est pas le cas de halt)
warranty Affiche une note de garantie

Fonctions

   Les fonctions dans bc calculent toujours une valeur et la retourne à sont appelant. Les définitions des fonctions sont dynamiques dans le sens qu'une fonction est indéfinie jusqu'à ce qu'une définition soit rencontrée. Une nouvelle définition remplace la précédente.

Une fontion est définie comme suit:
define name ( parameters ) { newline
    auto_list statement_list

   Un appel de fonction est une simple déclaration sous la forme:

  "name(parameters)"

  Les paramètres sont des nombres ou des tableaux. Dans la définition de la fonction, on peut définir 0 ou plusieurs paramètres séparé par des virgules. Le nombre de paramètres doit correspondre lors de l'appel de la fonction.

  auto_list est une liste optionnelle de variables locales. La syntaxe est:"auto name, ...;". Chaque name est le nom d'une auto variable. Ces variables sont initialisées à 0 et utilisées durant l'exécution de la fonction. Les auto variables sont différentes des variables locales traditionnelles parce que si une fonction A appel une fonction B, B peut accéder aux auto variables de A. Vue que bc push ces variables dans la pile, bc supporte les fonctions récursives

   Le corp de la fonction est une liste de déclaration bc. return termine la fonction et retourne la valeur 0 à la fonction appelante, ou la valeur de l'expression, en fonction de la variante de return utilisée.

  Les fonctions changene également l'utilisation de la variable ibase. Toutes les constantes dans le corp de la fonction seront convertis avec ibase au moment de l'appel de la fonction. Les changements de ibase seront ignorés durant l'exécution de la fonction excepté pour la fonction standard read.

   De nombreuses extensions ont été ajoutés aux fonctions. Le format de la définition a été légèrement relaxé. Cette version de bc permet plusieurs newlines avant et après le'{' ouvrante de la fonction.

Par exemple, les définitions suivantes sont légales
define d (n) { return (2*n); }
define d (n)
{ return (2*n); }

   Les fonctions peuvent être définies en void. Cette fonction ne retourne pas de valeur. Le mot clé void est placé entre define et le nom de la fonction.

Par exemple, la session suivante
define py (y) { print "---›", y, "‹---", "0; }
define void px (x) { print "---›", x, "‹---", "0; }
py(1)
---؏‹---
0
px(1)
---؏‹---

Librairie mathématique

   Si bc est invoqué avec l'option -l, une librairie mathématique est préchargée et l'échelle par défaut est 20. La librairie mathématique définis les fonctions suivantes:

s (x) Le sinus de x, x est en radians
c (x) Le cosinus de x, x est en radians
a (x) Le arc tangente de x, retourne un radians
l (x) Le logarithme naturel de x
e (x) La fonction exponentiel du reste e à la valeur x
j (n,x) La fonction Bessel de l'ordre entier n de x

Exemples

Dans /bin/sh, le code qui suit va assigner la valeur de "pi" à la variable shell pi
pi=$(echo "scale=10; 4*a(1)" | bc -l)

La définition de la fonction exponentiel utilisée dans la librairie mathématique. et POSIX bc
scale = 20
    /*Uses the fact that e^x = (e^(x/2))^2
When x is small enough, we use the series:
e^x = 1 + x + x^2/2! + x^3/3! + ...
*/
    
define e(x) {
    auto a, d, e, f, i, m, v, z
    
    /*Check the sign of x.*/
    if (xծ) {
        m = 1
        x = -x
    }
    
    /*Precondition x.*/
    z = scale;
    scale = 4 + z + .44*x;
    while (x › 1) {
        f += 1;
        x /= 2;
    }


/*Initialize the variables.*/
    v = 1+x
    a = x
    d = 1
    
    for (i=2; 1; i++) {
        e = (a *= x) / (d *= i)
        if (e == 0) {
            if (f؎) while (f--) v = v*v;
            scale = z
            if (m) return (1/v);
            return (v/1);
        }
        v += e
    }
}

ce code utilise les extensions bc pour implémenter un simple programme de calcul de solde de chéquiers
scale=2
print "\nCheck book program!\n"
print " Remember, deposits are negative transactions.\n"
print " Exit by a 0 transaction.\n\n"

print "Initial balance? "; bal = read()
bal /= 1
print "\n"
while (1) {
    "current balance = "; bal
    "transaction? "; trans = read()
    if (trans == 0) break;
    bal -= trans
    bal /= 1
}
quit

Définition d'une fonction factorielle récursive
define f (x) {
    if (x ‹= 1) return (1);
    return (f(x-1)    *    x);
}

Options Readline et Libedit

   GNU bc peut être compilé pour utiliser la librairie d'entrée GNU readline ou BSD libedit. Cela permet à l'utilisateur d'éditer les lignes avant de les envoyer à bc. Cela permet également de conserver un historique. Quand cette option est sélectionné, bc a une variable spéciale supplémentaire, history

Limites

Les limites suivantes sont dans le pré-processeur bc. max input base: 16
BC_BASE_MAX base de sortie max, défaut: 999.
BC_DIM_MAX Limite arbitraire de 65535
BC_SCALE_MAX Le nombre de chiffres avant et après la virgule sont chacun limité par INT_MAX
BC_STRING_MAX La limite du nombre de caractères dans une chaîne est de INT_MAX caractères
exponent La valeur de l'exposant (^) est limité à LONG_MAX
variable names La limite du nombre de noms unique est de 32767 pour chaque variable simples, tableaux et fonctions

Variables d'environnement

POSIXLY_CORRECT Identique à -s, conforme bc à POSIX
BC_ENV_ARGS Autre mécanisme pour donner les arguments à bc, ces arguments sont traités en premier
BC_LINE_LENGTH Spécifie le nombres de caractères sur une ligne de sortie. À 0, désactive la sortie multi-ligne. Une valeur inférieur à 3 définis la longueur de ligne à 70
^
14 août 2011

htmlpdflatexmanmd




nsswitch.conf

nsswitch.conf

Fichier de configuration pour la gestion des services de nom

   Les bases de données suivantes sont disponibles:

aliases alias de messagerie, utilisé par sendmail
ethers Numéros ethernet
group groupes d'utilisateurs, utilisé par getgrent(3)
hosts Noms d'hôtes et numéros, utilisé par gethostbyname(3) et similaires
netgroup liste d'hôtes et d'utilisateurs, utilisé pour les règles d'accès, NIS uniquement
networks noms réseaux et numéros, utilisés par getnetent(3)
passwd mots de passe utilisateurs, utilisé par getpwent(3)
protocols protocoles réseaux, utilisés par getprotoent(3)
publickey clés publiques et secret pour Secure_RPC utilisé par NFS et NIS+
rpc Noms et valeurs RPC, utilisé par getrpcbyname(3)
services services réseaux, utilisé par getservent(3)
shadow mots de passe utilisateurs, utilisés par getspnam(3)

Exemple de nsswitch.con par défaut:
passwd : compat
group : compat
shadow : compat
    
hosts : dns [!UNAVAIL=return] files
networks : nis [NOTFOUND=return] files
ethers : nis [NOTFOUND=return] files
protocols : nis [NOTFOUND=return] files
rpc : nis [NOTFOUND=return] files
services : nis [NOTFOUND=return] files

   La première colonne est la base de données. Le reste de la ligne spécifie le processus de recherche. Vous pouvez spécifier le fonctionnement pour chaque base de données. La configuration pour chaque base de données peut contenir 2 éléments différents: la spécification du service et la réaction de la recherche.

La syntaxe de la réaction de recherche est la suivante:
'[' ( ' !' ? STATUS '=' ACTION )+ ']'

STATUS = success | notfound | unavail | tryagain
ACTION = return | continue
success Aucune erreur ne s'est produit et l'entrée désirée est retournée (défaut : return)
notfound le processus de recherche fonctionne mais la valeur recherchée n'a pas été trouvée (défaut : continue)
unavail le service est indisponible de manière permanente. Cela peut être un fichier non disponible, ou pour DNS, le serveur non disponible ou une requête non permise. (Défaut : continue)
tryagain Le service est temporairement indisponible. Cela peut être un fichier bloqué ou un serveur saturé (défaut : continue)

Intéraction avec le mode compat

   libc5 sans NYS n'a pas de nss mais permet certains contrôles de stratégie. Dans /etc/passwd vous pouvez avoir des entrées sous la forme +user ou +@netgroup (inclut l'utilisateur spécifié depuis la map NIS passwd), -user ou -@netgroup (exclut l'utilisateur spécifié), et + (inclus tous les utilisateurs, excepté ceux exclus).

   Vous pouvez écraser certains champs passwd pour un utilisateur particulier depuis la map NIS passwd en utilisant la forme étendue +user :: :: :: dans /etc/passwd. Les champs non vides écrasent les informations dans la map NIS passwd. Vu que la plupart des personnes placent un + à la fin de /etc/passwd pour inclure tout le monde depuis NIS, le switch fournit une alternative plus rapide pour ce cas (passwd : files nis) qui ne requière pas le simple + dans /etc/passwd, /etc/group et /etc/shadow. Si ce n'est pas suffisant, le service compat fournit une sémantique +/- complète. Par défaut, la source nis est utilisée, mais peut être changé en spécifiant nisplus comme source pour la pseudo base de données passwd_compat, group_compat et shadow_compat. Ces pseudos bases de données sont uniquement disponibles dans la librairie GNU C.

Fichiers

   Un service nommé SERVICE est implémenté par une librairie d'objet partagée nommée libnss_SERVICE.so.X qui est dans /lib.

/etc/nsswitch.conf Fichier de configuration
/lib/libnss_compat.so.X implémente compat
/lib/libnss_db.so.X implémente db
/lib/libnss_dns.so.X implémente dns
/lib/libnss_files.so.X implémente files
/lib/libnss_hesiod.so.X implémente hesiod
/lib/libnss_nis.so.X implémente nis
/lib/libnss_nisplus.so.2 implémente nisplus

Notes

   Pour chaque processus utilisant nsswitch.conf, le fichier entier est lu une seule fois.
^
12 février 2015

htmlpdflatexmanmd




watchdog

watchdog

service watchdog

Description

   Le noyau linux peut réinitialiser le système si des problèmes sérieux sont détectés. Cela peut être implémenté via le hardware spécial watchdog, ou via un watchdog logiciel légèrement moins fiable dans le kernel. Dans tous les cas, un service doit dire au kernel que tout va bien. Si le service ne le fait plus, le système est réinitialisé.

   Watchdog est un service qui ouvre /dev/watchdog, et maintient une écriture aussi souvent que possible pour empêcher le noyau de se réinitialiser, au moins une fois par minute. Chaque écriture retarde le temps de reboot d'une minute. Au bout d'une minute d'inactivité, le système est réinitialisé. Dans le cas d'un watchdog logiciel, la capacité de rebooter le système dépend de l'état de la machines et des interruptions.

   Le service watchdog peut être stoppé sant reboot si le périphérique /dev/watchdog est fermé correctement, sauf si le kernel a été compilé avec l'option CONFIG_WATCHDOG_NOWAYOUT.

Tests

   Le service Watchdog effectue de nombreux tests pour vérifier le status du système:

- Est-ce que la table des processus est pleine?
- Y'a t'il suffisamment de mémoire vive?
- Y'a t'il suffisamment de mémoire allouable?
- Est-ce que certains fichiers sont accessibles?
- Est-ce que certains fichiers ont changés dans l'intervalle de temps donné?
- Est-ce que la charqe système est trop élevée?
- Est-ce qu'un débordement de table de fichier se produit?
- Est-ce qu'un processus fonctionne (identifié par un fichier pid)?
- Est-ce qu'une adresse IP répond aux ping?
- Est-ce que les interfaces réseaux reçoivent du trafic?
- Est-ce que la température est trop élevée?
- Exécute une commande utilisateur pour effectuer des tests arbitraires.
- Exécute une commande de test/réparation.

   Si une de ces vérifications échouent, le système s'éteind. Si un de ces tests, excepté les commandes utilisateurs, dépassent une minute, la machine est redémarrée.

OPTIONS

-v, --verbose mode verbeux
-s, --sync tente de synchroniser le système de fichier à chaque fois que le processus et réveillé.
-b, --softboot soft boot le système si une erreur se produit durant la boucle principale. par ex, si un fichier n'est pas accessible via l'appel stat(). Ne s'applique pas à /dev/watchdog et /proc/loadavg.
-F, --foreground Ne passe pas en tâche de fond
-f, --force Force l'utilisation de l'intervalle donné ou la charge moyenne maximale dans la configuration.
-c config-file, --config-file config-file Spécifie le fichier de configuration au lieu du défaut /etc/watchdog.conf
-q, --no-action Ne reboot pas et n'arrête pas la machine.

Fonctions

   Une fois watchdog démarré, il se place en tâche de fond et tente toutes les vérifications spécifiées dans sa configuration. Entre chaque test il écris dans le périphérique kernel pour empêcher un reset. Une fois tous les tests terminés, watchdog s'endors un certain temps. Le périphérique kernel s'attend à une écriture par minute pour empêcher un reset. Par défaut, watchdog est lancé toutes les secondes pour gérer le périphérique le plus tôt possible.

   Sous de forte charges système, watchdog peut avoir été swappé et peut échouer à revenir à temps. Dans ce cas le kernel va réinitialiser la machine. l'option realtime s'assure qu'il ne sera jamais swappé. Sur les systèmes n'ayant plus de mémoire vive disponible, le kernel va tenter de libérer de la mémoire en tuant des processus. watchdog est exempt de ce système.

   Watchdog tente également périodiquement de se forker lui-même pour voir si la table des processus n'est pas pleine. Ce processus va laisser un processus zombie jusqu'à ce que watchdog de réveil, c'est un fonctionnement normal.

Soft reboot

   Un soft reboot (shutdown et reboot contrôlé) est initié pour toute erreur qui est trouvée. Vu qu'il peut ne plus y avoir d'autres processus disponible, watchdog fait tout par lui-même. Cela signifie:

1. Tuer tous les processus avec un SIGTERM
2. Tuer tous les processus restant avec un SIGKILL
3. Enregistre un shutdown dans wtmp
4. Sauve la valeur aléatoire de /dev/urandom si possible
5. Désactive l'accounting
6. Désactive les quota et le swap
7. Démonte toutes les partitions sauf /
8. Remonte root en lecture-seule
9. Éteins toutes les interfaces réseaux
10. Reboot

Binaire de vérification

   Si le code de retour du binaire de vérification n'est pas 0, watchdog assume une erreur et reboot le système. Les valeurs de retour suivants ont une signification particulière:

255 Reboot le système.
254 Réinitialise le système
253 Surcharge système
252 Température trop élevée
251 /proc/loadavg ne contient pas de données ( ou trop peu)
250 Le fichier donné n'a pas été changé dans l'intervalle donné
249 /proc/meminfo contient des données invalides
248 Processus enfant tué par un signal
247 Processus enfant n'a pas retourné dans le temps impartis
246 libre pour une utilisation spécifique
245 Réservé pour un résultat inconnu.

Binaire repair

   Le binaire repair est lancé avec un paramètre: le numéro d'erreur qui a causé watchdog d'initier le processus de boot. Après avoir tenté de réparer le système le binaire devrait quitter avec le code 0 si le système à été réparé avec succès, sinon watchdog reboot. Le code de retour devrait être le code d'erreur qui cause watchdog a rebooter.

Répertoire test

   Les exécutables dans le répertoire de test sont découverts par watchdog au démarrage et sont automatiquement exécutés. Ces exécutables sont appelé soit avec "test" comme premier argument ( si un test est effectué ), ou "repair" (si une réparation pour un test précédent doit être effectué). Si une opération de test échoue, le même exécutable est appelé avec l'argument repair avec le code de retour de l'opération précédente en tant que second argument.

Fichiers

/etc/watchdog.conf Fichier de configuration de watchdog
/etc/watchdog.d répertoire contenant les commandes test ou repair.
^
12 février 2015

htmlpdflatexmanmd




watchdog.conf

watchdog.conf

fichier de configuration pour le service watchdog

OPTIONS

interval = ‹interval› Définis l'interval le plus grand possible entre 2 écritures dans le périphériques watchdog. Le périphérique est piloté après chaque vérification sans regarder le temps qu'il a mis. Défaut: 1 seconde. Le pilote attend une écriture par minute, sinon le système est redémarré. Pour un intervalle supérieur à 1 minute, utiliser l'option -f
logtick = ‹logtick› Si les logs verbeux sont activés, un message est écris dans le syslog ou un fichier de log. Il n'est pas nécessaire d'avoir un message toutes les 10 secondes. logtick ajuste l'interval entre 2 messages.
max-load-1 = ‹load1› Définis la charge maximale permise pour 1 minute. Une fois cette charge atteinte le système est redémarré. Défaut: 0 (désactivé)
max-load-5 = ‹load5› Définis la charge maximale permise pour 5 minutes. Une fois cette charge atteinte le système est redémarré. Défaut: 3/4*max-load-1.
max-load-15 = ‹load15› Définis la charge maximale permise pour 15 minutes. Une fois cette charge atteinte le système est redémarré. Défaut: 1/2*max-load-1.
min-memory = ‹minpage› définis la quantité maximale de mémoire virtuelle qui doit rester libre, en pages. Défaut: 0
allocatable-memory = ‹minpage› Définis la quantité maximale de mémoire allouable libre dans le système, en pages. Défaut: 0
max-temperature = ‹temp› Température maximale permise. Défaut: 120. Watchdog emet une alerte une fois que la température atteins 90%, 95% et 98%.
watchdog-device = ‹device› Nom du périphérique watchdog.
watchdog-timeout = ‹timeout› timeout du périphérique watchdog au démarrage.
temperature-device = ‹temp-dev› Nom du périphérique de température.
file = ‹filename› Définis le nom du fichier pour le mode fichier. Peut être spécifié plusieurs fois.
change = ‹mtime› définis l'intervalle de temps de changement pour le mode fichier. Cette options appartient toujours au fichier actif. On ne peut pas spécifier de ligne change = avant une ligne file =.
pidfile = ‹pidfilename› fichier pid pour le mode de test serveur. Peut être spécifié plusieurs fois.
ping = ‹ip-addr› Adresse IP pour le mode ping. Peut être spécifié plusieurs fois
interface = ‹if-name› Interface réseaux pour le mode réseaux. Peut être spécifié plusieurs fois
test-binary = ‹testbin› Exécute le binaire donné pour certains tests utilisateurs
test-timeout = ‹timeout in seconds› timeout pour les tests utilisateurs
repair-binary = ‹repbin› Exécute le binaire en cas de problème au lieu d'éteindre le système
repair-timeout = ‹timeout in seconds› La commande repair peut seulement durer le temps spécifié (0 pour illimité)
admin = ‹mail-address› Adresse email pour envoyer un mail.
realtime = ‹yes|no› Block watchdog en ram, donc il n'est jamais swappé
priority = ‹schedule priority› priorité pour le mode temps réel
test-directory = ‹test directory› Définis le répertoire où lancer les scripts utilisateurs/repair. Défaut: /etc/watchdog.d.
log-dir = ‹log directory› Répertoire de log pour les binaire repair et test. Défaut: /var/log/watchdog.
^
12 février 2015

htmlpdflatexmanmd




wd_identify

wd_identify

Service watchdog logiciel simplifié

Description

   Cet utilitaire ouvre /dev/watchdog et récupère la chaîne identifiant du watchdog qui est affiché. Le périphérique est ensuite fermé. Cet utilitaire peut seulement être utilisé sans causer de reboot si le kernel est compilé avec CONFIG_WATCHDOG_NOWAYOUT.

OPTIONS

-c config-file, --config-file config-file Fichier de configuration
^
12 février 2015

htmlpdflatexmanmd




wd_keepalive

wd_keepalive

Service watchdog logiciel simplifié

Description

   Version simplifié de watchdog. Il est configuré pour qu'il ouvre simplement /dev/watchdog, et continue d'écrire dedans suffisamment souvent pour que le système ne redémarre pas. Sous de hautes charges, ce service peut être swappé et échouer à revenir à temps, s'assurer pour cela que la variable realtime est définie.

OPTIONS

-c config-file, --config-file config-file Fichier de configuration
^
25 octobre 2016

htmlpdflatexmanmd




ar

ar

Créer, modifier, et extraire des archives

   Le contenu original, les permissions, dates, propriétaire et groupe sont préservés dans l'archive, et peuvent être restaurés à l'extraction.

OPTIONS

d Supprimer des modules de l'archive. avec v, ar liste chaque module supprimé
m Déplacer des membres dans une archive
p Affiche les membres spécifiés de l'archive. Avec v, affiche le nom du membre en copiant son contenu sur stdout
q Ajoute les membres à la fin de l'archive, sans vérifier le remplacement.
r Insert les fichiers dans l'archive. Les membres précedemment existants sont supprimés si leur nom correspond.
s Ajoute un index à l'archive, ou met à jours un index existant.
t Affiche un tableau du contenu de l'archive.
x Extrait des membres de l'archive
p Affiche les membres spécifiés de l'archive. avec v, affiche le nom du membre en copiant son contenu sur stdout. Un modifier peut être spécifié après cette option:

        a Ajoute les nouveaux fichiers après un membre existant dans l'archive
        b Ajoute les nouveaux fichiers avant un membre existant dans l'archive
        c Créer l'archive si elle n'existe pas
        D Opère en mode déterministique. En ajoutant les fichiers et l'index d'archive, utilise 0 pour les UID, GID, timestamps et utilise des permissions consistantes pour tous les fichiers.
        f Tronque les noms dans l'archive.
        i Insert les nouveaux fichiers avant un membre existant dans l'archive.
        N Utilise le paramètre count, utilisé s'il y a plusieurs entrées dans l'archive avec le même nom.
        o Préserve les dates originales lors de l'extraction
        P Utilise le chemin complet pour la correspondance des noms dans l'archive
        s Écrit un index d'objet dans l'archive, ou met à jours un index existant même si aucun changement n'est fait dans l'archive.
        S Ne pas générer de table de symboles.
        T Rend l'archive spécifié légère. Permet d'insérer seulement les fichiers listés qui sont plus récents que des membres existants.
        U Ne pas opérer en mode déterministique. Inverse de D. Mode par défaut
        v Affiche des informations additionnelles sur les opérations.
        V Affiche le numéro de version de ar

--plugin charge le plugin spécifié pour ajouter le support pour d'autres formats de fichier.
--target spécifie que les membres de l'archive sont dans un format de code objet différent du format par défaut du système.
@file Lit les options de ligne de commande depuis le fichier spécifié Le fichier lui-même peut contenir des options @file additionnels.
^
14 juillet 2010

htmlpdflatexmanmd




arch

arch

Afficher le nom hardware de la machine

   arch affiche le nom hardware de la machine, est équivalent à uname -m

^
12 janvier 2012

htmlpdflatexmanmd




awk

awk, mawk, nawk

Interpréteur de langage AWK

   awk est un interpréteur pour le langage de programmation awk. Ce langage est utile pour manipuler des fichiers de données, traitement et recherche de texte, et pour prototyper et expérimenter des algorithmes.

  Un programme awk est une séquence de paires pattern action et de définitions de fonction. Les programmes cour sont entrés sur la ligne de commande entre ' ' pour éviter une interprétation par le shell. Les programmes plus longs peuvent être lus depuis un fichier. Les données sont lues depuis une liste de fichiers sur la ligne de commande ou depuis l'entrée standard quand la liste est vide. L'entrée est scindée en enregistrements comme déterminé par la variable de séparation d'enregistrement, RS. Initialement, RS = "\n". Chaque enregistrement est comparé avec chaque motif et s'il y'a correspondance, l'action est exécutée.

OPTIONS

-F value Définis le séparateur de champ, FS
-f file Lit depuis le fichier au lieu de la ligne de commande. Peut-être spécifié plusieurs fois.
-v var=value Assigne une valeur à une variable
-- Indique la fin des options de manière non-ambiguë
mawk fournis:
-W version Version de mawk puis quitte
-W dump Écrit en listing style assembleur la représentation interne du programme sur stdout puis quitte.
-W interactive Définis les écritures sans mise en tampon sur stdout et les lignes mise en tampon lues depuis stdin. Les enregistrements depuis stdin sont lus sans regarder RS.
-W exec file Le programme est lu depuis le fichier.
-W sprintf=num Ajuste la taille du tampon sprintf de mawk au nombre d'octets spécifiés.
-W posix_space force mawk à ne pas considérer '\n' comme étant un espace.

Le langage AWK

   Un programme awk est une séquence de paires motif action et de définitions de fonctions.

        Un motif peut être
        BEGIN
        END
        expression
        expression, expression

   motif ou action peut être omis (mais pas les 2). Si action est omis, il est implicitement print. Si le motif est omis, il est simplement matché. BEGIN et END nécessitent une action.

  Les déclarations sont terminées par une nouvelle ligne, ';' ou les deux. Les groupes de déclarations tels que les actions ou les boucles sont délimité par , comme en C. La dernière déclaration dans un block ne nécessite pas de terminaison. Les lignes blanches ne signifient rien; une déclaration vide est terminée par un ';'. Les déclarations longues peuvent continuer sur une ou plusieurs lignes avec \. Une déclaration peut être scindée sans un \ après un ',', [, &&, ||, do, else, la parenthèse droite d'un if, while ou for, ou d'une définition de fonction. Un commentaire commence avec # et s'étend jusqu'à la fin de la ligne.

Les déclarations suivantes contrôlent le flux d'un programme dans les blocks:
if ( expr ) statement
if ( expr ) statement else statement
while ( expr ) statement
do statement while ( expr )
for ( opt_expr ; opt_expr ; opt_expr ) statement
for ( var in array ) statement
continue
break

Types de données, conversions et comparaisons

   Il y'a 2 types de données de bases, les chaînes et les nombres. Les constantes numériques peuvent être entier, décimal, ou en notation scientifique. Tous les nombres sont représentés en interne et tous sont calculés en virgule flottante. Donc 0.2e2 == 20 est vrai, et true vaut 1.0

  Les chaînes sont placées entre guillemets. Elles peuvent être continuées sur une nouvelle ligne en échappant newline. Les caractères échappés suivant sont reconnus:

        \\ \
        \" "
        \a alert, ascii 7
        \b backspace, ascii 8
        \t tab, ascii 9
        \n newline, ascii 10
        \v vertical tab, ascii 11
        \f formfeed, ascii 13
        \r carriage return, ascii 13
        \ddd 1, 2, ou 3 chiffre octal pour le code ascii
        \xhh 1 ou 2 chiffres hexa pour le code ascii

   Il y'a réellement 3 types de données; le troisième est de type "nombre et chaîne" qui a des données numériques et des chaînes en même temps. Les variables utilisateur, lorsqu'elles sont créées, sont initialisées à null, un nombre ou une chaîne qui vaut 0 ou "".

Le type d'une expression est déterminé par son contexte et une conversion de type se produit. Par exemple, pour évaluer:
y = x + 2 ; z = x "hello"

   y est de type numérique. Si x est une chaîne, elle est convertie en numérique avant le calcul. z sera de type chaîne, et la valeur de x sera convertie en chaîne si nécessaire et concaténé avec "hello". Une chaîne est convertie en numérique en utilisant le plus long préfixe numérique comme avec atof(3). Une expression numérique est convertie en chaîne en remplaçant expr avec sprintf(CONVFMT, expr), sauf si expr peut être représentée sur une machine comme un entier exact, alors il est convertit en sprintf("%d", expr). sprintf est embarqué dans awk et duplique la fonction fprints(3), et CONVFMT est une variable intégrée utilisée pour les conversions interne des nombres en chaîne et initialisé à "%.6g". Les conversions peuvent être forcées, expr "" est une chaîne et expr+0 est numérique.

   Pour évaluer, expr1 rel-op expr2, s'ils sont de type numérique ou un nombre et une chaine, la conversion est numérique; s'ils sont de type chaîne la comparaison est de type chaine; si un opérande est de type chaîne, l'opérande non-chaîne est converti et la comparaison est de type chaîne. Le résultat numérique est 1 ou 0.

  En booléen, tel que if ( expr ) statement, une expression chaîne est vrai si et seulement si elle n'est pas vide; une valeur numérique si et seulement si elle ne vaut pas 0.

Expressions régulières

   Dans le langage awk, les enregistrements, champs et chaînes sont souvent testés avec des expressions régulières. Elles sont délimitées par des "/"

  expr /r/

  Cette expression évalue à 1 si expr matche r, qui signifie qu'une sous-chaîne de expr est dans le jeu de chaîne définie par r.

  /r/ action et $0 /r/ action

  Sont identiques, et pour chaque enregistrement en entrée qui match r, action est exécuté. en fait, /r/ est une expression régulière awk qui est équivalent à ( $0 /r/ ).

  awk utilise des expressions régulières étendues comme avec egrep. Les méta caractères, par exemple, ceux qui ont une signification spéciale dans les expressions régulières sont: ^ $ . [ ] | ( ) * + ?

   Les expressions régulières sont construites comme suit:

        c match le non méta caractères
        \c match un caractère définis par la même séquence échappée utilisée dans les constantes chaînes ou le caractère littéral c if \c n'est pas une séquence échappée.
        . Mach n'importe quel caractère (incluant newline)
        ^ Match le début d'une chaîne
        $ Match la fin d'une chaîne
        [c1c2c3...] Match un caractère dans la classe c1c2c3... un intervalle de caractères est noté c1-c2.
        [^c1c2c3...] Match tout caractère non listé dans la classe

   Les expressions régulières sont construites depuis d'autres expressions régulières comme suit:

        r1r2 Match r1 suivi immédiatement par r2 (concaténation)
        r1 | r2 Match r1 ou r2 (alternation)
        regen Match r répété 0 ou plusieurs fois
        r+ Match r répété une ou plusieurs fois
        r? Match r 0 ou une fois
        (r) Match r, fournissant un groupage

   La précédence des opérateurs est: *, +, ?

Exemple

/^[_a-zA-Z][_a-zA-Z0-9]*$/ et /^[-+] ?([0-9]+\. ?|\.[0-9])[0-9]*([eE][-+] ?[0-9]+) ?$/
Sont matchés par les identifiants awk et les constantes numériques awk, respectivement. Noter que "." doit être échappé pour être reconnu comme point décimal, et que les méta caractères ne sont pas spéciaux dans les classes de caractères
BEGIN identifier = "[_a-zA-Z][_a-zA-Z0-9]*"
$0 "^" identifier
Affiche toutes les lignes qui commencent avec un identifier awk.
mawk reconnait l'expression régulière vide //, qui match la chaîne vide et est matché par une chaîne avant, après et entre chaque caractère. Par exemple
echo abc | mawk ' gsub(//, "X") ; print '
XaXbXcX

Enregistrement et champs

   Les enregistrements sont lus en une fois, et stockés dans la variable $0. L'enregistrement est splité en champs qui sont stockés dans $1, $2, ..., NF. La variable NF contient le nombre de champs et NR et FNR sont incrémentés de 1. Les champs derrière $NF sont mis à "".

  Assigner $0 recalcule les champs et NF. Assigner NF ou un champ reconstruit $0 en concaténant le $i séparé par OFS. Assigner un champ avec un index plus grand que NF augmente NF et reconstruit $0.

  Les données en entrée stockés dans les champs est de type chaîne, à moins que tout le champ est sous la forme numérique, le champ est alors de type chaîne et nombre. Par exemple:

echo 24 24E | mawk ' print($1 › 100, $1›"100", $2 › 100, $2›"100") '
0 1 1 1

Expressions et opérateurs

   La syntaxe est similaire au C. Les expressions primaires sont des constantes numériques, variables, champs, tableaux et des appels de fonction. L'identifiant pour une variable, tableau ou fonction peut être une séquence de lettres, chiffres et '_', qui ne commencent pas avec un chiffre. Les variables ne sont pas déclarées; elles existent quand elles sont référencées la première fois et sont initialisées à NULL.

  Les nouvelles expressions sont composées avec les opérateurs suivant par ordre de priorité croissant:

Assignement = += -= *= /= %= ^=
Conditionnel ? :
Ou logique ||
Et logique $$
Array membership in
Matching !
Relationnel ‹ › ‹= ›= == !=
Concaténation (pas d’opérateur explicite)
Ajout + -
Multiplication * / %
Unaire + -
Non logique !
Exponentiel ^
Incrément et décrément ++ —
Champ $

Tableaux

   awk fournis des tableaux à une dimension. Les éléments de tableau sont exprimé comme array[expr]. expr est convertit en interne en type chaîne, donc A[1] et A["1"] sont identique et l'index est "1". Les tableaux indexés par chaîne sont appelés des tableaux associatifs. Un tableau initialisé est vide; les éléments existent au premier accès. Une expression dans un tableau vaut 1 si array[expr] existe, sinon vaut 0.

Il y'a une forme de for qui boucle chaque index d'un tableau:
for ( var in array ) statement

   Définis var à chaque index de array et exécute statement. L'ordre dans lequel var traverse les indices n'est pas définis.

  La déclaration delete array[expr], cause array[expr] de ne pas exister. mawk supporte une extension, delete array, qui supprime tous les éléments d'un tableau.

  Les tableaux multi-dimensionnels sont synthétisés avec concaténation en utilisant la variable intégrée SUBSEP. array[expr1,expr2] est équivalent à array[expr1 SUBSEP expr2].

Tester des éléments multi-dimensionnels utilise un index en parenthèse, tel que:
if ( (i, j) in A ) print A[i, j]

Variables intégrées

   Les variables suivantes sont intégrées et initialisées avant l'exécution du programme.

ARGC Nombre d’arguments sur la ligne de commande
ARGV Tableau des arguments sur la ligne de commande, 0..ARGC-1
CONVFMT Format pour la conversion interne des nombres, chaînes, initialisé à "%.6g"
ENVIRON Tableau indexé par variable d’environnement. Une chaine d’environnement, var=value est stockée comme ENVIRON[var] = value
FILENAME nom du fichier d’entrée
FNR Nombre d’enregistrements dans FILENAME
FS Split les enregistrements dans des champs en tant qu’expression régulière
NF Nombre de champs dans l’enregistrement courant
NR Nombre d’enregistrement courant total dans le flux d’entrée
OFMT Format pour afficher les nombres; initialisé à "%.6g"
OFS Séparateur de champs en sortie, initialisé à " "
ORS Termine chaque enregistrement en sortie, initialisé à "\n"
RLENGTH Longueur définis par le dernier appel de la fonction intégrée match()
RS Séparateur d’enregistrement en entrée, initialisé à "\n"
RSTART Index définis par le dernier appel à match()
SUBSET Utilisé pour construire des tableaux multiples, initialisé à "\034"

Fonctions de chaînes intégrées

gsub(r,s,t) gsub(r,s) Substitutions globale, chaque match avec l’expression régulière r dans la variable t est remplacée par la chaîne s. Le nombre de remplacement est retourné. Si t est omis, $0 est utilisé. un & dans s est remplacé par la sous-chaîne matché de t.
index(s,t) Si t est une sous-chaine de s, la position où t comment est retournée, sinon 0.
length(s) Retourne la longueur de s
match(s,r) Retourne l’index du plus long match de r dans s. sans match, retourne 0. RSTART contient la valeur de retour, RLENGTH la longueur du match ou 61 si aucun match. si une chaîne vide match, RLENGTH vaut 0 et 1 est retourné sur le match est au début, et length(s)+1 si le match est à la fin.
split(s,A,r) split(s,A) s est splitté en champs par r et les champs sont chargés dans le tableau A. Le nombre de champs est retourné. si r est omis, FS est utilisé.
sprintf(format, expr-list) Retourne un chaîne construite depuis expr-list en accord avec format.
sub(r,s,t) sub(r,s) Simple substitution, identique à gsub except au moins une substitution.
substring(s,i) substr(s,i) Retourne le sous-chaîne de s, commençant à l’index i de longueur n. Si n est omis, le suffix de s, commençant à i est retourné.
tolower(s) retourne s en minuscule
toupper(s) retourne s en majuscule

Fonctions arithmétiques intégrées

atan2(y,x) arctan de y/y entre -pi et pi
cos(x) Cosinus, x en radian
exp(x) Fonction exponentielle
int(x) Retourne x tronqué à 0
log(x) Logarithme naturel
rand(x) Retourne un nombre aléatoire entre 0 et 1
sin(x) fonction sinus, x en radian
sqrt(x) Retourne la racine carré de x
srand(expr) srand() Générateur de nombre aléatoire, utilisant l’horloge si expr est omis, et retourne la valeur. mawk génère un nombre aléatoire depuis l’horloge au démarrage donc il n’y a pas de réel besoin de srand(). srand(expr) est utile pour répéter des séquences pseudo-aléatoires.

Entrée et Sortie

   Il y'a 2 déclarations de sortie, print et printf.

print expr1, expr2, ..., exprn Écrit $0 ORS sur la sortie standard, les expressions numériques sont converties en chaîne avec OFMT.
printf format, expr-list Duplique la fonction C printf. Toutes les spécifications sont reconnues avec les conversions %c, %d, %e, %E, %f, %g, %G, %i, %o, %s, %u, %x, %X et %%, et les qualifieur de conversion h et l.

   La liste des arguments de print et printf peuvent optionnellement être entre parenthèses. Les nombres sont affichés en utilisant OFMT ou "%u" pour les entiers exacts. %c avec un argument numérique affiche le caractère 8-bits correspondant. Avec un argument chaîne, affiche le premier caractère de la chaîne. La sortie de print et printf peuvent être redirigés avec ou ›› vers un fichier ou | vers une commande à la fin de la déclaration print. Les redirections accolées sont toujours de type flux ouvert. Par convention mawk associe le nom du fichier /dev/stderr avec stderr. mawk associe également "-" et /dev/sdtout avec stdin et stdout qui permet à ces flux d’être passés en fonctions.

  La fonction d’entrée getline a les variations suivantes:

getline Lit dans $0, met à jours les champs, NF, NR et FNR.
getline ‹ file Lit dans $0 depuis file, met à jours les champs et NF.
getline var Lit l’enregistrement suivant dans var, met à jours NR et FNR.
getline var ‹ file Lit le prochain enregistrement de file dans var
command | getline Pipe un enregistrement depuis command dans $0 et met à jours les champs et NF
command | getline var Pipe un enregistrement depuis command dans var
getline retourne 0 sur end-of-file, -1 sur erreur, sinon 1.

   La fonction close(expr) ferme le fichier ou le pipe associé avec expr. close retourne 0 si expr est un fichier ouvert ou une commande en pipe, -1 sinon. close est utilisé pour relire un fichier ou une commande.

  La fonction fflush(expr) vide le fichier de sortie ou le pipe associé avec expr. fflush retourne 0 si expr est un flux de sortie ouvert, sinon -1. fflush sans argument vide stdout. fflush avec un argument vide ("") vide toutes les sorties ouvertes.

  system(expr) utilise /bin/sh pour exécuter expr et retourner le code de sortie de la commande expr. Les changements sont fait dans le tableau ENVIRON ne sont pas passé à la commande exécutée avec system ou les pipes.

Fonctions utilisateurs

La syntaxe pour une fonction utilisateur est la suivante
function name( args ) statements
Le corps de la fonction peut contenir une déclaration de retour
return opt_expr
Une déclaration de retour n’est pas requise. Les appels de fonction peuvent être imbriqués ou récursifs. Les fonctions sont passées en expressions par valeur et les tableaux par référence. Les arguments supplémentaires servent de variables locales et sont initialisés à null. Par exemple,
csplit(s,A)
place chaque caractère de s dans le tableau A et retourne la longueur de s


function csplit(s, A, n, i)
    
    n = length(s)
    for( i = 1 ; i ‹= n ; i++ ) A[i] = substr(s, i, 1)
    return n

   Placer des espaces supplémentaires entre les arguments passés et les variables locales est conventionnel. Les fonctions peuvent être référencés avant qu’elles soient définies, mais le nom de la fonction et le ’(’ des arguments doivent se toucher pour éviter les confusions avec les concaténations.

Splittes les chaînes, enregistrements et fichiers

   awk utilise le même algorithme pour splitter les chaînes dans les tableaux avec split(), et les enregistrements dans les champs dans FS. mawk utilise essentiellement le même algorithme pour splitter les fichiers en enregistrement dans RS. split(expr,A,sep) fonctionne comme suit:

(1) si sep est omis, il est remplacé par FS. sep peut être une expressions régulière ou une expressions. Si c’est une expression de type non-chaîne, il est convertit en chaîne.
(2) si sep = " " (un simple espace), alors il est recherché du début à la fin de expr, et sep devient "". mawk définie en tant qu’expression régulière /[ \t\n]+/. Sinon sep est traité comme expression régulière, excepté que les méta-caractères sont ignorés pour les chaînes de longueur 1, par exemple, split(x, A, "µ") et split(x, A, /\*/) sont équivalents.
(3) Si expr n’est pas une chaîne, il est convertit en chaîne. si expr vaut "", split() retourne 0 et 1 est vide. Sinon, les matches de sep dans expr, sépare expr dans des champs qui sont stockés dans A et split() retourne le nombre de champs dans A.

   Splitter les enregistrements en champs fonctionne de la même manière excepté que les pièces sont chargées dans $1, $2, ..., $NF. Si $0 est vide, NF vaut 0 et tous les $i sont à "".

  mawk split les fichiers en enregistrements par le même algorithme, mais à la différence que RS est réellement un terminateur au lieu d’un séparateur.

  exemple, si FS = " :+" et $0 = "a ::b :" , alors NF = 3 et $1 = "a", $2 = "b" et $3 = "", mis si "a ::b :" est le contenu d’un fichier d’entrée et RS = " :+", alors il y’a 2 enregistrements "a" et "b".

  RS = " " n’est pas spécial

  si FS = "", mawk casse l’enregistrement en caractères individuels, et, similairement, split(s,A,"") place les caractères individuels de s dans A.

Enregistrements multi-lignes

   Vu que mawk interprète RS comme expression régulière, les enregistrements multi-ligne sont facile. Définir RS = "\n\n+", créé une ou plusieurs lignes blanches pour séparer les enregistrements. Si FS = " " (le défaut), alors un simple newline, via les règles plus haut, devient un espace et les simples newline sont des séparateurs de champs.

  Par exemple, si un fichier est "a b\nc\n\n", RS = "\n\n+" et FS = " ", alors il y’a un enregistrement "a b\nc" avec 3 champs "a", "b" et "c", changer FS = "\n", donne 2 champs "a b" et "c". Changer FS = "", donne un champ identique à l’enregistrement.

   Si vous voulez que les lignes avec des espaces ou tabulation soient considérés blanc, définir RS = "\n([ \t]*\n)+". Pour la compatibilité avec d’autres awk, définir RS = "" a le même effet que si les lignes blanches sont enlevées du début à la fin des fichiers et les enregistrements sont déterminé comme si RS = "\n\n+". Posix nécessite que "\n" sépare toujours les enregistrements quand RS = "" sans regarder la valeur de FS. mawk ne supporte pas cette convention, parce que définir "\n" n’est pas nécessaire.

  La plupart du temps quand vous changez RS pour les enregistrements multi-ligne, vous voulez également changer ORS à "\n\n" pour que l’espacement des enregistrements soit préservé en sortie.

Exécution de programme

   Cette section décrit l’ordre d’exécution des programmes. D’abord ARGC est définit au nombre total d’arguments passé sur la ligne de commande. ARGV[0] a le nom de l’interpréteur awk et ARGV[1] ... ARGV[ARGC-1] contiennent les arguments de la ligne de commande.

Par exemple avec
mawk -f prog v=1 A t=hello B
ARGC = 5
avec
ARGV[0] = "mawk", ARGV[1] = "v=1", ARGV[2] = "A", ARGV[3] = "t=hello" et ARGV[4] = "B".

   Ensuite, chaque block BEGIN est exécuté dans l’ordre. Si le programme consiste entièrement de blocks BEGINS, alors l’exécution se termine, sinon un flux d’entrée est ouvert et l’exécution continue. Si ARGC vaut 1, le flux d’entrée et mis à stdin, sinon les arguments de la ligne de commande sont examinés à la recherche d’un fichier.

   Les arguments se divisent en 3 ensembles: fichiers, arguments et chaînes vide "". Un assignement a le format var=string. Quand ARGV[1] est examiné comme un argument fichier possible, s’il est vide, il est ignoré ; si c’est un assignement, l’assignement à var est fait et i saute au suivant; sinon ARGV[i] est ouvert en entrée. S’il échoue à l’ouverture, l’exécution se termine avec le code d’erreur 2. Sans argument fichier, l’entrée devient stdin. getline dans une action BEGIN ouvre l’entrée. "-" comme argument fichier dénote stdin.

   Une fois un flux d’entrée ouvert, chaque enregistrement entrant est testé avec chaque pattern, et si çà matche, l’action associée est exécutée. Une expression mach si elle vaut true. Un BEGIN match avant qu’une entrée soit lue, et un END match après que toutes les entrées aient été lues. Une plage de motif, expr1,expr2, match chaque enregistrement entre le match de expr1 et le match de expr2, inclus.

   Quand la fin d’un fichier sur produit sur un flux d’entrée, les arguments restants sur la ligne de commande sont examinés à la recherche d’un fichier, et s’il y’en a un, il est ouvert, sinon le pattern END est considéré matché et toutes les actions END sont exécutées.

   Dans l’exemple, l’assignement v=1 prend place après que BEGIN ait été exécutée, et la donnée placée dans v est de type nombre et chaîne. L’entrée est ainsi lue depuis le fichier A. à la fin du fichier A, t est définis à "hello", et B est ouvert en entrée. À la fin du fichier B, les actions END sont exécutées. Le flux de programme au niveau pattern action peut être changé avec:

next Le prochain enregistrement en entrée est lu et le motif est testé pour redémarrer avec le premier pattern action
exit opt_expr Force l’exécution immédiate des actions END ou la fin du programme s’il n’y en a pas ou si exit se produit à la fin d’une action END. opt_expr définie la valeur de sortie.

Exemples

Émuler cat
print

Émuler wc
chars += length($0) +1
words += NF
END print NR, words, chars

Compter le nombre de mots uniques
BEGIN FS = "[^A-Za-z]+"
    for(i = 1 ; i ‹= NF ; i++) word[$i] = ""
END delete word[""]
    for ( i in word ) cnt++
    print cnt

Ajoute le second champs de tous les enregistrements basés sur le premier champ
$1 /credit|gain/ sum += $2
$1 /debit|loss/ sum -= $2

Trie un fichier, comparer les chaînes :
line[NR] = $0 ""
END isort(line, NR)
    for(i = 1 ; i ‹= NR ; i++) print line[i]
    
function isort( A, n, i, j, hold)
    for( i = 2 ; i ‹= n ; i++)
    hold = A[j = i]
    while ( A[j-1] › hold )
        j— ; A[j+1 = A[j]
    A[j] = hold

Problèmes de compatibilité

   nawk apporte ces extensions:

nouvelles fonctions: toupper() et tolower()
nouvelles variables: ENVIRON[] et CONVFMT
Spécifications de conversion ANSI C pour printf() et sprintf()
Options de ligne de commande: -v var=value, plusieurs fois -f et l’implémentation des options en tant qu’argument de -W.

   Posix AWK est orienté pour opérer sur les fichiers une ligne à la fois. RS peut être changé de "\n" à un autre caractère, mais c’est difficile de trouver une utilisation pour ça. Par convention, RS = "", créé une ou plusieurs lignes blanches séparant les enregistrements, permettant les enregistrements multi-lignes. Quand RS = "", "\n" est toujours un champ séparateur sans regarder FS.

   mawk permet à RS d’être une expression régulière. Quand "\n" apparait dans l’enregistrement, il est traité comme espace, et FS détermine toujours les champs.

Supprimer la ligne à un certain moment peut simplifier les programmes et peut souvent améliorer les performances. Par exemple, en réécrivant les 3 exemples plus haut:
BEGIN RS = "[^A-Za-z]+"
word[ $0 ] = ""
END delete word[ "" ]
    for(i in word ) cnt++
    print cnt

   Compte le nombre de mots uniques en faisant de chaque mot un enregistrement. Sur des fichiers de taille modérée, mawk s’exécute 2 fois plus vite.

Le programme suivant remplace chaque commentaire par un simple espace dans un fichier C
BEGIN
    RS = "/\*([^*]|\*+[^/*])*\*+/"
    ORS = " "
    getline hold
    
        print hold ; hold = $0
    END printf "%s" , hold

avec mawk, les déclarations suivantes sont équivalentes: x /a\+b/ x "a\+b" x "a\\+b"

   Les chaînes sont scanées 2 fois, une fois en tant que chaîne, et une fois en tant qu’expression régulière. Au premier scan, mawk ignore les caractères d’échappement alors que awk reconnait \c.

  Posix awk ne reconnait pas "/dev/stdout,err" ou la séquence hexa \x dans les chaînes. À la différence de l’ANSI C, mawk limite le nombre de chiffres qui suivent \x de 2 vu que l’implémentation actuelle supporte uniquement les caractères 8 bits.
^
05 juin 2010

htmlpdflatexmanmd




base64

base64

base64 transforme des données en entrées sous une forme encodée en base 64. Cette forme utilise les caractères ASCII pour représenter les données binaires. L'encodage base64 étend les données d'environ 133% de l'original

OPTIONS

-w COLS, --wrap=COLS scinde les données en lignes de COLS caractères. défaut : 76 caractères.
-d, --decode Change le mode opératoire. l'entrée est supposé être en base64 et la sortie les données originales.
-i, --ignore-garbage durant le décodage, les newlines sont toujours acceptées. cette options ignore les octets non-reconnus, pour permettre à des données distordues d'être décodées.
^
07 juillet 2010

htmlpdflatexmanmd




basename

basename

Supprime la partie répertoire du nom spécifié

   Si un suffix est spécifié et est identique à la fin du nom, il est supprimé du nom. Note que les slashs sont supprimés automatique par basename. Ensemble, basename et dirname sont conçus de telle manière que si ls "$name" réussit, alors cd "$(dirname "$name")" ; ls "$(basename "$name")" réussira également.

Exemples

Affiche sort:
basename /usr/bin/sort
Affiche stdio:
basename include/stdio.h .h
^
05 juin 2010

htmlpdflatexmanmd




cat

cat

Copie chaque fichier ou l'entrée standard et l'envoi sur la sortie

OPTIONS

-A, --show-all Equivalent à -vET
-b, --number-nonblank Numérote toutes les lignes non-vides en sortie, commençant à 1.
-e  Équivalent à -vE
-E, --show-ends Affiche un $ à chaque fin de ligne
-n, --number Numérote toutes les lignes, commençant à 1
-s, --sqeeze-blank Réduire les multiples lignes vide consecutives en une seule.
-t Equivalent à -vT
-T --show-tabs Affiche les caractères TAB sous la forme '^I'
-u Ignoré, pour la compatibilité POSIX
-v, --show-non-printing Affiche les caractères de contrôle excepté pour LFD et TAB en utilisant la notation '^' suivi et précède les caractères qui ont le bit haut avec 'M-'

   Sur des systèmes comme MS-DOS qui distinguent les fichiers texte des fichiers binaire, cat lit et écrire normalement en mode binaire. Cat peut s'exécuter en mode texte si une des option 'bensAE' est utilisé ou si la sortie standard est un terminal.

Exemples

Sort le contenu de f, puis l'entrée standard, puis le contenu de g
cat f - g
copie l'entrée standard sur la sortie standard
cat
Quitter ou poursuivre
ctrl+d
enregistrer l'entrée standard dans un fichier
cat › fichier
ajouter un enregistrement dns
cat ›› /etc/bind/bind.zone
^
14 juillet 2010

htmlpdflatexmanmd




chcon

chcon

Change le contexte de récurité SELinux des fichiers spécifiés

OPTIONS

-h, --no-dereference affecte les liens symboliques au lieu des fichiers référencés
--reference=RFILE utilise le context de sécurité de RFILE au lieu de spécifier un contexte.
-R, --recursive Opère sur les fichiers et les répertoires récursivement.
-H si -R est spécifié et qu'un argument de la ligne de commande est un lien symbolique vers un répertoire, le traverse.
-L en mode récursif, traverse tous les liens symboliqes vers un répertoire.
-P Ne traverse aucun lien symbolique. mode par défaut.
-v, --verbose Affiche un diagnostique pour chaque fichier traité.
-u USER, --user=USER Définis l'utilisateur dans le contexte de sécurité cible.
-r ROLE, --role=ROLE Définis le role dans le contexte de sécurité cible
-t TYPE, --type=TYPE Définis le type dans le contexte de sécurité cible
-l RANGE, --range=RANGE Définit la plage dans le contexte de sécurité cible
^
03 juillet 2010

htmlpdflatexmanmd




chgrp

chgrp

Change le groupe propriétaire de chaque fichier donné. Peut être soit un nom soit un ID.

OPTIONS

-c, --changes Décrit l'action pour chaque fichier dont le groupe change.
-f, --silent, --quiet N'affiche pas de message d'erreur sur les fichiers dont le groupe ne peut pas être changé
--dereference N'agit pas sur les liens symboliques mais sur leurs références. mode par défaut
-h, --no-dereference Agit sur les liens symboliques et non pas leur références
--preserve-root Échoue en tentant de changer le répertoire racine récursivement. sans --recursive cette options n'a pas d'effet.
--no-preserve-root Annule l'effet d'un précédent --preserve-root
--reference=REF_FILE Change le groupe de chaque fichier pour être le même que REF_FILE. si REF_FILE est un lien symbolique, utilise sa référence.
-v, --verbose Affiche un diagnostique pour chaque fichier traité.
-R, --recursive Change récursivement les répertoires et leur contenus
-H si -R est spécifié et que l'argument est un lien symbolique, le traverse.
-L si -R est spécifié, traverse tous liens symboliques vers un répertoire qui est rencontré
-P Ne traverse aucun lien symbolique. mode par défaut
^
03 juillet 2010

htmlpdflatexmanmd




chmod

chmod

Change les permissions d'accès des fichiers spécifiés. Il ne change jamais les permissions des liens symbolique. Cependant pour chaque lien symbolique listé, chmod change les permissions du fichier pointé.

OPTIONS

-c, --changes décrit l'action pour chaque fichier dont les permissions sont changées
-f, --silent, --quiet N'affiche pas de message d'erreur dans le cas ou les permissions d'un fichier ne peuvent être changées.
--preserve-root Échoue en tentant de changer récursivement le répertoire racine. sans -R cette option n'a aucun effet.
--no-preserve-root Annule l'effet d'un précédent --preserve-root
-v, --verbose Décrit l'action effectuée sur chaque fichier.
--reference=REF_FILE Change le mode de chaque fichier à REF_FILE. Si REF_FILE est un lien symbolique, utilise sa référence.
-R, --recursive Change récursivement les permissions des répertoires et leur contenus.
^
03 juillet 2010

htmlpdflatexmanmd




chown

chown

Change les user et group propriétaire

   chown change le user:group propriétaire de chaque fichier spécifiés, sous la forme [OWNER] [ : [GROUP] ]. Peuvent être spécifié par nom ou par ID.

        OWNER Change seulement l'utilisateur.
        OWNER:GROUP change l'utilisateur et le groupe
        OWNER: Change l'utilisateur spécifié et le groupe de cet utilisateur.
        :GROUP Change seulement le groupe.
        : Aucun des 2 n'est changé.

OPTIONS

-c, --changes Décrit l'action de chaque fichier dont le propriétaire est changé.
-f, --silent, --quiet N'affiche pas les messages d'erreur dont le propriétaire des fichiers spécifiés ne peut être changé.
--from=OLD_OWNER Change le propriétaire d'un fichier seulement s'il a les même attributs que OLD_OWNER.
-h, --no-dereference Agit sur les liens symboliques eux mêmes au lieu de leur référence.
--preserve-root Échoue en tentant de changer récursivement le répertoire racine. sans -R cette option n'a aucun effet.
--no-preserve-root Annule l'effet d'un précédent --preserve-root
--reference=REF_FILE Change l'utilisateur et le groupe pour correspondre à ceux de REF_FILE. Si REF_FILE est un lien symbolique, utilise sa référence.
-v, --verbose Affiche un diagnostique pour chaque fichier traité.
-R, --recursive Change récursivement les répertoires et leurs contenus.
-H Si -R est spécifié et qu'une opérande est un lien symbolique vers un répertoire, le traverse.
-L si -R est spécifié, traverse les liens symboliques vers un répertoire qui est rencontré.
-P ne traverse aucun lien symbolique
^
15 juillet 2010

htmlpdflatexmanmd




chroot

chroot

Lance une commande avec un répertoire root différent

Exemple

lancer un ls lié dans /tmp/empty:
chroot /tmp/empty /ls -Rl /
^
07 juin 2010

htmlpdflatexmanmd




cksum

cksum

Calcul un CRC pour chaque fichier donné

   cksum calcul un CRC pour chaque fichier donné. Il affiche le CRC suivi du nombre d'octets du fichier. Typiquement utilisé pour s'assurer que les fichiers transférés n'ont pas été corrompus.

^
21 juillet 2010

htmlpdflatexmanmd




comm

comm

Compare 2 fichiers triés, ligne par ligne, et écrit sur la sortie standard les lignes qui sont communes et les lignes qui sont uniques.

   Avant d'utiliser comm, les 2 fichiers doivent être triés. sort sans options produit toujours une sortie utilisable par comm. Sans options, comm produit une sortie à 3 colonnes. La première contient les lignes uniques du premier fichier, la deuxième les lignes unique dans le deuxième fichier et la troisième colonne contient les lignes communes au 2 fichiers. Les colonnes sont séparées par une tabulation.

OPTIONS

-1, -2, -3 Supprime l'affichage de la colonne spécifiée
--check-order Échoue avec un message d'erreur si un des fichier en entrée n'est pas trié.
--nocheck-order Ne vérifie pas si les fichiers sont triés.
--output-delimiter=STR Permet de spécifier le délimiteur entre les colonnes.
^
04 juin 2010

htmlpdflatexmanmd




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
^
30 juin 2010

htmlpdflatexmanmd




cp

cp

Copie de fichiers

   La copie est complètement indépendante de l'original. Si 2 noms de fichiers sont donnés, copie le premier fichier dans le deuxième. Si -t est spécifié ou que le dernier fichier est un répertoire et que -T n'est pas donné, cp copie chaque fichier dans ce répertoire.

  Généralement, les fichiers sont écris comme ils sont lus, à l'exception de l'option --sparse. Par défaut cp ne copie pas les répertoires si -R, -a ou -r est spécifié, cp copie récursivement.

  En copiant un lien symbolique, cp suit le lien seulement quand il réfère à une fichier régulier existant. Par défaut cp copie le contenus des fichiers spéciaux seulement si la copie n'est pas récursive. Peut être modifié par --copy-contents

  cp refuse généralement de copier un fichier dans lui-même, sauf si --force --backup est spécifié, et réfère à un fichier régulier. cp va créer un fichier backup, soit régulier soit numéroté.

OPTIONS

-a, --archive Préserve autant que possible la structure et les attributs des fichiers originaux dans la copie (mais ne tente pas de préserver la structure interne des répertoires.) essaye de préserver le contexte de sécurité SELinux et les attributs étendus, mais ignore les erreurs. Équivalent à -dR --preserve=all sans les diagnostiques.
-b, --backup[=METHOD] Créer une sauvegarde de chaque fichier qui aurait été écrasé ou supprimé.
--copy-contents En copie récursive, copie le contenu des fichiers spéciaux comme s'ils étaient des fichiers réguliers. A généralement un effet indésirable.
-d copie les liens symbolique au lieu de copier leur référence, et préserve les liens durs entre les fichiers sources dans les copies. Équivalent à --no-dereference --preserve=links
-f, --force Si un fichier de destination ne peut pas être ouvert, force sa suppression et essaye de le réouvrir.
-H si un argument spécifie un lien symbolique, copie sa référence au lieu du lien.
-i, --interactive en copiant un fichier autre qu'un répertoire, demande avant d'écraser un fichier existant.
-l, --link Créer des liens dur au lieu de copies de fichier autre que les répertoires.
-L, --dereference Suit les liens symboliques
-n, --no-clobber N'écrase pas de fichier existant
-P, --no-dereference Copie les liens symboliques au lieu de la référence
-p, --preserve[=ATTRIBUTE_LIST] préserve les attributs spécifiés des fichiers originaux. si spécifiés, ATTRIBUTE_LIST doit être une liste séparé par des ',' :

        mode préserve les bits de mode des fichiers et les acl
        ownership préserve le user:group.
        timestamp préserve le atime et mtime quand c'est possible. généralement pas possible pour les liens symboliques.
        links préserve dans les fichiers de destination les liens entre les fichiers source correspondant.
        context préserve le contexte de sécurité SELinux.
        xattr préserve les attributs étendus
        all Préserve tous les attributs des fichiers

--no-preserve=ATTRIBUTE_LIST ne préserve par les attributs spécifiés.
--parents Forme le nom de chaque fichier de destination en ajoutant au dossier cible un '/' et le nom de chaque fichier source. ex : cp --parents a/b/c existing_dir, copie le fichier a/b/c dans existing_dir/a/b/c, créant ainsi les dossiers intermédiaires.
-R, -r, --recursive copie les répertoire récursivement.
--remove-destination supprime chaque fichier existant dans la destination avant de tenter de l'ouvrir.
--sparse=WHEN Les 'sparse files' contiennent des 'trous", une séquence d'octets à 0 qui n'occupent pas d'espace disque. L'appel système read les lit. Cela peut sauver beaucoup d'espace disque et augmenter la vitesse, vu que beaucoup de fichiers binaires contiennent beaucoup d'octets à 0 consécutif. Par défaut, cp détecte des séquences dans les fichiers source et créer le fichier de sortie étendue. WHEN peut être :

        auto Le mode par défaut : si l'entrée est 'sparse', tente de produire un fichier 'sparse', sauf si ce n'est pas un fichier régulier.
        always Pour chaque séquence suffisamment longue d'octets à zéro dans le fichier d'entrée, tente de créer un trou correspondant dans le fichier de sortie, même si le fichiers d'entrée ne semble pas être 'sparse'.
        never ne créer jamais de fichier de sortie 'sparse'. Utile pour créer un fichier à utiliser avec mkswap, vu qu'un tel fichier de doit pas avoir de trou.

--skip-trailing-slashes supprime les '/' de fin de chaque argument source.
-s, --symbolic-link Créer des lien symboliques au lieu de copies des fichier non-répertoire. Les fichiers sources doivent être absolus, à moins que le fichier de destination ne soit dans le répertoire courant.
-S SUFFIX, --suffix=SUFFIX Ajoute SUFFIX à chaque fichier backup crée avec -b
-t DIRECTORY, --target-directory=DIRECTORY Spécifie le répertoire de destination
-T, --no-target-directory ne traite pas le dernier opérande spécialement quand c'est un répertoire ou un lien symbolique.
--update Ne copie pas un fichier autre que répertoire qui a une destination existante avec un mtime identique ou plus récent.
-v, --verbose Affiche le nom de chaque fichier en cour de copie.
-x, --one-file-system Ne copie pas les fichiers qui sont sur un système de fichier différents. Les points de montage sont copiés.
^
07 juin 2010

htmlpdflatexmanmd




csplit

csplit

Crée des fichiers de sortie contenant des sections de l'entrée

   Le contenu de chaque fichier de sortie est déterminé par les arguments PATTERN. Une erreur se produit si le PATTERN réfère à une ligne non existante dans le fichier d'entrée. Par défaut, csplit affiche le nombre d'octets écrit dans chaque fichier de sortie une fois qu'il l'a crée.

N Crée un fichier de sortie jusqu'à, mais ne l'incluant pas, la ligne N.
/REGEXP/[OFFSET] Créer un fichier de sortie contenant la ligne courante jusqu'à, mais n'inclant pas, la prochaine ligne contenant une correspondance de REGEXP. OFFSET est un entier, contient jusqu'à, mais n'inclus pas, la ligne correspondante moins l'OFFSET
%REGEXP%[OFFSET] Idem excepté qu'il ne crée pas de fichier de sortie, donc la section du fichier d'entrée est ignorée.
REPEAT-COUNT Répète le pattern précédent REPEAT-COUNT fois supplémentaire. Peut être un entier ou un '*'.

OPTIONS

-f PREFIX, --prefix=PREFIX Utilise PREFIX comme préfixe dans le nom de fichier
-b SUFFIX, --suffix=SUFFIX Utilise SUFFIX comme suffixe dans le nom de fichier.
-N DIGITS, --digits=DIGITS Utilise des noms de fichier contenant des nombres de DIGITS chiffres. (2 par défaut)
-k, --keep-files Ne supprime pas les fichiers de sortie quand des erreurs sont rencontrées.
-z --elide-empty-files Supprime la génération de fichier de sortie vide.
-s, -q, --silent, --quiet N'affiche pas de compteur de taille de fichiers

Exemples

Split la séquence 1..14 sur les lignes qui se terminent avec 0 ou 5
seq 14 | cpslit - '/[05]$/' '*'
^
09 juin 2010

htmlpdflatexmanmd




cut

cut

Écrit sur la sortie standard des parties sélectionnées de chaque ligne de chaque fichier en entrée, ou de l'entrée standard

   BYTE-LIST, CHARACTER-LIST et FIELD-LIST sont un ou plusieurs nombres ou plages.

OPTIONS

-b BYTE-LIST, --bytes=BYTE-LIST affiche seulement les positions d'octets listés. les espaces et tabulations sont considérés comme un octet.
-c CHARACTER-LIST, --characters=CHARACTER-LIST affiche seulement les positions de caractères listés. identique à -b pour le moment.
-f FIELD-LIST, --fields=FIELD-LIST Affiche seulement les champs listés. Les champs sont séparés par des tabulations par défaut.
-d INPUT_DELIM_BYTE, --delimiter=INPUT_DELIM_BYTE avec -f, utilise le premier octet de INPUT_DELIM_BYTE comme séparateur de champs.
-n  Ne coupe pas les caractères multi-octets
-s, --only-delimited Pour -f, n'affiche pas les lignes qui ne contienne pas le caractère séparateur de champs.
--output-delimiter=OUTPUT_DELIM_STRING Avec -f, sort les champs qui sont séparés par OUTPUT_DELIM_STRING.
--complement Sélectionne l'affichage complémentaire des octets, caractères ou champs sélectionnés. en d'autres terme, n'affiche pas les octets, caractères ou champs spécifiés avec les options -b, -c ou -f
^
14 juillet 2010

htmlpdflatexmanmd




date

date

Affiche ou définit la date du système

   date affiche ou définit la date du système, invoqué sans format de date revient à l'invoquer avec un format par défaut que dépend de LC_TIME Normalement, date utilise les règles de temps indiqué par TZ, ou les règles par défaut du système si TZ n'est pas utilisé. Si un argument commence par +, date affiche la date courante ( ou la date spécifié par l'option --date) dans le format spécifié par l'argument, qui est similaire à la fonction strftime. Excepté pour les spécifieurs de conversion qui commence avec %, les caractères sont affichés tels quels.

Spécifieurs de conversion de temps

%H heure ('00'...'23')
%I heure ('01'...'12')
%k heure ('0'...'23')
%l heure ('1'...'12')
%M minute ('00'...'59')
%N nanosecondes (`000000000'...`999999999')
%p équivalent local à AM ou PM. vide dans beaucoup de locales
%P Idem mais en minuscule
%r heure locale sur 12 heures
%R identique à %H:%M
%s seconde depuis le 1.1.1970
%S Secondes (`00'...`60')
%T identique à %H:%M:%S
%X représentation de l'heure locale.
%z time RFC 2822. Zone en style numérique. ex: +0200. ou rien si le time zone ne peut pas être déterminé.
%:z RFC 3339. Zone en style numérique. ex: +02:00. ou rien si le time zone ne peut pas être déterminé.
%::z time zone à la plus proche seconde. ex: +02:00:00, ou rien si le time zone ne peut pas être déterminé.
%:::z time zone utilisant le précision minimal nécessaire, ou rien si le time zone ne peut pas être déterminé.
%Z abbréviation du time zone, ou rien si le time zone ne peut pas être déterminé.

Spécifieurs de conversion de date

%a Abréviation du nom du jour de la semaine
%A Nom du jour de la semaine
%b Abréviation du nom du mois
%B Nom du mois
%c Date et heure locale
%C siècle. Identique à %Y mais sans les 2 dernier chiffres.
%d Jour du mois
%D identique à %m/%d/%y
%e jour du mois, identique à %_d
%F Date au format iso 8601. identique à %Y-%m-%d
%g Année, sans le siècle.
%G Année, identique à %Y
%h identique à %b
%j jour de l'année
%m mois
%u jour de la semaine ('1'...'7') 1 correspond à lundi
%U semaine de l'année
%V semaine ISO de l'année. Si la semaine du 1er Janvier à au moins 4 jours dans la nouvelle année, c'est la semaine 1 de la nouvelle année, sinon la 53eme semaine de l'année précédente.
%w jour de la semaine ('0'...'6') 0 correspond à dimanche
%W semaine de l'année avec lundi comme premier jour de la semaine
%x date locale, identique à %d/%m/%Y
%y 2 derniers chiffres de l'année.
%Y année

Spécifieurs de conversion litéral

%% un %
%n newline
%t tabulation horizontale

Padding et autres flags

   date remplis normalement les champs par des 0

- Ne remplis pas les champs par des 0.
_ Remplis avec des espaces
0 remplis avec des 0
^ met les caractères en majuscule si possible
# oppose la casse si possible.
0 Ce chiffre permet de spécifier la largeur du champs

Régler l'heure du système

   Si un argument ne commence pas par +, date définis le temps du système. Les options --date et --set ne peuvent pas être utilisés avec cet argument. --universal peut être utilisé pour indiquer que l'heure est relative à UTC au lieu de du time zone local

MM mois
DD jour dans le mois
hh heure
mm minutes
CC 2 premiers chiffres de l'année
YY 2 derniers chiffres de l'année
ss secondes

OPTIONS

-d DATESTR, --date=DATESTR affiche la date et l'heure spécifié par DATESTR au lieu de l'heure courante. DATESTR peut être de plusieurs formes. Il contient le nom des mois, time zone, am et pm, yesterday etc...
-f DATEFILE, -file=DATEFILE utilise chaque ligne du fichier et affiche la date et l'heure comme pour -d. si DATE vaut '-', utilise l'entrée standard.
-r FILE, --reference=FILE affiche la date et l'heure du mtime du fichier spécifié.
-R, --rfc-822, --rfc-2822 Affiche la date et l'heure en utilisant le format %a, %d %b %Y %H:%M:%S%z
--rfc-3339=TIMESPEC Affiche la date en utilisant un format spécifié par la RFC 3339. Ce format est toujours utilisatable par -d et -f. TIMESPEC peut être:

        date Affiche juste la date complète, identique à %Y-%m-%d
        seconds affiche la date complète et l'heure complète séparé par un espace. Identique à %Y-%m-%d %H:%M:%S%:z
        ns idem, mais affiche les nanosecondes. identique à %Y-%m-%d %H:%M:%S.%N%:z

-s DATESTR, --date=DATESTR Définit la date et l'heure à DATESTR.
-u, --utc, --universal Utilise UTC

Exemples

affiche la date d'il y'a 2 jours:
date --date='2 days ago'
Affiche la date d'il y'a 3mois et 1 jour:
date --date='3 months 1 day'
Affiche le jour de noêl:
date --date='25 Dec' +%j
Affiche le nom du mois et le jour courant:
date '+%B %d'
afficher la date et l'heure sans remplir de 0:
date -d 1may '+%B %-d'
définis l'heure système en la reculant de 2 minutes:
date --set='+2 minutes'
Convertir une date en nombre de secondes depuis le 1/1/1970:
date --date='1970-01-01 00:02:00 +0000' +%s
^
30 juin 2010

htmlpdflatexmanmd




dd

dd

Copie de fichier et conversions

OPTIONS

if=FILE lit FILE au lieu de l'entrée standard
of=FILE Écrit dans FILE au lieu de la sortie standard. par défaut tronque aux octets '0'
ibs=BYTES Définis la taille de block en entrée (défaut 512 octets)
obs=BYTES Définis la taille de block en sortie (défaut 512 octets)
bs=BYTES Définit la taille de block en entrée et en sortie. ça force dd à lire et écrire par block.
cbs=BYTES définit la taille de block de conversion. En convertissant des enregistrements de longueur variable à des longueurs fixes (conv=block) ou inversé (conv=unblock), utilise BYTES comme longueur d'enregistrement.
skip=BLOCKS saute BLOCKS dans le fichier d'entée avant de copier
seek=BLOCKS saute BLOCKS dans le fichier de sortie avant de copier
count=BLOCKS copie BLOCKS dans le fichier d'entrée.
status=noxfer n'affiche pas le taux de transfert et les statistiques de volume quand dd se termine.
conv=CONVERSION[,CONVERSION]... Convertit le fichier comme spécifié par CONVERSION :

        ascii Convertit EBCDIC vers ASCII.
        ebcdic Convertit ASCII vers EBCDIC
        ibm Convertit ASCII vers EBCDIC alternatif
        block pour chaque ligne dans l'entrée, sort cbs octets, remplaçant un newline par un espace et en complétant avec des espaces si nécessaire.
        unblock remplace les espaces à la fin dans chaque block d'entrée de taille cbs par un newline.
        lcase Change les lettres majuscules en minuscules
        ucase Change les lettres minuscules en majuscules
        swab inverse chaque pair d'octets en entrée.
        noerror Continue même en cas d'erreurs
        nocreat ne crée pas de fichier de sorite, il doit déjà exister.
        excl échoue si le fichier de sorite existe déjà.
        notrunc Ne tronque pas le fichier de sortie
        sync complète chaque block d'entrée à la taille de ibs, en complétant avec des '0', ou des espace si block ou unblock est spécifié.
        fdatasync Synchronise les données en sortie juste avant de finir. Cela force une écrite physique.

iflag=FLAG[,FLAG]... Accède au fichier d'entrée en utilisant les flags spécifiés.
oflag=FLAG[,FLAG]... Accède au fichier de sortie en utilisant les flags spécifiés.

        append Écrit en mode ajout.
        cio Utilise le mode I/O courant pour les données. effectue effectue un I/O direct, outrepassant les requis POSIX.
        direct Utilise I/O direct pour les données, annulant le buffer cache.
        directory Échoue à moins que le fichier soit un répertoire. bcp d'OS ne permettent pas I/O sur un répertoire.
        dsync Utilise I/O synchronisé pour les données. Pour le ficheir de sortie, çà force l'écriture physique pour chaque écriture.
        sync Utilise I/O synchronisé pour les données et les métadonnées.
        nonblock Utilise I/O non-blocking
        noatime Ne met pas à jours le atime des fichiers.
        nofollow ne suit pas les liens symboliques
        nolinks échoue si le fichier à de multiples liens dures.
        binary Utilise I/O binaire, pour les plate-formes distinguant les fichier binaire des fichiers texte.
        text Utilise I/O text.
        fullblock accumule les blocks complet en entrée.

   BYTES et BLOCKS peuvent s'exprimer avec un multiplicateur : b vaut 512, c vaut 1, w vaut 2, ou n'importe quel autre multiplicateur.

  Envoyer un signal INFO (ou USR1 pour les système ne supportant pas INFO) à un processus dd en cour le force à afficher des statisques d'I/O sur l'erreur standard, puis reprend la copie.

Exemples

copie en block de 512 octets entre un disque et une cassette, mais saute le label de 4 KiB au début du disque :
disk=/dev/rdsk/c0t1d0s2
tape=/dev/rmt/0
(dd bs=4k skip=1 count=0 && dd bs=512k) ‹$disk ›$tape
(dd bs=4k seek=1 count=0 && dd bs=512k) ‹$tape ›$disk
Copier une partition de disque dur sur un autre disque dur
dd if=/dev/sda2 of=/dev/sdb2 bs=4096 conv=notrunc,noerror
Cloner un disque dur en entier
dd if=/dev/sda of=/dev/sdb conv=notrunc,noerror
Copier un grand disque sur un autre disque plus petit. La seule différence entre une grande partition et une petite partition, hormis la taille, est la table de partition. Si vous copiez sda vers sdb, un disque entier avec une seule partition, sdb étant plus petit que sda, alors vous devez faire :
dd if=/dev/sda skip=2 of=/dev/sdb seek=2 bs=4k conv=noerror
Réaliser l'image ISO d'un CD
dd if=/dev/hdc of=/home/sam/moncd.iso bs=2048 conv=notrunc
Créer une clé USB bootable
dd if=/home/uubu/insert.iso of=/dev/sdb ibs=4b obs=1b conv=notrunc,noerror
Copier seulement le MBR d'un disque dur
dd if=/dev/sda of=/home/sam/MBR.image bs=446 count=1
Ecrire par dessus toute la place libre d'une partition
dd if=/dev/urandom › fichieroccupanttoutlespacelibre

Astuces

Pour voir la mémoire vive
dd if=/proc/kcore | hexdump -C | less
Quels systèmes de fichiers sont installés
dd if=/proc/filesystems | hexdump -C | less
Tous les modules chargés
dd if=/proc/kallsyms | hexdump -C | less
Table des interruptions
dd if=/proc/interrupts | hexdump -C | less
Depuis combien de temps fonctionne le système
dd if=/proc/uptime | hexdump -C | less
Partitions et tailles en Ko
dd if=/proc/partitions | hexdump -C | less
Etat de la mémoire
dd if=/proc/meminfo | hexdump -C | less
Créer un disque de sauvegarde (dcfldd est un programme qui ajoute aux fonctionnalités de dd l'affichage d'une barre de progression)
dcfldd if=/dev/sda of=/dev/sdb bs=4096 conv=notrunc,noerror
pour réaliser un backup de root puis :
dd if=/home/sam/root.img of=/dev/sda2 (root) bs=4096 conv=notrunc,noerror
Créer un lecteur virtuel
dd if=/dev/zero of=/dev/ram7 bs=1k count=16384
puis :
mkfs.ext3 -m0 /dev/ram7 4096
Copier la mémoire RAM dans un fichier
dd if=/dev/mem of=/home/sam/mem.bin bs=1024
Lire le BIOS
dd if=/dev/mem bs=1k skip=768 count=256 2›/dev/null | strings -n 8

Utilitaires dérivés

ddrescue permet de récupérer des secteurs défectueux
sdd Utile quand la taille des blocs d'entrée est différente de celle des blocs de sortie, et réussira dans des cas où dd échoue
^
04 juillet 2010

htmlpdflatexmanmd




df

df

Reporte la quantité d'espace disque utilisé et disponible sur les systèmes de fichiers.sans argument, Reporte l'espace utilisé et disponible sur tous les systèmes montés.

   Normalement l'espace disque est affiché en unité de 1024 octets, mais peut être changé. Les quantités non entières sont arrondis à l'unité supérieure.

OPTIONS

-a, --all Inclue dans le listing, les systèmes de fichiers 'dummy'.
-B SIZE, --block-size=SIZE définit la taille d'unité
--total affiche un grand total de tous les arguments traités.
-h, --human-readable Ajoute une lettre à chaque taille, en puissance de 1024.
-H equivalent à --si
-i, --inodes liste les informations d'utilisation des inodes au lieu de l'utilisation de block.
-k affiche les tailles en block de 1024 octets. équivalent à --block-size=1K
-l, --local limite le listing au systèmes de fichier locaux.
--no-sync N'invoque pas l'appel système sync avant de récupérer l'utilisation de donnée. df devient plus rapide sur les système avec de nombreux disques.
-P, --portability Utilise le format de sortie POSIX. Identique au format par défaut excepté :

        1. les informations sur chaque système de fichier sont toujours affichés sur exactement une ligne.
        2. les labels dans les en-têtes sont changés pour être confirme à POSIX
        3. la taille de block par défaut et le format de sortie ne sont pas affectés par les variables d'environnement DF_BLOCK_SIZE, BLOCK_SIZE et BLOCKSIZE. Cependant, la taille de block par défaut est affectée par POSIXLY_CORRECT, qui est de 512 octets au lieu de 1024 normalement.

--si Ajoute une lettre à chaque taille, en puissance de 1000.
--sync Invoque l'appel système sync avant d'obtenir les données d'utilisation.
-t FSTYPE, --type=FSTYPE limite le listing des systèmes de fichiers de type FSTYPE. Peut être spécifié" plusieurs fois.
-T --print-type affiche chaque type de système de fichier. Les types affichés sont ceux inclus ou exclus avec -t ou -x :

        nfs Système de fichier NFS.
        4.2, ufs, efs... Fichier système local.
        hsfs, cdfs Système de fichier sur un lecteur CD-ROM.
        pcfs Système de fichier MS-DOS, généralement une disquette.

-x FSTYLE, --exclude=FSTYPE Exclue le type de système de fichier spécifié. Peut être spécifié plusieurs fois.
^
28 juin 2010

htmlpdflatexmanmd




dircolors

dircolors

dircolors sort une séquence de commande shell pour définir les couleurs pour la sortie de ls

   Si FILE est spécifié, dircolors le lit et détermine quelles couleurs utiliser pour quels types de fichiers et extensions, sinon une base de donnée précompilée est utilisée. Pour plus de détail sur le format de ce fichier : dircolors --print-database

OPTIONS

-b, --sh, --bourne-shell sort les commandes Bourne Shell. Par défaut si SHELL ne se termine pas par csh ou tcsh
-c, --csh, --c=shell Sort les commande C shell. par défaut si SHELL se termine par csh ou tcsh
-p, --print-database affiche la base de donnée des couleurs par défaut. Cette sortie est elle-même un fichier de configuration valide.

Exemples

utilisation typique
eval "`dircolors [OPTION]... [FILE]`"
Forcer dircolor à lire un fichier /.dircolors s'il existe, vous pouvez utiliser /.bashrc
d=.dircolors
test -r $d && eval "$(dircolors $d)"

Variables d'environnement

LS_COLORS La sortie de dircolors est une commande shell qui est définie dans cette variable
^
07 juillet 2010

htmlpdflatexmanmd




dirname

dirname

Affiche la partie répertoire dans le nom spécifié

Exemples

Affiche /usr/bin
dirname /usr/bin/sort
Affiche .
dirname stdio.h
^
04 juillet 2010

htmlpdflatexmanmd




du

du

Reporte la quantité d'espace disque utilisé par les fichiers spécifiés et pour chaque répertoire.

   Sans argument, du reporte l'espace disque pour le répertoire courant. Normalement l'espace disque est affiché en unités de 1024 octets. Les quantité non entières sont arrondies à l'unité supérieur. Si 2 ou plusieurs liens dur pointent sur le même fichier, seul un des liens dur est compté.

OPTIONS

-a, --all Affiche les fichiers, pas seulement les répertoires.
--apparent-size affiche les tailles apparentes, au lieu de l'espace disque utilisé. il s'agit du nombre d'octets reporté par wc -c sur les fichiers réguliers, ou plus généralement, ls -l --block-size=1 ou stat --format=%s.
-b, --bytes est équivalent à --apparent-size --block-size=1
-B SIZE, --block-size=SIZE définit la taille de block.
-c, --total Affiche un grand total de tous les arguments, après que tous les argument ont été traités.
-D, --dereference-args déréference les liens symboliques qui sont sur la ligne de commande. n'affecte pas les autres liens symboliques.
--files0-from=FILE Désactive le traitement des fichiers nommés sur la ligne de commande, et traite ceux nommés dans FILE. chaque nom est terminé par un ASCII NUL.
-h, --human-readable ajoute une lettre à chaque taille. Utilise les puissances de 1024.
-H Equivalent à --dereference-args
-k affiche les tailles en blocks de 1024 octets. Équivalent à --block-size=1K
-l, --count-links compte la taille de tous les fichiers, même s'ils sont déjà apparus (liens durs)
-L, --derefence Déréférence les liens symboliques
-m équivalent à --block-size=1M
-P, --no-dereference Pour chaque lien symbolique, considère l'espace disque utilisé par le lien symbolique.
--max-depth=DEPTH Affiche le total pour chaque répertoire (et fichier si -a) qui fait moins de DEPH en dessous de la hiérarchie racine. root est au level 0 donc --max-depth=0 est équivalent à du -s
-0, --null sort un ASCII NUL à la fin de chaque ligne, au lien d'un newline. Permet à d'autres programme d'utiliser la sortie de du.
--si ajoute une lettre à chaque taille. Utilise les puissances de 1000.
-s, --summarize Affiche seulement un total pour chaque argument.
-S, --separate-dirs Normalement, dans la sortie de du sans -s, la taille d'un répertoire représente la somme de toutes les entrées dans le répertoire + le répertoire lui-même. Cette options reporte la taille dérivé de stat.st_size.
-x, --one-file-system omet les répertoires qui sont sur un système de fichier différent.
--exclude=PATTERN Omet les fichiers et répertoires correspondant à PATTERN
-X FILE, --exclude-from=FILE idem, mais les patterns sont dans FILE, un par ligne. si FILE vaut '-' utilise l'entrée standard.
--time Affiche le mtime
--time=ctime, --time=status, --time=use affiche le ctime
--time=atime, --time=access Affiche le atime
--time-style=STYLE spécifie le style d'affichage de temps. STYLE peut être :

        +FORMAT FORMAT est interprété comme un argument de date.
        full-iso affiche la date en utilisant ISO 8601. le style est équivalent à +%Y-%m-%d %H :%M :%S.%N %z
        long-iso Liste la date au format ISO 8601. est équivalent à +%Y-%m-%d %H :%M
        iso liste au format ISO 8601 pour les date anciennes. est équivalent à +%Y-%m-%d $newline%m-%d %H :%M

   On peut spécifier le style avec la variable d'environnement TIME_STYLE. par défaut utilise long-iso
^
05 juillet 2010

htmlpdflatexmanmd




echo

echo

Écrit chaque chaîne donnée sur la sortie standard, avec un espace entre chaque et une nouvelle ligne après la dernière

OPTIONS

-n  N'ajoute pas de newline à la fin
-E  désactive l'interprétation des caractères d'échappement
-e  authorise l'interprétation des caractères d'échappement suivant:

        \a alerte
        \b BACKSPACE
        \c n'affiche pas la suite
        \f form feed
        \n NEWLINE
        \r retour charriot
        \t tabulation horizontale
        \v taulation verticale
        \\ \
        \ONNN La valeur 9-bits de numéro octal NNN (0 à 3 chiffres)
        \NNN La valeur 9-bits de numéro octal NNN (1 à 3 chiffres)
        \xHH La valeur 9-bits de numéro hexa HH (1 à 2 chiffres)

   si POSIXLY_CORRECT est définit, et que le premier argument n'est pas -n, traite tous les argument comme chaine.
^
15 juillet 2010

htmlpdflatexmanmd




env

env

Lance une commande avec un environnement modifié.

   env lance une commande avec un environnement modifié. La première opérande qui ne contient pas le caractère '=' spécifie le programme à invoquer.

OPTIONS

-u NAME, --unset=NAME Supprime la variable spécifée de l'environnement.
-, -i, --ignore-environment démarre avec un environnement vide.
NAME=VALUE définir une variable
^
24 juin 2010

htmlpdflatexmanmd




expand

expand

Convertit les tabulations en espace pour chaque fichier donné sur la sortie standard

OPTIONS

-t TAB1[,TAB2]...' , --tabs=TAB1[,TAB2]...' Si seul TAB1 est donnée, définit les espaces de tabulations (défaut est 8). Sinon, définit les tabulations aux colonnes TAB1, TAB2, ... et remplace les tabulations au delà par un seul espace.
-i, --initial Convertit uniquement les tabulations initiales (celles qui précèdent tout caractères autre que des espaces ou tabulations).
^
06 juillet 2010

htmlpdflatexmanmd




expr

expr

Évalue des expressions et écrit le résultat sur stdout

   expr évalue une expression et écrit le résultat sur la sortie standard. les opérandes sont soit des entiers soit des chaînes. Les chaînes ne sont pas entre guillemet pour expr, mais peut être requis pour le shell. Une opérande chaîne ne devrait pas être un parenthèse ou un opérateur de expr. Vous ne devriez pas passer d'entier négatif ou de chaîne avec un '-' final comme premier argument de expr. Cela peut être évité avec des parenthèses.

Codes de status

0 si l'expressions est ni null ni 0
1 si l'expression est null ou 0
2 si l'expression est invalide
3 si une erreur interne s'est produite.

Expressions chaîne

STRING: REGEX Effectue une correspondance de motif. Les arguments sont convertis en chaîne et le second est considéré comme une expression régulière, avec un '^' implicite devant. s'il y'a correspondance et que REGEX utilise '\(' et '\)', retourne la partie de la chaîne qui correspond. Dans l'expression régulière, '\+', '\?', et '\|' sont des opérateurs qui correspondent respectivement à une correspondance d'un ou plus, zéro ou un, et séparés.
match STRING REGEX correspondance de motif alternatif. identique au précédent.
substr STRING POSITION LENGTH retourne le sous-chaîne de STRING commençant à POSITION avec LENGH longueur. si POSITION ou LENGTH sont des valeurs négatives, retourne une chaîne null.
index STRING CHARSET retourne la première position de STRING où le premier caractère dans CHARSET a été trouvé. retourne 0 si rien n'est trouvé.
length STRING retourne la longueur de STRING
+ TOKEN Interprète TOKEN comme une chaîne, même si c'est un mot clé comme MATCH ou un opérateur comme '/'
pour que expr interprète les mots clés comme chaîne, vous devez utiliser "'"

Expressions numériques

+ -  addition et soustraction. les arguments sont convertis en entiers; une erreur se produit s'ils ne peuvent être convertis.
* / %  mulitplication, division, modulo. les arguments sont convertis en entiers ; une erreur se produit s'ils ne peuvent être convertis

Relations pour expr

retourne le premier argument s'il est non null ni zéro. sinon le deuxième argument s'il est non null ni zéro.
retourne le premier argument s'il est non null ni zéro, sinon retourne 0. N'évalue pas le deuxième argument.
‹ ‹= = == != ›= › Compare les arguments et retourne 1 si la relation est vrai, 0 sinon. == est équivalement à =.

Exemples

ajouter 1 à la variable shell foo
foo=`expr $foo + 1`
afficher la partie non-répertoire du nom de fichier stocké dans $fname
expr $fname : '.*/\[.*\]' '|' $fname
exemple montrant que \+ est un opérateur
expr aaa : 'a\+'
affiche 3
expr abc : 'a\(.\)c'
affiche b
expr index abcdef cz
affiche 3
^
15 juillet 2010

htmlpdflatexmanmd




factor

factor

Affiche le facteur premier

   Si aucun argument n'est donné, factor lit l'entrée standard, délimité par des newline, tab, ou spaces.

^
06 juillet 2010

htmlpdflatexmanmd




false

false

Retourner un code de sortie de 1

   false ne fait rien excepté retourner un code de sortie de 1.

^
07 juin 2010

htmlpdflatexmanmd




fmt

fmt

Joint les lignes d'un fichier pour produire des lignes d'un nombre donné de caractères - 75 par défaut

   Par défaut, les lignes blanches, les espaces entre les mots et l'indentation sont préservés dans la sortie; les lignes successives avec différentes indentations ne sont pas jointes; les tabulations sont étendues en entrées et introduits sur la sortie.

  fmt préfère couper les lignes à la fin d'une phrase, et essaye d'éviter de couper une ligne après le premier mot d'une phrase ou avant le dernier mot d'un phrase. Une coupe de phrase est définie soit à la fin d'un paragraphe ou un mot se terminant par '.' '?' ou '!', suivi par 2 espaces ou la fin d'une ligne, en ignorant les parenthèses ou guillemets.

OPTIONS

-C, --compare Compare chaque paire de fichier source et destination, et si la destination à un contenu identique, ainsi que le user, group et permissions, alors ne modifie pas la destination du tout.
-c, --crown-margin Préserve l'indentation des 2 premières lignes dans un paragraphe, et aligne la marge de gauche de chaque ligne suivante avec la seconde ligne.
-t, --tagged-paragraph Identique à -c, excepté que si l'indentaton de la première ligne d'un paragraphe est la même que l'indentation de la seconde, la première ligne est traitée comme un paragraphe à une ligne.
-s, --split-only Coupe les lignes uniquement, Ne joint pas les lignes courtes.
-u, --uniform-spacing Réduit l'espace entre les mots à un espace, et l'espace entre les phrases à 2 espaces.
-WIDTH, -w WIDTH, --width=WIDTH Définit le nombre de caractères par ligne (75 par défaut)
-p PREFIX, --prefix=PREFIX Seul les lignes commençant avec PREFIX sont sujet à formatage.
^
07 juin 2010

htmlpdflatexmanmd




fold

fold

Écrit chaque fichier ou l'entrée standard sur la sortie standard, en coupant les longues lignes. Par défaut il coupe les lignes plus longues que 80 colonnes.

OPTIONS

-b, --byte Compte en octets au lieu de colonnes, donc les tabulations, retour chariot et blackspace sont compté comme une seule colonne.
-s, --spaces Coupe la ligne avec un espace blanc
-w WIDTH, --width=WIDTH Définit la longueur maximale de ligne.
^
17 juillet 2010

htmlpdflatexmanmd




Format d'entrée de date

Format d'entrée de date

Syntaxe du format de date

Syntaxe générale de date

   une date est une chaîne, qui peut être vide, contenant plusieurs items séparés avec un espace blanc. Une date peut contenir:

        - date de calendrier
        - heure du jour
        - time zone
        - jour de la semaine
        - iems relatifs
        - nombres

   Quelques nombres peuvent être écris en mot:

        last vaut -1
        this vaut 0
        first, next valent 1
        third pour 3
        fourth pour 4
        fifth pour 5
        sixth pour 6
        seventh pour 7
        eighth pour 8
        ninth pour 9
        tenth pour 10
        eleventh pour 11
        twelfth pour 12

   Dans l'implémentation actuelle, seul l'Anglais est supporté pour les mots et abbréviations comme AM, DST, EST, first, january, sunday, tomorrow et year.

Date de calentrier et TimeZone

Une date de calendrier spécifie un jour de l'année. Elle est spécifiée différemment, si le mois est indiqué numériquement ou littéralement. Toutes ces chaînes spécifient la même date de calendrier:
1972-09-24
72-9-24
72-09-24
9/24/72
24 September 1972
24 Sept 72
24 Sep 72
Sep 24, 1972
24-sep-72
24sep72
L'année peut également être omise. Dans ce cas, la dernière année spécifiée est utilisée, sinon l'année courante. Exemple
9/24
sep 24

   pour les mois numérique, le format ISO 8601 YEAR-MONTH-DAY est permis. La construction MONTH/DAY/YEAR, populaire aux USA est accepté. Les mois peuvent être spécifiés par leur nom : 'January', 'February','March', 'April', 'May', 'June', 'July', 'August', 'September','October', 'November', 'December'. On peut utiliser leur abréviation (les 3 premières lettres).

Quand les mois sont spécifiés ainsi, la date de calendrier peut être spécifié comme suit
DAY MONTH YEAR
DAY MONTH
MONTH DAY YEAR
DAY-MONTH-YEAR
ou omettre l'année
MONTH DAY

Heure du jour

Quelques exemples:
20:02:00.000000
20:02
8:02pm
20:02-0500 # In EST (U.S. Eastern Standard Time).

   Plus généralement, le temps peut être donné en HOUR:MINUTE:SECOND, et optionnellement suivi par un '.' ou ',' et une fraction contenant un ou plusieurs chiffres. SECOND peut être omis. Si le temps est suivi par 'am' ou 'pm', HOUR est restreint entre 1 et 12.

  L'heure peut être suivie par un time zone exprimé par SHHMM, où S vaut '+' ou '-', HH Est le nombre d'heures de la zone, et MM est le nombre de minutes de la zone (peut être omis).

Jour de la semaine

   La mention du jour de la semaine va renvoyer la date pour atteindre ce jours de la semaine dans le future. Les jours de la semaine peuvent être écris : 'Sunday', 'Monday','Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'. Leur abréviation peut être utilisé (3 premières lettres). Un nombre peut précéder le jour de la semaine pour spécifier un jour antérieur, comme third monday. Dans ce contexte, 'last DAY' ou 'next DAY' sont aussi acceptable.

Items relatifs

Quelques exemples:
1 year
1 year ago
3 years
2 days

   il est possible d'utiliser 'fortnight' pour 14 jours, week pour 7 jours, day pour 24 heures, hour pour 60 minutes, minute ou min pour 60 secondes et second ou sec. Un suffixe 's' est accepté et ignoré. L'unité de temps peut être précédée par un multiplicateur, un nombre signé. pour spécifié un temps antérieur, ajouter ago.

  Ainsi tomorrow est équivalent à day et yesterday est équivalent à day ago. Les chaînes now et today correspondent à aucun déplacement de temps. Ils peuvent être utilisés par exemple: "10:00 today". La chaîne this à la même signification, par exemple: this thursday.

Secondes depuis the Epoch

   Si vous précédez un nombre avec '@', il représente un compteur de seconde interne. the epoch correspond au 1970-01-01 00:00:00 UTC. Il est possible de spécifier des valeurs négatives. Les systèmes 32-bits peuvent représenter le temps de 1901-12-13 20:45:52 à 2038-01-19 03:14:07 UTC. Les systèmes plus modernes utilise un compteur 64-bits.

Spécifier les règles de TimeZone

   Normalement les dates sont interprétées en utilisant les règles de time zone courant, qui sont spécifiées par la variable d'environnement TZ ou par le systéme par défaut si TZ n'est pas définie.

exemple: quelle heure est-il à New York quand il est 6:30 à Paris le 31 octobre 2004, en utilisant une date commençant par TZ="Europe/Paris":
export TZ="America/New_York"
date --date='TZ="Europe/Paris" 2004-10-31 06:30'
Sun Oct 31 01:30:00 EDT 2004
^
18 octobre 2016

htmlpdflatexmanmd




grep

grep

Affiche les lignes qui contiennent une correspondance pour un motif

Options - contrôle de correspondance

-e PATTERN, --regexp=PATTERN Utilise PATTERN comme motif. Si cette option est utilisée plusieurs fois ou combinée avec -f, recherche tous les motifs donnés.
-f FILE, --file=FILE Obtient les patterns depuis le fichier, un par ligne. Si cette option est utilisée plusieurs fois ou combinée avec -e, recherche pour tous les patterns donnés. Un fichier vide ne contient aucun pattern, et ne matche rien.
-i, --ignore-case Ignore la casse.
-v, --invert-match Inverse le sens de match, pour selectionner des lignes non-matchant.
-w, --word-regexp Sélectionne uniquement les lignes contenant les matchs qui forment un mot entier. Le test est que la sous-chaîne matchant doit être soit au début de la ligne, ou précédé par un caractère non-word. Similairement, il est doit être soit à la fin de la ligne ou suivi par un caractère word. N'a pas d'effet avec -x
-x, --line-regexp Sélectionne seulement les matche qui correspondent exactement à la ligne entière.

Options - Contrôles de sortie généraux

-c, --count Supprime la sortie normale; Affiche un compteur de lignes correspondantes pour chaque fichier d'entrée. Avec -v, compte les lignes qui ne matchent pas.
--color[=WHEN], --colour[=WHEN] Mode couleur. Les couleurs sont définies par la variable d'environnement GREP_COLORS (défaut: ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36)
-L, --files-without-match Supprime la sortie normale; affiche le nom de chaque fichier d'entrée dans lequel aucune sortie ne serait affichée.
-l, --files-with-matches Supprime la sortie normale; affiche le nom de chaque fichier d'entrée dans lequel un sortie aurait été affichée.
-m NUM, --max-count=NUM Stop la lecture d'un fichier après NUM lignes matchant.
-o, --only-matching Affiche seulement les parties matchants des lignes matchant.
-q, --quiet, --silent N'affiche rien sur stdout. Quitte avec un status 0 si un match est trouvé, même si une erreur a été détectée.
-s, --no-messages Supprime les messages d'erreur sur des fichiers non-existants ou illisibles.

Options - contrôle de préfixe de ligne

-b, --byte-offset Affiche l'offset dans le fichier d'entrée avant de sortir chaque ligne. si -o est spécifié, affiche l'offset de la partie matchant elle-même.
-H, --with-filename Affiche le nom de fichier pour chaque match. C'est le défaut quand il y a plus d'une fichier à rechercher.
-h, --no-filename Supprime l'ajoute du nom de fichier dans la sortie. C'est le défaut quand il n'y a qu'un fichier ou seulement l'entrée standard à rechercher
--label=LABEL Affiche l'entrée venant de stdin comme entrant depuis le fichier LABEL. Utile pour implémenter des outils comme zgrep (ex: gzip -cd foo.gz | grep --label=foo -H something)
-n, --line-number Préfixe chaque ligne de sortie avec le numéro de ligne dans son fichier d'entrée
-T, --initial-tab S'assure que le premier caractère du contenu de la ligne courante s'appuis sur une tabulation, pour que l'alignement des tabulation semblent normales. Utile avec les options qui préfixent leur sortie avec le contenu actuel.
-u, --unix-byte-offsets Reporte les offsets dans le style Unix.
-Z, --null Affiche un ASCII NUL au lieu du caractère qui suit normalement un nom de fichier.

Options - Contrôle de ligne de contexte

   Sans regarder comment ces options sont définies, grep n'affiche jamais une ligne donnée plus d'une fois. Si -o est spécifié, ces options n'ont pas d'effet et une alerte est donée.

-A NUM, --after-context=NUM Affiche NUM lignes supplémentaires après chaque ligne matchant
-B NUM, --before-context=NUM Affiche NUM lignes supplémentaires avant chaque ligne matchant
-C NUM, -NUM, --context=NUM Affiche NUM lignes avant et après chaque ligne matchant
--group-separator=STRING Avec -A, -B ou -C, affiche un séparateur entre les groupes de ligne
--no-group-separator Avec -A, -B ou -C, n'affiche pas de séparateur entre les groupes de ligne

   Notes sur la manière dont grep choisis le séparateur pour affiche les préfixes:

        - Les lignes matchant utilisent normalement ':' comme séparateur entre les préfixes et le contenu de la ligne courante
        - Les ligne non-matchant utilisent - à la place
        - Quand le context n'est pas spécifié, les lignes adjacentes dans l'entrée forment un groupe et sont affiche un après l'autre, alors qu'un séparateur apparaît entre les groupes non-adjacents
        - Le séparateur par défaut est --
        - Chaque groupe peut contenir de nombreuses lignes matchant quand elles sont suffisamment proches et peuvent être fusionnés en une simple zone contigüe.

Options - Sélection de fichier et de répertoire

-a, --text Traite un fichier binaire comme si c'était du texte.
--binary-files=TYPE Trait le fichier contenant des données binaire en assumant que le fichier est du type spécifié: binary, without-match, text.
-D ACTION, --devices=ACTION Si un fichier d'entrée est un périphérique, FIFO ou socket, utilise ACTION pour le traiter. Si ACTION est 'read', tous les périphériques sont lus comme si c'étaient des fichiers ordinaires. Si ACTION est 'skip', les périphérique, FIFO, et sockets sont ignorés silencieusement.
-d ACTION, --directories=ACTION Si un fichier d'entrée est un répertoire, utilise l'action pour le traiter. par défaut, ACTION est 'read', qui signifie que les répertoires sont lus comme si c'était des fichiers ordinaires. Si ACTION est 'skip', les répertoire sont ignorés silencieusement. 'recurse' lis tous les fichiers sous chaque répertoire, recursivement.
--exclude=GLOB Saute les fichiers de la ligne de commande avec un suffix de nom qui matche le glob.
--exclude-from=FILE Saute les fichiers dont les noms matchent un des patterns lus depuis le fichier spécifié.
--exclude-dir=GLOB Saute les répertoires de la ligne de commande avec un suffix qui matche le glob.
-I Traite un fichier binaire comme s'il ne contenait pas de données correspondantes. (équivalent à --binary-files=without-match)
--include=GLOB Ne recherche que les fichiers dont les noms matchent le glob.
-r, --recursive Pour chaque opérande répertoire, lit et traite tous les fichiers dans ce répertoire, récursivement. identique à --directories=recurse
-R, --dereference-recursive Pour chaque opérande répertoire, lit et traite tous les fichiers dans ce répertoire, en suivant tous les liens symboliques.

Autres options

--line-buffered Utilise le tampon de ligne sur la sortie. Peut réduire les performances
-U, --binary Traite les fichiers en binaire.
-z, --null-data Traite les données d'entrée et de sortie comme séquence de lignes, chacune terminée par un ASCII NUL au lieu d'un newline.

Variables d'environnement

LC_ALL Spécifie la locale
LC_COLLATE Spécifie la locale pour la catégorie LC_COLLATE
LANG Spécifie la locale
LC_TYPE Spécifie la locale pour la catégorie LC_CTYPE
LC_MESSAGES Spécifie la locale pour la catégorie LC_MESSAGES
LANGUAGE Contient une liste séparée par ',' de langages qui remplacent les variables LC_ALL, LC_XXX et LANG
GREP_COLORS Spécifie les couleurs et autres attributs utilisés pour colorer la sortie:

        sl= Lignes sélectionnées
        cx= Lignes de context
        rv booléen inversant la signification de sl et cx
        mt=01;31 Texte non-vide dans un ligne matchant.
        ms=01;31 Texte non vide matchant dans une ligne matchant
        mc=01;31 texte non-vide matchant dans une ligne de contexte
        fn=35 Sous-chaîne our les noms de fichier préfixant une ligne
        ln=32 Sous-chaîne pour les numéros de ligne préfixant une ligne
        bn=32 Offset préfixant une ligne
        se=36 Séparateur inséré entre les champs, entre les lignes de contexte et entre les groupes de lignes adjacentes
        ne Booléen qui empêche d'effacer la fin d'une ligne avec Erase in Line (EL) à droite chaque fois qu'un élément colorisé prend fin.

POSIXLY_CORRECT grep se conforme à POSIX
_N_GNU_nonoption_argv_flags_ Où N est l'ID de processus grep. Si le I-ième caractère de cette variable est 1, ne pas considérer la I-ème opérande de grep comme option. Un shell peut définir cette variable pour chaque commande qu'il lance, en spécifiant quels opérandes sont le résultat d'une expansion de nom de fichier. Uniquement avec POSIXLY_CORRECT

Codes de sortie

   Normalement, le code de sortie est 0 si une ligne est sélectionnée, 1 si aucune ligne n'est sélectionnée, et 2 si une erreur se produit.

Programmes grep

   grep recherche dans les fichiers nommés en entrée à la recherche de lignes contenant un match. Par défaut, grep affiche les lignes matchants. Un fichier nommé '-' signifie l'entrée standard. Si aucune entrée n'est spécifiée, grep recherche le répertoire courant. Si une options spécifie la récursion, cependant, grep recherche l'entrée standard. Il y a 4 variantes majeurs de grep, contrôlés par les options suivantes:

-G, --basic-regexp Interprète le pattern comme expression régulière basique. c'est le mode pas défaut
-E, --extended-regexp Interprète le pattern comme expression régulière étendue.
-F, --fixed-string Interprète le pattern comme une liste de chaîne fixes au lieu d'expressions régulières, séparér par des newline, un d'entre eux doit matcher.
-P, --perl-regexp Interprète le pattern comme expression régulière compatible perl.

Expressions régulières

   Une expression régulière est un pattern qui décrit un jeu de chaînes. Les expressions régulières sont construites analoguement aux expressions arithmétiques, en utilisant divers opérateurs pour combiner des expressions plus petites. Grep comprend 3 types d'expressions régulière: basique, étendue, et perl. La suite décrit les expressions régulières étendue.

Structure fondamentale

. matche un simple caractère
? L'élément précédent est optionnel et est matché une fois au plus
L'élément précédent est matché 0 ou plusieurs fois
+ L'élément précédent est matché 1 ou plusieurs fois
{N} L'élément précédent est matché N fois
{N,} L'élément précédent est matché au moins N fois
{,M} L'élément précédent est matché au plus N fois
{N,M} L'élément précédent est matché au moins N fois et au plus M fois.

Classes de caractère et expressions entre crochet

[:alnum:] Caractères alphanumériques =[0-9A-Za-z]
[:alpha:] Caractère alphabétiques [A-Za-z]
[:blank:] Caractères blancs: espace et tabulation
[:cntrl:] Caractères de contrôle
[:digit:] Chiffres [0-9]
[:graph:] Caractères graphiques: [:alnum:] et [:punct:]
[:print:] Caractères imprimables. [:alnum:], [:punct:], et espace
[:punct:] caractères de ponctuation ‘! " # $ % & ' ( ) * + , - . / : ; ‹ = › ? @ [ \ ] ^ _ ` { | } ~’
[:space:] Caractères espace
[:lower:] caractères minuscules [a-z]
[:upper:] Caractères majuscules [A-Z]
[:xdigit:] Chiffres hexadécimaux [0-9A-Fa-f]

   La plupart des méta-caractères perdent leur signification spéciale dans les expressions entre crochet.

] Termine une expression crochet si ce n'est pas le premier élément de la liste
[. Représente le symbole d'ouverture de regroupement.
.] Représente le symbole de fermeture de regroupement
[= Représente l'ouvertuse de classe équivalente
=] Représente la fermeture de classe équivalente
[: Représente le symbole d'ouverture de classe de caractère
:] Représente le symbole de fermueture de classe de caractère
- Représente la plage si ce n'est pas le premier ou le dernier caractère
^ Représente les caractères qui ne sont pas dans la liste.

Le caractère \\ et des expressions spéciales

\b Matche la chaîne vide au bord d'un mot
\B Matche la chaîne vide qui n'est pas au bord d'un mot
\‹ Matche la chaîne vide au début d'un mot
\› Matche la chaîne vide à la fin d'un mot
\w Matche un constituant d'un mot, synomyme de [_[:alnum:]]
\W Match un non-constituant de mot, synomyme de [^_[:alnum:]]
\s Matche un espace blanc, synomyme de [[:space:]]
\S Matche un non-espace, synonyme de [^[:space:]]

ancre

   ^ et $ sont des méta-caractères qui matchent respectivement la chaîne vide au début de ligne et la fin de ligne.

Références et sous-expressions

   Le back-reférence, \N, où N est un simple chiffre, matche la sous-chaîne précédemment matchée par la N-ième sous-expression entre parenthèses de l'expression régulière. Par exemple, (a)\1 matche 'aa'.

Expressions régulières basiques et étendues

   Dans les expressions régulières basiques, les méta-caractères '?', '+', ‘{’, ‘|’, ‘(’, et ‘)’ perdent leur signification spéciales, utiliser leur versions échappées \.

   egrep ne supporte pas le méta-caractère { et certaines implémentations supportent \{, les scripts portables doivent éviter { dans les pattern grep -E, et utiliser [{].

Exemples

Lister simplement les noms des fichiers qui matchent
grep -l 'main' *.c
Rechercher récursivement
grep -r 'hello' /home/gigi
Rechercher seulement dans les fichiers C
find /home/gigi -name '*.c' -print0 | xargs -0r grep -H 'hello'
Similairement
grep -rH --include='*.c' 'hello' /home/gigi
Recherche toutes les lignes matchant --cut here--
grep -e '--cut here--' *
Recherche seulement les instances de hello qui sont des mots entiers:
grep -w 'hello' *
Et ne matche pas Othello. Pour plus de contrôle, utilise \‹ et \›
grep 'hello\›' *
Afficher le contexte autour des lignes qui matchent
grep -C 2 'hello' *
Forcer grep à afficher le nom d'un fichier
grep 'eli' /etc/passwd /dev/null
ou encore
grep -H 'eli' /etc/passwd
Rechercher sur l'entrée standard et dans les fichiers
cat /etc/passwd | grep 'alain' - /etc/motd
Comment exprimer des palindromes en expressions régulières
grep -w -e '\(.\)\(.\).\2\1' file
^
13 juillet 2010

htmlpdflatexmanmd




groups

groups

Affiche les noms des groupes d'un utilisateur

   groups affiche les noms des groupes primaire et supplémentaires pour chaque utilisateur donné, ou du processus courant si aucun nom n'est spécifié. est identique à id -Gn

^
07 juin 2010

htmlpdflatexmanmd




head

head

Affiche la première partie de chaque fichier - 10 lignes par défaut

   Si plusieurs fichiers sont spécifiés, head affiche un en-tête d'une ligne affichant le nom du fichier sous la forme :

  ==› FILE NAME ‹==

OPTIONS

-c N, --bytes=N Affiche les N premiers octets au lieu de lignes. Si N commence avec un '-', affiche tout sauf les derniers N octets de chaque fichier. N accèpte un suffixe multiplicateur.
N, --lines=N Sort les première N lignes. Identique à l'options -c
-q, --quiet, --silent N'affiche pas les en-têtes
-v, --verbose affiche toujours les en-têtes
^
14 juillet 2010

htmlpdflatexmanmd




hostid

hostid

Affiche l'id de l'hôte

   hostid affiche l'identifiant numérique de l'hôte courant. Sur ce système, cette valeur est proche de l'adresse Internet du système, mais ce n'est pas toujours le cas

^
13 juillet 2010

htmlpdflatexmanmd




id

id

id affiche des informations sur l'utilisateur donné, ou l'utilisateur qui lance id si aucun argument n'est spécifié.

   Par défaut, id affiche le real user ID, real group ID, l'effective user ID s'il est différent, l'effective group ID s'il est différent et les ID de groupes supplémentaires.

OPTIONS

-g, --group Affiche seulement le group ID
-G, --groups Affiche seulement le group ID et les groupes supplémentaires.
-n, --name Affiche l'utilisateur ou le groupe au lieu des ID. s'utilise avec -u, -g ou -G.
-r, --real Affiche le real user ID et ou le real group ID au lieu de l'effectif. s'utilise avec -u, -g ou -G.
-u, --user Affiche seulement l'ID de l'utilisateur
-Z, --context Affiche seulement le contexte de sécurité de l'utilisateur courant, si SELinux est activé.
^
30 juin 2010

htmlpdflatexmanmd




install

install

Copie de fichiers tout en définissant les bits de mode et, si possible, le user et group

   Si 2 noms de fichiers sont spécifiés, copie le premier dans le deuxième.

  Si -t est donné, ou le dernier fichier est un répertoire et -T est donné, copie chaque source dans ce répertoire.

  Si -d est spécifié, crée chaque répertoire et les dossiers parents manquant. Les parents sont créer avec le mode u=rwx,gorx.

  install est similaire à cp mais permet de contrôler les attributs des fichiers de destination. install ne préserve jamais les attributs étendus.

OPTIONS

-b, --backup[=METHOD] Créer une sauvegarde de chaque fichier qui aurait été écrasé ou supprimé.
-D crée les répertoires parents manquant de destination, puis copie la source dans la destination.
-d, --directory Crée les répertoires manquant, donnant les attributs par défaut.
-g GROUP, --group=GROUP Définit le groupe des fichiers installés
-m MODE, --mode=MODE Définit les bits de mode pour les fichiers installés. Peut être spécifié en octal, ou un mode symbolique comme avec chmod.
-o OWNER, --owner=OWNER Définit le propriétaire des fichiers installés.
--preserve-context Préserve le contexte de sécurité SELinux des fichiers.
--preserve-timestamp Défini le atime et le mtime de chaque fichier installé pour correspondre aux fichiers originaux.
-S SUFFIX, --suffix=SUFFIX ajoute un suffixe à chaque ficher de backup crée avec -b
-t DIRECTORY, --target-directory=DIRECTORY spécifie le répertoire de destination.
-T, --no-target-directory Ne traite pas la dernière opérande spécialement quand c'est un répertoire ou un lien symbolique.
-v, --verbose Affiche le nom de chaque fichier avant de la copier.
-Z CONTEXT, --context=CONTEXT Définit le contexte de sécurité SELinux à utiliser pour les fichiers crées.
^
09 juin 2010

htmlpdflatexmanmd




join

join

Écrit sur la sortie standard une ligne pour chaque paire de lignes en entrée qui ont des champs identiques

   Normalement, l'ordre de trie est spécifiée par LC_COLLATE. A moins que -t ne soit donné, la comparaison ignore les blancs au début et à la fin des champs joints, comme avec sort -b. Si --ignore-case est donné, la comparaison ignore la casse, comme avec sort -f

  Il peut être utile d'utiliser sort -k 1b,1 pour trier un fichier en champs à joindre.

OPTIONS

-a FILE-NUMBER Affiche une ligne pour chaque ligne 'unpairable' dans le fichier FILE-NUMBER (soit 1 soit 2), en plus de la sortie normale.
--check-order Quitte avec un message d'erreur si un fichier d'entrée n'est pas ordonné correctement.
--nocheck-order Ne vérifie pas si les fichiers en entrées sont triés. mode par défaut.
-e STRING Remplace les champs en sortie qui sont manquant dans l'entrée avec STRING.
-i, --ignore-case Ignore la casse.
-1 FIELD Joint sur le champs FIELD du fichier 1
-2 FIELD Joint sur le champs FIELD du fichier 2
-j FIELD Equivalent à -1 FIELD -2 FIELD
-o FIELD-LIST Construit chaque ligne en sortie en accord avec le format de FIELD-LIST. Chaque élément dans FIELD-LIST est soit le caractère '0' ou a la forme M.NM le numéro du fichier (1 ou 2) et N un numéro de champ.
-t CHAR Utilise le caractère CHAR comme séparateur de champ d'entrée et de sortie. Utiliser sort -t CHAR pour produire cet ordre.
-v FILE-NUMBER Affiche une ligne pour chaque ligne 'unpairable' dans FILE-NUMBER (soit 1 soit 2), au lieu de la sortie standard

Exemples

cat file1
a a1
c c1
b b1
cat file2
a a2
c c2
b b2
join file1 file2
a a1 a2
c c1 c2
b b1 b2
^
02 juillet 2010

htmlpdflatexmanmd




link

link

Créer un lien dur, interface minimaliste à la fonction système link

   link FILENAME LINKNAME

  FILENAME doit être un fichier existant, et LINKNAME doit spécifier une entrée inexistante dans un répertoire existant. Cette commande agit comme ln --directory --no-target-directory FILENAME LINKNAME

^
02 juillet 2010

htmlpdflatexmanmd




ln

ln

Créer des liens entre les fichiers

   ln crée des liens entre les fichiers. Par défaut il crée des liens dur, -s permet de créer des liens symbolique.

  - si 2 fichiers sont donnés, ln crée un lien du premier fichier dans le second.

  - si une cible est donnée, ln crée un lien de ce fichier dans le répertoire courant

  - si -t est donné ou si le dernier fichier est un répertoire et que -T n'est pas donné, ln crée un lien de chaque cible dans le répertoire spécifié, en utilisant le nom des cibles.

  Normalement ln ne supprime pas de fichiers existant, utiliser -f pour supprimer automatiquement, -i pour demander avant de supprimer, ou -b pour les renommer.

   Un lien dur est un autre nom pour un fichier existant ; le lien et l'original ne sont pas distinct. ils partagent le même inode. Vous ne pouvez pas créer un lien dur sur un répertoire, et les liens dur ne peuvent pas être sur un autre système de fichier que l'original.

  Les lien symboliques, sont un type de fichier spécial dans lequel le lien réfère à un fichier différent. Les liens symboliques peuvent contenir des chaînes arbitraires; un "dangling symlink" se produit quand la chaîne ne résout pas un fichier. Un lien symbolique absolue pointe toujours sur le même fichier, même si le dossier contenant le lien est déplacé, à l'exception des liens visible depuis une autre machine. Un lien symbolique relatif est toujours résolu en relation avec le répertoire qui contient le lien, et est souvent utile pour référer aux fichiers sur le même périphérique sans regarder le nom sous lequel le périphérique est monté.

OPTIONS

-b, --backup[=METHOD] Crée un backup de chaque fichier qui serait supprimé ou écrasé.
-d, -F, --directory Tente de créer un lien dur sur les répertoire, mais va probablement échouer à cause des restrictions systèmes.
-f, --force Supprime les fichiers de destination existant.
-i, --interactive Demande avant de supprimer les fichiers de destination
-n, --no-dereference Ne traite pas la dernière opérande spécialement quand c'est un répertoire ou un lien symbolique.
-s, --symbolic Créer des liens symboliques.
-S SUFFIX, --suffix=SUFFIX ajoute un suffixe au backup crées avec -b
-t DIRECTORY, --target-directory=DIRECTORY Spécifie le répertoire de destination
-T, --no-target-directory Ne traite pas spécialement la dernière opérande quand c'est un lien symbolique ou un répertoire.
-v, --verbose affiche le nom de chaque fichier après l'avoir lié avec succès.
^
13 juillet 2010

htmlpdflatexmanmd




logname

logname

Affiche le nom d'utilisateur appelant

   logname affiche le nom d'utilisateur appelant, comme trouvé dans /var/run/utmp ou /etc/utmp.

^
28 juin 2010

htmlpdflatexmanmd




ls

ls, dir, vdir

Liste les informations sur les fichiers

   Pour les arguments non-options qui sont des répertoires, par défaut ls liste le contenu ces répertoires, non récursivement, et omet les fichiers cachés. Par défaut la sortie est triée alphabétiquement.

  dir est équivalent à ls -C -b

  vdir est équivalent à ls -l -b

Codes de sortie

0 succès
1 problèmes mineurs
2 problèmes sérieux

Options: fichiers listés

-a, --all Affiche également les fichiers cachés.
-A, almost-all identique, mais ignore '.' et '..'
-B, --ignore-backups ignore les fichiers se terminant par '~'
-d, --directory liste seulement le nom des dossiers, au lieu de lister leur contenu. ne suit pas les liens symbolique. a moins que -H, ou -L ne soit spécifié.
-H, --dereference-command-line si la ligne de commande spécifie un lien symbolique, affiche des informations sur la référence au lieu du lien lui-même.
--dereference-command-line-symlink-to-dir ne déréférence pas les liens symboliques, avec une exception : si un argument de ligne de commande spécifie un lien symbolique qui réfère à un répertoire, affiche les informations pour ce répertoire au lieu du lien. c'est le mode par défaut.
--group-directories-first Groupe tous les fichiers, puis les affiche avant les fichiers.
--hide=PATTERN Dans les dossiers, ignore les fichiers dont le nom correspond à PATTERN, identique à -I, sauf si -a ou -A est donné.
-I PATTERN, --ignore=PATTERN Dans les dossiers, ignore les fichiers correspondant à PATTERN.
-L, --dereference En affichant les informations de fichier sur un lien symbolique, affiche les informations pour la référence au lieu du lien lui même, cependant ls affichera toujours le nom du lien symbolique.
-R, --recursive Liste le contenu de tous les répertoires récursivement.

Options: informations affichées

--author Liste chaque auteur de fichier en produisant un listing au format long.
-D, --dired Avec le fomat long -l, affiche une ligne additionnelle après la sortie principale du type : //DIRED// BEG1 END1 BEG2 END2 ....

           BEGN et ENDN sont des entiers non-signés qui enregistrent la position de l'octet du début et de la fin de chaque non de fichier dans la sortie.

  Si les dossiers sont listés récursivement, une sortie est produite pour les sous-répertoire :

  //SUBDIRED// BEG1 END1

  et enfin, une ligne sous la forme :

  //DIRED-OPTIONS// --quoting-style=WORD

--full-time Affiche la la date au format long.
-g N'affiche pas le propriétaire du fichier.
-G, --no-group N'affiche pas le groupe propriétaire du fichier
-h, --human-readable Affiche la taille de chaque fichier avec un préfixe.
-i, --inode Affiche le numéro d'inode de chaque fichier
-l, --format=long, format=verbose Affiche le type de fichier, les permissions, user:group, la taille et la date.

        Le type de fichier est un des suivant :
        - fichier régulier
        b fichier spécial block
        c fichier spécial caractère
        C Fichier haute performance
        d répertoire
        l lien symbolique
        p FIFO
        s socket
        ? autre
       
        les bits de mode :
        s set-user-ID ou set-group-ID et le bit exécutable correspondant sont mis
        S set-user-ID ou set-group-ID et mis mais pas le bit exécutable correspondant
        t sticky bit et le bit exécutable au autres sont mis
        T sticky bit est mis mais pas le bit exécutable aux autres
        x le bit exécutable est mis
        - rien n'est mis
        ls utilise un '.' pour indiquer un fichier avec SELinux, mais sans autre méthode d'accès alternatif.

-n, --numéric-uid-gid affiche l'ID des user:group au lieu des noms.
-o n'affiche pas les information de groupe
-s, --size affiche l'allocation de disque de chaque fichier. C'est la quantité d'espace disque utilisé par le fichier, qui est généralement un petit peu plus que la taille du fichier.
--si identique à -h, mais utilise les puissance de 1000.
-Z, --context Affiche le contexte de sécurité SELinux ou ' ?' si rien n'est trouvé.

Options: trie

-c, --time=ctime, --time=status si -l ou -o est utilisé, affiche le ctime au lieu du mtime.
-f ne trie pas les fichiers
-r, --reverse inverse l'ordre de trie
-S, --sort=size trie par taille, du plus gros au plus petit
-t, --sort=time trie par mtime, du plusrécent au plus ancien
-u, --time=atime, --time=access, -time=use affiche le atime au lieu du mtime
-U, --sort=version trie par numéro et nom de version, le plus faible en premier.
-X, --sort=extension trie alphabétiquement par extension de fichier.

Options: formatage de la sortie

-1, --format=single-column liste les fichiers, un par ligne
-C, --format=vertical Liste les fichiers en colonne, triés verticalement.
--color [=WHEN] Utilise des couleurs pour distinguer les types de fichiers. WHEN peut être :

        none N'utilise pas les couleur
        auto utilise uniquement les couleur si la sortie standard est le terminal
        always utilise toujour les couleurs

-F, --classify, --indicator-style=classify Ajoute un caractère à chaque fichier indiquant le type de fichier :

         *  exécutable
        / répertoire
        @ lien symbolique
        | fifo
        = socket

--file-type, --indicator-style=file-type Ajoute un caractère à chaque fichier indiquant le type de fichier. identique à -F mais n'indique pas les exécutables.
--indicator-style=WORD Ajoute un caractère à chaque nom de fichier du type WORD :

        none n'ajoute pas de caractère.
        slash Ajoute un / pour les répertoires. identique à -p
        file-type dentique à --file-type
        classify ajoute un * aux fichier réguliers exécutables, sinon fonctionne comme file-type. identique à -F ou --classify

-k affiche la taille des fichiers en blocks de 1024 octets.
-m, --format=commas Liste les fichiers horizontalement, autant qu'il pourra sur chaque ligne, séparés par ', '
-p, --indicator-style=slash ajoute un / à chaque dossier
-x, --format=across, format=horizontal Liste les fichiers en colonnes, triés horizontalement
-T COLS, --tabsize=COLS Définit la largeur des tabulations (défaut 8).
-w, --width=COLS définit la largeur de l'écran. par défaut utilise les paramètres du terminal ; sinon la variable d'environnement COLUMNS est utilisé si elle est définie, sinon le défaut est 80.
--time-style=STYLE liste la date dans le style STYLE :

        +FORMAT FORMAT est interprété comme un argument de date.
        full-iso affiche la date en utilisant ISO 8601. le style est équivalent à +%Y-%m-%d %H:%M:%S.%N %z
        long-iso Liste la date au format ISO 8601. est équivalent à +%Y-%m-%d %H:%M
        iso liste au format ISO 8601 pour les date anciennes. est équivalent à +%Y-%m-%d $newline%m-%d %H:%M
        locale affiche la date sous la forme locale, généralement définit par LC_TIME.
        posix-STYLE affiche la date au format posix. STYLE peut être un des précédent.

Options: formater les noms des fichiers

-b, --escape, --quoting-style=escape met un '\' devant les caractères non graphiques
-N, --literal, --quoting-style=literal ne quote pas les noms de fichier. les caractères non-graphique sont affichés avec un 'question mark' si la sortie est le terminal.
-q, --hide-control-chars affiche un 'question mark' au lieu des caractères non-graphiques dans les noms de fichier.
--show-control-chars Affiche les caractères non-graphique tels quel dans les noms de fichier.
-Q, --quote-name, quoting-style=c Met les noms de fichier entre '"'.
--quoting-style=WORD WORD peut être :

        literal affiche les noms tels quels
        shell met les noms de fichier entre ' s'ils contiennent des méta-caractères.
        shell-always met tous les noms de fichier entre '
        c Met les nom de fichier entre "
        escape met un '\' devant les caractères non graphiques
        clocale met les noms de fichier entre ` et '
        locale identique à clocale
        On peut spécifier la valeur par défaut de --quoting-style avec la variable d'environnement QUOTING_STYLE.

Variables d'environnement

QUOTING_STYLE Spécifie la valeur par défaut de --quoting-style
^
07 juin 2010

htmlpdflatexmanmd




md5sum

md5sum

Calcul un checksum 128-bits pour chaque fichier spécifié

OPTIONS

-b, --binary Traite chaque fichier en binaire, en le lisant en mode binaire, préfixe le nom du fichier par '*'. Principalement utile sur les systèmes MS-DOS.
-c, --check Lit les informations de checksum et de nom de fichier dans le fichier et report si le checksum correspond avec le fichier nommé. Le format du fichier d'entrée est généralement le format de sortie d'un md5sum précédent.
--quiet Cette option est utile seulement quand on vérifie les checksums. Ne génère pas de 'OK' pour chaque message vérifié avec succès.
--status Cette option est utile seulement quand on vérifie les checksums. Ne génère pas de diagnostic et ne sort pas d'alerte en cas d'erreur.
-t, --text Traite chaque fichier en entrée comme texte. Utile pour les systèmes de type MS-DOS.
-w, --warn En vérifiant les checksums, alerte sur les ligne de checksums MD5 mal formatés.
^
02 juillet 2010

htmlpdflatexmanmd




mkdir

mkdir

Créer des répertoires

   mkdir crée des répertoires avec les noms spécifiés. par défaut, reporte une erreur si un répertoire existe déjà.

OPTIONS

-m MODE, --mode=MODE définit les bits de permission de fichier des répertoires crées. Utilise la même syntaxe que chmod.
-p, --parents Crée les dossiers parents manquants pour chaque argument. leur bits de mode sont u+rwx.
-v, --verbose Affiche un message pour chaque fichier crée.
-Z CONTEXT, --context=CONTEXT Définit le contexte de sécurité SELinux à utiliser pour créer les répertoires.
^
02 juillet 2010

htmlpdflatexmanmd




mkfifo

mkfifo

Créer des fichiers fifo

   Un FIFO est un fichier spécial qui permet à des processus indépendant de communiquer. Un processus ouvre le fichier FIFO en écriture, et un autre processus ouvre ce même fichier FIFO en lecture.

OPTIONS

-m MODE, --mode=MODE définit le mode des FIFO crées, utilise la même syntaxe que chmod.
-Z CONTEXT, --context=CONTEXT Définis le contexte de sécurité SELinux à utiliser pour créer les FIFO.
^
02 juillet 2010

htmlpdflatexmanmd




mknod

mknod

Créer des fichiers spéciaux fifo, caractère ou block

   mknod [OPTION]... NAME TYPE [MAJOR MINOR]

  Le terme fichier spécial a une signification spécial sous unix: quelque-chose qui peut générer ou recevoir des données. Généralement, cela correspond à un périphérique physique. La commande mknod crée ce type de fichier. De tels périphériques peuvent être lus soit un caractère à la fois, soit par block. les arguments après le nom sont :

p pour un FIFO
b pour un fichier spécial block
c pour un fichier spécial caractère

   En créant un fichier spécial block ou caractère, les numéros de périphérique major et minor doivent être donnés. Ils peuvent être donnés en hexa, octal ou décimal.

OPTIONS

m MODE, --mode=MODE Définit le mode des fichiers crées, la syntaxe est de type chmod.
-Z CONTEXT, --context=CONTEXT Définit le contexte de sécurité SELinux utilisé pour créer les fichiers.
^
30 juin 2010

htmlpdflatexmanmd




mv

mv

Déplace ou renomme des fichiers

   Si 2 noms de fichiers sont spécifiés, déplace le premier fichier dans le second.

  Si -t est donnés ou que le dernier fichier est un répertoire et que -T est donné, déplace chaque fichier source dans le répertoire spécifié.

  mv peut déplacer n'importe quel type de fichier, d'un système de fichier vers un autre. mv essaye toujours de copier les attributs étendus. Si un fichier de destination existe mais n'est pas en écriture, que l'entrée est un terminal, et que -f n'est pas donné, mv demande confirmation pour remplacer le fichier.

OPTIONS

-b, --backup[=METHOD] Créer une sauvegarde de chaque fichier qui aurait été écrasé ou supprimé.
-f, --force Ne demande pas confirmation avant de supprimer un fichier de destination.
-i, --interactive Demande confirmation pour écraser un fichier existant dans la destination.
-n, --no-clobber N'écrase pas un fichier existant
-u, --update Ne déplace pas de fichier autre que répertoire qui a une destionation avec le mtime identique ou plus récent.
-v, --verbose affiche le nom de chaque fichier avant de le déplacer.
--strip-trailing-slashes supprime les '/' de fin de chaque argument de source.
-S SUFFIX, --suffix=SUFFIX ajoute un suffix au fichier de backup crées avec -b
-t DIRECTORY, --target-directory=DIRECTORY Spécifie le répertoire de destination
-T, --no-target-directory ne traite pas le dernier opérande spécialement quand c'est un répertoire ou un lien symbolique.
^
05 juin 2010

htmlpdflatexmanmd




nl

nl

Écrit chaque fichier ou l'entrée standard sur la sortie standard, et ajoute les numéros de ligne à certaines ou toutes les lignes.

   nl décompose son entrée en pages. Par défaut, le numéro de ligne est remis à 1 en haut de chaque page. nl traite tous les fichiers en entrée comme un simple document, il ne reset pas les numéros de lignes entre les fichiers.

  Une page consiste en 3 sections : header, body et footer. Il peut y'avoir des sections vides. Chacune peut être numérotée dans un style différent.

  Le début de chaque section des pages est indiqués dans le fichier d'entrée par une ligne contenant un de ces délimiteur :

        \ :\ :\ : début du header
        \ :\ : début du body
        \ : début du footer

OPTIONS

-b STYLE, --body-numbering=STYLE Selectionne le style de numérotation des lignes pour la section body :

        a numérote toutes les lignes
        t Numérote seulemet les lignes non vide
        n ne numérote pas les lignes
        pBRE numérote uniquement les lignes qui contiennent une correspondance de l'expression régulière BRE

-d CD, --section-delimiter=CD Définis les caractères de délimitation des sections.
-f STYLE, --footer-numbering=STYLE identique à -b mais pour la section footer
-h STYLE, --header-numbering=STYLE identique à -b mais pour la section header
-i NUMBER, --page-increment=NUMBER Incrémente les numéros de ligne par NUMBER (défaut : 1)
-l NUMBER, --join-blank-lines=NUMBER NUMBER lignes vide consécutives sont considérées comme une seule (défaut : 1), et n'en numérote qu'une seule. Une ligne vide ne contient aucun caractère, y compris de caractères blanc.
-n FORMAT, --number-format=FORMAT Sélectionne le format de numérotation de ligne (défaut : rn)

        ln justifié à gauche
        rn justifié à droite
        rz justifié à droite et remplit de zéro.

-p, --no-renumber Ne reset pas le numéro de ligne au début d'une page.
-s STRING, --number-separator=STRING Sépare le numéros de ligne du texte avec STRING (défaut : TAB)
-v NUMBER, --starting-line-number=NUMBER Définit le numéro de ligne initial sur chaque page à NUMBER (défaut 1)
-w, --number-width=NUMBER Utilise NUMBER caractères pour les numéros de lignes (défaut : 6)
^
15 juillet 2010

htmlpdflatexmanmd




nohup

nohup

Lancer une commande de manière à ce que les signaux hangup soient ignorés.

   nohup lance la commande spécifié de manière à ce que les signaux hangup soient ignorés, donc une commande peut continuer même après s'être déconnecté. Si l'entrée standard est le terminal, elle est redirigé vers /dev/null. Si la sortie standard est un terminal, elle est redirigé vers le fichier nohup.out, ou $HOME/nohup.out s'il ne peut pas être accédé en écriture. Si l'erreur standard est un terminal, elle est redirigé vers le même descripteur de fichier que la sortie standard. nohup ne place pas automatiquement la commande en fond, vous devez le faire explicitement, en terminant la ligne de commande avec un &.

Exemple

Pour rediriger la sortie d'un commande lancée avec nohup:
nohup make › make.log
^
05 juin 2010

htmlpdflatexmanmd




od

od

Écrit une représentation de chaque fichier ou de l'entrée standard

   Chaque ligne de sortie consiste de l'offset dans l'entrée, suivie par un groupe de données du fichier. Par défaut, od affiche l'offset en octal, et chaque groupe de donnée du fichier est de type short int. Si OFFSET est donné, il spécifie combien d'octets passer avant de formater et afficher l'entrée. interprété en octal par défaut.

OPTIONS

-A RADIX, --address-radix=RADIX Selectionne la base pour l'affichage de l'offset :

        d décimal
        o octal
        x hexadécimal
        n n'affiche pas l'offset

-J BYTES, --skip-bytes=BYTES Permet de sauter BYTES octets au début du fichier. si BYTES commence par '0x' ou '0X', il est interprété en hexadécimal, s'il commence par 'O', en octal et sans préfix, en décimal. On peut ajouter un facteur multiplicatif :

        b 512 octets
        KB 10000 octets
        K 1024 octets
        etc...

-N BYTES, --read-bytes=BYTES Sort BYTES octets de l'entrée. les préfixes et suffix sont identique à l'option -J
-S BYTES, --strings[=BYTES] Sort uniquement "string constants" : au moins BYTES caractères graphique ASCII consécutifs, suivis par un ASCII NUL. Les préfixe et les suffixes sont identiques à l'option -J
-t TYPE, --format=TYPE Sélectionne le format de sortie des données du fichier. TYPE est une chaîne d'un ou plusieurs caractère indicateur. suffixer avec 'z' permet d'afficher la représentation ascii à la fin de la ligne, à la façon d'un éditeur hexadécimal.

        a nom du caractère.
        c caractère ASCII
        d décimal signé
        f virgule flottante
        o octal
        u décimal non signé
        x hexadécimal

           Hormis a et c, vous pouvez spécifier le nombre d'octets à utiliser pour interpréter chaque nombre en suffixant l'indicateur avec un entier décimal. Alternativement vous pouvez spécifier la taille avec un de ces types:

  pour d, o, u et x:

                C type char
                S type short
                I type integer
                L type long

           pour f:

                F type float
                D type double
                L type Long double

-v, --output-duplicate Sort les lignes consécutives qui sont identiques. Par défaut, en cas de plusieurs lignes consécutives identique, od ne sort que la première ligne et place un astérisk sur la ligne suivante.
-w[N], --width[=N] Dump N octets en entrée par ligne en sortie. défaut 16. si N est omis, défaut est 32.

           Les options suivante sont des formats cours pour des combinaisons d'options :

        -a Equivalent à -t a
        -b Equivalent à -t o1
        -c Equivalent à -t c
        -d Equivalent à -t u2
        -f Equivalent à -t fF
        -i Equivalent à -t dI
        -l Equivalent à -t dL
        -o Equivalent à -t o2
        -s Equivalent à -t d2
        -x Equivalent à -t x2

Exemples

Affichage dans le style d'un héditeur hexa :
od -vA x -t x2z -N 512 /dev/sda
^
09 juin 2010

htmlpdflatexmanmd




paste

paste

Écrit sur la sortie standard des lignes consistant de lignes correspondante séquentiellement de chaque fichier donné, séparés par une tabulation

OPTIONS

-s, --serial affiche les lignes d'un fichier à la fois au lieu d'une ligne de chaque fichier.
-d DELIM-LIST, --delimiters=DELIM-LIST Utilise les caractères DELIM-LIST au lieu d'une tabulation, en alternant chaque caractère.

Exemples

cat num2
1
2
cat let3
a
b
c
paste num2 let3
1 a
2 b
c
paste -s num2 let3
1 2
a b c
^
07 juillet 2010

htmlpdflatexmanmd




patchchk

patchchk

Vérifie la validité de la portabilité des noms de fichier

   Pour chaque nom, pathchk affiche un message d'erreur si une de ces conditions est vrai:

- Un des répertoires existant dans le nom n'a pas la permission de recherche.
- la longueur du nom est plus large que le maximum supporté par le système.
- la longueur d'un composant du nom est plus long que le maximum du système de fichier.

   Un nom non-existant n'est pas une erreur.

OPTIONS

-p Au lieu d'effectuer une vérification basé sur le système de fichier courant, affiche un message d'erreur si une de ces condifition est vrai:

        - Le nom de fichier est vide
        - Le nom de fichier contient des caractères en dehors du jeu de caractère portable POSIX, qui inclue les lettres et chiffres ASCII, ., ,, _, - et /.
        - La longueur du nom de fichier ou un de ses composant excède la limite POSIX.

-P Affiche un message d'erreur si un nom de fichier est vide, ou s'il contient un composant qui commence avec '-'
--portability Affiche un message d'erreur si le nom n'est pas portable sur tous les hôtes POSIX. equivalent à -p -P
^
16 juillet 2010

htmlpdflatexmanmd




Permissions de fichiers

Permissions de fichiers

Description des permissions de fichiers

Structure des bits de mode de fichier

   Les bits de mode de fichier ont 2 parties, les bits de permission de fichier et les bits de mode spéciaux.

   Il y'a 3 types de permission que l'utilisateur peut avoir pour un fichier:

        1. permission de lire le fichier. pour les répertoires, permission de lister le contenu.
        2. permission d'écrire dans le fichier. pour les répertoire, permet de créer et supprimer des fichiers.
        3. Permission d'exécuter le fichier. pour les répertoires, permet d'accéder aux fichiers.

   Il y'a 3 catégories d'utilisateurs que peuvent avoir différentes permissions:

        1. le propriétaire du fichier
        2. les autres utilisateurs qui sont dans le groupe du fichier
        3. Tous les autres.

   Les fichiers ont un propriétaire et un groupe quand ils sont crées. Généralement le propriétaire est l'utilisateur courant et le groupe est le groupe du répertoire, mais celà dépend des systèmes, le système de fichier, et la manière dont il est créé.

  En plus des 3 catégories de permission, les bits de mode ont 3 composants spéciaux, qui affectent seulement les fichiers exécutables et les répertoires:

1. Définis l'ID de l'utilisateur effectif du processus, appelé le bit set-user-ID ou bit setuid. Pour les répertoires, donne aux fichiers crées le même propriétaire, et définis le set-user-ID pour les sous-répertoire crées.
2. Définis l'ID du groupe effectif du processus, appelé le bit set-group-ID ou bit setgid. Pour les répertoires, donne aux fichiers crées le même groupe, et définis le set-group-ID pour les sous-répertoire crées.
3. Empêche les utilisateurs non privilégiés de supprimer ou renommer un fichier dans un répertoire à moins qu'ils aient leur propre fichiers dans ce répertoire. appelé le restricted deletion flag. Pour les fichiers réguliers sur de vieux systèmes, sauver l'image du programme dans le périphérique swap pour qu'il se charge plus rapidement. Appelé le sticky bit.

   En plus des bits de mode de fichiers ci-dessus, il y'a des attributs de fichiers spécifiques aux systèmes de fichier. Par exemple les ACL, si un fichier est compressé, si un fichier peut être modifié, et si un fichier peut être dumpé. ex:

        ext2 Les attributs spécifiques à ce système de fichier se paramètre avec chattr
        FFS Les attributs spécifiques à ce système de fichier se paramètre avec chflags

Modes Symboliques

   les modes symboliques représentent les changements des bits de mode des fichiers. Le format des modes symboliques est:

  [ugoa...][+-=]PERMS...[,...]

        u Le propriétaire du fichier
        g Les utilisateur du groupe du fichier
        o tous les autres
        a tous les utilisateurs, identique à ugo
       
        + Ajouter les permissions
        - supprimer les permissions
        = définir les permissions
       
        r permission en lecture
        w permission en écriture
        x permet d'exécution.

Exemples

donne accès en lecture/écriture pour tous les utilisateurs:
a=rw
Supprime les permissions en écriture à tous les utilisateurs autre que le propriétaire:
go-w
supprimer tous les droits à tous le monde excepté le propriétaire:
go=
ou
og-rwx

Copier les permissions existantes

   Il est possible de baser les permissions d'un fichier sur des permissions existantes. Il faut utiliser u, g ou o. Par exemple le mode o+g copie les permissions du groupe aux autres utilisateurs.

Changer les bits de mode spéciaux

Pour définir le bits setuid, utiliser u pour la partie user et s dans la partie permissions
Pour définir le bits setgid, utiliser g pour la partie user et s dans la partie permissions
pour définir les bits setuid et setgid, omettre la partie user (ou utiliser a), et s dans la partie permissions
Pour définir le restricted deletion flag ou le sticky bit, omettre la partie user (ou utiliser a) et t dans la partie permissions

Exemples

définir le setuid:
u+s
supprimer le setuid et setgid:
a-s
définit le restricted deletion flag ou le sticky bit:
+t

Exécution conditionnelle

   utiliser 'X' au lieu de 'x' affecte le droit d'exécution/recherche si le fichier est un répertoire ou avait déjà les permissions d'exécution. Par ex: a+X donne à tous les utilisateurs le droit de recherche dans les répertoires, ou d'exécuter les fichiers si quelqu'un pouvait les exécuter avant.

Effectuer plusieurs changements

   Il y'a 2 manières d'effectuer des changement multiples.

La première manière est de spécifier plusieurs opérations. Par exemple, donner aux utilisateurs autre que le propriétaire la permission de lire et si c'est un répertoire ou si quelqu'un avait le droit de l'exécuter, de le faire également. et refuse l'écriture:
og+rX-w
La deuxième manière est de spécifier plus d'un mode symbolique simple. Par exemple, donner à tous le droit en lecture mais refuser l'écriture pour tous les utilisateurs hormis le propriétaire:
a+r,go-w
Définir explicitement toutes les permissions
u=rwx,g=rx,o=
Les 2 méthodes peuvent être combinées
a+r,g+x-W
Donner à tous les utilisateurs le droit en lecture, donner au groupe le droit d'exécution/recherche, mais pas en écriture
u+r,g+rx,o+r,g-w

Umask et protection

   Si la partie user d'un mode symbolique est omis, le défaut est a, excepté pour les permissions qui sont définies dans la variable système umask. La valeur de umask peut être définie en utilisant la commande umask. Sa valeur par défaut varie d'un système à l'autre.

  Omettre la partie user d'un mode symbolique n'est généralement pas très utile sauf avec '+', cela permet d'utiliser umask comme protection facilement personnalisable.

Par exemple, si umask a la valeur 2, qui supprime les permissions en écriture pour les utilisateurs qui ne sont pas dans le groupe du fichier, alors le mode
+w
ajoute la permission au fichier et son propriétaire et au groupe, mais pas aux autres utilisateurs
a+w
ignore umask, et donne le droit à tous les utilisateurs

Modes numériques

   Il est possible de spécfier le mode symbolique en octal. Ce nombre est toujours interprété en octal. Il n'est pas necessaire de rajouter des 0, comme en C. 0055 est le même que 55.

        Tous les autres utilisateurs
        1 Exécution/recherche
        2 Écriture
        4 Lecture
        Les utilisateurs dans le groupe du fichier
        10 Exécution/recherche
        20 Écriture
        40 Lecture
        Le propriétaire
        100 Exécution/recherche
        200 Écriture
        400 Lecture
        bits de mode spéciaux
        1000 Restricted deletion flag ou sticky bit
        2000 Set group ID
        4000 Set user ID

Répertoires avec Set-User-ID et Set-Group-ID

   Sur beaucoup de systèmes, si un répertoire a le setgid de mis, les fichiers nouvellement crées héritent du même groupe que le répertoire, et les sous-répertoire nouvellement crées héritent du setgid. Sur certains systèmes, le setuid a le même effet. Ce mécanisme permet aux utilisateurs de partager des fichiers facilement. Les commandes comme chmod et mkdir effacent ces bits généralement.

        ces commandes laissent le setuid et setgid des sous-répertoires:
        mkdir A B C
        chmod 755 A
        chmod 0755 B
        chmod u=rwx,go=rx C
        mkdir -m 755 D
        mkdir -m 0755 E
        mkdir -m u=rwx,go=rx F
        ces commandes essayent de définit setuid et setgid sur les sous-répertoires:
        mkdir G H
        chmod 6755 G
        chmod u=rwx,go=rx,a+s H
        mkdir -m 6755 I
        mkdir -m u=rwx,go=rx,a+s J
        cette commande essaye de supprimer setuid et setgid du répertoire D:
        chmod a-s D
^
07 juin 2010

htmlpdflatexmanmd




pr

pr

Pagination et multi-colonnes

   pr Écrit chaque fichier ou l'entrée standard sur la sortie standard, pagine et optionnellement sort en format multicolonnes et/ou regroupe tous les fichiers, imprime tout en parallèle, un par colonne.

  Par défaut, un en-tête à 5 lignes est imprimé à chaque page: 2 lignes blanches, une ligne avec la date, le nom du fichier, et le compteur de page, 2 lignes blanches. La longueur par défaut de PAGE_LENGTH est de 66 lignes. Le nombre par défaut de ligne de texte est donc de 56. La ligne de texte de l'en-tête prend la forme DATE STRING PAGE.

  Les colonnes ont une largeur égale, séparée par une chaîne optionnelle (un espace par défaut). Pour les sorties multi-colonnes, les lignes seront toujours tronquées à PAGE_WIDTH (défaut : 72). Pour les sorties simple colonne, aucune ligne n'est tronquée par défaut.

OPTIONS

+FIRST_PAGE[:LAST_PAGE, --pages=FIRST_PAGE[:LAST_PAGE] Commence à afficher avec FIRST_PAGE et stop avec LAST_PAGE.
-COLUMN, --columns=COLUMN Produit COLUMN colonnes en sortie.
-a, --across Affiche les lignes alterné sur les colonnes (type ligne1 ligne2 ligne3...)
-c, --show-control-chars Affiche les caractères de contrôle
-d, --double-space Double l'espace de sortie
-D FORMAT, --date-format=FORMAT Format l'en-tête en utilisant FORMAT, en utilisant la même convention que `date +FORMAT` (défaut : %Y-%m-%d %H :%M et si POSIXLY_CORRECT est spécifié : %b %e %H :%M %Y)
-e[IN-TABCHAR[IN-TABWIDTH]], --expand-tabs[=IN-TABCHAR[IN-TABWIDTH]] Étend les tabulations en espaces en entrée. IN-TABCHAR est le caractère de tabulation en entrée et IN-TABWIDTH et la largeur de la tabulation (par défaut 8)
-f, -F, --form-feed Utilise un saut de page au lieu de newlines pour séparer les pages de sortie. n'altère pas la longueur de page de 66 lignes.
-h HEADER, --header=HEADER Remplace le nom de fichier dans l'en-tête avec la chaine STRING
-i[OUT-TABCHAR[OUT-TABWIDTH]], --output-tabs[=OUT-TABCHAR[OUT-TABWIDTH]] Remplace les espaces avec des tabulations en sortie. OUT-TABCHAR est le caractère de tabulation, OUT-TABWIDTH est la largeur de la tabulation (défaut 8)
-J, --join-lines Fusionne les lignes de pleine longueur. Utilisé avec l'option -COLUMN, -a -COLUMN ou -m. Désactive l'option -w/-W. Aucun alignement de colonne n'est utilisé. Peut être utilisé avec --sep-string[=STRING]
-l PAGE_LENGTH, --length=PAGE_LENGTH Définit la longueur de page à PAGE_LENGTH (défaut 66 lignes) si inférieur à 10, l'en-tête et pied de page sont omis.
-m, --merge Fusionne et affiche tous les fichiers en parallèle, un dans chaque colonne. Si une ligne est trop large elle est tronquée, à moins que -J soit utilisé.
-n[NUMBER-SEPARATOR[DIGITS]], --number-lines[=NUMBER-SEPARATOR[DIGITS]] Numérote les lignes avec des nombre à DIGITS chiffres. NUMBER-SEPARATOR est le caractère entre le numéro de ligne et le texte.
-N LINE_NUMBER, --first-line-number=LINE_NUMBER Définis le numéro de la première ligne.
-o MARGIN, --indent=MARGIN Indente chaque ligne avec une marge de MARGIN espace.
-r, --no-file-warnings N'affiche pas de message d'erreur quand un fichier ne peut pas être ouvert.
-s[CHAR], --separator[=CHAR] Sépare les colonnes par un simple caractère (une tabulation par défaut sans -w et aucun caractère avec -w)
-SSTRING, --sep-string[=STRING] Utilise STRING pour séparer les colonnes en sortie. n'affecte pas -w/-W.
-t, --omit-header N'imprime pas l'en-tête usuel (et le pied de page), et ne remplit pas le bas des pages. Aucune structure de page n'est produite, la pagination pré-définie n'est pas changée. -t remplace -h
-T, --omit-pagination N'imprime pas l'en-tête (et le pied de page). Élimine toute forme de retour chariot dans le fichier d'entrée.
-v, --show-nonprinting Affiche les caractères non imprimables en notation octal
-w PAGE_WIDTH, --width=PAGE_WIDTH Définit la largeur des lignes pour les sorties multi-colonnes.
-W PAGE_WIDTH, --page_width=PAGE_WIDTH Définie la largeur des lignes. Valide avec ou sans l'option -COLUMN
^
12 juillet 2010

htmlpdflatexmanmd




printenv

printenv

Affiche les variables d'environnement

   printenv affiche les variables d'environnement. Si aucune variables n'est spécifiée, printenv affiche les valeurs de toutes les variables d'environnement.

^
05 juillet 2010

htmlpdflatexmanmd




printf

printf

Afficher du texte

   printf affiche une chaine en interprétant les directives '%' et '\' pour formater des arguments.

        - L'argument est réutilisé si necessaire: ex printf %s a b affiche ab
        - Les arguments manquant sont traites comme chaîne nul ou 0, selon s'il sagit d'un chaine ou d'un nombre.
        - un \c additionnel ne produit plus de sortie.
        - la sequence hexa \xHH a 2 chiffres maximum, alors que C peut avoir un nombre illimité de chiffres.
        - si un caractère est entouré de "'" ou '"' alors affiche sa valeur numérique. printf "%d" "'a' donne 97

   Un argument virgule flottante doit utiliser une virgule, mais est affiché en accord avec la variable d'environnement LC_NUMERIC.

  printf interprète \000 en octal et \xHH en hexa.

  printf interprète \u pour les caractères unicodes 16-bits, spécifié par quatres chiffrers hexa, et \U pour les caractères unicodes 32-bits, spécifié par 8 chiffres hexa.

  Pour s'assurer d'utiliser le programme printf et non la commande intégré dans bash, lancer printf par env.

^
21 juillet 2010

htmlpdflatexmanmd




ptx

ptx

Lit un fichier texte et produit essentiellement un index permuté, avec chaque mot clé dans son contexte

-G, --traditional désactive toutes les extensions GNU. Si non spécifié, on peut spécifier plusieurs fichiers ou aucun.

Sélection de jeu de caractères

-f, --ignore-case met les minuscules en majuscule pour le trie. ptx assume que le fichier d'entrée est en ISO 8859-1 (latin-1).

Sélection de mot et traitement d'entrée

-b FILE, --break-file=FILE Option alternative à -W décrivant quels caractères composent les mots. il introduit le nom d'un fichier qui contient une liste de caractères qui ne peuvent pas faire partie d'un mot.
-i FILE, --ignore-file=FILE Le fichier associé avec cette option contient une liste de mots qui ne seront jamais comme mot clé.
-o FILE, --only-file=FILE Le fichier associé avec cette option contient une liste de mots qui seront retenus pour la sortie.
-r, --references Sur chaque ligne d'entrée, la séquence principale de caractères non-blanc seront pris pour référence pour identifier cette ligne dans l'index permuté.
-S REGEXP --sentence-regexp=REGEXP Cette option sélectionne quelle expression régulière va décrire la fin d'une ligne ou la fin d'une phrase. En fait, cette expression n'est pas seulement la distinction entre la fin des lignes ou la fin des phrases, et les limites de la ligne d'entrée n'ont pas de signification spécial en dehors de cette options. si -G et -r ne sont pas spécifiés, ce REGEX est importé :

           [.?!][]\"')]*\\($\\|\t\\| \\)[ \t\n]* sinon (si -r est spécifié) regex est: \n

  Utiliser un REGEX vide désactive la reconnaissance de la fin des ligne ou des phrases.

-W REGEXP, --word-regexp=REGEXP Cette option décrit quelle expression va décrire chaque mot clé. par défaut, si -G n'est pas spécifié, un mot est une séquence de lettres; le REGEXP utilisé est \w+ sinon un mot est quelque chose qui se termine par un espace, une tabulation ou un newline, le REGEXP utilisé est [^ \t\n]+

Formattage de sortie

-g NUMBER, --gap-size=NUMBER Sélectionne l'écart minimum d'espace blanc entre les champs sur la ligne de sortie.
-w NUMBER, --width=NUMBER Sélectionne la largeur maximum de sortie de chaque ligne.
-A, --auto-reference Sélectionne les références automatique. chaque ligne en entrée aura une référence automatique composé du nom du fichier et la ligne, avec une ',' entre eux.
-R, --right-side-refs Dans le format de sortie par défaut, si cette option n'est pas spécifiée, les références produite par l'effet des options -r ou -A sont placées à droite des lignes sorties, après le contexte. avec cette options, les références sont placées au début de chaque ligne en sortie.
-F STRING, --flac-truncation=STRING Si la sortie est tronquée, reporte en utilisant STRING
-m STRING, --macro-name=STRING Sélectionne une autre STRING à utiliser au lieu de 'xx', en générant une sortie utilisable par nroff ou troff ou TeX
-o, --format=roff Sélectionne un format de sortie pour le traitement par nroff ou troff. Chaque ligne de sortie ressemblera à: .xx "TAIL" "BEFORE" "KEYWORD_AND_AFTER" "HEAD" "REF"
-T, --format=tex Choisit un format de sortie utilisable par TeX. chaque ligne de sortie ressemblera à: \xx TAILBEFOREKEYWORDAFTERHEADREF
^
12 juillet 2010

htmlpdflatexmanmd




pwd

pwd

Affiche le nom du répertoire courant

OPTIONS

-L, --logical Si le contenus de la variable d'environnement PWD fournit un nom absolue du répertoire courant, mais optionnement avec des liens symboliques, alors affiche ce contenus. Sinon, sort le défaut -P
-P, --physical Affiche de nom complet du répertoire
^
02 juillet 2010

htmlpdflatexmanmd




readlink

readlink

Affiche la référence d'un lien symbolique

   readlink peut fonctionner dans un des 2 modes supportés.

  mode readlink (mode par défaut) sort la valeur du lien symbolique.

  mode canonicalize sort le nom absolue du fichier donné.

OPTIONS

-f, --canonicalize utilise le mode canonicalize. si un composant du nom de fichier excepté si le dernier est manquant ou inexistant, quitte sans sortie.
-e, --canonicalize-existing utilise le mode canonicalize. Si un composant est manquant ou indisponible, readlink quitte sans sortie
-m, --canonicalize-missing Si un composant est manquant ou indisponible, quite sans sortie.
-n, --no-newline Ne sort pas de newline final.
-s, -q, --silent, --quiet n'affiche pas de message d'erreur
-v, --verbose reporte les messages d'erreur
^
30 juin 2010

htmlpdflatexmanmd




rm

rm

Supprime des fichiers, par défaut ne supprime pas les répertoires.

   Si -I est donnés et qu'il y'a plus de 3 fichiers, ou que -r est donné, rm demande à l'utilisateur avant de traiter l'opération entière. Une tentative de supprimer '.' ou '..' est toujours rejetée.

OPTIONS

-f, --force Ignore les fichiers non-existant.
-i Demande confirmation à l'utilisateur pour supprimer chaque fichier.
-I Demande Confirmation 1 fois pour traiter la commande entière.
--interactive [=WHEN] Spécifie quand demande confirmation. :

        never ne prompt jamais
        once demande une fois
        always demande pour chaque fichier

--one-file-system En supprimant une hiérarchie récursivement, ne supprime pas les répertoire qui ont un système de fichier différent.
--preserve-root Echoue lors d'une tentative de supprimer le répertoire root '/' avec -r. c'est le mode par défaut.
--no-preserve-root Permet de supprimer '/' avec -r
-r, -R, --recursive Supprime Les répertoires listés et leur contenu, récursivement.
-v, --verbose Affiche le nom de chaque fichier avant de le supprimer.

   Une question commune est comment supprimer un fichier commençant par '-'. Il faut utiliser '--', pour indiquer que la suite de la ligne de commande ne sont pas des options : rm -- -f ou encore rm ./-f
^
02 juillet 2010

htmlpdflatexmanmd




rmdir

rmdir

Supprimer les répertoires vides

OPTIONS

--ignore-fail-on-non-empty Ignore les échecs dûs à des répertoires non vides
-p, --parents Supprime le répertoire, puis essaye de supprimer chaque composant du répertoire. Par exemple : rmdir -p a/b/c est similaire à rmdir a/b/c a/b a.
-v, --verbose Donne un diagnostique pour chaque suppression réussie.
^
14 juillet 2010

htmlpdflatexmanmd




runcon

runcon

Lance une commande dans le contexte de sécurité SELinux spécifié

   Si aucune option n'est spécifiée, le premier argument est utilisé comme contexte complet. Sans options ni commande, affiche le contexte de sécurité courant.

OPTIONS

-c, --compute Calcule le contexte de transission du processus avant de le modifier
-u USER, --user=USER Définis l'utilisateur dans le contexte de sécurité cible.
-r ROLE, --role=ROLE Définis le role dans le contexte de sécurité cible
-t TYPE, --type=TYPE Définis le type dans le contexte de sécurité cible
-l RANGE, --range=RANGE Définit la plage dans le contexte de sécurité cible
^
18 octobre 2016

htmlpdflatexmanmd




sed

sed

Éditeur de flux, utilisé pour effectuer des transformations de texte basiques

OPTIONS

-n, --quiet, --silent Par défaut, sed affiche le motif à la fin de chaque cycle. Cette option désactive cet affichage.
-e SCRIPT, --expression=SCRIPT Ajoute les commandes dans le script au jeu de commandes à lancer durant le traitement de l'entrée
-f SCRIPTFILE, --file=SCRIPTFILE AJoute les commandes contenues dans le script au jeu de commande à lancer durant le traitement de l'entrée
-i[SUFFIX], --in-place[=SUFFIX] Spécifie que les fichiers sont à éditer sur place. Sed créé un fichier temporaire et envoie la sortie dans ce fichier au lieu de stdout. Cette option implique '-s'. Quand la fin du fichier est atteinte, il est renommé au fichier d'origine. L'extension, si fournie, est utilisé pour renommer l'ancien fichier.
-l N, --line-length=N Spécifie la longueur de ligne par défaut pour la commande 'l'. 0 signifie de ne jamais couper les lignes. Défaut: 70.
--posix Se conforme à POSIX. identique à définir POSIXLY_CORRECT.
-b, --binary Pour les OS faisant la distinction entre les fichiers binaire et fichiers textes, comme MS-DOS, Windows.
--follow-symlinks Seulement avec -i. Si le fichier spécifié est un lien symbolique, sed suit le lien et édite la cible.
-r, --regexp-extended Utilise les expressions régulières étendues au lieu des expressions régulières de base.
-s, --separate Par défaut, sed considère les fichiers spécifiés comme un seul long flux. Cette option permet à l'utilisateur de les considérer comme flux séparés. Les numéros de ligne sont relatifs au début de chaque fichier, '$' réfère à la dernière ligne de chaque fichier, et les fichiers invoqués depuis des commandes 'R' sont remis au début de chaque fichier
-u, --unbuffered Met en tampon l'entrée et la sortie aussi minimal que pratique. Particulièrement utile si l'entrée via depuis des commandes comme tail -f, et que vous souhaitez voir la sortie transformée le plus vite possible.
-z, --null-data, --zero-terminated Traite l'entrée comme jeu de ligne, chacune terminée par un ASCII NUL au lieu d'une nouvelle ligne.

Fonctionnement

   sed maintient 2 tampons: l'espace _pattern_ actif, et l'espace auxiliaire _hold_. Ils sont vide à l'initialisation. sed opères en effectuant le cycle suivant sur chaque ligne d'entrée: d'abord, sed lit une ligne depuis le flux d'entrée, supprime tout newline de fin, et la place dans l'espace pattern. Les commandes sont ensuite exécutées; chaque commande peut avoir une adresse associée: les adresses osnt un type de code de condition, et une commande est seulement exécutée si la condition est vérifiée avant d'exécuter la commande.

   Quand la fin du script est atteint, sauf si l'option -n est utilisé, le contenu de l'espace pattern est affiché dans le flux de sortie, en ajoutant un newline à la fin s'il avait été supprimé. Puis le cycle démarre pour la ligne suivante.

   Sauf pour les commandes spéciales (comme 'D'), l'espace pattern est supprimé entre 2 cycles. L'espace hold, conserve ses données entre les cycles (voir les commandes h, H, x, g, G pour se déplacer entre les tampons)

Expressions régulières

   Les adresses dans un script sed peut être une des formes suivantes:

NUMBER Spécifie un numéro de ligne qui va matcher seulement cette ligne dans l'entrée.
FIRST~ STEP Match chaque ligne par pas en commençant avec le ligne FIRST. Par exemple, pour sélectionner les lignes impaires: 1~2.
$ Matche la dernière ligne du dernier fichier d'entrée, ou la dernière ligne de chaque fichier quand -i ou -s sons spécifiés
/REGEXP/ Sélectionne les lignes qui matchent l'expression régulière. L'expresion vide (//) répète la dernière expression régulière qui a matché.
\%REGEXP% Matche l'expression régulière, mais permet d'utiliser un autre délimiteur que '/'
/REGEXP/I, \%REGEXP%I l'expression régulière matche en étant insensible à la casse.
/REGEXP/M, \%REGEXP%M matche l'expression régulière en mode multi-ligne. '^ matche également la chaîne vide aprèse un newline, '$' la chaîne vide avant un newline. '\`' et '\'' matchent toujours le début ou la fin du tampon. ',' ne matche pas un caractère newline en mode multi-ligne
0,/REGEXP/ Un numéro de ligne 0 peut être utilisé dans une spécification d'adresse pour que sed tente de matcher l'expression régulière dans la première ligne d'entrée également. En d'autres termes, 0,/REGEXP/ est similaire à 1,/REGEXP/, excepté que si ADDR2 matche la première ligne de l'entrée, 0,/REGEXP/ la considère à la fin de la plage.
ADDR1,+N Matche ADDR1 et les N lignes suivantes
ADDR1,~ N Matche ADDR1 et les lignes suivantes jusqu'à la prochaine ligne dont le numéro de ligne soit un multiple de N
! Ajouter ! à la fin d'une spécification d'adresse inverse le sense du match.

Syntaxe des expressions régulières

CHAR Un simple caractère ordinaire correspondant à lui-même
Correspond à une séquence de 0 ou plusieurs instances de correspondances pour l'expression réguière précédante, qui doit être un caractère ordinaire, un caractère spéciale, un regexp groupé, une une expression entre crochet.
\+ comme * mais matche un ou plusieurs
\? comme * mais matche exactement I séquences (I est un entier décimal entre 0 et 255)
\{I,J\} Matche entre I et J, inclusifs, séquences
\{I,\} Matche plus que ou égal à I séquences
\(REGEXP\) Groupe le REGEXP interne dans son ensemble
. Matche n'importe quel caractère, incluant newline
^ Matche la chaîne null au début de l'espace pattern
$ Idem à ^ mais réfère à la fin de l'espace pattern
[LIST], [^LIST] Matche tout caractère simple dans LIST. Par exemple, [aeiou] matche toutes les voyelles. ^ inverse le sense de la liste
REGEXP1\|REGEXP2 Matche soit REGEXP1 ou REGEXP2. Utilise les parenthèses pour utilise des expressions régulières alternative complexes.
REGEXP1REGEXP2 Matche la concaténation de REGEXP1 et REGEXP2.
\DIGIT Matche la n-ième sous-expression \(...\) dans l'expression régulière
\n Matche le caractère newline
\CHAR Matche CHAR où CHAR est '$', '*', '.', '[', '\', ou '^'.

Exemples

Matche abcdef
abcdef
matche 0 ou plusieurs a, suivi par un caractère b:
a*b
Matche b ou ab
a\?b
matche un ou plusieurs a, suivi par un ou plusiuers b
a\+b\+
Matchent tous les caractères dans une chaîne, incluant une chaîne vide
.* 
Matchent tous les caractères dans une chaîne, d'au moins un caractère
.\+
Matche un chaîne commençant avec 'main' suivi par une parenthèse ouvrante et fermante. n, ( et ) ne doivent pas être adjacents
^main.*(.*)
Matche une chaîne commençant avec #
^#
matche une chaîne se terminant avec un \
\\$
Matche une chaîne consisant d'un simple signe dollar
\$
Matche les lettres ASCII ou les chiffres
[a-zA-Z0-9]
(ici ‹TAB› est un simple caractère). Matche une chaîne d'un ou plusieurs caractères, aucun d'entre eux n'est un espace ou une tabulation. Généralement, celà signifie un mot
[^ ‹TAB›]\+
Matche une chaîne consistant de 2 sous-chaînes égales, séparées par un newline
^\(.*\)\n\1$
Matche 9 caractères suivis par un A
.\{9\}A$
Matche le début d'une chaîne qui contient 16 caractères, le dernier est un A
^.\{15\}A

commande usuelles

# Aucune adresse permise. Commence un commentaire, qui contient jusqu'au prochain newline.
q [EXIT-CODE] Quitte sed dans traiter plus de commandes ou entrée, et retourne le code donné
d Supprime l'espace pattern; démarrant immédiatement un nouveau cycle
p Affiche l'espace pattern sur stdout. généralement utilisé avec l'option -n
n Si auto-print est actif, affiche l'espace pattern, puis remplace l'espace pattern avec la ligne suivante.
{ COMMANDS } Un groupe de commandes peut être enfermé dans des accolades.

commande s

   La syntaxe de la commande s (s pour substitute) est 's/REGEXP/REPLACEMENT/FLAGS' Les caractères '/' peuvent être uniformément remplacés par un autre caractère. La commande s est probablement la plus importante de sed. sed tente de correspondre l'espace pattern avec REGEXP, et si le match réussit, remplace la portion de l'espace pattern qui matche avec REPLACEMENT.

   REPLACEMENT peut contenir \N (N étant un nombre de 1 à 9) références aux portion de matche entre \( et \) dans REGEXP. REPLACEMENT peut contenir '&' qui réfère au match comple. Les séquences suivantes peuvent être inculs:

        \L Active le remplacement en minuscule jusqu'à un \U ou \E
        \l Met le prochain caractère en minuscule
        \U Active le remplacement en majuscule jusqu'à un \L ou \E
        \u Met le prochain caractère en majuscule
        \E Stop la conversion démarrée par \L ou \U

Flags

g Applique le remplacement de tous les matches au REGEXP, pas simplement le premier
NUMBER Applique le remplacement seulement au NUMBER-ième matche
p Si la substitution est effective, affiche le nouvel espace pattern
w FILE-NAME Si la substitution est effective, écris le résultat dans le fichier nommé.
e Permet à un pipe d'entrée depuis une commande shell dans l'espace pattern. Si une substitution est effective, la commande trouvée dans l'espace pattern est exécutée et l'espace pattern est remplacée avec sa sortie.
I, i I match de manière insensible à la casse.
M, m M matche les expressions régulière en mode multi-ligne

Commandes moins usuelles

y/SOURCE-CHARS/DEST-CHARS/ Traduit tous caractères dans l'espace pattern qui matche un des SOURCE-CHARS avec le caractères correspondant DEST-CHARS
a\, TEXT Accèpte 2 adresses. Met en file les lignes de texte qui suivent cette commande (chacune sauf celles se terminant avec un '\', qui sont supprimés de la sortie) sur la sortie à la fin du cycle courant, ou quand la ligne suivante est lue.
i\, TEXT Affiche immédiatement les lignes de texte qui suivent cette commande (chacune sauf celles se terminant avec un \, qui sont supprimées de la sortie).
c\, TEXT Supprime les lignes matchant l'adresse ou la plage d'adresse, et sort les lignes de texte qui suivent cette commande à la place de la dernière ligne ( ou à la place de chaque ligne, si aucune adresse n'est spécifiée). Un nouveau cycle est démarré après cette commande vu que l'espace pattern sera supprimé.
= Affiche le numéro de ligne d'entrée avec un newline
l N Affiche l'espace pattern dans une forme non ambigüe: les caractères non-imprimables sont affiché dans une forme échappé style C. N définis la longueur de ligne. 0 ne coupe pas les lignes.
r FILENAME Accèpte 2 adresses. Met en file le contenu de FILENAME à lire et à insérer dans le flux de sortie à la fin du cycle courant, ou quand la prochaine ligne d'entrée est lue. Si FILENAME ne peut pas être lu, il est traité comme si c'était un fichier vide, sans erreur.
w FILENAME écrit l'espace pattern dans FILENAME.
D Si l'espace pattern ne contient pas de newline, démarre un nouveau cycle normal comme si la commande d avait été donnée. Sinon, supprime le texte dans l'espace pattern jusqu'au newline, et redémarre le cycle avec l'espace pattern résultant, sans lire un newline d'entrée
N Ajoute un newline à l'espace pattern, puis ajoute la ligne suivante de l'entrée dans l'espace pattern.
P Affiche la portio de l'espace pattern jusqu'au newline
h Remplace le contenu de l'espace hold avec le contenu de l'espace pattern
H Ajoute un newline au contenu de l'espace hold, puis y ajoute le contenu de l'espace pattern.
g Remplace le contenu de l'espace pattern avec le contenu de l'espace hold
G Ajoute un newline au contenu de l'espace pattern, puis y ajoute le contenu de l'espace hold.
x Échange le contenu des espace pattern et hold.

Commande avancées

   Dans la plupart des cas, il est préférrable d'utiliser des commandes comme awk ou perl au lieu de ces commandes

: LABEL Aucune adresse permise. Spécifie l'emplacement d'un LABEL pour les commandes de branchement.
b LABEL Branche inconditionneles à LABEL.
t LABEL Branche à LABEL seulement s'il a été substitué depuis que la dernière ligne d'entrée a été lue ou qu'un branchement conditionnel a été fait.

Commandes spécifiques à GNU sed

e [COMMAND] Permet de pipe une entrée depuis une commande shell dans l'espace pattern. Sans paramètres, cette commande exécute la commande trouvée dans l'espace pattern et remplace l'espace pattern avec la sortie; et supprime tout newline de fin. Avec un paramètre, cette commande interprète comme commande et envoie sa sortie sur le flux de sortie.
F Affiche le nom du fichier du fichier d'entrée
L N Remplis et joint les lignes dans l'espace pattern pour produire des lignes en sortie de (au plus) N caractères, comme fmt. Si N est omis, le défaut tel que spécifié sur la ligne de commande est utilisé.
Q [EXIT-CODE] n'accepte qu'une seule adresse. fonctionne comme 'q'
R FILENAME Met en file une ligne de FILENAME et l'insert dans le flux de sortie à la fin du cycle courant, ou quand la prochaine ligne est lue. Si FILENAME ne peut pas être lu, ou si la fin est atteind, aucune ligne n'est ajoutée.
T LABEL Brachement sur LABEL uniquement si la substitution n'a pas réussit.
v VERSION Ne fait rien, mais échoue si sed n'a pas les extensions GNU.
W FILENAME Écrit dans le fichier la portion de l'espace pattern jusqu'à un newline.
z Vide le contenu de l'espace pattern. Générallement identique 's/.*//', mais est plus efficate.

Extensions GNU pour les échappements dans les expressions régulières

\a alert
\f form feed
\n nouvelle ligne
\r retour charriot
\t tabulation horizontale
\v Tabulation verticale
\cX Matche CONTROL-X, ou X est un caractère.
\dXXX Caractère ASCII où XXX est la valeur décimale
\oXXX Caractère ASCII où XXX est la valeur octale
\xXXX Caractère ASCII où XXX est la valeur héxadécimale
\b caractère \
\w Matche tout caractère 'word' (lettre, chiffre ou _)
\W Matche tout caractère non word
\b Matche une fin de mot, qui matche si le caractère à gauche est un caractère word, et le caractère à droite est un caractère non-word
\B Matche tout sauf une fin de mot.
\` Matche seulement au début de l'espace pattern. Différent de ^ en mode multi-ligne
\' Matche seulement la fin de l'espace pattern. Différent de $ en mode multi-ligne
^
15 juillet 2010

htmlpdflatexmanmd




seq

seq

Affiche une séquence numérique sur stdout

   seq affiche les nombres du premier au dernier, par incrément. Si l'incrément n'est pas spécifié, le défaut est 1. Si un seul argument est spécifié, il commence à 1, par incrément de 1, jusqu'à la valeur spécifiée.

OPTIONS

-f FORMAT, --format=FORMAT Affiche tous les nombres en utilisant le format spécifié. Il doit contenir des conversion style printf : %a, %e, %f, %g, %A, %E, %F, %G. Le % peut être suivie par des flags parmis : '-+=0' et une largeur optionnelle, et enfin une précision consistant d'un '.' suivi optionnellement par une valeur. le format par défaut est %.Pf
-s STRING, --separator=STRING Sépare les nombres par la chaîne spécifiée. newline par défaut. La sortie se termine toujours par un newline.
-w, --equal-width Affiche tous les nombres avec la même largeur

Exemples

Affiner la sortie avec -f:
seq -f '(%9.2E)' -9e5 1.1e6 1.3e6
Afficher la sortie en hexad:
printf '%x\n' `seq 1048575 1024 1050623`
pour les très longues liste de nombre, utiliser xargs pour éviter les limitations système sur la longueur de la liste des arguments:
seq 1000000 | xargs printf '%x\n' | tail -n 3
^
07 juin 2010

htmlpdflatexmanmd




sha1sum

sha1sum, sha224sum, sha256sum, sha384sum, sha512sum

Calcul un checksum pour chaque fichier spécifié

   sha1sum calcul un checksum 160, 224, 256, 384 et 512-bits respectivement pour chaque fichier spécifié. les options sont les même que md5sum.

OPTIONS

-b, --binary Traite chaque fichier en binaire, en le lisant en mode binaire, préfixe le nom du fichier par '*'. Principalement utile sur les systèmes MS-DOS.
-c, --check Lit les informations de checksum et de nom de fichier dans le fichier et report si le checksum correspond avec le fichier nommé. Le format du fichier d'entrée est généralement le format de sortie d'un md5sum précédent.
--quiet Cette option est utile seulement quand on vérifie les checksums. Ne génère pas de 'OK' pour chaque message vérifié avec succès.
--status Cette option est utile seulement quand on vérifie les checksums. Ne génère pas de diagnostic et ne sort pas d'alerte en cas d'erreur.
-t, --text Traite chaque fichier en entrée comme texte. Utile pour les systèmes de type MS-DOS.
-w, --warn En vérifiant les checksums, alerte sur les ligne de checksums MD5 mal formatés.
^
30 juin 2010

htmlpdflatexmanmd




shred

shred

Écrase des périphériques ou des fichiers, pour éviter la possibilité de récupérer des données.

   Ordinairement, quand on supprime un fichier, les données ne sont pas supprimées, seul l'index est supprimé, et l'espace est déclaré disponible.

OPTIONS

-f, --force modifie les permissions de fichier si nécessaire pour pouvoir écraser.
-NUMBER, -n NUMBER, --iterations=NUMBER par défaut shred utilise 3 passes. après 25 passes, tous les motifs internes seront utilisés au moins une fois.
--random-source=FILE Utilise FILE comme source de données aléatoire
-s BYTES, --size=BYTES efface les premier BYTES octets du fichier. efface le fichier entier par défaut. La taille peut être spécifié avec un multiplicateur
-u, --remove après avoir écrasé un fichier, le tronque si possible puis le supprime. Si le fichier a de multiples liens, seul les liens nommés seront supprimés.
-v, --verbose affiche sur l'erreur standard tous les status du processus.
-x, --exact Par défaut, shred arrondis la taille d'un fichier régulier jusqu'au prochain multiple de taille de block du système de fichier pour écraser complètement le dernier block. Utiliser --exact annule ce mode.
-z, --zero Normalement, la dernière passe est faite de données aléatoires. çà peut être ambigue (peut ressembler à un fichier crypté), cette options permet de remplir le fichier de 0 pour la dernière passe.

Exemples

Effacer toute trace d'un fichier système crée sur une disquette. Cette commande prend environ 20 minutes pour effacer 1.44MB
shred --verbose /dev/fd0
similairement, effacer toutes les données sur une partition d'un disque dur
shred --verbose /dev/sda5
^
21 juillet 2010

htmlpdflatexmanmd




shuf

shuf

Permuter aléatoirement les lignes d'entrée

   shuf a 3 modes d'opération qui affecte où il obtient ses lignes en entrée. Par défaut il lit sur l'entrée standard.

OPTIONS

-e, --echo Traite chaque opérande de la ligne de commande comme ligne d'entrée.
-i LO-HI, --input-range=LO-HI Agit comme si l'entrée venait d'un fichier contenant la plage d'entiers décimales non-signés, un par ligne.
LINES, --head-count=COUNT Sort COUNT lignes. par défaut toutes les lignes sont sorties.
-o OUTPUT-FILE, --output=OUTPUT-FILE Écrit la sortie dans le fichier spécifié.
--random-source=FILE Utilise le fichier spécifié comme source de données aléatoire.
-z, --zero-terminated Délimite les items avec un octet zéro au lieu d'un newline.
^
15 juillet 2010

htmlpdflatexmanmd




sleep

sleep

Effectue un pause

   sleep effectue une pause pendant un temps spécifié. La valeur peut être suffixé par:

s secondes
m minutes
h heures
d jours

^
21 juillet 2010

htmlpdflatexmanmd




sort

sort

Trie, fusionne ou compare toutes les lignes des fichiers spécifiés ou l'entrée standard

   Une paire de lignes est comparé comme suit: sort compare chaque paire de champs, dans l'ordre spécifié sur la ligne de commande, en accord avec les options d'ordre associés, jusqu'à ce qu'une différence soit trouvée ou qu'il ne reste plus aucun champ. Si aucun champ clé n'est spécifié sort utilise une ligne entière comme clé par défaut. Finalement, sort compare les lignes entières comme si aucune option d'ordre autre que --reverse n'était spécifié. L'option stable désactive la dernière comparaison, tout comme l'option --unique.

OPTIONS

-c, --check, --check=diagnose-first Vérifie si le fichier donné est déjà trié. Si ce n'est pas le cas, affiche un la première ligne qui n'est pas dans l'ordre.
-C, --check=quiet, --check=silent Quitte avec succès si le fichier donné est déjà trié, avec un status de 1 le cas contraire. Identique à -c, mais n'affiche rien.
-m, --merge fusionne les fichiers en les triant ensemble. chaque fichier d'entrée doit déjà être triés individuellement.
-b, --ignore-leading-blanks Ignore les blancs pendant la recherche des clés triés dans chaque ligne.
-d, --dictionnary-order Trie de type annuaire téléphonique: ignore tous les caractères excepté les lettres, chiffres et les blanc.
-f, --ignore-case Ignore la casse lors du trie.
-g, --general-numeric-sort,--sort=general-numeric Trie numérique, converti un préfixe de chaque ligne en nombre virgule flottante double précision.
-i, --ignore-nonprinting Ignore les caractères non imprimables
-M, --month-sort, --sort=month Une chaîne initiale, consistant d'une quantité de blanc, suivi par une abréviation de mois, comparé dans l'ordre JANFEB...DEC
-n, --numeric-sort, --sort=numeric Trie numérique. Les nombres commencent chaque ligne et consistent de blanc options, un '-' optionnel et 0 ou plusieurs chiffres, qui peuvent être séparés par des séparateurs de millier, et optionnellement suivi par une partie décimale. Un nombre vide est traité comme '0'. La locale 'LC_NUMERIC' spécifie le caractère décimal et le séparateur de milliers. par défaut, un blanc est un espace ou une tabulation, mais LC_CTYPE peut changer çà.
-V, --version-sort Trie par strverscmp. Comparaison normal de chaîne excepté que les nombres décimaux sont triés par valeur numérique.
-r, --reverse Renverse le résultat de la comparaison.
-R, --random-sort, --sort=random Sort de manière aléatoire.
--compress-program=PROG Compresse les fichiers temporaires avec le programme spécifié. sans argument, il doit compresser l'entrée standard sur la sortie standard, et si -d est donné, il doit décompresser l'entrée standard sur la sortie standard.
--files0-from=FILE Désactive le traitement des fichiers nommés sur la ligne de commande, et traite ceux nommés dans FILE. chaque fichier est séparé par un ASCII NUL. si FILE vaut - , lit l'entrée standard.
-k POS1[,POS2], --key=POS1[,POS2] Spécifie le champ de trie qui consiste de la partie de la ligne entre POS1 et POS2 ou la fin de la ligne si POS2 n'est pas spécifié. Par exemple pour trier le 2eme champs, utiliser --key=2,2
--batch-size=NMERGE mélange au moins NMERGE entrées en une seule.
-o OUTPUT-FILE, --output=OUTPUT-FILE Écrit la sortie dans le fichier spécifié.
--random-source=FILE Utilise FILE comme source de données aléatoires.
-s, --stable désactive la comparaison de dernier recours.
-S SIZE, --buffer-size=SIZE Utilise un buffer de trie de la taille spécifiée. Par défaut SIZE est en unité de 1024 octets. Ajouter un '%' interprète la taille en pourcentage de la mémoire physique. Ajouter un 'K' pour Kilo-octets, M, G etc... b pour octets
-t SEPARATOR, --field-separator=SEPARATOR Spécifie le caractère de séparation des champs. Par défaut c'est un espace ou une tabulation, mais 'LC_CTYPE' peut changer çà.
-T TEMPDIR, --temporary-directory=TEMPDIR utilise TEMPDIR comme répertoire temporaire.
-u, --unique Normalement, sort seulement le premier d'une séquence de lignes qu'il trouve égal.
-z, --zero-terminated Délimite les items avec un octet zéro au lieu d'un newline

Exemples

trie numérique descendant
sort -n -r
trie alphabétique, en omettant les 2 premiers champs et le blanc au début du troisième champ.
sort -k 3b
trie numérique sur le second champ et tente de trier alphabétiquement le 3ème et le 4ème caractère du 5ème champ.
sort -t : -k 2,2n -k 5.3,5.4
trie le fichier password sur le 5ème champ et ignore les blancs. Trie les lignes avec des valeurs égales dans le 5ème champ sur le user ID dans le 3ème champ. les champs sont séparés par un ':'
sort -t : -k 5b,5 -k 3,3n /etc/passwd
sort -t : -n -k 5b,5 -k 3,3 /etc/passwd
sort -t : -b -k 5,5 -k 3,3n /etc/passwd

Codes de sortie

0 si pas d'erreur
1 si invoqué avec -c ou -C est que l'entrée n'a pas été triée
2 si une erreur s'est produite.
^
07 juin 2010

htmlpdflatexmanmd




split

split

Crée des fichiers contenant des sections consécutives de l'entrée

   Par défaut, split place 1000 lignes de l'entrées, dans chaque fichier de sortie. Le nom des fichiers de sortie consiste en un PREFIX ('x' par défaut) suivi par un groupe de caractères ('aa', 'ab', ... par défaut).

OPTIONS

-l LINES, --lines=LINES Place LINES lignes dans chaque fichier
-b SIZE, --bytes=SIZE Place SIZE octets dans chaque fichier de sortie. SIZE accèpte un suffixe multiplicateur.
-C SIZE, --line-bytes=SIZE Place dans chaque fichier autant de lignes complètes que possible sans excéder SIZE octets.
-a LENGTH --suffix-length=LENGTH Spécifie la longueur des suffixes. (défaut : 2)
-d, --numeric-suffixes Utilise des chiffres dans les suffixes au lieu de lettres.
--verbose Écrit un diagnostique juste après que chaque fichier de sortie soit ouvert.
^
04 juillet 2010

htmlpdflatexmanmd




stat

stat

Affiche des informations sur les fichiers spécifiés

   Sans options, stat reporte toutes les informations sur le fichier donné. Il peut aussi être utilisé pour afficher des informations sur le système de fichier où se trouve le fichier. Si les fichiers sont des liens, stat peut aussi donner des informations sur les fichiers pointés.

OPTIONS

-L, --dereference Agit sur la référence des liens et non sur les lien eux-même.
-f, --file-system affiche des informations sur le système de fichier où se trouve le fichier au lieu des informations sur le fichier.
-c, --format=FORMAT utilise FORMAT au lieu du format par défaut. FORMAT est automatique terminé par un newline. ex stat --format=%d :%i affiche 2050:2
--printf=FORMAT idem, mais interprète '\' et ne rajoute pas de newline à la fin (ou \n)
-t, --terse affiche des informations brut pour être utilisé par d'autres programmes.

Directives de FORMAT

%a droits d'accès en octal
%A droits d'accès suffixé
%b nombre de block alloué
%B la taille en octet de chque block reporté par %b
%d Device number en décimal
%D device number en hexa
%f raw mode en hexa
%F type de fichier
%g GID
%G groupname
%h nombre de liens durs
%i numéro d'inode
%n nom du fichier
%N nom entre "'" avec déréférence si lien symbolique
%o taille de block I/O
%s taille total en ocets
%t Major device type en hexa
%T Minor device type en hexa
%u UID
%U username
%x atime
%X atime en sec
%y mtime
%Y mtime en sec
%z ctime
%Z ctime en sec

   En listant les informations sur le système de fichier FORMAT peut prendre:

%a block disponible aux non-root
%b blocks de données total dans le système de fichier.
%c noeud de fichier total dans le système de fichier.
%d noeud de fichier libres dans le système de fichier
%f block disponibles dans le système de fichier
%i ID du système de fichier en hexa
%l longueur maximum dans les noms de fichiers.
%n noms de fichier.
%s taille de block (pour la rapidité des transferts)
%S tailles de block fondamental (pour le compteur de block)
%t type en hexa
%T type
^
12 juillet 2010

htmlpdflatexmanmd




stty

stty

Affiche ou change les caractéristiques du terminal

   Sans argument, affiche le baud rate, le line discipline number, et les paramètres de ligne. Par défaut, le mode de lecture et les paramètres sont effectués sur la ligne tty connecté sur l'entrée standard, mais peut être modifié avec --file

OPTIONS

-a, --all Affiche tous les paramètres courant sous forme compréhensible. Cette option ne peut pas être utilisée avec un paramètre de ligne
-F device, --file=device Définit la ligne ouverte par le nom de fichier au lieu de la ligne connecté sur l'entrée standard
-g, --save Affiche tous les paramètres courant sous une forme qui peut être utilisé en arguments à une autre commande stty pour restaurer les paramètres courant

   Beaucoup de paramètres peuvent être désactivés en le précédent par un "-". Certains paramètres ne sont pas disponibles sur tous les systèmes POSIX, vu qu'ils utilisent des extensions.

Paramètres de contrôle

parenb génère un bit de parité en sortie et attend un bit de parité en entrée.
parodd définit un parité impaire ( même si désactivé)
cs5, cs6, cs7, cs8 Définis la taille de caractère à 5, 6, 7 ou 8 bits
hup, hupcl envoie un signal hangup quand le dernier processus ferme le tty.
cstopb Utilise 2 bits de stop par caractères (un seul si désactivé)
cread autorise de recevoire en entrée.
clocal désactive les signaux de controle de modem.
crtscts Autorise le contrôle de flux RTS/CTS . Non-POSIX

Paramètres d'entrée

   Ces paramètres contrôlent les opérations sur les données reçues depuis le terminal

ignbrk Ignore les caractères break.
brkint Les breaks génère un signal d'interruption.
ignpar Ignore les caractères avec des erreurs de parité
parmrk marque les erreurs de parité (avec une sequence de caractère 255-0)
inpck active le contrôle de parité en entrée.
istrip efface le bit de poid fort des caractères en entrée.
inlcr traduit les newline en retour charriot
igncr ignore les retour charriot
icrnl traduit les retour charriot en newline
iutf8 Assume que les caractères en entrées sont codés en UTF8
ixoff, ixon active le contrôle de flux XON/XOFF (CTRL-S, CRTL-Q)
tandem Active l'envoie du caractère stop quand le buffer d'entrée est plein et le caractère start quand il s'est vidé.
iuclc Traduit les caractères majuscule en minuscule. Non-POSIX
ixany Permet à un caractère de redémarrer la sortie (seulement le caractère start si désactive) Non-POSIX
imaxbel Active le beeping et ne vide pas le tampon d'entrée si un caractère arrive quand le buffer d'entrée est plein. Non-POSIX

Paramètres de sortie

opost post traitement de la sortie
olcuc Traduit les caractère minuscule en majuscule. Non-POSIX
ocrnl Traduit les newlien en retour charriot + newline. Non-POSIX
onocr N'affiche par de retour charriot dans la première colonne. Non-POSIX
onlret Newline effectue un retour charriot. Non-POSIX
ofill Utilise les caractères de remplissage au lieu de timer les délays.
ofdel Utilise les caractères ASCII DEL pour remplir au lieu des caractères ADCII NUL
nl1, nl0 style de délai newline. Non-POSIX
cr3, cr2, cr1, cr0 Retour style de délai charriot Non-POSIX
tab3, tab2, tab1, tab0 style de délai tabulation horizontal. Non-POSIX
bs1, bs0 style de déali backspace. Non-POSIX
vt1, vt0 Style de délai tabulation vertical. Non-POSIX
ff1, ff0 Form feed delay style. Non-POSIX

Paramètres locaux

isig Autorise les caractères spéciaux 'interrupt', 'quit' et 'suspend'.
icanon autorise les caractères 'erase', 'kill', 'werase' et 'print'
iexten Autorise les caractères spéciaux non-POSIX
echo répète les caractères d'entrée
echoe
crterase Répète les caractères 'erase' comme backspace-space-backspace.
echok répète un newline après un caractère 'kill'
echonl répète un newline même si ne répète pas d'autres caractères
noflsh désactive le flushing après les caractères spéciaux 'interrupt' et 'quit'
xcase autorise l'entrée et la sorite des caractères majuscules en précédant leur équivalent minuscule avec \, quand icanon est défini. Non-POSIX
tostop stop les tâches de fond qui essayend d'écrire dans le terminal. Non-POSIX
echoprt prterase Répète les caractères effacés en arrière, entre \ et/. Non-POSIX
echoctl
ctlecho Répète les caractères de contrôle en notation (^C) au lieu de litéral. Non-POSIX
echoke
crtkill Répète le caractère spécial 'kill' en effaçant chaque caractère sur la ligne comme indiqué par echoprt et echoe, au lieu de par echoctl et echok. Non-POSIX

Paramètres de combinaison

evenp
parity Identique à parenb -parodd cs7. si inversé, identique à -parenb cs8
oddp identique à parenb parodd cs7. si inversé, identique à -parenb cs8
nl identique à -icrnl -onlcr. si inversé, identique à icrnl -inlcr onlcr -ocrnl -onlret
ek reset les caractères spéciaux 'erase' et 'kill' à leur valeur par défaut.
sane identique à cread -ignbrk brkint -inlcr -igncr icrnl -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 et définit les caractères spéciaux à leur valeur par défaut.
cooked identique à brkint ignpar istrip icrnl ixon opost isig icanon, et définis les caractères eos et eol à leur valeurs par défaut si elles sont les memes que les caractères min et time. inversé, est indentique à raw
raw identique à -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -opost -isig -icanon -xcase min 1 time 0. si inversé, identique à cooked.
cbreak identique à -icanon. si inversé, identique à icanon
pass8 identique à -parenb -istrip cs8. Si inversé, identique à parenb istrip cs7
litout identique à -parenb -istrip -opost cs8. Si inversé, identique à parenb istrip opost cs7
decctlq identique à -ixany. Non-POSIX
tabs identique à tab0. Non-POSIX si inversé, identique à tab3
lcase
LCASE identique à xcase iuclc olcuc. Non-POSIX.
crt identique à echoe echoctl echoke
dec identique à echoe echoctl echoke -ixany intr ^C erase ^ ? kill C-u

Caractères spéciaux

   Les valeurs par défaut des caractères spéciaux varient d'un système à un autre. ils sont défini avec la syntaxe nom valeur.

`intr' Envoie un signal d'interruption
`quit' Envoie un signal quit
`erase' Efface le dernier caractère tapé
`kill' Efface la ligne courante
`eof' Envoie un 'end of file'
`eol' End the line.
`eol2' Caractère alternatife pour end the line. Non-POSIX.
`swtch' Switch to a different shell layer. Non-POSIX.
`start' Redémarre la sortie après l'avoir stoppé
`stop' Stop la sortie
`susp' Envoie un signal stop terminal
`dsusp' Envoie un terminal stop signal après avoir vidé l'entrée. Non-POSIX.
`rprnt' Redéssine la ligne Non-POSIX.
`werase' Efface le dernier mot tapé Non-POSIX.
`lnext' Entre le prochain caractère tapé littérallement, même si c'est un caractère spécial Non-POSIX.

Paramètres spéciaux

min N Définit le nombre minimum de caractèresqui vont satisfaire une lecture jusqu'au moment ou la valeur expire quand -icanon est définit.
time N défini le nombre de dixièmes de secondes avant que la lecture se termine si le nombre de caractère minimum n'a pas été lus quand -icanon est définit.
ispeed N Définis la vitesse d'entrée
ospeed N Définis la vitesse de sortie
rows N Dit au pilote tty du kernel que le terminal a N lignes
cols N
columns N Dit au pilote tty du kernel que le terminal a N colonnes. Non-POSIX
size affiche le nombre de lignes et de colonne que le kernel pense que le terminal a. Non-POSIX
line N Use line discipline N. Non-POSIX
speed Affiche la vitesse du terminal

   N Définit la vitesse de l'entrée et la sortie. N peut être : 0 50 75 110 134 134.5 150 200 300 600 1200 1800 2400 4800 9600 19200 38400 `exta' `extb'. `exta' est identique à 19200 ; `extb' est identique à 38400. Certains systèmes supportent les vitesses élevées : 57600, 115200, 230400, 460800, 500000, 576000, 921600, 1000000, 1152000, 1500000, 2000000, 2500000, 3000000, 3500000, ou 4000000.
^
15 juillet 2010

htmlpdflatexmanmd




su

su

Changer temporairement d'utilisateur

   su autorise un utilisateur à devenir temporairement un autre utilisateur. Il lance une commande (souvent un shell interactif) avec le real et l'effective user ID, group ID et les groupes supplémentaires d'un utilisateur donné. Si aucun utilisateur n'est donné, l'utilisateur par défaut est root. Par défaut su ne change pas le répertoire courant, mais il définit les variables HOME et SHELL, et si l'utilisateur n'est pas root, définis USER et LOGNAME. Par défaut, le shell n'est pas un login shell.

OPTIONS

-c COMMAND, --command=COMMAND passe la commande, une simple ligne de commande à lancer, au shell avec l'option -c au lieu de démarrer un shell interactif.
-f, --fast passe l'option -f au shell. N'a de sens que si le shell est csh ou tcsh, qui empêche la lecture de .cshrc au démarrage.
-, -l, --login transforme le shell en login shell. Ce qui supprime les variables d'environnement sauf TERM, HOME, SHELL, USER et LOGNAME et définis PATH à une valeur par défaut.
-m, -p, --preserve-environment Ne change pas les variables d'environnement HOME, USER, LOGNAME ou SHELL
-s SHELL, --shell=SHELL Permet de lancer le SHELL spécifié.
^
07 juin 2010

htmlpdflatexmanmd




sum

sum

Calcul un checksum 16-bits pour chaque fichier donné. Affiche le checksum suivi par le nombre de blocks dans le fichier

OPTIONS

-r Utilise l'algorithme par défaut (compatible BSD) si -s est omis, n'a aucun effet.
-s, --sysv Calcul le checksum en utilisant un algorithme compatible system V.
^
04 juillet 2010

htmlpdflatexmanmd




sync

sync

Écrit les données en buffer sur le disque.

   Celà peut inclure les superblock modifiés, les inodes modifiés, les lecture/écriture retardées, ... sync effectue un simple appel système sync

^
05 juin 2010

htmlpdflatexmanmd




tac

tac

Copie chaque fichier ou l'entrée standard sur la sortie standard en renversant le contenus, les lignes par défaut.

   Les records sont séparés par des instances d'une chaîne (newline par défaut). Par défaut ce séparateur est attaché à la fin du record qui suit dans le fichier.

OPTIONS

-b, —before Le séparateur est attaché au début du record précédant dans le fichier
-r, —regex Traite la chaine séparateur comme expression régulière.
-s SEPARATOR, —separator=SEPARATOR Utilise SEPARATOR au lieu de newline
^
07 juin 2010

htmlpdflatexmanmd




tail

tail

Affiche la dernière partie de chaque fichier - 10 lignes par défaut

   Si plusieurs fichiers sont spécifiés, head affiche un en-tête d'un ligne affichant le nom du fichier sous la forme:

  ==› FILE NAME ‹==

OPTIONS

-c N, --bytes=N Affiche les N derniers octets au lieu de lignes. Si N commence avec un '+', affiche tout sauf les premières N octets de chaque fichier. N accepte un suffixe multiplicateur.
-f, --follow[=HOW] Boucle en continue la lecture des fichiers et affiche les caractères ajoutés. Il y'a 2 manières de spécifier comment vous voulez tracker des fichiers avec cette option, mais la différence est visible seulement si ces fichiers sont renommés ou supprimés :

        descriptor Continue de tracker la fin d'un fichiers même après qu'il soit 'unlinked', ne détecte pas si un fichier a été supprimé. C'est le mode par défaut.
        name Le fichier est réouvert périodiquement pour voir s'il a été supprimé ou recréer par d'autres programmes (utile pour les log gérés par logrotate). Si un fichier a été supprimé, il affiche un message.

OPTIONS

-F Correspond à --follow=name --retry
--retry Cette option est utile principalement avec l'option --follow=name. il réessaye d'ouvrir un fichier s'il a été supprimé.
--sleep-interval=NUMBER Change la durée d'attente entre les itérations,en secondes. A chaque itération, chaque fichier est vérifié pour voir si sa taille à changé.
--pid=PID Avec -f, permet de spécifier le PID
--max-unchanged-stats=N Si un fichier a été N ( défaut 5) itérations consécutives et que le fichier n'a pas changé, alors il 'open/fstat' le fichier pour déterminer si ce nom de fichier est encore associé avec la même paire device/inode-number.
N, --lines=N Sort les dernières N lignes. Identique à l'options -c
-q, --quiet, --silent N'affiche pas les en-têtes
-v, --verbose affiche toujours les en-têtes
^
07 juillet 2010

htmlpdflatexmanmd




tee

tee

Copie stdin sur stdout et dans des fichiers

   tee copie l'entrée standard sur la sortie standard et également dans les fichiers donnés. Si un fichier n'existe pas, il est créé. Si un fichier existe déjà, les données qu'il contient sont écrasés sauf si -a est spécifié. Un argument de fichier - envois une autre copie de stdin sur stdout.

OPTIONS

-a, --append Ajoute les données à la fin des fichiers donnés au lieu d'écraser leur contenu
-i, --ignore-interrupts ignore les signaux d'interruption

Exemples

télécharger un iso, et calculer son checksum e, le sauvegardant dans un fichier
wget -O - http://example.com/dvd.iso | tee ›(sha1sum › dvd.sha1) › dvd.iso
ou
wget -O - http://example.com/dvd.iso | tee dvd.iso | sha1sum › dvd.sha1
la même commande mais étend le calcul pour les checksum md5 et sha1 en parallèle
wget -O - http://example.com/dvd.iso | tee ›(sha1sum › dvd.sha1) ›(md5sum › dvd.md5) › dvd.iso
créer une copie compréssée du contenu d'un pipe et affichage avec un outil graphique sans tee
du -ak | gzip -9 › /tmp/du.gz ; gzip -d /tmp/du.gz | xdiskusage -a
avec tee
du -ak | tee ›(gzip -9 › /tmp/du.gz) | xdiskusage -a
^
06 juillet 2010

htmlpdflatexmanmd




test

test

Évaluation d'expressions

   test retourne un status de 0 ou 1 en fonction de l'évaruation de l'expression. Chaque partie de cette expression doit être un argument séparé. test a une forme alternative qui utilise [ et ] au lieu de test.

test sans argument retourne false
test avec un seul argument qui vaut null retourne false, true sinon

Test des types de fichier

-b FILE vrai si FILE existe et est un périphérique spécial block
-c FILE vrai si FILE existe et est un périphérique spécial caractère
-d FILE vrai si FILE existe et est un répertoire
-f FILE vrai si FILE existe et est un fichier régulier
-h FILE
-L FILE vrai si FILE existe et est un lien symbolique, ce test ne déréférence pas FILE.
-p FILE vrai si FILE existe et est un pipe
-S FILE vrai si FILE existe et est un socket
-t FD vrai si FD est un descripteur de fichier qui est associé avec un terminal

Test des permissions d'accès

-g FILE vrai si FILE existe et a son bit set-group-ID mit
-k FILE vrai si FILE existe et a son sticky bit mis
-r FILE vrai si FILE existe et le droit en lecture
-u FILE vrai si FILE existe et et son bit set-user-ID mis
-w FILE vrai si FILE existe et le droit en écriture
-x FILE vrai si FILE existe et le droit en exécution
-O FILE vrai si FILE existe et et son propriétaire est l'utilisation courant
-G FILE vrai si FILE existe et et son group propriétaire est le group courant.

Test des caractéristiques de fichier

FILE vrai si FILE existe
-s FILE vrai si FILE existe et a une taille supérieur à 0
FILE1 -nt FILE2 vrai si FILE1 est plus récent que FILE2, ou si FILE1 existe mais pas FILE2 (basé sur le mtime)
FILE1 -ot FILE2 vrai si FILE1 est plus ancien que FILE2, ou si FILE2 existe mais pas FILE1 (basé sur le mtime)
FILE1 -ef FILE2 vrai si FILE1 et FILE2 ont le même numéro d'inode et de périphérique (ex : lien dur)

Test de chaînes

-Z STRING vrai si la longueur de STRING est 0
STRING vrai si la longueur de STRING est différente de 0
STRING1 = STRING2 vrai si les 2 chaînes sont équivalentes
STRING1 != STRING2 vrai si les 2 chaînes sont différentes

Test numérique

ARG1 -eq ARG2
ARG1 -ne ARG2
ARG1 -lt ARG2
ARG1 -le ARG2
ARG1 -gt ARG2
ARG1 -ge ARG2

Connections pour test

! EXPR vrai si EXPR est faux
EXPR1 -a EXPR2 vrai si les 2 sont vrai
EXPR1 -o EXPR2 vrai si l'une des 2 est vrai
^
15 juillet 2010

htmlpdflatexmanmd




timeout

timeout

Lance la commande spécifiée et la termine au delà du temps spécifié.

   timeout lance la commande spécifiée et la termine si elle continue de fonctionner une fois le temps spécifié écoulé. La durée peut être préfixé par:

s secondes
m minutes
h heures
d jours

OPTIONS

-s SIGNAL, --signal=SIGNAL Envoie le signal spécifé à la commande au timeout, au lieu du signal par défaut TERM.
^
03 juillet 2010

htmlpdflatexmanmd




touch

touch

Change le atime et/ou le mtime des fichiers spécifiés

   un argument '-' est manipulé spécialement et force touch à changer le temps des fichiers associés avec l'entrée standard. Le temps est spécifié par la variable d'environnement TZ, ou par les règles par défaut du système si elle n'est pas définie.

OPTIONS

-a, --time=atime, --time=access, --time=use Change le atime uniquement.
-c, --no-create Ne crée pas de fichier s'il n'existe pas
-d, --date=TIME Utilise TIME au lieu du temps courant. exemple : --date="2004-02-27 14:19:13.489392193 +0530" spécifie l'instant de temps qui est 489 392 193 nano-secondes après le 27 février 2004 a 2h19:13 PM dans une zone qui est 5 heures 30 minutes EST d'UTC.
-m, --time=mtime, --time=modify Change le mtime uniquement
-r FILE --reference=FILE utilise le temps de FILE comme référence. Si cette option est combinée ) --date, le temps de FILE est l'origine et TIME est le temps relatif.
-t [[CC]YY]MMDDHHMM[.SS] Utilise l'argument au lieu du temps courant. si l'année est spécifiée avec 2 chiffres : ‹ 69 = 20xx sinon 19xx.
^
24 juin 2010

htmlpdflatexmanmd




tr

tr

Traduit et réduit les caractères

   tr copie l'entrée standard sur la sortie standard, en effectuant un de ces opérations :

- Traduit, et optionnellement réduit les caractères répétés dans le résultat.
- Réduit les caractères répétés.
- Supprimer des caractères
- Supprimer des caractères, puis réduit les caractères répétés dans le résultat.

Jeux de caractères

   Les arguments SET1 et SET2 définissent les jeux de caractères ordonnés.

  Le format de SET1 et SET2 ressemble au format des expressions régulières ; cependant ce ne sont pas des expressions régulières, seulement des listes de caractères.

  Caractères spéciaux reconnus :

        \a Control-G
        \b Control-H
        \f Control-L
        \n Control-J
        \r Control-M
        \t Control-I
        \v Control-K
        \000 Représente la valeur en octal d'un caractère.
        \\ backslash

Plages

   une plage est sous la forme M-N

Caractères répétés

   La notation [C*N] dans SET2 étend N copies du caractère C. donc [y*6] revient à yyyyyy.

Classes de caractères

   La notation [:CLASS :] s'étend à tous les caractères de la classe prédéfinie CLASS.

        alnum Lettres et chiffres
        alpha Lettres
        blank Espaces horizontaux
        cntrl Caractères de contrôle
        digit Chiffres
        graph Caractères imprimables, mais pas les espaces
        lower Lettres minuscules
        print Caractères imprimables
        punct Caractères de ponctuation
        space Espaces horizontaux et verticaux
        upper Lettre majuscules
        xdigits Chiffres Hexadécimaux

Traduction

   tr effectue une traduction quand SET1 et SET2 sont données et que l'option --delete n'est pas donné. tr traduit chaque caractère de l'entrée qui est listé dans SET1 par le caractère spécifié dans SET2.

Exemple

Tout mettre en majuscule
tr a-Z A-Z ou tr '[:lower:]' '[:upper:]'

Réduire

   En donnant juste l'option --delete ou -d, tr supprime tous caractère listé dans SET1.

  En donnant juste l'option --squeeze-repeats ou -s, tr remplace chaque séquence de caractères répété et listé dans SET1, par un seul.

  En utilisant ces 2 options, tr supprime d'abord en utilisant SET1, puis réduit en utilisant SET2. -s peut être utilisé avec la traduction.

Exemples

supprimer tous les octets 0
tr -d '\0'
convertit tous les caractère non-alphanumérique en newline, puis réduit les newlines répétés
tr -cs '[:alnum :]' '[\n*]'
supprimer les newlines consécutifs
tr -s '\n'
trouver les occurrences doublées de mots dans un document
#! /bin/sh
cat -- "$@" | tr -s '[:punct:][:blank:]' '[\n*]' | tr '[:upper:]' '[:lower:]' | uniq -d
^
06 juillet 2010

htmlpdflatexmanmd




true

true

Retourner un code de sortie de 0

   true ne fait rien excepté retourner un code de sortie de 0.

^
04 juillet 2010

htmlpdflatexmanmd




truncate

truncate

Réduit ou étend la taille d'un fichier. Si un fichier est plus grand que la taille spécifiée, les données en trop sont perdues. A l'inverse, le fichier est remplis de 0.

OPTIONS

-c, --no-create Ne créer pas de fichier s'il n'existe pas
-o, --io-blocks traite la taille comme nombre de blocks I/O du fichier au lieu d'octets
-r RFILE, --reference=RFILE définis la taille des fichiers à la même taille que RFILE
-s SIZE, --size=SIZE définit la taille de chaque fichier. peut être suffixé avec un multiplier et/ou:

+ étend de
- réduit de
au plus
au moins
/ arrondis au multiple inférieur de
% arrondis au multiple supérieur de
^
21 juillet 2010

htmlpdflatexmanmd




tsort

tsort

Trie topologique

Exemples

tsort ‹‹EOF
a b c
d
e f
b c d e
EOF
produira:
a
b
c
d
e
f
^
12 juillet 2010

htmlpdflatexmanmd




tty

tty

Affiche le nom du fichier du terminal connecté sur l'entrée standard

OPTIONS

-s, --silent, --quiet N'affiche rien, retourne uniquement le code de sortie

Codes de sortie

0 si l'entrée standard est un terminal
1 si l'entrée standard n'est pas un terminal
2 si l'argument donné est incorrect
3 si une erreur d'écriture s'est produite
^
14 juillet 2010

htmlpdflatexmanmd




uname

uname

Affiche des informations dur la machine et le système d'exploitation

   uname affiche des informations sur la machine et le système d'exploitation. Sans options, uname agit comme uname -s. Si plusieurs options ou -a sont donnés, les informations sont affichés dans l'ordre:

  KERNEL-NAME NODENAME KERNEL-RELEASE KERNEL-VERSION MACHINE PROCESSOR HARDWARE-PLATFORM OPERATING-SYSTEM

OPTIONS

-a, --all affiche toutes les informations, excèpté le type de processeur et le nom hardware.
-i, --hardware-plateform Affiche le nom de la plateforme hardware.
-m, --machine Affiche le nom hardware de la machine
-n, --nodename Affiche le hostname
-p, --processor Affiche le type de processeur
-o, --operating-system Affiche le nom du système d'exploitation
-r, --kernel-release affiche la version du kernel
-s, --kernel-name Nom du kernel
-v, --kernel-version Affiche la version du kernel
^
24 juin 2010

htmlpdflatexmanmd




unexpand

unexpand

Convertit les espaces en tabulation

OPTIONS

-t TAB1[,TAB2]...' , --tabs=TAB1[,TAB2]...' Si seul TAB1 est donné, définit le nombre d'espaces par tabulation (défaut 8). Sinon, définit les espaces TAB1, TAB2, ... au delà, laisse les blancs tels quels.
-a, --all Convertit aussi toute séquence de 2 ou plusieurs blancs juste avant un fin de tabulation, même s'il sont après des caractères non-blanc dans une ligne.
^
21 juillet 2010

htmlpdflatexmanmd




uniq

uniq

Écrit les lignes uniques. Par défaut, écrit les lignes d'entrée, excepté qu'il ignore toutes les lignes adjacentes sauf la première.

OPTIONS

-f N, --skip-fileds=N Ignore N champs sur chaque ligne avant de vérifier les lignes uniques. ces champs ne contiennent pas d'espace ni de tabulation et sont séparés par au moins un espace ou tabulation.
-s N, --skip-chars=N Ignore N caractères sur chaque ligne avant de vérifier les lignes uniques. Si vous utiliser -f et -n, les champs sont ignorés en premier.
-c, --count Affiche le nombre de fois que chaque ligne est trouvé.
-i, --ignore-case Ignore la casse
-d, --repeated Ignore les lignes qui ne sont pas répétées. Il copie la première ligne de chaque ligne répétée.
-D, --all-repetead[=DELIMIT-METHOD] N'ignore pas les lignes répétées, mais ignore les lignes qui ne sont pas répétées. Cette options est utile avec d'autres option pour par exemple ignorer la casse ou comparer certains champs. optionnellement, on peut spécifier comment délimiter les groupes de lignes répétées:

        none Ne délimite pas les groupes de lignes répétées.
        prepend Sort une ligne avant chaque groupe de lignes répétées.
        separate sépare les groupes de lignes répétées avec un simple newline. identique à prepend mais n'insert pas de délimiteur avec le premier groupe.

-u, --unique Ignore la première ligne répétée. affiche les lignes unique.
-e, --zero-terminated Délimite les items avec un octet zéro au lieu d'un newline.
^
02 juillet 2010

htmlpdflatexmanmd




unlink

unlink

Supprimer des liens symboliques

   unlink supprime un simple nom de fichier spécifié via l'appel système unlink.

^
14 juillet 2010

htmlpdflatexmanmd




uptime

uptime

Affiche l'utilisation du système

   uptime affiche l'heure courante, le nombre d'utilisateurs loggés, et la charge moyenne. Si un fichier est spécifié, uptime lis ce fichier pour voir le nombre d'utilisateurs loggés.

^
13 juillet 2010

htmlpdflatexmanmd




users

users

Affiche une liste d'utilisateurs loggés sur l'hôte

   users affiche sur une ligne une liste des utilisateurs actuellement loggés sur l'hôte. Chaque nom d'utilisateur correspond à une session, donc un utilisateur peut apparaitre plusieurs fois.

  Sans argument, users extrait ses informations depuis /var/run/utmp ou /etc/utmp. Si un fichier est donné en argument, users utilise ce fichier à la place ex: /var/log/wtmp.

^
07 juin 2010

htmlpdflatexmanmd




wc

wc

Compte le nombre d'octets, de caractères et de mots pour chaque fichier donné. Par défaut, wc affiche 3 compteurs - nombre de lignes, nombre de mots et nombre d'octets

OPTIONS

-c, --bytes Affiche seulement le compteur d'octets
-m, --chars Affiche seulement le compteur de caractères
-w, --words Affiche seulement le compteur de mots
-l, --lines Affiche seulement le compteur de newlines
-L, --max-line-length Affiche seulement la longueur de ligne maximum.
--files0-from=FILE Désactive le traitement des fichiers donnés sur la ligne de commande, et traite les fichiers nommés dans FILE. chaque nom est terminé par un ASCII NUL. Permet de traiter un grand nombre de fichiers.

Exemples

Trouver le longueur de la ligne la plus longue dans un fichier .c ou .h dans la hiérarchie courante
find . -name '*.[ch]' -print0 | wc -L --files0-from=- | tail -n1
^
13 juillet 2010

htmlpdflatexmanmd




who

who

Affiche des informations sur les utilisateurs loggés

   who affiche des informations sur les utilisateurs qui sont actuellement loggés. Sans argument, who affiche pour chaque utilisateur loggé : le nom de login, le terminal, le temps loggé et l'hôte distant ou l'écran X. S'il a un argument non-option, who utilise ce fichier au lieu de /var/run/utmp ou /etc/utmp. S'il 2 arguments non-option sont donnés, who affiche seulement l'entrée pour l'utilisateur courant, précédé par le nom d'hôte. Traditionnellement les 2 arguments sont am i.

OPTIONS

-a, --all Identique à -b -d --login -p -r -t -T -u
-b, --boot affiche la date et l'heure du dernier boot système
-d, --dead affiche les informations correspondant aux processus mort
-H, --heading affiche une ligne d'en-tête de colonnes.
-l, --login liste seulement les entrées qui correspondent au processus via lequel le systèmes attend qu'un utilisateur se log.le nom d'utilisateur est toujours LOGIN.
--lookup Tente de canoniser les noms d'hôtes
-m identique à who am i
-p, --process liste les processus actifs spawnés par init
-q, --count affiche unsiquement les noms de login et le nombre d'utilisateurs loggés.
-r, --runlevel affiche le run-level courant
-t, --time affiche le dernier changement d'heure système
-u après le temps de log, affiche le nombre d'heures et de minutes que l'utilisateur était absent. un '.' indique que l'utilisateur était actif durant la dernière minute. 'old' signifie que l'utilisateur est absent depuis plus de 24heures.
-w, -T, --mesg, --message, --writable Après chaque login name, affiche un caractère indiquant le message de status des utilisateurs:

        + permet d'écrire des messages
        - ne peut pas écrire de messages
        ? ne peut pas trouver de périphérique terminal
^
13 juillet 2010

htmlpdflatexmanmd




whoami

whoami

Affiche le nom de l'utilisateur

   whoami affiche le nom d'utilisation associé avec l'effective user ID courant. identique à id -un

^
05 juillet 2010

htmlpdflatexmanmd




yes

yes

Affiche les arguments en boucle

   yes affiche les arguments, séparés par des espaces, et suivis par un newline, en boucle jusqu'à ce qu'il soit tué. Sans argument, yes affiche 'y' suivie par un newline.