Πως είναι το σύστημα αρχείων του Linux;

Το σύστημα αρχείων του Linux μοιάζει στον αμύητο σαν μια λίστα από περίεργα ονόματα. Ομως, μην ανησυχείτε, γιατί στη συνέχεια θα διαλευκανθούν όλα…

Οταν κάποιος χρήστης περνάει από τα Windows στο Linux, συνήθως εκπλήσσεται με τον τρόπο που είναι οργανωμένο το σύστημα αρχείων του Linux. Εχοντας συνηθίσει την απλή προσέγγιση της Microsoft, όπου τα αρχεία συστήματος είναι αποθηκευμένα στους φακέλους C:\Windows και C:\Windows\system, ενώ όλες οι πρόσθετες εφαρμογές καταχωρίζονται στον κατάλογο C:\Program Files, το πλήθος των καταλόγων της μορφής “/όνομα” δείχνει να μπερδεύει τους νεοφώτιστους στο Linux.

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

Το πρώτο που παρατηρούμε – και πιθανότατα η μεγαλύτερη διαφορά μεταξύ των Windows και Linux – είναι η ενοποιημένη ιεραρχία του συστήματος αρχείων, αντίθετα απ’ ό,τι συμβαίνει στο σύστημα αρχείων των Windows, το οποίο δομείται βάσει του είδους των διάφορων συσκευών (είναι δηλαδή volume-based). Με άλλα λόγια, όταν στο Linux φυσικές συσκευές όπως δισκέτες, CDs, μνήμες USB flash ή ακόμα και ψηφιακές κάμερες προσαρτώνται (ή όπως συνηθίζεται να λέμε “γίνονται mount” ή “γίνονται attach”), ενσωματώνονται στην κύρια δομή του συστήματος αρχείων κάτω από τον κατάλογο “/”. Στα Windows όμως, η ένταξη μιας συσκευής στο σύστημα αρχείων ορίζεται σύμφωνα με τη “φυσική” σχέση που έχει με τον υπολογιστή. Για παράδειγμα, συνδέστε μια αποθηκευτική συσκευή USB στα Windows. Το πιο πιθανό είναι να την αναγνωρίσουν και να της δώσουν μια θέση στο σύστημα αρχείων ως συσκευή E:\ (το γράμμα Ε είναι τυχαίο), καθώς και μια περιγραφή του τύπου “removable device”. Στην περίπτωση του Linux για την ίδια συσκευή θα υπάρχει μια καταχώριση, π.χ. /mnt/sdc1. Αν και αυτές οι ενέργειες γίνονται συνήθως αυτόματα, στη χειρότερη περίπτωση ένα δεξί κλικ και επιλογή του mount αρκούν για να επιτύχουμε το στόχο μας.

Παρακάτω θα δούμε μια λίστα με τις πιο συνηθισμένες τοποθεσίες στο σύστημα αρχείων μιας διανομής Linux. Θα πρέπει να σημειωθεί πως, αν και υπάρχει μια προκαθορισμένη δομή που πρέπει να ακολουθείται, πολλές διανομές ενδέχεται να παρεκκλίνουν ελαφρώς από αυτήν. Για παράδειγμα, οι σύγχρονες διανομές κάνουν mount τις φορητές συσκευές στον κατάλογο /media και τα Windows στο φάκελο /media/windows. Είναι αυτονόητο πως το σύστημα αρχείων του Linux βασίζεται κατά το μεγαλύτερο μέρος του στην κληρονομιά που έχει αφήσει το Unix.

/ (κατάλογος-ρίζα)

Ξεκινάμε από τον ριζικό κατάλογο, “ρίζα” ή root. Ο κατάλογος αυτός είναι γνωστός ως “/”. Σε αυτόν περιέχονται όλοι οι υπόλοιποι κατάλογοι και είναι το ισοδύναμο του C:\ των Windows. Αυτή η “ρίζα”, λοιπόν, αποτελεί τον ακρογωνιαίο λίθο του συστήματος αρχείων του Linux, αφού τα πάντα ξεκινούν από αυτήν. Σε συμφωνία με το Linux Filesystem Standard (LFS) ο root κατάλογος περιέχει καταχωρίσεις όπως bin, boot, dev, etc, lib, mnt, opt, sbin, tmp, usr και var.

