Articles

Miten käyttää aliaksia Linux-shell-komentoja

Tämä artikkeli on uusintapainos kirja On Käytännön Opas Linux Komentoja, Toimittajat, ja Shell-Ohjelmointi, 3. painos, jossa lupaa kirjailija ja kustantaja Prentice Hall, kaikki oikeudet pidätetään.

alias on (yleensä lyhyitä) nimi, että kuori kääntää toiseen (yleensä pidempi) nimi tai komento. Peitenimien avulla voit määritellä uusia komentoja korvaamalla merkkijonon yksinkertaisen komennon ensimmäiselle merkille. Ne sijoitetaan tyypillisesti ~/.bashrc (bash) tai ~/.,tcshrc (tcsh) – käynnistystiedostot, jotta ne ovat interaktiivisten alaotsikoiden saatavilla.

Alle bash syntaksi alias builtin on

alias ]

Alle tcsh syntaksi on

alias ]

bash syntaksi välilyönnit eivät ole sallittuja ympäri yhtäläisyysmerkki. Jos arvo sisältää välilyöntejä tai välilehtiä, sinun on liitettävä arvo lainausmerkkeihin. Toisin kuin tcsh: n peitenimet, bash-peitenimi ei hyväksy arvoltaan komentorivin argumenttia., Käytä bash-funktiota, kun sinun täytyy käyttää argumenttia.

alias ei korvaa itse, jolla vältetään mahdollisuus ääretön rekursio käsittely alias, kuten seuraavat:

alias ls='ls -F'

Voit pesä aliaksia. Peitenimet on poistettu käytöstä ei-välittävien kuorien (eli komentosarjojen) osalta. Käyttää unalias sisäänrakennettu poistaa alias., Kun annat alias sisäänrakennettu komento ilman argumentteja, kuori näyttää luettelon kaikki määritellyt aliakset:

$ alias alias ll='ls -l' alias l='ls -ltr' alias ls='ls -F' alias zap='rm -i'

Voit tarkastella alias tietyn nimen, kirjoita komento alias, jota seuraa nimi alias. Useimmat Linux-jakelut määrittelevät ainakin joitakin peitenimiä. Anna peitenimi-komento nähdäksesi, mitkä peitenimet ovat voimassa. Voit poistaa peitenimet, joita et halua asianmukaisesta käynnistystiedostosta.,

Single vs. double lainausmerkkejä aliaksia

valinta yhden tai kahden hengen lainausmerkkejä on merkittävä alias-syntaksia, kun alias sisältää muuttujia. Jos asetat arvon kahden lainausmerkin sisään, kaikki arvossa näkyvät muuttujat laajenevat, kun peitenimi luodaan. Jos yhdistät arvon yksittäisiin lainausmerkkeihin, muuttujia ei laajenneta ennen peitenimen käyttöä. Seuraava esimerkki valaisee eroa.

PWD-avainsanamuuttujalla on työhakemiston polkunimi., Max luo kaksi peitenimeä työskennellessään kotihakemistossaan. Koska hän käyttää lainausmerkkejä, kun hän luo dirA alias, kuori korvaa arvo työhakemiston, kun hän luo alias. Alias-dirA-komento näyttää dirA alias ja osoittaa, että korvaaminen on jo tapahtunut:

 $ echo $PWD /home/max $ alias dirA="echo Working directory is $PWD" $ alias dirA alias dirA='echo Working directory is /home/max' 

Kun Max luo dirB alias, hän käyttää lainausmerkkeihin, joka estää komentotulkin laajentaa $PWD muuttuja., Alias dirB komento osoittaa, että dirB alias pitää vielä paisuttamattomat $PWD muuttuja:

 $ alias dirB='echo Working directory is $PWD' $ alias dirB alias dirB='echo Working directory is $PWD'

Kun olet luonut dirA ja dirB peitenimet, Max käyttää cd tehdä autoja hänen työ-hakemistoon ja antaa kullekin niistä alias komentoa. Alias hän luotu käyttämällä lainausmerkkejä näyttää nimen hakemisto hän loi alias sekä työ-hakemistoon (mikä on väärin)., Sen sijaan, dirB alias näkyy oikea nimi working directory:

 $ cd cars $ dirA Working directory is /home/max $ dirB Working directory is /home/max/cars

