Het Gebruik van de stat Opdracht op Linux

0
410
Fatmawati Achmad Zaenuri/Shutterstock

De Linux commando stat toont je veel meer detail dan ls doet. Neem dan eens een kijkje achter het gordijn met deze informatieve en configureerbare utility. Wij laten u zien hoe om het te gebruiken.

stat Neemt Je mee Achter de Schermen

Het ls commando is goed in wat het doet en het doet veel—maar met Linux, het lijkt erop dat er altijd een manier om dieper te gaan en te zien wat er onder de oppervlakte. En vaak, het is niet alleen een zaak van het optillen van de rand van het tapijt. U kunt rippen van de vloer en vervolgens een gat te graven. U kunt de schil Linux als een ui.

ls zal u tonen een groot deel van de informatie over een bestand, zoals de machtigingen zijn ingesteld, en hoe groot het is, en of het om een bestand of een symbolische link. Om deze informatie te tonen ls leest van een bestandssysteem structuur heet een inode.

Elk bestand en elke map heeft een inode. De inode bevat metagegevens over het bestand, zoals die bestandssysteem blokken die het inneemt, en de datum stempels verbonden met het bestand. De inode is als een bibliotheek kaart voor het bestand. Maar ls alleen zal je laten zien sommige van de informatie. Om alles te zien, gebruiken we het commando stat.

Zoals ls , de stat commando heeft vele opties. Dit maakt het een grote kandidaat voor het gebruik van aliassen. Als je eenmaal hebt ontdekt dat er een bepaalde set van opties die stat geven u de uitgang die u wilt, wikkel het in een alias of een shell-functie. Dit maakt het veel gemakkelijker te gebruiken, en je hoeft niet te onthouden geheimzinnige set van commando-regel opties.

GERELATEERD: Hoe Gebruik je het ls Commando uit om een Lijst van Bestanden en Mappen op Linux

Een Snelle Vergelijking

Laten we gebruik maken van ls om ons te geven een lange lijst (optie-l) met leesbare bestand grootte (optie-h):

ls -lh ana.h

Van links naar rechts, de informatie die ls biedt is:

  • Het eerste teken is een koppelteken “-” en dit vertelt ons het een reguliere bestand is, en niet een stopcontact, symlink, of een ander type object.
  • De eigenaar, groep en de andere rechten zijn vermeld in octale notatie.
  • Het aantal hard links naar het bestand. In dit geval, en in de meeste gevallen, het zal worden één.
  • De eigenaar van het bestand is dave.
  • De eigenaar van de groep is dave.
  • De grootte van het bestand is 802 bytes.
  • Het bestand is voor het laatst aangepast op vrijdag, 13 December 2015.
  • De naam is ana.c.

Laten we een kijkje nemen met stat :

stat ana.h

