| ? | remplace un seul caractère | 
| * | remplace 0 ou plusieurs caractères | 
| [] | remplace par n'importe quel caractère situé à l'interieur des crochets | 
| [ - ] | remplace par un caractère qui se situe dans la suite ( 0-9 de 0 à 9, a-z de a à z) | 
| [!] | le contraire de [] | 
| commande1 ; commande2 | Lance commande2 apres commande 1 | |
| commande1 | commande2 | Renvoie le résultat de commande1 à commande2 | |
| commande & | Lance commande en arrière-plan | |
| commande1 || commande2 | SINON : ne lance commande2 que si commande1 echoue | 
 | 
| commande2 && commande2 | ET : Lance commande1 si commande1 réussi | |
| ( liste ) | Groupe de commandes | |
| { liste; } | Groupe de commandes | |
|  `Commande`  | Substitution de commandes : | 
| Entree/Sortie standart ( E/S ) | |
| 0 | Entree Standart ( clavier ) | 
| 1 | Sortie Standart ( ecran ) | 
| 2 | Erreur Standart ( ecran ) | 
| Entree/Sortie standart | |
| > fichier | Redirection en sortie vers un fichier, écrase le fichier si le fichier existe | 
| < fichier | L'entrée standart est un fichier | 
| >> fichier | Redirection en sortie vers un fichier, sans écrasement de fichiers | 
| << mot | Lecture au clavier jusqu'a 'mot' | 
| <> fichier | L'entrée et la sortie standart est un fichier | 
| Attributs de fichiers | |
| -b fichier | Vrai si le fichier existe et est un fichier en mode bloc | 
| -c fichier | Vrai si le fichier existe et est un fichier en mode caractère | 
| -d fichier | Vrai si le fichier existe et est un répertroie | 
| -e fichier | Vrai si le fichier existe | 
| -f fichier | Vrai si le fichier est un fichier ordinaire | 
| -g fichier | Vrai si le fichier existe et est grouo sid ( sgid ) | 
| -h fichier | Vrai si le fichier existe et est un lien symbolique | 
| -k fichier | Vrai si le fichier existe et est sticky bit | 
| -p fichier | Vrai si le fichier existe et est une pipe nommé ( FIFO ) | 
| -r fichier | Vrai si le fichier existe et si l'utilisateur à le droit de le lire | 
| -s fichier | Vrai si le fichier existe et à une taille supérieure à 0 ( non-vide ) | 
| -t fd | True if fichier descriptor fd is open and refers to a terminal. | 
| -u fichier | Vrai si le fichier existe et est suid | 
| -w fichier | Vrai le fichier existe et si l'utilisateur à le droit d'y écrire | 
| -x fichier | Vrai si le fichier existe et peut etre executé par l'utilisateur | 
| -O fichier | Vrai si le fichier existe et possède meme id que l'utilisateur | 
| -G file | Vrai si le fichier existe et possède le meme gid que l'utilisateur | 
| -L file | Vrai si le fichier existe et est un lien symbolique | 
| -S file | Vrai si le fichier existe est un Socket | 
| Comparaison de fichiers | |
| FICHIER1 -ef FICHIER2 | Vrai si les deux fichiers ont le meme device et numéro d'inode | 
| FICHIER1 -nt FICHIER2 | Vrai si FICHIER1 est plus récent ( par rapport à la date de modification ) que FICHIER2 | 
| FICHIER1 -ot FICHIER2 | Vrai si FICHIER1 est plus vieux ( par rapport à la date de modification ) que FICHIER2 | 
| Chaines de caractères | |
| [-n] CHAINE_DE_CHARACTERES | Vrai si la chaine n'est pas vide | 
| -z CHAINE_DE_CHARACTERES | Vrai si le chaine est vide | 
| CHAINE1 = CHAINE2 | Vrai si les deux chaines sont identiques | 
| CHAINE1 != CHAINE2 | Vrai si les deux chaines sont différentes | 
| Sur les nombres entiers | |
| ENTIER1 -eq ENTIER2 | Vrai si ENTIER1 est égal à ENTIER2 | 
| ENTIER1 -ge ENTIER2 | Vrai si ENTIER1 est plus grand ou égal à ENTIER2 | 
| ENTIER1 -gt ENTIER2 | Vrai si ENTIER1 est supérieur à ENTIER2 | 
| ENTIER1 -le ENTIER2 | Vrai si ENTIER1 est plus petit ou égal à ENTIER2 | 
| ENTIER1 -lt ENTIER2 | Vrai si ENTIER1 est plus petit que ENTIER2 | 
| ENTIER1 -ne ENTIER2 | Vrai si ENTIER1 est différent de ENTIER2 | 
| $0 | Nom du script en cours | 
| $1, $2, $3 ... | Argument du script en cours | 
| $# | Nombre d'arguments | 
| $* | Tous les paramètres ( espace se séparation dépent de $IFS ) | 
| $@ | Idem $* mais ne dépent pas d'$IFS | 
| $$ | PID du script | 
| $! | PID du dernier processus shell lancé en arrière-plan | 
| $? | Code retour de la derniere commande | 
| $variable ou ${variable} | valeur de $variable | 
| ${#variable} | Nombre de caractères de la variable $variable | 
| ${variable:-mot} | Renvoie $variable si elle est existe est non nulle, sinon renvoie ' mot ' | 
| ${variable:+mot} | Renvoie ' mot ' si la variable $variable existe et est non nulle, sinon elle retourne 0 | 
| ${variable:=mot} | Affecte ' mot ' à $variable si elle est nulle | 
| ${variable:?mot} | Affiche ' mot ' si la $variable n'existe pas, et termine la commande ou le script | 
| ${variable#expression} | Si expression = debut de variable -> supprime la plus partie reconnue et retourne le reste | 
| ${variable##expression} | Si expression = debut de variable -> supprime la plus grande partie reconnue et retourne le reste | 
| ${variable%expression} | Si expression = fin de variable -> supprime la plus partie reconnue et retourne le reste | 
| ${variable%%expression} | Si expression = fin de variable -> supprime la plus grande partie reconnue et retourne le reste | 
| if condition then commandes1 commandes2 ; ... else autrecommande1; autrecommande2 fi | SI condition ALORS ... SINON ... FIN_SI | 
| for i in liste do commande1 ; commande2 ... done | POUR i DANS la_liste FAIT .... FIN_FAIT | 
| until condition do commande1; commande2 ... done | JUSQUACEQUE condition FAIT ... FIN_FAIT | 
| while condition do commande1; commande2 ... done | TANTQUE condition FAIT ... FIN_FAIT |