Un site alias de l'interpréteur de commandes bash n'est rien d'autre que le raccourci des commandes. La commande alias permet à l'utilisateur de lancer n'importe quelle commande ou groupe de commandes (y compris les options et les noms de fichiers) en saisissant un seul mot. Utilisez la commande alias pour afficher une liste de tous les alias définis. Vous pouvez ajouter des alias définis par l'utilisateur au fichier ~/.bashrc. Ces alias vous permettent de réduire le temps de saisie, de travailler intelligemment et d'augmenter votre productivité à l'invite de commande.
Ce post montre comment créer et utiliser des alias, y compris 30 exemples pratiques d'alias du shell bash.
En savoir plus sur les alias de l'interpréteur de commandes bash
La syntaxe générale de la commande alias pour le shell bash est la suivante :
Comment lister les alias de bash
Tapez la commande alias suivante :
$ alias
Exemples de résultats :
alias ..='cd ..' alias amazonbackup='s3backup' alias apt-get='sudo apt-get' ...
Par défaut, la commande alias affiche une liste d'alias qui sont définis pour l'utilisateur actuel.
Comment définir ou créer un alias de l'interpréteur de commandes bash ?
Pour créer l'alias, utilisez la syntaxe suivante :
$ alias name=value
$ alias name=command
$ alias name=command arg1 arg2
$ alias name=/path/to/script
$ alias name=/path/to/script.pl arg1
Dans cet exemple, créez l'alias c pour la commande clear, couramment utilisée, qui efface l'écran, en tapant la commande suivante puis en appuyant sur la touche ENTER :
$ alias c=clear
Ensuite, pour effacer l'écran, au lieu de taper clear, vous n'aurez qu'à taper la lettre 'c' et appuyer sur la touche [ENTER] :
$ c
Comment désactiver un alias bash temporairement
Un alias peut être désactivé temporairement en utilisant la syntaxe suivante :
## path/to/full/command ##
$ /usr/bin/clear
## call alias with a backslash ##
$ c
## use /bin/ls command and avoid ls alias ##
$ command ls
Comment supprimer/supprimer un alias bash
Vous devez utiliser la commande appelée unalias pour supprimer les alias. Sa syntaxe est la suivante :
$ unalias aliasname
$ unalias foo
Dans cet exemple, supprimez l'alias c qui a été créé dans un exemple précédent :
$ unalias c
Vous devez également supprimer l'alias du fichier ~/.bashrc à l'aide d'un éditeur de texte (voir la section suivante).
Comment rendre les alias du shell bash permanents
L'alias c ne reste en vigueur que pendant la session de connexion en cours. Une fois que vous vous déconnectez ou que vous redémarrez le système, l'alias c disparaît. Pour éviter ce problème, ajoutez alias à votre fichier ~/.bashrc, entrez :
$ vi ~/.bashrc
L'alias c pour l'utilisateur actuel peut être rendu permanent en entrant la ligne suivante :
alias c='clear'
Enregistrez et fermez le fichier. Les alias pour l'ensemble du système (c'est-à-dire les alias pour tous les utilisateurs) peuvent être placés dans le fichier /etc/bashrc. Veuillez noter que la commande alias est intégrée à divers shells, notamment ksh, tcsh/csh, ash, bash et autres.
Une note sur l'accès privilégié
Vous pouvez ajouter le code suivant dans ~/.bashrc :
# if user is not root, pass all commands via sudo # if [ $UID -ne 0 ]; then alias reboot='sudo reboot' alias update='sudo apt-get upgrade' fi
Une note sur les alias spécifiques aux os
Vous pouvez ajouter le code suivant dans ~/.bashrc en utilisant l'instruction case :
### Get os name via uname ### _myos="$(uname)" ### add alias as per os using $_myos ### case $_myos in Linux) alias foo='/path/to/linux/bin/foo';; FreeBSD|OpenBSD) alias foo='/path/to/bsd/bin/foo' ;; SunOS) alias foo='/path/to/sunos/bin/foo' ;; *) ;; esac
30 exemples d'alias du shell bash
Vous pouvez définir différents types d'alias comme suit pour gagner du temps et augmenter votre productivité.
#1 : Contrôle de la sortie de la commande ls
La commande ls liste le contenu des répertoires et vous pouvez coloriser la sortie :
## Colorize the ls output ## alias ls='ls --color=auto' ## Use a long listing format ## alias ll='ls -la' ## Show hidden files ## alias l.='ls -d .* --color=auto'
#2 : Contrôler le comportement des commandes cd
## get rid of command not found ## alias cd..='cd ..' ## a quick way to get out of current directory ## alias ..='cd ..' alias ...='cd ../../../' alias ....='cd ../../../../' alias .....='cd ../../../../' alias .4='cd ../../../../' alias .5='cd ../../../../..'
#3 : Contrôler la sortie de la commande grep
La commande grep est un utilitaire de ligne de commande permettant de rechercher dans des fichiers de texte brut les lignes correspondant à une expression régulière :
## Colorize the grep command output for ease of use (good for log files)## alias grep='grep --color=auto' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto'
#4 : Calculatrice de démarrage avec support mathématique
alias bc='bc -l'
#4 : Générer un condensé sha1
alias sha1='openssl sha1'
#5 : Créer des répertoires parents à la demande
La commande mkdir est utilisée pour créer un répertoire :
alias mkdir='mkdir -pv'
#6 : Coloriser la sortie de diff
Vous pouvez comparer les fichiers ligne par ligne à l'aide de diff et utiliser un outil appelé colordiff pour colorer les résultats de diff :
# install colordiff package :) alias diff='colordiff'
#n°7 : Rendre la sortie de la commande mount jolie et lisible par l'homme
alias mount='mount |column -t'
#8 : Les raccourcis de commande pour gagner du temps
# handy short cuts # alias h='history' alias j='jobs -l'
#9 : Créer un nouvel ensemble de commandes
alias path='echo -e ${PATH//:/n}' alias now='date +"%T"' alias nowtime=now alias nowdate='date +"%d-%m-%Y"'
#10 : Mettre vim par défaut
alias vi=vim alias svi='sudo vi' alias vis='vim "+set si"' alias edit='vim'
#11 : Contrôle de la sortie de l'outil réseau appelé ping
# Stop after sending count ECHO_REQUEST packets # alias ping='ping -c 5' # Do not wait interval 1 second, go fast # alias fastping='ping -c 100 -s.2'
#12 : Montrer les ports ouverts
Utilisez la commande netstat pour lister rapidement tous les ports TCP/UDP du serveur :
alias ports='netstat -tulanp'
#13 : Réveiller les serveurs endormis
Wake-on-LAN (WOL) est une norme de réseau Ethernet qui permet d'allumer un serveur par un message réseau. Vous pouvez réveiller rapidement les périphériques nas et le serveur en utilisant les alias suivants :
## replace mac with your actual server mac address # alias wakeupnas01='/usr/bin/wakeonlan 00:11:32:11:15:FC' alias wakeupnas02='/usr/bin/wakeonlan 00:11:32:11:15:FD' alias wakeupnas03='/usr/bin/wakeonlan 00:11:32:11:15:FE'
#14 : Contrôler la sortie du pare-feu (iptables)
Netfilter est un pare-feu basé sur l'hôte pour les systèmes d'exploitation Linux. Il est inclus dans la distribution Linux et est activé par défaut. Ce post liste les solutions iptables les plus courantes requises par un nouvel utilisateur Linux pour sécuriser son système d'exploitation Linux contre les intrus.
## shortcut for iptables and pass it via sudo# alias ipt='sudo /sbin/iptables' # display all rules # alias iptlist='sudo /sbin/iptables -L -n -v --line-numbers' alias iptlistin='sudo /sbin/iptables -L INPUT -n -v --line-numbers' alias iptlistout='sudo /sbin/iptables -L OUTPUT -n -v --line-numbers' alias iptlistfw='sudo /sbin/iptables -L FORWARD -n -v --line-numbers' alias firewall=iptlist
#15 : Déboguer les problèmes de serveur web / cdn avec curl
# get web server headers # alias header='curl -I' # find out if remote server supports gzip / mod_deflate or not # alias headerc='curl -I --compress'
#16 : Ajouter des filets de sécurité
# do not delete / or prompt if deleting more than 3 files at a time # alias rm='rm -I --preserve-root' # confirmation # alias mv='mv -i' alias cp='cp -i' alias ln='ln -i' # Parenting changing perms on / # alias chown='chown --preserve-root' alias chmod='chmod --preserve-root' alias chgrp='chgrp --preserve-root'
#17 : Mise à jour du serveur Debian Linux
La commande apt-get est utilisée pour installer des paquets via Internet (ftp ou http). Vous pouvez également mettre à niveau tous les paquets en une seule opération :
# distro specific - Debian / Ubuntu and friends # # install with apt-get alias apt-get="sudo apt-get" alias updatey="sudo apt-get --yes" # update on one command alias update='sudo apt-get update && sudo apt-get upgrade'
#18 : Mise à jour du serveur Linux RHEL / CentOS / Fedora
La commande yum est un outil de gestion des paquets pour RHEL / CentOS / Fedora Linux et ses amis :
## distrp specifc RHEL/CentOS ## alias update='yum update' alias updatey='yum -y update'
#19 : Régler sudo et su
# become root # alias root='sudo -i' alias su='sudo -i'
#20 : Passer l'arrêt/redémarrage via sudo
La commande shutdown permet d'arrêter le système Linux / Unix :
# reboot / halt / poweroff alias reboot='sudo /sbin/reboot' alias poweroff='sudo /sbin/poweroff' alias halt='sudo /sbin/halt' alias shutdown='sudo /sbin/shutdown'
#21 : Contrôler les serveurs web
# also pass it via sudo so whoever is admin can reload it without calling you # alias nginxreload='sudo /usr/local/nginx/sbin/nginx -s reload' alias nginxtest='sudo /usr/local/nginx/sbin/nginx -t' alias lightyload='sudo /etc/init.d/lighttpd reload' alias lightytest='sudo /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf -t' alias httpdreload='sudo /usr/sbin/apachectl -k graceful' alias httpdtest='sudo /usr/sbin/apachectl -t && /usr/sbin/apachectl -t -D DUMP_VHOSTS'
#22 : Alias dans nos trucs de sauvegarde
# if cron fails or if you want backup on demand just run these commands # # again pass it via sudo so whoever is in admin group can start the job # # Backup scripts # alias backup='sudo /home/scripts/admin/scripts/backup/wrapper.backup.sh --type local --taget /raid1/backups' alias nasbackup='sudo /home/scripts/admin/scripts/backup/wrapper.backup.sh --type nas --target nas01' alias s3backup='sudo /home/scripts/admin/scripts/backup/wrapper.backup.sh --type nas --target nas01 --auth /home/scripts/admin/.authdata/amazon.keys' alias rsnapshothourly='sudo /home/scripts/admin/scripts/backup/wrapper.rsnapshot.sh --type remote --target nas03 --auth /home/scripts/admin/.authdata/ssh.keys --config /home/scripts/admin/scripts/backup/config/adsl.conf' alias rsnapshotdaily='sudo /home/scripts/admin/scripts/backup/wrapper.rsnapshot.sh --type remote --target nas03 --auth /home/scripts/admin/.authdata/ssh.keys --config /home/scripts/admin/scripts/backup/config/adsl.conf' alias rsnapshotweekly='sudo /home/scripts/admin/scripts/backup/wrapper.rsnapshot.sh --type remote --target nas03 --auth /home/scripts/admin/.authdata/ssh.keys --config /home/scripts/admin/scripts/backup/config/adsl.conf' alias rsnapshotmonthly='sudo /home/scripts/admin/scripts/backup/wrapper.rsnapshot.sh --type remote --target nas03 --auth /home/scripts/admin/.authdata/ssh.keys --config /home/scripts/admin/scripts/backup/config/adsl.conf' alias amazonbackup=s3backup
#23 : Spécifique au bureau - lecture de fichiers avi/mp3 à la demande
## play video files in a current directory ## # cd ~/Download/movie-name # playavi or vlc alias playavi='mplayer *.avi' alias vlc='vlc *.avi' # play all music files from the current directory # alias playwave='for i in *.wav; do mplayer "$i"; done' alias playogg='for i in *.ogg; do mplayer "$i"; done' alias playmp3='for i in *.mp3; do mplayer "$i"; done' # play files from nas devices # alias nplaywave='for i in /nas/multimedia/wave/*.wav; do mplayer "$i"; done' alias nplayogg='for i in /nas/multimedia/ogg/*.ogg; do mplayer "$i"; done' alias nplaymp3='for i in /nas/multimedia/mp3/*.mp3; do mplayer "$i"; done' # shuffle mp3/ogg etc by default # alias music='mplayer --shuffle *'
#24 : Définir les interfaces par défaut pour les commandes liées à l'administration système.
vnstat est un moniteur de trafic réseau basé sur une console. dnstop est un outil de console pour analyser le trafic DNS. Les commandes tcptrack et iftop affichent des informations sur les connexions TCP/UDP qu'elles voient sur une interface réseau et affichent l'utilisation de la bande passante sur une interface par hôte respectivement.
## All of our servers eth1 is connected to the Internets via vlan / router etc ## alias dnstop='dnstop -l 5 eth1' alias vnstat='vnstat -i eth1' alias iftop='iftop -i eth1' alias tcpdump='tcpdump -i eth1' alias ethtool='ethtool eth1' # work on wlan0 by default # # Only useful for laptop as all servers are without wireless interface alias iwconfig='iwconfig wlan0'
#25 : Obtenez rapidement des informations sur la mémoire système, l'utilisation du processeur et la mémoire du processeur.
## pass options to free ## alias meminfo='free -m -l -t' ## get top process eating memory alias psmem='ps auxf | sort -nr -k 4' alias psmem10='ps auxf | sort -nr -k 4 | head -10' ## get top process eating cpu ## alias pscpu='ps auxf | sort -nr -k 3' alias pscpu10='ps auxf | sort -nr -k 3 | head -10' ## Get server cpu info ## alias cpuinfo='lscpu' ## older system use /proc/cpuinfo ## ##alias cpuinfo='less /proc/cpuinfo' ## ## get GPU ram on desktop / laptop## alias gpumeminfo='grep -i --color memory /var/log/Xorg.0.log'
#26 : Contrôle du routeur domestique
La commande curl peut être utilisée pour redémarrer les routeurs Linksys.
# Reboot my home Linksys WAG160N / WAG54 / WAG320 / WAG120N Router / Gateway from *nix. alias rebootlinksys="curl -u 'admin:my-super-password' 'http://192.168.1.2/setup.cgi?todo=reboot'" # Reboot tomato based Asus NT16 wireless bridge alias reboottomato="ssh [email protected] /sbin/reboot"
#27 Reprendre wget par défaut
Le GNU Wget est un utilitaire gratuit pour le téléchargement non interactif de fichiers à partir du Web. Il prend en charge les protocoles HTTP, HTTPS et FTP, et peut également reprendre les téléchargements :
## this one saved by butt so many times ## alias wget='wget -c'
#28 Utiliser un autre navigateur pour tester le site web
## this one saved by butt so many times ## alias ff4='/opt/firefox4/firefox' alias ff13='/opt/firefox13/firefox' alias chrome='/opt/google/chrome/chrome' alias opera='/opt/opera/opera' #default ff alias ff=ff13 #my default browser alias browser=chrome
#29 : Une note sur les alias ssh
Ne pas créer d'alias ssh, utiliser plutôt ~/.ssh/config Fichiers de configuration du client SSH OpenSSH. Il offre plus d'options. Un exemple :
Host server10
Hostname 1.2.3.4
IdentityFile ~/backups/.ssh/id_dsa
user foobar
Port 30000
ForwardX11Trusted yes
TCPKeepAlive yes
Vous pouvez maintenant vous connecter à peer1 en utilisant la syntaxe suivante :
$ ssh server10
#30 : C'est à votre tour de partager...
## set some other defaults ## alias df='df -H' alias du='du -ch' # top is atop, just like vi is vim alias top='atop' ## nfsrestart - must be root ## ## refresh nfs mount / cache etc for Apache ## alias nfsrestart='sync && sleep 2 && /etc/init.d/httpd stop && umount netapp2:/exports/http && sleep 2 && mount -o rw,sync,rsize=32768,wsize=32768,intr,hard,proto=tcp,fsc natapp2:/exports /http/var/www/html && /etc/init.d/httpd start' ## Memcached server status ## alias mcdstats='/usr/bin/memcached-tool 10.10.27.11:11211 stats' alias mcdshow='/usr/bin/memcached-tool 10.10.27.11:11211 display' ## quickly flush out memcached server ## alias flushmcd='echo "flush_all" | nc 10.10.27.11 11211' ## Remove assets quickly from Akamai / Amazon cdn ## alias cdndel='/home/scripts/admin/cdn/purge_cdn_cache --profile akamai' alias amzcdndel='/home/scripts/admin/cdn/purge_cdn_cache --profile amazon' ## supply list of urls via file or stdin alias cdnmdel='/home/scripts/admin/cdn/purge_cdn_cache --profile akamai --stdin' alias amzcdnmdel='/home/scripts/admin/cdn/purge_cdn_cache --profile amazon --stdin'
Conclusion
Ce billet résume plusieurs types d'utilisation des alias de bash *nix :
- Définition d'options par défaut pour une commande (par exemple, définir eth0 comme option par défaut pour la commande ethtool via alias ethtool=ethtool eth0 ).
- Correction de fautes de frappe (cd.. fera office de cd .. via) alias cd..=cd ..).
- Réduire le nombre de frappes.
- Définir le chemin par défaut d'une commande qui existe dans plusieurs versions sur un système (par exemple, GNU/grep se trouve à /usr/local/bin/grep et Unix grep se trouve à /bin/grep. Pour utiliser GNU grep, utilisez alias grep=/usr/local/bin/grep ).
- Ajout de filets de sécurité à Unix en rendant les commandes interactives par la définition d'options par défaut. (par exemple, rm, mv, et d'autres commandes).
- Compatibilité en créant des commandes pour les anciens systèmes d'exploitation tels que MS-DOS ou d'autres systèmes d'exploitation de type Unix (par exemple, alias del=rm ).
J'ai partagé les alias que j'ai utilisés au fil des ans pour réduire la nécessité d'une saisie répétitive sur la ligne de commande. Si vous connaissez et utilisez d'autres alias bash/ksh/csh qui permettent de réduire la saisie, partagez-les ci-dessous dans la rubrique commentaires .
Conclusion
J'espère que vous avez apprécié ma collection d'alias du shell bash. Voir
- Personnaliser les environnements du shell bash
- Télécharger tous les alias présentés dans cet article
- Page d'accueil du shell GNU bash