Leksion 01- Sistemi i skedareve


Sistemi i skedareve

Ne nje sistem Linux cdo gje eshte nje skedar; nese nuk eshte nje skedar atehere eshte nje proces.

Ky pohim eshte i vertete pasi ne linux ka disa tipe qe vecanta skedaresh qe nuk jane skedare ne kuptimin e thjeshte  (  si per shembull named pipes dhe sockets, jane skedare).
Ne Linux nuk behet dallim midis skedareve dhe direktorive, direktorite jane konceptuar si skedare qe permbajne skedare te tjere. Skedare jane programet , sherbimet, tekstet, imazhet etj. Nga kendveshtrimi i sistemit edhe pajisjet e hyrje-daljes konsiderohen si skedare.
Direktorite ne LINUX jane te organizuar ne formen e pemes duke nisur me dosjen / (rrenje) dhe gjithe tjerat si nendirektori te saj.  

Pjesa me e madhe e skedareve jane skedare te zakonshem qe ruajne te dhena si per shembull skedare tekst, skedare te ekzekutueshem etj, ndersa ka gjithashtu edhe disa tipe te vecante skedaresh:


Tipet Funksioni
 Direktorite Skedare qe permbajne skedare te tjere
 Skedare speciale Nje mekanizem qe perdoret per input dhe output. Pjesa me e madhe e ketyre skedareve ndodhen ne dosjen /dev
 Links Te ngjashme me shortcut ne windows, linket jane nje menyre per ta bere te dukshem nje skedar nga disa vende ne pemen e direktorive
 sockets  skedare te vecante , te ngjashem me TCP/IP sockets, qe ofrojne mundesi komunikimi midis procesece
 Named pipes te ngjashem me sockets qe mundesojne komunikim midis proceseve




Struktura e direktorive

Direktorite ne LINUX jane te organizuar ne formen e pemes duke nisur me dosjen / (rrenje) dhe gjithe tjerat si nendirektori te saj.  


ls 


Direktoria rrenje permba direktorite:


 Dosja    Funksioni i dosjes
 bin Kjo dosje permban skedare te ekzekutueshem ( programe ) per administrimin e sistemit dhe per funksione te tjera.
 boot  Ne sistemet redhat ne kete dosje ndodhet kerneli, berthama e sistemit operativ. Ne kete dosje ndodhen skedaret qe nevojiten per boot-imin e sistemit si psh bootloader
 etc Ne kete dosje dhe ne dosjet qe ndodhen brenda saj vendosen pjesa me e madhe e skedareve te konfigurimit te sistemit . Per shembull nese eshte instaluar X-Window dosja X11 ndodhet brenda dosjes /etc.
 dev Ne kete dosje vendosen skedaret qe kane informacion mbi pajisjet (devices) e lidhura ne sistem
 home Kjo dosje permban dosjet e perdoruesve te sistemit. Si rregull ne kete dosje ka nga nje dosje per cdo perdorues ne te cilen ruhet profili i perdoruesit.
 lib Ne kete dosje ruhen skedaret e sistemit dhe module te kernelit
 mnt Kjo direktori sherben di pika e lidhjes per memorje te jashtme si floppy, CD etj
 opt Kjo dosje perdoret zakonisht per te ruajtur programet e instaluara ne sistem.
 proc Ne kete dosje ruhen te dhena mbi proceset 
 root Kjo dosje eshte dosja baze e perdoruesit root,  administratorit te sistemit ne ambkent linux. 
 sbin Ne kete dosje jane skedaret e ekzekutueshem te sistemit ( system binaries )  qe perdoren nga administratori i sistemit ( perdoruesi root )
 tmp Ne kete dosje ruhen skedare te perkohshem
 usr Permban programe, librari, dokumentacion etj. per programet e perdoruesve
 var Dosje dhe skedare me informacione variabel si per shembull loge, rradhe printimi etj




Llojet e skedareve 

Per te listuar skedaret ne formatin e gjate dhe me atribute mund te perdorim komandel ls me opsion -l (long)

