nl en de fi id nl nl nl nl nl en en nl nl en en nl nl nl en en nl en en nl nl en en nl it nl nl nl en en nl nl nl fi en nl ru en en en nl nds nl en nl nl nl nl nl en en nl nl nl da en nl nl nl it en en nl fr eu nl de nl nl en nds nl nl nl nl nl pt nl nl en nl nl nl nl en nl en nl nl en nl nl en nl nl en nl en nl nl en nl en en nl nl nl nl nl en nl nl en nl en nl pt nl nl nl nb nl fr en nl nl nl nl de nl nl nl nl nl nl nl nl nl nl sv it nl nl nl nl en nl en nl nl en en nl nl en en nl nl nb nl nl nl en nl ru nl nl nl hbs_lat nl nl nl nl nl nl en bn nl nl nl en nl nl ru nl nl nl nl nl nl nl en en nl fr nl nl ht nl en nl nl nl en nb nl nl nb nl nl en nl nl nl en nl nl en nl en nl nl nl en nl nl nl nl nl nl en nl nl nl nl nl nl nl en en nl nl nl en nl fr nl nl nl en nl nl nl nl nl es nl nl pl nl nl nl pl nl nl fr nl nl nl nl nl nl nl nl en nl nl nl en nl en nl nl nl en en nl nl nl en nl nl en nl nl nl en zh nl nl nl nl nl nl nl nl ru nl nl nl en nl fr nl nl en nl nl nl nl nl nl en nl nl nl nl nl nl nl nl nl nl nl nl nl it nl nl nl en nl nl nl en nl nl nl en nl nl nl en fr nl nl nl nl en en nl kn nl en en nl nl nl en nl nl nl en nl nl nl en nl en nl nl nl en nl de nl nl nl en nl fi en fr nl fr en nl nl nl en nl en nl nl nl nl nl nl ru nl nl en nl nl nl en nl nl en nl ru nl nl nl nl nl nl nl nl nl en nl nl nl nl en en nl cs nl nl nl nl en ilo nl nl pl nl nl nl nl en nl nl nl nl nl nl nl nl nl nl nl ru nl nl en nl nl en nl en nl nl nl nl nl nl nl nl nl en nl nl nb nl nl nl tr nl nl en nl nl nl nl nl nl pt nl nl en nb nl nl nl nl en nl lt nl nl lt de nl nl nl en nl de nl en nl en nl nl en nl en en fr nl nl nl en nl en nl nl af nl nl en nl nl nl en nl es nl nl nl nl nl en nl nl en nl nl pl nl nl nl nl nl en nl nl nl en nl nl nl nl en nl en en nl nl hbs_lat en nl en nl jv nl nl af nl nl jv en en en en en en nl nl nl ga nl nl nl nl nl nl nl en en nl nl nl af nl nl nl en nl nl it nl nl nl af nl en nl nl en nl en nl pt nl nl nl fr nl nl hbs_lat nl en nl nl nl en nl nl en nl fa nl nl nl nl nl nl ta nl kn nl hu nl nl nl fr nl nl nl en nl nl nl af nl nl en nl nl nl nl nl en it nl nl nl nl nl nl nl nl nl it nl it nl nl nl fr nl hi nl nl nl af nl nl en nl nl hi nl nl el nl nl en nl en nl nl nl nl en nl nb nl nl nl nl nl es nl nl en en nl nl nl fr nl nl en nl nl en nl en en nl nl nl en nl nl nl en nl en nl nl en nl fr nl nl fr nl nl nl en en ru nl fr nl nl en nl tr nl pt nl nl nl ro nl nl en nl nl fr nl nl hbs_lat nl ceb nl nl nl hbs_lat nl nl nl id nl nl en it nl nl nl en en nl nl en sv nl nl nl en nl en nl sv nl nl nl en nl en nl nl en nl en nl nl nl en nl fr nl nl en nl en nl nl en nl nl nl en nl nds nl nl nl en nl pl nl ms nl nl en nl zh nl nl nl nl de nl nl nl nl it nl nl nl en nl nl nl nl nl nl nl hbs_lat nl nl nl nl nl en nl nl nl nl nl nl fr nl ja nl de fr nl en nl nl en nl en nl nl nl en nl nl en en nl nl nl nl en en nl nl nl nb nl nl en nl nl nl ja nl nl nl ca nl nl nl hbs_lat nl ca nl hi nl nl nl nb nl nl lt nl nl hbs_lat nl nl en nl nl nl en nl fr nl nl nl en nl nl fi nl zh nl en nl nl en nl nl nl en nl nl en nl ja nl fi nl nl nl en en nl en en it nl nl zh ru nl nl nl hbs_lat nl nl nl nl nl nl nl nl da nl en nl en nl nl nl en nl nl nl nl en nl nl nl en nl nl en nl nl nl en nl nl en nl nl nl en nl en nl fr eo nl nl en nl it eo nl nl en nl nl hbs_lat nl hbs_lat tr nl nl nl en nl nl nl nl en nl it nl nl nl it nl nl nl en nl nl nl en nl nds sv nl nl nl en nl nl nl nl ro nl fa nl nl nl en nl nl nl en nl nl nl en nl nl nl en nl en nl en en de nl en en nl nl es nl nl nl en nl nl nl nl nl nl nb nl de nb nl en nl en nl nl nb nl nb nl en de en nl en nl ca nl nl nl en nl nl nl en nl nl nl en nl nl nl nl nl en nl en en nl nl en nl nl nl nl en nl nl nl en nl en nl en nl en nl en nl en nl en nl en en nl nl nl nl fr nl en nl nl de nl nl nl en nl nl nl en nl nl en nl nl en en nl en nl nl en nl zh nds nl nl en nl nl en nl en nl nl nl nl en nl nl nl nl nl nl nl nl nl nl nl nl ja nl nl nl fr nl nl nl nl nl nl nl nl nl nl nl nl nl nl ru nl nl nl nl fr nl nl nl de nl nl tr nl nl nl de nl nl nl nl en nl en de nl nl en nl nl nl he nl nl fr nl en en en nl en nl en nl nl nl en nl nl en nl nl nl en nl nl nl en nl nl en nl en ceb nl nl nl hbs_lat nl vi nl en nl en fr nl nl nl fr nl nl en nl nl it nl en nl en nl nl nl nl nl nl ast nl en nl nl nl nl en nl ca nl nl tr nl en nl en nl nl nl en uk nl nl nl nl nl en nl nl nl en nl nl nl mk nl nl nl nl en nl fi nl nl nl ta nl nl da nl nl fi nl nl en nl et nl nl nl en nl nl nl en nl nl en en nl nl nl nl nl nl nds nl nl nl en nl nl nl en nl nl nl en nl fr nl es nl fr nl nl en nl nl nl en nl nl nl en de nl nl nl nl nl nl en nl nl jbo nl nl nl en nl nl en nl nl nl nl en nl fr en nl it pl en it de en nl en en nl en en en de es en en fr en en en nl en nl en nl
Domeinnaam Je adres op internet met extensies als .nl & .com. Mail Professioneel e-mailen met je eigen domein – veilig en reclamevrij. Mailarchivering Automatische en veilige archivering voor je bedrijf.
SSL-certificaten Bescherm je website optimaal dankzij versleuteling Microsoft 365 Je documenten altijd bij de hand met Office 365.
Websites voor beginners en professionals.
Sitebuilder Perfect voor beginners: zonder voorkennis je eigen website. Webshop Snel en professioneel online verkopen.
Snel, veilig en krachtig: hosting & WordPress van professionals voor professionals.
WordPress hosting In een handomdraai je eigen, veilige WordPress site. Hosting Perfect voor professionele en supersnelle websites. Hosting Mini Ons mini-hostingpakket – voor een mini-prijs.
WooCommerce Je eigen webshop maken met WordPress
Monitor het succes en verbeter de performance van je website
STRATO marketingRadar Het perfecte starterspakket voor online marketing. STRATO rankingCoach Snel en simpel een toppositie in zoekmachines als Google. STRATO listingCoach Verschijn met één klik in de belangrijkste online directory's.
STRATO adCoach Maak en beheer eenvoudig Google Ads-campagnes.
Sneller gaat niet: 100% merk-hardware voor virtual en dedicated systemen.
VPS Linux Krachtige Linux VPS met SSD-power & Plesk. VPS Windows VPS met véél RAM & Windows Datacenter-licentie. Cyber Protect Veiligheid dankzij professionele back-ups & anti-malware
Dedicated Server Linux Eigen hardware met root-rechten – voor veeleisende hosting. Dedicated Server Windows Merk-hardware met Administrator-toegang. ServerCloud Flexibele, schaalbare servers in de cloud.
Bestanden online opslaan & automatisch back-uppen naar de Europese cloud.
HiDrive Sla je bestanden op in de Europese cloud. HiDrive Business Veilig teamwork met je online harde schijf. HiDrive S3 De object storage voor je bedrijfsdata.
Een overzicht van de belangrijkste
Eerder maakten we al een handig overzicht over de verschillen tussen Linux en Windows. In dit artikel focussen we volledig op Linux. Zoals de meeste moderne besturingssystemen biedt ook Linux twee interfaces voor de invoer door gebruikers. Alle instellingen die via de grafische gebruikersinterface (Graphical User Interface, GUI) worden geconfigureerd, kunnen ook via de zogenaamde shell worden ingevoerd in de vorm van opdrachtregels.
De shell is een programma dat fungeert als interface tussen systeem en gebruiker. Het omvat een opdrachtregelinterpreter (ook terminal emulator genoemd) die gebruikersinvoer via het toetsenbord ontvangt, deze uitleest, eventueel programma's start en vervolgens output in de vorm van tekstuitvoer teruggeeft aan de gebruiker. Daarnaast heeft iedere shell een eigen programmeertaal, waarmee shellscripts kunnen worden geschreven, bijvoorbeeld om programma-aanvragen te koppelen en administratieve taken te vereenvoudigen.
Iedere shell draait in een terminal. Aan het begin van het computertijdperk werden daarvoor zelfstandige apparaten, zogenaamde hardcopyterminals (printer of beeldscherm plus toetsenbord) gebruikt. Deze werden op moderne computers vervangen doorterminalemulators. Dit zijn programma's die gebruikers een grafisch venster bieden voor de interactie met de shell.
Zodra je de terminal van je besturingssysteem opent, start deze de in de instellingen vastgelegde standaard shell (bijvoorbeeld de Bourne again shell, Bash) en kan deze invoer ontvangen in de zogenaamde prompt. Hieronder tonen we hoe dat er uit ziet in Ubuntu:
De Bash onder Ubuntu: de prompt geeft de gebruikersnaam en hostnaam weer
In de loop der tijd werden er diverse shells ontwikkeld voor Unix-achtige besturingssystemen, die verschillen qua functie-omvang en gebruiksvriendelijkheid. Als Linux-gebruiker heb je dus de keuze welke terminal emulator je gebruikt. Op de meeste besturingssystemen zijn standaard al meerdere shells geïnstalleerd. Vanuit de terminal kan eenvoudig van de ene shell naar de andere worden gewisseld (zie chsh in het hoofdstuk User-account-management). Naast de standaardprogramma's Bash en Dash behoren de Fish, de Z-Shell, de KornShell, de (t)csh en de Mksh tot de bekendste shells.
De interactie met de shell vindt in de regel plaats door middel van commando's, waarmee gelijknamige opdrachtregelprogramma's kunnen worden geopend. Voor iedere actie die je via de linux-terminal wilt uitvoeren, open je een programma volgens het volgende basisschema:
Een programma wordt via de terminal in Linux geopend met de naam van het programma. De meeste programma's bieden de mogelijkheid om bepaalde programmafuncties te openen via Opties. Als een programma argumenten verwacht, bijvoorbeeld in de vorm van bestanden of paden, worden deze normaal gesproken weergegeven op basis van de geselecteerde opties.
Hieronder bieden we je een overzicht van de meest gebruikte Linux-commando’s en de bijbehorende opdrachtregelprogramma's.
In de categorie basisopdrachten vind je essentiële Linux-commando's, waarmee je de terminal aanstuurt. Leer hier hoe je de terminal leegmaakt, eerdere terminalinvoer uit de historie opvraagt of de terminalsessie afsluit.
Gebruik het opdrachtregelcommando clear om de beeldscherminhoud te wissen.
Je krijgt een lege terminal met prompt. Oudere invoer blijft behouden in de scrollback-buffer.
Behalve via dit commando kan de terminal ook worden leeggemaakt via de toetsencombinatie [CTRL] + [L].
Het opdrachtregelcommando exit sluit de actuele sessie af en sluit de terminal.
Je kunt ook de toetsencombinatie [CTRL] + [D] gebruiken.
Lijst van alle shell-commando’s weergeven
Gebruik het commando help om een lijst weer te geven van alle geïntegreerde shell-commando's (built-in-commando's).
Open help in combinatie met een shell-commando om een korte beschrijving van het betreffende commando te tonen.
Invoer van het history-bestand weergeven
In de Bash worden de laatste 500 commando's die je via de opdrachtregel hebt ingevoerd, opgeslagen in de zogenaamde history.
Deze functie is bedoeld als invoerhulp, waarmee je een lijst van eerdere commando's met de pijltoetsen kunt doorzoeken en met enter opnieuw kunt uitvoeren.
De history kan worden doorzocht op trefwoorden met de toetsencombinatie [CTRL] + [R]. Je kunt de complete lijst ook genummerd weergeven in de terminal.
Gebruik hiervoor het commando history zonder opties en argumenten.
Als je de uitvoer wilt filteren, combineer je history via het pipe-teken (|) met het opdrachtregelprogramma grep (zie zoekopties) en een zoekwoord.
Weet je het even niet meer? Geen probleem. In Linux heb je via de terminal direct de beschikking over diverse help- en documentatiepagina's, zoals de Unix-manpages en de GNU-infopagina's. Deze omvatten een gedetailleerde beschrijving van alle opdrachtregelprogramma's, systeemaanvragen, configuratiebestanden, bestandsformaten en kernelfuncties. Met whatis en apropos vind je in de categorie helppagina's bovendien opdrachtregelprogramma's waarmee je de gebruiksaanwijzingspagina's van je besturingssysteem kunt doorzoeken op trefwoorden.
Gebruik apropos om de paginatitels en beschrijvingen van de gebruiksaanwijzingspagina's van je besturingssysteem te doorzoeken op trefwoorden. Het opdrachtregelprogramma geeft je alle overeenkomsten inclusief korte beschrijving weer in de terminal.
Gebruik hiervoor het volgende schema:
Het commando ondersteunt verschillende opties. Baken de zoekopdracht met de optie -e (--exact) af tot exacte overeenkomsten of gebruik de plaatshouder (-w '*ZOEKTERM') en reguliere expressies (-r).
Met het commando info kun je de GNU-informatiepagina's voor een bepaald onderwerp openen. Deze komen in de meeste gevallen overeen met de gebruiksaanwijzingspagina's, die je kunt openen via man, maar bevatten ook links waarmee je eenvoudiger kunt navigeren in de gebruiksaanwijzing.
Gebruik de volgende syntaxis om een GNU-infopagina te openen:
Een commando zonder optie en onderwerp leid je naar het hoofdmenu van de GNU-infopagina's.
Het commando man opent de gebruiksaanwijzingspagina's (man-pages) van je Linux-systeem direct in de terminal.
Gebruik het volgende schema om een gebruiksaanwijzingspagina te openen:
De Linux man-pages zijn ingedeeld in 10 thema’s:
(3) Functies van de programmeertaal C
Als je bijvoorbeeld de gebruiksaanwijzingspagina bij een bepaald Linux-commando wilt openen, gebruik je man in combinatie met de naam van het commando.
Je kunt de zoekopdracht ook beperken door het nummer van het thema te vermelden:
In beide gevallen wordt de gebruiksaanwijzingspagina bij het opdrachtregelcommando clear geopend. Gebruik de toets [Q] om deze te sluiten en terug te keren naar de prompt in de terminal.
Met het commando apropos kunnen de Linux-gebruiksaanwijzingspagina's worden doorzocht op trefwoorden.
Met pinfo beschik je over een variant van het opdrachtregelprogramma info, dat gebaseerd is op de opdrachtregelbrowser Lynx en je infopagina's toont met in kleuren weergegeven links.
Gebruik pinfo volgens hetzelfde schema als het info-commando.
Met het opdrachtregelprogramma whatis kunnen de gebruiksaanwijzingspagina's worden doorzocht op trefwoorden. Open het programma met een willekeurige zoekterm om de gebruiksaanwijzing van je besturingssysteem te doorzoeken op exacte treffers. Als er een overeenkomst is, geeft whatis een korte beschrijving weer in de terminal.
Ook whatis (-w '*ZOEKTERM') ondersteunt plaatshouders en reguliere expressies (-r).
Linux-commando's voor mappenacties gebruik je om via de terminal mappen op je systeem aan te maken, te verwijderen, te beheren en doorheen de mappenstructuur te navigeren. Enkele van de belangrijkste opdrachtregelcommando's uit deze categorie zijn cd, ls, mkdir, rmdir.
Het opdrachtregelcommando cd staat voor change directory en is bedoeld om te navigeren door de mappenstructuur.
De syntaxis van het commando luidt:
Als er geen doelmap wordt aangegeven, ga je met cd automatisch naar de home-map van de gebruiker.
Als cd wordt gebruikt met een minusteken (-) erachter, spring je naar de vorige map.
Programma uitvoeren in een nieuwe rootmap
Het commando chroot (kort voor: change root) wordt gebruikt om een commando in een andere rootmap uit te voeren. Het commando chroot kan bijvoorbeeld worden toegepast om problematische programma's te isoleren van het overige bestandssysteem. Men spreekt in dit geval van een chroot jail.
Om dit programma te openen, zijn rootrechten vereist en dient het volgende schema te worden gevolgd:
Het opdrachtregelcommando ls staat voor list en wordt gebruikt om de inhoud van een map (de namen van alle bestanden en mappen die zich in de aangegeven map bevinden) weer te geven.
De syntaxis van het commando luidt:
Als ls wordt gebruikt zonder mapaanduiding wordt met dit commando de inhoud van de huidige map weergegeven.
Met behulp van extra opties bepaal je welke gegevens worden weergegeven en hoe deze worden getoond.
Het opdrachtregelcommando mkdir staat voor make directory en stelt Linux-gebruikers in staat om nieuwe mappen aan te maken.
Gebruik de volgende syntaxis om in de huidige map een nieuwe map aan te maken:
Indien gewenst kun je meerdere mappen tegelijk aanmaken door hun namen achter elkaar in te voeren met een spatie ertussen:
Als een map in een bepaalde doelmap dient te worden aangemaakt, voer je het absolute of relatieve pad naar de map in.
Bij beide voorbeelden wordt de map test aangemaakt in de map desktop.
Met mkdirhier kun je met één enkel opdrachtregelcommando complete mappenstructuren aanmaken:
Als map1 en map2 al bestaan, maakt mkdirhier alleen map3 aan. Anders worden alle drie de mappen aangemaakt.
Gebruik pwd (kort voor print working directory) om de naam van de huidige werkmap weer te geven.
De syntaxis van het commando luidt:
Als je een bepaalde map wilt verwijderen, gebruik je het opdrachtregelcommando rmdir (remove directory) volgens deze syntaxis:
Met rmdir kunnen alleen lege mappen worden verwijderd. Om een map inclusief alle bestanden en submappen te verwijderen, gebruik je het commando rm (remove) met de optie -r.
Let op: rmdir verlangt geen bevestiging van de verwijdering. De geselecteerde mappen worden onherroepelijk verwijderd.
Mappen weergeven in de boomstructuur
Terwijl ls alleen de inhoud van mappen weergeeft, kan met het opdrachtregelcommando tree de complete mappenstructuur recursief worden weergegeven als boomstructuur.
Dit doe je met de volgende syntaxis:
Met Linux-commando's uit deze rubriek kun je diverse bestandsacties uitvoeren vanuit de terminal. Gebruik essentiële Linux-commando's zoals cp, mv en rm om bestanden in je systeem te kopiëren, te verplaatsen, te hernoemen of te verwijderen.
Aan het opdrachtregelcommando basename wordt een bestandspad toegevoegd; het geeft alleen de bestandsnaam zonder voorafgaand pad terug.
De syntaxis van het commando luidt:
De aanvullende vermelding van het suffix verwijdert dit ook uit de uitvoer.
Het commando kan door opties worden uitgebreid naar meerdere bestanden.
Het opdrachtregelprogramma cat (kort voor: concatenate) werd ontwikkeld als tool voor het samenvoegen van bestandsinhouden en kan worden gebruikt als pager voor het weergeven van bestandsinhouden in de terminal.
Open cat met de volgende syntaxis in de terminal om een bestand in te lezen en weer te geven op stdout (de standaarduitvoer):
Meerdere bestanden worden gescheiden door een spatie:
cmp maakt deel uit van het diff-pakket en is ook bedoeld om bestandsinhouden te vergelijken. Anders dan bij diff vindt de vergelijking plaats op byte-niveau, waardoor deze met name geschikt is voor binaire bestanden.
Gebruik cmp volgens deze syntaxis:
Als cmp verschillen vindt, geeft het opdrachtregelprogramma byte- en regelnummer van de eerste afwijking weer in de terminal.
Op regel gesorteerde bestanden vergelijke n
Gebruik het opdrachtregelprogramma comm om gesorteerde bestanden (bijvoorbeeld via sort) per regel te vergelijken.
Het programma wordt geopend met de volgende syntaxis:
Als comm wordt ingevoerd zonder optie geeft het programma drie kolommen weer: de eerste kolom bevat alle regels die alleen in BESTAND1 voorkomen, de tweede kolom bevat alle regels die alleen in BESTAND2 voorkomen en de derde kolom bevat alle regels die in beide bestanden voorkomen.
Het programma ondersteunt drie opties:
-1 = unieke regels uit BESTAND1 onderdrukken
-3 = alle regels onderdrukken die beide bestanden bevatten
Het opdrachtregelcommando cp (copy) kan worden gebruikt om bestanden en mappen te kopiëren. De syntaxis van het commando luidt:
De BRON is het element dat moet worden gekopieerd. Als DOEL van de kopieerhandeling wordt ofwel een bestand of een map gedefinieerd. Als je een reeds bestaand bestand definieert als doelbestand wordt de inhoud ervan overschreven met die van het bronbestand. Je kunt het doelbestand ook aanmaken als nieuw bestand met een naam naar keuze.
Als er meerdere bestanden worden gekopieerd, moet het doel een map zijn. Hetzelfde geldt als er een map wordt gekopieerd.
Een bronbestand kopiëren naar een doelbestand in de huidige map:
Een bronbestand uit de huidige map kopiëren naar een doelmap:
Meerdere bronbestanden kopiëren naar een doelmap:
cp [OPTIES] BRONBESTAND1 BRONBESTAND2 DOELMAP
Een bronmap uit de huidige map kopiëren naar een doelmap:
Als mappen met alle inhoud moeten worden gekopieerd, moeten alle submappen met behulp van de OPTIE -R worden meegenomen in het kopieerproces.
Met het commando cut kun je inhoud in kolommen extraheren uit de tekstregels van een bestand (bijvoorbeeld log- of CSV-bestanden).
De syntaxis van het commando luidt:
De precieze positie van een sectie die moet worden geëxtraheerd, wordt gedefinieerd met de opties -b (bytepositie), -c (tekenpositie), -d (afbrekingsteken) en -f (veld).
Met het opdrachtregelprogramma diff kunnen twee bestanden met elkaar worden vergeleken. Ook kan via diff worden bepaald of twee mappen dezelfde bestanden bevatten.
Dit doe je in de terminal met de volgende syntaxis:
dirname is de tegenhanger van basename. Met dit opdrachtregelcommando kun je het padgedeelte uit een bestandspad extraheren en zonder bestandsnaam weergeven in de terminal.
De syntaxis van het commando luidt:
Met het opdrachtregelcommando file kunnen gegevens bij het bestandstype van een bestand worden weergegeven.
Dit doe je volgens het volgende schema:
Koppeling met bestand of map maken
Het opdrachtregelprogramma ln (kort voor link) maakt een koppeling met een bestand of een map aan. Zo wordt er nog een mapinvoer aangemaakt voor dit bestand, waarmee je via een ander bestandspad toegang kunt verkrijgen tot het betreffende bestand.
De aanvraag van het opdrachtregelprogramma ln moet ten minste het pad naar het bronbestand bevatten.
De link wordt in dit geval in de huidige werkmap aangemaakt onder dezelfde naam.
Je kunt ook een doelpad aangeven en de koppeling een willekeurige naam geven:
ln genereert in de standaardinstelling zogenaamde hardlinks. Deze zijn niet geschikt om koppelingen naar mappen aan te maken. Daarnaast kunnen hardlinks niet over partitiegrenzen heen worden gebruikt. Het commando wordt daarom vaak gebruikt met de OPTIE -s (--symbolic), waarmee de zogenaamde symbolische koppelingen ook over bestandssysteemgrenzen heen kunnen worden gegenereerd. Symbolische links verwijzen altijd naar een 'echt' bestandspad en zijn daarvan afhankelijk.
Geopende bestanden weergeven in de terminal
lsof staat voor list open files, een hulpprogramma waarmee je in de terminal gegevens kunt weergeven van geopende bestanden gesorteerd op PID (proces-ID).
Dit doe je volgens het volgende schema:
Omdat Unix-achtige systemen zoals Linux zijn gebaseerd op het principe 'Everything is a file' (Alles is een bestand), is de lijst die lsof weergeeft zeer lang. In de regel worden er daarom opties gebruikt om de weergave te beperken.
Met behulp van het opdrachtregelcommando md5sum kunnen MD5-checksums voor bestanden worden berekend en gecontroleerd.
Het opdrachtregelprogramma mv (move) kopieert een bestand of map en verwijdert het oorspronkelijke element. Als dit binnen dezelfde map gebeurt, kan mv worden gebruikt om de bestanden te hernoemen.
Het programma wordt geopend met het volgende schema:
Een bestand is verplaatst naar een andere map:
Meerdere bronbestanden naar een doelmap verplaatsen:
mv [OPTIES] BRONBESTAND1 BRONBESTAND2 DOELMAP
Een submap uit de huidige map naar een doelmap verplaatsen:
Bestand in huidige map hernoemen:
Submap in huidige map hernoemen:
Bestandsinhouden per kolom samenvoegen
Net als met cat kan ook met het opdrachtregelprogramma paste bestandsinhoud worden weergegeven in de standaarduitvoer. Maar waar cat inhoud enkel bij elkaar voegt, koppelt paste deze per kolom.
Het basisschema van het commando luidt:
paste [OPTIES] BESTAND1 BESTAND2
In de standaardmodus worden de genoemde bestanden zo samengevoegd dat alle regels met hetzelfde regelnummer in dezelfde kolom van de uitvoer worden overgedragen. Iedere regel van de uitvoer bevat zo de inhoud van alle invoerbestanden.
Welk afbrekingsteken paste gebruikt, kan worden bepaald met de optie -d. Als standaard afbrekingsteken worden tabs gebruikt.
Met de optie -s (serieel) kan nog een tweede modus worden geactiveerd. Hierbij worden alle regels van het eerste invoerbestand overgedragen naar de eerste regel van de uitvoer. De gegevens van alle andere invoerbestanden volgen telkens in aparte uitvoerregels. Iedere regel van de uitvoer bevat zo alleen de inhoud van één invoerbestand.
rename is een opdrachtregelprogramma waarmee bestanden en mappen met behulp van Perl-compatibele reguliere expressies (Regex) kunnen worden hernoemd. Anders dan mv is rename daarom geschikt voor bestandsacties waarbij de namen van meerdere bestanden gedeeltelijk of geheel moeten worden gewijzigd.
Gebruik rename volgens het volgende schema:
rename [OPTIES] 'REGULIERE_EXPRESSIE' BESTANDEN
Reguliere expressies hebben bij vervangingen de volgende syntaxis:
In het volgende voorbeeld worden alle .html-bestandsextensies hernoemd naar .xhtml.
Bestand of map verwijderen
Het opdrachtregelprogramma rm (remove) verwijdert bestanden of complete mappen definitief.
Het programma wordt geopend met het volgende schema:
Als een map met alle submappen moet worden verwijderd, gebruik je rm met de OPTIE -R (--recursive).
Meerdere bestanden of mappen worden gescheiden met een spatie.
rm [OPTIES] BESTAND1 BESTAND2
shred is een opdrachtregelprogramma waarmee bestanden veilig kunnen worden verwijderd. Geselecteerde elementen worden tijdens het verwijderen overschreven en kunnen dus zelfs met erg gespecialiseerde middelen niet meer worden hersteld.
De algemene syntaxis van het commando luidt:
Gebruik shred met de volgende opties om een afzonderlijk bestand onherstelbaar te verwijderen:
De optie -f dwingt de verwijdering, -z overschrijft de bestandsinhoud met nullen (standaard ingesteld zijn toevalsdata). Vervolgens verwijdert -u net als het rm-commando het geshredde bestand uit het bestandssysteem.
Bestandslijsten en programma-uitvoer sorteren
Gebruik het opdrachtregelcommando sort om bestandslijsten en programma-uitvoer op regel numeriek en alfabetisch te sorteren.
De algemene syntaxis van het commando luidt:
De sorteermethode kan worden gewijzigd met behulp van opties: bijvoorbeeld numeriek (-n), toevallig (-R) of in omgekeerde volgorde (-r).
Het opdrachtregelcommando split wordt gebruikt om bestanden te splitsen.
De bijbehorende syntaxis luidt:
split [OPTIES] [INPUT [PREFIX]]
De plaatshouder INPUT komt overeen met het bestand dat moet worden gesplitst. Het PREFIX fungeert als voorvoegsel voor de naam van de deelbestanden. De benoeming daarvan is gebaseerd op het volgende schema:
PREFIXaa, PREFIXab, PREFIXac …
Als er geen prefix wordt gedefinieerd, maakt split gebruik van het standaard prefix x.
Met de optie -b (bytes) kan de grootte van de deelbestanden worden bepaald. Deze kun je naar keuze aangeven in byte (b), kilobyte (k) of megabyte (m).
split -b 95m archief.tgz split-archief.tgz.
Het commando split splitst het bestand archief.tgz in deelbestanden van 95 megabyte en benoemt deze als volgt:
Door split gesplitste bestanden kunnen met behulp van het opdrachtregelcommando cat weer worden samengevoegd.
cat split-archief.tar.* > archief.tar
Met het opdrachtregelcommando stat (status) kunnen toegangs- en wijzigingstijdstempels van geselecteerde bestanden en mappen worden weergegeven.
De algemene syntaxis van het commando luidt:
Het weergaveformaat kan worden gewijzigd met behulp van opties.
Het opdrachtregelcommando touch wordt gebruikt om toegangs- en wijzigingstijdstempels van bestanden te veranderen. Als touch wordt toegepast op een niet-bestaand bestand, wordt dit automatisch aangemaakt. Het commando is daarom ook geschikt om lege bestanden aan te maken.
Gebruik touch volgens het volgende schema:
Om het tijdstempel van een bestand op een gewenste datum te zetten, gebruik je de OPTIE -t inclusief tijdsaanduiding in het formaat [JJ]MMDDuumm[.ss].
touch -t 1703231037 bestand.txt
Toegangs- en wijzigingstijdstempel worden op 23 maart 2017, 10.37 gezet. De aanpassing kan met de opties -a en -m worden beperkt tot toegangs- en wijzigingstijdstempels.
Als het commando touch zonder optie -t wordt gebruikt, wordt de huidige tijdstempel gebruikt.
Dubbele regels in bestandslijsten en programma-uitvoer verwijderen
Het opdrachtregelcommando uniq wordt in de regel gebruikt in combinatie met sort, om gesorteerde bestanden van dubbele regels te ontdoen.
In het volgende voorbeeld wordt het commando sort met een pipe (|) gekoppeld aan het commando uniq, om een bestand eerst te sorteren en vervolgens zonder dubbele regels weer te geven:
sort bestand.txt | uniq
In Linux kunnen toegangs- en eigendomsrechten voor bestanden en mappen eenvoudig worden aangepast in de terminal. De belangrijkste opdrachtregelcommando’s voor het rechtenbeheer zijn chown en chmod. Groepstoewijzingen worden beheerd met het commando chgrp.
Met het opdrachtregelprogramma chattr (kort voor change attribute) kun je bestanden of mappen voorzien van attributen. Een wijziging van bestandsattributen wordt door diverse bestandssystemen (bijvoorbeeld ext2, ext3, ext4, XFS, ReiserFS, JFS en OCFS2) ondersteund.
Gebruik chattr met de volgende syntaxis om een attribuut te plaatsen:
chattr [OPTIES] +ATTRIBUUT BESTAND
Geplaatste attributen kunnen met hetzelfde schema weer worden verwijderd:
chattr [OPTIES] -ATTRIBUUT BESTAND
Plaats bijvoorbeeld het attribuut -i om wijzigingen (verwijderingen of aanpassingen) van een bestand of een map te verbieden:
Overige attributen en mogelijke opties vind je in de gebruiksaanwijzingspagina bij het programma chattr.
Groepstoewijzingen van bestanden en mappen beheren
Het commando chgrp staat voor change group en wordt gebruikt bij het beheer van groepstoewijzingen voor bestanden en mappen. Om chgrp toe te kunnen passen op een geselecteerd bestand of een map, moet je eigenaars- of rootrechten bezitten. Daarnaast kunnen uitsluitend groepen worden geselecteerd waar je zelf lid van bent.
chgrp wordt volgens de volgende syntaxis gebruikt:
chgrp [OPTIES] GROEP BESTAND
chgrp [OPTIES] GROEP MAP
De optie -R neemt ook submappen en de bestanden in een map mee.
Het opdrachtregelprogramma chmod (kort voor change mode) is gericht op het toekennen van rechten in Unix-achtige bestandssystemen (bijvoorbeeld ext2, ext3, ext4, reiser, xfs).
De algemene syntaxis van het commando luidt:
chmod [OPTIES] MODUS BESTAND
chmod [OPTIES] MODUS MAP
De plaatshouder MODUS staat daarbij voor het toe te passen rechtenvenster. Hoe je deze aanmaakt en waar je daarbij op moet letten, lees je in ons uitgebreidere artikel over de toekenning van toegangsrechten met chmod.
Met behulp van de optie -R kunnen toegekende rechten recursief worden uitgebreid naar submappen en de bestanden in een map.
In de regel is de persoon die een bestand of map aanmaakt automatisch de eigenaar ervan (owner). Het commando chown staat voor change owner en biedt je de mogelijkheid om deze eigendomsinstellingen te wijzigen.
Het commando wordt gebruikt volgens het volgende schema:
chown [OPTIES] [GEBRUIKER][:[GROEP]] BESTAND
chown [OPTIES] [GEBRUIKER][:[GROEP]] MAP
Om het eigendomsrecht in te stellen voor gebruikers of groepen heb je vier combinatiemogelijkheden.
Eigenaar en groep worden conform de invoer opnieuw ingesteld:
chown [OPTIES] eigenaar_naam:groepen_naam bestand.txt
De groep wordt conform de invoer opnieuw ingesteld, de gebruiker blijft ongewijzigd:
chown [OPTIES] :groepen_naam bestand.txt
De eigenaar wordt conform de invoer opnieuw ingesteld, de groep blijft ongewijzigd:
chown [OPTIES] eigenaar_naam bestand.txt
De gebruiker wordt conform de invoer opnieuw ingesteld. De groep wordt ingesteld op de standaard groep van de ingelogde gebruiker:
chown [OPTIES] eigenaar_naam bestand.txt
De wijzigingen kunnen met behulp van de OPTIE -R recursief worden uitgebreid naar submappen.
Als je wilt laten weergeven welke attributen zijn ingesteld voor een bestand of map, gebruik je het opdrachtregelcommando lsattr (kort voor list attributes) volgens het volgende schema:
Linux biedt diverse opdrachtregelcommando's waarmee het systeem direct vanuit de terminal kan worden doorzocht.
find is een opdrachtregelprogramma waarmee naar bestanden kan worden gezocht.
Het programma wordt geopend met de volgende syntaxis:
find [OPTIES] [MAP] [ZOEKVOORWAARDE][ACTIES]
De aangegeven map geldt als startmap van de zoekopdracht. Doorzocht worden dus de startmap en diens submappen. Als er geen map wordt aangegeven, start find de zoekopdracht vanuit de huidige werkmap.
Met opties kun je zoekcriteria en acties definiëren. Standaard is de actie –print ingesteld: weergave van de volledige bestandsnaam van alle zoekcriteria in de standaardweergave (in de regel de terminal).
Gangbare zoekcriteria zijn de bestandsnaam (-naam BESTANDSNAAM[SUFFIX]), een gebruikersnaam (-user GEBRUIKERSNAAM), de bestandsgrootte (-size n[cwbkMG]), het toegangstijdstip in dagen (-atime [+-]n) of het wijzigingstijdstip in dagen (-mtime [+-]n).
Bij het zoeken naar bestandsnamen kunnen metatekens en plaatshouders worden gebruikt. Plaats deze tussen aanhalingstekens om een interpretatie door de shell te verbieden.
find /tmp -name "*.odt" -mtime -3 -size +20k
Als startmap is de map /tmp gedefinieerd. Het opdrachtregelprogramma find geeft alle bestanden die de bestandsextensie .odt hebben, groter zijn dan 20k en minder dan 3 dagen geleden voor het laatst werden gewijzigd, weer in de standaardweergave.
Overige opties voor het zoekcommando find vind je in de gebruiksaanwijzingspagina bij het programma.
Met het commando grep (kort voor global regular expression print) kunnen tekstbestanden (bijvoorbeeld logbestanden) worden doorzocht. Als zoekpatroon kunnen willekeurige tekenreeksen of reguliere expressies worden gebruikt.
Gebruik grep volgens deze syntaxis:
grep [OPTIES] ZOEKPATROON [BESTAND(EN)]
Als grep een string vindt die overeenkomt met het zoekpatroon, wordt het regelnummer met de bijbehorende bestandsnaam weergegeven in de terminal.
In de regel wordt grep op alle bestanden in de huidige map toegepast. Met de optie -r kan een recursieve zoekopdracht in submappen worden verricht.
Ook met het opdrachtregelprogramma locate kan via de terminal naar bestanden worden gezocht. Maar anders dan bij find wordt daarbij niet de bestandsmap doorzocht, maar een speciaal daarvoor aangemaakte regelmatig bijgewerkte database. Daardoor levert locate beduidend snellere zoekresultaten dan find.
Om in de database te zoeken naar een bepaald bestand open je locate volgens het volgende schema:
Het zoekpatroon kan metatekens zoals plaatshouders (*) bevatten. Plaats dergelijke zoekpatronen tussen aanhalingstekens om een interpretatie door de shell te verbieden.
In het volgende voorbeeld toont locate alle bestanden met de extensie .png.
Het commando locate is hoofdlettergevoelig. Om verschillen tussen grote en kleine letters bij het zoeken te omzeilen, gebruik je de optie -i.
Als database voor de indexering van bestanden fungeert het bestand /var/lib/locatedb. Dit bevat een lijst van alle bestanden van het bestandssysteem op een bepaald tijdstip en moet regelmatig worden bijgewerkt. Gebruik daarvoor het commando updatedb.
Fuzzy search in tekstbestanden
Ook tre-agrep is bedoeld voor het zoeken naar strings in tekstbestanden op basis van zoekpatronen. Anders dan bij grep worden daarbij niet alleen exacte overeenkomsten weergegeven, maar ook “fuzzy” overeenkomsten zoals tikfouten of ontbrekende tekens. Het programma is gebaseerd op de TRE-bibliotheek en maakt deze toepasbaar in de opdrachtregel.
De syntaxis van tre-agrep komt overeen met die van het grep-commando:
tre-agrep [OPTIES] ZOEKPATROON BESTAND(EN)
Met opties kun je een maximaal aantal fouten instellen. In het volgende voorbeeld wordt maximaal één afwijking van het zoekpatroon getolereerd.
tre-agrep -1 'Linux' test.txt
tre-agrep geeft alle regels van het tekstbestand test.txt weer die woorden bevatten die overeenkomen met het zoekpatroon of er maximaal één letter van verschillen: bijvoorbeeld Linus.
Zoeken via locate is alleen betrouwbaar als het bestand /var/lib/locatedb continu wordt bijgewerkt. Met het commando updatedb kun je de database handmatig bijwerken. Houd er rekening mee dat je hiervoor rootrechten nodig hebt:
Binaire code, broncode of gebruiksaanwijzingspagina's van programma’s zoeken
Met het commando whereis lokaliseer je de binaire code, broncode of gebruiksaanwijzingspagina's van gesorteerde programma's.
De algemene syntaxis van het commando luidt:
Als output schrijft whereis de paden naar de gevonden bestanden, gescheiden door spaties, in de terminal:
firefox: /usr/bin/firefox/ usr/lib/firefox/ usr/share/man/man1/firefox.1.gz
Met opties kan de zoekopdracht worden beperkt tot bepaalde bestandstypes of mappen.
Binaire bestanden van programma’s bepalen
Als je een binair bestand van een programma wilt bepalen, gebruik je het commando which volgens het volgende schema om het pad in de terminal weer te geven.
In de standaardmodus geeft which het eerste bestand weer dat wordt gevonden. Gebruik de optie -a om alle bestanden te tonen die voldoen aan het zoekcriterium.
Gebruik de opdrachtregelprogramma's van de volgende categorie om gedetailleerde informatie over de in het systeem geregistreerde gebruikers en over hun groepen en processen weer te geven.
Met het opdrachtregelprogramma finger kunnen usergegevens worden opgeroepen. Daarvoor wordt het gelijknamige commando in combinatie met de gewenste gebruikersnaam ingevoerd:
De uitvoer bevat de volgende informatie over het betreffende gebruikersaccount: inlognaam, echte naam, inlogtijd, tijd sinds laatste activiteit (Idle-Time), homemap van de gebruiker, de inlogshell, locatie (Office number), mail en telefoonnummer (indien aanwezig) en de inhoud van de bestanden .plan, .project, .pgpkey en .forward in de homemap van de gebruiker (indien aanwezig).
Gebruik finger zonder gebruikersnaam om informatie op te vragen over je eigen account.
Met het commando groups wordt weergegeven tot welke groepen een geselecteerd gebruikersaccount behoort.
Gebruik het opdrachtregelcommando volgens het volgende schema:
Gebruik groups zonder gebruikersnaam om alle groepen te tonen waar je gebruikersaccount toe behoort.
Gebruikers- en groeps-IDs opvragen
Met het opdrachtregelcommando id worden gebruikers- en groeps-IDs van het geselecteerde gebruikersaccount weergegeven.
Door het commando zonder gebruikersnaam in te voeren, vraag je je eigen IDs op.
De omvang van de uitvoer kan worden beperkt met opties.
Informatie opvragen over de laatst aangemelde gebruikers
Gebruik het commando last volgens het volgende schema om een overzicht van de laatst aangemelde gebruikers inclusief inlog- en uitlogtijden weer te geven:
De betreffende gegevens worden opgehaald uit het wtmp-bestand onder /var/log/wtmp. Als je alleen de gegevens van een bepaald account wilt opvragen, voer je het opdrachtregelcommando in met de gewenste gebruikersnaam.
Huidige gebruikers en hun processen opvragen
Met het commando w wordt een overzicht weergegeven van alle aangemelde gebruikers inclusief alle processen die door hen worden uitgevoerd.
Gebruik w in combinatie met een gebruikersnaam om het commando te beperken tot deze gebruiker:
Omvang en formaat van de uitvoer kan indien gewenst worden aangepast met opties.
Gedetailleerde informatie over aangemelde gebruikers opvragen
Met het commando who wordt gedetailleerde informatie over de in het systeem aangemelde gebruikers weergegeven.
De algemene syntaxis van het commando luidt:
who ondersteunt diverse opties waarmee de omvang van de weergegeven informatie kan worden aangepast.
who toont standaardgegevens over momenteel aangemelde gebruikers uit het bestand /var/run/utmp.
Eventueel kan een van de volgende bestanden als bron voor de informatie worden aangegeven.
Als je informatie over eerdere aanmeldingen wilt opvragen, gebruik je who in combinatie met het bronbestand /var/log/wtmp:
Informatie over mislukte aanmeldingen krijgt je door who op te vragen met het bestand /var/log/btmp:
Gebruik het commando whoami om je eigen gebruikersnaam op te vragen.
Linux biedt meerdere programma's waarmee je gebruikersaccounts en groepen direct in de terminal kunt aanmaken, verwijderen en beheren. Een overzicht van de belangrijkste Linux-commando's voor het user account management hebben we hieronder samengesteld. Bovendien vind je in deze categorie Linux-terminal-commando's waarmee je programma's kunt openen met de rechten van andere gebruikers inclusief de super-user-root.
De eenvoudigste manier om een gebruikersaccount aan te maken, is met het opdrachtregelprogramma adduser. Hiervoor zijn rootrechten vereist en dient de volgende syntaxis te worden gebruikt:
Als adduser zonder opties wordt gebruikt, worden naast het nieuwe gebruikersaccount automatisch een gebruikers-ID, de homemap en een gelijknamige gebruikersgroep aangemaakt.
Adding user 'test' (1001) …
Adding new group 'test' (1001) …
Adding new user 'test' (1001) with group 'test' …
Creating home directory '/home/test' …
Copying files from '/etc/skel' …
Vervolgens verschijnt er een interactieve dialoog waarin je het wachtwoord en de uitgebreide gebruikersgegevens (echte naam, kantoornummer, telefoonnummers enz.) kunt configureren.
Dit automatisme kan met extra opties worden aangepast of beperkt.
Het Perl-script adduser is gebaseerd op het low-level-programma useradd en biedt dezelfde functies in gebruiksvriendelijke vorm.
Met het opdrachtregelcommando chfn (kort voor change finger) kun je de uitgebreide gegevens van een gebruikersaccount zoals de echte naam, het kantoornummer en de privételefoonnummers en zakelijke telefoonnummers wijzigen.
De algemene syntaxis van chfn luidt:
chfn [OPTIE "NIEUWE WAARDE"] [GEBRUIKERSNAAM]
Het commando moet worden uitgevoerd met rootrechten.
Welke gebruikersgegevens worden vervangen door een nieuwe waarde, bepaal je met de opties -f (echte naam), -r (kantoornummer), -w (zakelijk nummer) en -h (privénummer).
In het volgende voorbeeld wordt het oude kantoornummer van peter23 overschreven met de nieuwe waarde 122.
chfn -r "122" peter23
Het opdrachtregelcommando chsh (kort voor change shell) wijzigt de inlogshell van een geselecteerde gebruiker.
Gebruik bij de invoer het volgende schema:
Om de inlogshell van een gebruiker te wijzigen, wordt chsh met de optie -s gebruikt. Deze wordt aangevuld met het pad naar de gewenste shell (bijvoorbeeld /usr/bin/fish).
Let op: gebruikers zonder rootrechten mogen alleen hun eigen shell wijzigen. Als je de shell van andere gebruikers wilt wijzigen, moet het commando worden uitgevoerd met rootrechten.
sudo chsh -s /usr/bin/fish peter23
Voor de gebruiker peter23 wordt de shell fish (friendly interactive shell) als standaard ingesteld.
De verandering van shell treedt pas in werking als de gebruiker zich af- en weer aanmeldt.
Het opdrachtregelprogramma deluser verwijdert alle invoer voor een geselecteerd gebruikersaccount uit de systeemaccountbestanden.
Om deluser te openen, zijn rootrechten vereist en dient het volgende schema te worden gevolgd:
Het gebruikersaccount peter23 wordt verwijderd.
Als je ook nog alle bestanden in de homemap van de gebruiker wilt verwijderen, voer je het commando in met de optie --remove-home. Als alle bestanden van de gebruiker uit het systeem moeten worden verwijderd, gebruik je de optie --remove-all-files.
Als alle bestanden van de gebruiker voor verwijdering worden opgeslagen, gebruik je deluser in combinatie met de optie --backup-to en voer je de gewenste map in.
deluser --backup-to /pad/naar/map peter23
deluser is een Perl-script dat in gebruiksvriendelijke vorm functies biedt van het low-level-programma userdel.
Met het opdrachtregelprogramma groupadd kunnen nieuwe gebruikersgroepen worden aangemaakt.
Gebruik groupadd met rootrechten volgens het volgende schema:
sudo groupadd [OPTIES] GROEP
Iedere nieuwe groep die is aangemaakt krijgt een uniek groeps-ID (GID). Groeps-IDs tussen 0 en 99 zijn gereserveerd voor systeemgroepen. Als je het GID van een nieuwe gebruikersgroep zelf wilt definiëren, gebruik je het opdrachtregelcommando groupadd met de optie -g(GID).
In het volgende voorbeeld wordt de groep users met het GID 1425 aangemaakt.
groupadd -g 1425 users
Als je een systeemgroep wilt aanmaken, gebruik je de optie -r (root).
Het opdrachtregelcommando delgroup (kort voor delete group) verwijdert een bestaande gebruikersgroep.
De algemene syntaxis van delgroup luidt:
Om het commando uit te kunnen voeren, zijn rootrechten vereist.
De volgende invoer zorgt ervoor dat de groep users wordt verwijderd:
Net als bij deluser gaat het hier om een Perl-script dat in gebruiksvriendelijke vorm functies biedt van het low-level-programma groupdel.
Via groupmod kunnen de naam en het groeps-ID (GID) van een bestaande gebruikersgroep worden gewijzigd.
Het opdrachtregelcommando wordt met rootrechten volgens het volgende schema gebruikt:
Gebruik groupmod met de optie -g om het GID te wijzigen. Een commando met de optie -n overschrijft de groepsnaam.
groupmod -g 1800 users
Het GID van de groep users wordt op 1800 gezet.
groupmod -n all users
De groep users wordt hernoemd naar all.
newgrp (kort voor new group) is een commando waarmee aangemelde gebruikers hun huidige groeps-ID kunnen veranderen, zonder dat ze zich opnieuw hoeven aan en af te melden.
De algemene syntaxis van het commando luidt:
Als newgrp wordt gebruikt met de optionele parameter [-] zorgt de verandering van groep ervoor dat de gebruikersomgeving opnieuw wordt opgestart, alsof de gebruiker zich opnieuw heeft aangemeld.
Gebruikers die newgrp gebruiken zonder groepsaanduiding gaan naar de onder /etc/passwd vermelde standaardgroep.
Een gebruiker dient lid van de groep te zijn waar hij naartoe wil veranderen. Een uitzondering hierop zijn groepen die met een wachtwoord zijn beveiligd. Als een groep beveiligd is met een wachtwoord, dient dit voor het veranderen van groep in de terminal te worden ingevoerd.
Gebruik het opdrachtregelprogramma passwd om het wachtwoord van een gebruiker te wijzigen of blokkeer- en wijzigingsintervallen te definiëren.
Het commando wordt gebruikt met de volgende syntaxis:
Als je het wachtwoord van een andere gebruiker wilt wijzigen, dien je over rootrechten te beschikken.
Gebruik het commando passwd zonder gebruikersnaam om je eigen wachtwoord te wijzigen.
Als het wachtwoord van de geselecteerde gebruiker moet worden geblokkeerd, gebruik je het commando passwd met de optie -l (lock).
Andere opties bieden de mogelijkheid om een vervalduur voor wachtwoorden (-x) en waarschuwings- (-w) en blokkeerintervallen (-i) te definiëren:
passwd -x MAX_DAGEN -w WAARSCHUWING_DAGEN -i INACTIEF_DAGEN GEBRUIKERSNAAM
In het volgende voorbeeld wordt gedefinieerd dat de gebruiker peter24 zijn wachtwoord iedere 30 dagen moet veranderen. Hij ontvangt vijf dagen voordat de termijn verstrijkt een waarschuwing. Als het wachtwoord na 30 dagen niet wordt gewijzigd, vervalt het wachtwoord en wordt het gebruikersaccount peter24 na drie dagen geblokkeerd.
passwd -x 30 -w 5 -i 3 peter24
Programma's uitvoeren met rechten van andere gebruikers
Het commando sudo (substitute user do) kan vooraf worden gegaan door programma-aanvragen, om deze uit te voeren met de rechten van een andere gebruiker. In de regel moet daarvoor een wachtwoord worden ingevoerd. Het commando sudo vraagt daarbij altijd naar het wachtwoord van de aanvragende gebruiker.
Als het commando zonder gebruikersnaam wordt ingevoerd, wordt de superuser root gebruikt als doelgebruiker.
Administrators hebben de mogelijkheid om in het bestand /etc/sudoers te definiëren wie sudo mag gebruiken en welke programma-aanvragen toegestaan zijn. Een gebruiker moet bij de groep sudo horen om het commando sudo te kunnen gebruiken.
Als je een andere doelgebruiker wilt selecteren, gebruik je sudo met de optie -u en de gewenste gebruikersnaam.
sudo -u GEBRUIKERSNAAM PROGRAMMA-AANVRAAG
Een dergelijke verandering van gebruiker is alleen mogelijk als dit conform /etc/sudoers toegestaan is.
Als je langdurig naar de rootshell wilt gaan om commando's uit te voeren met administratorrechten, gebruik je sudo met de optie -i.
Het commando sudo is nuttig omdat het gebruikers de mogelijkheid geeft om vooraf vastgelegde commando's uit te voeren als rootgebruiker, zonder dat het rootwachtwoord hoeft te worden gedeeld.
Met rechten van andere gebruikers werken
Ook met het commando su is een tijdelijke verandering van gebruiker mogelijk om programma-aanvragen uit te voeren met de rechten van een doelgebruiker. Anders dan bij sudo worden commando's daarom niet direct uitgevoerd. In plaats daarvan wordt er een verandering van identiteit tot stand gebracht. Daarnaast vraagt su niet het wachtwoord van de aanvragende gebruiker, maar dat van de doelgebruiker. Om programma's te kunnen openen als superuser heeft een gebruiker dus het rootwachtwoord van het systeem nodig. Daarnaast kan su in tegenstelling tot sudo niet worden beperkt tot een set programma-aanvragen die door de administrator vooraf zijn gedefinieerd.
De algemene syntaxis van het commando luidt:
Een commando zonder GEBRUIKERSNAAM selecteert root als doelgebruiker.
Met het opdrachtregelcommando usermod kun je reeds aangemaakte gebruikersaccounts bewerken.
Gebruik usermod met rootrechten volgens het volgende schema:
Welke modificaties moeten worden uitgevoerd, bepaal je met behulp van opties.
Gebruikersnaam wijzigen (-l NIEUWE_NAAM):
usermod -l peter24 peter23
De gebruiker peter23 heet nu peter24.
Nieuwe homemap aanmaken (-d MAP) en oude bestanden verplaatsen (-m):
usermod -d /pad/naar/map/peter24 -m peter24
Alle bestanden uit de oude homemap worden verplaatst naar de nieuwe homemap.
Het wachtwoord van de gebruiker peter24 wordt geblokkeerd.
Gebruikers in groep opnemen (-a) en alle andere groepstoewijzingen behouden (-G):
usermod -aG users peter24
Peter wordt toegevoegd aan de groep users.
In de categorie systeemcommando's vind je essentiële Linux-commando's voor het systeembeheer. Gebruik de volgende commando's om het systeem opnieuw op te starten en af te sluiten vanuit de terminal, indien gewenst ook tijdgestuurd.
De meeste opdrachtregelcommando's voor het systeembeheer moeten
worden uitgevoerd met rootrechten.
Met het opdrachtregelprogramma logger kan invoer worden aangemaakt in het systeemlog.
Gebruik logger volgens het volgende schema:
Het systeemlog vind je onder /var/log/syslog.
reboot is een opdrachtregelcommando dat ervoor zorgt dat het systeem opnieuw wordt opgestart. Om opnieuw op te starten, dient het commando te worden uitgevoerd met rootrechten.
Systeem automatisch starten en afsluiten
rtcwake is een opdrachtregelcommando waarmee het systeem tijdgestuurd kan worden gestart en afgesloten.
Het commando wordt gebruikt met de volgende syntaxis:
rtcwake [OPTIES] [MODUS] [tijd]
Selecteer een bepaalde modus (-m MODUS) waarin het systeem voor een bepaalde tijd in seconden (-s TIJD IN SECONDEN) moet worden gezet. Je kunt het systeem ook op een precies gedefinieerd tijdstip (-t UNIXTIJD) uit de slaapstand halen.
rtcwake -m standby -s 300
Het systeem wordt voor 5 minuten (300 seconden) in de standby-modus gezet.
rtcwake -m off -t 1490997660
Het systeem wordt afgesloten en komt op Unixtijd 1490997660 uit de slaapstand. Dit komt overeen met de volgende datum: 01-04-2017- 00:01:00. De Unix-tijd is het aantal seconden sinds 1 januari 1970 om 00:00. Omdat vermeldingen en Unix-tijd moeilijk te lezen zijn, is het aan te raden deze met behulp van het commando date (zie onder) om te zetten.
rtcwake -m off -t $(date -d '20190401 00:01' +%s)
Het commando shutdown kan door rootgebruikers worden gebruikt om het systeem af te sluiten.
Het commando wordt gebruikt met de volgende syntaxis:
shutdown [OPTIES] [TIJD] [BERICHT]
Als je het systeem wilt laten afsluiten, kun je een tijdstip definiëren wanneer het systeem moet worden afgesloten. Gebruik hiervoor ofwel een concrete tijdsaanduiding (hh:mm) of een countdown (+m).
Andere gebruikers in het systeem krijgen een shutdown-melding. Deze kan indien gewenst worden aangevuld met een individueel bericht.
In het volgende voorbeeld wordt het systeem over 10 minuten afgesloten:
Als het commando shutdown wordt gebruikt in combinatie met de optie -r, wordt het systeem na afsluiting opnieuw opgestart.
In de categorie systeemgegevens hebben we opdrachtregelprogramma's samengevat waarmee je gegevens en statusmeldingen opvraagt en een uitgebreid overzicht van de staat van je systeem kunt krijgen.
Het commando date geeft de systeemtijd inclusief datum weer.
Als je in het kader van een programma-aanvraag met een bepaalde datum werkt (zie rtcwake), kan deze met behulp van de optie -d 'DATUM' worden gedefinieerd. Daarnaast worden er diverse opties ondersteund waarmee datum- en tijdsaanduidingen in een gewenst formaat kunnen worden gezet.
Gebruik bijvoorbeeld de optie +%s om een datum weer te geven in Unix-tijd (aantal seconden sinds 1970-01-01 00:00:00 UTC).
date -d '20190427 11:29' +%s
1493285340 Unixtijd komt overeen met 27-04-2019 - 11:29:00.
Vrije ruimte op de harde schijf opvragen
Gebruik het commando df(disk free) volgens het volgende schema om de vrije ruimte op de harde schijf op aangekoppelde partities weer te geven.
Als het commando wordt gebruikt met een bepaald bestand geeft het systeem alleen de vrije opslagruimte van de partitie weer waar het bestand zich bevindt.
De optie -l (lokal) beperkt df tot lokale bestandssystemen. Daarnaast worden er opties ondersteund waarmee het uitvoerformaat kan worden gewijzigd. Voor een door mensen leesbare uitvoer is de optie -h (human readable) aan te bevelen: bijvoorbeeld 3K 124M 1G.
Meldingen van de kernel-ringbuffer opvragen
Het programma dmesg (kort voor display message) geeft meldingen van de kernel-ringbuffer weer in de terminal, waardoor je hardware- en driverfouten kunt lokaliseren.
Gebruik demsg volgens het volgende schema:
De dmesg-uitvoer bevat alle meldingen van het boot-proces en is dus zeer lang. Het opdrachtregelprogramma wordt daarom vaak in combinatie met een pager zoals more, less of tail gebruikt.
De dmesg-uitvoer wordt met behulp van het pipe-teken (|) overgedragen naar de pager tail. Dit zorgt ervoor dat enkel de laatste 10 meldingen worden weergegeven in de terminal.
In combinatie met het grep-commando kan gericht naar meldingen worden gezocht.
Gebruikte ruimte op de harde schijf opvragen
Als je erachter wilt komen hoeveel ruimte op de harde schijf er wordt gebruikt door mappen in je systeem, gebruik je het commando du (kort voor disk usage) volgens het volgende schema:
Eventueel kan er een bepaalde map worden ingevoerd. De gebruikte ruimte op de harde schijf kan met de optie -h worden weergegeven in een voor mensen leesbaar formaat.
Belasting van het werkgeheugen opvragen
Het commando free geeft de belasting van het werkgeheugen weer.
De algemene syntaxis luidt:
Als uitvoer krijg je twee meldingen: Mem (Memory) en Swap.
Bij Mem gaat het om het fysieke werkgeheugen van je systeem. Als dit is uitgeput, slaat Linux delen van de in het RAM opgeslagen gegevens op de harde schijf op. Men spreekt in dit geval van swap-space.
Ook free ondersteunt de optie -h, waarmee de geheugenbelasting kan worden weergegeven in een voor mensen leesbaar formaat.
Gebruik het commando hostname volgens het volgende schema om de DNS-naam van het systeem weer te geven.
Het opdrachtregelcommando uname staat voor unix name en wordt gebruikt om systeemgegevens over de kernel op te vragen.
Het commando ondersteunt diverse opties waarmee de uitvoer kan worden gefilterd op de gewenste gegevens.
Als je wilt achterhalen hoe lang je systeem loopt sinds het laatste boot-proces, gebruik je het opdrachtregelcommando uptime volgens het volgende schema:
Statistieken van virtueel geheugen opvragen
Met behulp van de monitoring-tool vmstat kunnen gegevens over het virtuele geheugen, schrijf- en leesprocessen op de harde schijf en de CPU-activiteit worden opgevraagd.
Gebruik vmstat volgens het volgende schema om de gemiddelde waarden sinds de laatste systeemstart weer te geven.
Als alternatief biedt vmstat een voortdurende monitoringmodus, waarbij de systeemwaarden in een gewenst tijdsinterval in seconden naar believen kunnen worden opgevraagd.
vmstat [OPTIES] [INTERVAL [HERHALINGEN]]
De aanvraag vindt in acht handelingen iedere 4 seconden plaats. Als je de voortdurende aanvraag wilt annuleren, gebruik je de toetsencombinatie [CTRL] + [C].
Linux-commando's uit deze categorie bieden je gedetailleerde informatie over de hardwarecomponenten waarop je systeem is gebaseerd.
Gebruik lscpu (kort voor list cpu) volgens het volgende schema om informatie over CPU-architectuur weer te geven in de terminal.
Mogelijke opties vind je in de gebruiksaanwijzingspagina's van je besturingssysteem.
Het commando lshw staat voor list hardware en geeft gegevens over de hardwarecomponenten weer in de terminal. De gegevens omvatten CPU, opslagmodule en apparaten zoals de geluidskaart, grafische kaart of stations die zijn aangesloten op de PCI-, USB- of IDE-interfaces.
Gebruik lshw volgens het volgende schema:
Het commando ondersteunt diverse opties waarmee het uitvoerformaat (-html, -xml, -short, -businfo) en de omvang van de gegevens (bijvoorbeeld -sanitize voor het verbergen van gevoelige informatie) kan worden gewijzigd.
Gegevens van PCI-apparaten weergeven
Gebruik lspci (kort voor list pci) volgens het volgende schema om gedetailleerde informatie over PCI-apparaten weer te geven.
Mogelijke opties vind je in de gebruiksaanwijzingspagina's van je besturingssysteem.
Gegevens van USB-apparaten weergeven
Gebruik lsusb (kort voor list usb) om gedetailleerde informatie over USB-apparaten weer te geven in de terminal.
Mogelijke opties vind je in de gebruiksaanwijzingspagina's van je besturingssysteem.
In Linux wordt de instantie van een lopend programma als proces beschouwd. De volgende terminalcommando's behoren tot het standaard repertoire van het procesmanagement en stellen je in staat om alle processen in je systeem eenvoudig te monitoren vanuit de terminal en indien nodig aan te sturen.
Realtime-attributen opvragen en wijzigen
chrt is een opdrachtregelprogramma voor het gevorderde procesbeheer waarmee realtime-attributen (scheduling-regel en prioriteit) van lopende processen kunnen worden bepaald en gewijzigd of commando's en hun argumenten kunnen worden uitgevoerd met bepaalde realtime-attributen.
De algemene syntaxis van het commando luidt:
chrt [OPTIES] [PRIORITEIT] PID/COMMANDO [ARGUMENTEN]
Gebruik chrt zonder vermelding van een prioriteit en met de optie -p om realtime-attributen van geselecteerde processen te bepalen:
chrt geeft de realtime-attributen van het proces 1234 weer.
Het commando wordt in de regel gebruikt volgens het volgende schema, om een commando en zijn argumenten uit te voeren met een bepaalde realtime-prioriteit.
chrt [OPTIES] PRIORITEIT COMMANDO [ARGUMENTEN]
Het programma Firefox wordt gestart met een realtime-prioriteit van 99.
Maar als de realtime-prioriteit van lopende processen moet worden gewijzigd, dient de volgende syntaxis te worden gebruikt:
chrt -p PRIORITEIT PID
chrt -p 20 1234
De realtime-prioriteit van het proces 1234 wordt op 20 gezet.
Daarnaast biedt chrt de mogelijkheid om de scheduling-regel van lopende of nieuw gestarte processen met behulp van opties te wijzigen of te definiëren.
chrt gebruikt als standaard waarde de scheduling-regel SCHED_RR (Round Robin, expliciet met de optie -r). Dat betekent dat alle processen die ‘ready’ zijn, na elkaar voor een bepaald tijdsbestek CPU-rekentijd toegewezen krijgen. Men spreekt dan van de ‘timeslice’. Deze geeft aan hoe lang een proces mag lopen voordat het wordt verdrongen door een ander proces. De grootte van de ‘timeslice’ van een proces hangt af van zijn prioriteit. Linux biedt 140 prioriteitsniveaus voor processen (0 = hoogste prioriteit, 139 = laagste prioriteit). De prioriteitsniveaus 1 tot 99 zijn gereserveerd voor processen met zogenaamde realtime-prioriteit. Gebruikersprocessen worden daarentegen in de regel uitgevoerd met een procesniveau van 100 tot 139. Dit komt overeen met een nice-waarde van -20 tot +19 (zie Nice)
Naast SCHED_RR kent Linux met SCHED_FIFO (optie -f) nog meer scheduling-regels voor realtime-processen. Net als SCHED_RR werkt SCHED_FIFO als first-in/first-out-algoritme. Daarbij wordt echter geen tijdschijf gebruikt. Processen die met SCHED_FIFO worden gestart, lopen totdat ze worden afgesloten of worden verdrongen door een proces met een hogere realtime-prioriteit. Verdrongen processen gaan naar het einde van de wachtrij.
Het opdrachtregelcommando ionice wordt gebruikt om de prioriteit van een proces te beïnvloeden dat de I/O-interface van de kernel gebruikt.
De algemene syntaxis van het commando luidt:
Om ionice uit te kunnen voeren, zijn rootrechten vereist.
Het commando maakt een onderscheid tussen drie scheduling-klassen, die via de optie -cGETAL worden ingevoerd. Mogelijke waarden zijn 1, 2 en 3.
1 = realtime: De I/O-actie wordt direct uitgevoerd.
2 = best-effort: De I/O-actie wordt zo snel mogelijk uitgevoerd.
3 = idle: De I/O-actie wordt alleen uitgevoerd als er geen ander proces is dat een beroep doet op I/O-tijd.
De PID van een lopend proces wordt ingevoerd met de optie -pPID.
Aan het proces met de PID 1234 wordt de scheduling-klasse 2 (best effort) toegekend.
Proces via PID stoppen en afsluiten
kill is een opdrachtregelprogramma waarmee processen kunnen worden gestopt en afgesloten.
Het commando wordt volgens het volgende schema met een gewenst signaal en het ID van het geselecteerde proces ingevoerd.
kill [OPTIES] [-SIGNAAL] PID
Veel gebruikte signalen zijn:
TERM: zorgt ervoor dat een proces zichzelf afsluit (standaard)
KILL: forceert het afsluiten van een proces (door het systeem)
STOP: stopt een proces
CONT: schakelt een gestopt proces weer in
De volgende aanvraag zendt een signaal naar het proces 1234, waardoor het zichzelf afsluit. Omdat er geen signaal is ingevoerd, zendt kill het standaardsignaal TERM.
Geef processen altijd de mogelijkheid om zichzelf af te sluiten en forceer de actie alleen via KILL als het aangesproken proces niet reageert zoals bedoeld.
Als je 1234 alleen tijdelijk wilt pauzeren, gebruik je de volgende commando's om het proces te stoppen en weer in te schakelen:
Gebruik het commando kill met de optie -l (--list) om alle mogelijke signalen weer te geven die via kill naar processen kunnen worden verzonden.
Processen via naam stoppen en afsluiten
Gebruik killall in combinatie met een bepaalde zoekterm om alleen de processen af te sluiten waarvan de naam exact overeenkomt (de eerste 15 tekens worden vergeleken).
killall [OPTIES] [-SIGNAAL] [PROCESNAAM]
Met de optie -e (--exact) kan de vergelijking worden uitgebreid naar alle tekens van de procesnaam.
Het opdrachtregelcommando nice wijst een proces bij het starten een nice-waarde tussen -20 en +19 toe in hele getallen, op basis waarvan het beschikbare rekenvermogen van het systeem wordt verdeeld. Het bereik -20 tot +19 komt overeen met de Linux-prioriteitsniveaus 100 tot 139. Een proces met een nice-waarde van -20 heeft dus een hogere prioriteit dan een proces met een nice-waarde van 19.
De bijbehorende syntaxis luidt:
Zonder verdere invoer start ieder proces met een nice-waarde van 0. Gebruik de optie -n om procesprioriteiten te definiëren. Daarbij dient er rekening mee te worden gehouden dat negatieve prioriteiten alleen kunnen worden toegekend met rootrechten.
In het volgende voorbeeld wordt de editor nano gestart met een prioriteit van 4:
nice -n 4 nano
Proces uit sessie verwijderen
Normaal gesproken worden alle afhankelijke processen van een gebruiker automatisch afgesloten zodra deze de terminalsessie sluit (bijvoorbeeld via exit).
Het opdrachtregelcommando nohup (kort voor no hangup) verwijdert een proces uit de huidige sessie en stelt je in staat dit ook verder te laten lopen als je je afmeldt in het systeem. Het bijbehorende HUP-signaal (hangup) dat er normaal gesproken voor zorgt dat een proces automatisch wordt afgesloten, wordt onderdrukt door nohup.
Het programma wordt geopend met het volgende schema:
PID bepalen via zoekterm
Het opdrachtregelprogramma pgrep vergelijkt het overzicht van lopende processen met een zoekterm en geeft bij overeenstemming de bijbehorende PIDs weer.
De algemene syntaxis van het commando luidt:
pgrep geeft standaard de PIDs weer van alle processen die de zoekterm bevatten.
Alle processen met de zoekterm ssh in de procesnaam worden getoond.
Als de zoekopdracht moet worden beperkt tot exacte overeenkomsten gebruik je het commando met de optie -x.
Alleen de processen die exact sshd heten, worden getoond.
Als je naast de PID ook de procesnaam wilt opvragen, gebruik je pgrep met de optie -l.
pgrep ondersteunt (net als grep) zoektermen op basis van reguliere expressies.
Het opdrachtregelprogramma pidof geeft de procesidentificatienummers (PIDs) van alle processen van een programma weer.
Achterhaal PIDs via pidof met het volgende schema:
Via de volgende aanvraag worden de IDs van alle lopende processen van het programma nano weergegeven in de terminal.
Als je alleen het eerste proces-ID wilt weergeven, gebruik je pidof in combinatie met de optie -s (kort voor single shot).
Processen via zoekterm stoppen en afsluiten
Net als kill zendt ook pkill een signaal naar een geselecteerd proces. Het adresseren wordt echter gedaan aan de hand van het PID. In plaats daarvan wordt er een zoekterm ingevoerd die wordt vergeleken met de namen van lopende processen. Deze kan worden geformuleerd als reguliere expressie.
Ook pkill verzendt het standaardsignaal TERM, tenzij er een andere signaal is gedefinieerd. De algemene syntaxis van het commando luidt:
pkill [OPTIES] [-SIGNAAL] [ZOEKTERM]
Met opties kan het commando worden beperkt tot de processen van een bepaalde gebruiker (-U UID), tot kindprocessen van een bepaald ouderproces (-P PID) of de nieuwste (-n) respectievelijk oudste processen (-o).
pkill spreekt alle processen aan met de zoekterm in de naam, terwijl het commando killall alleen processen aanspreekt die exact overeenstemmen.
Lijst van alle lopende processen opvragen
Het commando ps geeft een overzicht van alle lopende processen weer in de terminal.
Als je een gedetailleerde uitvoer nodig hebt, gebruik je ps met de opties -f(gedetailleerd) of -F (zeer gedetailleerd).
Verdere opties vind je in de gebruiksaanwijzingspagina's van je besturingssysteem.
Lopende procedures opvragen als boomstructuur
Gebruik pstree om alle lopende processen weer te geven in een boomstructuur.
De algemene syntaxis van het commando luidt:
Formaat en omvang van de uitvoer kan worden aangepast met diverse opties.
Prioriteiten van lopende processen wijzigen
Met het opdrachtregelcommando renice kun je de prioriteit van een lopend proces wijzigen.
De algemene syntaxis luidt:
De adressering wordt geregeld met behulp van opties via het proces-ID (-p PID), het groeps-ID (-g GID) of een gebruikersnaam (-u GEBRUIKER).
renice 12 -p 1234
Aan het proces met het ID 1234 wordt de prioriteit 12 toegewezen.
renice 3 -g 3456
Aan alle lopende processen van de groep met het GID 3456 wordt een prioriteit van 3 toegewezen.
sudo renice -6 -u peter24
Aan alle lopende processen van de gebruiker peter24 wordt een prioriteit van -6 toegewezen.
Als je renice gebruikt zonder optie wordt de standaardwaarde -p aangenomen en de volgende string geïnterpreteerd als proces-ID.
Met het opdrachtregelcommando sleep kun je de huidige terminalsessie voor een bepaalde tijd onderbreken.
De algemene syntaxis van het commando luidt:
Als je sleep gebruikt zonder suffix wordt het ingevoerde getal geïnterpreteerd als tijdspanne in seconden (s). Je kunt de terminalsessie ook voor minuten (m), uren (h) of dagen (d) onderbreken.
De volgende invoer onderbreekt de sessie voor 4 minuten:
Het commando is bijvoorbeeld geschikt om de uitvoering van een volgend commando te vertragen:
sleep 1h && reboot
Het systeem wacht een uur en voert vervolgens het commando reboot uit, waarmee het systeem opnieuw wordt opgestart.
Processen toewijzen aan bepaalde processoren
taskset is een opdrachtregelcommando voor het uitgebreide procesbeheer, dat bij multi-processystemen wordt gebruikt om processen of commando's aan bepaalde processors toe te wijzen.
Het commando vereist rootrechten en maakt gebruik van een van de volgende schema's:
taskset [OPTIES] VENSTER COMMANDO
taskset [OPTIES] -p PID
De toewijzing van proces/commando aan processor wordt geregeld met behulp van een hexadecimaal bitmask. Bijvoorbeeld:
0x00000001 = processor #0
0x00000003 = processor #0 en #1
0xFFFFFFFF = alle processoren (#0 tot #31)
Omdat een dergelijke toewijzing via een bitmask niet heel intuïtief is, wordt taskset in de regel met de optie -c (--cpu-list) gebruikt, die een numerieke toewijzing van de processors mogelijk maakt (bijvoorbeeld 0, 5 7, 9-11).
Het volgende commando instrueert het proces 1234 de processors 1 en 2 te gebruiken:
taskset -p 1234 -c 1,2
Met het commando top vraag je een dynamisch overzicht van alle lopende processen op.
Dit doe je volgens het volgende schema:
De uitvoer van procesgegevens kan met behulp van diverse opties worden gewijzigd. Bovendien ondersteunt het top-procesoverzicht (onder meer) de volgende hotkeys om de uitvoer te sorteren:
[P] = Sorteert de uitvoer op CPU-belasting
[M] = Sorteert de uitvoer op geheugenverbruik
[N] = Sorteert de uitvoer numeriek op PID
[A] = Sorteert de uitvoer op leeftijd
[T] = Sorteert de uitvoer op tijd
[U GEBRUIKERSNAAM of UID] = filtert de uitvoer op de betreffende gebruiker
Gebruik de hotkey [H] om een helppagina weer te geven en [Q] om het procesoverzicht te verlaten.
Wil je ook bij bestandsinhouden van meerdere pagina's het overzicht behouden? Met een opdrachtregelprogramma uit de categorie pager selecteer je gericht welke secties je wilt weergeven in de terminal en blader je indien gewenst in de interactieve modus door het bestand.
De eerste regels van een bestand weergeven
De pager head wordt gebruikt om het eerste deel van een bestand weer te geven.
De algemene syntaxis van het commando luidt:
Gebruik de optie -n AANTAL_REGELS om te bepalen hoeveel regels beginnend met de eerste er moeten worden weergegeven.
head -n 3 voorbeeld.txt
De eerste drie regels van het bestand voorbeeld.txt worden weergegeven. Zonder vermelding van het aantal regels geeft head de eerste 10 regels van het betreffende bestand weer.
Tekstbestanden weergeven in de terminal
Met het opdrachtregelprogramma less kan de inhoud van een tekstbestand worden weergegeven in de terminal.
De algemene syntaxis luidt:
De gegevens worden automatisch weergegeven in de interactieve modus. Daarin kun je bladeren door het geselecteerde document of het doorzoeken op trefwoorden.
Met de toets [Q] wordt de interactieve leesmodus afgesloten. Overige besturingstoetsen en mogelijke opties vind je in de gebruiksaanwijzingspagina bij het programma.
Tekstbestanden weergeven in de terminal
De pager more vervult dezelfde functie als less, maar biedt minder functies.
Gebruik more volgens het volgende schema om een tekstbestand op te vragen en de inhoud ervan weer te geven in de terminal:
Het opdrachtregelprogramma toont altijd een complete beeldschermpagina van het geselecteerde bestand. Als een bestand meerdere pagina's omvat, start ook more een interactieve modus, waarin je met behulp van besturingstoetsen door het document kunt bladeren of het kunt doorzoeken op zoektermen.
Met de toets [Q] wordt de interactieve modus afgesloten. Verdere besturingstoetsen en mogelijke opties vind je in de gebruiksaanwijzingspagina's van je besturingssysteem.
De laatste regels van een bestand weergeven
Terwijl head standaard de eerste 10 regels van een geselecteerd bestand weergeeft, toont tail de laatste 10 regels.
Beide pagers worden volgens hetzelfde schema gebruikt (zie head).
In Linux heb je geen grafisch tekstverwerkingsprogramma nodig om configuratiebestanden te wijzigen, codefragmenten te bewerken of korte notities op te stellen. Teksteditors kunnen makkelijk en zonder vertraging worden geopend in de terminal. Hieronder stellen we drie programma's voor die je moet kennen.
Emacs is een platformonafhankelijke teksteditor, die naar wens kan worden uitgebreid met een programmeerinterface.
Emacs start standaard met een grafische gebruikersinterface, maar kan met de optie --no-window-system ook in de terminal worden geopend.
Emacs beschikt over een geïntegreerde tutorial, die kan worden geopend met de toetsencombinatie [CTRL] + [H], [T].
Nano is een GNU-emulatie van de terminalgebaseerde teksteditor Pico, die wordt gebruikt met de e-mailclient Pine. Nano biedt weliswaar een kleiner aantal functies dan vergelijkbare editors (bijvoorbeeld Vim), maar onderscheidt zich door een bijzonder gebruiksvriendelijke bediening.
De algemene syntaxis van het commando luidt:
Het programma opent het ingevoerde bestand in een editvenster in de terminal.
Als je Nano opent zonder bestandsnaam kan er een nieuw tekstbestand worden aangemaakt, dat wordt opgeslagen in de momenteel geselecteerde map.
De toetsencombinaties voor de bediening van het programma staan in de onderste rand van het editvenster. Verdere informatie over Nano vind je in de gebruiksaanwijzingspagina bij het programma.
Vim (kort voor Vi Improved) is een verder ontwikkelde versie van de teksteditor Vi, die zich onderscheidt door meerdere uitbreidingen zoals syntax-highlighting, een uitgebreid helpsysteem, native scripting, automatisch code-aanvulling en een visuele tekstselectie.
Het open-source-programma biedt verschillende bedrijfsmodi voor de bewerking van pure tekstbestanden en kan naar keuze worden gebruikt in de terminal of als standalone-toepassing met grafische gebruikersinterface (Gvim). Een belangrijk toepassingsgebied van het programma is de bewerking van programmacode.
Als je Vim start in de console vindt bediening plaats met het toetsenbord. Het programma wordt normaal gesproken samen met een tekstbestand geopend volgens het volgende schema:
Geopende bestanden laadt Vim in een buffer. Hier worden ook alle wijzigingen opgeslagen die je aanbrengt in het geopende bestand. Als je Vim opent zonder een bestand te vermelden, start het programma met een lege buffer. Het originele bestand wordt pas gewijzigd als het is opgeslagen met de overeenkomstige toetsencombinatie. Als er geen bestand bestaat dat overeenkomt met de naam die is ingevoerd bij het openen van het programma, wordt het nieuw aangemaakt wanneer het wordt opgeslagen.
Een uitgebreide inleiding voor Vim biedt het programma vimtutor, dat je ook met de opdrachtregel kunt starten.
In Linux kun je het netwerk ook makkelijk beheren vanuit de terminal. Of je nu de verbinding wilt controleren, DNS-informatie wilt opvragen, interfaces wilt configureren of bestanden naar een andere computer in het netwerk wilt overbrengen, met de volgende programma's is één enkele opdracht voldoende om je project in praktijk te brengen.
ARP-cache weergeven en manipuleren
Met het opdrachtregelprogramma arp kun je de ARP-cache van je besturingssysteem openen en manipuleren.
Gebruik arp zonder modificator om de inhoud van de ARP-tabel weer te geven in de terminal.
Je kunt de uitvoer met de optie -a ook beperken tot invoer bij een bepaalde hostnaam (als alternatief voor een IP-adres).
Als je ARP-invoer wilt aanmaken, gebruik je een commando met de optie -s volgens het volgende schema:
arp -s HOSTNAAM MAC_ADRES
arp -s example.com 00:05:23:73:e6:cf
Als de bestaande invoer moet worden verwijderd, gebruikt je arp met de optie -d:
dig is een lookup-Tool waarmee gegevens kunnen worden opgevraagd van DNS-servers en kunnen worden weergegeven in de terminal.
Het opdrachtregelprogramma wordt in de regel gebruikt volgens het volgende schema om het IP-adres en andere DNS-gegevens bij een bepaalde domeinnaam op te vragen:
dig [@SERVER] [DOMEIN] [TYPE]
SERVER is de DNS-server die moet worden doorzocht op de gewenste gegevens. Als er geen server wordt vermeld, bepaalt dig de standaard DNS-server uit het bestand /etc/resolv.conf.
DOMEIN staat voor de domeinnaam waarbij DNS-gegevens moeten worden achterhaald.
Als TYPE kan het aanvraagtype worden vastgelegd, bijvoorbeeld ANY (alle invoer), A (I.p.v.4-record van een host) of AAAA (I.p.v.6-record van een host). Als standaard aanvraagtype is A gedefinieerd.
Gebruik dig met de optie -x om in het kader van een reverse-lookup de domeinnaam bij een bepaald IP-adres op te vragen.
dig [@SERVER] [-x IP-ADRES]
De argumenten NAAM, TYPE en KLASSE zijn in dit geval niet nodig.
Bestanden verzenden via FTP
Met het opdrachtregelprogramma ftp beschikken de meeste Linux-distributies over een standaard geïnstalleerd clientprogramma voor de datatransfer via FTP (File Transfer Protocol). Hiermee kun je bestanden uitwisselen tussen het lokale systeem en een andere computer in het netwerk.
Gebruik ftp volgens het volgende schema om een verbinding met de FTP-server van de doelcomputer tot stand te brengen.
De adressering is op basis van hostnaam of IP-adres. Optioneel kan er een portnummer worden vermeld.
Bij het tot stand brengen van de verbinding wordt er in de regel gevraagd naar je gebruikersnaam en het bijbehorende wachtwoord.
Als het inloggen is gelukt, start ftp een opdrachtregelinterpreter, die gebruikersinvoer aanneemt in de vorm van commando's. Het programma ondersteunt diverse commando's waarmee je het bestandssysteem van de doelcomputer kunt doorzoeken en beheren, alsook bestanden van het ene systeem naar het andere kunt verzenden.
Netwerkinterfaces opvragen en configureren
Het opdrachtregelprogramma ip maakt deel uit van de programmacollectie iproute2, waarmee netwerkinterfaces via de terminal kunnen worden opgevraagd en geconfigureerd.
De algemene syntaxis van het commando luidt:
ip [OPTIES] OBJECT [COMMANDO [ARGUMENTEN]]
Welke actie via ip wordt uitgevoerd, bepaal je met behulp van objecten, subcommando's en hun argumenten.
Het programma ondersteunt diverse objecten zoals address (IP-adres), link (netwerkinterface), route (invoer in de routing-tabel) of tunnel, waarop subcommando's als add, change, del, list of show kunnen worden toegepast.
Als je bijvoorbeeld het IP-adres van een bepaalde netwerkinterface (bijvoorbeeld eth0) opvraagt, gebruik je het commando ip in combinatie met het object address, het commando show en het argument dev eth0:
ip address show dev eth0
Objecten en commando's kunnen ook in afgekorte vorm worden overgedragen:
ip a s dev eth0
Als je alle gegevens bij een netwerkinterface (bijvoorbeeld eth0) wilt weergeven, gebruik je het opdrachtregelcommando ip met het object link, het commando show en het argument dev eth0:
ip link show dev eth0
ip l s dev eth0
Om een interface als eth0 te activeren of te deactiveren, ga je als volgt te werk:
ip link set eth0 up
ip link set eth0 down
Met haar brede spectrum aan functies vervangt de programmacollectie iproute2 meerdere oudere netwerktools zoals ifconfig, route en netstat.
Een overzicht van alle mogelijk opties, objecten, subcommando's en argumenten voor het opdrachtregelcommando ip en informatie over andere iproute2-programma's vind je in de gebruiksaanwijzingspagina's van je besturingssysteem.
WLAN-interfaces opvragen en configureren
Met het opdrachtregelprogramma iw kunnen WLAN-interfaces worden geconfigureerd, waarmee het zich heeft bewezen als actueel alternatief voor iwconfig.
Het commando is gebaseerd op een soortgelijke syntaxis als het ip-commando:
iw [OPTIES] OBJECT [COMMANDO]
dev NAAM_VAN_INTERFACE = netwerkinterface
phy NAAM_VAN_APPARAAT = WLAN-apparaat (via naam)
phy#INDEX_VAN_APPARAAT = WLAN-apparaat (via index)
reg = Regulatory Agent bij configuratie van regio- en landinstellingen
Gebruik iw met het commando help om de programmasyntax en mogelijke opties en commando's weer te geven.
Hier volgen enkele toepassingsvoorbeelden van het opdrachtregelprogramma iw:
Apparaateigenschappen van alle WLAN-interfaces weergeven:
Verbindingsstatus (datasnelheid en signaalsterkte) van een WLAN-interface (bijvoorbeeld wlan0) opvragen:
iw dev wlan0 link
iw dev wlan0 scan
Gebruik iw in combinatie met het commando scan om alle WLAN-netwerken in het ontvangstbereik en hun eigenschappen (radiokanaal, versleuteling, signaalsterkte enz.) weer te geven.
iw reg set NL
Apparaateigenschappen (bijvoorbeeld van wlan0) opvragen:
iw list dev wlan0
iw dev wlan0 station dump
De opties -f, -t en -r leveren een uitgebreide weergave met foutmeldingen over verbindingsstatus en tijdsaanduidingen.
Status van netwerkinterfaces opvragen
Met het opdrachtregelprogramma netstat kan de status worden opgevraagd van netwerkinterfaces.
De algemene syntaxis van het commando luidt:
Gebruik netstat zonder optie om alle open sockets in de terminal weer te geven.
Je kunt ook de volgende opties gebruiken om routingtabellen (-r), interfacestatistieken (-i), gemaskeerde verbindingen (-M) of netlink-berichten (-N) te bekijken.
Een alternatief voor netstat is het programma ss uit de programmacollectie iproute2.
Net als dig is ook nslookup gericht op het vinden van namen. Je kunt het opdrachtregelprogramma gebruiken in twee modi: interactief en niet-interactief.
De interactieve modus start je door het commando nslookup zonder aanvulling in te voeren in de terminal.
Het programma neemt alleen commando's aan. Voer bijvoorbeeld een hostnaam (domein) in om het overeenkomstige IP-adres weer te geven.
Je kunt ook een reverse-lookup-aanvraag starten door een IP-adres in te voeren en de bijbehorende hostnaam weer te laten geven.
Het programma nslookup gebruikt automatisch de DNS-server die standaard in het systeem is ingesteld.
Voer het commando exit in om nslookup af te sluiten.
Als je nslookup wilt gebruiken in de niet-interactieve modus open je het programma in combinatie met een hostnaam of een IP-adres.
Omdat het programma officieel verouderd is, wordt gebruikers geadviseerd dig te gebruiken.
Gebruik het opdrachtregelprogramma ping om de bereikbaarheid van een andere computer in het netwerk te controleren.
Het commando wordt gebruikt met de volgende syntaxis:
Om de netwerkverbinding te controleren, verzendt ping een klein datapakket naar het ingevoerde doelsysteem (hostnaam of IP) en meet het de tijd totdat er een antwoord wordt ontvangen.
Samen met de pakketomlooptijd (Round trip time, RTT) – de tijdspanne tussen verzending van het datapakket en ontvangst van het antwoord – schrijft ping ook het IP-adres van het doelsysteem in de terminal. Het opdrachtregelprogramma is daardoor ook geschikt om het IP-adres van een domein te achterhalen.
Als ping zonder optie wordt uitgevoerd, loopt het programma tot het handmatig wordt gestopt met de toetsencombinatie [CTRL] + [C] en stuurt het een ping-aanvraag per seconde naar het doelsysteem.
Als je al bij het openen van het programma een eindtijdstip wilt definiëren, gebruik je de opties -c AANTAL (aantal ping-aanvragen die moeten worden verzonden) of -w SECONDEN (tijdspanne in seconden waarna ping zichzelf afsluit).
IP-routing-tabellen weergeven en bewerken
Met het opdrachtregelprogramma route kunnen IP-routing-tabellen van de kernel worden opgevraagd en bewerkt.
Het commando wordt gebruikt met de volgende syntaxis:
route [OPTIES] [add|del] [-net|-host] DOEL Gebruik het commando zonder optie om de complete routing-tabel van de kernel weer te geven:
Als je een route naar een netwerk wilt instellen, gebruik je het subcommando add.
route add -net 10.0.0.0
Als het doel een subnet is, moet het subnetmasker via de optie netmask MASKER ook worden aangegeven:
route add -net 10.0.0.0 netmask 256.245.155.0
Er kan ook een route naar een computer worden ingericht:
route add -host 218.89.72.191
Als het systeem over meerdere netwerkinterfaces beschikt, moet er via de optie dev INTERFACE worden aangegeven welke interface er moet worden gebruikt:
route add -net 10.0.0.0 netmask 256.245.155.0 dev eth0
Als het doel slechts via een router bereikbaar is, moet ook deze worden aangegeven met de optie gw ROUTER.
route add -net 10.0.0.0 netmask 256.245.155.0 gw 10.0.1.261
Als je een route wilt verwijderen, gebruik je het subcommando del.
route del -host 218.89.72.191
Met het opdrachtregelprogramma rsync kunnen bestanden lokaal of via een netwerk worden gesynchroniseerd. Daarvoor worden eerst de grootte en de wijzigingstijd van de betreffende bestanden vergeleken.
Als bron en doel zich op hetzelfde systeem bevinden, worden afwijkende bestanden compleet gekopieerd. Bij de synchronisatie via een netwerk gebruikt rsync een delta-transfer-algoritme, zodat alleen gewijzigde bestandsdelen hoeven te worden gekopieerd van de brongegevensdrager naar het doelsysteem.
De syntaxis van het commando luidt:
rsync [OPTIES] BRON(NEN) DOEL
rsync -a home/user/documenten/ /home/user/back-up
Alle bestanden uit home/user/documenten/ worden vergeleken met de bestanden in de map /home/user/back-up.
Het commando rsync wordt in de regel uitgevoerd met de optie -a, die ervoor zorgt dat alle submappen en symbolische links mee worden gekopieerd en alle gebruikersrechten worden overgenomen.
Bestanden verzenden via SFTP
Het opdrachtregelprogramma sftp is net als ftp bedoeld voor de datatransfer in het netwerk. Daarbij worden alle handelingen verricht via een versleutelde SSH-verbinding (secure shell).
Net als ftp brengt sftp een verbinding met een doelcomputer in het netwerk tot stand om vervolgens een interactieve commandomodus te starten.
Bestanden verzenden via SCP
Met scp (kort voor secure copy) kun je direct in de terminal nog een programma gebruiken voor veilige gegevensoverdracht in het netwerk: scp kopieert gegevens van de ene computer naar de andere en maakt daarbij ook gebruikt van het netwerkprotocol SSH.
Het clientprogramma functioneert ongeveer zoals de bestandsoptie cp, maar wordt volgens de volgende syntaxis systeemoverkoepelend gebruikt:
scp [OPTIES] BESTAND [[user@]remote_host:]PAD
Bij de vermelding van het pad van de verwijderde computer worden de gebruikersnaam en de betreffende naam van de host vooropgezet. Lokale bestanden kunnen expliciet worden geadresseerd door middel van relatieve of absolute paden.
Het bestand image.jpg wordt uit de lokale map images gekopieerd naar de map archief op een doelcomputer met het adres example.com.
Het programma scp ondersteunt bovendien de datatransfer in omgekeerde richting en tussen twee remote-systemen.
scp [OPTIES] [[user@]host:]BESTAND PAD
scp [OPTIES] [[user@]host1:]BESTAND [[user@]host2:]PAD
Verdere opties bieden je de mogelijkheid om wijzigingen aan te brengen in de overdrachtsmodus en in de versleutelingsinstellingen.
Gebruik het opdrachtregelcommando traceroute volgens het volgende schema om de transportroute van een IP-datapakket tussen jouw systeem en een doelcomputer te traceren.
Via traceroute kan worden achterhaald welke routers en internetknooppunten een IP-pakket onderweg naar de doelcomputer passeert, bijvoorbeeld om de oorzaak voor een vertraging vast te stellen.
Het opdrachtregelcommando tty geeft de bestandsnaam weer van de terminal die als standaard input is gedefinieerd.
De algemene syntaxis van het commando luidt:
Linux biedt diverse technologieën waarmee bestanden in archieven kunnen worden verpakt en gecomprimeerd. Daarbij dient te worden opgemerkt dat niet iedere archivering een compressie is. Zo wordt tar, een programma voor het archiveren van bestanden, in de regel gecombineerd met compressieprogramma's zoals gzip, bzip2 of xz.
Bestanden schrijven en extraheren in tar-archieven
Het commando tar staat voor tape archiver, een programma dat oorspronkelijk werd ontwikkeld om bestanden op tapedrives op te slaan. tar is in Linux nog steeds een van de populairste programma's voor het archiveren van bestanden.
Met het programma kunnen verschillende bestanden en mappen sequentieel naar een tar-bestand worden geschreven en van daaruit indien gewenst ook weer worden hersteld. Anders dan bij het in Windows gebruikelijke zip-formaat blijven daarbij alle gebruikersrechten van de gearchiveerde bestanden ook na het uitpakken behouden.
Het opdrachtregelprogramma tar wordt geopend met de volgende syntaxis:
Als je een nieuw archief wilt aanmaken, gebruik je tar met de opties -c (nieuw archief aanmaken) en -f (archief naar aangegeven bestand schrijven of daaruit uitlezen).
In het volgende voorbeeld worden de bestanden bestand1.txt en bestand2.txt naar het nieuw aangemaakte archief voorbeeld.tar geschreven.
tar -cf voorbeeld.tar bestand1.txt bestand2.txt
Als je de inhoud van een archief wilt bekijken, gebruik je tar met de opties -t (inhoud van een archief weergeven), -v (gedetailleerde weergave) en -f (zie boven).
Als gearchiveerde bestanden moeten worden uitgepakt in de huidige map, wordt tar gebruikt met de opties -x (bestanden extraheren uit archief) en -f (zie boven).
Met -j (bzip2), -J (xz), -z (gzip) en -Z (compress) biedt tar daarnaast opties waarmee archieven met het openen van een ander programma tijdens de in- en uitpakprocessen te comprimeren of decomprimeren.
In het volgende voorbeeld worden de bestanden bestand1.txt en bestand2.txt gearchiveerd in voorbeeld.tar.gz en gecomprimeerd met gzip.
tar -czf voorbeeld.tar.gz bestand_1.txt bestand_2.txt
Het volgende commando extraheert en decomprimeert alle in voorbeeld.tar.gz gearchiveerde bestanden.
Bestanden comprimeren of decomprimeren met gzip
gzip (kort voor GNU zip) is een programma waarmee bestanden eenvoudig kunnen worden gecomprimeerd en gedecomprimeerd via de opdrachtregel.
De algemene syntaxis van het commando luidt:
Gebruik gzip bijvoorbeeld volgens het volgende schema om het bestand voorbeeld.txt over te dragen naar het gecomprimeerde formaat voorbeeld.txt.gz:
Houd er rekening mee dat gzip het originele bestand standaard verwijdert tijdens het inpakken. Dit kan worden voorkomen met de optie -k.
Het programma kan indien gewenst op meerdere bestanden tegelijk worden toegepast. Daarbij wordt ieder bronbestand overgedragen naar een zelfstandig gz-bestand.
gzip voorbeeld_1.txt voorbeeld_2.txt voorbeeld_3.txt
genereert de bestanden voorbeeld_1.txt.gz, voorbeeld_2.txt.gz en voorbeeld_3.txt.gz.
Als je meerdere bestanden naar een gezamenlijk gecomprimeerd archief wilt schrijven, gebruik je gzip in combinatie met het archiveringsprogramma tar.
Als je een gz-bestand wilt decomprimeren, gebruik je het commando gzip met de optie -d. Het commando gunzip kan als alternatief worden gebruikt.
Ook uitgepakte gz-bestanden worden standaard verwijderd. Als je naast het geëxtraheerde bestand ook het gz-bestand wilt behouden, gebruik je ook hier de optie -k.
De gzip-compressie is gebaseerd op het deflate-algoritme (een combinatie van LZ77 en Huffman-codering). In vergelijking met andere compressiemethoden onderscheidt gzip zich door zijn snelheid. De compressiegraad is echter net zo laag.
Bestanden comprimeren en decomprimeren met bzip
Een populair alternatief voor gzip is het opdrachtregelprogramma bzip2. Dit gebruikt dezelfde syntaxis als gzip maar is gebaseerd op een drietraps compressieproces, waarmee een beduidend hogere compressiegraad mogelijk is.
Eerst worden de verzonden bestanden per blok onderworpen aan de omkeerbare Burrows-Wheelertransformatie en vervolgens aan de Move-to-front-transformatie. De eigenlijke datacompressie vindt vervolgens plaats met behulp van een Huffman-codering.
Bestanden die zijn gecomprimeerd met bzip2 hebben de bestandsextensie .bz2. Gebruik bzip met het volgende schema om bestanden te comprimeren.
Ook bzip2 kan worden gebruikt voor tar-archieven.
De decompressie vindt analoog plaats met gzip met de optie -d. Als alternatief kan het commando bunzip2 worden gebruikt.
De hoge compressiegraad gaat voor gebruikers gepaard met een relatief lange looptijd.
Bestanden comprimeren en decomprimeren met xz
Het opdrachtregelprogramma xz verzendt bestanden naar het gelijknamige datacompressieformaat xz. Het programma wordt geopend volgens hetzelfde schema als bij gzip en bzip2.
Bestanden die zijn gecomprimeerd met xz hebben de bestandsextensie .xz. Decompressie vindt net als bij gzip en bzip plaats met de optie -d. Als alternatief kan het commando unxz worden gebruikt.
Net als gz- en bz2-bestanden zijn xz-bestanden geen archiefbestanden. Als je meerdere bestanden in hetzelfde gecomprimeerde xz-bestand wilt schrijven, moet je ook bij dit compressieprogramma gebruikmaken van de archiveringstool tar.
xz ondersteunt diverse compressiealgoritmes. Standaard wordt het Lempel-Ziv-Markow-algoritme gebruikt (LZMA/LZMA2)
Bestanden schrijven en extraheren in archiefbestand
cpio (kort voor copy in, copy out) is een archiveringsprogramma waarmee gegevens naar een archiefbestand (.cpio) kunnen worden geschreven en van daaruit kunnen worden geëxtraheerd.
Als je in Linux toegang wilt krijgen tot een bestandsysteem op een andere partitie moet het eerst worden geïntegreerd in de mappenstructuur van je besturingssysteem. Men spreekt dan van mounten (of aankoppelen) van een partitie. Dit kan indien nodig worden geregeld in de grafische gebruikersinterface. Opdrachtregelprogramma's als lsblk, blkid en mount bieden de mogelijkheid om gegevens over aangesloten blok opslagapparaten op te vragen en deze indien nodig aan of af te koppelen.
Als een bestandssysteem via de terminal moet worden geïntegreerd in de mappenstructuur van het besturingssysteem wordt in Linux het opdrachtregelprogramma mount gebruikt.
De algemene syntaxis van het commando luidt:
mount [OPTIES] APPARAAT MOUNTPOINT
APPARAAT = Het pad naar het apparaatbestand van het opslagapparaat dat je als partitie wilt aankoppelen.
MOUNTPOINT = De plaats in de mappenstructuur van je besturingssysteem waar je de partitie wilt integreren. De mountpoint wordt meestal als absoluut pad ingevoerd.
Het apparaat sdd wordt in de map /media/usb aangekoppeld.
In de regel herkent Linux het betreffende bestandssysteem van het apparaat automatisch. Als dit niet het geval is, biedt de optie -t de mogelijkheid om het bestandssysteem (bijvoorbeeld ext4) expliciet te vermelden:
mount -t ext4 /dev/sdd /media/usb
Als er een reeds geïntegreerd bestandssysteem moet worden afgekoppeld, wordt het commando unmount gebruikt:
Als je alle bestandssystemen wilt laten weergeven die in je besturingssysteem zijn geïntegreerd, gebruik je het commando mount met de optie -l.
De weergave kan via -t worden beperkt tot bestandssystemen van een bepaald type.
Informatie over aangesloten blok opslagapparaten weergeven
Gebruik het commando lsblk (kort voor list block devices) om alle aangesloten blok opslagapparaten en partities weer te geven als boomstructuur. Deze hoeven niet per se geïntegreerd te zijn.
Het commando wordt gebruikt met de volgende syntaxis:
De uitvoer omvat de volgende gegevens:
NAME = apparaatnaam (bijvoorbeeld sda) respectievelijk partitienaam (bijvoorbeeld sda1, sda2 enz.)
MAJ:MIN = major:minor apparaatnummer
RM = wisselmedium (1 = van toepassing, 0 = niet van toepassing)
SIZE = geheugenomvang van apparaat
RO = read-only-apparaat (1 = van toepassing, 0 = niet van toepassing)
Indien gewenst kan de uitvoer met behulp van de optie -o (--output) en een overzicht van de gewenste attributen individueel worden aangepast, om extra gegevens op te vragen zoals identificatienummer (UUID), bestandssysteem (FSTYPE) of staat (STATE).
lsblk -o NAME,FSTYPE,UUID, SIZE,OWNER,GROUP,MODE,TYPE,MOUNTPOINT
In de standaardinstelling worden lege opslagapparaten overgeslagen. Als je deze ook wilt opnemen in het overzicht gebruik je lsblk in combinatie met de optie -a (--all).
Als je alleen gegevens over een bepaald apparaat wilt opvragen, gebruik je lsblk volgens het volgende schema:
Informatie over aangesloten blok opslagapparaten weergeven
Net als lsblk geeft ook blkid gegevens weer over aangesloten blok opslagapparaten.
Gebruik blkid volgens het volgende schema om het identificatienummer (UUID) en bestandssysteemtype (TYPE) van alle aangesloten blok opslagapparaten op te vragen.
Een weergave in tabelvorm krijg je met behulp van de optie -o in combinatie met de waarde list.
Ook blkid kan worden beperkt tot een geselecteerd apparaat:
Bit-nauwkeurig kopiëren van bestanden, partities of gegevensdragers
Met het opdrachtregelprogramma dd kan een kopie worden gemaakt, waarbij gegevens bit voor bit uit een inputfile (if) worden uitgelezen en naar een outputfile (of) worden geschreven.
Het programma wordt geopend met de volgende syntaxis:
dd if=bron of=doel [OPTIES]
Als bron en doel kunnen daarbij zowel afzonderlijke bestanden als complete partities (bijvoorbeeld /dev/sda1) of een compleet opslagapparaat (bijvoorbeeld /dev/sda) worden aangegeven.
De complete vijfde partitie van /dev/sda wordt tot op de bit nauwkeurig gekopieerd naar de eerste partitie /des/sdb.
Met opties kan het kopieerproces worden beperkt tot een willekeurig aantal opslagblokken van de gewenste grootte.
Hieronder vind je een overzicht van verdere standaardcommando's in Linux die niet kunnen worden ingedeeld in een van de hierboven genoemde categorieën.
Afkortingen voor programma-aanvragen definiëren
Met het opdrachtregelprogramma alias kun je afkortingen definiëren voor programma-aanvragen.
Gebruik alias volgens het volgende schema:
Vervang de plaatshouder COMMANDO door een willekeurig opdrachtregelcommando inclusief opties. Dit wordt verbonden met de voor de plaatshouder AFKORTING geplaatste tekenreeks.
De tekenreeks ll wordt met de optie -l (gedetailleerde weergave) gedefinieerd als alias voor het commando ls.
Open het opdrachtregelprogramma at volgens het volgende schema om een commando tijdgestuurd uit te voeren.
at 10:00 AM 6/22/2019
Voer vervolgens het commando in en sluit de interactieve modus met [CTRL] + [D].
Gebruik cal volgens het volgende schema om een kalender weer te geven in de terminal.
cal [OPTIES] [[MAAND] jaar]
Het systeem geeft een maandoverzicht weer voor december 2019.
String weergeven in de standaardweergave
Gebruik het opdrachtregelcommando echo om een tekenreeks in regels weer te geven in de standaarduitvoer (in de regel de terminal).
De algemene syntaxis van het commando luidt:
Tekstbestanden voorbereiden voor afdrukken
Gebruik het opdrachtregelprogramma pr om tekstbestanden voor te bereiden voor afdrukken.
De algemene syntaxis van het commando luidt:
In de standaardinstelling maakt pr een paginaheader aan die de bestandsnaam, de huidige datum en het paginanummer bevat.
Met het opdrachtregelprogramma script kun je een terminalsessie meeschrijven in het bestand typescript. Als typescript reeds een eerdere sessie bevat, wordt deze overschreven.
De registratie start automatisch als het programma wordt geopend:
Gebruik de toetsencombinatie [CTRL] + [D] om de registratie af te sluiten.
Als je de registratie in plaats van typescript in een ander bestand wilt opslaan, open je script in combinatie met een bestandsnaam of -pad.
Gebruik het commando seq om een getallenreeks weer te geven in de standaarduitvoer. Definieer daarbij een startwaarde, een eindwaarde en een increment naar keuze.
seq [OPTIES] STARTWAARDE INCREMENT EINDWAARDE
seq 0 2 10
Het programma telt vanuit de startwaarde 0 in stappen van twee tot 100.
Het opdrachtregelprogramma tasksel dient als installatiehulp voor standaardtoepassingen (e-mailserver, DNS-server, OpenSSH-server, LAMP-server enz.). Gebruik de tool om alle pakketten en programma's die nodig zijn om een taak automatisch in de juiste volgorde te installeren.
Open tasksel met de optie --list-tasks om een lijst van alle beschikbare standaardtoepassingen weer te geven.
Als je meer gegevens over een standaardtoepassing uit deze lijst wilt opvragen, gebruik je tasksel met de optie --task-desc en de overeenkomstige taak.
Er worden gegevens over de taak 'mail-server' weergegeven.
Als je alle pakketten die bij de taak 'mail-server' horen, wilt weergeven, gebruik je tasksel in combinatie met de optie --task-packages.
Een installatie van alle pakketten met een standaardtoepassing start je met het subcommando install. Er zijn rootrechten vereist.
Het opdrachtregelprogramma leidt de installatie van alle pakketten in die voor de taak 'mail-server' vereist zijn.
tee is een opdrachtregelprogramma waarmee de uitvoer van een programma kan worden verdubbeld. Daarbij wordt de ene uitvoer doorgeleid naar de standaarduitvoer en de andere geschreven naar een bestand dat is ingevoerd met het tee-commando.
De algemene syntaxis van het commando luidt:
In de regel wordt tee gebruikt in combinatie met het omleidingsteken pipe (|).
ls | tee voorbeeld.txt
Het commando ls geeft de inhoud van de huidige map weer. De programma-uitvoer wordt via pipe doorgestuurd naar het opdrachtregelprogramma tee, dat deze zowel in de terminal weergeeft als naar het bestand voorbeeld.txt schrijft.
Looptijd van programma’s meten
Gebruik het commando time volgens het volgende schema om de looptijd van programma's te bepalen die je start via de terminal.
time [OPTIES] commando [ARGUMENTEN]
Tekens in tekstbestanden vervangen.
Gebruik tr om een willekeurige hoeveelheid tekens te verwijderen of te vervangen door andere. Daarvoor leest tr de datastroom van de standaardinvoer in en schrijft het deze naar de gewenste modificatie op de standaarduitvoer.
Als er een tekenvolume moet worden vervangen door een ander wordt tr met twee argumenten gebruikt.
tr OPTIE TEKENVOLUME1 TEKENVOLUME2
Het tweede argument (TEKENVOLUME2) vervangt het eerste (TEKENVOLUME1).
Als je een tekenreeks wilt verwijderen, gebruik je tr met de optie -d en voer je de te verwijderen sequentie in als argument.
Het opdrachtregelprogramma wordt in de regel gebruikt in combinatie met omleidingstekens ( ) om wijzigingen in bestanden aan te brengen.
tr 'a-z' 'A-Z'   voorbeeld2.txt
tr leest de inhoud van het bestand voorbeeld1.txt in, vervangt de kleine letters a tot z door grote letters en schrijft de output naar het bestand voorbeeld2.txt.
Berichten versturen naar alle aangemelde gebruikers
Met het opdrachtregelprogramma wall kun je alle in het systeem aangemelde gebruikers een bericht sturen.
Om een bericht te verzenden, start je het programma met het volgende commando:
Bevestig de programma-aanvraag met [enter] en voer je bericht in. Ook dit wordt bevestigd met [enter] en verzonden met de toetsencombinatie [CTRL]+[D].
Alle in het systeem aangemelde gebruikers ontvangen je bericht als broadcast-message in de terminal.
Let op: om berichten te kunnen ontvangen, moet je andere gebruikers een schrijfrecht voor je terminal toekennen. Gebruik hiervoor het commando mesg:
Als je bestandsinhoud wilt versturen naar alle aangemelde gebruikers gebruik je wall in combinatie met een invoeromleiding en de bijbehorende bestandsnaam:
Met het opdrachtregelprogramma watch kun je een commando uitvoeren in regelmatige intervallen.
Het programma wordt geopend met de volgende syntaxis:
Het tijdsinterval waarin het met watch ingevoerde commando periodiek wordt aangevraagd, definieer je met behulp van de optie -n SECONDEN.
watch kan worden afgesloten met de toetsencombinatie [CTRL] + [C].
In het volgende voorbeeld wordt het systeem geïnstrueerd om de belasting van het werkgeheugen om de 10 seconden weer te geven.
watch -n 10 free
Regels, woorden, letters, tekens en/of bytes van tekstbestanden tellen
Het opdrachtregelprogramma wc (kort voor word count) geeft je indien gewenst het aantal regels, woorden, letters, tekens en/of bytes van een tekstbestand weer.
De algemene syntaxis van het commando luidt:
14 18 143 voorbeeld.txt
Als wc zonder optie wordt ingevoerd, komt de weergave overeen met het schema REGELS WOORDEN TEKENS BESTAND. Voor een gefilterde weergave ondersteunt het opdrachtregelprogramma de opties: -l (regels), -c (bytes), -m (tekens), -L (lengte van de langste regel) en -w (woorden).
Standaardinvoer in commandoregels veranderen
xargs is een opdrachtregelprogramma waarmee je de uitvoer van een voorafgaand commando als argument kunt toevoegen aan een commando. In de regel wordt daarbij de pipe (|) gebruikt als omleidingsteken.
Gebruik xargs volgens deze syntaxis:
COMMANDO1 | xargs [OPTIES] COMMANDO2
xargs wordt bijvoorbeeld gebruikt in combinatie met het commando find.
In het volgende voorbeeld stelt find in de huidige map alle bestanden vast die bij het zoekpatroon *.tmp passen en geeft het de namen ervan weer in de standaarduitvoer. Daar worden de bestandsnamen aangenomen door xargs en als argumenten toegevoegd aan het commando rm.
$ find . -name '*.tmp' | xargs rm
Het hier weergegeven overzicht maakt er geen aanspraak op volledig te zijn, maar omvat enkel de essentiële Linux-commando's met specifieke toepassingsvoorbeelden voor de alledaagse werkzaamheden met Unix-achtige besturingssystemen. Een uitgebreide beschrijving van de hier genoemde opdrachtregelprogramma's en alle andere commando's vind je in de gebruiksaanwijzingspagina's van je besturingssysteem. Een online versie van deze help- en documentatiepagina's wordt in het kader van het Linux-man-pages-project van Michael Kerrisk beschikbaar gesteld op kernel.org