Slutförande av kommandoraden
Kommandoradskomplettering (även tabulatorkomplettering ) är en vanlig egenskap hos kommandoradstolkar , där programmet automatiskt fyller i delvis inskrivna kommandon.
Kommandoradstolkar är program som låter en användare interagera med det underliggande operativsystemet genom att skriva kommandon vid en kommandotolk med ett kommandoradsgränssnitt (CLI), i motsats till att peka och klicka på en mus i ett grafiskt användargränssnitt (GUI). Med kommandoradskomplettering kan användaren skriva de första tecknen i ett kommando, program eller filnamn och trycka på en kompletteringsknapp (normalt Tab ↹ ) för att fylla i resten av objektet. Användaren trycker sedan på Retur eller ↵ Enter för att köra kommandot eller öppna filen.
Kommandoradskomplettering är användbart på flera sätt, vilket illustreras av animeringen som medföljer den här artikeln. Vanligt använda kommandon, särskilt de med långa namn, kräver färre tangenttryckningar för att nå. Kommandon med långa eller svårstavade filnamn kan matas in genom att skriva de första tecknen och trycka på en kompletteringsknapp, vilket slutför kommandot eller filnamnet. I fallet med flera möjliga kompletteringar kommer vissa kommandoradstolkar, särskilt Unix-skal, att lista alla möjliga kompletteringar som börjar med dessa få tecken. Användaren kan skriva fler tecken och trycka på Tab ↹ igen för att se en ny, förminskad lista om de inskrivna tecknen fortfarande är tvetydiga, eller komplettera kommandot/filnamnet med ett mellanslag. En alternativ form av komplettering roterar genom alla matchande resultat när inmatningen är tvetydig.
Kompletterbara element kan inkludera kommandon, argument, filnamn och andra enheter, beroende på den specifika tolken och dess konfiguration. Kommandoradskomplettering fungerar i allmänhet bara i interaktivt läge . Det vill säga, det kan inte anropas för att slutföra delvis inskrivna kommandon i skript eller batchfiler , även om slutförandet är entydigt. Namnet tab-komplettering kommer från det faktum att kommandoradskomplettering ofta anropas genom att trycka på tabbtangenten .
Historia
Flikkomplettering dök upp tidigt i datorhistoriken; ett av de första exemplen dök upp i Berkeleys tidsdelningssystem för SDS 940 , där om en maskinskriven sträng var tvetydig, skulle tolken inte göra något, men om strängen inte var tvetydig, skulle den automatiskt slutföra den utan något kommando från användaren. Den här funktionen fungerade inte bra med de alltför frekventa stavfelen , och det var en blandad välsignelse. Denna funktion imiterades av Tenex utvecklare som gjorde en viktig förändring: Tenex använde "escape recognition", där tolken inte skulle försöka att autoslutföra om inte escape- tangenten slogs (därav namnet) av användaren. Domänen utökades också från enbart programnamn på Berkeley-systemet till både programnamn och filer på Tenex. Tenex ättling TOPS-20 flyttade kommandoradens komplettering från kommandotolken till operativsystemet via COMND JSYS-systemanropet, för att göra det tillgängligt för andra användarapplikationer. Därifrån lånades den av Unix.
Exempel
För att öppna filen introduction-to-command-line-completion.html med Firefox skulle man skriva:
firefox introduction-to-command-line-completion.html
Detta är ett långt kommando att skriva. Istället kan vi använda kommandoradskomplettering.
Uppmanar färdigställande
Följande exempel visar hur kommandoradskomplettering fungerar i Bash . Andra kommandoradsskal kan fungera något annorlunda.
Först skriver vi de tre första bokstäverna i vårt kommando:
gran
Sedan trycker vi på Tab ↹ och eftersom det enda kommandot i vårt system som börjar med "fir" är "firefox", kommer det att slutföras till:
firefox
Sedan börjar vi skriva filnamnet:
firefox i
Men den här gången är introduction-to-command-line-completion.html inte den enda filen i den aktuella katalogen som börjar med "i". Katalogen innehåller också filerna introduction-to-bash.html och introduction-to-firefox.html . Systemet kan inte bestämma vilket av dessa filnamn vi ville skriva, men det vet att filen måste börja med "introduktion-till-", så kommandot kommer att slutföras till:
firefox introduktion till-
Nu skriver vi "c":
firefox introduktion-till-c
Efter att ha tryckt på Tab ↹ kommer det att slutföras till hela filnamnet:
firefox introduction-to-command-line-completion.html
Kortfattat skrev vi:
fir Tab ↹ i Tab ↹ c Tab ↹
Detta är bara åtta tangenttryckningar, vilket är betydligt mindre än 52 tangenttryckningar som vi skulle ha behövt skriva utan att använda kommandoradskomplettering.
Roterande färdigställande
Följande exempel visar hur kommandoradskomplettering fungerar med roterande slutförande, som Windows CMD använder.
Vi följer samma procedur som för att begära slutförande tills vi har:
firefox i
Vi trycker på Tab ↹ en gång, med resultatet:
firefox introduction-to-bash.html
Vi trycker på Tab ↹ igen och får:
firefox introduction-to-command-line-completion.html
Kortfattat skrev vi:
fir Tab ↹ i Tab ↹ Tab ↹
Detta är bara sju tangenttryckningar, jämförbara med fullbordande av promptstil. Detta fungerar bäst om vi vet vilka möjligheter tolken kommer att rotera genom.
Komplettering i olika kommandoradsgränssnitt
-
Unix-skal , inklusive Bash (standardskalet i de flesta Linux-distributioner ) och ksh bland många andra, har en lång tradition av avancerade och anpassningsbara kompletteringsmöjligheter.
-
Bash programmerbara komplettering,
komplett
ochcompgen
kommandon har varit tillgängliga sedan betaversionen av 2.04 år 2000 och erbjuder åtminstone Pathname och filnamn komplettering. - För KornShell-användare beror komplettering av filnamn på värdet på EDITOR-variabeln. Om EDITOR är inställd på vi skriver du en del av namnet och sedan Escape , \ . Om EDITOR är inställt på Emacs skriver du en del av namnet och sedan Escape , Escape .
- Z -skalet (zsh) var banbrytande för stödet för helt programmerbar komplettering, vilket gjorde det möjligt för användare att automatiskt få skalet att automatiskt slutföra parametrarna för olika kommandon som inte är relaterade till själva skalet, vilket åstadkoms genom att prima skalet med definitioner av alla kända switchar samt lämpliga parametertyper. Detta tillåter användaren att t.ex. skriva tar xzf Tab ↹ och få skalet att endast fylla i tjärade gzip-arkiv från det faktiska filsystemet, och hoppa över filer som är inkompatibla med indataparametrarna. En modern zsh-installation kommer med kompletteringsdefinitioner för över femhundra kommandon.
- Tcsh erbjuder komplettering av standardfiler, kommandon och variabelnamn aktiverade med Tab ↹ . Det inbyggda kommandot "complete" ger helt programmerbar komplettering. Källkoden kommer med en 'complete.tcsh'-fil som innehåller många exempel på dess kompletteringssyntax.
-
Bash programmerbara komplettering,
- Windows PowerShell , det utvidgbara kommandoskalet från Microsoft, som är baserat på objektorienterad programmering och Microsoft .NET- ramverket, ger kraftfulla och anpassningsbara kompletteringsfunktioner som liknar de traditionella Unix-skalen. [ citat behövs ]
- Kommandoprocessorn cmd.exe i Windows NT -baserade system stöder grundläggande komplettering. Det är möjligt att använda en separat nyckelbindning endast för matchande katalognamn.
- cmd.exe /F:ON möjliggör komplettering av fil- och katalognamn (^F och ^D som standard). Använd cmd.exe /? för mer information.
- TweakUI kan användas för att konfigurera nycklarna som används för komplettering av filnamn och katalognamn.
- MS -DOS- kommandoprocessorn COMMAND.COM hade inte kommandoradskomplettering: ett tryck på tabbtangenten skulle bara flytta fram markören . Men olika förbättrade skal för MS-DOS, såsom 4DOS , FreeDOS -versionen av COMMAND.COM eller Enhanced DOSKEY.COM har flikkomplettering i Unix-stil.
- Far Manager, förutom dess filhanteringsfunktioner, ger kommandohistorik och radslutförande för Windows.
Se även
externa länkar
Unix-skal
- En översikt över slutförandet av Bash - "Arbeta mer produktivt med bash 2.x/3.x" av Ian Macdonald
- Zsh-kompletteringssystemet, kapitel från Z Shell Manual
- Komplettering och listning från TCSH-manualen
Windows kommandotolkar
(Se till att kolla avsnittet "Gäller" i varje artikel)
- Windows Server 2003:
- Windows XP
- Windows 2000/NT 4