De informatie die we krijgen van stat is:

  • Bestand: De naam van het bestand. Meestal, het is hetzelfde als de naam die we doorgegeven aan stat op de commando-regel, maar Het kan anders zijn als we kijken naar een symbolische koppeling.
  • Grootte: De grootte van het bestand in bytes.
  • Blokken: Het aantal bestandssysteem blokkeert het bestand vereist, om te worden opgeslagen op de harde schijf.
  • IO Blok: De grootte van een bestandssysteem-blok.
  • Bestandstype: Het soort object, de metadata wordt beschreven. De meest voorkomende types zijn bestanden en directory ‘ s, maar ze kunnen ook koppelingen, stekkers, of named pipes.
  • Apparaat: Het apparaat nummer in hexadecimale en decimale. Dit is de ID van de harde schijf het bestand is opgeslagen.
  • Inode: Het inode-nummer. Dat is, het ID-nummer van de inode. Samen, de inode-nummer en het nummer van het apparaat, de unieke identificatie van een bestand.
  • Links: Dit getal geeft aan hoeveel harde koppelingen naar dit bestand. Elke harde link heeft zijn eigen inode. Dus een andere manier om na te denken over deze figuur is het aantal inodes punt naar dit bestand. Elke keer dat er een harde koppeling is gemaakt of verwijderd worden, zal dit aantal omhoog of omlaag worden aangepast. Wanneer deze nul bereikt, wordt het bestand zelf verwijderd, en de inode is verwijderd. Als u gebruik stat op een directory, dit getal staat voor het aantal bestanden in de map, inclusief de “. ” – item voor de huidige map en de “..” item voor de bovenliggende map.
  • Toegang: Het bestand machtigingen worden weergegeven in hun octale en traditionele rwx (lezen, schrijven, uitvoeren van de formaten).
  • Uid: Gebruikers-ID en naam van de rekening van de eigenaar.
  • Gid: Groeps-ID en naam van de rekening van de eigenaar.
  • Toegang: De toegang tijdstempel. Niet zo eenvoudig als het lijkt. Moderne Linux distributies maken gebruik van een regeling genoemd relatime, die probeert het optimaliseren van de harde schijf schrijft vereist voor het bijwerken van de toegangstijd. Simpel gezegd, de toegang tot tijd wordt bijgewerkt als deze ouder is dan de gewijzigde tijd.
  • Wijzigen: Het wijzigen tijdstempel. Dit is de tijd waarin bestand de inhoud het laatst gewijzigd. (Zoals geluk zou hebben, de inhoud van dit bestand voor het laatst werden gewijzigd vier jaar geleden aan de dag.)
  • Wijzigen: Het wijzigen van een tijdstempel. Dit is de tijd van het bestand ken merken of inhoud het laatst gewijzigd. Als u een bestand wijzigt door het instellen van nieuwe machtigingen voor bestanden, het wijzigen tijdstempel wordt bijgewerkt (omdat de bestandskenmerken hebben veranderd), maar de gewijzigde tijdstempel zal niet worden bijgewerkt (omdat de inhoud van het bestand niet gewijzigd zijn).
  • Geboren: Gereserveerd om de oorspronkelijke datum van creatie van het bestand, maar deze is niet geïmplementeerd in Linux.

Het begrijpen van de Tijdstempels

De tijdstempels zijn timezone gevoelig. De -0500 aan het einde van elke regel geeft aan dat dit bestand is aangemaakt op een computer in een Gecoördineerde Universele Tijd (UTC) timezone dat is vijf uur voor de tijdzone van de huidige computer. Dus deze computer is vijf uur achter de computer dit bestand gemaakt. In feite, het bestand is gemaakt op een UK tijdzone computer, en we kijken naar het hier op een computer in de AMERIKAANSE Eastern Standard time zone.

Het wijzigen en tijdstempels kan tot verwarring leiden, omdat, om de niet-ingewijden, hun namen klinken alsof ze hetzelfde betekenen.

Laten we chmod gebruiken om te wijzigen de permissies van een bestand met de naam ana.c. We gaan om het beschrijfbaar zijn door iedereen. Dit heeft geen invloed op de inhoud van het bestand, maar het zal invloed hebben op de eigenschappen van het bestand.

chmod +w ana.c

En vervolgens gebruiken we stat om te kijken naar de tijdsregistratie:

stat ana.c

De verandering timestamp is bijgewerkt, maar de gewijzigde men is er nog niet.

De gewijzigde tijdstempel zal alleen worden bijgewerkt als u de inhoud van het bestand worden gewijzigd. De verandering timestamp is bijgewerkt voor zowel content wijzigingen en wijzigingen van kenmerken.

Met Behulp Van Stat Met Meerdere Bestanden

Om statistische rapport over meerdere bestanden tegelijk, het doorgeven van de bestandsnamen om het stat op de commando-regel:

stat ana.h ana.o

Te gebruiken stat op een set van bestanden, het gebruik van pattern matching. Het vraagteken “?” staat voor één willekeurig teken, en het sterretje “*” geeft een string van karakters. We kunnen vertellen stat te melden op een bestand met de naam “ana” met een enkele letter extensie, met deze opdracht:

stat ana.?

Met behulp van statistiek een Rapport over Bestandssystemen

stat kunnen rapporteren over de status van bestandssystemen, evenals de status van de bestanden. De -f (bestandssysteem) optie vertelt stat te melden op het bestandssysteem waar het bestand zich bevindt. Opmerking kunnen we ook langs een map zoals “/” te stat in plaats van een bestandsnaam.

