Wanneer een Windows-gebruiker voor het eerst in contact komt met de Linux-wereld, laat de frustratie meestal niet lang op zich wachten.
Vooral het werken met de console is onbekend en bijna onmogelijk zonder de juiste commando's te kennen. Het bestandssysteem en de mappenstructuur zijn ook heel anders dan die van Windows.
Om het makkelijker te maken om in de Linux-wereld aan de slag te gaan, heb ik geprobeerd hier de belangrijkste informatie, functies en commando's samen te vatten.
Veiligheidsinstructies
Ik weet dat de volgende opmerkingen altijd een beetje vervelend zijn en onnodig lijken. Helaas hebben veel mensen die "beter" wisten door onvoorzichtigheid ogen, vingers of andere dingen verloren of zichzelf verwond. Gegevensverlies is in vergelijking bijna te verwaarlozen, maar zelfs dit kan erg vervelend zijn. Neem daarom vijf minuten de tijd om de veiligheidsinstructies te lezen. Omdat zelfs het coolste project geen blessure of andere problemen waard is.
https://www.nerdiy.de/sicherheitshinweise/
Affiliate links / reclame links
De hier vermelde links naar online winkels zijn zogenaamde affiliate-links. Als u op zo'n affiliate-link klikt en via deze link een aankoop doet, ontvangt Nerdiy.de een commissie van de betreffende onlineshop of aanbieder. De prijs verandert voor jou niet. Als u via deze links uw aankopen doet, steunt u Nerdiy.de om in de toekomst andere nuttige projecten aan te kunnen bieden. 🙂
Eisen
Handige artikelen:
Om je weg te vinden in de Linux-wereld kun je het beste meteen aan de slag gaan. "Leren door te doen" zogezegd. Wees niet bang om iets kapot te maken. Het ergste wat er kan gebeuren is dat je Raspian opnieuw moet installeren.
In de volgende artikelen heb ik beschreven hoe je dit doet en hoe je een functionele RaspberryPI in het algemeen configureert:
RaspberryPi - Instellen voor nerds
RaspberryPI – De eerste configuratie
RaspberryPi – Bedien de RaspberryPi via SSH
Vereist gereedschap:
-Nee-
Benodigd materiaal:
In de volgende lijst vindt u alle onderdelen die u nodig heeft om dit artikel te implementeren.
opdrachten in de console
De console onder Linux is tweeledig. Aan de ene kant kun je het gebruiken om door de mappenstructuur van de RasPi te navigeren en zo de betreffende map waarin je je momenteel "bevindt" te wijzigen.
Ik (en misschien anderen) noemen deze directory de werkdirectory omdat het altijd de directory is die wordt benaderd door de commando's die op dat moment worden uitgevoerd.
Als u bijvoorbeeld een map maakt, wordt deze (zonder verdere informatie) in de huidige werkmap gemaakt.
Paden worden ook gespecificeerd beginnend vanaf de werkdirectory (relatief) of absoluut vanaf de hoofddirectory (d.w.z. het hoogste mapniveau).
Aan de andere kant is de console ook een opdrachtprompt. Commando's kunnen er dus worden ingevoerd en uitgevoerd.
Ten slotte zijn het ook de commando's waarmee je door de mappenstructuur kunt navigeren.
De vorm van de ingevoerde commando's is bijna altijd hetzelfde.
Meestal staat er:
COMMANDONAAM -PARAMATERPAD DETAILS
Dit betekent dat een commando altijd bestaat uit de naam van het commando, eventuele parameters en, indien nodig, padgegevens.
Parameters zijn verschillende letters die het gedrag van het commando beïnvloeden. Deze zijn voor elke opdracht anders. Een volledige parameterlijst en algemene hulp kan voor elk commando worden weergegeven door de naam van het commando en de parameter -help in te voeren.
cp --help
(Merk op dat je twee koppeltekens moet invoeren voor de "help")
Het toont je bijvoorbeeld alle mogelijke parameters en ook een paar voorbeelden van het "cp" commando.
Dus als je ooit vergeet hoe een commando werkt of een parameter vergeet, heb je hier geïntegreerde documentatie bij de hand.
Werken in de console
Toon laatst ingevoerde opdracht
Pijltjestoets omhoog/omlaag
Door op de pijltjestoets omhoog te drukken, kun je de laatst ingevoerde opdracht bekijken.
Als je een geselecteerde opnieuw wilt uitvoeren, druk je gewoon op de Enter-toets.
Als je het vooraf opnieuw wilt bewerken, kun je door het commando navigeren met de pijltjestoetsen links en rechts.
Terminaluitgang verwijderen
duidelijk
Dit commando wist de huidige console sessie en geeft een "fresh" prompt weer.
Volledige padvermeldingen
De tabtoets kan gebruikt worden om automatisch padspecificaties aan te vullen.
Als je bijvoorbeeld wilt overschakelen van de huidige map naar de volgende map met de naam "nextFolderWithAFairlyLongName", typ je gewoon het volgende commando:
kp volgende
en druk vervolgens op de Tab-toets.
Linux vult dan automatisch "next" aan tot "nextFolderWithAFuerchterlichLangemName".
Als er in de huidige map naast de map "nextFolderWithAFairlyLongName" nog een map bestaat met dezelfde naam (bijvoorbeeld "nextFolderWithShortName"), dan wordt de mapnaam alleen aangevuld voor zover de twee mapnamen verschillen. In dit geval alleen tot "nextFolderWith". Als je daarna echter een letter van de gewenste map invoert, kan de voltooiing opnieuw worden uitgevoerd.
Als je bijvoorbeeld "nextFolderWithE" invoert en dan op de tabtoets drukt, weet Linux al dat de map "nextFolderWithAForestLongName" bedoeld moet zijn en vult de naam dienovereenkomstig aan.
Dit bespaart je een hoop frustrerend typen. Deze padaanvulling werkt in elk commando.
Uitvoering van commando's beëindigen
Met de toetsencombinatie CTRL+C kunnen momenteel lopende processen worden beëindigd.
Bestands- en mapbewerkingen
Toon huidig pad
pwd
Deze opdracht toont u het huidige absolute (d.w.z. volledig, beginnend bij de hoofdmap) pad naar de map waarin u zich momenteel bevindt.
de mappenstructuur weergeven
boom
Deze opdracht toont u de mappenstructuur in de huidige map.
Zoals de naam (boom) al doet vermoeden, wordt de huidige mappenstructuur weergegeven vanaf de werkmap. Dit betekent dat de submappen in mappen worden weergegeven als de takken van een boom die begint bij de root. De eenvoudigste manier om dit te begrijpen is door het gewoon uit te proberen 🙂
Maak een lijst van de inhoud van de map
ls -la
Dit commando toont je de volledige inhoud van de huidige map (inclusief verborgen bestanden). In de meeste gevallen is een eenvoudige:
ls
map aanmaken
mkdir nieuwe map
Dit commando maakt een nieuwe map aan in de huidige map met de opgegeven naam (in dit geval "newfolder").
Map verwijderen (inclusief inhoud)
rm -R nieuwe map
Dit commando verwijdert de opgegeven map (in dit geval "newfolder") en alle bestanden die daarin staan zonder opnieuw te vragen of te waarschuwen.
Bestand verwijderen
rm-bestand te verwijderen
Dit commando verwijdert het opgegeven bestand (in dit geval het bestand "te verwijderen bestand") in de huidige map.
verander map
cd /thuis/pi
Deze opdracht verandert de map in de opgegeven map.
CD..
Gebruik dit commando om naar het volgende hogere mapniveau te gaan.
Dit kan ook gekoppeld worden. Als je bijvoorbeeld één mapniveau omhoog wilt gaan vanuit de huidige map en direct naar een andere map wilt gaan, kun je dit doen met het volgende commando:
cd ../newFolderListenNextFolder
Met het volgende commando kun je direct naar je homedirectory gaan:
CD ~
bestanden kopiëren
cp "bestandsnaam" "bestemming"
Deze opdracht kopieert het bestand "Bestandsnaam" naar "Doel". Je kunt op deze manier ook rechtstreeks bestanden hernoemen.
cp cool tekstbestand.txt nog cooler tekstbestand.txt
zorgt ervoor dat bijvoorbeeld "cooltextfile.txt" opnieuw naar de huidige map wordt gekopieerd. De kopie heet dan echter "nochCoolereTextdatei.txt".
Natuurlijk kan padinformatie ook worden opgenomen in de kopieerprocessen.
Het volgende commando kopieert bijvoorbeeld het bestand "cooleTexttdatei.txt" naar de submap "coolerUnterfolder".
cp cool tekstbestand.txt coole submap/cool tekstbestand.txt
Verplaats meerdere bestanden of één bestand naar een andere map
mv -t bestemmingsmap bestand1 bestand2 bestand3
Hernoem bestand
mv huidigebestandsnaam gewenstebestandsnaam
Dit commando is eigenlijk een bestandsverhuizing (mv=move). Omdat je echter ook een nieuwe naam kunt opgeven bij het verplaatsen van een bestand, is dit commando ook perfect voor het hernoemen van bestanden.
Download bestand
wget internetadres
Met dit commando kunnen bestanden naar de huidige map worden gedownload.
Het enige wat je hoeft te doen is de link naar het bestand dat je wilt downloaden invoeren na "wget".
Zip-bestand uitpakken met wachtwoord
unzip -P WACHTWOORD 'zipFile.zip'
Dit commando pakt het wachtwoordbeveiligde bestand "zipDatei.zip" met het wachtwoord "PASSWORD" uit in de huidige map. Als je wilt weten wat zip-bestanden zijn, heb ik dat in dit artikel beschreven:
Pak rar-bestand uit met wachtwoord
unrar e -p WACHTWOORD 'rarFile.rar'
Dit commando pakt het met een wachtwoord beveiligde bestand "rarDatei.zip" met het wachtwoord "PASSWORD" uit in de huidige map. Als je wilt weten wat rar-bestanden zijn, heb ik dat in dit artikel beschreven:
Pak het zip-bestand uit in de doelmap
unzip zipFile.zip -d BESTEMMINGSMAP
Met deze opdracht wordt het bestand “zipFile.zip” uitgepakt in de map die is opgegeven bij DESTINATION FOLDER.
Pak map in zip-bestand
zip -r bestandsnaam.zip FOLDERNAME/
Veilig verwijderen van gegevens
versnipperen -fuz forEverFileToDelete
Met deze opdracht worden niet alleen bestanden verwijderd, maar ook het geheugengebied van het verwijderde bestand overschreven. Dit betekent dat de op deze manier verwijderde bestanden niet kunnen worden hersteld, zelfs niet met forensische middelen. Het commando werkt met de Gutmann-methode.
Installatie/werken met pakketten
Programmapakketten bijwerken
sudo apt-get update && sudo apt-get upgrade
Dit zijn eigenlijk twee opdrachten die met elkaar zijn verbonden door de “&&”.
De “&&” betekent in dit geval dat het eerste commando eerst wordt uitgevoerd en daarna het tweede commando.
sudo apt-get-update
...werkt de pakketlijst van de “Advanced Packaging Tool” (apt) bij. Deze tool beheert verschillende softwarepakketten. Door de pakketlijst bij te werken, wordt de huidige inhoudsopgave van de beschikbare softwarepakketten gedownload.
sudo apt-get-upgrade
...vergelijk vervolgens de pakketten die al op uw systeem zijn geïnstalleerd met de beschikbare pakketten volgens de inhoudsopgave. Als een van de beschikbare pakketten nieuwer is dan het pakket dat op uw systeem is geïnstalleerd, wordt automatisch de nieuwe versie van dat pakket geïnstalleerd
Programma's/pakketten installeren
sudo apt-get install PACKETNAME
Deze opdracht gebruikt de “Advanced Packaging Tool” om het pakket te installeren dat is opgegeven door “PACKETNAME” en alle andere noodzakelijke pakketten die nodig zijn om dit pakket uit te voeren.
Verwijder onnodige programma's/pakketten
sudo apt-get autoremove PACKETNAME
Deze opdracht maakt ook deel uit van de “Advanced Packaging Tool” en kan worden uitgevoerd met of zonder pakketnaam. Zonder een pakketnaam, d.w.z. "sudo apt-get autoremove", verwijdert deze opdracht alle pakketten die niet langer worden gebruikt, omdat ze alleen werden geïnstalleerd als voorwaarde voor een ander pakket dat niet langer bestaat.
Met de pakketnaam, bijvoorbeeld "sudo apt-get autoremove ANYPACKAGE NAME", worden het opgegeven pakket en alle vereisten die zijn geïnstalleerd toen dit pakket werd geïnstalleerd, verwijderd.
RaspberryPi-specifieke commando's
Werk de firmware en kernel van de Rasp Pi bij
sudo rpi-update
Met deze opdracht worden de kernel en belangrijke systeembestanden van de RasPi bijgewerkt. Volgens het motto “Raak nooit een draaiend systeem aan” mag dit alleen gedaan worden als er belangrijke beveiligingsupdates beschikbaar zijn of als iets niet naar behoren draait.
Herstart Raspberry Pi
sudo opnieuw opstarten
Met deze opdracht wordt de RasPi veilig afgesloten en onmiddellijk opnieuw opgestart. Dit is perfect om te testen of geïnstalleerde software na een herstart automatisch opnieuw opstart.
Sluit Rasp Pi veilig en onmiddellijk af
sudo shutdown -h -P nu
of de afkorting
sudo uitschakelen
Nadat u het afsluitcommando hebt uitgevoerd, moet u een paar seconden wachten. Net als bij Windows-systemen duurt het even voordat het systeem alle programma's/processen afsluit. Alle mogelijke schrijfprocessen worden ook beëindigd.
Dit is ook de reden waarom je de RasPi altijd goed moet afsluiten. Als er momenteel een bestand in het geheugen wordt opgeslagen en vervolgens wordt losgekoppeld van de stroom, wordt het opslagproces onderbroken. Dit betekent dan dat bestanden die slechts gedeeltelijk zijn geschreven, niet meer kunnen worden gelezen.
Als dit bestand een belangrijk bestand is voor het systeem, kan het gebeuren dat de RasPi de volgende keer niet meer correct opstart.
Of de RasPi volledig is uitgeschakeld, kun je zien aan het feit dat de groene LED niet meer knippert en alleen de rode LED brandt.
Als je toch de stekker uit het stopcontact trekt zonder eerst de RasPi uit te zetten, hoef je niet meteen in tranen uit te barsten: meestal werkt het goed, maar alleen meestal. 🙂
Voer opdrachten uit als root
sudo = Supergebruiker doen
Dit commando kan vóór elk commando worden geplaatst en zorgt ervoor dat dat commando wordt uitgevoerd alsof de superUser “root” het zou uitvoeren. Als normale gebruiker kunt u bijvoorbeeld opdrachten uitvoeren waarmee u toegang krijgt tot bestanden waar u als normale gebruiker feitelijk geen toegang toe heeft.
Om sudo te gebruiken moet je toestemming hebben. Dit wordt gespecificeerd in het bestand /etc/sudoers.
Meld u af bij de console
uitloggen
Dit commando verbreekt de verbinding met de RasPi en sluit de console.
Geef de Rasp Pi CPU-temperatuur weer
echo $((`cat /sys/class/thermal/thermal_zone0/temp`/1000))
Deze opdracht geeft u de huidige temperatuur van de CPU.
Toon Rasp Pi GPU-temperatuur
/opt/vc/bin/vcgencmd meet_temp|cut -c6-9
Deze opdracht geeft u de huidige temperatuur van de GPU.
Netwerk
IP-adres of netwerkconfiguratie weergeven
ifconfig
Deze opdracht toont u informatie over uw netwerkverbinding. Zo kun je ook controleren welk IP-adres jouw RasPi heeft.
Maak een lijst van open poorten en bestaande netwerkverbindingen
netstat --tcp --listening --programs --numeriek
Deze opdracht toont u alle momenteel open poorten en netwerkverbindingen, evenals diverse informatie daarover
Gemengd
Wijzig het wachtwoord van een gebruiker
passwd gebruikersnaam
Met deze opdracht kunt u het wachtwoord wijzigen van de gebruiker die is opgegeven als “gebruikersnaam”. Bovendien kunnen verschillende wijzigings- en blokkeerintervallen worden ingesteld.
Toon vrije schijfruimte
df-h
Met deze opdracht ziet u hoeveel opslagruimte er nog beschikbaar is op uw opslagmedia.
Maak een lijst van alle geïnstalleerde USB-apparaten
lsusb
Met deze opdracht worden alle momenteel geïnstalleerde USB-apparaten weergegeven.
Toon alle partities
sudo blkid
Deze opdracht geeft u alle momenteel geïnstalleerde partities.
Bekijk gedetailleerde informatie
sudo fdisk –l
Met deze opdracht kunt u gedetailleerde informatie over uw partities weergeven.
Forceer bestandssysteemcontrole
sudo afsluiten -rF nu
Het RasPI-bestandssysteem wordt normaal gesproken pas na elke 30e herstart gecontroleerd. Deze opdracht dwingt een onmiddellijke controle en (indien nodig) reparatie van het bestandssysteem af.
Toon Serialby ID
ls -l /dev/serial/by-id
Met deze opdracht ziet u de ID'S van eventuele bestaande USB-seriële adapters. Dit betekent dat u seriële interfaces rechtstreeks kunt aanspreken met behulp van de ID van het USB-apparaat in plaats van bijvoorbeeld /dev/ttyUSB0 te gebruiken.
Dit heeft als voordeel dat de toegang via de ID altijd uniek is en de ID ook na het herstarten van de RasPi niet verandert. Als je een USB-seriële adapter alleen via /dev/ttyUSB0 benadert, kan het gebeuren dat deze na een herstart niet meer toegankelijk is onder /dev/ttyUSB0 maar wellicht onder /dev/ttyUSB1.
Om dit probleem te omzeilen, wordt aanbevolen om de seriële interface aan te pakken met behulp van de ID van de USB-seriële adapter.
Toon alle seriële poorten
ls /dev/tty* of dmesg | grep tty
Deze opdracht toont u alle mogelijke seriële interfaces op het systeem.
Controleer andere computers op aanwezigheid in het netwerk
ping-netwerkadres
Met het commando “ping” kan de aanwezigheid van andere netwerkdeelnemers worden gecontroleerd.
Dit kan een computer zijn in het lokale netwerk maar ook in het internet.
“Netwerkadres” moet worden vervangen door het IP-adres of de domeinnaam van de computer waarvan u de aanwezigheid wilt controleren.
Lopende processen bekijken
ps
De opdracht “ps” toont u alle momenteel actieve processen, inclusief de ID en enkele andere informatie zoals gebruik, enz.
Beëindiging van een proces geïdentificeerd door de proces-ID
dood procesId
Deze opdracht beëindigt het proces met de proces-ID “processID”.
Uitvoer van processorgebruik
Bovenkant
Deze opdracht toont u het huidige gebruik van de CPU.
Indicatie van de looptijd en het gebruik van de computer
op tijd
U kunt “uptime” gebruiken om de hoeveelheid tijd weer te geven die is verstreken sinds het starten van de RasPI.
Toon huidige gebruiker
wer bin ich
Deze opdracht toont u de naam van de momenteel ingelogde gebruiker.
Toon de locatie van een programma
welke ls
Met dit commando wordt de locatie weergegeven van het programma dat is opgegeven als parameter (in dit geval) “ls”.
Mappenstructuur – welke map bevat welke bestanden?
In Linux is de mappenstructuur iets anders dan in Windows, maar nog steeds logisch. Als je de afkortingen opsplitst, spreekt de rest bijna voor zich.
“bin”=binaire bestanden: Uitvoerbare bestanden, d.w.z. programma's
“sbin”=systeem binaire bestanden: Uitvoerbare systeembestanden, dat wil zeggen systeemprogramma's
Deze twee mappen bevatten echter alleen bestanden die belangrijk zijn voor het pure systeem.
Door de gebruiker geïnstalleerde programma's zijn in “/usr/bin” en “/usr/sbin”.
De bestanden in deze mappen kunnen ook door normale gebruikers worden uitgevoerd.
In de "ben" en “sbin” aan de andere kant meestal alleen door gebruikers met beheerdersrechten.
"boot": bevat belangrijke bestanden voor het opstartproces.
“dev”=apparaten: Alle apparaatbestanden bevinden zich in deze map. Via deze kunnen verschillende hardware-interfaces worden aangesproken. Bijvoorbeeld USB en seriële interfaces.
“lib”=bibliotheken: Bevat belangrijke bibliotheken die voor sommige programma's nodig zijn.
“verloren+gevonden”: Als er bij het repareren van een gegevensdrager bestanden of bestandsfragmenten worden aangetroffen, worden deze naar deze map verplaatst of opgeslagen.
“mnt”=mount: Bevat alle tijdelijk aangesloten (=gemonteerde) gegevensdragers zoals USB-sticks.
“opt”=optioneel: Bevat alle handmatig geïnstalleerde programma's die hun eigen bibliotheken nodig hebben.
“proc”=processen: Bevat interfaces naar de geladen kernel en zijn procedures.
“wortel”=wortel: Dit is de gebruikersdirectory van de superuser root. Het is de enige gebruikersdirectory die niet in de homedirectory staat.
"thuis": Dit is de standaard gebruikersmap waarin iedere gebruiker automatisch een submap krijgt. Gebruikersbestanden kunnen vervolgens in deze map worden opgeslagen. Elke gebruiker kan naar eigen wens bestanden of mappen aanmaken in zijn eigen gebruikersmap.
“etc”=etc.: Standaardlocatie voor systeembrede configuratiebestanden.
Voorbeelden en uitleg
Ik vind de site erg handig tldr.ostera.io
Hier kunt u het commando invoeren dat u in een zoekmasker wilt gebruiken, waarna automatisch verdere uitleg en voorbeelden worden weergegeven.
Ik hoop dat deze informatie je eerste toegang tot de Linux/RaspberryPI-wereld een beetje gemakkelijker zal maken. Mocht dit niet het geval zijn, of heeft u andere kritiek of vragen, laat het mij dan weten. Je kunt eenvoudig de commentaarfunctie onder het artikel gebruiken. 🙂
Veel plezier met het project
Ik hoop dat alles werkte zoals beschreven. Zo niet, of als je vragen of suggesties hebt, laat het me weten in de commentaren. Ik zal dit dan zo nodig aan het artikel toevoegen.
Ideeën voor nieuwe projecten zijn altijd welkom. 🙂
PS Veel van deze projecten - vooral de hardwareprojecten - kosten veel tijd en geld. Natuurlijk doe ik dit omdat ik het leuk vind, maar als je het cool vindt dat ik de informatie met je deel, dan zou ik blij zijn met een kleine donatie aan het koffiefonds. 🙂