Ασχετα με επιπρόσθετα στοιχεία, κάθε διανομή έχει τουλάχιστον τους προαναφερθέντες καταλόγους. Το /root είναι ο πρώτος κατάλογος που γίνεται mount, οπότε, αν ο boot loader αποτύχει να τον εντοπίσει, θα “κολλήσει”. Οπως και στην περίπτωση του /boot (παρακάτω), κανένας χρήστης πέρα από τον root δεν έχει δικαίωμα να διαγράψει, να τροποποιήσει ή να αντιγράψει οτιδήποτε σε αυτόν τον κατάλογο και σε όλους τους υποκαταλόγους του.

Προσοχή: μην μπερδεύετε τον ριζικό κατάλογο / με τον κατάλογο /root. O δεύτερος είναι υποφάκελος του πρώτου και περιέχει τα αρχεία του χρήστη root.
 

/boot

Εδώ βρίσκεται η “καρδιά” του Linux. Οπως υποδηλώνει και το όνομά του, ο κατάλογος αυτός φιλοξενεί όλες τις απαραίτητες για την εκκίνηση του υπολογιστή πληροφορίες. Εκεί βρίσκεται οτιδήποτε εκτελείται πριν ο πυρήνας να αναλάβει να τρέξει μια εφαρμογή χρήστη. Επίσης, μπορείτε να βρείτε αρχεία “χαρτογράφησης” του συστήματος (που λένε στον υπολογιστή ακριβώς πού βρίσκονται τα bits) και το kernel image (ή κάποιον σύνδεσμο προς αυτόν) που ονομάζεται vmlinuz-[kernel version].

Παρόν είναι επίσης ένα αρχείο που περιέχει ρυθμίσεις του πυρήνα, το οποίο ονομάζεται config-[kernel version]. Πάντως, σας προειδοποιούμε πως εάν δεν είστε έμπειροι, η ιδέα να πειράξετε οτιδήποτε στα παραπάνω αρχεία δεν είναι ιδιαίτερα καλή. Εάν είναι απαραίτητο να πραγματοποιήσετε αλλαγές στη διαδικασία εκκίνησης, είναι προτιμότερο να το κάνετε μέσω κάποιου γραφικού περιβάλλοντος. Μερικές διανομές, μάλιστα, προτείνουν να τοποθετήσετε τον /boot σε ένα ξεχωριστό partition για λόγους ασφάλειας. Σε αυτές τις περιπτώσεις μόνο ο root χρήστης έχει δικαίωμα να τον τροποποιήσει.

/bin

Το bin είναι συντομογραφία του binaries (εκτελέσιμα) και σε αυτόν τον κατάλογο αποθηκεύονται παραδοσιακά binaries και utilities που απαιτούνται για την εκκίνηση του συστήματος. Εδώ περιλαμβάνονται εντολές για αλλαγή των δικαιωμάτων σε φακέλους και αρχεία (όπως chown, chmod), δημιουργία φακέλων (mkdir), εγκατάσταση πακέτων (rpm) και συμπίεση αρχείων (gzip). Περιλαμβάνεται επίσης η εντολή για το κέλυφος (sh), που είναι απαραίτητη εάν θέλουμε να εκτελέσουμε εντολές από τη γραμμή εντολών.

Τα εκτελέσιμα που βρίσκονται σε αυτόν τον κατάλογο είναι απαραίτητα για τη σωστή χρήση του συστήματος και δεν θα πρέπει να βρίσκονται υποκατάλογοι σε αυτό το μέρος. Η συμβατότητα με το LFS καθορίζει επίσης το μεγαλύτερο μέρος των περιεχομένων του συγκεκριμένου φακέλου. Ετσι, αν έχετε συνηθίσει να δουλεύετε στο Mandriva, οτιδήποτε έχετε μάθει θα είναι εξίσου χρήσιμο και σε περίπτωση που μεταβείτε σε Fedora, Slackware ή οποιοδήποτε άλλο σύστημα Linux, ανεξάρτητα από οποιεσδήποτε αλλαγές.

Σε αυτό το σημείο έχετε τη δυνατότητα να ανοίξετε ένα παράθυρο κονσόλας και – με τα απαραίτητα δικαιώματα πρόσβασης – να γράψετε “mkdir /μονοπάτι/όνομα καταλόγου”, για να δημιουργήσετε έναν νέο κατάλογο.
 

/dev

