Alias bash shellis

From ICO wiki
Revision as of 13:07, 8 December 2012 by Tliik (talk | contribs)
Jump to navigationJump to search

Sissejuhatus

Linuxi käsureal on võimalik anda lugematu arv käske ja käskude kombinatsioone. Tihtipeale selgub aga, et mõningaid käske käivitatakse alati samade võtmetega või kasutatakse pikki käsukombinatsioone, mida võiks lühendada. Selle jaoks on enamikes shellides olemas käsk alias. Selle abil on võimalik käsule ette anda vaikimisi võtmeid, luua endale sobivaid lühikäske, parandada tihtiesinevaid sisestusvigu ja hoida ära kurbi tagajärgi, mis mõne käsu sisestamisel võib juhtuda. Käsu süntaks ja kasutatavad näited on toodud Ubuntu ja Bash shelli baasil.

Andes käsu

alias

on võimalik näha käivitatud shellis hetkel seadistatud aliaseid. Bashis on juba vaikimisi ka mõned aliased määratud:

root@ubuntu:~# alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'

Kasutusel on nii vaikimisi võtmete etteandmine kui uue nimega käskude loomine.

Seadistamine

Aliase lisamiseks tuleb anda käsk:

alias nimi='käsk'

kus nimi on loodav alias ja käsk on aliase poolt asendatav käsk või käskude kombinatsioon. Kasutada võib nii üksikuid käske, suunamisi (|, >), mitut käsku (&&), võtmeid (-i, --preserve-root, jne), käske teiste käskude sees (`` abil), kui ka argumente ($1). [1]

Kui tekib vajadus käivitada käsku ilma aliase poolt tehtud lisanditeta, tuleb käsule kirjutada ette kaldkriips (\ls), panna ümber jutumärgid ("ls") või käivitada täisteekonnaga (/bin/ls). Viimase saab kätte käsuga which [2]

Näiteks värvib bash vaikimisi käsu ls väljundit (kuna on seadistatud vastav alias), kui anda aga käsk \ls on väljund mustvalge.

Eemaldamine

Käsurealt loodavad aliased on kasutatavad samas shellis, kus nad loodi kuni väljalogimiseni. Kui käivitada uus shell või olemasolev sulgeda, siis kaovad ka seadistatud aliased. Teine võimalus alias-te eemaldamiseks on käsk

unalias [-a] nimi

mis võimaldab hetkel käivitatud shellist eemaldada nii ajutised kui püsivad aliased. Võti -a eemaldab kõik aliased, unalias nimi eemaldab konkreetse aliase. Avades uue shelli tekivad püsivad aliased tagasi. Nende muutmisest lähemalt järgmises punktis.

Püsiva aliase tekitamine

Selleks, et soovitud käsu alias oleks kasutatav kohe peale sisselogimist, tuleb ta kirjeldada kasutaja .bashrc failis. Tavakasutajal asub see tema /home/kasutaja/ kaustas, root kasutajal /root/ kaustas. Faili muutmiseks avada see endale käepärasest tekstiredaktoris ja lisada sinna alias käsud sama süntaksiga, mis eelnevalt sai kirjeldatud.

Selleks et .bashrc failis tehtud muudatused ilma välja ja uuesti sisse logimata kasutusele võtta tuleb anda käsk

source .bashrc

või

. .bashrc

Kui on vaja teha alias kõigile süsteemi kasutajatele, siis peab selle kirjeldama failis /etc/bashrc. Selle rakendumiseks tuleb süsteem taaskäivitada.

Näited

Uute lühikäskude loomine

alias c='clear'

c - tühjendab ekraani

alias h='history'

h - näitab käsuajalugu

alias j='jobs -l'

j - näitab taustal töötavaid töid koos PID-ga

Võtmete lisamine

alias df='df -h'

df näitab kettakasutust inimsõbralikumal kujul.

alias rm='rm -i --preserve-root'

rm küsib üle iga faili kustutamise ja ei lase ära kustutada / kausta. Selle aliasega tuleb olla ettevaatlik! Võõras süsteemis ei pruugi sellist aliast kirjeldatud olla ja vales kohas antud rm * võib süsteemi jaoks fataalselt lõppeda.

Suunamised

alias mnt='mount | column -t'

mnt jaotab käsu mount väljundi tulpadesse.

alias most='du -hsx * 2>/dev/null | sort -rh | head -10'

most väljastab 10 kõige mahukamat kataloogi suuruse järjestuses.

alias ps2='ps -ef | grep -v $$ | grep -i'

ps2 tekst otsib protsessitabelist teksti.

alias mitu='echo Süsteemis on `who | wc -l` kasutajat'

mitu väljastab süsteemi sisseloginud kasutajate arvu eestikeelse lausena.

Näpuvigade parandus

alias pdw='pwd'
alias sl='ls'
alias cd..='cd ..'

Näited tarkvara haldamise lihtsustamiseks

Näide Pingviini Vikist [3]

alias u='apt-get update && apt-get dist-upgrade'
alias k='ldconfig && dpkg --configure -a && apt-get clean'
alias i='apt-get install'
alias o='apt-cache search'
alias n='apt-cache show'
alias e='apt-get remove'
alias ae='apt-get -y autoremove'
alias p='apt-cache policy'
alias f='apt-get install -f'

Seletused APT-i aliastele:

u - uuenda
k - korrasta
i - install ehk siis tarkvarapakettide paigaldamine
o - otsi
n - näita
e - eemalda
ae - automaatne eemaldus pakkidele, mida enam ei vajata
p - tarkvarapakkide poliitika
f - fikseeri ehk paranda sõltuvused

Kokkuvõte

Nagu eelnevast võib näha, saab alias käsuga muuta oma töö käsureal palju lihtsamaks ja kiiremaks ning vähendada ka eksimisvõimalusi. Samas ei tohi ära unustada, et tehtud seadistused on siiski kasutusel vaid selles konkreetses arvutis. Võõras süsteemis (näiteks kliendi või tuttava juures) hooletult antud rm * käsu tulemus on sootuks erinev sellest, mis oma süsteemis alias käsu abil oli seadistatud (alias rm='rm -i'). Iga faili kustutamise kohta kinnituse küsimise asemel on hetkega tagajärjeks tühi kaust.

Kasutatud materjal:

  1. Bashi kasutamine - Kuutõrvaja: http://kuutorvaja.eenet.ee/wiki/Bashi_kasutamine#alias
  2. Create and use aliases - Linux Shell Scripting Tutorial - A Beginner's handbook: http://bash.cyberciti.biz/guide/Create_and_use_aliases
  3. Alias - Pingviini Viki: http://viki.pingviin.org/Alias
  4. How to use the alias command: http://www.linfo.org/alias.html
  5. 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X: http://www.cyberciti.biz/tips/bash-aliases-mac-centos-linux-unix.html