alias (kommando)
Originalförfattare | Bill Joy |
---|---|
Utvecklare | Olika öppen källkod och kommersiella utvecklare |
Operativ system | Unix , Unix-like , AmigaDOS , Microsoft Windows , ReactOS , AROS , KolibriOS , IBM i |
Plattform | Cross-plattform |
Typ | Kommando |
Inom datorer är alias ett kommando i olika kommandoradstolkare ( skal ), som gör det möjligt att ersätta ett ord med en annan sträng . Det används främst för att förkorta ett systemkommando, eller för att lägga till standardargument till ett regelbundet använt kommando. alias
är tillgängligt i Unix-skal , AmigaDOS , 4DOS / 4NT , KolibriOS , Windows PowerShell , ReactOS och EFI-skalet . Aliasing-funktionalitet i MS-DOS och Microsoft Windows tillhandahålls av kommandoradsverktyget DOSKey .
Ett alias kommer att vara under hela skalsessionen. Regelbundet använda alias kan ställas in från skalets rc-fil (som .bashrc
) så att de kommer att vara tillgängliga vid starten av motsvarande skalsession. Aliaskommandona kan antingen skrivas i konfigurationsfilen direkt eller hämtas från en separat fil.
Historia
I Unix introducerades alias i C-skalet och överlever i efterkommande skal som tcsh och bash . C-skalalias var strikt begränsade till en rad. Detta var användbart för att skapa enkla genvägskommandon, men inte mer komplexa konstruktioner. Äldre versioner av Bourne-skalet erbjöd inte alias, men det tillhandahöll funktioner som är mer kraftfulla än csh-aliaskonceptet. Aliaskonceptet från csh importerades till Bourne Again Shell (bash) och Korn-skalet (ksh). Med skal som stöder både funktioner och alias men inga parametriserade inline-skalskript, rekommenderas användning av funktioner där det är möjligt. Fall där alias är nödvändiga inkluderar situationer där kedjade alias krävs (bash och ksh). Aliaskommandot har också porterats till operativsystemet IBM i .
Användande
Skapar alias
Vanliga Unix-skal
Icke-beständiga alias kan skapas genom att ange namn/värdepar som argument för aliaskommandot. I Unix-skal är syntaxen:
alias gc = 'git commit'
C skal
Motsvarande syntax i C-skalet eller tcsh -skalet är:
alias gc "git commit"
Detta alias betyder att när kommandot gc
läses i skalet kommer det att ersättas med git commit
och det kommandot kommer att köras istället.
4DOS
I 4DOS/4NT-skalet används följande syntax för att definiera cp
som ett alias för 4DOS- kopieringskommandot
:
alias cp kopia
Windows PowerShell
För att skapa ett nytt alias i Windows PowerShell kan cmdleten new-alias
användas:
nytt-alias ci kopia-objekt
Detta skapar ett nytt alias som heter ci
som kommer att ersättas med kopieringsobjektets
cmdlet när det körs.
I PowerShell kan ett alias inte användas för att ange standardargument för ett kommando. Istället måste detta göras genom att lägga till objekt i samlingen $PSDefaultParameterValues, en av PowerShell-preferensvariablerna.
Visa för närvarande definierade alias
För att se definierade alias kan följande kommandon användas:
alias # Används utan argument; visar en lista över alla nuvarande alias alias -p # Lista alias på ett sätt som tillåter återskapande genom att hämta utdata; inte tillgänglig i 4DOS/4NT och PowerShell alias myAlias # Visar kommandot för ett definierat alias
Åsidosättande av alias
I Unix-skal är det möjligt att åsidosätta ett alias genom att citera vilket tecken som helst i aliasnamnet när du använder aliaset. Tänk till exempel på följande aliasdefinition:
alias ls = 'ls -la'
För att åsidosätta detta alias och köra kommandot ls
som det ursprungligen definierades, kan följande syntax användas:
'ls'
eller
\ls
I 4DOS/4NT-skalet är det möjligt att åsidosätta ett alias genom att prefixa det med en asterisk. Tänk till exempel på följande aliasdefinition:
alias dir = *dir /2/s
Asterisken i den andra instansen av dir
gör att den oaliasade dir
anropas, vilket förhindrar rekursiv aliasexpansion. Användaren kan också få det oaliasade beteendet hos dir
på kommandoraden genom att använda samma syntax:
*dir
Ändra alias
I Windows PowerShell kan set
verbet användas med alias
cmdlet för att ändra ett befintligt alias:
set-alias ci cls
Aliaset ci
kommer nu att peka på kommandot cls .
I 4DOS/4NT-skalet tillhandahåller kommandot eset
en interaktiv kommandorad för att redigera ett befintligt alias:
eset /a cp
/ a
gör att aliaset cp
redigeras, i motsats till en miljövariabel med samma namn.
Tar bort alias
I Unix-skal och 4DOS/4NT kan alias tas bort genom att köra kommandot unalias :
unalias copy # Tar bort kopia alias unalias -a # Switchen -a kommer att ta bort alla alias; inte tillgänglig i 4DOS/4NT unalias * # 4DOS/4NT motsvarighet till `unalias -a` - jokertecken stöds
I Windows PowerShell kan aliaset tas bort från alias:\-enheten med remove-item
:
remove-item alias : ci # Tar bort ci-alias
Funktioner
Kedja
Ett alias ersätter vanligtvis bara det första ordet. Men vissa skal, som bash
och ksh
, tillåter att en sekvens eller ord ersätts. Denna speciella funktion är inte tillgänglig via funktionsmekanismen.
Den vanliga syntaxen är att definiera det första aliaset med ett efterföljande mellanslagstecken. Använd till exempel de två aliasen:
alias list = 'ls ' # notera det efterföljande utrymmet för att utlösa chaining alias long = '-Flas' # alternativ till ls för en lång lista
tillåter:
list long myfile # blir "ls -Flas myfile" när den körs
för en lång lista, där "lång" också utvärderas som ett alias.
Kommandoargument
I C-skalet kan argument bäddas in i kommandot med hjälp av strängen \ !* . Till exempel, med detta alias:
alias ls-more 'ls \!* | Mer'
ls-more /etc /usr
expanderar till ls /etc /usr | mer
för att lista innehållet i katalogerna /etc och /usr, pausa efter varje skärmvisning. Utan \!* ,
alias ls-more 'ls | Mer'
skulle istället expandera till ls | more /etc /usr
som felaktigt försöker öppna katalogerna i more .
Bash- och Korn-skalen använder istället skalfunktioner — se § Alternativ nedan.
Alternativ
Alias bör vanligtvis hållas enkla. Där det inte skulle vara enkelt är rekommendationen vanligtvis att använda något av följande:
- Skalskript , som i huvudsak ger den fulla förmågan att skapa nya systemkommandon.
-
Symboliska länkar i användarens
PATH
(som/bin
). Den här metoden är användbar för att tillhandahålla ett ytterligare sätt att anropa kommandot, och i vissa fall kan den tillåta åtkomst till en nedgrävd kommandofunktion för det lilla antalet kommandon som använder sitt anropsnamn för att välja funktionssätt. - Skalfunktioner, särskilt om kommandot som skapas behöver modifiera den interna körtidsmiljön för själva skalet (som miljövariabler ), måste ändra skalets nuvarande arbetskatalog , eller måste implementeras på ett sätt som garanterar att de visas i kommandosökväg för allt annat än ett interaktivt skal (särskilt alla "säkrare" versioner av
rm
,cp
,mv
och så vidare).
Den vanligaste formen av alias, som bara lägger till några få alternativ till ett kommando och sedan inkluderar resten av kommandoraden, kan enkelt konverteras till skalfunktioner enligt detta mönster:
alias ll = 'ls -Flas' # lång lista, alias ll () { ls -Flas " $@ " ; } # lång lista, funktion
För att förhindra en funktion från att anropa sig själv rekursivt , använd kommandot
:
ls () { kommando ls --color = auto " $@ " ; }
I äldre Bourne-skal använder du /bin/ls
istället för kommandot ls
.
Vidare läsning
- McElhearn, Kirk (2006). Kommandoraden i Mac OS X: Unix Under the Hood . John Wiley & Sons . ISBN 978-0470113851 .
externa länkar
- The Single UNIX Specification , Version 4 från The Open Group : definiera eller visa alias – Shell and Utilities Reference,
- Bash man-sida för alias
- Aliaskommandot av The Linux Information Project (LINFO)