29Jul

Τι σημαίνει "όλα είναι ένα αρχείο" σημαίνει στο Linux;

click fraud protection

Ένα από τα χαρακτηριστικά γνωρίσματα του Linux και άλλων λειτουργικών συστημάτων που μοιάζουν με UNIX είναι ότι "όλα είναι ένα αρχείο". Πρόκειται για μια υπεραπλούστευση, αλλά η κατανόηση του τι σημαίνει αυτό θα σας βοηθήσει να καταλάβετε πώς λειτουργεί το Linux.

Πολλά πράγματα στο Linux εμφανίζονται στο σύστημα αρχείων σας, αλλά δεν είναι πραγματικά αρχεία.Πρόκειται για ειδικά αρχεία που αντιπροσωπεύουν συσκευές υλικού, πληροφορίες συστήματος και άλλα - συμπεριλαμβανομένης μιας γεννήτριας τυχαίων αριθμών.

Αυτά τα ειδικά αρχεία ενδέχεται να βρίσκονται σε ψευδο ή εικονικά συστήματα αρχείων όπως το / dev, το οποίο περιέχει ειδικά αρχεία που αντιπροσωπεύουν συσκευές και / proc, το οποίο περιέχει ειδικά αρχεία που αντιπροσωπεύουν πληροφορίες συστήματος και επεξεργασίας.

/ proc

Για παράδειγμα, ας υποθέσουμε ότι θέλετε να βρείτε πληροφορίες σχετικά με την CPU σας.Ο κατάλογος / proc περιέχει ένα ειδικό αρχείο - /proc/ cpuinfo - το οποίο περιέχει αυτές τις πληροφορίες.

Δεν χρειάζεστε ειδική εντολή που να σας ενημερώνει για τις πληροφορίες του CPU σας - μπορείτε απλώς να διαβάσετε τα περιεχόμενα αυτού του αρχείου χρησιμοποιώντας οποιαδήποτε τυποποιημένη εντολή που λειτουργεί με αρχεία απλού κειμένου.Για παράδειγμα, μπορείτε να χρησιμοποιήσετε την εντολή

instagram viewer
cat /proc/ cpuinfo για να εκτυπώσετε τα περιεχόμενα αυτού του αρχείου στο τερματικό - εκτυπώνοντας τις πληροφορίες της CPU σας στο τερματικό.Θα μπορούσατε ακόμη και να ανοίξετε το cpuinfo /proc/ σε έναν επεξεργαστή κειμένου για να δείτε τα περιεχόμενά του.

Να θυμάστε ότι το cpuinfo /proc/ δεν είναι στην πραγματικότητα ένα αρχείο κειμένου που περιέχει αυτές τις πληροφορίες - ο πυρήνας του Linux και το σύστημα αρχείων proc εκθέτουν αυτές τις πληροφορίες σε εμάς ως αρχείο.Αυτό μας επιτρέπει να χρησιμοποιήσουμε οικεία εργαλεία για να δούμε και να δουλέψουμε με τις πληροφορίες.

Ο κατάλογος / proc περιέχει επίσης άλλα παρόμοια αρχεία, για παράδειγμα:

  • /proc/ uptime - Εκθέτει το χρόνο λειτουργίας του πυρήνα του Linux σας - με άλλα λόγια, για πόσο καιρό το σύστημά σας βρίσκεται χωρίς διακοπή.Έκδοση
  • /proc/ - Εκθέτει την έκδοση του πυρήνα του Linux.

/ dev

Στον κατάλογο / dev θα βρείτε αρχεία που αντιπροσωπεύουν συσκευές - καθώς και αρχεία που αντιπροσωπεύουν άλλα ειδικά πράγματα.Για παράδειγμα, το cdrom /dev/ είναι η μονάδα CD-ROM.Το /dev/ sda αντιπροσωπεύει τον πρώτο σας σκληρό δίσκο, ενώ το /dev/ sda1 αντιπροσωπεύει το πρώτο διαμέρισμα στον πρώτο σας σκληρό δίσκο.

Θέλετε να τοποθετήσετε το CD-ROM σας;Εκτελέστε την εντολή mount και καθορίστε το cdrom /dev/ ως τη συσκευή που θέλετε να τοποθετήσετε.Θέλετε να χωρίσετε τον πρώτο σας σκληρό δίσκο;Εκτελέστε ένα βοηθητικό πρόγραμμα διαμέρισης δίσκων και καθορίστε το /dev/ sda ως τον σκληρό δίσκο που θέλετε να επεξεργαστείτε.Θέλετε να διαμορφώσετε το πρώτο διαμέρισμα στον πρώτο σας σκληρό δίσκο;Εκτελέστε μια εντολή μορφοποίησης και ενημερώστε τη για να μορφοποιήσετε το /dev/ sda1.

Όπως μπορείτε να δείτε, η έκθεση αυτών των συσκευών ως μέρος του συστήματος αρχείων έχει τα πλεονεκτήματά της.Το σύστημα αρχείων παρέχει έναν συνεπή "χώρο ονόματος" τον οποίο μπορούν να χρησιμοποιήσουν όλες οι εφαρμογές για την αντιμετώπιση και πρόσβαση στις συσκευές.

/dev/ null, /dev/ τυχαία και /dev/ μηδέν

