Home » Dokumentācija » Kā atvieglot darbošanos konsolē: komanda alias

Kā atvieglot darbošanos konsolē: komanda alias

helpKomanda alias dod iespēju veidot dažādas sarežģītības komandu pseidonīmus (kopā ar opcijām, pāradresācijām un programmu kanāliem). Pēc tam, kad pseidonīmi izveidoti, tos var izmantot kā parastas komandas.

Komanda alias ir ietverta dažādās čaulās, ieskaitot ash, bash (vairums Linux sistēmu noklusētā programčaula), csh un ksh. Pseidonīmi darbojas tikai tajā čaulā, kurā izveidoti un tikai konkrētā lietotāja profilā (ja vien tas nav administrators, kas var nodefinēt visiem vienādus pseidonīmus).

Dažādās čaulās alias sintakse ir atšķirīga. Mēs apskatīsim tikai komandčaulu bash.

Eksistējošu pseidonīmu apskate

Bez argumenta (ar vai bez opcijas -p), komanda alias izvada sistēmā jau uzstādīto pseidonīmu sarakstu:

$ alias

alias d='dir'
alias dir='/bin/ls $LS_OPTIONS --format=vertical'
alias ls='/bin/ls $LS_OPTIONS'
alias mc='. /usr/share/mc/bin/mc-wrapper.sh'
alias v='vdir'
alias vdir='/bin/ls $LS_OPTIONS --format=long'

Uzrādītie pseidonīmi ir vispārēja rakstura un tiek izveidoti automātiski katram jaunam lietotājam. Lai skatītu citu programčaulu pseidonīmus, nepieciešams pāriet uz konkrēto čaulu un tad startēt komandu alias, kā rādīts iepriekš.

Pseidonīmu izveide

Parasti komandu alias izmanto sekojoši:

$ alias NOSAUKUMS="VĒRTĪBA"

NOSAUKUMS – jaunā pseidonīma nosaukums, bet VĒRTĪBA – komanda (vai komandu grupa), kuras tiek izpildītas pseidonīma startēšanas laikā. NOSAUKUMS un VĒRTĪBAS teksts var saturēt jebkurus simbolus izņemot vienādības zīmi (=).

Komandas, kas satur opcijas, argumentus, pāradresācijas operatorus un programmu kanālus (pipes), jāiekļauj parastās vai dubultās pēdiņās. Pirms vai pēc vienādības zīmes nedrīkst izmantot atstarpes . Vienlaikus var veidot vairākus pseidonīmus.

Vienkārš pseidonīma izveides piemērs:

$ alias p="pwd"

Šajā piemērā parādīts, kā izveidot pseidonīmu komamdai pwd, kas izvada direktorijas nosaukumu, kurā patreiz darbojas lietotājs.

Tagad, lai noskaidrotu direktoriju, pietiek komandrindā ievadīt komandu p:

$ p

/home/gatons

Pseidonīmu var izveidot arī ar to pašu nosaukumu kā sākotnējā komanda, taču tā var aizvietot sākotnējo komandu kopā ar opcijām un argumentiem. Piemēram:

$ alias ls="ls -al"

Komanda ls ļauj izvadīt aktīvās direktorijas failu un apakšdirektoriju sarakstu, opcija -a ļauj attēlot slēptos failus, opcija -l izvada detalizētu informāciju.

Interesanti, ka tagad komandrindā ievadot komandu ls, darbosies pseidonīms nevis sākotnējā komanda. Ja nepieciešams izmantot sākotnējo komandu, tā jāievada ar slīpsvītru – \ls (bez atstarpes).

Kā jau pieminēts, vienlaikus ar pēdiņām var izmantot vienkāršās pēdiņas. Pēdējās pat ir ērtākas angļu klaviatūrai, jo nav nepieciešams izmantot SHIFT taustiņu. Piemēram, pēdējo piemēru var vienkāršot vēl vairāk:

$ alias l='ls -al'

Pseidonīma VĒRTĪBĀ var ietvert arī argumentus:

$ alias l='ls -al /etc'

kas, ievadot komandrindā vienu burtu l, pārskatīt direktorijas /etc saturu.

Pseidonīmā var izmantot arī vairākas komandas. Lai to panāktu, tās jāievieto pēdiņās, atdalot ar semikolu:

