Kommandolinjer: Hvorfor gider folk stadig med dem?

Kommandolinjen er næsten 50 år gammel, men den er ikke forældet. Tekstbaserede terminaler er stadig den bedste måde at udføre mange opgaver på, selv i en tidsalder med grafiske desktops og gadgets med berøringsskærm.

Faktisk bliver kommandolinjen mere respekteret end nogensinde, da Microsoft har skabt en kraftfuld ny Windows Terminal-applikation. Windows 10’s PowerShell-miljø er overraskende kraftfuldt, men Microsoft gik stadig ud af sin måde at tilføje support til stort set hele Linux-kommandolinjemiljøet til Windows 10.

Kommandolinjen var engang den eneste mulighed

På et tidspunkt, hvis du ønskede at interagere med en computer, skrev du. Det var det. Der var ikke andet. Det lyder måske restriktivt og arkaisk, men som et skridt op fra at skulle bruge hulkort eller perforerede papirbånd, var skrivning radikal og transformerende. Og migrere fra fjernskrivemaskiner med deres papirruller til terminaler med katodestrålerør (CRT) skærme var endnu et jordskifte i menneskelig og computerinteraktion.

Det trin banede vejen for, at den interaktive skal virkelig kom til sin ret. Nu kan du sende instruktioner til computeren og meget hurtigt få svar vist på din skærm. Ikke mere klak-klak-klak, mens du ventede på, at din papirudskrift skulle klapre ud af din fjernskrivemaskine.

Fair nok, men det var dengang, det er nu. Computer er et helt andet boldspil. Bortset fra de åbenlyse låste tilfælde som at bruge en computer, der ikke har et grafisk skrivebordsmiljø installeret, eller at bruge en fjerncomputer via SSH over en forbindelse med lav båndbredde, eller styring af en hovedløst eller indlejret system, hvorfor bruge kommandolinjen over et grafisk skrivebord?

Jargon forklaret

Udtryk som kommandolinje, terminalvindue og shell bruges næsten i flæng af nogle mennesker. Det er en forkert jargon. De er alle ret forskellige. De er beslægtede, men de er ikke det samme.

Et terminalvindue er et vindue i en grafisk skrivebordsmiljø der kører en emulering af en teletypeterminal.

Skallen er det program, der kører inde i terminalvinduet. Det tager dine input og, afhængigt af hvad du har skrevet, forsøger det at fortolke og udføre instruktionerne selv, videregive dem til nogle af de andre hjælpeprogrammer, der udgør operativsystemet, eller finde et script eller program, der matcher det, du har skrevet.

  Hvad betyder "IDGI", og hvordan bruger du det?

Kommandolinjen er der, hvor du skriver. Det er den prompt, som skallen viser, når den venter på, at du skal indtaste nogle instruktioner. Udtrykket “kommandolinje” bruges også til at henvise til det faktiske indhold af det, du har skrevet. For eksempel, hvis du taler med en anden computerbruger om et problem, du havde ved at prøve at få et program til at køre, kan de spørge dig: “Hvilken kommandolinje brugte du?” De spørger ikke, hvilken skal du brugte; de vil vide, hvilken kommando du har skrevet.

Tilsammen danner disse sammen kommandolinjegrænseflade (CLI).

Hvorfor bruge kommandolinjen i 2019?

CLI kan virke retrograd og forvirrende for dem, der ikke er bekendt med det. Der er vel ikke plads i et moderne operativsystem til en så dateret og nørdet måde at bruge en computer på? Opgav vi ikke alt det for årtier siden, da vinduer, ikoner og mus dukkede op og grafiske skrivebordsmiljøer med grafiske brugergrænseflader (GUI’er) blev tilgængelige?

Ja, GUI’en har eksisteret i årtier. Den første version af Microsoft Windows var udgivet helt tilbage i 1985 og blev PC-desktop-normen med udgivelsen af ​​Windows 3.0 i 1990.

X Window System, brugt i Unix og Linux, var introduceret i 1984. Dette bragte grafiske skrivebordsmiljøer til Unix og dets mange derivater, kloner og off-shoots.

Men udgivelsen af ​​Unix daterer disse begivenheder før en mere end et årti. Og fordi der ikke var nogen anden mulighed, skulle alt være muligt via kommandolinjen. Al menneskelig interaktion, al konfiguration, enhver brug af computeren skulle kunne udføres via det ydmyge tastatur.

Så ipso facto kan CLI alt. En GUI kan stadig ikke gøre alt, hvad CLI kan gøre. Og selv for de dele, den kan, er CLI normalt hurtigere, mere fleksibel, kan scriptes og skalerbar.

Og der er en standard.

De er standardiserede takket være POSIX

POSIX er en standard for Unix-lignende operativsystemer— dybest set alt, hvad der ikke er Windows. Og selv Windows har Windows Subsystem til Linux (WSL.) Åbn et terminalvindue på et hvilket som helst POSIX-kompatibelt (eller tæt på kompatibelt) operativsystem, og du vil finde dig selv i en shell. Selvom skallen eller distributionen giver deres egne udvidelser og forbedringer, så længe de leverer POSIX-kernefunktionaliteten, vil du være i stand til at bruge den med det samme. Og dine scripts kører.

  Sådan deler du din liveplacering i Google Maps med venner

