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