Το σύστημα αρχείων / dev δεν περιέχει μόνο αρχεία που αντιπροσωπεύουν φυσικές συσκευές.Εδώ είναι τρεις από τις πιο αξιοσημείωτες ειδικές συσκευές που περιέχει:

  • /dev/ null - Απορρίπτει όλα τα δεδομένα γραμμένα σε αυτό - σκεφτείτε το ως ένα δοχείο απορριμμάτων ή μαύρη τρύπα.Εάν βλέπετε ποτέ ένα σχόλιο που σας λέει να στείλετε καταγγελίες στο /dev/ null - αυτός είναι ένας περίεργος τρόπος να λέτε "ρίξτε τα στα σκουπίδια".
  • /dev/ τυχαία - Παράγει τυχαία χρήση περιβαλλοντικού θορύβου.Είναι μια γεννήτρια τυχαίων αριθμών που μπορείτε να χρησιμοποιήσετε.
  • /dev/ μηδέν - Παράγει μηδενικά - ένα σταθερό ρεύμα μηδενικών.

Αν σκέφτεστε αυτά τα τρία ως αρχεία, δεν θα δείτε τη χρήση τους.Αντ 'αυτού, σκεφτείτε τους ως εργαλεία.

Για παράδειγμα, από προεπιλογή, οι εντολές του Linux παράγουν μηνύματα σφάλματος και άλλες εξόδους που εκτυπώνουν στην τυπική έξοδο, συνήθως το τερματικό.Εάν θέλετε να εκτελέσετε μια εντολή και δεν σας ενδιαφέρει η έξοδος της, μπορείτε να ανακατευθύνετε αυτήν την έξοδο στο /dev/ null.Η ανακατεύθυνση της εξόδου μιας εντολής στο /dev/ null την απορρίπτει αμέσως.Αντί να έχετε κάθε εντολή να εφαρμόσει τη δική της "αθόρυβη λειτουργία", μπορείτε να χρησιμοποιήσετε αυτήν τη μέθοδο με οποιαδήποτε εντολή.Εντολή

& gt;/dev/ null

Αν θέλατε μια πηγή τυχαιότητας - για παράδειγμα, για τη δημιουργία ενός κλειδιού κρυπτογράφησης, δεν θα χρειαστεί να γράψετε τη δική σας γεννήτρια τυχαίων αριθμών - θα μπορούσατε να χρησιμοποιήσετε τυχαία /dev/.

Για να διαγράψετε τα περιεχόμενα του σκληρού δίσκου γράφοντας 0 σε αυτό, δεν χρειάζεστε ένα ειδικό βοηθητικό πρόγραμμα που να είναι αφιερωμένο στο μηδενισμό μιας μονάδας δίσκου - θα μπορούσατε να χρησιμοποιήσετε τα τυπικά βοηθητικά προγράμματα και το μηδέν /dev/.Για παράδειγμα, η εντολή dd διαβάζεται από μια τοποθεσία και γράφει σε άλλη θέση.Η ακόλουθη εντολή θα διαβάσει μηδενικά από το μηδέν /dev/ και θα τα γράψει απευθείας στο πρώτο διαμέρισμα σκληρού δίσκου στο σύστημά σας, διαγράφοντας εντελώς τα περιεχόμενά του.

( Προειδοποίηση : Αυτή η εντολή θα διαγράψει όλα τα δεδομένα στην πρώτη σας κατάτμηση αν την εκτελείτε.Ανοίξτε αυτή την εντολή μόνο αν θέλετε να καταστρέψετε δεδομένα.)

dd αν = /dev/ μηδέν = /dev/ sda1

Εδώ χρησιμοποιούμε ddμε ειδικά αρχεία( /dev/ μηδέν και /dev/ sda1), αλλά θα μπορούσαμε επίσης να χρησιμοποιήσουμε dd για να διαβάσετε από και να γράψετε σε πραγματικά αρχεία.Η ίδια εντολή λειτουργεί τόσο για χειρισμό συσκευών απευθείας όσο και για εργασία με αρχεία.

Διευκρίνιση

Στην πράξη, είναι πιο ακριβές να λέμε ότι "όλα είναι ένα ρεύμα bytes" από ότι "όλα είναι ένα αρχείο." Το /dev/ τυχαίο δεν είναι ένα αρχείο, αλλά σίγουρα είναι ένα ρεύμα bytes.Και, αν και αυτά τα πράγματα δεν είναι τεχνικά αρχεία, είναι προσβάσιμα στο σύστημα αρχείων - το σύστημα αρχείων είναι ένας καθολικός "χώρος ονόματος" όπου όλα είναι προσβάσιμα.Θέλετε να έχετε πρόσβαση σε μια γεννήτρια τυχαίων αριθμών ή να διαβάζετε απευθείας από μια συσκευή;Θα βρείτε και τα δύο στο σύστημα αρχείων.δεν απαιτείται άλλη μορφή διευθυνσιοδότησης.

Φυσικά, μερικά πράγματα δεν είναι πραγματικά αρχεία - οι διαδικασίες που εκτελούνται στο σύστημά σας δεν αποτελούν μέρος του συστήματος αρχείων.Το "όλα είναι ένα αρχείο" είναι ανακριβές, αλλά πολλά πράγματα συμπεριφέρονται ως αρχεία.