Shell (coquille) ou interprèteur de commande (comme le command.com de DOS)
Chaque utilisateur à ses préférences dans le fichier .bash-profile (qui est dans son répertoire d'utilisateur)
/etc/profile est le fichier de préférences globales de BASH
Touche de raccourci :
<SHIFT>+<PAGEUP> : Défile les commandes du haut
<SHIFT>+<PAGEDOWN> : Défile les commandes du bas
<ALT>+<F1> à <ALT>+<F6> : Change de Terminal [virtuel].
On peut donc se connecter sur plusieurs comptes différents ou
sur le même plusieurs fois sur la même ordinateur.
<ALT>+'L' : efface l'écran
commande <TAB> : complète automatiquement un nom de fichier...
pressez une ou deux fois la touche <TAB>
Caractère de subtitution, de condition, etc...
~ : répertoire de l'usager courant [fichier /etc/passwd] - : répertoire précédent * : remplace 0 ou plusieurs caractères ? : remplace 1 caractère [] : remplace par les caractères dans les braquettes individuellement Exemple: tp[12] donne la même chose que tp1 tp2 [-] : remplace par les caractères dans les braquettes en suivant une intervalle Exemple: tp[2-5] donne la même chose que tp2 tp3 tp4 tp5 [,] : remplace par les caractères dans les braquettes, puis par les autres après la virgule.. etc... Exemple: tp[1-3,5-9] donne la même chose que: tp15, tp16, tp17, tp18, tp18 tp25, tp26, tp27, tp28, tp38 tp35, tp36, tp37, tp38, tp28 [!] : remplace par tout à part les caractères dans les braquettes Exemple: tp[!1] donne tp2, tp3, tp4, etc... mais pas tp1 {,} : remplace par des chaînes séparés par des virgules Exemple: ri{delle,gole,dicule} donne ridelle rigole ridicule > : modifie la sortie d'une commande Exemple: ls -R > fichier écrit le résultat de la commande ls -R vers fichier (en l'écrasant) >> : modifie la sortie d'une commande (en écrivant à la suite) Exemple: ls -R >> fichier écrit le résultat de la commande ls -R vers fichier sans l'écraser < : modifie l'entrée standard Exemple: rm / -R < oui efface tous les fichiers récursivement en envoyant la réponse 'oui' à la commande (!!! efface linux à ne pas faire !!!) & : Exécute une commande en arrière plan | : tube (pipe) redirige la sortie d'une commande vers l'entrée d'une autre Exemple: ls | sort | more envoie le résultat de 'ls' (sortie) vers la commande 'sort' (entrée) qui la redirige (sortie) vers la commande 'more' (entrée) && : exécute une commande si la commande précédante a retourné vrai Exemple: test -w tp1 && echo "On peut écrire dans le fichier tp1" || : exécute une commande si la commande précédante a retourné faux Exemple: test -w tp1 !! echo "On ne peut pas écrire dans le fichier tp1" ! : contraire d'une condition logique (!vrai = faux, !faux = vrai) CANAUX D'ENTRÉES/SORTIES STANDARDS: numero nom du canal C/C++ #0 - clavier stdin cin #1 - écran stdout cout #2 - fenêtre d'affichage d'erreur stderr cerr Exemple de redirection vers les canaux: ls *A 2 > LISTE : affiche tous les fichiers finissant par 'A' et envoie toutes les erreurs (canaux 2) vers le fichier LISTE ls *A 2 > /dev/null : inscrit dans le périphérique null (trou noir) les erreurs.
Programmation
Structure de Condition
if [ condition ]; then uneInstruction; fi if [ condition ] then instruction; instruction; fi if [ condition ] then instruction; instruction; else instruction; fi if [ condition ]; then instruction; elif instruction; else instruction; fi Référence pour les [] Référence pour opérateur de comparaison if [ arg1 -eq arg2 ]; then NombreEstÉgalÀ; fi if [ arg1 -ne arg2 ]; then NombreEstDifférentDe; fi if [ $string1 == $string2 -a $string2 == $string3 ]; then # si chaine1 est égale a chaine2 ET (-a and) chaine2 est egale a chaine3 fi if [ $string1 == $string2 -o $string2 == $string3 ]; then # si chaine1 est égale a chaine2 OU (-o or) chaine2 est egale a chaine3 fi case $var in choix1) # si $var est égale à choix1 alors: instruction1 ;; choix2 | choix3) # si $var est égale à choix2 ou à choix3 instruction2ou3 ;; esac
Remarque: il ne faut pas oublier les espaces entre les crochets [ ] du if et les opérateurs (-eq, -a, ==).
Car if [ 1 -eq 1 ] est vrai et if [1 -eq 1] est faux.
Entree/sortie
Sortie: echo "chaine de caractere" VARIABLE1=allo echo "chaine avec une $VARIABLE1" VARIABLE2=test echo $VARIABLE2 Entrée: read nomvariable echo $nomvariable
Caractères spéciaux
Son de cloche
echo $'\a'; # ou echo -e "\a"; # changer la fréquence du son: echo -e "\33[10;FRÉQUENCE_en_Hertz]\33[11;DURÉE_EN_MilliSeconde]" # Fréquence et durée par défaut: echo -e "\33[10;750]\33[11;125]"
Invite
2004/04/03
J'étais fatigué d'avoir l'ancienne invite: [\t<\u>\W]\$
Voici ma nouvelle invite: export PS1="\t <\u>[\W]\$" placée à la fin du fichier ~/.bashrc.
Hyperliens...
Erreur de bash
2005/02/05
bash: child setpgid (8026 to 8026): Aucun processus de ce type
