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/29 21:46] 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 21: | Ligne 21: | ||
Recherchez la signification de -z avec man test | Recherchez la signification de -z avec man test | ||
Ainsi que return avec help en anglais ou man bash_builtins puis recherche de return avec "/^ *return " | Ainsi que return avec help en anglais ou man bash_builtins puis recherche de return avec "/^ *return " | ||
+ | Expliquez "/^ *return " | ||
Donnez alors la signification de la ligne [ -z "$PS1" ] && return ..................... | Donnez alors la signification de la ligne [ -z "$PS1" ] && return ..................... | ||
==== 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 50: | 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 70: | Ligne 78: | ||
esac | esac | ||
+ | |||
+ | # 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\]\$ ' | ||
+ | </code> | ||
Pour connaître le prompt choisi , tester votre terminal avec ......$TERM | Pour connaître le prompt choisi , tester votre terminal avec ......$TERM | ||
Ligne 76: | 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 84: | 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 | | ||
+ | | Avant-plan | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | | ||
+ | | Arrière-plan | 40 | 41| 42 | 43 | 44 | 45 | 46 | 47 | | ||
+ | |||
+ | ==== Pour xterm terminal de l'environnement graphique X ==== | ||
+ | <code bash> | ||
+ | # If this is an xterm set the title to user@host:dir | ||
+ | case "$TERM" in | ||
+ | xterm*|rxvt*) | ||
+ | PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"' | ||
+ | ;; | ||
+ | *) | ||
+ | ;; | ||
+ | esac | ||
+ | </code> | ||
+ | Quel est votre PROMPT_COMMAND ? | ||
+ | testez PROMPT_COMMAND="echo -n $(date +%H%M)" | ||
+ | |||
+ | ==== ALIAS ==== | ||
+ | <code bash> | ||
+ | # Alias definitions. | ||
+ | # You may want to put all your additions into a separate file like | ||
+ | # ~/.bash_aliases, instead of adding them here directly. | ||
+ | # See /usr/share/doc/bash-doc/examples in the bash-doc package. | ||
+ | |||
+ | #if [ -f ~/.bash_aliases ]; then | ||
+ | # . ~/.bash_aliases | ||
+ | #fi | ||
+ | # enable color support of ls and also add handy aliases | ||
+ | if [ "$TERM" != "dumb" ]; then | ||
+ | eval "`dircolors -b`" | ||
+ | alias ls='ls --color=auto' | ||
+ | #alias dir='ls --color=auto --format=vertical' | ||
+ | #alias vdir='ls --color=auto --format=long' | ||
+ | fi | ||
+ | # some more ls aliases | ||
+ | #alias ll='ls -l' | ||
+ | #alias la='ls -A' | ||
+ | #alias l='ls -CF' | ||
+ | </code> | ||
+ | Enlevez les commentaires devant les 3 derniers alias | ||
+ | Testez avec ........ | ||
+ | |||
+ | Si vous voulez créer d'autres alias, quelles lignes devront être décommentées | ||
+ | Quel fichier devra être créé ? | ||
+ | |||
+ | ==== Le complètement ==== | ||
+ | <code bash> | ||
+ | # enable programmable completion features (you don't need to enable | ||
+ | # this, if it's already enabled in /etc/bash.bashrc and /etc/profile | ||
+ | # sources /etc/bash.bashrc). | ||
+ | if [ -f /etc/bash_completion ]; then | ||
+ | . /etc/bash_completion | ||
+ | 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. | ||
- | Couleur noir rouge vert jaune bleu magenta cyan blanc | ||
- | Avant-plan 30 31 32 33 34 35 36 37 | ||
- | Arrière-plan 40 41 42 43 44 45 46 47 | ||
- | Exemple 34-10. Afficher du texte coloré |