Table des matières
Résumé
Ce document donne une vue globale des possibilités courantes d'un Shell et des spécificités possibles.
Les fonctionnalités suivantes sont standard dans tout Shell. Notez que les commandes stop, suspend, jobs, bg et fg sont seulement disponibles sur les systèmes qui permettent le contrôle des travaux(job control).
Tableau A.1. Fonctionnalités courantes du Shell
| Commande | sens |
|---|---|
| > | Redirige la sortie |
| >> | Ajoute en fin de fichier |
| < | Redirige l'entrée |
| << | Document en ligne (redirige l'entrée) |
| | | Sortie par un tube |
| & | Place le travail en tâche de fond. |
| ; | Sépare des commandes sur une même ligne |
| * | Correspond à n'importe quel(s) caractère(s) dans un nom de fichier |
| ? | Correspond à n'importe quel caractère unique dans un nom de fichier |
| [ ] | Correspond à n'importe quels caractères inclus |
| ( ) | S'exécute dans un sous-Shell |
| ` ` | Substitue le contenu par le résultat de la commande incluse |
| " " | Guillemets ou citation partielle (permet l'expansion de variables et de commandes) |
| ' ' | Apostrophes ou citation totale (pas d'expansion) |
| \ | Citation du caractère qui suit(NdT: emploi du caractère dans son sens littéral->échappement) |
| $var | Emploie la valeur de la variable |
| $$ | Identifiant du processus |
| $0 | Nom de la Commande |
| $n | Nième argument (N entre 0 et 9) |
| $* | Tous les arguments vus comme un mot unique |
# | Commence un commentaire |
| bg | Exécution en tâche de fond |
| break | Sortir d'une instruction de boucle |
| cd | Change de répertoire |
| continue | Passe à l'itération suivante d'une boucle dans un programme |
| echo | Affiche le résultat |
| eval | Evalue les arguments |
| exec | Exécute un nouveau processus Shell |
| fg | Exécution dans la session en cours |
| jobs | Affiche les travaux en cours |
| kill | Termine un travail en cours |
| newgrp | Change de groupe l'utilisateur |
| shift | Décale les paramètres positionnels |
| stop | Suspend un travail en tâche de fond |
| suspend | Suspend un travail en cours dans la session |
| time | Chronomètre une commande |
| umask | Donne ou liste les permissions sur les fichiers |
| unset | Supprime une variable ou une fonction |
| wait | Attend qu'une tâche de fond se termine |
La table suivante montre les principales différences des Shell courants (sh), Bourne Again SHell (bash), Korn shell (ksh) et le C shell (csh).
Parce que Bash est un sur-ensemble de sh, toutes les commandes sh fonctionnent en Bash - mais pas vice versa. Bash a bien plus de possibilités qui lui sont propres, et, comme le montre la table suivante, beaucoup de possibilités venant d'autres Shell.
Parce que le Turbo C Shell est un sur-ensemble de csh, toutes les commandes csh fonctionnent en tcsh, mais l'inverse n'est pas vrai.
Tableau A.2. Différences de fonctionnalités des Shell
| sh | Bash | ksh | csh | Signification/Action |
|---|---|---|---|---|
| $ | $ | $ | % | L'invite utilisateur par défaut |
| >| | >| | >! | Force la redirection | |
> fichier 2>&1 | &> fichier ou > fichier 2>&1 | > fichier 2>&1 | >& fichier | Redirige stdout et stderr sur fichier |
| { } | { } | Expansion des éléments de la liste | ||
| `commande` | `commande` ou $(commande) | $(commande) | `commande` | Remplace par le résultat de la commande incluse |
$HOME | $HOME | $HOME | $home | Répertoire utilisateur |
| ~ | ~ | ~ | Symbole équivalent au répertoire utilisateur | |
~+, ~-, dirs | ~+, ~- | =-, =N | Accède à la pile des répertoires | |
var=value | VAR=value | var=value | set var=value | Affectation de variable |
export var | export VAR=value | export var=val | setenv var val | Publie une variable d'environnement |
${nnnn} | ${nn} | Les paramètres peuvent être référencés au delà des 9 premiers | ||
"$@" | "$@" | "$@" | Chaque argument est connu comme une valeur indépendante | |
$# | $# | $# | $#argv | Le nombre d'arguments |
$? | $? | $? | $status | Statut d'exécution de la commande la plus récente |
$! | $! | $! | PID de la tâche de fond la plus récente | |
$- | $- | $- | Options classiques | |
. fichier | source fichier ou . fichier | . fichier | source fichier | Lecture de commandes depuis un fichier |
| alias x='y' | alias x=y | alias x y | Nom x est équivalent à la commande y | |
| case | case | case | switch ou case | Décline différentes éventualités |
| done | done | done | end | Fini une instruction de boucle |
| esac | esac | esac | endsw | Marque la fin du case ou du switch |
exit n | exit n | exit n | exit (expr) | Quitte avec un statut d'exécution |
| for/do | for/do | for/do | foreach | Boucles sur plusieurs variables |
set -f, set -o nullglob|dotglob|nocaseglob|noglob | noglob | Ignore la substitution de caractères dans la génération de fichier | ||
| hash | hash | alias -t | hashstat | Affiche les commandes 'hash' (trace les alias) |
hash cmds | hash cmds | alias -t cmds | rehash | Mémorise où se situe la commande |
hash -r | hash -r | unhash | Annule la mémorisation | |
| history | history | history | Liste les commandes passées | |
| ArrowUp+Enter ou !! | r | !! | Relance la commande précédente | |
!str | r str | !str | Relance la commande la plus récemment passée qui commence par « str » | |
!cmd:s/x/y/ | r x=y cmd | !cmd:s/x/y/ | Remplace « x » par « y » dans la commande la plus récemment passée commençant par « cmd », puis exécute. | |
if [ $i -eq 5 ] | if [ $i -eq 5 ] | if ((i==5)) | if ($i==5) | Echantillon de tests de conditions |
| fi | fi | fi | endif | Marque la fin de l'instruction if |
| ulimit | ulimit | ulimit | limit | Déclare une limite de ressource |
| pwd | pwd | pwd | dirs | Affiche le répertoire courant |
| read | read | read | $< | Lecture depuis l'entrée |
trap 2 | trap 2 | trap 2 | onintr | A pour effet d'ignorer les interruptions |
| unalias | unalias | unalias | Détruit les alias | |
| until | until | until | Begin until loop | |
| while/do | while/do | while/do | while | Begin while loop |
Bourne Again SHell a bien d'autres possibilités non évoquées ici. Ce tableau donne un aperçu de comment ce Shell intègre toutes les bonnes idées des autres Shell: il n'y a pas de blanc dans la colonne bash. Plus d'informations sur les possibilités propres à Bash peuvent être trouvées dans les pages d'info Bash, dans la section « Bash Features ».
Plus d'informations:
Vous devriez au moins lire un manuel, même si c'est celui de votre Shell. Le choix pourrait être info bash, bash étant le Shell GNU et le plus facile pour le débutant. Imprimez-le et emportez-le à la maison, l'étudier dès que vous avez 5 minutes.