Alias bash shellis: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Tliik (talk | contribs)
Created page with 'Mina teen 29.11.2012 Category:Operatsioonisüsteemide administreerimine ja sidumine'
 
Tliik (talk | contribs)
No edit summary
Line 1: Line 1:
Mina teen 29.11.2012
==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 <tt>alias</tt>. 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
<syntaxhighlight enclose="div" lang="bash">alias</syntaxhighlight>
on võimalik näha käivitatud shellis hetkel seadistatud aliaseid. Bashis on juba vaikimisi ka mõned aliased määratud:
<syntaxhighlight enclose="div" lang="bash">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'</syntaxhighlight>
Kasutusel on nii vaikimisi võtmete etteandmine kui uue nimega käskude loomine.
 
==Seadistamine==
Aliase lisamiseks tuleb anda käsk:
<syntaxhighlight enclose="div" lang="bash">alias nimi='käsk'</syntaxhighlight>
kus <tt>nimi</tt> on loodav alias ja <tt>käsk</tt> 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). [http://kuutorvaja.eenet.ee/wiki/Bashi_kasutamine#alias]
 
Kui tekib vajadus käivitada käsku ilma aliase poolt tehtud lisanditeta, tuleb käsule kirjutada ette kaldkriips (<tt>\ls</tt>), panna ümber jutumärgid (<tt>"ls"</tt>) või käivitada täisteekonnaga (<tt>/bin/ls</tt>). Viimase saab kätte käsuga <tt>which</tt> [http://bash.cyberciti.biz/guide/Create_and_use_aliases#How_do_I_ignore_an_alias.3F]
 
Näiteks värvib bash vaikimisi käsu <tt>ls</tt> väljundit (kuna on seadistatud vastav alias), kui anda aga käsk <tt>\ls</tt> on väljund mustvalge.
 
[[File:Tliik_alias1.png]]
 
===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
<syntaxhighlight enclose="div" lang="bash">unalias [-a] nimi</syntaxhighlight>
mis võimaldab hetkel käivitatud shellist eemaldada nii ajutised kui püsivad aliased. Võti <tt>-a</tt> eemaldab kõik aliased, <tt>unalias nimi</tt> 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 <tt>.bashrc</tt> failis. Tavakasutajal asub see tema <tt>/home/kasutaja/</tt> kaustas, root kasutajal <tt>/root/</tt> 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 <tt>.bashrc</tt> failis tehtud muudatused ilma välja ja uuesti sisse logimata kasutusele võtta tuleb anda käsk
<syntaxhighlight enclose="div" lang="bash">source .bashrc</syntaxhighlight>
või
<syntaxhighlight enclose="div" lang="bash">. .bashrc</syntaxhighlight>
Kui on vaja teha alias kõigile süsteemi kasutajatele, siis peab selle kirjeldama failis <tt>/etc/bashrc</tt>. Selle rakendumiseks tuleb süsteem taaskäivitada.
 
==Näited==
===Uute lühikäskude loomine===
<syntaxhighlight enclose="div" lang="bash">alias c='clear'</syntaxhighlight>
<tt>c</tt> - tühjendab ekraani
 
<syntaxhighlight enclose="div" lang="bash">alias h='history'</syntaxhighlight>
<tt>h</tt> - näitab käsuajalugu
 
<syntaxhighlight enclose="div" lang="bash">alias j='jobs -l'</syntaxhighlight>
<tt>j</tt> - näitab taustal töötavaid töid koos PID-ga
 
===Võtmete lisamine===
<syntaxhighlight enclose="div" lang="bash">alias df='df -h'</syntaxhighlight>
<tt>df</tt> näitab kettakasutust inimsõbralikumal kujul.
 
<syntaxhighlight enclose="div" lang="bash">alias rm='rm -i --preserve-root'</syntaxhighlight>
<tt>rm</tt> küsib üle iga faili kustutamise ja ei lase ära kustutada <tt>/</tt> kausta. Selle aliasega tuleb olla ettevaatlik! Võõras süsteemis ei pruugi sellist aliast kirjeldatud olla ja vales kohas antud <tt>rm *</tt> võib süsteemi jaoks fataalselt lõppeda.
 
===Suunamised===
<syntaxhighlight enclose="div" lang="bash">alias mnt='mount | column -t'</syntaxhighlight>
<tt>mnt</tt> jaotab käsu <tt>mount</tt> väljundi tulpadesse.
 
<syntaxhighlight enclose="div" lang="bash">alias most='du -hsx * 2>/dev/null | sort -rh | head -10'</syntaxhighlight>
<tt>most</tt> väljastab 10 kõige mahukamat kataloogi suuruse järjestuses.
 
<syntaxhighlight enclose="div" lang="bash">alias ps2='ps -ef | grep -v $$ | grep -i'</syntaxhighlight>
<tt>ps2 tekst</tt> otsib protsessitabelist teksti.
 
<syntaxhighlight enclose="div" lang="bash">alias mitu='echo Süsteemis on `who | wc -l` kasutajat'</syntaxhighlight>
<tt>mitu</tt> väljastab süsteemi sisseloginud kasutajate arvu eestikeelse lausena.
 
===Näpuvigade parandus===
<syntaxhighlight enclose="div" lang="bash">alias pdw='pwd'
alias sl='ls'
alias cd..='cd ..'</syntaxhighlight>
 
===Näited tarkvara haldamise lihtsustamiseks===
Näide Pingviini Vikist [http://viki.pingviin.org/Alias#Juurkasutaja_root_aliaste_faili_n.C3.A4ide]
<syntaxhighlight enclose="div" lang="bash">
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'
</syntaxhighlight>
 
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 <tt>rm *</tt> käsu tulemus on  sootuks erinev sellest, mis oma süsteemis alias käsu abil oli seadistatud (<tt>alias rm='rm -i'</tt>). Iga faili kustutamise kohta kinnituse küsimise asemel on hetkega tagajärjeks tühi kaust.
 
==Kasutatud materjal:==
 
#Bashi kasutamine - Kuutõrvaja: http://kuutorvaja.eenet.ee/wiki/Bashi_kasutamine#alias
#Create and use aliases - Linux Shell Scripting Tutorial - A Beginner's handbook: http://bash.cyberciti.biz/guide/Create_and_use_aliases
#Alias - Pingviini Viki: http://viki.pingviin.org/Alias
#How to use the alias command: http://www.linfo.org/alias.html
#30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X: http://www.cyberciti.biz/tips/bash-aliases-mac-centos-linux-unix.html
 




[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]

Revision as of 13:07, 8 December 2012

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