====== Aide mémoire des commandes Bash ====== ===== Jokers ===== * ? remplace un seul caractère * * remplace 0 ou plusieurs caractères * [] remplace par n'importe quel caractère situé à l'intérieur 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 [] ===== Groupement de commandes ===== * commande1 ; commande2 Lance commande2 après commande 1 * commande1 | commande2 Renvoie la sortie de commande1 à l'entrée de commande2 * commande & Lance commande en arrière-plan * commande1 || commande2 SINON : ne lance commande2 que si commande1 échoue * commande2 && commande2 ET : Lance commande1 si commande1 réussit * ( liste ) Groupe de commandes * { liste; } Groupe de commandes * `commande` * $(commande) ===== Substitution de commandes ===== ==== Les redirections ==== * 0 : Entrée/Sortie standard ( E/S ) * 1 : Entrée standard ( clavier ) * 2 : Sortie standard ( ecran ) ==== Entree/Sortie standard ==== * > fichier Redirection en sortie vers un fichier, écrase le fichier si le fichier existe * < fichier L'entrée standard est un fichier * >> fichier Redirection en sortie vers un fichier, sans écrasement de fichiers * << mot Lecture au clavier jusqu'à ''mot'' * <> fichier L'entrée et la sortie standard sont un même fichier ===== Les Tests ===== ==== 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épertoire * -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 group 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 tube nommé ( FIFO ) * -r fichier Vrai si le fichier existe et si l'utilisateur a le droit de le lire * -s fichier Vrai si le fichier existe et a 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 a le droit d'y écrire * -x fichier Vrai si le fichier existe et peut être 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 même device et numéro d'inode * FICHIER1 -nt FICHIER2 Vrai si FICHIER1 est plus récent (date de modification) que FICHIER2 * FICHIER1 -ot FICHIER2 Vrai si FICHIER1 est plus ancien (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 ==== 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 ===== Les variables de paramètres ===== * $0 Nom du script en cours * $1, $2, $3 ... Arguments du script en cours * $# Nombre d'arguments * $* Tous les paramètres (espace de séparation dépend de $IFS ) * $@ Idem $* mais ne dépend pas d'$IFS * $$ PID du script * $! PID du dernier processus shell lancé en arrière-plan * $? Code retour de la dernière commande ===== Les substitutions de variables ===== * $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:=Description de la tâche trop longue > 256, coupée à 255