Après avoir installé une machine sous Ubuntu, une des première configuration que je réalise est de personnaliser mon bashrc.


Cékoidonc bashrc ?

Ce fichier contient un ensemble de paramétrage du bash (c’est à dire de la ligne de commande) dont la plus utilisé les alias.


Cékoidonc les alias ?

Les alias sont des raccourcis de commande


Un exemple, pour lister le contenu d’un répertoire on fait un ls.

Problème les informations retourné par cette commande sont succintes (nom des fichiers et répertoires).

On peut donc faire un ls -lhA, où l’option l indique que l’on veut le résultat en liste détaillé, le h affiche les tailles dans un format lisible par un humain (1K 234M 2G) et le A pour afficher les fichiers et repertoires cachés, les liens symboliques mais pas les dossiers . et ..

On le voit ça devient fastidieux de toujours faire un ls -lhA d’où l’utilité de l’alias suivant dans le bashrc :
alias ll=’ls -lhA’

Du coup pour avoir le même résultat que ls -lhA on a juste à taper ll. Les alias sont très pratiques et quand on en a pris l’habitude il est difficile d’arriver sur un machine n’ayant pas d’alias ou ayant des alias différents.


Je parle d’un fichier bashrc mais on devrait plutôt parler des fichierS bashrc, en effet ce dernier peut être à plusieurs endroits avec des noms différents :

  • /etc/bash/bashrc : les configurations qu’il contient affectent tous les utilisateurs
  • ~/.bashrc : n’affecte que l’utilisateur dans le répertoire duquel il se trouve


Dans mon cas j’ai opté pour le premier choix, en effet j’ai plusieurs utilisateur mais qui sont utilisés par moi-même…



Ci-dessous mon fichier bashrc, il est normalement pas trop mal commenté je n’en dirais donc pas plus.



# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
 
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
 
# don't put duplicate lines in the history. See bash(1) for more options
export HISTCONTROL=ignoredups
# ... and ignore same sucessive entries.
export HISTCONTROL=ignoreboth
 
# lignes de l'historique par session bash
export HISTSIZE=5000
# lignes de l'historique conservées
export HISTFILESIZE=20000
 
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
 
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)"
 
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color)
    PS1="[\t] \[\e[01;32m\]\u@\h\[\e[00m\]:\[\e[01;34m\]\w\[\e[00m\]\$ "
    ;;
*)
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    ;;
esac
 
# 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
 
# 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 -F'
fi
 
# 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
 
# lecture colorée de logs
logview()
{
    ccze -A < $1 | less -R
}
 
# lecture colorée de logs en directfunction logview()
logtail()
{
    tail -f $1 | ccze
}
 
# Pour compter les mails non lus dans un maildir :
function cm {
    echo "Inbox: $(find -L ~/Maildir/  -type f -regex '.*/new/.*'| wc -l)" ;
}
 
function mkcd () #Crée un dossier avec le nom passé en paramétre et va dedans
{
  mkdir $1 && cd $1
}
 
# Pour définir l'éditeur par défaut utilisé par de nombreuses commandes (vipw, visudo, less, cvs, svn...) :
export EDITOR=vim # ou nano ou vim / emacs
 
# ALIAS
# Calendrier du mois en cours, en rouge le jour actuel
alias cal='var=$(cal -m); echo "${var/$(date +%-d)/$(echo -e "\033[1;31m$(date +%-d)\033[0m")}"'
 
alias ll='ls -lhA'
alias l='ls -lh'
 
alias i="sudo aptitude install"
alias u="sudo aptitude update"
 
# extraire une archive tar.gz
alias x='tar xzvf'
# extraire une archive tar.bz2
alias xj='tar xjvf'
# créer une archive tar.gz
alias c='tar czvf'
# créer une archive tar.bz2
alias cj='tar cjvf'
 
# Pour les gros doigts
alias cd..='cd ..'
alias grpe='grep'
alias mroe='more'
alias iv='vi'
alias tial='tail'
alias xs='cd'
alias vf='cd'
alias ..=' cd ..'
 
# Remonter d'un dossier et ls
alias up="cd .. && ls --color"
 
alias du='du -h --max-depth=1'
alias dusort='du -x --block-size=1048576 | sort -nr'
alias df='df -h'
 
alias sd='sudo shutdown -h now'
alias sr='sudo shutdown -r now'
 
# Creation des répertoires parents
alias mkdir='mkdir -p'
 
# Stop freevo
alias freevostop='sudo /etc/init.d/freevo stop'

Les commentaires sont fermés.