Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
lien:bash:perso:bashrc [2009/03/30 17:22] per |
lien:bash:perso:bashrc [2009/03/31 00:14] (Version actuelle) per |
||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
===== Les commandes ===== | ===== Les commandes ===== | ||
- | + | <code bash> | |
# If not running interactively, don't do anything | # If not running interactively, don't do anything | ||
[ -z "$PS1" ] && return | [ -z "$PS1" ] && return | ||
+ | </code> | ||
testez en ligne : echo $PS1 | testez en ligne : echo $PS1 | ||
Puis ce petit script prompt.sh | Puis ce petit script prompt.sh | ||
Ligne 25: | Ligne 25: | ||
==== Gestion de l'historique des commandes ==== | ==== Gestion de l'historique des commandes ==== | ||
+ | <code bash> | ||
# don't put duplicate lines in the history. See bash(1) for more options | # don't put duplicate lines in the history. See bash(1) for more options | ||
export HISTCONTROL=ignoredups | export HISTCONTROL=ignoredups | ||
+ | </code> | ||
Lire man bash puis recherche ignoredups /ignoredups ou plus largement HISTCONTROL | Lire man bash puis recherche ignoredups /ignoredups ou plus largement HISTCONTROL | ||
- | On pourra voir l'ensemble des dernièrement commande avec history | + | On pourra voir l'ensemble des dernièrement commande avec : history |
Comment afficher plus d'une page de history : ................... | Comment afficher plus d'une page de history : ................... | ||
+ | |||
+ | **Astuce** Pour rappelez une commande de l'historique sans la lancer | ||
+ | Supposons que vous avez dans l'historique la commande : arborescence /etc | ||
+ | si vous faîtes : !arbo:p , on vous proposera la commande arborescence /etc sans la lancer, un simple (flèche haut) puis entrée l'exécutera. | ||
==== Les options du Shell ==== | ==== Les options du Shell ==== | ||
+ | <code bash> | ||
# check the window size after each command and, if necessary, | # check the window size after each command and, if necessary, | ||
# update the values of LINES and COLUMNS. | # update the values of LINES and COLUMNS. | ||
shopt -s checkwinsize | shopt -s checkwinsize | ||
+ | </code> | ||
On recherchera dans man bash-builtins , shopt et checkwinsize | On recherchera dans man bash-builtins , shopt et checkwinsize | ||
- | donnez alors le sens de la ligne : shopt -s checkwinsize | + | donnez alors le sens de la ligne : shopt -s checkwinsize ...................... |
==== Gestion de l'affichage avec Less ==== | ==== Gestion de l'affichage avec Less ==== | ||
+ | <code bash> | ||
# make less more friendly for non-text input files, see lesspipe(1) | # make less more friendly for non-text input files, see lesspipe(1) | ||
[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)" | [ -x /usr/bin/lesspipe ] && eval "$(lesspipe)" | ||
+ | </code> | ||
Permet de voir avec less des fichiers compressés entre autres. | Permet de voir avec less des fichiers compressés entre autres. | ||
Ligne 51: | Ligne 57: | ||
==== Chroot ==== | ==== Chroot ==== | ||
Permet de changer de répertoire racine. | Permet de changer de répertoire racine. | ||
+ | <code bash> | ||
# set variable identifying the chroot you work in (used in the prompt below) | # set variable identifying the chroot you work in (used in the prompt below) | ||
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then | if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then | ||
debian_chroot=$(cat /etc/debian_chroot) | debian_chroot=$(cat /etc/debian_chroot) | ||
fi | fi | ||
+ | </code> | ||
tester la variable debian_chroot avec : | tester la variable debian_chroot avec : | ||
- | Proposer un test simple avec ls ?? /etc/??? : pour voir si /etc/debian_chroot existe et est lisible | + | Proposer un test simple avec ls .. /etc/... : pour voir si /etc/debian_chroot existe et est lisible |
==== Type de Terminal ==== | ==== Type de Terminal ==== | ||
+ | <code bash> | ||
# set a fancy prompt (non-color, unless we know we "want" color) | # set a fancy prompt (non-color, unless we know we "want" color) | ||
case "$TERM" in | case "$TERM" in | ||
Ligne 74: | Ligne 81: | ||
# Comment in the above and uncomment this below for a color prompt | # Comment in the above and uncomment this below for a color prompt | ||
#PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' | #PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' | ||
+ | </code> | ||
Pour connaître le prompt choisi , tester votre terminal avec ......$TERM | Pour connaître le prompt choisi , tester votre terminal avec ......$TERM | ||
Ligne 81: | Ligne 88: | ||
Le prompt comprend une partie caractères spéciaux et gestion des couleurs : | Le prompt comprend une partie caractères spéciaux et gestion des couleurs : | ||
- | Les caractères spéciaux : man bash recherchez INVITES /invites | + | Les caractères spéciaux : man bash puis /invites pour rechercher INVITES |
Exemple : donnez le sens de | Exemple : donnez le sens de | ||
Ligne 89: | Ligne 96: | ||
\$ ........ | \$ ........ | ||
- | Pour les couleurs | + | Pour les couleurs : echo -e '\E[COLOR1;COLOR2mDu texte vient ici.' |
- | echo -e '\E[COLOR1;COLOR2mDu texte vient ici.' | + | |
| Couleur |noir |rouge |vert |jaune |bleu |magenta |cyan |blanc | | | Couleur |noir |rouge |vert |jaune |bleu |magenta |cyan |blanc | | ||
Ligne 97: | Ligne 103: | ||
==== Pour xterm terminal de l'environnement graphique X ==== | ==== Pour xterm terminal de l'environnement graphique X ==== | ||
+ | <code bash> | ||
# If this is an xterm set the title to user@host:dir | # If this is an xterm set the title to user@host:dir | ||
case "$TERM" in | case "$TERM" in | ||
Ligne 105: | Ligne 112: | ||
;; | ;; | ||
esac | esac | ||
+ | </code> | ||
Quel est votre PROMPT_COMMAND ? | Quel est votre PROMPT_COMMAND ? | ||
testez PROMPT_COMMAND="echo -n $(date +%H%M)" | testez PROMPT_COMMAND="echo -n $(date +%H%M)" | ||
==== ALIAS ==== | ==== ALIAS ==== | ||
+ | <code bash> | ||
# Alias definitions. | # Alias definitions. | ||
# You may want to put all your additions into a separate file like | # You may want to put all your additions into a separate file like | ||
Ligne 119: | Ligne 126: | ||
# . ~/.bash_aliases | # . ~/.bash_aliases | ||
#fi | #fi | ||
- | |||
# enable color support of ls and also add handy aliases | # enable color support of ls and also add handy aliases | ||
if [ "$TERM" != "dumb" ]; then | if [ "$TERM" != "dumb" ]; then | ||
Ligne 127: | Ligne 133: | ||
#alias vdir='ls --color=auto --format=long' | #alias vdir='ls --color=auto --format=long' | ||
fi | fi | ||
- | |||
# some more ls aliases | # some more ls aliases | ||
#alias ll='ls -l' | #alias ll='ls -l' | ||
#alias la='ls -A' | #alias la='ls -A' | ||
#alias l='ls -CF' | #alias l='ls -CF' | ||
+ | </code> | ||
Enlevez les commentaires devant les 3 derniers alias | Enlevez les commentaires devant les 3 derniers alias | ||
Testez avec ........ | Testez avec ........ | ||
Ligne 140: | Ligne 145: | ||
==== Le complètement ==== | ==== Le complètement ==== | ||
+ | <code bash> | ||
# enable programmable completion features (you don't need to enable | # enable programmable completion features (you don't need to enable | ||
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile | # this, if it's already enabled in /etc/bash.bashrc and /etc/profile | ||
Ligne 146: | Ligne 152: | ||
. /etc/bash_completion | . /etc/bash_completion | ||
fi | fi | ||
+ | </code> | ||
Lorsque vous compléter le nom d'un fichier ou d'une commande avec la touche <TAB>, vous utilisez le complètement automatique qui est validé ici. | Lorsque vous compléter le nom d'un fichier ou d'une commande avec la touche <TAB>, vous utilisez le complètement automatique qui est validé ici. | ||