Opdrachtregels: waarom doen mensen er nog steeds moeite mee?

Opdrachtregels: waarom doen mensen er nog steeds moeite mee?
Fatmawati Achmad Zaenuri/Shutterstock.com

De opdrachtregel is bijna 50 jaar oud, maar niet verouderd. Op tekst gebaseerde terminals zijn nog steeds de beste manier om veel taken uit te voeren, zelfs in het tijdperk van grafische desktops en gadgets met aanraakschermen.

In feite wordt de opdrachtregel meer dan ooit gerespecteerd nu Microsoft een krachtige nieuwe Windows Terminal-toepassing heeft gemaakt. De PowerShell-omgeving van Windows 10 is verrassend krachtig, maar Microsoft deed nog steeds zijn best om ondersteuning voor in principe de volledige Linux-opdrachtregelomgeving toe te voegen aan Windows 10.

De opdrachtregel was ooit de enige optie

Als je ooit met een computer wilde communiceren, typte je. Dat was het. Er was niets anders. Dat klinkt misschien beperkend en archaïsch, maar als een opstapje van het gebruik van ponskaarten of geperforeerde papieren tapes, was typen radicaal en transformerend. En de migratie van teletypewriters met hun rollen papier naar terminals met kathodestraalbuis (CRT)-schermen was een andere grondverschuiving in menselijke en computerinteracties.

Die stap maakte de weg vrij om de interactieve schil echt tot zijn recht te laten komen. Nu kun je instructies naar de computer sturen en heel snel antwoorden op je scherm krijgen. Geen klak-klak-klak meer terwijl u wachtte tot uw papieren afdruk kletterend uit uw teletypemachine kwam.

Klopt, maar dat was toen, dit is nu. Computeren is een heel ander balspel. Afgezien van de voor de hand liggende vergrendelde gevallen, zoals het gebruik van een computer waarop geen grafische desktopomgeving is geïnstalleerd, of het gebruik van een externe computer via SSH via een verbinding met lage bandbreedte, of het besturen van een headless of embedded systeem, waarom zou u dan de opdrachtregel gebruiken via een grafisch bureaublad?

Jargon uitgelegd

Termen als opdrachtregel, terminalvenster en shell worden door sommige mensen bijna door elkaar gebruikt. Dat is onjuist jargon. Ze zijn allemaal heel verschillend. Ze zijn verwant, maar ze zijn niet hetzelfde.

EEN terminalvenster is een venster in een grafische desktopomgeving waarop een emulatie van een teletype-terminal wordt uitgevoerd.

De schelp is het programma dat in het terminalvenster wordt uitgevoerd. Het vraagt ​​uw invoer en probeert, afhankelijk van wat u hebt getypt, de instructies zelf te interpreteren en uit te voeren, ze door te geven aan enkele van de andere hulpprogramma’s die deel uitmaken van het besturingssysteem, of een script of programma te vinden dat overeenkomt met wat u hebt getypt.

De opdrachtregel is waar je typt. Het is de prompt die de shell presenteert wanneer hij wacht op u om enkele instructies in te voeren. De term “opdrachtregel” wordt ook gebruikt om te verwijzen naar de daadwerkelijke inhoud van wat u hebt getypt. Als u bijvoorbeeld met een andere computergebruiker praat over een probleem dat u had om een ​​programma te laten draaien, kunnen ze u vragen: “Welke opdrachtregel heeft u gebruikt?” Ze vragen niet welke shell je gebruikte; ze willen weten welk commando je hebt getypt.

Al met al vormen deze samen de opdrachtregelinterface (CLI).

Waarom de opdrachtregel gebruiken in 2019?

De CLI kan retrograde en verwarrend lijken voor degenen die er niet bekend mee zijn. Er is toch geen plaats in een modern besturingssysteem voor zo’n ouderwetse en geeky manier van computergebruik? Hebben we dat niet al decennia geleden opgegeven toen vensters, pictogrammen en muizen verschenen en grafische desktopomgevingen met grafische gebruikersinterfaces (GUI’s) beschikbaar kwamen?

Ja, de GUI bestaat al tientallen jaren. De eerste versie van Microsoft Windows werd al in 1985 uitgebracht en werd de pc-desktopnorm met de release van Windows 3.0 in 1990.

Het X Window-systeem, gebruikt in Unix en Linux, werd in 1984 geïntroduceerd. Dit bracht grafische desktopomgevingen naar Unix en zijn vele afgeleiden, klonen en uitlopers.

Maar de release van Unix dateert van vóór deze gebeurtenissen met meer dan een decennium. En omdat het niet anders kon, moest alles via de commandline kunnen. Alle menselijke interactie, alle configuratie, elk gebruik van de computer moest via het eenvoudige toetsenbord kunnen worden uitgevoerd.

Dus, ipso facto, de CLI kan alles. Een GUI kan nog steeds niet alles doen wat de CLI kan. En zelfs voor de onderdelen die het kan doen, is de CLI meestal sneller, flexibeler, kan worden gescript en is schaalbaar.

En er is een standaard.

Ze zijn gestandaardiseerd dankzij POSIX

POSIX is een standaard voor Unix-achtige besturingssystemen – eigenlijk alles wat geen Windows is. En zelfs Windows heeft het Windows-subsysteem voor Linux (WSL.) Open een terminalvenster op elk POSIX-compatibel (of bijna compatibel) besturingssysteem en u bevindt zich in een shell. Zelfs als de shell of distributie hun eigen extensies en verbeteringen biedt, zolang ze de belangrijkste POSIX-functionaliteit bieden, kunt u deze meteen gebruiken. En uw scripts worden uitgevoerd.