student@localhost:~$ ls -l
total 36
drwxrwxr-x 2 student student 4096 Feb 26 00:04 chapter 1
drwxr-xr-x 2 student student 4096 Feb 22 19:18 Desktop
drwxr-xr-x 2 student student 4096 Feb 22 19:18 Documents
drwxr-xr-x 2 student student 4096 Feb 26 01:22 Downloads
drwxr-xr-x 2 student student 4096 Feb 22 19:18 Music
drwxr-xr-x 2 student student 4096 Mar  5 01:14 Pictures
drwxr-xr-x 2 student student 4096 Feb 22 19:18 Public
drwxr-xr-x 2 student student 4096 Feb 22 19:18 Templates
drwxr-xr-x 2 student student 4096 Feb 22 19:18 Videos
student@ubuntu:~$


Per te shfaqur edhe skedaret pervec direktorive 

student@localhost:~$ ls -l -a
total 184
drwxr-xr-x 25 student student  4096 Mar  5 00:37 .
drwxr-xr-x  3 root    root     4096 Feb 21 21:02 ..
-rw-------  1 student student   920 Mar  5 01:09 .bash_history
-rw-r--r--  1 student student   220 Feb 21 21:02 .bash_logout
-rw-r--r--  1 student student  3486 Feb 21 21:02 .bashrc
drwx------ 17 student student  4096 Feb 25 22:27 .cache
drwxrwxr-x  2 student student  4096 Feb 26 00:04 chapter 1
drwx------ 13 student student  4096 Mar  5 00:44 .config
drwx------  3 student student  4096 Feb 22 19:18 .dbus
drwxr-xr-x  2 student student  4096 Feb 22 19:18 Desktop
-rw-r--r--  1 student student    26 Mar  5 00:36 .dmrc
drwxr-xr-x  2 student student  4096 Feb 22 19:18 Documents
drwxr-xr-x  2 student student  4096 Feb 26 01:22 Downloads
drwx------  5 student student  4096 Mar  5 01:16 .gconf
drwx------  4 student student  4096 Feb 22 19:18 .gnome2
........



Cdo rresht i rezultatit perbehet nga shtate kollona:

  1. Unix file type
  2. Permissions
  3. Number of hard links
  4. User and Group ownership
  5. Size
  6. Time and date
  7. Name

Shkronja e pare e rezultatit te mesiperm na tregon se cfare lloj skedari eshte skedari i listuar. 
 Simboli - (minus) tregon qe kemi te bejme me nje skedar normal, qe mund te jete nje skedar tekst, nje skedar binar ose nje skedar i ekzekutueshem. 
Shkronja d tregon qe kemi te bejme me nje direktori.
Shkronja l tregon nje link(short cut). Tabela me poshte liston llojet e skedareve


Simboli
 Pershkrimi
 - Skedar
 d Direktori
 l Link
 cCharacter device 
 bBlock Device 
 s Socket
 p Named Pipe


Te drejtat mbi skedaret 

Nente simbolet e tjera pas simbolit te pare qe tregonte tipin e skedarit kane te bejne me te drejtat e aksesit mbi skedarin.
Ka tre simbole te mundshme per te drejtat e aksesit mbi skedarin

  • r- read , percakton te drejten per te lexuar skedarin
  • w- write, percakton te drejten per te shkruajtur skedarin
  • x- execute, percakton te derjten per ekzekutuar skedarin
Te drejtat per skedarin percaktohen per pronarin e skedarit, per grupin ne te cilin ben pjese ky anetar dhe se fundi per gjithe te tjeret. si ne tabelen me poshte

 
 R

 X
 
 R

 X
 
 R

 X
 Perdorusi qe zoteron  skedarin
 Grupi qe zoteron skedarin
Te gjithe perdoruesit


Nese eshte shfaqur simboli perkates, tregon qe perdoruesi e ka ate te drejte mbi skedarin. Nese eshte shfaqur  - (minus) atehere tregon qe perdoruesi nuk e ka ate te drejte mbi skedarin.

per shembull

drwxr-xr-x  2 student student  4096 Feb 22 19:18 Desktop

tregon qe :
Desktop eshte nje direktori

perdoruesi student ka te drejta:
  • r = leximi
  • w = shkrimi
  • x = ekzekutimi