Το dev με τη σειρά του είναι συντομογραφία του devices (συσκευές). Κι εδώ γίνεται εμφανής μια άλλη, διαφορετική προσέγγιση σε σχέση με τα Windows. Στο Linux (ή Unix) καθετί είναι ή αρχείο ή φάκελος. Απαιτείται, λοιπόν, λίγος χρόνος προκειμένου να εξοικειωθείτε με αυτήν την ιδέα, ιδιαίτερα όταν έχει να κάνει με ένα CD-ROM ή με έναν scanner.

Εάν ανοίξετε το συγκεκριμένο κατάλογο σε έναν διαχειριστή αρχείων όπως το Nautilus θα εμφανιστεί μπροστά σας μια ατελείωτη λίστα αρχείων. Για παράδειγμα, το σύστημα δοκιμών μας περιείχε πάνω από 7.000 αρχεία. Μια μικρή αναζήτηση αρκεί για να συναντήσετε ορισμένα γνώριμα ονόματα όπως sda1 (το οποίο συνήθως είναι ο πρώτος σκληρός δίσκος ή partition του υπολογιστή σας) και cdrecorder, αλλά και άλλα που δεν είναι τόσο προφανή, όπως ttyS0, το οποίο αναφέρεται σε μια σειριακή συσκευή, και usblp0, το οποίο είναι μια σύνδεση σε εκτυπωτή USB.

Οι καταχωρίσεις στο /dev χωρίζονται σε δύο κύριες κατηγορίες: Στις συσκευές block, στις οποίες συμπεριλαμβάνονται αυτές που χρησιμοποιούνται για αποθήκευση δεδομένων, δηλαδή σκληροί δίσκοι, drivers δισκέτας, DVDs και κάρτες flash, και στις συσκευές χαρακτήρων, οι οποίες δέχονται, αποστέλλουν ή μεταφέρουν δεδομένα. Εδώ ανήκουν συσκευές όπως πληκτρολόγια και θύρες Firewire.

Πολλές φορές βοηθά η οπτικοποίηση αυτών των καταχωρίσεων με τρόπο αντίστοιχο των Windows, ακολουθώντας τη volume-based προσέγγιση. Για παράδειγμα, η παράλληλη θύρα COM1 όπου μπορούμε να συνδέσουμε έναν εκτυπωτή είναι η /dev/ttyS0, ενώ η /dev/pasux αντιστοιχεί στη θύρα PS/2 του ποντικιού. Επίσης, η /dev/usb περιέχει πληροφορίες για USB συσκευές και η /dev/sda αντιστοιχεί στην πρώτη SCSI συσκευή του συστήματος. Σε οικιακά συστήματα αυτή πιθανότατα θα συσχετιστεί με μια συσκευή USB flash, όπως είναι ένα memory stick ή μια ψηφιακή κάμερα.
 

/etc

Αυτός είναι ένας ακόμη πολύ σημαντικός κατάλογος για την καθημερινή λειτουργία του συστήματος. Περιέχει όλα τα σημαντικά αρχεία ρυθμίσεων του συστήματος, όπως αυτά που καθορίζουν τα προσβάσιμα partitions από το Linux (fstab), τα δικαιώματα πρόσβασης και τα passwords. Γι’ αυτό το λόγο σας συστήνουμε να το περιλαμβάνετε σε κάθε backup που πραγματοποιείτε.

Πολλοί από τους κατάλογους εδώ θα σας είναι γνώριμοι. Για παράδειγμα, το /alsa.d ή το /etc/default/alsa περιλαμβάνει επιλογές για τις κάρτες ήχου που υποστηρίζονται από την Advanced Linux Sound Architecture (ALSA), το /etc/cups περιέχει ό,τι έχει σχέση με εκτυπωτές, ενώ το /X11 περιέχει όλα τα αρχεία ρυθμίσεων του X system.

Πέρα από τη λογική λειτουργία του που έχει να κάνει με το σύστημα απεικόνισης, το X system αναλαμβάνει επίσης την επικοινωνία με διάφορες συσκευές εισόδου του υπολογιστή, όπως είναι το ποντίκι και το πληκτρολόγιο. Το κυρίως αρχείο που περιέχει τις ρυθμίσεις είναι το /etc/X11/xorg.conf και αξίζει να του ρίξετε μια ματιά, αρκεί να μην το πειράξετε, εκτός εάν ξέρετε ακριβώς τι κάνετε.