$ alias pl='pwd; ls'

šādā gadījumā tiks izpildīta pirmā komanda un uzreiz pēc tās – otrā:

$ pl

/home/swami
Desktop/

Šeit /home/swami ir komandas pwd izvads, bet Desktop/ – komandas ls izvads.

Vienlaicīgi var veidot vairākus pseidonīmus. Priekš tam pāri NOSAUKUMS=’VĒRTĪBA’ jāatdala ar atstarpi (un nevis ar semikolu, kā rakstīts novecojušās pamācībās):

$ alias d='ls /dev' u='ls /usr'

Pseidonīmā iespējams iekļaut arī programmu kanālus:

$ alias dir="ls -al | grep ^d"

Startējot šo pseidonīmu, komanda ls -al izvadīs konkrētās direktorijas saturu, bet komanda grep ^d no tā izfiltrēs visas rindas, kas sākas ar burtu “d”, t.i. – visas apakšdirektorijas.

Izveidotais pseidonīms izmantojams ar sākotnējās komandas argumentiem. Pieņemsim, ka pseidonīms l aizvieto komandu ls -a. Tad mēs to varam ievadīt komandrindā ar komandas ls argumentu:

$ l /etc

vai komandas ls opcijām:

$ l -l /etc

Komandas alias opcijas

Komandai alias ir tikai viena opcija -p. Šī opcija izvada visu jau izveidoto pseidonīmu sarakstu, t.i. – to pašu, ko komanda alias bez opcijām un argumentiem. Tāpēc opcijas -p vienīgais izmantošanas veids ir to ievadīt jaunu pseidonīmu izveides procesā, lai vienlaikus pārskatītu izveidoto pseidonīmu sarakstu:

$ alias -p p='pwd'

Pseidonīmu izmantošana

1. Lai samazinātu komandrindā ievadāmā teksta izmēru. Ar pseidonīmiem tiek aizstātas komandas un komandu grupas, kuru ievadei nepieciešams ilgi darboties ar klaviatūru. Šīs komandas var izmantot izmantot, lai, piemēram, atvērtu bieži skatāmus vai labojamus failus.

Piemēram, ja lietotājam ir piekļuve web servera Apache konfigurācijas failam, kas dažās sistēmās atrodas direktorijā /etc/httpd/conf/httpd.conf, un viņš izmanto redaktoru gedit tā labošanai, tad viņš ir spiests katru reizi komandrindā ievadīt komandu:

$ gedit /etc/httpd/conf/httpd.conf

Tas ir ļoti neērti un apnicīgi. Daudz prātīgāk ir šādu komandu aizvietot ar pseidonīmu:

$ alias a="gedit /etc/httpd/conf/httpd.conf"

un konfigurācijas faila atvēršanai turpmāk būs jāievada tikai viens burts:

$ a

2. Lai izmantotu komandas darbošanos pēc noklusējuma. Piemēram, ievadot pseidonīmu

$ alias ls="ls -a"

varam būt pārliecināti, ka komanda ls parādīs arī slēptos failus, ko tā pēc noklusējuma nedara.

Vai arī komanda df, kas izvada informāciju par sistēmai pieslēgto disku sadaļām:

$ df

Failu sistēma        1K-bloki      Izm    Pieejams  Izm% piemontēts
/dev/sda6             15488716   6145052   8556884  42% /
/dev/sda2             78144508  36647484  41497024  47% /mnt/win-c

Kā redzams, izvadītā informācija nav īpaši viegli uztverama, jo kā izmēra vienība sākotnēji ir izvēlēts 1kb bloks (tā ir to dienu atbalss, kad kilobaits vēl tika uzskatīts par lielu mērvienību). Pastāv opcija -h (no angļu valodas “human readable” – cilvēkam sapsaprotams), kas kā mērvienības izmanto MB (megabaits) un GB (gigabaits):

$ df -h

Failu sistēma        Izmērs  Izm  Brīvs Izm% piemontēts
/dev/sda6              15G  5,9G  8,2G  42% /
/dev/sda2              75G   35G   40G  47% /mnt/win-c

Tā jau ir daudz uzskatāmāk. Tāpēc ir nepieciešams izveidot pseidonīmu komandai df -h:

$ alias df="df -h"

Noderēs arī pseidonīms

alias grep="grep --color"