VIHJE: Miten estää komentotulkin vetoamalla alias

kuori tarkastuksia vain yksinkertainen, noteeraamattomat komentoja nähdä, jos ne ovat peitenimiä. Suhteellisina tai absoluuttisina polkuniminä ja siteerattuina komentoina annettuja komentoja ei tarkisteta. Kun haluat antaa komennon, joka on peitenimi, mutta eivät halua käyttää alias, kirjoita komento kenoviiva, määritä komento on absoluuttinen polkunimi, tai anna komento ./command.,

Esimerkkejä aliaksia

seuraavat alias avulla voit tyyppi r toistaa edellisen komennon tai r abc toistaa viimeinen komento linja, joka alkoi abc:

$ alias r='fc -s'

Jos et käytä komento ls -ltr usein, voit luoda aliaksen, joka korvaa ls -ltr kun annat komennon l:

Toinen yleinen käyttö aliakset on suojautua virheitä., Seuraavassa esimerkissä korvaa interaktiivinen versio rm apuohjelma, kun et anna komento zap:

$ alias zap='rm -i' $ zap f* rm: remove 'fixtax.icn'? n rm: remove 'flute.ps'? n rm: remove 'floor'? n

– i-vaihtoehto aiheuttaa rm pyytää sinua tarkistaa jokainen tiedosto, joka olisi poistettava, mikä auttaa sinua välttämään poistaa väärän tiedoston. Voit myös alias rm, jossa rm -i komento: alias rm='rm ‒i'.,

aliaksia seuraava esimerkki syy kuori korvata ls -l joka kerta annat ll komento ja ls ‒F joka kerta, kun käytät ls.-F vaihtoehto aiheuttaa ls tulosta kauttaviiva (/) lopussa hakemistojen nimet ja tähdellä (*) lopussa nimet ohjelmatiedostoja.,

tässä esimerkissä merkkijono, joka korvaa alias ll (ls ‒l) itsessään sisältää alias (ls). Kun se korvaa arvollaan peitenimen, kuori katsoo korvaavan merkkijonon ensimmäistä sanaa nähdäkseen, onko kyseessä peitenimi. Edellisessä esimerkissä, korvaava merkkijono sisältää alias ls, niin toinen korvaaminen tapahtuu, tuottaa lopullinen komento ls ‒F ‒l., (Välttää rekursiivinen syöstä, ls korvaa teksti, vaikka alias, ei ole laajeni toisen kerran.)

Kun annetaan luettelo aliaksia ilman =value tai value – kenttään alias builtin näyttää kunkin arvo on määritelty alias., alias sisäänrakennettu raportoi virheestä, jos aliasta ei ole määritelty:

$ alias ll l ls zap wx alias ll='ls -l' alias l='ls -ltr' alias ls='ls -F' alias zap='rm -i' bash: alias: wx: not found

Voit välttää alias korvaaminen edeltävän alias-komennon kanssa kenoviiva (\):

$ \ls Test_Emacs XTerm.ad flute.ps maptax.icn Tiger fixtax.icn floor testdir

Koska korvaaminen alias nimi alias arvo ei muutu loput command line, kaikki argumentit ovat edelleen saamat komento, joka suoritetaan:

$ ll f* -rw-r--r--. 1 max pubs 641 04-01 08:12 fixtax.icn -rw-r--r--. 1 max pubs 30015 03-01 14:24 flute.ps -rwxr-xr-x. 1 max pubs 485 09-21 08:03 floor*

Voit poistaa alias käyttäen unalias builtin., Kun zap alias on poistettu, sitä ei enää näytetä alias sisäänrakennettu, ja sen myöhempi käyttö aiheuttaa virheilmoituksen:

$ unalias zap $ alias alias ll='ls -l' alias l='ls -ltr' alias ls='ls -F' $ zap maptax.icn bash: zap: command not found