Linux blog, ervaringen met en tips over Linux

In deze blog hou ik bij welke vermeldingswaardige dingen ik tegen gekomen ben bij het gebruik van Linux op desktops en laptops. Op 23 juni 2021 ben ik overgestapt van Windows 10 naar Linux. Ik heb toen gekozen voor Linux Mint Cinnamon en daar heb ik nog geen dag spijt van gehad. Later hebben wij onze laptops van (alleen maar) Linux Mint voorzien en ook daar zijn alleen maar blije gezichten. Ik had destijds relatief weinig ervaring met Linux, dus kwam ik dingen tegen die ik niet begreep of die "anders waren dan in Windows" en soms moest ik zelfs kleine probleempjes (het lijkt net Windows ;o) oplossen. Al dit soort beginnerszaken deel ik in dit blog. Vooral voor diegene die ook maar net begonnen zijn met Linux kunnen hier waardevolle informatie vinden.
Ik heb enorm veel ervaring met computers, dat startte reeds ergens eind jaren 70, maar Linux is voor mij relatief nieuw. Het kan dus best zijn dat mijn kennis soms niet voldoende is en dat ik onbedoeld iets verkeerds opschrijf of dat ik zonder het te weten niet volledig ben. Maar mijn Linux kennis bouw ik nog iedere dag uit en verwerk ik in dit blog. Voor mij werken in ieder geval onderstaande tips. Ik meen dus zeker niet alle kennis van Linux in pacht te hebben, verre van dat zelfs, ik leer nog iedere dag. Heb je waardevolle aanvullingen of verbeteringen? Ik hoor het graag van je.
Superkey - Supertoets?
In de linux-wereld wordt de "windows-toets" de "superkey" genoemd. Soms lees je "superkey-left" of "superkey-right", daarmee bedoelen ze de windows-toets aan de linker of rechterzijde van het toetsenbord. Wil je het menusysteem openen, dan druk je op de "supertoets".
Commando's uitvoeren "met de terminal"

