Partage de mon fichier ~/.bash_aliases

Le bash_aliases  grossomodo c’est un fichier qui se trouve dans votre $HOME qui contient des raccourcis de commandes. C’est très pratique quand on passe beaucoup de temps dans sont terminal…

Je partage le mien qui n’est ni plus ni moins qu’une compile de ce qu’on peut trouver ici où là et deux trois petites choses maison dont je ne suis pas peu fier…

# Eliminer les commentaires d'un fichier
alias cgrep="grep -E -v '^(#|$|;)'"
alias nocomment='cgrep'

# Reviens à faire  cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak 
function cpb() { cp $@{,.bak} ;}
# Crée une sauvegarde du fichier passé en paramètre, en rajoutant l'heure et la date
function bak() { cp "$1" "$1_`date +%Y-%m-%d_%H-%M-%S`" ; }
alias bak="bak"
alias back="bak"

# Êtres gentil avec les ressources de son système
function nicecool() {
    if ! [ -z "$1" ] 
    then
        # Prendre en paramètre un pid
        ionice -c3 -p$1 ; renice -n 19 -p $1
    else
        # Si il n'y a pas de paramètre on nice le pid courant (le bash)
        ionice -c3 -p$ ; renice -n 19 -p $
    fi
}
alias niceprod="nicecool"
alias np="niceprod"

function extract() {
    if [ -f $1 ] ; then
        case $1 in
            *.tar.bz2)  tar xjf $1      ;;
            *.tar.gz)   tar xzf $1      ;;
            *.bz2)      bunzip2 $1      ;;
            *.rar)      rar x $1        ;;
            *.gz)       gunzip $1       ;;
            *.tar)      tar xf $1       ;;
            *.tbz2)     tar xjf $1      ;;
            *.tgz)      tar xzf $1      ;;
            *.zip)      unzip $1        ;;
            *.Z)        uncompress $1   ;;
            *)          echo "'$1' cannot be extracted via extract()" ;;
        esac
    else
        echo "'$1' is not a valid file"
    fi
}
alias extract="extract"
alias unall="extract"

# Bannir l'IP d'un méchant rapidement
function ban() {
    if [ "`id -u`" == "0" ] ; then
        iptables -A INPUT -s $1 -j DROP
    else
        sudo iptables -A INPUT -s $1 -j DROP
    fi
}
alias ban="ban"

# Divers petits raccourcis : 
alias q='exit'
alias maj='sudo aptitude update && sudo aptitude safe-upgrade'
alias c='clear'
alias rm='rm --interactive --verbose'
alias wget='wget -c'
alias mv='mv --interactive --verbose'
alias cp='cp --verbose'
alias grepr='grep -r'
alias grep='grep -i --color'
alias tree="find . | sed 's/[^/]*\//|   /g;s/| *\([^| ]\)/+--- \1/'"
alias mkdir='mkdir -pv'
alias pg='ps aux | grep'
alias pl='ps faux | less'
#function mkcd () { mkdir $1 && cd $1 }
function mkcd() { mkdir -p "$@" && cd "$_"; }
alias mkcd="mkcd"

alias rotate-exif='jhead -autorot' # rotate-exif *.JPG
alias 1024="mogrify -resize 1024x1024 *.JPG"

# Sources : 
#  - http://root.abl.es/methods/1504/automatic-unzipuntar-using-correct-tool/
#  - http://forum.ubuntu-fr.org/viewtopic.php?id=20437&p=3

Si aucun de ces raccourcis ne s’applique une fois que vous avez relancé votre terminal vérifier que vous avez une référence au .bash_aliases dans votre fichier ~/.bashrc

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

Et si vous avez des alias que vous jugez indispensable n’hésitez pas à les posters en commentaire…

