Mon fichier ~/.bashrc - 2011
Par Taltan le samedi, octobre 29 2011, 10:30 - Geekerie cultu-libriste - Lien permanent
Mon dernier (et seul) billet relatif au fichier ~/.bashrc date de 2006, autant dire que depuis le temps il s'est quelque peu empatté, modifié, amélioré, au grès de mon utilisation de la console et de mes divagations googlelesques. Le fichier ~/.bashrc permet à chaque utilisateur de personnaliser son shell bash (Bourne-Again shell). La personnalisation n'a de limites que votre imagination tant les possibilités sont immenses, comme pour les fameux alias (commandes pour feignants) ou l'affichage du prompt et bien d'autres choses encore... Pour avoir une petite idée de ce qu'il est possible de faire rien que pour l'affichage du prompt, allez donc faire un petit tour ici ou ici. Quant aux alias, qui permettent de réaliser des raccourcis pour ses commandes préférées, ils sont forcement très personnels et illimités, exemples ici ou ici...
Ci dessous quelques alias utiles que j'utilise très régulièrement (avec les commentaires) :
#-------------------
# Alias
#-------------------
alias ls='ls -h --color --group-directories-first' # la couleur pour chaque type de fichier, les répertoires s'affichent en premier
alias lsa='ls -A' # affiche les fichiers cachés
alias ll='ls -l' # affiche en mode liste détail
alias lla='ls -Al' # affiche en mode liste détail + fichiers cachés
alias lx='ls -lXB' # tri par extension
alias lk='ls -lSr' # tri par taille, le plus lourd à la fin
alias lc='ls -ltcr' # tri par date de modification, la pus récente à la fin
alias lu='ls -ltur' # tri par date d’accès, la pus récente à la fin
alias lt='ls -ltr' # tri par date, la pus récente à la fin
alias lm='ls -al | more' # Pipe a travers 'more'
alias lr='ls -lR' # ls récurssif
alias tree='tree -Csu' # affciche sous forme d'arborescence, nécessite le paquet "tree"
alias voirlog='tail -f' # affiche les dernière d'un fichier log (par exemple) en live
alias df='df -kTh' # commande df avec l'option -human
alias du='du -kh' # commande du avec l'option -human
alias du1='du -kh --max-depth=1' # commande du avec l'option -human, au niveau du répertoire courant
alias free='free -m' # commande free avec l'option affichage en Mo
alias rm='rm -i' # confirmation si écrasement de fichiers lors de renommage d'un fichier
alias cp='cp -i' # confirmation si écrasement de fichiers lors de copie de fichier
alias mv='mv -i' # confirmation si écrasement de fichiers lors de déplacement de fichier
alias top='htop' # nécessite le paquet "htop", un top amélioré et en couleur
alias shistory='history | grep ' # faire une recherche dans l'historique de commande
alias h='history' # raccourci history
alias mkdir='mkdir -p' # pour éviter l'écrasement lors de création de dossier
alias ..='cd ..' # raccourci répertoire parent
alias path='echo -e ${PATH//:/\\n}' # affiche le path des exec
alias libpath='echo -e ${LD_LIBRARY_PATH//:/\\n}' # affiche le path des lib
alias vi='vim' # la commande vi en couleurs (http://www.taltan.fr/post/2006/10/29/47-coloration-syntaxique-dans-vi)
alias c='clear' # raccourci commande clear
alias ping='ping -c 4' # raccourci commande ping avec 4 occurrences
L'inutile donc l'indispensable, le beau prompt en couleur :
#set a fancy prompt (non-color, unless we know we "want" color)
PS1="\[\033[01;31m\][\u@\h\[\033[00m\]:\[\033[01;34m\]\w]\[\033[00m\]\$ "
Pour finir deux petites options bien pratiques, les pages de man en couleurs et l'historisation de la commande history (à placer à la fin du fichier .bashrc) :
# activation date_heure dans la commande history
export HISTTIMEFORMAT="%Y/%m/%d_%T : "
# les pages de man en couleur, nécessite le paquet "most"
export PAGER=most
Résultat :

PS 1 : Ce fichier .bashrc fonctionne sous Dedian ou Ubuntu mais doit aussi être compatible avec toutes les distributions Gnu/Linux
PS 2 : Le fond d'écran est Fractilly 10 ws (1680x1050), téléchargeable sur debian-art.org ici, également en annexe de ce billet











Commentaires
hmmm....
alias ~='cd ~'
Est-ce vraiment nécessaire ? vu que "cd" tout nu renvoi déjà au home (et que le ~ n'est pas vraiment d'accès direct sur un clavier français).
Sinon un :
shopt -s histappend
Avec dans .inputrc :
"\e[A": history-search-backward
"\e[B": history-search-forward
Permet d'avoir une recherche sélective dans l'historique des commandes commençant par les premières lettres entrées.
Merci pour ce rappel très utile.
Une petite question : où puis-je trouver l'image de ton bash, elle me plaît pas mal. :p
Je cois qu'il serait vraiment important d'indiquer qu'il est nettement préférable de ne pas mettre directement ses alias dans ~/.bashrc mais d'activer l'option :
"# 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"
Qui se trouve dans ce fichier et de mettre tous ses alias dans "~/.bash_aliases"
Cela permet une plus grande clarté.
Sinon, tu as pas mal d'alias que j'aime vraiment bien. Merci beaucoup
Merci, j'ai fais quelques découvertes.
Il y a une petit coquille :
alias top='htop' # nécessite le paquet "tree" (nécessite htop, pas tree)
Sinon le "alias voirlog='tail -f'", il existe la commande tailf, qui équivaut à tail -f
Pour "clear", on peut aussi utiliser le raccourcis clavier ctrl + l
@sergio : T'as raison, je m'en sers d'ailleurs que très peu, je le vire. Pour le "shopt -s histappend", je ne connaissais pas, très intéressant, merci
@sylvainvh : Décidément, on en apprend tous les jours, je ne connaissais pas le ~/.bash_aliases, c'est effectivement pas mal de séparer les alias du bashrc
@Carif : Merci d'avoir relevé la coquille (les ravages du copier/coller...), je rectifie
Je ne comprend pas bien l'intérêt de `alias c="clear"`, puisque ce n'est pas plus court (limite un poil plus long) que le raccourci Ctrl+L (qui fait la même chose).
Question d'habitude... je suis bien plus rapide en tapant "c + Enter" qu'en tapant "Ctrl + L"
@jesuiswiiizzz : Tu trouveras le bout de bashrc ici : http://www.taltan.fr/public/dl/bashrc_taltan.txt
Bonjour,
Merci de partager ton fichier.
Par contre, je n'ai probablement pas saisi la chose, mais comment peux-t-on avoir l'image en fond de ton terminal: je ne vois aucun lien vers une image dans ton .bashrc
Car, comme jesuiswiizz, je la trouve vraiment bien.
Il ne s'agit pas d'un fond d'écran intégré au terminal. La console étant transparente il s'agit du fond d'écran de mon desktop qui apparait dessous.
Le fond d'écran est Fractilly 10 ws (1680x1050), téléchargeable sur debian-art.org ici, également en annexe de ce billet
J'aime le commentaire de l'alias :
alias mkdir='mkdir -p' # pour éviter l'écrasement lors de création de dossier
le -p permet en fait de créer les répertoires parents nécessaires.. ex :
mkdir /tmp/rep1/rep2 ne fonctionne que si /tmp/rep1 existe
mkdir -p /tmp/rep1/rep2 fonctionnera tel qu'espéré.
Merci pour ces infos bien pratiques
Voici un .bash_aliases dans l'attente de présenter l'ensemble d'une configuration Wm Awesome / Terminal.
Chaque alias créé a été vérifié afin de ne pas empiéter sur une commande préexistante.
Toutefois, l'utilisation de lettre simple n'a pas encore été exploité.
C'est à étudier : Historique des commandes à analyser pour y ressortir les commandes les plus utilisées.
A noté, 2 raccourcis super important pour gérer ses propres raccourcis!
- La recherche dans les raccourcis
- L'édition des raccourcis
Un point qui peut être intéressant à garder en tête lors de la configuration de raccourcis clavier (mais pas d'une importance capitale à l'intérieur d'un terminal)
- délester un max la main droite de raccourcis afin qu'elle puisse vaquer entre la souris, le clavier, le thé ou le rubik's cube ;o)
___________________________________________________________________
/C/.bash_aliases
#________ Dossier _________
Config='/C' # /C est un lien vers un dossier synchroniser avec le net où se situe les fichiers de configuration (UbuntuOne, dropbox...)
#_________ Appli par défaut _________
editeur='vim'
#_________ Quitter _________
alias hjk='xterm' # lancer un terminal
alias q='exit' # fermer le terminal (main droite)
alias m='exit' # fermer le temrinal (main gauche)
alias mlk='sudo halt -p' # éteindre l'ordi
alias klm='sudo reboot' # rebooter l'ordi (lettres inversé)
alias ml='sudo s2disk & exit' # mise en veille de l'ordi (fonctionne aléatoirement)
#_________ Commandes terminal _________
alias lsd='ls -d */' # liste les dossiers
alias cxw='clear & ls' # efface l'écran et affiche le contenu du répertoire
alias cx='clear' # efface l'écran
alias xw='chmod +x' # met le fichier en execution
alias ll='ls -lh' # liste les fichiers avec leurs tailles humainement lisible
alias la='ls -A' # liste tous les fichiers (y compris les cachés)
alias l='ls -CF'
# --- Merci Taltan ---
alias ls='ls -h --color --group-directories-first' # la couleur pour chaque type de fichier, les répertoires s'affichent en premier
alias lla='ls -Alh' # affiche en mode liste détail + fichiers cachés
alias lx='ls -lXB' # tri par extension
alias lkl='ls -lSr' # tri par taille, le plus lourd à la fin
alias lc='ls -ltcr' # tri par date de modification, la plus récente à la fin
alias lu='ls -ltur' # tri par date d’accès, la pus récente à la fin
alias lt='ls -ltr' # tri par date, la pus récente à la fin
alias lr='ls -lR' # ls récurssif
alias lk='echo "" && ls -1 && echo ""' # mise en forme de la liste des fichier
alias lkj='ls -al --time-style=+%D | grep `date +%D`' # liste les fichiers modifié aujourd'hui
alias md='mkdir' # créer un dossier
alias p='cd ..' # remonter d'un dossier (pour main gauche)
alias s='cd ..' # remonter d'un dossier (pour main droite)
alias pl='cd -' # aller au dossier précédemment ouvert (pour main droite)
alias zd='cd -' # aller au dossier précédemment ouvert (pour main gauche)
alias c='cat' # afficher le contenu d'un fichier
alias lkn='ln -s' # créer un lien symbolique vers un fichier / dossier
alias ljn='sudo ln -s' # créer un lien symbolique vers un fichier / dossier en superutilisateur
alias v='vim' # lancer vim
alias vc='sudo vim' # lancer vim en superutilisateur
alias sf='sudo'
alias aze='sudo apt-get install' # installation
alias eza='sudo apt-get remove' # desinstallation (lettre inversé de l'alias d'installation)
alias azer='sudo apt-get clean ; sudo apt-get autoclean' # nettoyage
alias reza='sudo dpkg --configure -a'
alias 500='cd /media/500' # accéder au 500Go
alias to='cd /media/to' # accéder au TerraOctet
alias a='acpitool' # connaître l'état de la batterie
alias du='du -sh */' # connaître la taille des répertoires
alias lo='locate' # recherche sur le dd (lancer updatedb pour mettre à jour la base de recherche
alias d='date' # connaître la date
alias z='bc -l -q' # calculatrice gérant les chiffres à virgules
alias df='df -h' # afficher la taille des partitions humainement lisible
alias gr='grep -n -r' # recherche avec les numéros de ligne en respectant la casse gr motRechercher /dossier/de/recherche
alias grs='grep -ni -r' # recherche avec les numéros de ligne sans respecter la casse
alias g='grep'
alias po='ps -aux' # afficher les processus en cours
alias pop='ps -aux | grep' # recherche d'un processus
alias pup='sudo killall' # tuer un processus en tant que super utilisateur
alias kl='killall' # tuer l'appli
alias k='kill' # tuer l'appli en utilisant l'id
alias cq='cal -y' # afficher un calendrier de l'année en cours
alias x='xdg-open' # ouvrir un fichier avec l'appli associé à son extension
#_________ Applications _________
alias poi='alsamixer' # lancer la gestion du son
alias fl='file-roller' # ouvrir un gestionnaire d'archive
alias n='nautilus' # ouvrir un gestionnaire de fichier
alias t='thunar' # ouvrir un gestionnaire de fichier
alias matrix='mplayer -framedrop -vo matrixview:cols=320:rows=240 ' # lancer une vidéo avec effet matrix
#_________ Raccourcis dossier _________
alias lm='cd /media/to'
alias ca='sudo mount /dev/sde1 /media/carte & cd /media/carte' # monter et accéder à un carte
alias uca='cd /home/bernie & sudo umount /media/carte' # demonter la carte
alias mountcd='sudo mount -t iso9660 -o loop' # monter un cd
#_________ Configurations internet _________
alias connexion_Zmanu='sudo $Config/connexion_Zmanu.sh'
#_________ Configurations clavier _________
alias bepo='setxkbmap fr bepo' # configurer le clavier en bépo
alias fr='setxkbmap fr' # configurer le clavier en français
alias us='setxkbmap us' # configurer le clavier en américain
#_________ Configurations écran _________
alias vb='~/.screenlayout/2bureaux.sh && exit' # afficher des bureaux dissociés sur chaque écran
alias bv='~/.screenlayout/1bureau.sh && exit' # un bureau partagé pour les 2 écrans
alias gf='~/.screenlayout/1ecran.sh && exit' # un seul écran
#_________ Configuration de fichier _________
alias wx='$editeur $Config/.bash_aliases' # accéder à la gestion des alias
alias xcv='$editeur $Config/.vimperatorrc' # accéder à la gestion des raccourcis de vimperator
alias wxc='xev > ~/key' # récupération des touches presser dans le fichier key
# source : /etc/xdg/awesome/rc.lua
alias qs='$editeur ~/.config/awesome/rc.lua' # éditer les raccourcis de awesome
alias repair_awesome='cp -rf $Config/Awesome/rc.lua $Config/Awesome/rc.lua.repair & cp -rf $Config/Awesome/rc.lua.bernie $Config/Awesome/rc.lua & killall awesome & startx' # réparer awesome
alias svg_awesome='cp -rf $Config/Awesome/rc.lua.bernie $Config/Awesome/rc.lua.bernie.svg ; cp -rf $Config/Awesome/rc.lua $Config/Awesome/rc.lua.bernie' # sauvegarder awesome
alias qsd='sudo /opt/lampp/lampp start' # lancer les serveurs php, mysql
alias dsq='sudo /opt/lampp/lampp stop'
alias az='sudo $editeur /etc/X11/app-defaults/XTerm' # éditer le fichier de configuration d'Xterm
alias grub-edit='sudo $editeur /boot/grub/menu.lst' # (à revoir) éditer le fichier de configuration du chargeur de boot
alias grub-win='sudo $editeur /boot/grub/menu.windows.lst' # (à revoir)
alias grub-nux='sudo $editeur /boot/grub/menu.linux.lst' # (à revoir)
alias splash='convert -resize 640x480 -colors 14 image.jpg splash.xpm && gzip splash.xpm ' # (à revoir) convertir une image et la préparer pour le fond d'écran de grub
alias src='sudo $editeur /etc/apt/sources.list' # accéder à la liste des dépots
alias xpropp='xprop | grep WM_CLASS' # récupération du nom de class et d'instance d'une appli (pour configurer awesome)
alias scsudo='sudo $editeur /etc/sudoers'
#_________ Aide Mémoire _________
alias xc='cat $Config/.bash_aliases | grep -ni' # recherche d'un alias oublié
alias sd='cat $Config/Awesome/rc.lua | grep -ni' # recherche d'un raccourci awesome
alias vd='cat /D/19.\ Docs\ Info/Perso/Appli | grep -ni' # recherche dans une doc perso (editable sous awesome avec "super -> v -> d")
alias seconde_session='startx -- :1' # lancer une seconde session
Wahou !! Merci berni, avec tout ça on va vraiment pouvoir se faire une fichier bien perso et très très complet...
Pas mal le coup de la main droite
Mais de rien cher ami. J'étais content de trouver quelques petites trouvailles dans tes alias. Notamment le mkdir -p que nab a remarqué et qui vient d'être intégré ou tes ls comme celui qui permet de trier par extension ou par date =o)
Donc merci à toi et aux commentairistes =o)
Sinon, il est intéressant de tenter des raccourcis conçu avec une suite de caractères situées côté à côte sur un clavier et la même suite inversée, tels que :
aze pour installer - sudo apt-get install
eza pour désinstaller - sudo apt-get remove
qsd lancement de serveur
dsq extinction de serveur
...
De surcroît, je favorise les raccourcis à taper d'une main, afin d'en faire des réflexes.
D'ailleurs, selon ses deux points, les alias pourrait être redéfini de façon bien plus pertinente. Mais je travaille beaucoup plus sur le fichier de configuration de Awesome.
Excusez moi car certain son vraiment spécifique à ma machine (ça peut toutefois donner des idées de config...).
quelques alias que j'utilise constamment :
alias cgrep='grep --color=always'
j'utilise aussi
alias h='history' # raccourci history
et au lieu de
alias shistory='history | grep ' # faire une recherche dans l'historique de commande
j'utilise la commande plus rapide à taper :
alias hg='h | cgrep'