In de beginjaren van de computer werden nog geen computermuizen gebruikt. In 1983 paste Apple voor het eerst een muis toe en pas na circa 1985 begon het gebruik van de muis bij een computer -voorzichtig- toe te nemen. Daarnaast was, begin jaren 80, het gebruikt van grafisch vormgegeven programma's met knopjes, schuifjes en plaatjes technisch gezien onmogelijk. De hardware in de computers kon alleen letters, cijfers en een beperkt aantal speciale symbolen op een scherm weergeven. Voor grafische zaken als tekeningen en foto's was de hardware gewoonweg niet toereikend.
Als je de computer startte dan kreeg je, na lang wachten, een leeg scherm voor je neus en een zogenaamde "opdrachtprompt". De opdrachtprompt die op je scherm verscheen was een teken (een aantal symbolen) waardoor je wist dat de computer voor jou beschikbaar was en dat je "één commando" kon invoeren en laten uitvoeren.
Wilde je de inhoud van een directory zien, dan moest je daarvoor een speciaal commando intypen. Wilde je naar een andere directory toe, dan moest je een ander commando invoeren waardoor het besturingssysteem begreep dat je naar een andere directory wilde. Wilde je een programma starten, dan moest je de naam van het programma intypen en dan op enter drukken.
Tegenwoordig is dat totaal anders. Alle programma's zijn grafisch vormgegeven en zijn met een computermuis te bedienen. Zo ook bij Linux computers, de programma's zien er het zelfde uit als op Windows en kan je met een muis bedienen. Maar er zijn een paar uitzonderingen, in die gevallen moet je de computer bedienen zoals dat "in de oertijd" ging. Het bedienen van een Linux computer "vanaf de commandprompt" wordt gedaan via een programma dat "terminal" heet. Technisch gezien is het een terminal emulator, het doet net na alsof je achter een terminal zit.
De terminal start je met toetscombinatie ctrl-alt-t (de t van terminal) maar je kan hem natuurlijk ook in het menu vinden onder >menu >administration >terminal. Zodra de terminal is gestart krijg je een zwart schermpje te zien en de "commandprompt", die prompt heeft (in cinnamon) de vorm van gebruikersnaam@computernaam:directory$ bijvoorbeeld sjaak@laptop:/media/windows$.
Een commando voer je uit "in de shell". De shell is een programma die je commando's leest, controleert en uitvoert. Als je voorbeelden van commando's ziet, in dit artikel maar ook overal op het internet, worden deze op een zeer herkenbare manier getoond door de tekens die je in moet typen te tonen op een grijze achtergrond. Hieronder zie je een voorbeeld commando om er achter te komen welke versie van de shell je draait. Start de terminal met ctrl-alt-t en voer dan onderstaande opdracht uit:
echo $0
Zeer waarschijnlijk krijg je te zien "bash". Je werkt dan met bash, dat is de naam van de shell. Dit is belangrijk te weten omdat je ook met een andere type shell zou kunnen werken en daar zijn bepaalde commando's iets anders of niet beschikbaar. Maar bij de meeste Linux installaties wordt standaard bash geïnstalleerd. Hieronder staat bijvoorbeeld hoe je met het commando "pwd" te zien krijgt in welke directory je je bevindt. Pwd staat in dit geval voor print working directory.
pwd
Wil je bijvoorbeeld de inhoud van de directory /var/log (waar de meeste logs van Linux staan) bekijken dan kan je dit commando gebruiken:
ls /var/log
Bovenstaand laat een "listing" (vandaar de naam "ls") van de directory zien, maar in een "compact" formaat. Wil je meer details dan gebruik je de optie -al bij het commando "ls".
ls -al /var/log
Pas de breedte van het terminal scherm aan om meer informatie op één regel te krijgen.
Omdat het aantal bestanden meer is dan de grootte van je scherm kan je het stukje voor stukje tonen door de inhoud te "pipen" (de output door te sturen) het symbool daarvoor is "|", naar het programma "more".
ls -al /var/log | more
Wil je de inhoud van een bestand zien, bijvoorbeeld syslog, dan kan je gebruik maken van dit commando:
cat /var/log/syslog
Copy & paste naar de terminal
Wil je een commando dat je ergens op het internet vindt copy en pasten naar de terminal dan werkt dat niet (helemaal) met ctrl-c en ctrl-v. Kopieer het commando met ctrl-c en in de terminal moet je (ergens in het scherm, waar maakt niet uit) rechtermuistoets gebruiken en dan kiezen voor paste.
Backslash of forward slash
In Windows zijn we gewend om een backslash te gebruiken, bijvoorbeeld om naar de directory user te gaan typen we in Windows: cd \user. Maar in Linux gebruiken we de forward slash. Naar de root directory gaat dus niet met cd \ maar met cd / en om naar de directory media te gaan (in de root) gebruik je cd /media
Spatie in directory en filenames
Als je in de terminal of in een script een naam wil gebruiken van een directory of filename die een spatie bevat moet je de naam tussen aanhalingstekens. Als voorbeeld: cd /media/windows/"Documents and Settings"
Je kan de spaties ook "escapen" door er een backslah voor te plaatsen zoals in cd /media/windows/Documents\ and\ Settings
Geschiedenis van terminal commando's
Alle commando's die je uitvoert in de terminal worden bewaard. Die commando's kan je bekijken door gebruik te maken (in de terminal natuurlijk) van het "pijltje omhoog". Met pijltje-omhoog en pijltje-omlaag kan je heen en weer in de geschiedenis van commando's kijken. Als je een bepaald commando ziet en dat wil je opnieuw uitvoeren dan hoef je alleen maar op enter te drukken. Ook kan je het commando eerst even aanpassen en dan pas uitvoeren met enter. Een compleet overzicht van de laatste 1000 door je gebruikte commando's kan je zien met het commando history
Hulp bij gebruik van commando's
Weet je niet hoe je een bepaald commando kan gebruiken of ben je niet bekend met alle opties dan kan je het commando intypen met daarachter --help bijvoorbeeld voor ls: ls --help. Je kan ook gebruik maken van de "manual pages", die kan je oproepen door "man " voor het commando te typen zoals de manual pages van ls: man ls
Windows schijf benaderen met read/write in plaats van read-only
Als je Linux "dual-boot" hebt geïnstalleerd op een pc waar ook Windows op staat dan kan je vanuit Linux ook je Windows schijf, noem het je C-schijf, benaderen. Maar wat blijkt, je kan je het alleen maar "lezen", dus "read-only". Daar is een hele goede reden voor. Maar je kan het wijzigen naar "read-write". Lees hier alle details.
Timeshift
Als je wijzigingen gaat aanbrengen aan je systeem dan is het verstandig om eerst een "system restore point" te maken. Dat doe je in Linux met "timeshift". Dat vindt je in je menu. We schrijven dat vanaf nu ">menu". En in het menu staat het onder "administration". Dus schrijven we dit als >menu >administration. De rest van timeshift hoeven we niet uit te leggen, het spreekt volgens ons vanzelf (hint: bekijk settings).
Snel iets vinden in het menusysteem
Hoewel wij consequent zullen opschrijven welk programma je voor een bepaalde taak moet gebruiken en waar je die kan vinden in het menu, is er een snellere manier. Dat is gewoon het menu openen (druk op de supertoets dat gaat wel zo makkelijk) en dan begin je gelijk te typen wat je zoekt. We geven twee voorbeelden: stel je wil het programma "timeshift" starten. Dan open je het menu en typ dan in een t en een i en dan zie je het programma al staan, je kan dan gelijk op enter drukken en timeshift wordt gestart. Wil je libre office calc starten dan is het menu en dan typ je in calc, je ziet dan de calculator staan (die is geselecteerd dus moet je niet op enter drukken), je kan dan met pijltje naar beneden libre office calc selecteren en op enter drukken.
TV kijken NPO start en Ziggogo met Linux
Een van de eerste probleempjes waar we tegen aanliepen was dat we met de webbrowser firefox niet naar NPOstart en Ziggogo konden kijken. We kregen een foutmelding. Uiteindelijk was het makkelijk opgelost, in dit artikel lees je alle details.
Linux updaten

