basisbegrippen
A. wildcards
-
Hoe vind je
(kijken en vinden doe je metls
)
in/usr/share/pixmaps
(dit is je path dat je plaatst voor de filenaam)
alle files die eindigen op.png
(hier heb je een wildcard*
nodig diealles
vervangt dat voorafgaat aan.png
oplossing:$ ls /usr/share/pixmaps/*.png
(je tikt het dollarteken niet in, dat staat er al)
Hoe vind je alle files die eindigen oppng
oplossing:$ ls *png
Is er een verschil?
ja, het tweede commando vindt ook files waarin zich geenpunt
bevind, voor depng
zoals bvb
dit-is-de-file-die-eindigt-op-png
-
Hoe vind je in
/etc
alle files die eindigen opconf
?
(we zoeken ook nu weer metls
in/etc
naar*
(alles) dat eindigt opconf
)
oplossing:$ ls /etc/*conf
Zoek met
man
vanls
wat de optie-d
betekent.
(tik het volgende in: )$ man ls
(en zoek naar -d ....)
-d
--directory -- list directories themselves, not their contents
(dit betekent dat als we de optie-d
gebruiken bijls
dat alleen de directory-naam op scherm brengt, en niet de voledige inhoud ervan)
voorbeeld:$ ls -l /etc/cron.d -rw-r--r-- 1 root root 285 May 29 2017 anacron -rw-r--r-- 1 root root 100 Jan 17 2016 mailping -rw-r--r-- 1 root root 506 May 11 2018 munin-node -rw-r--r-- 1 root root 712 Jan 18 2018 php -rw-r--r-- 1 root root 137 Dec 20 2018 timeshift-hourly
(in het voorbeeld hierboven zie je wat er in de directory zit ...)
$ ls -l -d /etc/cron.d drwxr-xr-x 2 root root 4096 Aug 27 09:44 /etc/cron.d
(in het voorbeeld hierboven zien we de werking van -d: de gegevens van de directory zelf worden op scherm gebracht.)
Zoek nu opnieuw alle files die eindigen op
.conf
in/etc
met die optie-d
bijls
.
(als er nu directories in /etc zitten die eindigen op .conf, wordt niet hun inhoud op scherm gebracht maar alleen de gegevens van de directories zelf) -
Hoe vind je in
/etc
alle files die op de tweede plaats de letter i hebben?(we moeten nu gebruik maken van de ? wildcard, die altijd EEn character vervangt. We zetten op de eerste plaats het vraagteken, daarna op de tweede plaats de letter i, zoals gevraagd, en vullen dan aan met
*
voor om het even wat, na die letter i)
oplossing:$ ls /etc/?i*
B. path -
Ga naar jouw home directory. Dat doe je met één van de volgende mogelijkheden:
$
cd
$
cd $HOME
$
cd ~
Tik vervolgens:
$
pwd
$
ls
Daarna:
$
cd /home
$
pwd
$
ls
Wat is het verschil tussen jouw home-directory (
/home/<jelogin>
) en de directory/home
?
(in de directory/home
staan de home-directories van de gebruikers. Jouw home directory is er ook zo EEn en mischien heet die wel/home/sandra
. In/home/sandra
heeft gebruiker sandra alle rechten, maar niet in/home
, want die is van het systeem zelf -- een beetje zoals de directoryC:\Users
in windows. Als er in een oefening gevraagd wordt om te werken in JOUW home directory, moet sandra werken in/home/sandra
, en altijd met de rechten die ze zelf heeft.
In de meeste oefeningen moet je werken in jouw home-directory) -
Start in jouw home directory. Maak er twee subdirs:
vuilbak
endump
$ cd $ mkdir vuilbak dump
Wat is vanuit jouw home het relatief path naar
vuilbak
?
( vuilbak )
Wat is het absoluut path naardump
?
(/home/yourname/dump
)Ga nu naar
vuilbak
.
Welk commando gebruik je?
($ cd vuilbak
)
Wat is nu je relatief path naardump
?
(../dump
)
Is het absoluut path veranderd?
(nee)Wat is het absoluut path naar
/etc
?
(/etc
)
Wat is vanuit jouw directory vuilbak het relatieve path naar/etc
?
(../../../etc
)
(als we EEn nivo achteruit gaan zitten we in je home-dir, twee nivo's en we zitten in/home
, drie nivo's en we zitten in/
, en dan moeten we nog naar`etc
) -
Test het volgende:
cd ~/dump && pwd
doe daarna
cd $HOME/vuilbak && pwd
is
~/dump
een absoluut of een relatief path?
(~/dump
is een absoluut path want de tilde verwijst absoluut naar je home directory)
is$HOME/vuilbak
een absoluut of een relatief path?
($HOME verwijst absoluut naar jouw home directory, en verwijst altijd naar een absoluut path)
(iets is relatief als het commando afhangt van de plaats waarop je je op dat ogenblik bevindt)
klik op deze link: meaning of tilde in linuxTot slot: waarvoor dient
&&
(zoek dit op op het internet)
(In shell, when you see$ command one && command two
the intent is to execute the command that follows the && only if the first command is successful. It intends to prevent the running of the second process if the first fails.)
C. piping en redirection
-
Test het volgende:
ls -l /etc | head
ls -l /etc | tail
tik dan:
cd $HOME
ls -l /etc > etc.dir
kijk met
ls
of je inderdaad een fileetc.dir
hebt in je home directory.
gebruik vervolgens het commandofile
opetc.dir
.
Wat voor type file is dit?bekijk vervolgens dit bestand met
less
daarna metmore
en dan metcat
bekijk het bestand nogmaals maar deze keer met
head
,tail
entac
.