
Εξερευνώντας το Linux Filesystem - Σε τι χρησιμεύει o κάθε φάκελος στο σύστημα.
Το Linux, ως λειτουργικό σύστημα ανοιχτού κώδικα, βασίζεται σε μια ιεραρχική δομή αρχείων και φακέλων που ονομάζεται Filesystem Hierarchy Standard (FHS). Αυτή η δομή οργανώνει τα αρχεία και τους φακέλους με λογικό τρόπο, ώστε το σύστημα να λειτουργεί ομαλά. Σε αυτό το άρθρο, θα εξερευνήσουμε τους βασικούς φακέλους στο root directory (/) ενός τυπικού Linux συστήματος, εξηγώντας τι κάνει ο καθένας. Αυτή η γνώση είναι απαραίτητη για αρχάριους χρήστες, διαχειριστές συστημάτων και developers.
Η δομή ξεκινά από τον ριζικό φάκελο (/), που συχνά αναφέρεται και ως root directory. Είναι η βάση όλης της ιεραρχίας του συστήματος αρχείων (filesystem) και περιέχει όλους τους άλλους φακέλους και αρχεία. Δεν πρέπει να συγχέεται με τον φάκελο /root, που είναι ο προσωπικός φάκελος του root χρήστη (superuser). Ας δούμε αναλυτικά τους πιο σημαντικούς υποφακέλους:
/bin (Binaries)
Ο φάκελος /bin περιέχει βασικά εκτελέσιμα αρχεία (binaries) που είναι απαραίτητα για την εκκίνηση και τη βασική λειτουργία του συστήματος. Εδώ βρίσκονται εντολές όπως το `ls` (για λίστα αρχείων), `cp` (για αντιγραφή) και `mv` (για μετακίνηση). Αυτά τα προγράμματα είναι διαθέσιμα σε όλους τους χρήστες και χρησιμοποιούνται ακόμα και σε single-user mode, όταν το σύστημα δεν έχει φορτώσει πλήρως.
/boot
Στον /boot αποθηκεύονται αρχεία σχετικά με την εκκίνηση του συστήματος, όπως ο πυρήνας του Linux (kernel), τα αρχεία GRUB (boot loader) και αρχεία ρυθμίσεων για το boot process. Είναι κρίσιμος για την έναρξη του υπολογιστή, αλλά δεν πρέπει να τροποποιείται χειροκίνητα χωρίς προσοχή, καθώς μπορεί να προκαλέσει προβλήματα εκκίνησης.
/dev (Devices)
Ο /dev είναι ένας εικονικός φάκελος που αναπαριστά τις συσκευές υλικού του συστήματος ως αρχεία. Για παράδειγμα, `/dev/sda` μπορεί να είναι ο σκληρός δίσκος, ενώ `/dev/null` είναι μια "μαύρη τρύπα" για απόρριψη δεδομένων. Το σύστημα Linux αντιμετωπίζει τα πάντα ως αρχεία, οπότε εδώ γίνεται η αλληλεπίδραση με hardware όπως δίσκους, κάρτες ήχου και USB.
/etc (Etcetera)
Ο /etc είναι ο κεντρικός χώρος για αρχεία ρυθμίσεων (configuration files) του συστήματος. Εδώ βρίσκονται αρχεία όπως το `/etc/passwd` (για χρήστες), `/etc/fstab` (για mount points) και `/etc/hosts` (για DNS). Είναι "read-only" για τους περισσότερους χρήστες, αλλά οι διαχειριστές το χρησιμοποιούν για να ρυθμίσουν υπηρεσίες, δίκτυα και λογισμικό.
/home
Στον /home αποθηκεύονται οι προσωπικοί φάκελοι των χρηστών. Κάθε χρήστης έχει τον δικό του υποφάκελο (π.χ. `/home/user`), όπου κρατάει αρχεία, έγγραφα, εικόνες και ρυθμίσεις προγραμμάτων. Είναι ο "προσωπικός χώρος" και συνήθως είναι το μεγαλύτερο partition σε οικιακά συστήματα.
/lib (Libraries)
Ο /lib περιέχει βιβλιοθήκες (shared libraries) που χρειάζονται τα προγράμματα για να τρέξουν. Αυτές είναι κοινές λειτουργίες, όπως μαθηματικές πράξεις ή γραφικά, που μοιράζονται μεταξύ εφαρμογών. Σε 64-bit συστήματα, μπορεί να υπάρχει και `/lib64` για αρχιτεκτονικές x86_64.
/media και /mnt
- /media: Χρησιμοποιείται για αυτόματο mounting αφαιρούμενων μέσων, όπως USB sticks ή CD-ROM. Το σύστημα δημιουργεί υποφακέλους δυναμικά (π.χ. `/media/usb`).
- /mnt: Είναι για προσωρινό mounting δίσκων ή partitions από τον χρήστη. Χρησιμοποιείται χειροκίνητα, π.χ. με την εντολή `mount`.
/opt (Optional)
Ο /opt προορίζεται για προαιρετικό λογισμικό που δεν είναι μέρος της βασικής διανομής, όπως εμπορικά προγράμματα (π.χ. Google Chrome). Οι developers συχνά εγκαθιστούν εδώ πακέτα που δεν διαχειρίζεται ο package manager.
/proc (Processes)
Ο /proc είναι εικονικός φάκελος που παρέχει πληροφορίες για διεργασίες (processes) και το σύστημα σε πραγματικό χρόνο. Για παράδειγμα, `/proc/cpuinfo` δείχνει λεπτομέρειες CPU. Δεν αποθηκεύει πραγματικά αρχεία, αλλά δημιουργεί τα δεδομένα on-the-fly.
/root
Αυτός είναι ο προσωπικός φάκελος του root χρήστη (superuser). Παρόμοιος με /home, αλλά μόνο για τον root. Περιέχει ρυθμίσεις και αρχεία που χρειάζεται ο διαχειριστής.
/run
Ο /run κρατάει προσωρινά δεδομένα εκτέλεσης (runtime data), όπως PID αρχεία υπηρεσιών ή sockets. Είναι volatile, δηλαδή σβήνει σε κάθε reboot, και χρησιμοποιείται από daemons και υπηρεσίες.
/sbin (System Binaries)
Παρόμοιος με /bin, αλλά ο /sbin περιέχει εκτελέσιμα για διαχείριση συστήματος, όπως `fdisk` (για partitions) ή `reboot`. Είναι μόνο για root χρήστες και απαραίτητα για συντήρηση.
/srv (Service)
Ο /srv αποθηκεύει δεδομένα υπηρεσιών, όπως websites (π.χ. /srv/www) ή FTP servers. Είναι για server-oriented διανομές.
/sys (Sysfs)
Παρόμοιος με /proc, ο /sys παρέχει πληροφορίες και έλεγχο για το kernel και hardware. Χρησιμοποιείται για ρυθμίσεις συσκευών, π.χ. brightness οθόνης.
/tmp (Temporary)
Ο /tmp είναι για προσωρινά αρχεία που δημιουργούν προγράμματα. Σβήνεται συχνά σε reboot και είναι προσβάσιμος από όλους, αλλά προσοχή: μην αποθηκεύετε σημαντικά δεδομένα εδώ!
/usr (User)
Ο /usr περιέχει προγράμματα και δεδομένα για χρήστες, όπως binaries (/usr/bin), libraries (/usr/lib) και documentation (/usr/share). Είναι "read-only" και μεγαλύτερος από /bin.
/var (Variable)
Ο /var κρατάει μεταβλητά δεδομένα, όπως logs (/var/log), databases (/var/lib) και email (/var/mail). Αλλάζει συχνά και είναι σημαντικός για monitoring.
Η δομή του Linux filesystem είναι λογική και ευέλικτη, βασισμένη στο FHS για συμβατότητα μεταξύ διανομών όπως Ubuntu, Fedora ή Arch. Αν είστε νέοι, δοκιμάστε εντολές όπως `ls /` ή `man hier` για περισσότερες λεπτομέρειες. Θυμηθείτε: Πάντα χρησιμοποιείτε sudo για αλλαγές σε system φακέλους!
Αυτό το άρθρο βασίζεται σε γενικές γνώσεις του Linux. Για ενημερωμένες λεπτομέρειες, ελέγξτε την τεκμηρίωση της διανομής σας.