Gebruikershulpmiddelen

Site-hulpmiddelen


linux_terminal:gebruiken

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.

Interactive and non-interactive shells and scripts

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

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 :

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.

  1. ctime is used to find files based on the number of days since the file's last change.
  2. 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

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 :

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.
linux_terminal/gebruiken.txt · Laatst gewijzigd: 2025_0330_07:55 door Hans Bollen

Tenzij anders vermeld valt de inhoud van deze wiki onder de volgende licentie: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki