nl.phhsnews.com


nl.phhsnews.com / Wat betekent "Alles is een bestand" Onder Linux?

Wat betekent "Alles is een bestand" Onder Linux?


Een van de bepalende functies van Linux en andere UNIX-achtige besturingssystemen is dat "alles een bestand is." Dit is een Over-simplificatie, maar inzicht in wat het betekent, zal je helpen te begrijpen hoe Linux werkt.

Er verschijnen veel dingen op Linux in je bestandssysteem, maar het zijn geen echte bestanden. Het zijn speciale bestanden die hardwareapparaten, systeeminformatie en andere dingen vertegenwoordigen, waaronder een generator voor willekeurige getallen.

Deze speciale bestanden bevinden zich mogelijk in pseudo- of virtuele bestandssystemen zoals / dev, die speciale bestanden bevatten die apparaten vertegenwoordigen , en / proc, die speciale bestanden bevat die systeem- en procesinformatie vertegenwoordigen.

/ proc

Stel dat u bijvoorbeeld informatie over uw CPU wilt vinden. De map / proc bevat een speciaal bestand - / proc / cpuinfo - dat deze informatie bevat.

U hebt geen speciale opdracht nodig die u uw CPU-informatie vertelt - u kunt de inhoud van dit bestand gewoon lezen met een standaardopdracht die werkt met platte tekstbestanden. U kunt bijvoorbeeld de opdracht cat / proc / cpuinfo gebruiken om de inhoud van dit bestand naar de terminal af te drukken - uw CPU-informatie afdrukken naar de terminal. Je kunt zelfs / proc / cpuinfo openen in een teksteditor om de inhoud ervan te bekijken.

Denk eraan, / proc / cpuinfo is eigenlijk geen tekstbestand met deze informatie - de Linux-kernel en het proc-bestandssysteem stellen deze informatie bloot aan ons als een bestand. Hierdoor kunnen we bekende tools gebruiken om de informatie te bekijken en ermee te werken.

De map / proc bevat ook andere, soortgelijke bestanden, bijvoorbeeld:

  • / proc / uptime - laat de uptime van uw Linux-kernel zien - met andere woorden , hoe lang uw systeem is ingeschakeld zonder uit te schakelen.
  • / proc / version - Geeft de versie van uw Linux-kernel vrij.

/ dev

In de map / dev vindt u bestanden die apparaten vertegenwoordigen - evenals bestanden die andere speciale dingen vertegenwoordigen. Bijvoorbeeld, / dev / cdrom is uw CD-ROM-station. / dev / sda staat voor je eerste harde schijf, terwijl / dev / sda1 de eerste partitie op je eerste harde schijf is.

Wil je je CD-ROM aankoppelen? Voer de opdracht mount uit en geef / dev / cdrom op als het apparaat dat u wilt koppelen. Wilt u uw eerste harde schijf partitioneren? Voer een hulpprogramma voor het partitioneren van schijven uit en geef / dev / sda op als de harde schijf die u wilt bewerken. Wil je de eerste partitie op je eerste harde schijf formatteren? Voer een opmaakopdracht uit en vertel deze om /dev/sda1.

te formatteren. Zoals je ziet, heeft het blootstellen van deze apparaten als onderdeel van het bestandssysteem voordelen. Het bestandssysteem biedt een consistente "naamruimte" die alle toepassingen kunnen gebruiken om toegang te krijgen tot de apparaten.

/ dev / null, / dev / random, en / dev / zero

Het / dev bestandssysteem doet het niet t bevat alleen bestanden die fysieke apparaten vertegenwoordigen. Hier zijn drie van de meest opvallende speciale apparaten die het bevat:

  • / dev / null - Verwijdert alle gegevens die erop zijn geschreven - denk aan het als een vuilnisbak of zwart gat. Als je ooit een opmerking ziet waarin staat dat je klaagt naar / dev / null - dat is een nerdige manier om te zeggen "gooi ze in de prullenbak".
  • / dev / random - Produceert willekeur met omgevingsruis. Het is een randomgetalgenerator waar je op kunt tikken.
  • / dev / zero - Produceert nullen - een constante stroom van nullen.

Als je deze drie als bestanden beschouwt, zul je daar geen gebruik van zien. Zie ze in plaats daarvan als gereedschappen.

Bijvoorbeeld, standaard produceren Linux-commando's foutmeldingen en andere uitvoer die ze afdrukken naar de standaarduitvoer, gewoonlijk de terminal. Als u een opdracht wilt uitvoeren en niet om de uitvoer ervan geeft, kunt u die uitvoer omleiden naar / dev / null. Door de uitvoer van een opdracht naar / dev / null om te leiden, wordt deze direct verwijderd. In plaats van dat elke opdracht zijn eigen "stille modus" implementeert, kunt u deze methode met elke opdracht gebruiken.

opdracht> / dev / null

Als u een bron van willekeur wilt hebben, bijvoorbeeld voor het genereren van een coderingssleutel, je zou niet je eigen generator voor willekeurige getallen hoeven te schrijven - je zou / dev / random kunnen gebruiken.

Om de inhoud van een harde schijf te wissen door er 0's aan toe te voegen, hebt u geen speciaal hulpprogramma nodig om een ​​station op nul te zetten - u zou standaard hulpprogramma's en / dev / zero kunnen gebruiken. De opdracht dd leest bijvoorbeeld van een locatie en schrijft naar een andere locatie. De volgende opdracht leest nullen uit / dev / zero en schrijft ze rechtstreeks naar de eerste harde schijfpartitie op uw systeem, waarbij de inhoud volledig wordt gewist.

( Waarschuwing : met deze opdracht worden alle gegevens op uw systeem gewist eerste partitie als u het uitvoert. Voer deze opdracht alleen uit als u gegevens wilt vernietigen.)

dd if = / dev / zero of = / dev / sda1

Hier gebruiken we dd met speciale bestanden (/ dev / zero en / dev / sda1), maar we kunnen ook dd gebruiken om te lezen van en te schrijven naar daadwerkelijke bestanden. Dezelfde opdracht werkt zowel voor het rechtstreeks manipuleren van apparaten als het werken met bestanden.

Verduidelijking

In de praktijk is het juister om te zeggen dat "alles een stroom van bytes is" dan "alles is een bestand." / Dev / random is geen bestand, maar het is zeker een stroom van bytes. En hoewel deze dingen technisch gezien geen bestanden zijn, zijn ze toegankelijk in het bestandssysteem - het bestandssysteem is een universele "naamruimte" waar alles toegankelijk is. Wilt u toegang krijgen tot een generator voor willekeurige getallen of rechtstreeks vanaf een apparaat lezen? Je vindt beide in het bestandssysteem; geen andere vorm van adressering nodig.

Sommige dingen zijn natuurlijk geen echte bestanden - processen die op uw systeem worden uitgevoerd, maken geen deel uit van het bestandssysteem. "Alles is een bestand" is onnauwkeurig, maar veel dingen gedragen zich wel als bestanden.


Is PermitRootLogin gebaseerd op de UID of de gebruikersnaam?

Is PermitRootLogin gebaseerd op de UID of de gebruikersnaam?

Soms is het leuk om een ​​beetje dieper in te gaan op hoe dingen werken om uw nieuwsgierigheid te bevredigen terwijl u iets nieuws leert, zoals PermitRootLogin, voor voorbeeld. Controleert het de UID of de gebruikersnaam? Het SuperUser Q & A-bericht van vandaag graaft in om het antwoord te vinden op de vraag van een nieuwsgierige lezer.

(how-to)

Hoe kan ik een standaardaccount instellen bij het gebruik van meerdere Google-accounts?

Hoe kan ik een standaardaccount instellen bij het gebruik van meerdere Google-accounts?

Als u meerdere Google-accounts tegelijkertijd gebruikt, is de kans groot dat een daarvan de standaard is die u wilt standaard instellen. Als het niet de standaard is, is het nogal frustrerend; lees verder als we een lezer laten zien hoe je ervoor kunt zorgen dat het account dat ze willen, de standaard is.

(how-to)