Σε συστήματα Debian (Ubuntu, κλπ) το /etc περιέχει επίσης τα αποθετήρια του APT (στο αρχείο /etc/apt/sources.list). Τα αποθετήρια (repositories) ή πηγές λογισμικού (sources) χρησιμοποιούνται για εγκατάσταση, ενημέρωση και συντήρηση των διάφορων πακέτων λογισμικού. Είναι επίσης δυνατό να προσθέσετε έξτρα repositories επεξεργαζόμενοι τη λίστα ως root. Πολλά συστήματα Debian έχουν ήδη στο αρχείο πολλές sources οι οποίες δεν χρησιμοποιούνται, επειδή βρίσκονται σε σχόλια, δηλαδή στην αρχή της γραμμής όπου περιέχονται έχει τοποθετηθεί το σύμβολο #.

Προκειμένου να συμπεριλάβετε υποστήριξη για testing του λογισμικού για Debian, χωρίς να είστε αναγκασμένοι να περιμένετε την επόμενη έκδοση όπου θα είναι ενσωματωμένο, απλώς προσθέστε την παρακάτω γραμμή στο αρχείο sources.list:

deb http://http.us.debian.org/debian testing main contrib non-free

Αυτό θα σας δώσει τη δυνατότητα να εγκαταστήσετε binaries του Debian από τον testing server. Προσθέτοντας το deb-src στην αρχή θα μπορείτε να χρησιμοποιήσετε το apt-get, για να κάνετε εγκατάσταση από τον πηγαίο κώδικα. Εννοείται πως κάθε φορά που προσθέτετε ένα νέο source, θα πρέπει να εκτελείτε apt-get πριν να επιχειρήσετε να εγκαταστήσετε οτιδήποτε.

Ο υποκατάλογος /cron περιέχει scripts τα οποία τρέχουν συγκεκριμένες εφαρμογές – όπως είναι κάποιες που αναλαμβάνουν λειτουργίες backup ή έλεγχο νέων e-mails – ανά τακτά χρονικά διαστήματα. Τέλος, το αρχείο exports περιέχει μια λίστα από καταλόγους οι οποίοι μπορούν να εξαχθούν χρησιμοποιώντας το Network File System (NFS). Με άλλα λόγια, θα είναι ορατοί και προσβάσιμοι από άλλους χρήστες του δικτύου. Το αρχείο /etc/samba/smb.conf κάνει την ίδια δουλειά σε περίπτωση που είναι εγκαταστημένο το σύστημα Samba, που χρησιμεύει για να μοιράζεστε αρχεία με χρήστες Windows και όχι μόνο.
 

/home

Το /home του Linux είναι το ...My Documents των Windows. Αυτός είναι ο προκαθορισμένος τόπος αποθήκευσης των αρχείων του χρήστη. Συνήθως κάθε χρήστης έχει ένα προσωπικό κατάλογο στο /home, στον οποίο μπορεί να γράψει μόνο αυτός αλλά να διαβάσει οποιοσδήποτε άλλος. Αυτό βέβαια αλλάζει, με δεξί κλικ > Ιδιότητες > Δικαιώματα στο φάκελο και επιλογή του “Κανένα” στην Προσπέλαση Φακέλου για την ομάδα Άλλοι. Μπορείτε επίσης να εφαρμόσετε τα προαναφερόμενα σε συγκεκριμένα αρχεία και φακέλους.

Είναι καλή ιδέα να τοποθετείτε τον κατάλογο /home σε ξεχωριστό partition, ώστε μελλοντικές αναβαθμίσεις του προϊόντος να μην επηρεάζουν τα περιεχόμενα του καταλόγου σας.

Οπως είδαμε και νωρίτερα, είναι δυνατό να ορίσετε έναν κατάλογο μέσα στον /home χρησιμοποιώντας αρχεία ρυθμίσεων που βρίσκονται στον /etc. Σε περίπτωση όμως που χρησιμοποιείτε το Ναυτίλο ή το Konqueror, η διαδικασία είναι εξαιρετικά πιο απλή και περιορίζεται σε μερικά κλικ αν έχετε το κατάλληλο λογισμικό εγκαταστημένο (Samba και NFS daemon).

/lib

Ενα από τα πιο συχνά εμφανιζόμενα προβλήματα των Windows έχει να κάνει με τα διάσημα αρχεία DLL (Dynamic Link Libraries). Τα περίφημα DLL εξασφαλίζουν σε μεγάλο βαθμό τη σταθερότητα του συστήματος, αλλά το μεγάλο σχεδιαστικό λάθος που αποτελεί την πηγή των προβλημάτων είναι το γεγονός ότι οποιαδήποτε εφαρμογή έχει δικαίωμα να γράψει πάνω τους ένα αρχείο με το ίδιο όνομα.