stat -f ana.c

De informatie stat ons geeft is:

  • Bestand: De naam van het bestand.
  • ID: Het bestandssysteem ID in hexadecimale notatie.
  • Namelen: De maximaal toegestane lengte voor bestandsnamen.
  • Type: Het type van het bestandssysteem is.
  • Grootte van het blok: De hoeveelheid gegevens te verzoeken lees aanvragen voor een optimale gegevensoverdracht.
  • Fundamentele bouwsteen grootte: De grootte van elk bestandssysteem-blok.

Blokken:

  • Totaal: Het totaal van alle blokken n van het bestandssysteem.
  • Gratis: Het aantal vrije blokken in het bestandssysteem.
  • Beschikbaar: Het aantal vrije blokken die beschikbaar zijn voor de reguliere (niet-root) gebruikers.

Inodes:

  • Totaal: Het totaal aantal inodes in het bestandssysteem.
  • Gratis: Het aantal inodes in het bestandssysteem.

Dereferencing Symbolische Links

Als u gebruik stat op een bestand dat is eigenlijk een symbolische link, zal het rapport op de link. Als je wilde stat om te rapporteren over het bestand waarnaar de koppeling verwijst, gebruik je de optie-L (verwijzing) optie. Het bestand code.c is een symbolische link naar ana.c . Laten we eens kijken naar het zonder de optie-L:

stat-code.c

De bestandsnaam geeft de code.c wijst naar ( -> ) ana.c. De grootte van het bestand is slechts 11 bytes. Er zijn nul blokken besteed aan de opslag van deze link. Het bestandstype wordt vermeld als een symbolische link.

Duidelijk, we zijn niet op zoek naar het werkelijke bestand hier. Laten we dat doen opnieuw en voeg de optie-L:

stat -L-code.c

Dit is nu het tonen van de details van een bestand voor het bestand waarnaar verwezen wordt door de symbolische link. Maar let op dat de bestandsnaam wordt nog steeds gezien als code.c. Dit is de naam van de link, niet het doelbestand. Dit gebeurt omdat dit de naam is die we doorgegeven aan stat op de commando-regel.

Het Beknopt Verslag

De -t (beknopt) optie zorgt ervoor dat stat om een beknopt overzicht:

stat -t-ana.c

Er worden geen aanwijzingen gegeven. Om de betekenis van het—totdat je hebt onthouden van de veld volgorde—u moet cross-reference deze uitgang met een volledig stat-uitgang.

Aangepaste Output Formaten

Een betere manier om het verkrijgen van een andere set van gegevens uit statistiek is gebruik te maken van een aangepaste indeling. Er is een lange lijst van tokens genoemd indeling reeksen. Elk van deze vertegenwoordigt een data-element. Selecteer degene die je wilt hebben opgenomen in de output en maak een format string. Wanneer we noemen stat en doorgeven van de format string naar de uitgang zal alleen de gegevens bevatten elementen die we aangevraagd.

Er zijn verschillende sets van formaat sequenties voor bestanden en bestandssystemen. De lijst van bestanden is:

  • %a: De toegangsrechten in een octaal getal.
  • %A: De toegangsrechten in voor mensen leesbare vorm (rwx).
  • %b: Het aantal blokken is toegewezen.
  • %B: De grootte in bytes van elk blok.
  • %d: Het nummer van het apparaat in decimalen.
  • %D: Het nummer van het apparaat in de modus hex.
  • %f: De raw-modus in de modus hex.
  • %F van Het type bestand.
  • %g: het groep ID van De eigenaar.
  • %G: de naam van De groep van de eigenaar.
  • %h: Het aantal harde koppelingen.
  • %i: De inode-nummer.
  • %m: Het mount-punt.
  • %n: De naam van het bestand.
  • %N: De opgegeven bestandsnaam, vergeleken met de bestandsnaam als het om een symbolische link.
  • %o: De optimale I/O overdracht grootte hint.
  • %s: De totale grootte, in bytes.
  • %t: De grote apparaat type in hex, voor teken/blok speciale apparaat bestanden.
  • %T: De kleine apparaat type in hex, voor teken/blok speciale apparaat bestanden.
  • %u: De gebruiker-ID van de eigenaar.
  • %U: De gebruiker naam van de eigenaar.
  • %w: De tijd van bestand geboorte, leesbare, of een koppelteken “-” als onbekend.
  • %W: De tijd van bestand geboorte, seconden sinds het Tijdperk; 0 als onbekend.
  • %x: De tijd van laatste toegang, human-readable.
  • %X: De tijd van laatste toegang, seconden sinds het Tijdperk.
  • %y: De tijd van de laatste wijziging, human-readable.
  • %Y: De tijd van de laatste wijziging, seconden sinds het Tijdperk.
  • %z: De tijd van de laatste wijziging van de status, de mens leesbaar is.
  • %Z: De tijd van de laatste wijziging van de status, seconden sinds het Tijdperk.