grupi student ka te drejta:
  • r = leximi
  • x = ekzekutimi

te gjithe perdoruesit e tjere kanete drejta:
  • r = leximi
  • x = ekzekutimi

Ushtrim 1
Cfare tip skedari jane skedaret e meposhtem dhe cfare te drejtash ekzistojne mbi to?

-rw-------  1 student student   920 Mar  5 01:09 .bash_history
drwx------ 13 student student  4096 Mar  5 00:44 .config
-rw-r--r--  1 student student   220 Feb 21 21:02 .bash_logout
drwxr-xr-x  2 student student  4096 Feb 22 19:18 Documents


Pergjigje






Si ti modifikojme te drejtat?

Per efekt ilustrimi do te krijojme nje skedar ne linux. Per te krijuar nje skedar ne linux do te perdorim komanden cat.

student@localhost:~$ cat > ict.txt 
Ky eshte nje skedar prove,
i cili do te perdoret per te ilustruar modifikimin e te drejtave 
se fundi do te shtypim Ctrl+D per te ruajtur skedarin.


Te verifikojme qe skedari u krijua

student@localhost:~$ ls i*
ict.txt
student@localhost:~$

Te afishojme informacionet mbi kete skedar

student@localhost:~$ ls -l ict.txt
-rw-rw-r-- 1 student student 148 Mar  5 01:55 ict.txt
student@localhost:~$


Mundet gjithashtu te lexojme permbajtjen e skedarit

student@localhost:~$ cat ict.txt 
Ky eshte nje skedar prove,
i cili do te perdoret per te ilustruar modifikimin e te drejtave 
se fundi do te shtypim Ctrl+D per te ruajtur skedarin.
student@localhost:~$



Ushtrim 2

Krijoni nje skedar me emrin myict.txt  duke perdorur komanden cat.
Listoni kete skedar dhe shpjegoni te drejtat e aksesit qe ai ka.
Afishoni permbajten e ketij skedari nepermjet komandes cat


Zgjidhje

Te krijojme skedarin myict.txt

student@localhost:~$ cat > Documents/myict.txt
Ky eshte nje skedar qe po krijohet ne dosjen Documents.
Vini re qe Linux ne dallim nga windows ne vend te \ perdor /.
Se fundi e ruajme skedarin me Ctrl+D
student@localhosr:~$


Te verifikojme krijimin e tij duke e listuar se bashku me atributet

student@localhost:~$ ls -l Documents/my* 
-rw-rw-r-- 1 student student 155 Mar  5 02:05 Documents/myict.txt
student@localhost:~$



Te afishojme permbajtjen e skedarit

student@localhost:~$ cat Documents/myict.txt
Ky eshte nje skedar qe po krijohet ne dosjen Documents.
Vini re qe Linux ne dallim nga windows ne vend te \ perdor /.
Se fundi e ruajme skedarin me Ctrl+D
student@localhost:~$ 


Komanda chmod

Per te modifikuar te drejtat e nje skedari perdoret komanda chmod

Per shembull

tek skedari ict.txt do te heqim te drejten e pronarit (student) per te lexuar skedarin

student@localhost:~$ chmod u-r ict.txt

u , tregon perdoruesin
- , tregon qe e drejta do te hiqet 
r, tregon qe do te preket e drejta e leximit

Nese pas ketij veprimi do te listonim skedarin ict.txt do te vinim re qe perdoruesi nuk ka te drejte leximi ne skedarin ict.txt

student@localhost:~$ ls ict.txt -l
--w-rw-r-- 1 student student 148 Mar  5 01:55 ict.txt

Nese do te tentojme te afishojme permbajtjen e skedarit ict.txt tani do te veme re qe do te shfaqet nje mesazh gabimi Permission denied

student@localhost:~$ cat ict.txt
cat: ict.txt: Permission denied
student@localhost:~$

Nese do ti modifikonim serish te drejtat e skedarit ict.txt 

student@localhost:~$ chmod u+r ict.txt


do te veme re qe perdorusit (student) i eshte rikthyer e drejta e aksesit mbi skedarin

