Een introductie tot de Commando-regel.

De Linux commando-regel (in kort vaak CLI genoemd, naar het Engelse CommandLine-Interface) is enorm krachtig en het is vaak efficiënter en sneller dan de Grafische Interface (GUI van Graphical User Interface).

Om onze nieuwe Linux gebruikers te helpen met het leren werken met deze CLI (zoals we deze in het vervolg gaan noemen) hebben we besloten om een wekelijkse rubriek getiteld "CLI Tool van de Week" te beginnen, zoals de naam al doet vermoeden gaat het hier om een wekelijks artikel dat een bepaald gereedschap van de CLI uitlegt.

Gebruikte conventies in dit boek

Zoals in de meeste technische handboeken voor computergebruikers gebruiken we in dit boek enkele conventies die duidelijk maken wat je moet intypen en wat er op het scherm kan verschijnen:

Output die op het scherm weergegeven kan worden en de inhoud van bijv. een script
Een "codeblock" bevat gegevens die je bijv. een een bestand of script moet toevoegen of aanpassen

Programma namen en commando's worden zo weergegeven. Als er een $ of # voor staat is het een commando 1 (bijv.) het programma firefox of het commando: $ firefox https://www.linuxgebruikers.nl

Bestanden en Directory's worden zo weergegeven. (bijv. /usr/bin/bash).

Opmerking:
  • een commando wordt altijd vooraf gegaan door 1 van de 2 volgende tekens $ of # dit moet je niet intypen, dit geeft enkel aan dat je het commando als gewone gebruiker ($-teken, of als root (#-teken) moet uitvoeren.
  • bijvoorbeeld: $ sudo apt update

Belangrijke opmerkingen worden als volgt weergegeven:

Opmerking:
  • Een notie met bijkomende informatie
Waarschuwing:
  • Een belangrijke mededeling
Let op!:
  • Let op, dit kan schadelijke gevolgen hebben (zoals rm -rf /)
Tip:
  • Een handige Tip of Trick

Soms kan er ook een voorbeeld zijn

/etc/apt/sources.list


    deb http://deb.debian.org/debian/ stretch main
    deb-src http://deb.debian.org/debian/ stretch main
    deb http://security.debian.org/debian-security stretch/updates main
    deb-src http://security.debian.org/debian-security stretch/updates main
    #stretch-updates, previously known as 'volatile'
    deb http://deb.debian.org/debian/ stretch-updates main
    deb-src http://deb.debian.org/debian/ stretch-updates main

Laten we nu het verschil tussen $ en # eens nader bekijken, en de werking van sudo tonen.

Commando's en hun uitvoer op het beeldscherm:


# apt update 
Ign:1 http://deb.debian.org/debian stretch InRelease 
Hit:2 http://deb.debian.org/debian stretch-updates InRelease 
Hit:3 http://deb.debian.org/debian stretch Release 
Hit:4 http://security.debian.org/debian-security stretch/updates InRelease 
Reading package lists... Done 
Building dependency tree 
Reading state information... Done 
All packages are up to date.            
        

In de box hierboven zien we dat we als "root" gebruiker # het commando "apt update" kunnen uitvoeren, en het commando sudo (afkorting van Super User DO) niet moeten gebruiken.

Als we dit als "gewone" gebruiker willen doen krijgen we een foutmelding:

$ apt update 
Reading package lists... Done 
W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operation not permitted)
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied) 
E: Unable to lock directory /var/lib/apt/lists/ 
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied) 
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)                
            

Let dus bij het gebruiken van commando's in de CLI op met welke gebruiker je de commando's moet uitvoeren. De ideale werkwijze is om het root account en het gebruik van sudo te beperken. Als je met sudo of als "root" het verkeerde commando ingeeft is het heel gemakkelijk om het systeem dusdanig te beschadigen dat een her-installatie nodig is.

Linux heeft verschillende manieren om de CLI te kunnen gebruiken, de twee meest gebruikt zijn de :
  • Virtual Consoles (te bekomen door CTRL+ALT+Fn (F1 t.e.m. F7) ook tty0 t.e.m. tty7 (tty7 is meestal de GUI waarin Linux opstart)
  • Terminal Emulators (afhangelijk van de DE die je gebruikt, maar als je in het menu zoek op Terminal kom je er wel een of meer tegen).
1 (tenzij ik vergeten ben om dit erbij te zetten ;-))