De “epoch” is de Unix Epoch, die plaatsvond op 1970-01-01 00:00:00 +0000 (UTC).

Voor bestandssystemen de indeling reeksen zijn:

  • %a: Het aantal vrije blokken die beschikbaar zijn voor de reguliere (niet-root) gebruikers.
  • %b: het totaal van De data blokken in het bestandssysteem.
  • %c: Het totaal van inodes in het bestandssysteem.
  • %d: Het aantal inodes in het bestandssysteem.
  • %f: Het aantal vrije blokken in het bestandssysteem.
  • %i: Het bestand system ID in hexadecimale notatie.
  • %l: De grootste lengte van bestandsnamen.
  • %n: De bestandsnaam.
  • %s: De grootte van het blok (de optimale schrijven van grootte).
  • %S: De grootte van het bestandssysteem blokken (blok telt).
  • %t: Het bestandssysteem type in hexadecimale notatie.
  • %T: bestandssysteem type in voor mensen leesbare vorm.

Er zijn twee opties die accepteren snaren van formaat sequenties. Deze zijn –formaat en –printf. Het verschil tussen hen is –printf interpreteert C-stijl escape-reeksen, zoals newline n tab t , en het niet automatisch voeg een newline karakter om de output.

We maken een format string en doorgeven aan de stat. De indeling reeksen gaan gebruiken in zijn %n voor de bestandsnaam, %s voor de grootte van het bestand en %F voor het soort bestand. We gaan toevoegen n escape-reeks aan het einde van de fo de string ervoor dat elk dossier wordt in behandeling genomen op een nieuwe regel. Ons format string ziet er zo uit:

“Het bestand %n %s bytes, en is een %Fn”

We gaan dit door te geven aan stat met de –printf optie. We gaan om te vragen stat te melden op een bestand met de naam code.c en een set van bestanden die overeenkomen met ana.?. Dit is de volledige opdracht. Opmerking het is-gelijk teken “=” tussen –printf en de format string:

stat –printf=”Bestand %n %s bytes, en is een %Fn” – code.c ana/ana.?

Het rapport voor elk bestand dat wordt vermeld op een nieuwe regel, en dat is wat we aangevraagd. De bestandsnaam, bestandsgrootte, bestandstype zijn beschikbaar voor ons.

Aangepaste notaties geven u toegang tot nog meer data elementen dan zijn opgenomen in de standaard statistische output.

Fijnkorrelige Controle

Zoals u kunt zien, er is een enorme reikwijdte pak het bijzonder data-elementen die voor u van belang zijn. Waarschijnlijk kunt u ook zien waarom raden we het gebruik van aliassen voor de langere en meer complexe spreuken.

LEES VERDER

  • “Hoe Gebruik Sparklines in Google spreadsheets
  • “Wat Is” – Project is Verbonden Home-Over-IP” Smart Homes?
  • “Wat Doet “DAE” Betekenen, en Hoe Gebruik Je Het?
  • “Hoe kan ik de Ball Drop op New Year’ s Eve
  • “8 waarschuwingsborden Je Mac toch een Probleem Zou Hebben (en Hoe Dit te Verhelpen)