Το ισοδύναμο των DLL στα Linux είναι οι shared libraries. Πρόκειται για αρχεία τα οποία μπορείτε να αναγνωρίσετε από την κατάληξη .so και βρίσκονται αποθηκευμένα στον κατάλογο /lib (άλλωστε “lib” αποτελεί συντομογραφία του “libraries”). Ολα αυτά τα αρχεία – θυμηθείτε πως τα πάντα είναι αρχεία – είναι ζωτικής σημασίας για τη σταθερότητα του συστήματος και δεν είναι καθόλου καλή ιδέα να τα πειράξετε.

Αξιοι αναφοράς εδώ είναι ο κατάλογος /lib/modules/kernel number, που περιέχει όλους τους drivers που απαιτεί ο πυρήνας, /iptables με όλες τις απαραίτητες βιβλιοθήκες για την αποτελεσματική χρήση του firewall και του συστήματος δρομολόγησης (routing) και, τέλος, ο /oss που φιλοξενεί βιβλιοθήκες για το Open Sound System.

/mnt

Το mnt (από το mount) και η γενικότερη ιδέα του mounting είναι μία από τις πρώτες έννοιες με τις οποίες έρχονται σε επαφή όσοι μεταβαίνουν από τα Windows στο Linux. Οταν εισάγετε μια δισκέτα σε ένα Windows PC, τότε αυτή είναι αυτόματα διαθέσιμη από τον file manager των Windows συνήθως ως A:\. Οταν όμως βάλετε τη δισκέτα σε ένα σύστημα Linux, τότε αυτή πρέπει να γίνει mount.

Προκειμένου μια συσκευή να ενσωματωθεί στο σύστημα αρχείων, πρέπει πρώτα να γίνει mount. Αυτό παλαιότερα περιελάμβανε την πληκτρολόγηση της εντολής mount /dev/fd0 /mnt/floppy στην κονσόλα (το αντίστοιχο της γραμμής εντολών των Windows). Είναι χρήσιμο να προσέξετε λίγο παραπάνω την εντολή αυτή, καθώς ακολουθεί τη στάνταρ δομή μιας εντολής Linux.

Το πρώτο μέρος (mount) είναι η εντολή αυτή καθ’ εαυτή, την οποία μάλιστα μπορείτε να βρείτε στον κατάλογο /bin. Το δεύτερο μέρος είναι η παράμετρος της εντολής (argument). Αυτή με τη σειρά της διασπάται σε δύο τμήματα. Το πρώτο (/dev/fd0) καθορίζει τη συσκευή που θέλετε να κάνετε mount και το δεύτερο (/mnt/floppy) ορίζει τη θέση στο δέντρο του αρχείου συστήματος στην οποία θα πραγματοποιηθεί το mount.

Πριν να εκτελέσετε την παραπάνω εντολή, θα πρέπει να σιγουρευτείτε ότι πράγματι υπάρχει ένας κατάλογος /mnt/floppy (ή οποιοσδήποτε άλλος). Η πρόσβαση σε αυτήν τη συσκευή επιτυγχάνεται μέσω αυτού του καταλόγου. Στο παρελθόν, προτού απομακρύνατε τη δισκέτα, θα έπρεπε πάντα κατά κάποιον τρόπο να “αποδεσμεύσετε” τη συσκευή πληκτρολογώντας κάτι όπως το: unmount /dev/fd0.

Ευτυχώς για όλους εμάς αυτά αποτελούν παρελθόν και πλέον οι σύγχρονες διανομές επιλέγουν είτε να κάνουν automount μόλις βάλουμε κάποιο CD ή δισκέτα (η συγκεκριμένη προσέγγιση προκαλεί ακόμα διαφωνίες μεταξύ των μελών της κοινότητας Open Source) ή να κάνουν mount μια συσκευή, όταν την επιλέγουμε από την επιφάνεια εργασίας ή από τον file manager. Επίσης, οι περισσότερες από αυτές κάνουν unmount τη συσκευή όταν απομακρυνθεί το αντίστοιχο μέσο.

Αυτός ο κατάλογος συνήθως αναλαμβάνει να φιλοξενήσει και τα partitions των Windows, αν και πλέον υπάρχει μια τάση να γίνονται mount κατά τη διάρκεια του boot με τη βοήθεια μιας καταχώρισης στο αρχείο /etc/fstab. Μια τυπική καταχώριση για έναν δίσκο με σύστημα αρχείων NTFS (Windows) είναι η ακόλουθη:

