Skrátenie dlhých príkazov pomocou aliasu

Jednoduchý príklad

Namiesto toho, aby som na deploy stránky používal tento dlhý capistrano príkaz:

$ bundle exec cap production deploy

Vytvorím si alias…

$ alias deploy='bundle exec cap production deploy'

…a do terminálu píšem už iba krátky alias:

$ deploy

Jupí. Takýto alias sa oplatí vytvoriť pre všetky dlhé príkazy, ktoré viem, že vypisujem pravidelne.

Minochodom, pre Heroku môže alias pre deploy vyzerať zase takto: alias deploy=’git push heroku master‘.

Ako urobiť aliasy trvalé

Aliasy zaniknú po zavretí terminálu alebo po reštartnutí a treba ich zapísať do súboru:

vim ~/.bash_profile (Mac)
vim ~/.bashrc (Linux)

A do týchto súborov (podľa platformy) na koniec dopíšem presne to isté. Aliasov si tam môžem povkladať aj viacero:

alias deploy='bundle exec cap production deploy'
alias dalsi_alias='nejaka instrukcia'

Uložím (v editore vim takto: <esc>:wq<enter>) a úplne nakoniec refreshnem bash súbor príkazom source.

$ source ~/.bash_profile (Mac)
$ source ~/.bashrc (Linux)

Príklad s aliasmi na serveri

Na serveri (kde je obvykle tiež linux) si aliasy nájdu minimálne rovnaké uplatnenie. Napríklad taká skratka na spúšťanie rails konzoly.

Doteraz som musel ručne vypisovať tieto dva príkazy:

$ cd ~/www/mojprojekt/current/
$ bundle exec rails c -e production

Namiesto toho už mám alias. Rovno ho zapíšem do súboru ~/.bashrc, pretože chcem aby bol trvalý:

alias console='cd ~/www/mojprojekt/current && bundle exec rails c -e production'

Následne refreshnem súbor .bashrc:

$ source ~/.bashrc (Linux)

A teraz, kedykoľvek keď sa SSHčknem na server, môžem pustiť jednoducho iba toto a som v rails konzole:

$ console

Ďalší príklad

Zvyknem ešte používať alias na logy:

alias logs='tail -f ~/www/mojprojekt/shared/log/*'

A keď napíšem logs kdekoľvek na mašine, otvorí sa mi streamovaný rails log (a ďalšie logy), čo sa vie zísť pri debuggovaní.

Pokročilý príklad

Niekedy chcem kvôli mikroúpravám deployovať rovno z pohodlia develop branche. Ale chcem byť poriadny a spraviť merge do master branche a pomedzi to sa pushovať a prepínať sa medzi nimi. Presný zoznam a poradie vyzerá nasledovne:

$ git checkout develop
$ git push
$ git checkout master
$ git merge develop
$ git push
$ git checkout develop
$ deploy

Namiesto toho mám jednopríkazový alias quick_deploy:

$ alias quick_deploy="git checkout develop && git push && git checkout master && git merge develop && git push && git checkout develop && deploy"

A potom už iba:

$ quick_deploy

Posledný príkaz v zozname – deploy, volá alias vytvorený v prvom príklade (áno, alias môže volať iný alias). Celkovo ide o dlhý riadok, ale svoj účel splní. Každý si tam môže dosadiť to svoje.

To je všetko. Ďakujem za čítanie.