Αρχική σελίδα » πως να » Τι σημαίνει όλα είναι ένα αρχείο σημαίνει στο Linux;

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

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

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

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

    / proc

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

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

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

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

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

    / dev

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

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

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

    / dev / null, / dev / random και / dev / μηδέν

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

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

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

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

    εντολή> / dev / null

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

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

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

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

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

    Διευκρίνιση

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

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