student@localhost:~$ ls -l ict.txt
-rw-rw-r-- 1 student student 148 Mar  5 01:55 ict.txt
student@ubuntu:~$


Nese do te ritentojme qe te afishojme permbajten e skedarit nepermjet komandes cat nuk do te kemi serish mesazh gabimi:

student@localhost:~$ cat ict.txt
Ky eshte nje skedar prove,
i cili do te perdoret per te ilustruar modifikimin e te drejtave 
se fundi do te shtypim Ctrl+D per te ruajtur skedarin.
student@localhost:~$



Ushtrim 3
Hiqni te drejten per lexim nga skedari Documents/myict.txt. 
Afishoni te drejtat pas ketij veprimi.
Tentoni te afishoni permbajtjen e skedarit Document/myict.txt nepermjet komandes cat. Cfare ndodh? Pse?
Riktheni te drejten e leximit te skedari Documents/myict.txt. Afishoni permbajtjen e tij nepermjet komades cat.

Zgjidhje





Ndryshimi i nivelit te accessit per grupin

Eshte e mundur qe te modifikohen te drejtat edhe per grupin duke e simbilizuar grupin me g(group) dhe o(other) per perdoruesit e tjere dhe gjithe perdoruesit duke i simbolizuar te gijthe perdoruesit te tjere me a(all).

  • u - user
  • g- group
  • o- other
  • a- all


Per shembull nese duam ti heqim aksesin te gjithe perdoruesve te tjere pervec userit dhe grupit student:

student@localhost:~$ chmod o-rw ict.txt

nese do te verifikonim te drejtat pas ketij veprimi:

student@localhost:~$ ls -l ict.txt
-rw-rw---- 1 student student 148 Mar  5 01:55 ict.txt
student@localhost:~$

veme re qe useri dhe grupi kane akses lexim shkrim ndersa te tjeret asnje te drejte mbi skedarin.

nese do ti hiqnim te gjitheve aksesin do te perdornim -a, si ne shembullin me poshte

student@localhost:~$ chmod a-rw ict.txt

Verifikojme te drejtat

student@localhost:~$ ls -l ict.txt
---------- 1 student student 148 Mar  5 01:55 ict.txt
student@localhost:~$

dhe verejme qe asnje nuk ka akses mbi skedarin ict.txt.


Te shtojme njekohesisht te drejtat tek skedari ict.txt si me poshte:

  • lexim,shkrim per perdoruesin
  • lexim,shkrim per grupin
  • lexim per te tjeret

student@localhost:~$ chmod u+rw,g+rw,o+r ict.txt

po te listojme te drejtat do te veme re qe te drejtat jane shtuar njekohesishte

student@localhost:~$ ls -l ict.txt
-rw-rw-r-- 1 student student 148 Mar 5 01:55 ict.txt
student@localhost:~$

Ushtrim 4
Aplikoni listen e komandave te mesiperme tek skedari Documents/myict.tct

zgjidhje

















Paraqitja ne sistemin me 8 shifra i te drejtave

rwx ne sistemin me tete shifra ka vlerat e meposhtme

 Te drejtat
 Vlera binare
 Vlera ne oktale
 Pershkrim
 - - - 
0 0 0 
 0nuk ka asnje te drejte 
 - - x
 0 0 1
 1vetem ekzekutim 
 - w -
 0 1 0
 2vetem shkrim
 - w x
 0 1 1
 3 shkrim, ekzekutim
 r - - 1 0 0 4vetem lexim
 r - x
 1 0 1
 5 lexim , ekzekutim
 r w -
 1 1 0 6lexim, shkrim
 r w x
 1 1 1
 7 lexim, shkrim, ekzekutim 



Eshte e mundur gjithashtu qe ne komanden chmod te perdoren vlerat oktale per percaktimin e te drejtave.

Per shembull komanda

student@localhost:~$ chmod 777 ict.txt

do ti jepte te gjitheve te drejta te plota mbi skedarin ict.txt

student@localhost:~$ ls -l ict.txt
-rwxrwxrwx 1 student student 148 Mar  5 01:55 ict.txt


Ndersa komanda