/dev/sda1 /mnt/C ntfs-3g rw,users,gid=users 0 0

Αυτό στην ουσία καθορίζει πως ο δίσκος (ή partition) /dev/sda1 θα γίνει mount στο φάκελο /mnt/C, και επειδή χρησιμοποιεί σύστημα αρχείων NTFS η ανάγνωση και η εγγραφή θα γίνεται μέσω του ntfs-3g (διαβάστε περισσότερα για την προσάρτηση NTFS συστημάτων αρχείων στο Linux). Οι υπόλοιπες πληροφορίες έχουν να κάνουν με το ποιος έχει δικαίωμα πρόσβασης σε αυτόν. Με αυτήν την καταχώριση στο αρχείο fstab ο δίσκος των Windows γίνεται αυτόματα mount κατά την εκκίνηση και είναι προσβάσιμος μέσω του φακέλου /mnt/C.
 

/opt

Συνεχίζουμε με τον κατάλογο /opt, όπου παραδοσιακά εγκαθίστανται όλες οι εφαρμογές οι οποίες δεν είναι μέρος της πρότυπης εγκατάστασης, είναι δηλαδή προαιρετικές. Εδώ ενδέχεται να δείτε και προϊόντα όπως τα OpenOffice.org και Mozilla/Firefox, εάν επιλέξατε μια πιο “περιεκτική” εγκατάσταση.

Ο κατάλογος /opt προσεγγίζει αρκετά τη φιλοσοφία των Windows, αφού για κάθε εφαρμογή υπάρχει ένας αντίστοιχος κατάλογος (π.χ., /opt/openoffice/), στον οποίο υπάρχει ένας άλλος κατάλογος όπου βρίσκονται τα εκτελέσιμα της εφαρμογής (/opt/openoffice/bin). Ωστόσο, και πάλι οι προαναφερόμενοι κανόνες δεν ακολουθούνται αυστηρά σε κάθε διανομή. Για παράδειγμα, στο openSUSE ο κατάλογος /opt περιέχει εγγραφές για τα Gnome, KDE και Openoffice.org, ενώ στο Ubuntu είναι αρχικά άδειος.
 

/proc

Αυτός είναι ένας κατάλογος με αρχεία που στην πραγματικότητα δεν υπάρχουν. Είναι ένα εικονικό σύστημα αρχείων που περιλαμβάνει μόνο πληροφορίες runtime: Αρχεία συστήματος που σχετίζονται με mounted συσκευές, εκτελούμενες διεργασίες (εξ ου και το όνομα proc, από το process=διεργασία) και modules του πυρήνα, τα οποία έχουν φορτωθεί ήδη στη μνήμη.

Εάν ρίξετε μια ματιά στα περιεχόμενα του καταλόγου, θα δείτε ότι τα περισσότερα αρχεία έχουν μέγεθος 0KB. Τα μόνα που αποτελούν εξαίρεση του κανόνα είναι το “kcore”, το οποίο είναι ένα image της φυσικής μνήμης, οπότε το μέγεθός του θα είναι ίδιο με αυτό της κύριας μνήμης, και το config.gz, το οποίο είναι μια συμπιεσμένη μορφή του αρχείου ρυθμίσεων του συστήματος. Το αξιοσημείωτο είναι πως τα αρχεία αυτά δεν καταλαμβάνουν αρκετό αποθηκευτικό χώρο, εκτός εάν αντιγραφούν έξω από τον κατάλογο /proc.

Αν ανοίξετε την κονσόλα, μπείτε στο σύστημα ως root χρήστης – πληκτρολογώντας “su” και δίνοντας το αντίστοιχο password – και στη συνέχεια δώσετε “top” (το οποίο θα απεικονίσει αμέσως τις τρέχουσες διεργασίες), θα δείτε ότι πολλά από τα αρχεία που βρίσκονται στον κατάλογο /proc έχουν καταχωρίσεις και σε αυτήν τη λίστα. Να θυμάστε πως τα πάντα, ακόμα και οι τρέχουσες διεργασίες είναι αρχεία.
 

/sbin

