[5/5] Alias bash, automatiser et raccourcir

Publié le 2018/12/11 (format ISO 8601) ~ 6 min.

Je voulais partir sur une définition, mais l'exemple est plus clair. Il y a 2 types d'alias : ceux qui sont dans le fichier ~/.bash_aliases et les autres. Les autres sont temporaires et restent dans le terminal, j'en ferais une parenthèse après. Ce qui est le plus intéressant, ce sont les alias qui restent, c.à.d. dans le bash_aliases.

Voici un alias :
alias bonjour='echo bonjour' Affiche bonjour dans le terminal. L'utilité ? J'ai juste besoin de taper un mot : bonjour, pour lancer la commande qui suis echo bonjour.
Certe ce n'est pas très fou, mais on peut aller plus loin ! Bash permet de chaîner les commandes lorsqu'on a envie de s'amuser. Aussi je vous propose de voir quelques alias de mon bash_aliases.

Tu veux voir mon ours Tibbers bash_aliases ?

# =====================
# Amélioration du SHELL
# =====================
alias ..='cd ..' # Pour se déplacer plus rapidemment dans l'arborescence
alias ...='cd ../..' # Toujours plus loin
alias 3.='cd ../../..' # Toujours plus haut
alias 4.='cd ../../../..' # Toujours plus fort
alias agud='sudo apt-get update' # Être flemmard donne 
# de bons alias bash (copié sur le site du zéro)
alias agug='sudo apt-get upgrade' 
# Etre flemmard donne de bons alias bash 2
alias maj='sudo apt-get update && sudo apt-get upgrade' 
# c'est vraiment plus court et hop la mise à jour 
# de ses logiciels en 3 lettres 8)
alias python='python3.6' # <3 python et ses dernières versions
alias bye='shutdown now' # Je dis toujours au revoir
alias cls='clear && ls' # Nettoyer et afficher, la base
alias wget='wget --secure-protocol=TLSv1_2' 
# Pour être secure par défaut, 
# attention TLS1.3 est sorti !
alias startor='[PATH_TO_MY_FILE]/start-tor-browser.desktop' # Pour naviguer sur tor et dealer des cartes pokémons
alias LLSDLaserControl-ok1='cd [PATH_TO_MY_FILE]/edex-ui && npm start' # Une blague pour avoir une interface visuelle comme celle du film Tron l'Héritage

# ===
# SSH
# ===
alias sshhtw='ssh [mon-id]@stl-s-stud.htwsaar.de' 
# C'est beaucoup plus rapide de se connecter 
# en SSH de cette manière
alias sshnas='ssh [mon-id2]@216.18.168.16' 
# Idem pour le NAS, 
# cette adresse IP est un fake ;)

#=====
# Path
#=====
alias livre='cd [PATH_TO_BOOKS]'
alias catactual='cat [PATH_TO_MY_FILE]actual_state' 
# Affiche le contenu du fichier actual_state 
# (mon fichier bloc note passe partout)
alias vimactual='vim [PATH_TO_MY_FILE]/actual_state' 
# Edite le fichier bloc note passe partout avec mon 
# éditeur favori (no troll)
alias vimnote='vim [PATH_TO_MY_FILE]/bloc_notes.md' 
# Un autre bloc notes, plus sérieux
alias htwjava='cd [PATH_TO_MY_FILE]/Htw18-19_Java/' 
# Déplacement dans mon dépôt de java de l'université
alias htwjavascript='cd [PATH_TO_MY_FILE]/htw-javascript' 
# Idem pour le javascript
alias htwmenschmaschineschnittstelle='cd [PATH_TO_MY_FILE]/htw-mensch-maschine-schnittstelle' # Idem pour l'UX design
alias htwjavauebung='cd [PATH_TO_MY_FILE]/Htw18-19_Java/Uebungen' 
# Parce que je suis vraiment flemmard

#==============
# Blog Lyokolux
#==============
alias lyokolux='cd [PATH_SHORTCUT]'
alias lyokoluxblog='cd [AUTRE_RACCOURCI]'
alias lyokoluxcontent='lyokoluxblog && cd [AUTRE_PATH]'
alias lyokoluxnew-article='cp [PATH_TO_MY_FILE]/template-article.md  [PATH_TO_MY_FILE]/content'
alias lyokoluxpublish='lyokoluxblog && make publish && cd output && git add * && git commit -m "Update! autocommit" && git push' 
# Génère le site web et envoie le tout sur Github. 
# Oui je mets à jour mon blog en une ligne de commande composé d'un mot
alias lyokoluxgenerate='lyokoluxblog && pelican [PATH_TO_MY_FILE]/content -o [PATH_TO_MY_FILE]output -s [PATH_TO_MY_FILE]/pelicanconf.py' 
# Génère le blog, mais ne le push pas sur Github


# ============
# Scripts bash
# ============
alias keepmylifesafe='sudo bash [PATH_TO_MY_FILE]/rsynctosave.sh' 
# Appelle le script qui sauvegarde mes données 

# ==============
# Scripts python
# ==============
alias sms='python [PATH_TO_MY_FILE]/envoiSMS.py' 
# Appelle le script python qui m'envoie tous les arguments 
# sous forme d'un SMS.
alias yt2rss='python [PATH_TO_MY_FILE]/yt2rss.py' 
# Convertit les URL de chaînes Youtube en flux RSS
alias box='python [PATH_TO_MY_FILE]/print_boxed_title.py' 
# Affiche une boîte sous forme ASCII contenant le texte passé en 
# paramètre. Le dernier argument est le symbole utilisé pour 
# définir la boîte. Comme ces titres de section de ce code en fait.


# =============
# vpn protonvpn
# =============
alias vpn_nl1='sudo openvpn [PATH_TO_MY_FILE]/nl-free-01.protonvpn.com.udp1194.ovpn' # Accompagné d'autres alias pour d'autres vpn, 
# mais j'ai pas spécialement envie de tous les partager

# ========== 
# Temporaire 
# ==========
alias forensic='evince [PATH_TO_MY_FILE]/Hacking.et.Forensic.Developpez.vos.propres.outils.en.Python.pdf'
# Mettre les alias temporaire en bas permet de les ajouter plus rapidemment de manière organisée au .bash_aliases avec
# echo "alias unalias=lolcat" >> ~/.bash_aliases

Voilà, ce n'est pas exhaustif mais cela donne une idée de ce qu'on peut faire avec. Le code n'est pas présentable, OSEF, ce sont juste des raccourcis pour soi-même.
N'empêche, cela permet de gagner un temps monstre (cf: alias sms et lyokoluxpublish) et rendre la vie bien pratique (cf: sshhtw et vimactual). D'ailleurs, pour partager cette article aux copains, j'utiliserais l'alias sms du texte je sais pas encore lequel URL_DE_L_ARTICLE puis copier/coller et envoie sur le réseau.

Les alias temporaires

Lorsque le travail est important dans la console, ajouter quelques alias à la volée permet de gagner du temps : soit des alias de chemin (se déplacer plus rapidemment entre des dossiers éloignés par exemple), soit des alias de "commandes d'exécution" (pas trouvé mieux à 1H du mat'). Et ça, chacun peut se faire sa propre expérience ;)

Tags : #bash, #lifehack,