Annexe A. Possibilités du Shell

Table des matières

1. Fonctionnalités courantes
2. Fonctionnalités spécifiques

Résumé

Ce document donne une vue globale des possibilités courantes d'un Shell et des spécificités possibles.

1. Fonctionnalités courantes

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

Commandesens
>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)
$varEmploie la valeur de la variable
$$Identifiant du processus
$0Nom de la Commande
$nNième argument (N entre 0 et 9)
$*Tous les arguments vus comme un mot unique
#Commence un commentaire
bgExécution en tâche de fond
breakSortir d'une instruction de boucle
cdChange de répertoire
continuePasse à l'itération suivante d'une boucle dans un programme
echoAffiche le résultat
evalEvalue les arguments
execExécute un nouveau processus Shell
fgExécution dans la session en cours
jobsAffiche les travaux en cours
killTermine un travail en cours
newgrpChange de groupe l'utilisateur
shiftDécale les paramètres positionnels
stopSuspend un travail en tâche de fond
suspendSuspend un travail en cours dans la session
timeChronomètre une commande
umaskDonne ou liste les permissions sur les fichiers
unsetSupprime une variable ou une fonction
waitAttend qu'une tâche de fond se termine

2. Fonctionnalités spécifiques

La table suivante montre les principales différences des Shell courants (sh), Bourne Again SHell (bash), Korn shell (ksh) et le C shell (csh).

Compatibilité des Shell

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

shBashkshcshSignification/Action
$$$%L'invite utilisateur par défaut
>|>|>!Force la redirection
> fichier 2>&1&> fichier ou > fichier 2>&1> fichier 2>&1>& fichierRedirige 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$homeRépertoire utilisateur
~~~Symbole équivalent au répertoire utilisateur
~+, ~-, dirs~+, ~-=-, =NAccède à la pile des répertoires
var=valueVAR=valuevar=valueset var=valueAffectation de variable
export varexport VAR=valueexport var=valsetenv var valPublie 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
$#$#$#$#argvLe nombre d'arguments
$?$?$?$statusStatut d'exécution de la commande la plus récente
$!$!$! PID de la tâche de fond la plus récente
$-$-$- Options classiques
. fichiersource fichier ou . fichier. fichiersource fichierLecture de commandes depuis un fichier
alias x='y'alias x=yalias x yNom x est équivalent à la commande y
casecasecaseswitch ou caseDécline différentes éventualités
donedonedoneendFini une instruction de boucle
esacesacesacendswMarque la fin du case ou du switch
exit nexit nexit nexit (expr)Quitte avec un statut d'exécution
for/dofor/dofor/doforeachBoucles sur plusieurs variables
set -f, set -o nullglob|dotglob|nocaseglob|noglob noglobIgnore la substitution de caractères dans la génération de fichier
hashhashalias -thashstatAffiche les commandes 'hash' (trace les alias)
hash cmdshash cmdsalias -t cmdsrehashMémorise où se situe la commande
hash -rhash -r unhashAnnule la mémorisation
historyhistoryhistoryListe les commandes passées
ArrowUp+Enter ou !!r!!Relance la commande précédente
!strr str!strRelance 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
fififiendifMarque la fin de l'instruction if
ulimitulimitulimitlimitDéclare une limite de ressource
pwdpwdpwddirsAffiche le répertoire courant
readreadread$<Lecture depuis l'entrée
trap 2trap 2trap 2onintrA pour effet d'ignorer les interruptions
unaliasunaliasunaliasDétruit les alias
untiluntiluntil Begin until loop
while/dowhile/dowhile/dowhileBegin 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.