Si të përdorni komandën stat në Linux
Komanda Linux stat
ju tregon shumë më tepër detaje sesa bën ls
. Hidhni një sy prapa perdes me këtë mjet informativ dhe të konfigurueshëm. Ne do t'ju tregojmë se si ta përdorni.
stat ju merr prapa skenave
Komanda ls
është e shkëlqyer në atë që bën—dhe bën shumë—por me Linux, duket se ka gjithmonë një mënyrë për të shkuar më thellë dhe për të parë se çfarë fshihet nën sipërfaqe. Dhe shpesh, nuk është vetëm një rast i heqjes së skajit të tapetit. Mund të grisni dërrasat e dyshemesë dhe më pas të hapni një gropë. Mund ta qëroni Linux-in si një qepë.
ls
do t'ju tregojë një pjesë të mirë të informacionit rreth një skedari, si p.sh. cilat leje janë vendosur në të, sa i madh është dhe nëse është një skedar apo një lidhje simbolike. Për të shfaqur këtë informacion, ls
e lexon atë nga një strukturë e sistemit të skedarëve të quajtur inode.
Çdo skedar dhe drejtori ka një inode. Inode mban meta të dhëna për skedarin, si p.sh. bllokon sistemin e skedarëve që ai zë dhe vulat e datës që lidhen me skedarin. Inode është si një kartë bibliotekë për skedarin. Por ls
do t'ju tregojë vetëm disa nga informacionet. Për të parë gjithçka, duhet të përdorim komandën stat
.
Ashtu si ls
, komanda stat
ka shumë opsione. Kjo e bën atë një kandidat të shkëlqyeshëm për përdorimin e pseudonimeve. Pasi të keni zbuluar një grup të veçantë opsionesh që bëjnë që stat
t'ju japë rezultatin që dëshironi, mbështilleni atë me një pseudonim ose funksion shell. Kjo e bën atë shumë më të përshtatshëm për t'u përdorur dhe nuk keni pse të mbani mend një grup të fshehtë opsionesh të linjës së komandës.
Një krahasim i shpejtë
Le të përdorim ls
për të na dhënë një listë të gjatë (opsioni -l
) me madhësi skedarësh të lexueshëm nga njeriu (opsioni -h
):
ls -lh ana.h
Nga e majta në të djathtë, informacioni që ofron ls është:
- Karakteri i parë është një vizë ndarëse - dhe kjo na tregon se skedari është një skedar i rregullt dhe jo një fole, lidhje simbolike ose një lloj tjetër objekti.
- Pronari, grupi dhe lejet e tjera janë renditur në format oktal.
- Numri i lidhjeve të forta që tregojnë këtë skedar. Në këtë rast, dhe në shumicën e rasteve, do të jetë një.
- Pronari i skedarit është dave.
- Pronari i grupit është Dave.
- Madhësia e skedarit është 802 bajt.
- Skedari u modifikua për herë të fundit të premten, 13 dhjetor 2015.
- Emri i skedarit është
ana.c
.
Le të hedhim një vështrim me stat
:
stat ana.h
Informacioni që marrim nga stat
është:
- Skedar: Emri i skedarit. Zakonisht, është i njëjtë me emrin që kemi kaluar te
stat
në vijën e komandës, por mund të jetë ndryshe nëse shikojmë një lidhje simbolike. - Madhësia: Madhësia e skedarit në bajt.
- Blloqet: Numri i bllokimeve të sistemit të skedarëve që kërkon skedari, në mënyrë që të ruhet në hard disk.
- IO Block: Madhësia e një blloku të sistemit të skedarëve.
- Lloji i skedarit: Lloji i objektit që përshkruan meta të dhënat. Llojet më të zakonshme janë skedarët dhe drejtoritë, por ato mund të jenë gjithashtu lidhje, priza ose tuba me emër.
- Pajisja: Numri i pajisjes në heksadecimal dhe dhjetor. Ky është ID-ja e diskut ku është ruajtur skedari.
- Inode: Numri inode. Kjo është, numri ID i kësaj inode. Së bashku, numri inode dhe numri i pajisjes identifikojnë në mënyrë unike një skedar.
- Lidhjet: Ky numër tregon se sa lidhje të forta tregojnë për këtë skedar. Çdo lidhje e fortë ka inodin e vet. Pra, një mënyrë tjetër për të menduar për këtë shifër është se sa inode tregojnë në këtë skedar. Sa herë që krijohet ose fshihet një lidhje e fortë, ky numër do të rregullohet lart ose poshtë. Kur arrin zero, vetë skedari është fshirë dhe inode hiqet. Nëse përdorni
stat
në një drejtori, ky numër përfaqëson numrin e skedarëve në drejtori, duke përfshirë . hyrja për direktoriumin aktual dhe hyrja .. për direktoriumin prind. - Qasja: Lejet e skedarit shfaqen në oktalin dhe tradicionalen e tyre
rwx
(formatet e leximit, shkrimit, ekzekutimit). - Uid: ID-ja e përdoruesit dhe emri i llogarisë së zotëruesit.
- Gid: ID-ja e grupit dhe emri i llogarisë së zotëruesit.
- Qasja: Vula kohore e hyrjes. Jo aq e drejtpërdrejtë sa mund të duket. Shpërndarjet moderne Linux përdorin një skemë të quajtur
relatime
, e cila përpiqet të optimizojë shkrimet e hard drive-it të kërkuar për të përditësuar kohën e aksesit. E thënë thjesht, koha e hyrjes përditësohet nëse është më e vjetër se koha e modifikuar. - Modifiko: Vula kohore e modifikimit. Kjo është koha kur përmbajtja e skedarit u modifikuan për herë të fundit. (Me fat, përmbajtja e këtij skedari u ndryshua për herë të fundit katër vjet më parë në atë ditë.)
- Ndrysho: Vula kohore e ndryshimit. Kjo është koha kur janë ndryshuar për herë të fundit atributet ose përmbajtja e skedarit. Nëse modifikoni një skedar duke vendosur leje të reja skedari, vula kohore e ndryshimit do të përditësohet (sepse atributet të skedarit kanë ndryshuar), por vula kohore e modifikuar nuk do të përditësohet (sepse skedari përmban nuk u ndryshuan).
- Lindja: E rezervuar për të treguar datën origjinale të krijimit të skedarit, por kjo nuk zbatohet në Linux.
Kuptimi i vulave kohore
Vula kohore janë të ndjeshme për zonën kohore. -0500
në fund të çdo rreshti tregon se ky skedar është krijuar në një kompjuter në një zonë kohore të Koordinuar Universale (UTC) që është pesë orë përpara zonës kohore të kompjuterit aktual. Pra, ky kompjuter është pesë orë prapa kompjuterit që krijoi këtë skedar. Në fakt, skedari u krijua në një kompjuter të zonës kohore në Mbretërinë e Bashkuar dhe ne po e shikojmë këtu në një kompjuter në zonën kohore të Standardit Lindor të SHBA-së.
Modifikimi dhe ndryshimi i stampave kohore mund të shkaktojë konfuzion sepse, për të pa iniciuarit, emrat e tyre tingëllojnë sikur nënkuptojnë të njëjtën gjë.
Le të përdorim chmod
për të modifikuar lejet e skedarit në një skedar të quajtur ana.c
. Ne do ta bëjmë atë të shkruajtur nga të gjithë. Kjo nuk do të ndikojë në përmbajtjen e skedarit, por do të ndikojë në atributet e skedarit.
chmod +w ana.c
Dhe më pas do të përdorim stat
për të parë vulat kohore:
stat ana.c
Vula kohore e ndryshimit është përditësuar, por ajo e modifikuar jo.
Vula kohore e ndryshuar do të përditësohet vetëm nëse ndryshohet përmbajtja e skedarit. Vula kohore e ndryshimit përditësohet si për ndryshimet e përmbajtjes ashtu edhe për ndryshimet e atributeve.
Përdorimi i Stat me skedarë të shumtë
Për të pasur raport statistikor për disa skedarë njëherësh, kaloni emrat e skedarëve te stat
në vijën e komandës:
stat ana.h ana.o
Për të përdorur stat
në një grup skedarësh, përdorni përputhjen e modelit. Pikëpyetja ? përfaqëson çdo karakter të vetëm, dhe ylli * përfaqëson çdo varg karakteresh. Mund t'i themi stat
që të raportojë për çdo skedar të quajtur ana me një zgjatje të vetme shkronje, me këtë komandë:
stat ana.?
Përdorimi i stat për të raportuar mbi sistemet e skedarëve
stat
mund të raportojë mbi statusin e sistemeve të skedarëve, si dhe statusin e skedarëve. Opsioni -f
(sistemit të skedarëve) i thotë stat
të raportojë mbi sistemin e skedarëve ku ndodhet skedari. Vini re se mund të kalojmë gjithashtu një drejtori të tillë si “/” te stat
në vend të emrit të skedarit.
stat -f ana.c
Informacioni që na jep stat
është:
- Skedar: Emri i skedarit.
- ID: ID-ja e sistemit të skedarëve në shënimin heksadecimal.
- Namelen: Gjatësia maksimale e lejuar për emrat e skedarëve.
- Lloji: Lloji i sistemit të skedarëve.
- Madhësia e bllokut: Sasia e të dhënave për të kërkuar kërkesa leximi për normat optimale të transferimit të të dhënave.
- Madhësia themelore e bllokut: Madhësia e çdo blloku të sistemit të skedarëve.
Blloqet:
- Total: Numri total i të gjitha blloqeve në sistemin e skedarëve.
- Pa pagesë: Numri i blloqeve të lira në sistemin e skedarëve.
- E disponueshme: Numri i blloqeve falas të disponueshme për përdoruesit e rregullt (jo root).
Inodet:
- Total: Numri total i inodeve në sistemin e skedarëve.
- Pa pagesë: Numri i inodeve të lira në sistemin e skedarëve.
Mosreferencimi i lidhjeve simbolike
Nëse përdorni stat
në një skedar që në fakt është një lidhje simbolike, ai do të raportojë në lidhje. Nëse dëshironi që stat
të raportojë për skedarin ku tregon lidhja, përdorni opsionin -L
(dereference). Skedari code.c
është një lidhje simbolike për ana.c
. Le ta shohim pa opsionin -L
:
stat code.c
Emri i skedarit tregon code.c
duke treguar te ( ->
) ana.c
. Madhësia e skedarit është vetëm 11 bajt. Ka zero blloqe të dedikuara për ruajtjen e kësaj lidhjeje. Lloji i skedarit është renditur si një lidhje simbolike.
Është e qartë se ne nuk po shikojmë skedarin aktual këtu. Le ta bëjmë këtë përsëri dhe të shtojmë opsionin -L
:
stat -L code.c
Kjo tani po tregon detajet e skedarit për skedarin e treguar nga lidhja simbolike. Por kini parasysh se emri i skedarit jepet ende si code.c
. Ky është emri i lidhjes, jo skedari i synuar. Kjo ndodh sepse ky është emri që kemi kaluar te stat
në vijën e komandës.
Raporti Terse
Opsioni -t
(terse) bën që stat
të sigurojë një përmbledhje të përmbledhur:
stat -t ana.c
Nuk jepen të dhëna. Për ta kuptuar atë - derisa të keni memorizuar sekuencën e fushës - ju duhet ta referoni këtë dalje në një dalje të plotë stat
.
Formatet e personalizuara të daljes
Një mënyrë më e mirë për të marrë një grup të ndryshëm të dhënash nga stat
është përdorimi i një formati të personalizuar. Ekziston një listë e gjatë e shenjave të quajtura sekuenca të formatit. Secila prej tyre përfaqëson një element të dhënash. Zgjidhni ato që dëshironi të përfshini në dalje dhe krijoni një varg formati. Kur thërrasim stat
dhe ia kalojmë vargun e formatit, dalja do të përfshijë vetëm elementët e të dhënave që kemi kërkuar.
Ekzistojnë grupe të ndryshme të sekuencave të formatit për skedarët dhe sistemet e skedarëve. Lista e skedarëve është:
- %a: Të drejtat e aksesit në oktal.
- %A: Të drejtat e aksesit në formë të lexueshme nga njeriu (
rwx
). - %b: Numri i blloqeve të alokuara.
- %B: Madhësia në bajt e secilit bllok.
- %d: Numri i pajisjes në dhjetor.
- %D: Numri i pajisjes në heks.
- %f: Modaliteti i papërpunuar në heks.
- %F Lloji i skedarit.
- %g: ID-ja e grupit të zotëruesit.
- %G: Emri i grupit të pronarit.
- %h: Numri i lidhjeve të forta.
- %i: Numri inode.
- %m: Pika e montimit.
- %n: Emri i skedarit.
- %N: Emri i skedarit të cituar, me emrin e skedarit të çreferencuar nëse është një lidhje simbolike.
- %o: Sugjerimi optimal i madhësisë së transferimit të hyrjes/daljes.
- %s: Madhësia totale, në bajt.
- %t: Lloji kryesor i pajisjes në hex, për skedarët e veçantë të pajisjes me karakter/bllokim.
- %T: Lloji i vogël i pajisjes në heks, për skedarët e veçantë të pajisjes me karakter/bllokim.
- %u: ID-ja e përdoruesit të zotëruesit.
- %U: Emri i përdoruesit të pronarit.
- %w: Koha e lindjes së skedarit, e lexueshme nga njeriu ose një vizë - nëse nuk dihet.
- %W: Koha e lindjes së skedarit, sekonda që nga epoka; 0 nëse nuk dihet.
- %x: Koha e aksesit të fundit, e lexueshme nga njeriu.
- %X: Koha e aksesit të fundit, sekonda që nga epoka.
- %y: Koha e modifikimit të fundit të të dhënave, e lexueshme nga njeriu.
- %Y: Koha e modifikimit të fundit të të dhënave, sekonda që nga epoka.
- %z: Koha e ndryshimit të statusit të fundit, e lexueshme nga njeriu.
- %Z: Koha e ndryshimit të statusit të fundit, sekonda që nga epoka.
Epoka është epoka Unix, e cila u zhvillua në 01-01-1970 00:00:00 +0000 (UTC).
Për sistemet e skedarëve sekuencat e formatit janë:
- %a: Numri i blloqeve falas të disponueshme për përdoruesit e rregullt (jo root).
- %b: Blloqet totale të të dhënave në sistemin e skedarëve.
- %c: Inodet totale në sistemin e skedarëve.
- %d: Numri i inodeve të lira në sistemin e skedarëve.
- %f: Numri i blloqeve të lira në sistemin e skedarëve.
- %i: ID-ja e sistemit të skedarëve në heksadecimal.
- %l: Gjatësia maksimale e emrave të skedarëve.
- %n: Emri i skedarit.
- %s: Madhësia e bllokut (madhësia optimale e shkrimit).
- %S: Madhësia e blloqeve të sistemit të skedarëve (për numërimin e blloqeve).
- %t: Lloji i sistemit të skedarëve në heksadecimal.
- %T: lloji i sistemit të skedarëve në formë të lexueshme nga njeriu.
Ka dy opsione që pranojnë vargjet e sekuencave të formatit. Këto janë --format
dhe --printf
. Dallimi midis tyre është se --printf
interpreton sekuencat e arratisjes në stilin C, si p.sh. rreshti i ri
dhe skeda
, dhe nuk shton automatikisht një karakter të linjës së re në daljen e tij.
Le të krijojmë një varg formati dhe ta kalojmë atë te stat
. Sekuencat e formatit që do të përdoreshin janë %n
për emrin e skedarit, %s
për madhësinë e skedarit dhe %F
për llojin e skedarit. Ne do të shtojmë
"File %n is %s bytes, and is a %F\n"
Ne do ta kalojmë këtë te stat
duke përdorur opsionin --printf
. Ne do të kërkojmë nga stat
të raportojë për një skedar të quajtur code.c
dhe një grup skedarësh që përputhen me ana.?
. Kjo është komanda e plotë. Vini re shenjën e barazimit =
midis --printf
dhe vargut të formatit:
stat --printf="File %n is %s bytes, and is a %F\n" code.c ana/ana.?
Raporti për çdo skedar është renditur në një rresht të ri, gjë që është ajo që kemi kërkuar. Emri i skedarit, madhësia e skedarit dhe lloji i skedarit janë dhënë për ne.
Formatet e personalizuara ju japin akses në edhe më shumë elementë të të dhënave sesa përfshihen në daljen standarde stat
.
Kontroll i imët i grurit
Siç mund ta shihni, ka një hapësirë të jashtëzakonshme për të nxjerrë elementët e veçantë të të dhënave që janë me interes për ju. Ju ndoshta mund të shihni gjithashtu pse ne rekomanduam përdorimin e pseudonimeve për magjitë më të gjata dhe më komplekse.
Linux Commands | ||
Files | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc | |
Processes | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap | |
Networking | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld |
RELATED: Best Linux Laptops for Developers and Enthusiasts