Inhoud
De Linux Terminal gebruiken
Deze pagina is nog een kladblok verzameling. Ooit wordt het een keurig verhaal.
Zie ook Linux Terminal : Commandoos
De Terminal is dat venster, waarin je commando's kunt intypen, waarna er van alles kan gaan gebeuren. Moeilijk om mee te beginnen, maar ook een zeer krachtig gereedschap om de computer opdracht te geven voor jou nuttige dingen te doen. Omdat het zoveel toegevoegde waarde geeft boven het achter de muis aan schuiven. Je hebt wat te leren, maar dan kun je ook wat. Klussen die met de muis moeilijk zijn, blijken ineens praktisch uitvoerbaar met weinig muis klikken.
De Linux Terminal voor beginners
Voor de beginners : om met Linux te beginnen heb je de terminal niet nodig. Het normale computeren kan allemaal met muis en toetsenbord. De basismogelijkheden van de terminal gebruiken vanuit een handleiding is echter niet moeilijk. Het is zelfs leuk ! Probeer de voorbeelden hieronder eens en laat je verrassen !
Open de Terminal (CTRL -T) en type in, elk commando een voor een, en bevestig dat steeds met een Enter :
- ls -l
- ls -1
- ls
- sl
- sudo apt-get install sl
- sl
- whoami
- pwd
- date
- cal
De Linux Terminal handigheden
Dit geldt in ieder geval voor de gnome-terminal en de xfce terminal
Handigheden :
- Bij de instellingen :
- De kleuren aanpassen
- De tekst groter en kleiner maken
- Met de muis ergens tekst selecteren (met de linker muis knop) en plakken (met de middelste muis knop) in de terminal. Dus overtypen hoeft niet. Hergebruiken ! Het is zooo handig !
- In de terminal een directory pad of bestandsnaam intypen. Probeer halverwege de TAB toets. Dat vult aan totdat het niet meer uniek is. Dan zelf aan vullen en weer die TAB toets proberen. Dat scheelt getiep. Dit is zooo gaaf !
- Tabbladen
- Meerdere terminals in een venster
- Tab toets tekst expansie (completion)
- Dit vult half ingetypte bestandsnamen of directory namen zelf aan. Met de TAB toets. Probeer maar !
- (bij het invoeren van directory en bestandsnamen in de huidige directory)
- nooit meer zelf in/over typen
De Terminal leren gebruiken
Linux Terminal cursusen en tips vindt je hier :
Ook op utuub :
De Linux Terminal voor gevorderden
Als je het 'Terminal gebruiken' goed in de vingers hebt ben je klaar voor
De terminal als tekst verwerker
Text edit met root rechten, en Terminal Tekst Editor Vi
De Terminal is ook te gebruiken om tekst bestanden te schrijven of aan te passen. De escape toets is hierbij de versnelling pook, waarmee je schakelt tussen het tekst invoeren, en het commando's maken van letters.
Root rechten in de terminal
Terminal Conventies - Prompt $ en #
# – de standaard prompt voor de root user, die met admin rechten
$ – de standaard prompt voor een gewone gebruiker, een zonder admin rechten
Over het # :
in scripts betekent een # vooraan de regel dat dat wat volgt, alleen maar commentaar is. Het doet niets, als het script als programma uitgevoerd wordt.
Terminal weetjes
# laat de meest recent gebruikte commandoos in de terminal zien
cat ~/.sh_history
Bestanden inventariseren
https://www.liquidweb.com/kb/what-is-umask-and-how-to-use-it-effectively/
Over lees en schrijfrechten
open een terminal en maak en inventariseer een bestand met
touch mijnbestand.txt stat mijnbestand.txt
De Linux Terminal - systeem info
En dan deze nog. In het menu vindt je de systeem info. Dat voert dit commando uit. En u mag kiezen :
- inxi -Fzx
PC inventariseren
Welke Linux versie draai je ? Gevonden op Externe link
Type any one of the following command to find os name and version in Linux:
cat /etc/issue cat /etc/os-release lsb_release -a hostnamectl
Systeem Info opvragen
Type the following command to find system info, zoals je Linux kernel version:
uname uname -a uname -r uname -s
Weten of Secure Boot aan of uit staat
mokutil --sb-state
resultaat : Secureboot = enabled or disabled
Bureaublad informatie
Welke display manager heb je ?
cat /etc/X11/default-display-manager
Cinnamon Display manager reset
gsettings reset-recursively org.cinnamon
Hardware aansluiten
Uitzoeken wat er gebeurt als je wat aansluit / kernel berichten output :
dmesg -Tw
Hardware Inventarisatie
Wat heb je aan boord ?
lspci lsusb inxi inxi -Fzx inxi -Fxxxrza inxi -h ishw xrandr --verbose
cat /proc/version
Linux Bestand zaken
Zie Linux Terminal - Bestandsbeheer
Een directory is hetzelfde als een map (in dit verhaal wel).
# probeer deze commandoos uit op een klein lijstje en dan steeds groterder # # Plan : Maak alles van ikzelf in de group users # geef alle bestanden (niet de mappen ! de rechten 644 # geef alle directories / mappen de rechten 755 # # [a-zA-Z0-9] = alles wat met een letter of cijfer begint # Specifieker mag ook. Gebruik nooit alleen maar een *. Zie onderaan # # Verander ikzelf in je eigen gebruikernaam !!! # # Mappen en bestanden in deze map aanpassen chown ikzelf.users [a-zA-Z0-9]* chown ikzelf:users [a-zA-Z0-9]* chmod 644 *txt chmod 644 *[JjPpGg] chmod 644 [a-zA-Z0-9]* # Mappen en bestanden in deze map en alle onderliggende mappen en bestanden aanpassen chown -R ikzelf.users [a-zA-Z0-9]* chown -R ikzelf:users [a-zA-Z0-9]* # # Het find en execute commando. Krachtig. Wel mee oppassen ! Bezint eer ge aanpakt ! # find . betekent : zoek in de huidige directory (dat is de punt .) en alles er onder # Deze . mag je vervangen door elk zelf te kiezen pad. # type f : files # type d : directories (=mappen) # find . -type f -name '[a-zA-Z0-9]*' -exec chmod 644 {} \; find . -type d -name '[a-zA-Z0-9]*' -exec chmod 755 {} \; # # # Doe NOOIT HELEMAAL NOOIT NIET !!! een find met * # Want die neemt in de huidige directory naast de . ook de .. mee. .. betekent de bovenliggende map # find . -type f -name * -exec chmod 644 {} \; # find . -type d -name * -exec chmod 755 {} \; #
Mijn basis werk set voor het opschonen van mijn home folder :
# Mappen # 3x hetzelfde ! cd /home/ikzelf cd ~ cd $HOME find . -type d -exec chmod 755 {} \; find . -type d -exec chown ikzelf:users {} \;
# Bestanden cd /home/ikzelf find . -type f -exec chmod 644 {} \; find . -type f -exec chown ikzelf:users {} \;
# Dit type commandoos gebruik ik ook om orde op zaken te stellen op mijn NAS. Zie verder
Linux Synology Nas zaken
https://www.synology.com/nl-nl
https://kb.synology.com/nl-nl/DSM/tutorial/Quick_Start_External_Access
https://kb.synology.com/nl-nl/DSM/tutorial/Cannot_connect_Synology_NAS_using_VPN_via_DDNS
https://kb.synology.com/nl-nl/DSM/tutorial/How_do_I_create_firewall_rules
Als je je bestanden vanuit meerdere Linux pc's op de Synology Nas wilt gebruiken, lijkt het zinvol om
- het eigenaarschap van de bestanden op de synology nas toe te kennen aan gebruiker nobody in de group users
- de rechten op een bestand in te stellen op -rw-r–r– (644) (of toch op 664 !?)
- de rechten op een map in te stellen op drwxr-xr-x (755) (of toch op 775 !?)
En denk er aan. Doe onderstaande kommando's op bestanden op je Nas, en niet op je bestanden op je home folder (daar gelden wat meer beperkingen en specifieke zaken)
Alle files exclusief sub mappen worden zo -rw-r–r–
find . -type f -exec chmod 644 {} \; find . -type f -exec chown nobody.users {} \; find . -type f -exec chown nobody:users {} \;
Alle jpg files exclusief sub mappen worden zo -rw-r–r–
find . -type f -name '*jpg' -exec chmod 644 {} \; find . -type f -name '*jpg' -exec chown nobody.users {} \; find . -type f -name '*jpg' -exec chown nobody:users {} \;
Alle submappen worden zo drwxr-xr-x (755) of drwxrwxrwx (777) of
find . -type d -exec chmod 755 {} \; find . -type d -exec chmod 777 {} \; find . -type d -exec chown nobody.users {} \; find . -type d -exec chown nobody:users {} \;
Let op : dit werkt ook meteen op de map zelf. En dat is zichtbaar in de bovenliggende map ! Dit komt door de .. zichtbaar in de terminal ls -la listing. Die .. staan voor de huidige map. En die wordt meegenomen door het find exec commando. Tis maar dat u het weet.
Mijn basis werk set in Mandriva Linux voor het opschonen van mijn NAS data :
# Mappen find . -type d -exec chmod 777 {} \; find . -type d -exec chown nobody:users {} \;
# Bestanden find . -type f -exec chmod 644 {} \; find . -type f -exec chown nobody:users {} \;
# Mappen en bestanden in de huidige map chown ikzelf:users [a-zA-Z0-9]* chown nobody:users [a-zA-Z0-9]* chmod 644 [a-zA-Z0-9]* chmod 755 [a-zA-Z0-9]* chmod 777 [a-zA-Z0-9]*
# Mappen en bestanden in de huidige map en alle onderliggende mappen en bestanden aanpassen chown -R ikzelf:users [a-zA-Z0-9]* chown -R nobody:users [a-zA-Z0-9]* # Vaak is het beter om het find commando te gebruiken en zo onderscheid te maken tussen mappen en bestanden # Voor bestanden : chmod -R 644 [a-zA-Z0-9]* # Voor mappen : chmod -R 755 [a-zA-Z0-9]* chmod -R 777 [a-zA-Z0-9]*
Bestanden zoeken op basis van datum
Zoek een bestand dat gemaakt of gewijzigd is op of na of voor een bepaalde datum.
Gezocht op :
- linux gnome terminal find files based on change date
- linux gnome terminal find files based on modif date
Gevonden :
- ja een aantal
To find files based on their change date in the Linux GNOME terminal, you can use the find command with the -ctime or -cmin options.
- ctime is used to find files based on the number of days since the file's last change.
- cmin is used to find files based on the number of minutes since the file's last change.
Here are some examples:
Find files changed in the last 24 hours:
bash
find . -ctime -1
Find files changed in the last 30 minutes:
bash
find . -cmin -30
Find files changed exactly 1 day ago:
bash
find . -ctime 1
Find files changed between 1 and 2 days ago:
bash
find . -ctime 1 -ctime -2
Find files changed after a specific date (e.g., January 1, 2022):
bash
find . -newermt “2022-01-01”
Find files changed before a specific date (e.g., January 1, 2022):
bash
find . -not -newermt “2022-01-01”
Note: The . in the find command represents the current directory. You can replace it with a specific directory path if needed.
Also, you can use the -print option to print the file names, or use the -exec option to execute a command on the found files. For example:
bash
find . -ctime -1 -print
find . -ctime -1 -exec ls -l {} \;
Bestanden zoeken met bepaald woord er in
Gezocht op : linux gnome terminal find words in files
Gevonden : https://stackoverflow.com/questions/16956810/how-to-find-all-files-containing-specific-text-string-on-linux Hierop staan veel voorbeelden uitgewerkt # Zoek in de map "/home/ikzelf/mijnmapmetbestanden" naar bestanden (type f van file) met daarin "HETWOORDDATJEZOEKT" find /home/ikzelf/mijnmapmetbestanden -type f -exec grep -H 'HETWOORDDATJEZOEKT' {} \; find /etc/profile.d -type f -exec grep -H 'alias' {} \; find /etc/profile.d -type f -exec grep -H 'sleep' {} \; # Zoek in de huidige map "dat is de punt !" naar bestanden (type f van file) met daarin "HETWOORDDATJEZOEKT" find . -type f -exec grep -H 'HETWOORDDATJEZOEKT' {} \; find . -type f -exec grep -H 'alias' {} \; find . | xargs grep HETWOORDDATJEZOEKT 2>/dev/null 2>/dev/null : alle foutmeldingen gaan de bitbucket in. dat maakt de gewenste boel leesbaarder grep -rnw '/path/to/somewhere/' -e 'pattern' voorbeeld : # zoek in de tekst bestanden op een usb stick naar paswoorden : grep -rnw '/media/jijzelf/JOUWUSBSTICK/' -e 'paswoord' grep -rnw '/home/ikzelf/mijnmapmetbestanden' -e 'HETWOORDDATJEZOEKT' grep -rnw '.' -e 'HETWOORDDATJEZOEKT' # Achteraan geef je de map op waarin je wilt zoeken. De huidige (de punt) mag maar hoef je niet op te geven grep -Ril "text-to-find-here" grep -Ril "text-to-find-here" . # Wat eigen net gebruikte voorbeelden : grep -Ril "alias" /etc/profile.d grep -Ril "# sleep" /etc/profile.d # Zoeken vanaf / zoekt je hele computer door. Wil je dat echt ? Vervang dan de . door de / grep -Ril "text-to-find-here" . * i stands for ignore case (optional in your case). * R stands for recursive. * l stands for "show the file name, not the result itself". * / stands for starting at the root of your machine. * / kun je veranderen door bijvoorbeeld $HOME, of /home/jijzelf/ of net wat je nodig hebt ...
Linux Disk zaken
lsblk mount fdisk -l clear; cd /media; ls -l clear; cd /mnt; ls -l du df xdiskusage
Kijken wat er aan boord is
df -h You can also find out the UUID by using the following commands (zie het verschil met el en een) : ls -l /dev/disk/by-uuid ls -1 /dev/disk/by-uuid blkid blkid -o list
blkid wordt ook aangeraden in mijn huidige /etc/fstab (waarin de aankoppel configuratie staat) :
# Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5)
Kijken wat er al aangekoppeld is
Dat kan op diverse manieren. Hier een paar voor in de terminal :
cat /proc/mounts mount mount | grep nfs mount | grep media mount | grep mnt
Linux Netwerk zaken
Onderstaande kommando's zijn ter lering ende vermaek. als kladblok verzameling. oppassen dus. De meeste geven alleen systeem info.
clear; iwconfig; ifconfig; route -n lshw lshw -class network lspci lspci -nnk | grep -iA3 net; rfkill list rfkill list mokutil --sb-state
zie man rfkill voor meer mogelijkheden
Linux Mint updaten
apt update && apt upgrade -y apt autoremove
Zie elders voor nog meer update en upgrade zaken
Linux Mint instellingen opvragen
Probeer onderstaande commando's eens uit.
- Om te beginnen :
- als gewone gebruiker !, niet met root / sudo).
- vraag de handleiding op met het man commando (man =manual), zoals bij een paar is aangegeven.
- Een man commando kun je afsluiten met 'q' van quit.
- Als een commando iets niet mag oid, dan moet je het met root rechten uitvoeren (bijvoorbeeld met sudo voorop)
- Een lopend command afsluiten kan (meestal) met CTRL C en soms met CTRL D.
man man man vrouw man env df df -h env fdisk -l sudo fdisk -l free ifconfig localectl ls ls -l ls -1 man set route -n set sl uname -a uname -n
De Linux Terminal zelfgemaakte commando's
Selecteer (met de linker muis knop) onderstaande regels. Open een terminal, klik er in en plak (met de middelste muis knop) de regels tekst in de terminal. De woorden achter 'alias' wordt dan een door jou zelf gemaakt commando. Hieronder mijn favoriete variaties op het ls commando. Daarmee bekijk je wat er in de huidige directorie zit.
Terminal aliassen voor beginners
# variaties op het commando 'ls' alias f="ls -lF --color=never" alias c="clear" alias cf="clear; ls -lF --color=never" alias d="ls -l --color=never | grep '^d'" alias fd="ls -lF --color=never" alias lsdr="ls -ltcr --color=never" alias lsdra="ls -ltcra --color=never" alias lsd="ls -ltc --color=never" alias lsda="ls -ltca --color=never" alias lsn="ls -lF --color=never | sort +8 -9" alias lsnr="ls -lF --color=never | sort -r +8 -9" alias lsp="ls -lF --color=never | sort +0 -1" alias lspr="ls -lF --color=never | sort -r +0 -1" alias lss="ls -lF --color=never | sort +4 -5 -n" alias lssr="ls -lF --color=never | sort -r +4 -5 -n -r"
# Kleuren instellen kun je door oa een van deze toevoegingen :
--color=auto --color=never
Bij het samenstellen van deze commando's heb ik deze letters functioneel ingezet :
c : clear d : directory f : files n : naam p : protectie (de lees en schrijf rechten) s : size r : reverse = volgorde andersom
Eigen commando's voor het camera en foto werk # commando's voor het hernoemen van foto bestanden met jpg en cr2 extensie. # de programma's jhead en exiftool moeten geinstalleerd zijn # de bestandsnaam wordt samengesteld op basis van de exif data in het fotobestand. # jpg wordt jpg alias fotonaamjpg='jhead -n%Y_%m%d_%H%M%S I*[JjPpGg]' alias fotonaamcr2=“exiftool '-filename<CreateDate' -d '%Y_%m%d_%H%M%S-c.le' -ext cr2 .” </code>
Vraag : werkt dit ook met een gopro ? Ff uitzoeken nog …
Terminal aliassen in de configuratie vastleggen
Door deze aliassen in specifieke configuratie bestanden te zetten, zullen ze altijd meteen in de terminal beschikbaar zijn. Belangrijke plekken om ze in vast te leggen zijn :
- /home/jijzelf/.bash_aliases
- /etc/profile.d/mijneigenaliassen.sh
Deze bestanden moeten altijd uitvoerbaar zijn. Dat herken je (in de terminal, na een 'ls -l') aan x in de rechten : -rwxr-xr-x
Je kunt zo een bestand inlezen (zodat je de aliassen kunt testen) met bijvoorbeeld : $ cd $ sh .bash_aliases
Hierover elders meer …
Terminal aliassen voor foto en camera werk
Als je (*) al foto's hebt in de map fotoos, dan is dit vervolg ook leuk en leerzaam :
- which jhead
- sudo apt-get install jhead
- cd /home/jijzelf/fotoos
- jhead *jpg
- jhead *[JjPpGg]
- jhead -n%Y_%m%d_%H%M%S *[JjPpGg]
(* vervang jijzelf met jouw voornaam, als dat tenminste ook je gebruiker account is)
*[JjPpGg] ???? : Zo vang je de hoofdletter gevoeligheid af. Jpg jpg JPG…, het wordt allemaal gevonden.
Heb je ook raw fotoos ? Met bijvoorbeeld de canon extensie CR2 ?
Die laten zich hernoemen met het programma 'exiftool'.
met dit commando :
exiftool '-filename<CreateDate' -d '%Y_%m%d_%H%M%S-c.le' -ext cr2 .
De aliassen hiervoor zien er dan zo uit :
alias fotonaam='jhead -n%Y_%m%d_%H%M%S *[JjPpGg]' alias fotonaamcr2='exiftool '\''-filename<CreateDate'\'' -d '\''%Y_%m%d_%H%M%S%%-c.%%le'\'' -ext cr2 .'
De Linux Terminal handleidingen
Linux Terminal handleidingen
Terminal uitbreidingen
Fuzzy Search :
- https://itsfoss.com/fuzzy-file-search-linux/. Deze zit niet standaard in mijn Linux Mint 21.2
Systeem monitoren met btop
btop :
- programma om je systeem te monitoren. Draait in de terminal. Deze is standaard beschikbaar in mijn Linux Mint 21.2. Moet m wel zelf nog installeren.
apt install btop. Of met Synaptic.
btop is a modern and colorful command line resource monitor that shows usage and stats for processor, memory, disks, network and processes. btop features:
- Easy to use, with a game inspired menu system.
- Full mouse support, all buttons with a highlighted key is clickable and mouse scroll works in process list and menu boxes.
- Fast and responsive UI with UP, DOWN keys process selection.
- Function for showing detailed stats for selected process.
- Ability to filter processes.
- Easy switching between sorting options.
- Tree view of processes.
- Send any signal to selected process.
- UI menu for changing all config file options.
- Auto scaling graph for network usage.
- Shows IO activity and speeds for disks
- Battery meter
- Selectable symbols for the graphs
- Custom presets
- And more…
- btop is written in C++ and is continuation of bashtop and bpytop.