Skoči na vsebino

OS - 2021/22 - 06 KVIZ

find / –inum $(stat test.txt –c "%i") –exec rm -i {} \;

V ukazno vrstico zapišemo: find / –inum $(stat test.txt –c "%i") –exec rm -i {} \; Koliko ima ta zapis:

Različnih ukazov?

Odgovor: 3

Imamo find, stat ter rm

Stikal/izrazov?

Odgovor: 4

Imamo: -inum, -c, -exec ter -i.

Tukaj gre tudi za eno anomalijo, in sicer -inum, saj se obicajno uporablja en minus za podajanje stikal z enim znakom (obicajno so to le okrajsave) ter dva minusa za vecznacna imena stikal. Kot na primer lahko ukaz rm izvedemo z rm -rf neka/podmapa z okrajsavami ali rm --force --recursive neka/podmapa z polnimi imeni.

Sklicev na vsebino datotečnega sistema (bodi pozoren/a)?

Odgovor: 3

Imamo: find /, stat test.txt ter rm -i {}

Klicev podlupin?

Odgovor: 1

Imamo: $(stat test.txt –c "%i")

pwd < vhod.txt

Katere trditve držijo in katere ne držijo ob izvedbi ukaza pwd < vhod.txt?

Trditev Drzi?
Ukaz pwd ignorira vsebino v datoteki vhod.txt.
Ukaz pwd ima v tem primeru en argument.
Ukaz pwd v tem primeru nima nobenega argumenta.
Ukaz pwd ima v tem primeru dva argumenta.

Zadnje dodanega uporabnika v datoteko last.txt

Zapišite zadnje dodanega uporabnika v datoteko last.txt. Napake pa preusmerite v nič.

Ukaz Pravilnost
tail -n 1 /etc/passwd > last.txt 1>/dev/null
tail -n 1 /etc/passwd > last.txt 1>/dev/null
cat -n 1 /etc/passwd > last.txt 2>/dev/null
tail -n 1 /etc/passwd > last.txt 2>/dev/null
tail -c 1 /etc/passwd > last.txt &2>/dev/null
tail -c 1 /etc/passwd > last.txt 2>/dev/null

Utemeljitev

Pri Linuxu, v terminalu, poznamo dva primarna "tipa" output-a, ki jih programi lahko izpisejo v terminal: stdout ter stderr - standard output ter standard error. To sta dva individualna "pipeline"-a (bi lahko rekli) uporabljena za posredovanje podatkov med programi.

Ko pisemo neke script-e naj lahko izpisovanje nekega errorja moti, ker zelimo dobiti samo output programa. Damo za primer da imamo v datoteki a.txt zapisano Ime Priimek. Da dobimo samo priimek lahko izvedemo ukaz cat a.txt | awk '{print $2}' kar nam bo izpisalo drugo besedo v besedilu, ki ga je izpisal cat a.txt, ki izpise vsebino datoteke a.txt.

[aljaxus@aljaxus-laptop tmp]$ echo "Aljaz Starc" > a.txt
[aljaxus@aljaxus-laptop tmp]$ cat a.txt 
Aljaz Starc
[aljaxus@aljaxus-laptop tmp]$ cat a.txt | awk '{print $2}'
Starc
[aljaxus@aljaxus-laptop tmp]$ 

A v primeru da datoteka a.txt ne obstaja bo ta ukaz sproduciral error ter ga le takega vrnil - kar pa nocemo.

[aljaxus@aljaxus-laptop tmp]$ rm a.txt 
[aljaxus@aljaxus-laptop tmp]$ cat a.txt | awk '{print $2}'
cat: a.txt: No such file or directory
[aljaxus@aljaxus-laptop tmp]$ 

Ce ni datoteke ni vsebine, posredno tudi ni priimka, zato zelimo "nic" izpisano na zaslon. Zato dodamo 2>/dev/null kar bo preusmerilo output na stderr "pipeline"-u v /dev/null, kar je na Linuxu nic (je void: lahko beres - ne bos dobil nic, lahko zapises - se nebo nikamor zapisalo).

[aljaxus@aljaxus-laptop tmp]$ cat a.txt 2>/dev/null | awk '{print $2}'
[aljaxus@aljaxus-laptop tmp]$ 

Korektnost petih trditev

Katere od spodnjih trditev držijo in katere ne držijo?

Trditev Pravilnost
Povezavo med dvema ukazoma v cevovodu označimo z operatorjem |.
Vsak program v cevovodu se izvaja v podlupini.
Cevovod poveže standardni izhod prvega programa na standardni vhod drugega programa.
Poimenovan cevovod ustvarimo z ukazom mkfifo.
Poimenovan cevovod ustvarimo z ukazom mkpipe.

sudo find / -iname *tmp –type f –exec ls –l {} \;

Kakšen je pomen naslednjih podnizov v klicu sudo find / -iname *tmp –type f –exec ls –l {} \;?

Podniz Pomen
-type datoteka je podanega tipa
\; zaključek argumentov ukaza ls
-iname ime datoteke ustreza podanemu vzorcu (neobčutljivo na velikost črk)
{} prenos najdenega rezultata ukaza find v ukaz ls

Zadnja posodobitev: April 4, 2022