kas komandas grep izvadu padarīs krāsainu.

3. Lai izvairītos no komandu nepareizas ievades. Pieņemsim, ka kāds lietotājs regulāri kļūdās ievadot kaut kādu komandu, piemēram – raksta pdw komandas pwd vietā. Tad viņš var izveidot pseidonīmu:

$ alias pdw="pwd"

un vairāk nedomāt par to, vai viņš pareizi ievadījis komandu.

4. Lai paaugstinātu sistēmas drošības līmeni, padaram dažas komandas interaktīvas. Tas piespiedīs lietotāju apstiprināt visu darbību gaitu. Piemēram, komanda rm dzēš failus un direktorijas bez atjaunošanas iespējas, tāpēc vajadzētu tai izveidot pseidonīmu:

$ alias rm="rm -i"

Interaktīvā variantā komanda vairs nav tik bīstama.

Vai arī – komanda cp, kas viena faila saturu kopē uz otru failu. Ja kļūdas pēc kā argumentu norādīsim jau eksistējošu failu, tad komanda tā saturu nodzēsīs un aizvietos ar jaunu. No tā iespējams izvairīties, definējot pseidonīmu:

$ alias cp="cp -i"

kas liks kopēšanas operāciju apstiprināt, līdz ar to pazeminot pārkopēšanas risku.

5. Lai standartizētu komandu nosaukumus dažādās operētājsistēmās. Teiksim, populārajam teksta redaktoram vi ir dažādi nosaukumi dažādās OS (vim, nvi, elvis utt.), taču, ja katrā sistēmā izveidosim attiecīgus pseidonīmus, tad tajās visās to varēs startēt ar komandu vi. Piemēram, ja sistēmā pēc noklusējuma uzstādīts redaktors vim, to var nostartēt ne tikai ar komandu vim, bet arī ar vi, jo arī pseidonīms alias vi="vim" pēc noklusējuma tiek uzstādīts komandčaulām bash, csh un tcsh.

Cilvēkiem, kas pieraduši pie MS-DOS komandrindas, var izveidot Unix komandu pseidonīmus pēc MS-DOS parauga:

alias dir="ls"
alias copy="cp"
alias rename="mv"
alias md="mkdir"
alias rd="rmdir"
alias del="rm -i"

Taisnības labad jāatzīst, ka pieredzējuši Unix lietotāji uzskata, ka vislabāk ir uzreiz radināties pie pareizas Unix tehnoloģijas.

Kā pseidonīmus padarīt pieejamus

Pseidonīmi, kas ar komandu alias izveidoti pēc augstāk aprakstītās metodes, darbosies tikai līdz brīdim, kad lietotājs beigs darbu sistēmā vai līdz pirmajai datora pārstartēšanai. Lieliem serveriem, kas darbojas bez pārtraukuma, tas nav īpaši būtiski, taču mājas datoriem, kuri tiek izslēgti ik dienas, tas pseidonīmu nozīmi padara ļoti apšaubāmu.

Par labi, jebkuru pseidonīmu var padarīt pastāvīgu. Lai to panāktu, pseidonīms jāieraksta attiecīgā konfigurācijas failā. Šādu failu nosaukums un atrašanās vieta dažādās operētājsistēmās atšķiras.

Par universālu metodi tiek uzskatīta faila bashrc izmantošana.

Vispirms jāpārbauda, vai tāds fails sistēmā vispār pastāv. Administratora (root) režīmā jāizmanto komanda locate:

# locate bashrc

(ja komanda nedarbojas – “lamājas”, jājaunina datu bāze ar komandas updatedb vai locate -u palīdzību).

Atkarībā no tā, vai eksistē tādi faili kā bashrc (.bashrc, bash.bashrc un tml.), iespējami dažādi rīcības varianti:

1. Lai izveidotu pastāvīgus pseidonīmus konkrētam lietotājam:

Ja “mājas” direktorijā atrodams fails .bashrc (slēpts fails), faila beigās jāpievieno nepieciešamie pseidonīmi pa vienam katrā rindā. Piemēram:

alias e='cat /etc/fstab'
alias grep='grep --color'
un tā tālāk...

Ja “mājas” direkotrijā faila .bashrc nav, tas jāizveido. Pēc tam tajā jāieraksta pseidonīmi kā iepriekš aprakstīts.

Pseidonīmi sāks darboties tikai tad, kad konkrētais lietotājs nākamreiz pieslēgsies sistēmai.

2. Lai izveidotu pastāvīgus pseidonīmus visiem lietotājiem:

Ja sistēmā ir fails /etc/bashrc, tad vajadzīgos pseidonīmus pievieno jau esošā saraksta beigās.

Ja fails /etc/bashrc nepastāv, root režīmā jāatver fails /etc/profile teksta redaktorā. Jāatrod rinda # include /etc/bashrc if it exists. Ja tādas rindas nav, tā jāieraksta faila beigās. Zem šīs rindas jāieraksta sekojošs skripts:

if [ -f /etc/bashrc ];
then
source /etc/bashrc
fi

Pēc tam jāizveido teksta fails /etc/bashrc, kurā jāieraksta nepieciešamie pseidonīmi.

Jaunie pseidonīmi visiem lietotājiem (izņemot root) stāsies spēkā pēc sistēmas pārstartēšanas.

3. Lai izveidotu pastāvīgus pseidonīmus lietotājam root:

Ja eksistē fails /root/.bashrc (slēpts), tad pseidonīmi jāieraksta šajā failā.

Ja šāda faila nav, tas jāizveido un tajā pseidonīmi jāieraksta.

Tiem, kas nevēlas mainīt savu sistēmu, veidojot jaunus sistēmas failus un startējot jaunus pašdarinātus skriptus, jācenšas atrast failus, kuros tiek norādīti pseidonīmi. Vispirms ir jāpārliecinās, vai pseidonīmi sistēmā vispār ir nodefinēti:

$ alias

(tas jādara no standarta lietotāja profila, jo parasti pseidonīmi root lietotājam definēti netiek).

Ja komanda alias atgriež uzstādītu pseidonīmu sarakstu, tātad jābūt failam, kurā šie pseidonīmi definēti.

Vispirms uzmanīgi jāpārskata visus failus, kuru nosaukumos ir frāze bashrc (.bashrc, bash.bashrc un tml.). Iespējams, ka tajā nav norādīti paši pseidonīmi, taču ir norādīts fails, kurā tie definēti vai arī skripts, kas šos pseidonīmus definē.

Ja bashrc tipa faili nav atrasti, tad uzmanīgi jāpārskata fails /etc/profile, kurā, visticamāk, varēs atrast kaut ko līdzīgu:

# Append any additional sh scripts found in /etc/profile.d/:
for profile_script in /etc/profile.d/*.sh ; do
  if [ -x $profile_script ]; then
    . $profile_script
  fi
done
unset profile_script

Šajā gadījumā jāpārskata skripti, kas izvietoti direktorijā /etc/profile.d/, kur var atrasties skripts /etc/profile.d/alias.sh, kurā arī būs norādīti pseidonīmi. Atliek tikai tur ierakstīt savus. Ja skripta alias.sh vai līdzīga nav, nāksies pārskatīt visus skriptus direktorijā  /etc/profile.d/. Piemēram, manā sistēmā pseidonīmu rindas atradās failā /etc/profile.d/coreutils-dircolors.sh.

Ierakstot jaunus pseidonīmus, jāpārstartē sistēma.

Pseidonīmu dzēšana

Pseidonīma atslēgšanai izmantojama komanda unalias:

$ unalias PSEIDONĪMA VĀRDS

Uzmanību: komanda unalias dzēš ne tikai lietotāja izveidotos pseidonīmus, bet arī tos, kas attiecināti uz visu sistēmu.

Opcija -a ļauj dzēst visus pseidonīmus konkrētam lietotājam un komandčaulai:

$ unalias -a

(Starp citu, tā ir vienīgā komandas opcija).

Cits pseidonīma dzēšanas veids ir cita pseidonīma izveide ar tādu pašu nosaukumu, izmantojot komandu alias.

Un, visbeidzot, pseidonīmu var dzēst, to izdzēšot no konkrētā konfigurācijas faila.

Nobeigums

Komanda alias ir labs komandčaulas iestatīšanas rīks. Pseidonīmu izmantošana jūtami paātrina un vienkāršo darbu komandrindā.

rus-linux.net


Tags: , ,

One Response

  1. avatar Jancis saka:

    nezināju! paldies!

© Atvērtās ziņas
CyberChimps