student@localhost:~$ chmod 664 ict.txt

Do ti jepte perdoruesit dhe grupit te drejte lexim shkrimi dhe te tjereve vetem te drejte leximi

student@localhost:~$ ls -l ict.txt
-rw-rw-r-- 1 student student 148 Mar 5 01:55 ict.txt
student@localhost:~$


Ushtrim 5

Aplikoni masken 777 tek skedari Documents/myict.txt dhe verifikoni te drejtat mbi skedarin.
Aplikoni masken 664 tek skedari Documents/myict.txt dhe verifikoni te drejtat mbi skedarin.
Aplikoni masken 000 tek skedari Documents/myict.txt dhe verifikoni te drejtat mbi skedarin.

Zgjidhje

















Perdoruesit duhet te bejne pjese te pakten ne nje grup, i cili quhet grupi primar. Gjithashtu perdoruesit mund te bejne pjese edhe ne grupe te tjera te cilat quhen grupe suplementare.

Eshte e mundur te nderrohet pronari i nje skedari duke perdorur komanden chown, por ky veprim duhet kryer me kredencialet e root.

Per shembull, komanda me poshte i kalon pronesine e skedarit ict.txt perdoruesit root. Si shpjegohet gabimi i shfaqur?

student@localhost:~$ chown root ict.txt
chown: changing ownership of `ict.txt': Operation not permitted
student@localhost:~$ 

Gabimi shfaqet per shkak sepse veprimi i nderrimit te pronesise se skedarit duhet bere me kredencialet e perdoruesit root.
Nese do ta ritentojme ndryshimin e pronesise por duke perdorur kredencialet e root do te veme re se veprimi do te shkoje me sukses:

root@localhost:~$  
[sudo] password : 
root@localhost:~$ chown root ict.txt

Po te verifikojme te drejtat e skedarit pas ketij veprimi do te veme re se pronari i skedarit eshte root.

student@localhost:~$ ls -l ict.txt
-rw-rw-r-- 1 root student 148 Mar  5 01:55 ict.txt
student@localhost:~$ 


Per ta rikthyer skedarin ne pronesi te userit student ekzekutojme serish komanden chown.

root@localhost:~$ chown student ict.txt
root@localhost:~$


Po te veririkojme pronesine mbi skedarin ict.txt do te veme re qe pronari tani eshte student.

root@localhost:~$ ls -l ict.txt
-rw-rw-r-- 1 student student 148 Mar  5 01:55 ict.txt
root@localhost:~$


Ushtrim 6
Hapni nje terminal te ri. Kaloni skedarin Document/myict.txt ne pronesi te root.
Verifikoni pronesine e skedarit
Kalojeni serish skedarin ne pronesi te student.
Verifikoni pronesine e skedarit

Zgjidhje
















Madhesia e skedareve ne disk

Madhesia e skedareve ne komandin ls eshte ne byte. Eshte e mundur qe ta shfaqim dimensionin e skedareve ne kybyte duke perdorur atributin -h.
Per shembull


student@ubuntu:~$ ls -l -h
total 48K
drwxrwxr-x 2 student student 4.0K Feb 26 00:04 chapter 1
drwxr-xr-x 2 student student 4.0K Feb 22 19:18 Desktop
drwxr-xr-x 2 student student 4.0K Mar  5 01:58 Documents
drwxr-xr-x 2 student student 4.0K Feb 26 01:22 Downloads
-rw-rw-r-- 1 student student  147 Mar  5 01:54 endri.txt
-rw-rw-r-- 1 student student  148 Mar  5 01:55 ict.txt
drwxr-xr-x 2 student student 4.0K Feb 22 19:18 Music
-rw-rw-r-- 1 student student    5 Mar  5 02:03 myict.txt
drwxr-xr-x 2 student student 4.0K Mar  5 01:14 Pictures
-rw-rw-r-- 1 student student    0 Mar  5 01:50 prove.txt
drwxr-xr-x 2 student student 4.0K Feb 22 19:18 Public
drwxr-xr-x 2 student student 4.0K Feb 22 19:18 Templates
drwxr-xr-x 2 student student 4.0K Feb 22 19:18 Videos
student@ubuntu:~$


Vini re madhesine e direktorive ne rezultatin e mesiperm. Per shembull Direktorite Documents, Downloads, Pictures .. jane te gjithe 4.0K. Ne fakt komanda ls shfaq dimensionin e direktorise ne metadata, jo sasine e diskut qe ajo okupon.
Per te afishuar sasine e diskut qe perdor nje direktori mund te perdorim komanden du = disk usage

Per shembull

student@localhost:~$ du -s -h Pictures
1.7M    Pictures
student@localhost:~$


s= summary
h= readable format 




Disa komanda per te punuar me skedaret

Komanda cat

Konkatenon dhe afishon skedaret.

Per shembull

root@localhost:/$ cat etc/hosts
127.0.0.1    localhost
127.0.1.1    ubuntu

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
student@ubuntu:/$ 


Komanda grep

Komanda grep na mundeson te kerkojme per nje tekst te paracaktuar brenda nje skedari.
Per shembull mund te kerkojme per fjalen localhost ne skedarin hosts.

root@localhost:/$ grep localhost /etc/hosts
127.0.0.1    localhost
::1     ip6-localhost ip6-loopback
root@localhost:/$ 

Komanda grep eshte case sensitive, dallon midis shkronjave te medha dhe te vogla.
Si baze, komanda grep kthen te gjithe rreshtat qe permbajne tekstin per te cilin po kerkojme.
Gjithashtu eshte e mundur qe te perdoren karakteret speciale, si per shembull simboli * nenkupton nje numer shkronjash 0..n.

per shembull

student@localhots:/$ grep localhost  /etc/hosts*
/etc/hosts:127.0.0.1    localhost
/etc/hosts:::1     ip6-localhost ip6-loopback
student@ubuntu:/$ grep localhost  /etc/*
grep: /etc/at.deny: Permission denied
grep: /etc/blkid.tab: No such file or directory
grep: /etc/fuse.conf: Permission denied
grep: /etc/group-: Permission denied
grep: /etc/gshadow: Permission denied
grep: /etc/gshadow-: Permission denied
/etc/hosts:127.0.0.1    localhost
/etc/hosts:::1     ip6-localhost ip6-loopback
grep: /etc/mtab.fuselock: Permission denied
grep: /etc/passwd-: Permission denied
grep: /etc/shadow: Permission denied
grep: /etc/shadow-: Permission denied
grep: /etc/sudoers: Permission denied
student@ubuntu:/$


Kopjimi i skedareve

Komanda cp, kopjon nje skedar.

cp ict.txt ictcopy.txt



si default komanda cp mbivendos skedarin destinacion nese ai ekziston tashme, pa na pyetur nese duam taq mbivendosim.

Shembulli me poshte kopjon te gjithe skedaret qe ndodhen ne dosjen home ne dosjen Documents.

student@localhost:~$ cp * /Documents

Eshte e mundur te kombinojme komandat me operatotin | (pipe), per shembull komanda me poshte

student@localhost:~$ cat ict2.txt | grep sked
Ky eshte nje skedar prove,
se fundi do te shtypim Ctrl+D per te ruajtur skedarin.
student@localhost:~$

afishon rreshtat qe permbajne nje tekst.

Zhvendosja e skedareve

Komanda move, mv, na mundeson zhvendosjen e nje skedari nga nje vend ne nje vend tjeter.

Per shembull

student@localhost:~$ mv ict.txt Documents/movedict



Fshirja e skedareve

Komanda rm (remove) fshin skedaret. Duke qene se rikthimi i skedareve te fshire nuk eshte nje proces i thjeshte eshte mire qe te jemi te kujdesshem me perdorimin e komandes remove. Nje nder rekomandomet do te ishte qe te perdornim opsionin -i (interactive), i cili kerkon konfirmimin e perdoruesit perpara se te fshije nje skedar.

student@localhots:~$ rm -i ict2.txt
rm: remove regular file `ict2.txt'? n
student@localhots:~$




Gjithashtu eshte e mundur qe te fshihen direktorite(nese kemi akses sigurisht) nepermjet opsioni -r (recursive).