Είδαμε ήδη τον κατάλογο /bin, ο οποίος περιέχει όλα τα απαραίτητα εκτελέσιμα για την εκκίνηση του υπολογιστή μας. Ο κατάλογος /sbin περιέχει και αυτός εκτελέσιμα αρχεία των εργαλείων διαχείρισης του συστήματος, όπως fdisk, ifconfig και fsck, τα οποία μπορεί να χρειαστεί οποιοσδήποτε χρήστης του συστήματος. Εκτελέσιμα τα οποία δεν χρειάζονται μέχρι να γίνει mount το /usr (δείτε σχετικά παρακάτω) συνήθως βρίσκονται κάτω από τον κατάλογο /usr/sbin. Αν αυτό σας φαίνεται λίγο πολύπλοκο, προσθέστε και το γεγονός ότι μερικά παρόμοια εργαλεία βρίσκονται επίσης στον κατάλογο /usr/local/sbin.

Εδώ, επίσης, φιλοξενούνται και network daemons, εργαλεία διαχείρισης, όπως η εντολή kill – υπεύθυνη για τη διακοπή προβληματικών εφαρμογών ή διεργασιών –, και η reboot για την επανεκκίνηση του συστήματος. Η πρόσβαση σε αυτά τα εκτελέσιμα περιορίζεται συνήθως στον χρήστη root.
 

/usr

Εδώ βρίσκονται όλα τα εκτελέσιμα των χρηστών του συστήματος. Με αυτό εννοούμε όλες τις εφαρμογές, documentation, βιβλιοθήκες και άλλα τα οποία έχουν εγκαταστήσει οι χρήστες του συστήματος. Γι’ αυτό άλλωστε δεν εκπλήσσει το γεγονός ότι στον υπολογιστή ενός μέσου χρήστη αυτός ο κατάλογος είναι συνήθως ο μεγαλύτερος από πλευράς χώρου.

Θα σας βοηθήσει ιδιαίτερα αν τον φανταστείτε ως συνοδευτικό κατάλογο του /home. Εδώ περιέχονται όλα τα προγράμματα τα οποία πιθανότατα θα βρίσκατε στο C:\Program Files ενός συστήματος Windows, ενώ το /home περιέχει όλες εκείνες τις πληροφορίες χρήστη που βρίσκονται συνήθως στο My Documents των Windows.

Με μια προσεκτική ματιά θα διαπιστώσετε πως ο συγκεκριμένος κατάλογος παρουσιάζει μια δομή παρόμοια με αυτήν του καταλόγου /root. Ενδεικτικά αναφέρουμε τον κατάλογο /bin, στον οποίο βρίσκονται τα προγράμματα αυτά καθ’ εαυτά, τον /lib, στον οποίο αποθηκεύονται όλες οι σχετικές με τα προγράμματα βιβλιοθήκες, και τον /etc, όπου διατηρούνται τα αρχεία ρυθμίσεων.

Ιδιαίτερης μνείας αξίζει ο κατάλογος /share, στον οποίο το Linux αποθηκεύει τα αρχεία που χρησιμοποιούνται από όλους τους χρήστες του συστήματος. Εδώ θα πρέπει να ψάξετε αν χρειάζεστε fonts, διακοσμητικά παραθύρων, screensavers, ενώ στο /usr/share/doc βρίσκονται όλες οι man pages τις οποίες οι Linux developers αποκαλούν “documentation συστήματος”.
 

/var

Τελευταίο αφήσαμε τον κατάλογο /var, συντόμευση του Variables (μεταβλητές). Σε αυτόν αποθηκεύονται όλες οι μεταβλητές συστήματος – όπως είναι δηλαδή τα spool files του εκτυπωτή (μια λίστα με τα αρχεία που βρίσκονται στην ουρά και αναμένουν να εκτυπωθούν), backups σημαντικών αρχείων συστήματος (τα οποία εάν θέλετε να επαναφέρετε, θα αναγνωρίσετε από την κατάληξη .bak), πληροφορίες σχετικές με crashes και δυναμικά δεδομένα από εφαρμογές όπως είναι τα παιχνίδια.

Ο κατάλογος /var υφίσταται συνεχείς αλλαγές στα περιεχόμενά του επειδή περιέχει μη στατικά δεδομένα τα οποία δημιουργούνται καθώς δουλεύετε στο σύστημά σας. Είναι, επίσης, το μέρος όπου φιλοξενούνται όλα τα log files του συστήματος – και κυρίως τα αρχεία που καταγράφουν ποιοι εισέρχονται και εξέρχονται –, καθώς και προσωρινά αρχεία όπως αυτά που δημιουργούνται κατά τη διαδικασία cut/copy.