10 réflexions au sujet de « Partage de mon fichier ~/.bash_aliases »

  1. Au lieu de ton alias ‘tree’, tu peux directement utiliser le programme ‘tree’ qui se trouve dans les dépôts de Ubuntu et Debian.

    Sinon j’aime ta fonction extract 🙂

  2. Au risque de paraître tatillon, se relire c’est toujours bon (f*d*ichier et son*t*).
    d’autre part, tar détecte automatiquement le type de fichier et décompressera gentiment tout tar compressé avec un simple tar xf (que ce soit les tar.gz, tar.bz2 et les tar.Z). Du coup, la commande extract fait beaucoup moins de sens…

    l’alias q me semble risqué surtout qu’un simple ^d fait la même chose.
    l’alias c me semble inutile aussi : ^l et c’est fait. ( ^ = ctrl)
    Il n’est pas utile de créer des alias pour les fonction crée non-plus, donc les lignes comme : alias mkcd= »mkcd » sont inutiles.

    Le seul alias que j’utilises n’est pas là : alias ll=’ls -la’

    ++

  3. En voici quelques un :

    Pour le lister le contenu d’un répertoire (fichier caché compris)
    alias ll=’ls -alF’

    Redémarrer un service (systemD) exemple restartService httpd
    function restartService() {
    sudo systemctl restart $@
    }

    Pour les connections vers des machines en ssh
    alias server1= »ssh utilisateur@192.168.1.1″

    Voir un log en temps réel exemple liveLog /var/log/httpd/error_log
    alias liveLog=’tail -f’

    Petite précision l’autocomplétation marche avec tous les alias / functions, du coup y a juste à taper les premières lettres de l’alias puis une petite pression sur la touche tab.

    Je te pique ta functions de backup de fichier, j’y avait jamais pensé, mais c’est vraiment une bonne idée.

  4. @Knah Tsaeb > alias server1=”ssh utilisateur@192.168.1.1″

    peut être remplacé par :

    Host server1
    HostName 192.168.1.1
    User utilisateur

    dans le fichier ${HOME}/.ssh/config

    Du coup il te suffit de lancer la commande ssh server1. Ça permet aussi de passer des options en plus (si tu veux créer un tunnel ou multiplexer tes connexions) pour les cas non géré par ça j’utilise belier, un logiciel en python.

    Pour liveLog, il existe déjà tailf.

    Pour rgrep, il y a ack.

  5. Déjà merci pour le partage 🙂

    Mes petites questions/apports:
    – pour c/clear, même remarque que Sébastien, il y a Ctrl-L qui marche au moins avec xterm et (u)rxvt.
    – La c’est plus une question, pour bannir une IP, ce n’est pas mieux de passer par /etc/hosts.deny ? En tout cas c’est encore plus court à scripter.
    – À quoi cela te sert de faire un alias sur une fonction portant le même nom que l’alias ?? Par exemple pour « extract » ou « ban », si tu vires la ligne alias, ça va marcher juste pareil sauf que c’est la fonction qui sera appelée en direct, comme une commande.

    1. @Ulhume : @Sébastien à répondu pour les 2 premiers points, Pour le « alias sur une fonction » c’est juste quand tu tape la commande « alias » tu peux repérer que c’est un alias (de plus un alias « fonction ») mais ça ne sert à rien d’autres…

  6. @Alexis :
    La fonction tree du post affiche l’arborescence des fichiers. la commande tree affiche l’arborescence des processus Unix (en montrant qui est le père de qui). C’est sûr que du coup c’est mêlant 😉

    @Ulhume :
    – Le ctrl-l marche avec tout terminaux compatible vt220 et supérieur. Tous les terminaux X supporte au moins ca 😉
    – le Hosts.deny n’est respecté que par un ensemble de service. La méthode iptables proposé dans le post initial marchera pour tout les services et protocole. Avec le hosts.deny tu ne bloqueras pas un « ping-flood » alors qu’avec la règle iptables oui.

  7. Merci pour le billet et les commentaires,
    Voici quelques-uns de mes alias :

    alias sagi=’sudo apt-get install’
    alias sagyi=’sudo apt-get -y install’
    alias ping=’ping -c 4′
    alias resolution=’xrandr -q | grep « * » | cut -d  »  » -f 4′
    alias search=’apt-cache search’
    alias policy=’apt-cache policy’

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.