alias (kommando)

alias
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

externa länkar