Comandă | Descriere |
---|---|
. | directorul curent |
.. | directorul părinte |
cd | schimbă directorul curent |
cp | copiază un fișiere sau director dintr-o locație în alta |
stat | afișează statistici fișier |
file | determină formatul unui fișier |
tree | listează conținutul directoarelor într-un format arborescent |
mkdir | creează un director |
ls | listează conținutul unui director |
ls -l | listează informații despre intrări, printre care și tipul intrărilor |
rmdir | șterge un director gol |
tar | creează o arhivă de tip tar |
dd | realizează copierea la nivel de byte |
gzip | creează o arhivă comprimată gzip |
bzip2 | creează o arhivă comprimată bzip2 |
find | caută fișiere ce corespund criteriilor specificate |
mv | mută/redenumește un fișiere/director |
rm | șterge un fișiere/director |
touch | schimbă timpul de creare/acces/modificare a unui fișier/director |
cpio | crează o arhivă de tip cpio |
gunzip | dezarhivează un fișier de tip gzip |
xz | arhivează și dezarhivează fișiere de tip xz sau lzma |
lzma | echivalent cu xz --format=lzma |
dd if=/dev/zero of=/home/student/myfile.dat bs=1M count=2
pentru a crea un fișier plin cu octeți 0 de 2 MB.
my-file
(fișierul va fi gol), folosiți comanda: touch my-file
ls -l my-file
Ce dimensiune are acest fișier?
mv my-file new_file
Atenție!
Se va suprascrie fișierul new_file
dacă acesta există.
mkdir -p /home/student/My/Long/Folder
cd /home/student/My/Long/Folder
file1
și file2
.rm file1
cp /home/student/my-file .
cd ..
rm -r Folder
Același lucru se poate realiza și cu comanda rmdir
dacă directorul este gol.
/etc/rc2.d
și rulați comanda ls -l
. Ce semnificație credeți că au caracterele -
și l
de la începutul liniilor din output? Ce alte caractere ați mai întâlnit în aceeași poziție? * | se expandează la orice și oricâte caractere |
? | se expandează orice caracter |
[] | se expandează la orice caracter din interiorul parantezelor |
{} | se expandeaza la un sir de caractere din interiorul acoladelor |
Exemple
lp
se va utiliza: ls lp*
ar
și pot să se termine cu orice caracter se va utiliza: ls ar?
ar
și se pot termina în orice cifra se va utiliza: ls ar[0-9]
file_
și se pot termina în deny
sau allow
se va utiliza: ls file_{deny,allow}
Atenție!
Nu se pune spațiu între deny
și allow
.
unu
, doi
și trei
în directorul propriu (home) și afişați-le folosind comanda ls
. Adăugați apoi parametrul -l
comenzii ls
pentru a afișa mărimile acestor fișiere.trei
va fi creat utilizând comanda dd
, dați ce dimensiune doriți.human readable
se face utilizând și parametrul -h
.touch
pe fișierul unu
. Folosiți, din nou, comanda ls -l
. Ce observați?dir1
și dir2
.unu
în directorul dir1
. Mutați fișierele doi
și trei
în directorul dir2
dintr-o singură comandă. Mutați directorul dir1
în directorul dir2
.ls
) și utilizând comanda tree
.patru
și încercați să îl mutați în directorul dir1
redenumindu-l unu
. Mutarea trebuie să se facă doar dacă utilizatorul confirmă suprascrierea fișierului unu
(Hint: man mv, overwrite).dir2
și copiați conținutul acestuia un nivel mai sus, în directorul propriu. Copierea directoarelor trebuie făcută recursiv, cu parametrul adecvat. Folosiți wildcard-ul *
(star).dir1
folosind comanda rm
. Apoi ștergeți directorul dir2
folosind rmdir
. mod
și modificați-l astfel încât să aiba drepturile 777man mkdir
)touch
de 10 ori - nah, too much workfile
.{mere, pere, alune
}.c, d, e, f
și cifrele: 1, 2, 3, 4
./home/student
următoarea structură de directoare /home/student/the/unix/file/system/sure/it/corrupts/your/data/but/look/how/fast/it/is
. (Hint: opțiunea parent
a comenzii mkdir
)/home/student/the/unix/file/system/sure/it/corrupts/your/data/but/look/how/fast/it/is
și creați trei fișiere, denumite ext2
, ext3
și ext4
.ext4
a fost accesat și modificat la 2010.05.23 15:25 (Hint: touch
)ext4
? (Hint: stat
)stat
pentru a afișa doar numele și inode-ul fișierului.sym-ext4
către fișierul ext4
. (Hint: man ln
, căutați “symbolic”)ext4
și afișați conținutul lui sym-ext4
.ext4
și afișați conținutul lui sym-ext4
.sym-ext4
(Hint: file
)hard-ext3
către fișierul ext3
.hard-ext3
și ext3
. (Hint: stat
)ext3
și afișați conținutul lui hard-ext3
.hard-ext3
(Hint: file
)ext3
și afișați conținutul lui hard-ext3
- de ce merge?random_file
(cu date random).random_file
în fișierul random_1
.random_file
în fișierul random_2
. Hint: skip
random_1
și random_2
(Hint: seek
or append
, check the man)diff
.find
pentru a găsi toate fișierele din /etc
care se termină în .allow
sau .deny
Hint: {{{man find
, look after operators}}}.find
poate executa anumite comenzi pe fișierele găsite utilizând următoarea sintaxa: find location -name pattern -exec cp {} . \; {} - se va expanda la denumirea fișierului găsit (cu tot cu calea dată spre căutare)
find
copiați toate fișierele găsite în /etc
(nu trebuie verificate alte directoare din /etc
) cu extensia .conf
în directorul curent cu denumirea nume_initial-copie
(Hint: maxdepth).touch
sau dd
)tar -cf myfile.tar myfile.dat
pentru a crea o arhivă tar ce conține fișierul generat anterior.
tar -czf myfile.tar.gz myfile.dat
pentru a crea o arhivă tar.gz ce conține fișierul generat anterior, comprimat folosind metoda gzip.
tar -cjf myfile.tar.bz2 myfile.dat
pentru a crea o arhivă tar.gz ce conține fișierul generat anterior, comprimat folosind metoda bzip2.
tar
se înlocuiește parametrul c
cu parametrul x
în comenzile anterioare.gzip
fără a folosi tar
, se folosește utilitarul gzip
: gzip -c myfile.dat > myfile.dat.gz
În mod analog se crează arhive bzip2
folosind utilitarul bzip2
.
gzip
se folosește utilitarul gunzip
: gunzip -c myfile.dat.gz > myfile.dat
Pentru fișiere bzip2
se folosește utilitarul bunzip2
.
ls | cpio -ov > archive.cpio
Pentru dezarhivare:
cpio -idv < archive.cpio
Căutați în pagina de manual la ce sunt necesari acești parametri.
xz
sau lzma
se rulează: xz archive.tar # rezultă archive.tar.xz lzma archive.tar # rezultă archive.tar.lzma
Pentru decomprimare:
unxz archive.tar.xz # rezultă archive.tar unlzma archive.tar.lzma # rezultă archive.tar
Se poate folosi și utilitarul tar:
tar -c --xz -f archive.tar.xz /directory # results in archive.tar.xz tar -x --xz -f archive.tar.xz # results in /directory
/home/student/the/unix
(creat într-un exercițiu anterior) cu toate fișierele și subdirectoarele conținute de acesta într-o arhivă unix.tar
. Atenție: doar arhivați directorul, nu îl și comprimați./home/student/the/unix
cu toate fișierele și subdirectoarele conținute de acesta într-o arhivă unix.tar.gz
. De data aceasta comprimați arhiva. Observați diferența de mărime față de arhiva anterioară.unix.tar
fără a o dezarhiva. (Hint: man tar
, căutați “list”. Nu uitați să specificați numele arhivei prin -f
)cpio
cu același conținut. (Hint: folosiți find
pentru a-i specifica utilitarului fișierele de arhivat).apt-cache show atool
pentru a afișa informații despre pachetul atool
. Instalați pachetul și realizați, respectiv, arhive .tar.gz
, .tar.bz2
, .zip
, .cpio
, .Z
./home/student/big-text-file.txt
care să conțină cel puțin 5 MB text (date aleator generate).big-text-file.txt
în format gzip
, bzip2
și zip
. Care sunt diferențele de mărime ale arhivelor?conf.zip
, conf.tar.gz
, conf.cpio
care conțin fișierele cu extensia .conf
din ierarhia /etc/
./home/student/usr
care să conțină toate directoarele și toate fișierele din /usr care au inclus în numele lor șirul 'stdio' folosind comanda cpio
. Ierarhia trebuie păstrată. (Hint: cpio pass through
)/home/student/the/unix
cu toate fișierele și subdirectoarele conținute de acesta în două arhive unix.tar.xz
și unix.tar.lzma
folosind direct utilitarul tar. Comparați dimensiunea arhivelor rezultate cu dimensiunea arhivei de la exercițiul 1.file1
de 5MB conținând date random (utilizați /dev/urandom
) și un folder numit tar-power
. Arhivați acest fișier (fără comprimare) astfel încât arhiva să se găsească în folderul tar-power
(Hint: man tar
, change directory
).file2
de 7MB conținând zero-uri și adăugați-l în arhivă (nu creați arhiva de la 0).file1
și file2
.file1
astfel încât acesta să conțină alte date (dimensiunea sa fie tot 5MB). Se poate verifica dacă fișierul dintr-o arhivă este diferit de cel nearhivat utilizand parametrul -d
.file1
în ambele arhive însă utilizând diferite moduri:append
update
diff
pe cele 2 arhive. Ce observati?update
nu suprascrie fișierul în arhiva, ci doar îl adaugă la sfârșit - se poate verifica ușor listând conținutul arhivei.man tar
, concatenate).Atentie!
Cele 2 arhive ar trebui să aibă același format deoarece concatenarea nu va verifica compatibilitatea între ele.-k
.extract
unde veți dezarhiva doar fișierul file2
din arhiva.file1
inițial.--occurrence=nr
pentru a specifica care apariție să fie dezarhivată.file1
și file2
și arhivați cele 2 link-uri într-o nouă arhivă, astfel încât în arhivă rezultată să se găsescă fișierele (Hint: dereference})