Linux Mint Cinnamon maakt netjes duidelijk dat het tijd is om een update uit te voeren. In je systeemvak staat een schildje met een dikke stip er in. Zonder die stip valt er niets te doen. Met een stip moet (kan) je actie ondernemen. Eén keer klikken en de update manager wordt gestart. Klik daarna op de knop "Install updates" en daarna spreekt eigenlijk alles voor zich. Je kan tijdens het updaten gewoon door blijven werken. In enkele gevallen meldt men dat een reboot benodigd is. Je kan dat negeren als je dagelijks je pc reboot, dan wordt hij morgen wel bijgewerkt, snel genoeg volgens mij.
Vrijwel dagelijks komen er updates beschikbaar, en dus vrijwel dagelijks kan je deze update uitvoeren. Niets moet, alles mag. Het zijn meestal beveiligingsupdates. Het is dus wel slim om dit te doen. Je kan ook overwegen om eens in de week een update uit te voeren. Het is aan jou. Let op: ik kwamer er pas later achter dat dit proces alleen de besturingssysteembestanden updatet en de applicaties die meegeleverd zijn in je "distributie", dus niet de applicaties (die niet meegeleverd worden in je distributie). Lees daarover hier meer.
Soms, heel soms, kan een update zorgen dat iets dat eerst wel goed werkte ineens niet meer goed werkt. Geen nood. Met timeshift kan je een alles terugzetten zoals het systeem er gisteren uitzag. Daarna zal je de aangeboden updates niet in één keer moeten installeren, maar stuk voor stuk en kijken welke update het probleem veroorzaakt. Als je daar achter bent, dan kan je met rechtermuistoets die update op de "black list" zetten waardoor hij niet meer je aangeboden wordt.
Andere Linux kernal installeren en activeren
In Linux Mint is het héél simpel om een andere kernal versie te installeren of te activeren. Dat is vooral van toepassing als je nieuwe(re) hardware hebt die in de huidige kernal die standaard meegeleverd wordt nog niet ondersteund wordt. Ga naar >menu >administration >update manager >view >Linux kernals. Je ziet nu aan de linkerzijde verschillende Linux kernal versies staan. Selecteer de laatste (of een andere versie van je voorkeur), je krijgt nu een overzicht welke subversies bestaan van deze kernal, kies er een aan en klik op Install.
Let op: oudere versies van de kernal worden niet verwijderd, dat moet je zelf doen. Hou wel altijd een wat oudere versie achter de hand want als je computer eens een keer niet wil starten of wat dan ook dan kan je terugschakelen naar een oudere versie van de kernal.
Windowgrootte wijzigt als ik op de alt toets druk en met mijn muis beweeg
Als je op de alt-toets drukt en tegelijkertijd je muist beweegt met de linkermuistoets ingedrukt, gebeuren er mogelijk vreemde dingen die je niet verwacht. Zoals het verplaatsen en verkleinen van je window. Dit blijkt een "feature" te zijn die je aan of uit kan zetten in "system settings", "behaviour", "moving and resizing windows", "special key to move and resize windows" (cinnamon).
Firefox scrollbar
De breedte van de scrollbar in Firefox is standaard (in Linux) heel smal. Hij wijkt ook af van de scrollbar breedte die je binnen de desktop environement instelt. De oorzaak is daarvan is dat firefox (en wel meerdere applicaties) niet geschreven is voor Cinnamon, maar in een "multiplatform ontwikkeltool" is geschreven. Applicaties die je daarin schrijft maken juist niet van jouw desktop omgeving gebruik (omdat daar vele van bestaan en dan moet de programmeur vele versies onderhouden), maar de multiplatform ontwikkeltool biedt een eigen omgeving aan waarbinnen de applicaties draaien. Dat houdt in dat elementen binnen een window, waarin de applicatie draait, anders er uit (kunnen) zien dan van je eigen desktop environement. Zo dus ook de breedte van de scrollbar. Het is dus eigenlijk een soort dekstop environement binnen je een desktop environement. Vandaar dat het aanpassen van de scrollbar breedte met >menu>system. In dit artikel hebben we beschreven hoe je de scrollbarbreedte kan aanpassen.
Linux Mint upgrage 20.2 naar 20.3
Linux Mint brengt twee keer per jaar een upgrade uit van haar software. Eind december 2021 kwam versie 20.3 uit. Op zich hoef je deze upgrade niet uit te voeren. De versie 20.2 wordt nog een aantal jaren ondersteund en onderhouden. We hadden nog nooit een upgrade van Linux Mint meegemaakt, dus alleen daarom al wilde we het meemaken.
De upgrade procedure is hier netjes beschreven. Die hebben we gevolgd en na een aantal minuten was versie 20.3 geïnstalleerd. Bij ons ging alles goed en hebben we achteraf geen problemen tegen gekomen. Dat loopt dus lekker soepeltjes.
CRONJOB - CRONTAB: bepaalde taken automatisch op een bepaald tijdstip laten uitvoeren
Met cronjob / crontab kan je op vaste tijdstippen een taak laten uitvoeren. Het updaten van flatpak applicaties is een prachtig voorbeeld om dat met cronjob te automatiseren. Het programma heet "cronjob". De naam CRON is een acronym van "Command Run ON [een bepaald moment]". Met cronjob kan je een tabel (een bestand) aanpassen waarin de uit te voeren taken staan. Die tabel wordt crontab genoemd (van cron-table).
Je kan cronjob starten met crontab -e (de e staat denken we voor edit). Je werkt dan de crontabel bij (crontab). Maar let op, de commando's worden dan op "user" niveau uitgevoerd. Voor het uitvoeren van applicatie-updates moet dit als root gebeuren. Het commando sudo crontab -e past dit toe met root rechten.
Wij hebben de volgende regel in de crontab toegevoegd (voer het commando "sudo cronjon -e" uit, scroll helemaal naar beneden in dat bestand waarbij veel regels beginnen met # dat staat voor commentaar en wat er achter staat wordt genegeerd) en zet op een nieuwe lege regel:
* 11 * * * flatpak -y update >> ~/cron.log 2>&1
Sla daarna het bestand op met ctrl-x (zie onderste regel van die editor met de naam "nano") en antwoord met "y". Hiermee wordt iedere dag om 11 uur het updaten gestart en de output wordt naar een log gestuurd en daar aan toegevoegd daar zorgt de ">>" voor. De 2>&1 zorgt er voor dat eventuele fouten tijdens het commando ook naar deze log worden toegevoegd. je kan ook gebruiken het @daily commando om het "tijdstip" aan te geven voor het runnen van het commando
@daily flatpak - y update >> ~/cron.log 2>&1
Meer informatie over cron vindt je hier.Meldingen van cron worden in de syslog geschreven en kan je zichtbaar maken met:
grep CRON /var/log/syslog
Het bovenstaande commando kan je lezen als: haal met "grep" het bestand /var/log/syslog op en zoek naar regels die het woord CRON bevatten en laat die (alleen) zien.
Automatisch updaten van applicaties
We kregen bij het starten van sommige applicaties een een melding dat er een nieuwe versie beschikbaar was. Vreemd, worden de applicaties dan niet automatisch geüpdatet? We updaten ons systeem regelmatig door de update manager te starten. Dat is het "schild icoontje" in je systeemvak (lees hier meer). We begrepen het niet. Wordt dan niet automatisch alle software geüpgrade via de update manager?
waarschuwing: dit onderdeel doorgronden we nog niet helemaal en de tekst heeft nog de status "voorlopig"; zodra we meer te weten komen werken we dit stuk bij en als we redelijk zeker zijn dat we het geheel doorgronden zullen we deze waarschuwing verwijderen.
Laten we eerst eens opsommen wat voor soort software op je computer geïnstalleerd is en met welke "installatietechniek". Applicaties blijken op verschillende manieren beschikbaar gesteld te worden en kennen hun eigen installatietechnieken met de daaraan gekoppelde voor- en nadelen.
Welke software categoriën kan je tegenkomen op je computer?
- Alle software die onderdeel vormt van je "distributie". Dat is de kernal, de GNU software (die samen met de kernal het besturingsysteem vormen) en de bij de distributie standaard geïnstalleerde applicaties zoals Libre Office, Firefox, Chromium, Thunderbird, musicbox, etc.
- De "flatpak" applicaties die je via de software manager hebt geïnstalleerd.
- De "snap" applicaties die je mogelijk het geïnstalleerd.
- De "appimages" applicaties die je mogelijk hebt geïnstalleerd.
- De applicaties die je op basis van de zogenaamde PPA's (Personal Package Archive) hebt geïnstalleerd
- Mogelijk zijn de applicaties die je hebt geinstalleerd op basis van een gedownload .deb bestand (we doorgronden nog niet of dit een aparte categorie is)
- Applicaties die je gedownload hebt en zelf hebt gecompileerd.
- Windows applicaties die je onder WINE draait.
1. Alle software die onderdeel vormt van je "distributie"
In jouw distributie, op het moment van schrijven is dat voor mij Linux Mint Cinnamon, zit niet alleen de Linux kernal, vele GNU-applicaties voor het beheer, maar ook een aantal door de distributies meegeleverde applicaties zoals Libre Office, Firefox, Chromium, Celluloid en Rhythmbox. De "update manager" updatet alle in de distributie geleverde bestanden. Firefox en Chromium worden dus automatisch geüpdate. Meer over de update manager kan je hier vinden.
NB: hoewel de standaard applicaties zoals Libre Office, Firefox, ... automatisch geüpdatet worden, betekent dit nog niet dat je daardoor altijd over de laatste versie van de betreffende applicatie beschikt. Het is aan het team die de distributie samenstelt welke versie van een bepaalde applicatie beschikbaar wordt gesteld. Dat is meestal niet de laatste versie. Dat komt omdat de laatste versie meer bugs bevat dan een wat oudere (en aangepaste) versie. Hoewel je wellicht de laatste versie van Libre office wil draaien wordt deze standaard dus niet meegeleverd en ook niet via de update manager beschikbaar gesteld. Men kiest vrijwel altijd voor stabiliteit (weinig bugs) boven nieuwe functionaliteit. Hierop zijn een aantal uitzonderingen en dat zijn Firefox, Chromium en Thunderbird (wellicht nog een andere maar dit is de lijst die wij kennen).
2. Flatpak applicaties updaten
Sommige applicaties die je via de software manager hebt geïnstallerd (of ergens anders vandaan hebt gehaald) zijn zogenaamde "flatpak" installaties van de applicaties. Noem het "container", een applicatie in een container en die container heeft alle noodzakelijke libraries. Hiermee wordt het probleem van "afhankelijkheden" voorkomen. Maar dat is een ander verhaal.
Je kan een overzicht krijgen van de geïnstalleerde flatpak applicaties met het terminalcommando flatpak list. Wat we ontdekt hebben is dat de applicaties (op zijn minst de flatpak applicaties) met het commando flatpak update geüpdate worden. Om precies te zijn, er wordt dan éénmalig gekeken of er updates zijn en zo ja, dan worden deze geüpdatet.
3. Snap applicaties
Linux Mint ondersteund (heel bewust) standaard geen snap applicaties. Maar dat kan je wel "aanzetten". Wij vinden (tot nu toe) het snap systeem geen goed idee omdat men de "open" gedachte van Linux niet ondersteund. Dus we maken geen gebruik van snap. Zover we begrijpen worden snaps (snap applicaties) of je wilt of niet, automatisch geüpdatet en dat is één van de nadelen van snaps.
Met het commando snap list krijg je een overzicht met de geïnstalleerde snapit applicaties. Krijg je een foutmelding als "Command 'snap' not found, but can be installed with sudo apt install snapd" dan weet je dat snapd (de deamon van snap) nog niet geïnstalleerd is en je dus ook geen snapit applicaties hebt geïnstalleerd.
4. Appimage applicaties
Naast flatpak en snapit applicaties bestaan er ook "appimage " applicaties. Hoe je die moet updaten weet ik nog niet. De oude verwijderen en een nieuwe downloaden lijkt de meest logische keus.
5. PPA applicaties
Sommige applicaties zijn niet (of niet in de nieuwste versie) beschikbaar in de software manager. Je meldt je als het ware aan bij een website en zegt denkbeeldig "ik vertrouw jullie" en dat wordt in je computer vastgelegd welke sites je vertouwd. Vervolgens kan je de software downloaden en gebruiken. Deze software is niet gecontroleerd door anderen. Je moet goed nadenken of je dit wel wil. Het houdt een risico in. Hoe deze applicaties geüpdatet worden moeten we nog onderzoeken.
6. .deb applicaties
Je kan een applicatie ook installeren door op de website van de leverancier een .deb bestand te downloaden en deze uit te voeren/instaleren. We doorgronden nog niet of dit een aparte categorie. Of deze applicaties automatisch worden geüpdatet weten wij nog niet.
Applicaties die je gedownload hebt en zelf hebt gecompileerd
Het is voor een doorsnee Linux gebruiker ongebruikelijk, maar er zijn enkele die een applicatie op basis van broncode (source code) downloaden en daarna zelf compileren (uitvoerbaar maken). Vaak worden deze applicaties als tarbal aangeboden (lezen we).
Windows applicaties die onder WINE draaien
De titel zegt het al, je werkt met Linux, maar toch heb je mogelijk een Windows applicatie(s) waarvan je geen tegenhanger kan vinden onder Linux en daarom de Windows software via de Windows Emulator (WINE) draait. Deze software, net trouwens alle applicatiesoftware onder Windows wordt niet automatisch geüpdatet. Dat moet je dus zelf doen door een nieuwe versie te downloaden.
Foto's aanpassen/verkleinen/converteren met GraphicsMagick
Voor onze websites gebruiken we GrahicsMagick voor het verkleinen van foto's. Dat programma is standaard niet geïnstalleerd, dus hieronder staat hoe je het kan installeren (voor de zekerheid: dit is de installatiemethode in Linux Mint, zoals alles in dit blog primair gaat over Linux Mint, maar voor de meeste Debian en Ubuntu installaties/distributies is dat ook van toepassing, Ubuntu en Mint zijn immers afgeleid van Debian).
sudo apt-get update daarna sudo apt-get install graphicsmagick. Je kan controleren of de installatie goed gegaan is met gm display.
GraphicsMagick heeft geen GUI, dus moet alles vanaf de commandline / terminal uitgevoerd worden. Je roept het programma op met "gm" (van GraphicsMagick) en daarachter plaats je informatie waardoor gm weet wat hij met welk bestand moet doen. Bijvoorbeeld gm convert /brondirectory/foto-groot.webp -scale 400x^> /bestemmingsdirectory/foto400px.webp Onder Linux gebruikte we daar een batch file voor. Dus het volgende projectje was: hoe kunnen we een batchfile schrijven onder Linux? En feitelijk, hoe kunnen we een bestaande batchfile onder Windows converteren naar Linux. Hieronder onze bevindingen.
Je homedirectory
Stel dat je username sjaak is. Dan is in Linux je homedirectory /home/sjaak. In die directory staan andere directories zoals:
- Desktop
- Downloads
- Music
- Pictures
- Sync
Je homedirectory heeft een "shortcut symbool" en dat is "~". Als je de inhoud van je homedirectory wil zien (in een terminal) dan type je in ls ~. Als je met het cd commando naar je homedirectory wil gaan volstaat dus: cd ~. Wil je (in de terminal) naar de directoy Downloads gaan dan volstaat cd ~/Downloads dat is dus hetzelfde als cd /home/sjaak/Downloads.
Batchfile in Linux maken / batch file converteren naar Linux shell script
Een batchfile in DOS of Windows is in beginsel niets meer dan een aantal commandline commando's. Die commando's zet je in een bestand met een willekeurige naam maar moet eindigen op .bat
In Linux heet zo'n batchfile een bash script of shell script, er even van uitgaande dat je werkt met de bash shell (en dat doen de meeste Linux distributies). Dit kan je controleren door in een terminal (ctrl-alt-t) te typen: echo $o. Je kan het script iedere naam geven en hoeft niet een speciale extensie te hebben (zoals in dos: .bat), maar je ziet vaak dat men (voor de herkenning) de shellscripts de extensie .sh geven.
Hoe start je een shellscript?
Het is even wennen, want in dos/windows kan je een batchfile starten door de naam van de batchfile in te voeren in de directory waar de batchfile staat. In Linux werkt dat niet. Staat in je homedirectory een bashscript met de naam "scriptje.sh" en je staat op dat moment in die directory dat kan je niet het script uitvoeren door de naam van het script in te voeren. Je moet dan invoeren ./scriptje.sh. Die punt in "./" betekent "de huidige directory (../ zou de bovenliggende directory betekenen). Dus het script met de naam "scriptje.sh" start je niet met scriptje.sh maar met ./scriptje.sh
Hoe maak je een scriptfile?
Een bash script is een gewone textfile, maar moet altijd starten op de eerste regel met: #!/bin/bash Op de regels daarna schrijf je de uit te voeren commando's. Je slaat het bestand op, wat voor naam je het geeft maakt niet uit, een extensie hoeft het bestand niet te hebben (vele kiezen voor .sh voor de herkenbaarheid, maar dat hoeft dus niet).
Daarna moet je eenmalig het bestand "uitvoerbaar" maken. Als het bestand "scriptje" heet doe je dat met het commando sudo chmod +x scriptje.sh (die x in "+x" betekent, maak hem eXecutable).
Je kan die laatste actie controleren door een uitgebreide directorylisting te maken met de -al opties: ls -al *.sh. Als het goed is zie je voor de filename van je script staan: -rwxr-xr-x.
Scriptfile vanuit iedere directory starten
Wil je in dos/windows een batchfile vanuit iedere plek willen starten dan heb je twee keuzes: 1. je specificeert het hele path, bijvoorbeeld /usr/sjaak/batchfile.bat of 2. je neemt de directory waar de .bat file staat op in de PATH variabele.
Onder Linux werkt dat ook zo maar heb je nog twee extra mogelijkheden: als je de scriptfile in je homedirectory hebt gezet (alleen dan) dan kan je met de ~ sthortcut naar je homedirectory verwijzen met ~/scriptje.sh. Daarnaast kan je de scriptfile in /usr/local/bin plaatsen. Alle uitvoerbare bestanden die daar staan kan je overal in je filesysteem uitvoeren.
Voorbeeld bash script / scriptfile
Hieronder een supereenvoudig scriptje dat "hello world" op het scherm toont
#!/bin/bash
# dit is commentaar
clear #clear maakt het scherm schoon
echo "hello world"
Neem bovenstaande regels over in een text editor (zoals xed of vscode), sla het op als "test.sh", maak hem executable met sudo chmod + test.sh en start het scriptje met ./test.sh
CD commando lijkt niet te werken in een scriptfile
Ik had een mini-scriptje geschreven die tijdens het uitvoeren me zou brengen van de homedirectory /home/username naar een directory /media/windows/dir1/dir2/dir3 omdat ik geen zin had om iedere keer dat hele cd commando uit te typen (en ik vaak naar die directory moest schakelen). Net als in Windows ik dat had, maakte ik een scriptje waarin een regel opgenomen was met cd /media/windows/dir1/dir2/dir3 Het gehele script zag er zo uit:
#!/bin/bash
cd /media/windows/dir1/dir2/dir3
Ik had het scriptje executable gemaakt en toen ik het uitvoerde gaf het geen foutmelding maar het werkte niet, althans dat dacht ik. Ik kwam er achter dat het scriptje prima werkte (zet maar na het cd commando op de volgende regel het pwd commando en dat zie je dat het cd commando wel werkt), maar ik wist niet dat een script in een aparte (sub)shell wordt uitgevoerd en zodra dat script klaar is wordt de subshell afgesloten en kom je terug in de shell waar je het scriptje hebt aangeroepen. Dus dan ben je weer terug bij af. De oplossing is om het script aan te roepen met source scriptnaam.sh of . scriptnaam.sh (let op de spatie tussen de . en de naam van het script).
Linux Mint hybernate
In Linux staat hybernation standaard uit. In dit artikel dit artikel staat uitgelegd hoe je hibernation aan kan zetten. Bij ons werkte het (Linux Mint Cinnamon 20.3).
Nieuwe Linux kernal update terugdraaien vanwege bug in bluetooth
Zoals je hiervoor hebt kunnen lezen laat ik alle updates automatisch installeren. Bij de update van de linux kernal met versienummer 5.15.0.33.34.~20.04.11 werkte bluetooth niet meer. Mijn eerste reactie was: draai met timeshift alles terug zoals het gisteren was.
Timeshift neemt (zo heb ik het ingesteld) iedere dag een snapshot vergelijkbaar met een restorepoint in Windows. Werkt er iets na een update niet dan kan je gewoon terug naar de versie ervoor.
Ik had timeshift nog nooit ingezet om een update terug te draaien. Dus dat alleen al was interessant. Timeshift starten, de vorige versie (van gisteren) aanwijzen en op de restore knop drukken. Daarna wijst alles vanzelf.
Na het restoren van de vorige versie werkte bluetooth weer. Gelukkig. Fijn die timeshift. Ik startte firefox, oops, probleempje. Firefox meldde dat ik naar een vorige versie was teruggegaan en dat ze dat niet ondersteunen. Wat was er gebeurd? Samen met de update van de linux kernal was ook een update van firefox gekomen. Firefox houdt zaken als bookmarks, history e.d. bij een een database. Daar houden ze (dat is mijn conclusie) ook de versie van firefox bij waarmee de laatste keer die database is bijgewerkt. Die database zal door de tijd wel eens gewijzigd zijn met uitbreidingen van functionaliteiten. Daarom is die database niet downwards compatible. Dat is dan ook de melding van firefox en wijgert om de oude database te gebruiken. Wel krijg je de optie om een nieuw profiel aan te maken. Maar dat nieuwe profiel heeft natuurlijk niet al je bookmarks e.d.
Gelukkig gebruik ik de sync functie van firefox voor het syncen van bookmarks tussen mijn apparaten. Dus even sync aanzetten en ik zou de oude bookmarks weer terughebben. Althans, dat was het idee. Sync aangezet in het menu en die vraagt of je in wil loggen. De accountnaam wist ik nog wel, maar dom, ik had het password niet opgeslagen in keepass, terwijl ik dat juist wel doe voor (vrijwel) alle andere accounts.
Pech, maar je kan je password wijzigen. Maar wat blijkt? Het wachtwoord is de encryptiesleutel waarmee de opgeslagen bookmarks terug te lezen zijn. Dus met een nieuw password, dus een nieuwe encryptiesleutel, kan je dus nooit meer je oude data benaderen. Dat is logisch. Nieuw password? Dan ben je al je syncitems (zoals bookmarks in firefox) kwijt.
De oplossing was door op een computer waar ik nog wel toegang had tot de bookmarks: eerst van de bookmarks een backup gemaakt in firefox (ga naar beheer van bookmarks dan kan je een backup maken), daarna van sync uitgelogd, een password reset van sync uitgevoerd, je krijgt dan de optie om al je bookmarks weg te gooien of juist die je locaal hebt te behouden (ik behield ze natuurlijk), nieuw wachtwoord instellen, inloggen op sync, sync activeren. Daarna op de andere computer (in dit geval de linux computer waar ik geen toegang meer had tot de gesyncde bookmarks) ook op sync ingelogd met het nieuwe password en een sync laten uitvoeren, daarna verschenen alle bookmarks. Probleem opgelost.
Achteraf was het wellicht handiger geweest om de vorige kernalversie te activeren, hier meer daar over.
Al met al leerzaam om eens timeshift te gebruiken en zien dat het werkt.
Linux afsluiten terwijl de GUI / dekstop niet meer reageert
Ik heb al een paar keer gemerkt dat als ik een applicatieicoon in de werkbalk (op een niet zo nette manier waarschijnlijk) verplaats (naar achteren verschuif) dat de desktop vrijwel compleet bevroren is (freeze). Soms reageert nog de supertoets maar het systeem afsluiten is dan, op de gebruikelijke manier, niet altijd mogelijk.
Wat te doen om Linux Mint af te sluiten terwijl je desktop niet meer goed werkt?
- Schrijf ergens op (niet in je linux computer): supertoets, linkerpijltoets, pijlnaarboventoets, enter, enter (of als die laatste niet meer werkt kan je alt-s proberen (daarmee druk je op de shutdowntoets).
- Druk tegelijkertijd alt en prtscn in en terwijl je deze ingedrukt houdt druk je achtereenvolgens (met tussenpozen) op s, u en b.
- Start een terminal met ctrl-alt-t en typ dan in shutdown, na een minuutje wordt je systeem afgesloten.
- Er zijn meer mogelijkheden, die komen hier later wel.
- Niet zo netjes en moet je als laatste redmiddel gebruiken: hou de uit/aan-knop van je computer een seconde of zes ingedrukt tot de computer zichzelf afsluit.
Laptop nu ook Linux Mint
Nadat we een jaar met Linux Mint Cinnamon op een desktop pc hebben gewerkt, en naar tevredenheid, hebben we één van onze laptops, waar tot op dat moment Windows 10 op draaide overgezet naar Linux Mint Cinnamon. In dit geval geen dual-boot maar alleen maar Linux Mint.
Linux Mint 21
Op één van de laptops hebben we Linux Mint 21 Cinnamon geïnstalleerd (een schone installatie). Dat was een laptop van Asus. De installatie liep vlekkeloos. Een van de voordelen van Linux Mint 21 is dat er nu ondersteuning is voor TLP versie 1.5 en juist die versie heb je nodig voor de ondersteuning van Asus en Lenovo laptops (in Mint versie 20.3 was die ondersteuning er niet). Met TLP kan je zorgen dat de accu van de laptop niet constant op 100% geladen blijft (wat funest is voor de levensduur) maar een zelf in te stellen niveau, bijvoorbeeld 50% of 60%.
We hebben gelijk de SSD gepartioneerd met een aparte / (root) en /home (en natuurlijk een boot en swap partitie) en hebben dit gedaan met LVM (logical Volume Management). Het voordeel van LVM zou zijn dat je achteraf de partities heel makkelijk in grootte kan wijzigen. Ook kan je meerdere SSD's samenvoegen tot één volume.
De ervaringen tot nu toe zijn positief, hoogtui zorgt LVM voor dat het GRUB menu (dat je te zien krijgt als je computer start en waarbij je kan kiezen voor een besturingssysteem) 30 seconde wacht tot je de keuze hebt gemaakt (maar met enter ga je in een keer door). Met een paar commando's hebben we er voor gezorgt dat we het GRUB menu tijdens het starten niet meer zien en direct Linux Mint wordt gestart.
En wat start Mint 21 snel, heerlijk.
Overzicht geïnstalleerde programma's
Ik had ooit eens Signal geïnstalleerd, en ik kreeg een melding dat de versie te oud was en niet meer werd ondersteund. Signal werd dus niet geüpdatet. Op de site van Signal zag ik staan hoe het programma geïnstalleerd kon worden onder Debian en derivaten. Maar eerst moest ik de oude versie verwijderen, maar wacht eens, ik zie hem niet staan als geïnstalleerd programma onder >menu>Software Manager (en dan menu>installed applications). Want als hij daar te zien was, dan was het simpel: op de applicatie klikken en kiezen voor remove.
Mogelijk dat ik destijds had gekozen voor een PPA versie van Signal. De PPA's kan je zien onder >menu>Software Sources en dan PPA. Maar daar was hij niet te vinden.
De vraag is hoe krijg ik te zien wat mijn geïnstalleerde programma's waren. Het terminal commando sudo flatpak list krijg je een lijst te zien met geïnstalleerde flatpak programma's (dus het is daartoe beperkt), en ja hoor, daar stond Signal tussen.
Met het terminal commando sudo flatpak uninstall org-signal-Signal kon ik het de-installeeren. De naam achter uninstall moet je letterlijk overnemen uit de lijst uit de kolom Application ID.
Signal instaleren
Signal is, op het moment van schrijven, niet een applicatie die zich in de software repository bevindt (de app-store) die je aantreft in >menu>software manager waar Linux Mint gebruikt van maakt. Dat houdt doorgaans in dat je op de site van de betreffende software op zoek moet gaan naar een .deb (van Debian, de Linux distributie waar Mint op gebaseerd is) installatiebestand of een andere instructie die je doorgaans moet uitvoeren in een terminal.
Op moment van schrijven trof ik op de site van Signal deze instructies aan (commando's die je uit moet voeren in de terminal).
Het betreffen vier verschillende commando's, die beginnen met wget, cat, echo en sudo. Die regel die begint met echo beslaat dus twee regels en moet je in zijn geheel kopieren.
Renamen name external disc - volume naam wijzigen externe schijf
We hebben een aantal externe harde schijven die we gebruiken voor backup doeleinden. Zo'n externe schijf heeft meestal een lange en lastige naam met spaties. Bijvoorbeeld "Seagate Backup Plus". Dit wilde we hernoemen naar "backup10", maar hoe doe je dat?
- Unount de schijf in je Nemo (de filemanager) >menu>files, aan de linkerzijkant zie je de schijf staan onder "devices" (waarschijnlijk de onderste) en klik op het driehoekje dat naar boven wijst (wat "uitwerpen" voorstelt (neem ik aan)).
- Start >menu>disks, ook wel gnome-disk-utilities genoemd. Mocht deze niet geïnstalleerd zijn, installeer hem dan >menu>software manager>disk (gnome-disk-utility).
- Klik (in gnome-disk-utility) op de partitie van het volume waarvan je de naam wil wijzigen, klik op het tandwieltje-knopje, kies "edit filesystem" en voer een naam in, bijvoorbeeld "backup10".
- Mount de schijf in Nemo, rechtermuisklik op de schijf (die aan de linkerzijde zichtbaar is) en kies voor "mount".
SSH installeren en inschakelen
Vandaag wilde ik met rcp (remote copy) aan de slag om bestanden van een andere computer te kopieren. Ik kreeg toen de melding dat ik geen toegang kreeg tot die computer "refuses". Het bleek dat ssh op de desbetreffende computer nog niet geïnstalleerd was. In de softwaremanager ssh opgezocht en openssh geïnstalleerd. Daarna met sudo systemctl is-enabled ssh gecontroleerd of ssh gestart was en met sudo systemctl enable ssh ssh open gezet. Denk er wel om dat inkomende paketten door de firewall (als je die aan hebt staan) standaard worden tegengehouden, dus je moet daarvoor (poort 22) een rule maken en als je slim bent dit beperken tot hosts van je eigen lokale netwerk.
Timeout aanpassen in bootmenu (GRUB2)
Nadat we Linux Mint 21 hadden geïnstalleerd werd een wachttijd ingelast van 30 seconden in het bootmenu. Ondanks dat we in de configuratiefile van GRUB de TIME_OUT waarde hadden aangepast wachtte de computer toch 30 seconden in het bootmenu. Uiteindelijk bleek het toevoegen van een extra commando GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT in het configuratie bestand de oplossing. Hieronder de stappen om de wachttijd in het bootmenu te verkorten naar 4 seconden.
- Start de termeninal met ctrl-at-t
- run het commando: sudo xed /etc/default/grub
- Zet een # voor de regel die begint met GRUB_TIMEOUT_STYLE
- Wijzig de waarde op de regel GRUB_TIMEOUT=30 naar de waarde 4 of welke waarde dan ook.
- Voeg onderaan de volgende regel toe: GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT
- Sluit xed af en kies voor "save" om de wijzigingen op te slaan.
- run het commando: sudo update-grub
- Reboot de computer.
Canon printer driver, vuile kleuren, geel lijkt wel groen/bruin
Tijdens het installeren van de Canon inkjet printer kon ik geen juiste driver vinden. Mijn printer, een MG5250 stond niet in de lijst met Canon printers. In eerste instantie selecteerde ik daarom een "generic printer". Hoewel de printopdracht netjes uit de printer komt, waren de kleuren zéér grauw, laat ik het vuile kleuren noemen. De gele inkt had wat weg van donker-bruin/donker-groen. Rood kwam er ook heel "vuil" uit. Als ik de Canonprinter zelf een testpagina liet afdrukken dan waren de kleuren wel helder en goed. Het moest dus aan de geselecteerde printer driver liggen.
De oplossing was een applicatie met de naam "bjnp" of zoals de softwaremanager hem noemt: Cups-backend-bjnp. Als je deze software hebt geïnstalleerd werd de lijst met Canonprinters ineens héél lang en stond mijn printer er wel tussen.
Dit is de werkwijze hoe ik de canonprinter aan de praat kreeg:
- Installeer bjnp: >menu >softwaremanager vul in het zoekveld "bjnp" in en installeer de software.
- Geef de inkjetprinter (op de printer zelf) een vast ip-adres, in dit voorbeeld geven we hem: 192.168.178.009 (zoek via het internet of je handleiding hoe je dit kan instellen op jouw canonprinter)
- Voeg een printer aan Linux toe: >menu >printers druk op "add", kies voor netwerkprinters, kies de optie "internet printing protocol" (let op: dus ipp), je krijgt nu een invulveld te zien met de naam "Enter device URI" en vul dan in: ipp://192.168.178.009 (dit is het ipadres uit het voorbeeld, vul jouw ipadres in van de printer), druk op forward, selecteer uit de lijst "canon" en druk op Forward. Selecteer het gewenste model en druk op Forward.
Toetsenbord Alt key defect, remap keyboard helpt
Regelmatig werk ik met een laptop, maar op een gegeven moment deed de alt-toets het niet meer. Nog proberen te repareren, maar dat mocht niet baten. Toen dacht ik, zou er een programmatje zijn dat ik een willekeurige toets, die ik toch niet gebruik, kunnen remappen naar de alt-toets? En ja hoor, dat is er. Dat programma heet "input remapper". Daarmee kan je niet alleen je toetsenbrod "remappen" maar nog veel meer inputdevices zoals de muis.
Programma geïnstalleerd en gestart. New entry, en dan moet je de toest indrukken die je wil remappen, daarvoor gebruikte ik de rechter control toets. Daarna moet je de toets indrukken die denkbeeldig ingedrukt wordt. Maarja, die alt-toets deed het niet. Je kan ook in een invoerveld iets intypen zag ik. Toen ik de letters alt intypte werd dat herkend en kon ik uitkiezen welke alt-toets, links of rechts. Dus koos ik voor de alt-L toets. Zo, dat probleem is ook weer opgelost. Want de alt-toets gebruik ik heel veel. Niet alleen de bekende toetscombinaties als alt-f4 en alt-tab, maar ook alt-toetscombinaties die ik in "autokey" heb vastgelegd. Autokey gebruik ik om veel gebruikte termen of hele regels (dezelfde) code die ik zeer vaak moet invoeren met een simpele toetscombinatie (of lettercombinatie) intyp. Zo heb ik vastgelegd dat als ik rechter-shift-p indruk dat "</p>" wordt ingevoerd en met rechter-control-p wordt dat "</p>". Of als ik TODO intyp maakt autokey daarvan <?php //TODO ?> en dat gebruik ik als reminder (en makkelijk terug te zoeken op TODO) dat ik daar nog wat moet aanvullen.
Adobe Acorbat PDF ondertekenen / handtekening zetten
Ik kreeg een elektronisch document in het PDF formaat. Of ik het even wilde ondertekenen. Dat kan met Adobe Acrobat reader onder Windows. Maar wij hebben Linux. Even zoeken met wat voor programma dat kan onder Linux. Dat blijkt te kunnen met het programma Xournal. Downloaden, installeren, en ondertekenen.
Dan moet je het document opslaan. Dat moet je niet doen met "save" maar met "Export to PDF". Klaar, geregeld.