De opdrachtregel is de kleinste gemene deler. Leer hoe u het moet gebruiken en, ongeacht de Linux-distributie en grafische desktopomgeving, kunt u alle taken uitvoeren die u nodig hebt. Verschillende desktops hebben hun eigen manier om dingen te doen. Verschillende Linux-distributies bundelen verschillende hulpprogramma’s en programma’s.

Maar open een terminalvenster en u zult zich thuis voelen.

Opdrachten zijn ontworpen om samen te werken

Elk van de Linux-commando’s is ontworpen om een ​​bepaald iets te doen en om dat iets goed te doen. De onderliggende ontwerpfilosofie is om meer functionaliteit toe te voegen door een ander hulpprogramma toe te voegen dat kan worden doorgesluisd of gekoppeld aan de bestaande om het gewenste resultaat te bereiken.

Dit is zo handig dat Microsoft zijn best deed om ondersteuning voor de volledige Linux-opdrachtregel toe te voegen aan Windows 10!

Bijvoorbeeld de sort opdracht wordt door andere opdrachten gebruikt om tekst in alfabetische volgorde te sorteren. Het is niet nodig om sorteermogelijkheden in te bouwen in elk van de andere Linux-commando’s. Over het algemeen staan ​​GUI-applicaties dit soort collaboratieve interworking niet toe.

Kijk naar het volgende voorbeeld. Dit maakt gebruik van de ls commando om de bestanden in de huidige map weer te geven. De resultaten worden doorgesluisd naar de sort commando en gesorteerd op de vijfde kolom met gegevens (dat is de bestandsgrootte). De gesorteerde lijst wordt vervolgens doorgesluisd naar de head commando dat standaard de eerste tien regels van zijn invoer weergeeft.

ls -l | sort -nk5,5 | head

We krijgen een nette lijst van de kleinste bestanden in de huidige map.

lijst van de tien kleinste bestanden in de huidige map

Door één commando te veranderen – met tail in plaats van head— we kunnen een lijst krijgen van de tien grootste bestanden in de huidige map.

ls -l | sort -nk5,5 | tail

Dit geeft ons onze lijst met de tien grootste bestanden, zoals verwacht.

lijst van de tien grootste bestanden in de huidige map

De uitvoer van opdrachten kan worden omgeleid en vastgelegd in bestanden. De reguliere uitvoer (stdin) en foutmeldingen (stderr) afzonderlijk kunnen worden vastgelegd.

Opdrachten kunnen omgevingsvariabelen bevatten. De volgende opdracht geeft de inhoud van uw thuismap weer:

ls $HOME

Dit werkt waar u zich ook bevindt in de directorystructuur.

lijst van homedirectory in het terminalvenster

Als het idee van al dat typen je nog steeds irriteert, kunnen technieken zoals het invullen van tabbladen de hoeveelheid typen die je moet doen verminderen.

Scripts maken automatisering en herhaalbaarheid mogelijk

Mensen zijn gevoelig voor fouten.

Met scripts kunt u standaardiseren op een set instructies waarvan u weet dat ze elke keer dat het script wordt uitgevoerd op dezelfde manier worden uitgevoerd. Dit zorgt voor consistentie in systeemonderhoud. In de scripts kunnen veiligheidscontroles worden ingebouwd waarmee het script kan bepalen of het moet doorgaan. Hierdoor hoeft de gebruiker niet over voldoende kennis te beschikken om zelf de beslissing te nemen.

Omdat u taken kunt automatiseren door gebruik te maken van cron op Linux en andere Unix-achtige systemen kunnen lange, gecompliceerde en repetitieve taken worden vereenvoudigd of op zijn minst één keer worden bedacht en vervolgens worden geautomatiseerd voor de toekomst.

PowerShell-scripts bieden vergelijkbare kracht op Windows en u kunt ze plannen om te worden uitgevoerd vanuit de Taakplanner. Waarom zou u elke keer dat u een computer instelt op 50 verschillende opties klikken als u een opdracht zou kunnen uitvoeren die alles automatisch verandert?

Het beste van beide werelden

Om het beste uit Linux – of een besturingssysteem als hoofdgebruiker – te halen, moet je echt de CLI . gebruiken en de GUI.

De GUI is onovertroffen voor het gebruik van applicaties. Zelfs die-hard voorstanders van de opdrachtregel moeten uit het terminalvenster komen en zo nu en dan kantoorproductiviteitssuites, ontwikkelomgevingen en grafische manipulatieprogramma’s gebruiken.

Commandoregelverslaafden hebben geen hekel aan de GUI. Ze geven gewoon de voorkeur aan de voordelen van het gebruik van de CLI – voor de juiste taken. Voor administratie wint de CLI zonder meer. U kunt de CLI gebruiken om met evenveel moeite wijzigingen aan te brengen in één bestand, één map, een selectie van bestanden en mappen of volledig globale wijzigingen aan te brengen. Om dit met de GUI te doen, zijn vaak langdradige en repetitieve toetsenbord- en muisacties nodig naarmate het aantal aangetaste objecten toeneemt.

De opdrachtregel geeft u de hoogste betrouwbaarheid. Elke optie van elke opdracht is voor u beschikbaar. En veel van de Linux-opdrachten hebben veel opties. Om maar één voorbeeld te noemen, overweeg de lsof opdracht. Kijk eens naar de man-pagina en bedenk dan hoe je dat in een GUI zou kunnen inpakken.

Er zijn te veel opties om aan de gebruiker te presenteren in een effectieve GUI. Het zou overweldigend, onaantrekkelijk en onhandig zijn om te gebruiken. En dat is het tegenovergestelde van wat een GUI wil zijn.

Het zijn paarden voor cursussen. Wees niet bang voor het CLI-paard. Het is vaak het snellere en wendbare ros. Verdien je sporen en je zult er nooit spijt van krijgen.

Nieuwste artikelen

Gerelateerde artikelen