Φτάσαμε στο τέλος…

Κάπου εδώ τελειώνει η περιήγησή μας στο σύστημα αρχείων του Linux. Οπως θα διαπιστώσατε, είναι ένα πολύπλοκο σύστημα παρόλες τις απλουστεύσεις που κάναμε. Να σημειωθεί μάλιστα ότι καλύψαμε μόνο τα βασικά!

Να και ένα δέντρο με όλο το σύστημα αρχείων του Linux:

Linux File System

Το πιο πιθανό είναι ότι σπάνια θα χρειαστείτε να ψάξετε κάτι σε καταλόγους πέρα από τον /home, ίσως μόνο στον /usr/bin αν κάποια εφαρμογή δεν φρόντισε να δημιουργήσει μια καταχώριση στην επιφάνεια χρήστη ή στα μενού. Μπορεί να μην ενδιαφέρεστε καν για τη δομή του συστήματος αρχείων, αλλά η αλήθεια είναι πως όσο περισσότερο το κατανοείτε και αντιλαμβάνεστε τον τρόπο λειτουργίας του τόσο περισσότερα μπορείτε να κερδίσετε από το σύστημά σας ή να καταλάβετε τι έχει συμβεί σε περίπτωση που κάτι πάει στραβά.

Για παράδειγμα, αν το OpenOffice.org αρνείται πεισματικά να σας “αδειάσει τη γωνιά” ενώ έχει “κολλήσει”, τι μπορείτε να κάνετε; Σίγουρα η επιλογή της επανεκκίνησης του υπολογιστή, αν και σίγουρα θα έχει το επιθυμητό αποτέλεσμα, δεν είναι η καλύτερη. Μια προσέγγιση όπως η ακόλουθη σίγουρα θα ήταν πιο πρακτική. Πληκτρολογήστε “su” στην κονσόλα και αφού δώσετε το password σας, εισέρχεστε στο σύστημα ως root χρήστης. Στη συνέχεια εκτελέστε top, εντοπίστε την καταχώριση-διεργασία που αντιστοιχεί στο OpenOffice.org και σημειώστε το PID της (ένας τυχαίος αριθμός που αποτελεί την ταυτότητα της διεργασίας). Στη συνέχεια γράψτε π.χ. kill 3672 ή οποιοδήποτε άλλο είναι το PID της συγκεκριμένης διεργασίας και έχετε επιτύχει το σκοπό σας γρήγορα και σίγουρα πιο “επαγγελματικά”.

Φυσικά, εάν έχετε “ψαχτεί” λίγο παραπάνω με το σύστημα, σίγουρα θα γνωρίζετε την εντολή xkill, την οποία μπορείτε να εισαγάγετε σε ένα παράθυρο Run και στη συνέχεια να κλείσετε το προβληματικό παράθυρο σημαδεύοντάς το με τον κέρσορα. Οπως έχει ειπωθεί στο παρελθόν, η γνώση είναι δύναμη και όταν αυτή η γνώση εφαρμόζεται σε εργαλεία όπως είναι οι υπολογιστές σίγουρα διευκολύνεται κατά πολύ η ζωή μας.

Δώσε αστέρια!

MO: 4.3 (ψήφοι: 14)

Comments

Παρα πολυ καλο για μαs τουs νεουs στον χωρο αυτο....αλλα υπομονη ομωs..........

Πολυ καλο, θα το διαβασω ολα καποια στιγμη, αλλα ξερω στα windows  το "c:\"  στην πραγματικοτητα δεν υπαρχει ειναι ενα ëmulator.

Aλλα δεν τα πολυξερω και τελεια, αλλα καποια αμεση σχεξυ εχει το registry των windows.

Διοτι το registry (regedit) windows,  μου θυμιζει παρα πολυ εντοντα τον τροπο αρχειων των λινουξ.

Αμα τελικα ειμαι λαθος, υπαρχει registry  στα λινουξ ?

Kαι γιατι αμα πειραξω το registry των windows στην ουσια κανω οτι θελω ?

 

-----------------------------

diver.gU.U

Πάρα πολύ καλό! Μπράβο σας και ευχαριστούμε! :)
Τέτοια άρθρα που εξηγούν και μας φανερώνουν τι γίνεται μέσα στο linux σύστημα μας τι υπάρχει κτλπ. είναι τα καλύτερα για τους νέους χρήστες στον χώρο. :)