Kommandolinjen er den laveste fællesnævner. Lær, hvordan du bruger det, og uanset Linux-distribution og grafisk skrivebordsmiljø, vil du være i stand til at udføre alle de opgaver, du har brug for. Forskellige desktops har deres egen måde at gøre tingene på. Forskellige Linux-distributioner bundter forskellige hjælpeprogrammer og programmer.

Men åbn et terminalvindue, og du vil føle dig hjemme.

Kommandoer er designet til at arbejde sammen

Hver af Linux-kommandoerne er designet til at gøre noget bestemt og til at gøre noget godt. Den underliggende designfilosofi er at tilføje mere funktionalitet ved at tilføje et andet hjælpeprogram, der kan kobles eller kædes sammen med de eksisterende for at opnå det ønskede resultat.

Dette er så nyttigt, at Microsoft gik ud af sin måde at tilføje support til den fulde Linux-kommandolinje til Windows 10!

For eksempel bruges sorteringskommandoen af ​​andre kommandoer til at sortere tekst i alfabetisk rækkefølge. Der er ingen grund til at indbygge sorteringsevne i hver af de andre Linux-kommandoer. Generelt tillader GUI-applikationer ikke denne form for samarbejde.

Se på følgende eksempel. Dette bruger kommandoen ls til at vise filerne i den aktuelle mappe. Resultaterne overføres til sorteringskommandoen og sorteret i den femte kolonne med data (som er filstørrelsen). Den sorterede liste overføres derefter til head-kommandoen, som som standard vises de første ti linjer af dets input.

ls -l | sort -nk5,5 | head

Vi får en pæn liste over de mindste filer i den aktuelle mappe.

Ved at ændre en kommando – ved at bruge hale i stedet for head – kan vi få en liste over de ti største filer i den aktuelle mappe.

ls -l | sort -nk5,5 | tail

Dette giver os vores liste over de ti største filer, som forventet.

Outputtet fra kommandoer kan omdirigeres og fanges i filer. Det almindelige output (stdin) og fejlmeddelelser (stderr) kan fanges separat.

Kommandoer kan omfatte miljøvariabler. Følgende kommando viser indholdet af din hjemmemappe:

ls $HOME

Dette virker uanset hvor du er i mappetræet.

Hvis tanken om alt det at skrive stadig vækker dig, kan teknikker som tabulatorfuldførelse reducere mængden af ​​at skrive, du skal udføre.

  Sådan tænder du flash for det frontvendte kamera i Google Kamera

Scripts aktiverer automatisering og gentagelighed

Mennesker er tilbøjelige til at fejle.

Scripts giver dig mulighed for at standardisere på et sæt instruktioner, som du ved vil blive udført på samme måde, hver gang scriptet køres. Dette giver sammenhæng i systemvedligeholdelse. Sikkerhedstjek kan indbygges i scripts, der gør det muligt for scriptet at bestemme, om det skal fortsætte. Dette fjerner behovet for, at brugeren har tilstrækkelig viden til selv at træffe beslutningen.

Fordi du kan automatisere opgaver ved at bruge cron på Linux og andre Unix-lignende systemer, kan lange, komplicerede og gentagne opgaver forenkles eller i det mindste finde ud af en gang og derefter automatiseres for fremtiden.

PowerShell-scripts tilbyder lignende kraft på Windows, og du kan planlægge dem til at køre fra Task Scheduler. Hvorfor klikke på 50 forskellige muligheder, hver gang du konfigurerer en computer, når du kunne køre en kommando, der automatisk ændrer alt?

Det bedste fra begge verdener

For at få det bedste ud af Linux – eller et hvilket som helst operativsystem som superbruger – skal du virkelig bruge CLI og GUI.

GUI’en er uovertruffen til brug af applikationer. Selv hårde kommandolinjefortalere er nødt til at komme ud af terminalvinduet og bruge kontorproduktivitetspakker, udviklingsmiljøer og grafiske manipulationsprogrammer nu og igen.

Kommandolinjeafhængige hader ikke GUI. De foretrækker blot fordelene ved at bruge CLI – til de relevante opgaver. For administration vinder CLI uden tvivl. Du kan bruge CLI til at foretage ændringer i en fil, en mappe, et udvalg af filer og mapper eller helt globale ændringer med lige stor indsats. At prøve at gøre dette med GUI kræver ofte langvarige og gentagne tastatur- og mushandlinger, efterhånden som antallet af berørte objekter stiger.

Kommandolinjen giver dig den højeste troskab. Hver mulighed for hver kommando er tilgængelig for dig. Og mange af Linux-kommandoerne har mange muligheder. For blot at tage ét eksempel, overvej lsof-kommandoen. Tag et kig på den man-side og overvej derefter, hvordan du vil pakke det ind i en GUI.

Der er for mange muligheder til at præsentere for brugeren i en effektiv GUI. Det ville være overvældende, uattraktivt og klodset at bruge. Og det er det stik modsatte af, hvad en GUI sigter efter at være.

Det er heste til kurser. Vig ikke tilbage fra CLI-hesten. Det er ofte den hurtigere og mere adrætte hingst. Tjen dine sporer, og du vil aldrig fortryde det.