This is an old revision of the document!
Ne propunem să folosim comenzi și înlănțuirea comenzilor pentru a realiza funcționalități practice la niveul liniei de comandă.
Listați primele 10 fișiere obișnuite (regular files) din ierarhia /etc
(adică din toate directoarele, subdirectoarele și subdirectoarele acestora etc.) sortate în ordinea dimesiunii ocupate de fiecare fișier.
stat
pentru a afișa doar numele și dimensiunea fișierului. Adică o construcție de forma
stat -c ... $(find ...)
Apoi filtrați output-ul comenzii de mai sus cu ajutorul comenzii sort
pentru a sorta numeric în funcție de dimensiunea fișierului. Adică o construcție de forma:
stat -c ... $(find ...) | sort ...
Apoi filtrați output-ul prin comanda tail
pentru a extrage doar primele 10
fișiere, în ordinea dimensiunii. Adică o construcție de forma:
stat -c ... $(find ...) | sort ... | tail
Folosiți /dev/urandom
, dd
și split
pentru a genera, într-un one liner, 100 de fișiere a câte 100 de octeți aleatori cu numele partXYZ.dat
unde XYZ
sunt valorile 000, 001, …, 099. Adică part000.dat
, part001.dat
, …, part099.dat
.
split
.
Nu este nevoie de for
, seq
sau touch
.
100
de fișiere a câte 100
de octeți va trebui să generați cu comanda dd
conținut de 100 x 100 = 10000
(zece mii) de octeți.
dd
poate scrie la standard output în absența opțiunii of
.
split
poate citi de la standard input dacă se folosește construcția -
(semnul minus) pentru numele fișierului.
Adică veți trece output-ul comenzii dd
în input-ul comenzii split
.
Adică trebuie să aveți o construcție de forma
dd if=/dev/urandom bs=... count=... | split ... - <prefix>
Folosiți ca ultimele două argumente pentru comanda split
construcția -
(semnul minus) însemnând că citește de la standard input și <prefix>
reprezentând prefixul pe care vreți să îl puneți fișierelor nou create, adică șirul part
.
Pentru split
trebuie să folosiți opțiunile care:
part
).dat
XYZ
este numeric)XYZ
are trei caractere)
Folosiți conținutul fișierului /dev/urandom
pentru a genera o parolă aleatoare de 16 caractere.
tr
cu opțiunile -d
și -c
pentru a extrage doar caractere tipările (litere mici, litere mari, numere).
Folosiți comanda head
cu opțiunea -c
pentru a extrage doar 16
caractere din output-ul anterior.
Actualizați comanda de mai sus pentru a genera 20
de parola a câte 16
caractere.
for
(merge, dar vrem să folosim fold
fold
de mai jos.
fold
împarte informațiile primite la intrarea standard în linii pe care le afișează la ieșirea standard. Poate să extragă linii de dimensiune dată. Uzual se folosește în forma
<command> | fold
unde <command>
este o comandă care generează informații pe care apoi să le prelucreze comanda fold
.
Extrageți 20*16 = 320
caractere aleatoare și apoi folosiți comanda fold
cu opțiunea -w
pentru a le grupa în seturi de câte 16
. Adică o construcție de forma
cat /dev/urandom | ... | fold -w 16