Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
informatique:linux:bash [2009/05/14 15:14] benoit |
informatique:linux:bash [2019/01/29 14:03] (Version actuelle) benoit [Fonction pour afficher des messages en couleur] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== BASH ====== | ====== BASH ====== | ||
- | |||
- | ===== Configurer le prompt ===== | ||
- | Pour avoir des couleurs sur le prompt de bash, éditer le fichier $HOME/.bashrc puis ajouter par exemple la ligne suivante | ||
- | |||
- | PS1='\e[1;34m[ \e[0m\u @ \e[1;34m\h\e[0m \e[1;40m\w\e[0m\e[1;34m ]\n\$\e[0m ' | ||
- | |||
- | Modifier les "34m" "40m" etc... pour changer de couleur | ||
- | |||
- | Pour le monochrome : | ||
- | PS1='\[[ \u@\h \w \]]\n\$ ' | ||
- | |||
- | ===== Pour afficher des couleurs plus lisibles dans la console ===== | ||
- | |||
- | Pour éviter les couleurs illisibles lorsque l'on lance la commande ''ls'' ajouter la ligne suivante dans ''/etc/bashrc'' | ||
- | unset LS_COLORS | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
===== Variables ===== | ===== Variables ===== | ||
Ligne 30: | Ligne 6: | ||
* Pour afficher le PID du dernier processus lancé en tâche de fond : **echo $!** | * Pour afficher le PID du dernier processus lancé en tâche de fond : **echo $!** | ||
* Pour afficher le code retour de la dernière commande: **echo $?** | * Pour afficher le code retour de la dernière commande: **echo $?** | ||
+ | |||
Ligne 37: | Ligne 14: | ||
* Pour afficher le premier argument du script : **echo $1**, le second : **echo $2** etc... | * Pour afficher le premier argument du script : **echo $1**, le second : **echo $2** etc... | ||
* Pour afficher tous les arguments : **echo $@** | * Pour afficher tous les arguments : **echo $@** | ||
+ | * Pour afficher le nombre de paramètres : **echo $#** | ||
+ | |||
+ | |||
+ | |||
==== Expansion des variables ==== | ==== Expansion des variables ==== | ||
Ligne 53: | Ligne 34: | ||
user@host# echo ${VAR%ble} | user@host# echo ${VAR%ble} | ||
mavaria | mavaria | ||
+ | |||
+ | Pour effacer tout ce qui est derrière "**:**" : | ||
+ | user@host# VAR=user:password | ||
+ | user@host# echo ${VAR%:*} | ||
+ | user | ||
+ | |||
+ | Pour effacer tout ce qui est devant "**:**" : | ||
+ | user@host# VAR=user:password | ||
+ | user@host# echo ${VAR#*:} | ||
+ | password | ||
Définir une valeur par défaut à **VAR** en cas d'absence de valeur. Si **VAR=""** alors **VAR=defaut** : | Définir une valeur par défaut à **VAR** en cas d'absence de valeur. Si **VAR=""** alors **VAR=defaut** : | ||
user@host# VAR= | user@host# VAR= | ||
user@host# echo ${VAR:=defaut} | user@host# echo ${VAR:=defaut} | ||
+ | defaut | ||
- | ===== historique des commandes ===== | ||
- | Pour configurer l'historique des commandes préfixé de la date : | ||
- | |||
- | Définir la variable **HISTTIMEFORMAT** ainsi dans un fichier de profile. Par exemple : | ||
- | echo "HISTTIMEFORMAT='%d/%m/%Y %H:%M '" >> /etc/profile.d/history.sh | ||
- | chmod +x /etc/profile.d/history.sh | ||
- | |||
- | ou sous Debian : | ||
- | echo "HISTTIMEFORMAT='%d/%m/%Y %H:%M '" >> /etc/profile | ||
- | |||
- | ou bien pour un seul utilisateur : | ||
- | echo "HISTTIMEFORMAT='%d/%m/%Y %H:%M '" >> $HOME/.bashrc | ||
- | |||
- | Pour connaître l'historique des commandes, taper : | ||
- | history | ||
Ligne 257: | Ligne 234: | ||
+ | ===== Quelques astuces ===== | ||
+ | ==== Configurer le prompt ==== | ||
+ | Pour avoir des couleurs sur le prompt de bash, éditer le fichier $HOME/.bashrc puis ajouter par exemple la ligne suivante | ||
+ | PS1='\e[1;34m[ \e[0m\u @ \e[1;34m\h\e[0m \e[1;40m\w\e[0m\e[1;34m ]\n\$\e[0m ' | ||
+ | |||
+ | Modifier les "34m" "40m" etc... pour changer de couleur | ||
+ | |||
+ | Pour le monochrome : | ||
+ | PS1='\[[ \u@\h \w \]]\n\$ ' | ||
+ | |||
+ | |||
+ | |||
+ | ==== Pour afficher des couleurs plus lisibles dans la console ==== | ||
+ | |||
+ | Pour éviter les couleurs illisibles lorsque l'on lance la commande ''ls'' ajouter la ligne suivante dans ''/etc/bashrc'' | ||
+ | unset LS_COLORS | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Pour débugger un script Shell ==== | ||
+ | En début de script insérer la commande suivante pour le rendre verbeux : | ||
+ | set -x | ||
+ | |||
+ | Pour le faire sur une partie du script uniquement : | ||
+ | set -x | ||
+ | <instruction> | ||
+ | set +x | ||
+ | |||
+ | ==== Fonction pour afficher des messages en couleur ==== | ||
+ | |||
+ | # Affiche un message en rouge | ||
+ | echo_red() { | ||
+ | echo $(printf '\033[%sm%s\033[m\n' "31" $1) | ||
+ | } | ||
+ | # Affiche un message en vert | ||
+ | echo_green() { | ||
+ | echo $(printf '\033[%sm%s\033[m\n' "32" $1) | ||
+ | } | ||
+ | | ||
+ | # Utiliser les fonctions echo_red ou echo_green selon la couleur voulue a la place du echo | ||
+ | echo_red "Error" | ||
+ | echo_green "OK" | ||
+ | |||
+ | ==== Historique des commandes ==== | ||
+ | Pour configurer l'historique des commandes préfixé de la date : | ||
+ | |||
+ | Définir la variable **HISTTIMEFORMAT** ainsi dans un fichier de profile. Par exemple : | ||
+ | echo "HISTTIMEFORMAT='%d/%m/%Y %H:%M '" >> /etc/profile.d/history.sh | ||
+ | chmod +x /etc/profile.d/history.sh | ||
+ | |||
+ | ou sous Debian : | ||
+ | echo "HISTTIMEFORMAT='%d/%m/%Y %H:%M '" >> /etc/profile | ||
+ | |||
+ | ou bien pour un seul utilisateur : | ||
+ | echo "HISTTIMEFORMAT='%d/%m/%Y %H:%M '" >> $HOME/.bashrc | ||
+ | |||
+ | Pour connaître l'historique des commandes, taper : | ||
+ | history |