Εισαγωγή στο σύστημα αρχείων του linux

...το μέρος για να ξεκινήσετε!

Συντονιστής: adem1

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

Σημαντικό είναι να χρησιμοποιήσετε την υπηρεσία http://imagebin.ubuntu-gr.org για τις εικόνες.

Εισαγωγή στο σύστημα αρχείων του linux

Δημοσίευσηαπό sudobash » 19 Αύγ 2008, 17:16

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

/
Είναι ο βασικός φάκελος του linux και αυτός που είναι πιο ψηλά στην ιεραρχία της πυραμίδας του συστήματος αρχείων. Είναι ο λεγόμενος φάκελος root και ο αρχικός φάκελος όλων των υπολοίπων. Όλα λοιπόν τα αρχεία και οι φάκελοι, έχουν την αρχή τους στον φάκελο root.

/bin
Στον φάκελο αυτόν βρίσκονται τα εκτελέσιμα αρχεία (εφαρμογές και προγράμματα) του linux που χρησιμοποιούνται και από τον διαχειριστή του συστήματος αλλά και από τους απλούς χρήστες. Περιλαμβάνει εντολές του shell (πχ. bash, csh, κτλ.) και συχνά χρησιμοποιούμενες εντολές (πχ. cp, mv, rm, cat, ls κτλ.). Τα προγράμματα αυτά, καθώς και οποιοδήποτε άλλο πρόγραμμα βρίσκεται στον συγκεκριμένο φάκελο, είναι αυτόματα εκτελέσιμα, το οποίο σημαίνει ότι όταν γράψουμε μια εντολή, ένα από τα σημεία που θα ψάξει το λειτουργικό να βρει το πρόγραμμα που θα εκτελέσει, θα είναι ο φάκελος /bin.

/boot
Ο φάκελος αυτός περιέχει οτιδήποτε απαιτείται για την διαδικασία εκκίνησης του λειτουργικού συστήματος. Ο φάκελος boot αποθηκεύει δεδομένα που χρησιμοποιούνται πριν από την έναρξη εκτέλεσης προγραμμάτων του χρήστη από τον πυρήνα.

/dev
Οποιαδήποτε περιφερειακή συσκευή υπάρχει συνδεδεμένη στον υπολογιστή σας, τότε θα βρείτε τα αντίστοιχα αρχεία ελέγχου της στον φάκελο αυτόν. Σκληροί δίσκοι, συσκευές usb, modem, εκτυπωτές κτλ. έχουν τα αντίστοιχα αρχεία τους εδώ.

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

/home
Εδώ μένουν οι χρήστες! Μέσα στον φάκελο home υπάρχει ένας φάκελος για κάθε χρήστη (εκτός τον χρήστη root, καθώς όπως αναφέραμε παραπάνω το "σπίτι" του είναι στο /root), μέσα στον οποίο αποθηκεύονται τα αρχεία με τις ρυθμίσεις και τις επιλογές του, τα προσωπικά δεδομένα, η επιφάνεια εργασίας και γενικότερα οποιαδήποτε πληροφορία αφορά τον χρήστη αυτόν.

/lib
Ο φάκελος lib περιλαμβάνει τα modules του πυρήνα και τις κοινόχρηστες βιβλιοθήκες που χρειάζεται το σύστημα για να φορτώσει και να τρέξει εντολές και προγράμματα. Οι βιβλιοθήκες έχουν επέκταση αρχείου .so και είναι απαραίτητες για τη βασική λειτουργία του συστήματος. Τα modules του πυρήνα (drivers) είναι στον υποφάκελο /lib/modules/'έκδοση_kernel'.

/lost+found
Καθώς το linux θα πρέπει πάντα να τερματιστεί μέσω της αντίστοιχης διαδικασίας, μερικές φορές που το σύστημά ενδέχεται να κολλήσει ή να διακοπεί η λειτουργία του απότομα, κατά την επόμενη εκκίνηση τα γίνει ένας έλεγχος στο σύστημα αρχείων. Ο έλεγχος αυτός θα προσπαθήσει να ανακτήσει κάθε χαλασμένο αρχεία που εντοπίζει και τα αρχεία αυτά θα τοποθετηθούν στον φάκελο /lost+found. Κάθε partition έχει το δικό του φάκελο lost+found. Εάν βρείτε αρχεία σε αυτό, προσπαθήστε να τα μετακινήσετε στην αρχική τους θέση, σε περίπτωση που δεν παρουσιάζουν κάποιο πρόβλημα.

/media
Ο φάκελος media χρησιμοποιείται για να γίνουν mount οι σκληροί δίσκοι, οι δίσκοι usb, οι συσκευές cd/dvd κτλ.

/mnt
Αυτό είναι ένα γενικό σημείο για να γίνονται mount συσκευές.

/opt
Στον φάκελο αυτόν μπαίνουν τα προγράμματα και τα επιπλέον πακέτα που δεν αποτελούν μέρος της βασικής εγκατάστασης του συστήματος, αλλά τα βάζουμε εκεί για δοκιμή (πχ. beta testing). Για παράδειγμα εδώ μπορούμε να εγκαταστήσουμε την τελευταία beta έκδοση του gimp, έτσι ώστε μετά που θα την αφαιρέσουμε, να μην επηρεαστούν άλλες ρυθμίσεις. Όταν εγκαταστήσουμε ένα πρόγραμμα στον /opt, δημιουργείτε εκεί μέσα ένας φάκελος στον οποίο περιέχονται όλα τα αρχεία, τις βιβλιοθήκες, το documentation κτλ που απαιτείται.

/proc
Ο φάκελος proc είναι ένας ιδιαίτερος φάκελος με την έννοια ότι δεν περιέχει πραγματικά αρχεία, αλλά αρχεία για πληροφορίες του συστήματος κατά τη διάρκεια που το λειτουργικό τρέχει (π.χ. μνήμη του συστήματος). Για το λόγο αυτό, μπορεί να θεωρηθεί ως ένα κέντρο ελέγχου και πληροφοριών για τον πυρήνα και το σύστημα μας γενικότερα. Στην πραγματικότητα, πολλά βοηθητικά εργαλεία του συστήματος είναι απλώς κλήσεις προς αρχεία σε αυτόν το κατάλογο. Για παράδειγμα, η εντολή "lsmod" είναι απλά η εντολή "cat /proc/modules', ενώ η εντολή "lspci" είναι η εντολή "cat /proc/pci". Κύριο χαρακτηριστικό του φακέλου αυτού, είναι ότι τα περισσότερα αρχεία (με ελάχιστες εξαιρέσεις) έχουν μέγεθος αρχείου 0 bytes.

/root
Είναι το σπίτι του root, ο οποίος είναι ο υπερ χρήστης του λειτουργικού μας συστήματος και γενικοτερα του υπολογιστή. Έχει δικαίωμα να κάνει το οτίδηποτε και γι'αυτό χρειάζεται ιδιαίτερη προσοχή όταν κάνουμε κάτι ως χρήστης root.

/tmp
Ο φάκελος tmp είναι ένας φάκελος βοηθητικός, στον οποίον αποθηκεύονται προσωρινά κάποια αρχεία που δε ξαναχρειαστούν. Κάποια συστήματα είναι ρυθμισμένα να αδειάζουν τον φάκελο αυτόν ανά τακτά χρονικά διαστήματα. Γι'αυτό το λόγο δε θα πρέπει να αποθηκεύουμε κάτι χρήσιμο στον φάκελο αυτόν ή κάτι που ίσως να ξαναχρειαστούμε στο μέλλον.

/usr
Ο φάκελος αυτός συνήθως περιλάμβάνει τα κοινόχρηστα δεδομένα ενός συστήματος και κάποια εκτελέσιμα αρχεία των χρηστών που δε βρίσκονται στο /bin (πχ. telnet, ftp κτλ.). Τέλος περιέχει τα αρχεία βοήθειας και τις απαιτούμενες βιβλιοθήκες των προγραμμάτων.

/var
Περιέχει κυρίως αρχεία για logging, αλλά και αρχεία σχετικά με το mail και τον εκτυπωτή.
Ubuntu 9.10 32bit | 2 x Intel Core 2 Duo T5500 @ 1.66GHz | 2GB DDR2 RAM | Intel 950 Graphics
Richard Stallman wrote the compiler God used. The Big Bang was the Universe's first segfault.
Άβαταρ μέλους
sudobash
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 876
Εγγραφή: 13 Μάιος 2008, 20:11
Τοποθεσία: Κρήτη
Εκτύπωση

Re: Εισαγωγή στο σύστημα αρχείων του linux

Δημοσίευσηαπό simosx » 19 Αύγ 2008, 19:16

Ωραίο κείμενο!

Να προσθέσω μερικά ακόμα στοιχεία. Τις λεπτομέρειες των καταλόγων και των αρχείων τις καταγράφει ένα πρότυπο, το LSB, Linux Standard Base, http://www.linuxfoundation.org/en/LSB

α. Στο /boot υπάρχουν τα αρχεία του δεύτερου σταδίου της εκκίνησης του Linux. Όταν κάνουμε εκκίνηση το Linux, το BIOS θα εντοπίσει το δίσκο και θα εκτελέσει το κώδικα που υπάρχει στην περιοχή του MBR. Έχοντας εγκατεστημένο το grub, το grub είναι εκείνο που θα εκτελεστεί και θα έχει τον πλήρη έλεγχο του συστήματος. Ο κώδικας του grub που υπάρχει στο MBR είναι πολύ μικρός, και ουσιαστικά αυτό που κάνει είναι να δώσει τον έλεγχο στο δεύτερο στάδιο της εκκίνησης και στον κώδικα στο /boot. Όταν σβήνουμε το Linux από το δίσκο δίχως να έχουμε βγάλει πρώτα το grub από το MBR, έχει ως αποτέλεσμα να μην μπορεί να εκκινηθεί ο δίσκος. Και να χρειάζεται να καθαρίσουμε το grub με ειδικά εργαλεία.

Ακόμα, όταν εγκαταστήσουμε το Linux στο δεύτερο δίσκο μας, τότε το /boot θα βρίσκεται στο δεύτερο δίσκο. Άν αποφασίσουμε να βγάλουμε το δεύτερο δίσκο εκτός λειτουργίας, τότε πρέπει να σκεφτούμε το ζήτημα με το grub που υπάρχει στο MBR, και θα ψάξει για εκείνο το /boot. Έτσι, θα μπορούσε κάποιος που έχει πολλούς δίσκους και παράξενες ρυθμίσεις να φτιάξει ξεχωριστή κατάτμηση για το /boot κατά την εγκατάσταση, και να φτιάξει την κατάτμηση στον πρωτεύων δίσκο, οπότε θα μείνει για καιρό. Ακόμα και να σβήσεις το Linux, το /boot θα υπάρχει ακόμα, οπότε το σύστημα θα δουλεύει.

β. /dev/
Τα αρχεία στο /dev/ είναι ειδικά αρχεία τύπου μπλοκ ή χαρακτήρων (ls -l, και δείτε το πρώτο χαρακτήρα κάθε γραμμής). Τα αρχεία αυτά δημιουργήθηκαν με την εντολή mknod, και υπάρχει το πρόγραμμα /dev/MAKEDEV που φτιάχνει όλα τα αρχεία αυτά (σε περίπτωση που γίνει μπάχαλο). Τα αρχεία αυτά αντιστοιχούν σε δομές στον πυρήνα. Έτσι, όταν δεν έχουμε φορτώσει ένα οδηγό, μπορεί κάποιο από τα ειδικά αρχεία απλά να μην κάνει κάτι.

γ. /media, /mnt

Νομίζω ότι στις νεώτερες εκδόσεις, το /mnt δεν είναι πια σε χρήση.

δ. Το /opt είναι για εγκατάσταση προγραμμάτων που όλα τα σχετικά αρχεία πάνε κάτω από ένα κατάλογο. Έτσι, οι εγκαταστάσεις αυτές είναι ανεξάρτητες από το σύστημα.

Ο άλλος τρόπος εγκατάστασης προγραμμάτων τρίτων, ιδίως όταν κάνουμε τη μεταγλώττιση οι ίδιοι, είναι στον κατάλογο /usr/local/
Εδώ μπαίνουν προγράμματα που χρειάζονται το δικό τους, bin/, etc/, share/, κτλ. Έτσι, υπάρχουν /usr/local/bin, /usr/local/etc, /usr/local/lib, κτλ. Και εδώ τα προγράμματα είναι ανεξάρτητα από την εγκατάστασή μας, κάτι που είναι καλό για δοκιμές.

ε. /tmp
Στο Ubuntu, τα περιεχόμενα του /tmp σβήνονται αυτόματα σε κάθε επανεκκίνηση. Το ίδιο πρέπει να συμβαίνει και στις περισσότερες άλλες διανομές.

στ. /usr
Αν και υπάρχει /bin, υπάρχει και /usr/bin/. Στο /bin υπάρχουν τα απολύτως αναγκαία εκτελέσιμα, ενώ στο /usr/bin υπάρχουν τα βασικά εκτελέσιμα (τα υπόλοιπα) του συστήματος, όπως GNOME, Xorg, κτλ. Όταν εγκαθιστούμε πακέτα από το Διαχειριστή πακέτων, αυτά πάνε στο /usr/bin. Οι βιβλιοθήκες των πακέτων πάνε στο /usr/lib, τα αρχεία που δεν είναι εκτελέσιμα στο /usr/share, κτλ.

Ο λόγος της διαφοράς μεταξύ (/bin, /lib, /etc, κτλ) και (/usr/bin, /usr/lib, /usr/share, κτλ) έχει να κάνει με απαιτήσεις πριν από πολλά πολλά χρόνια. Για παράδειγμα, μπορείς να εγκαταστήσεις τα απολύτως βασικά σε έναν υπολογιστή οπότε να κάνει εκκίνηση από το δίσκο του (με χρήση των αρχείων από (/bin, /lib, /etc, κτλ), ενώ μόλις προετοιμαστεί το σύστημα, να κάνει σύνδεση με το /usr/ που είναι διαμοιραζόμενος πόρος από κάποιο εξυπηρετητή αρχείων.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Εισαγωγή στο σύστημα αρχείων του linux

Δημοσίευσηαπό sudobash » 20 Αύγ 2008, 01:16

Σίμο σ'ευχαριστώ για τις παρατηρήσεις σου, οι οποίες στο σύνολο τους είναι πολύ σωστές. Θα τις προσαρμόσω στο αρχικό post..
Ubuntu 9.10 32bit | 2 x Intel Core 2 Duo T5500 @ 1.66GHz | 2GB DDR2 RAM | Intel 950 Graphics
Richard Stallman wrote the compiler God used. The Big Bang was the Universe's first segfault.
Άβαταρ μέλους
sudobash
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 876
Εγγραφή: 13 Μάιος 2008, 20:11
Τοποθεσία: Κρήτη
Εκτύπωση

Re: Εισαγωγή στο σύστημα αρχείων του linux

Δημοσίευσηαπό LOCKHEART » 04 Δεκ 2009, 10:26

Πόση ακριβώς πρέπει να ειναι η χωρητικότητα του συστήματος αρχείων στο linux για να μην πηγαίνει ο χώρος χαμένος μπορεί κάποιος να μας παει ;

Για παράδειγμα γνωρίζουμε οτι το swap πρέπει να ειναι το διπλάσιο της μνήμης του υπολογιστή μας.

Για τις άλλες ; Θέλω πχ να βάλω το /boοt σε ξεχωριστή κατάτμηση πόσα ΜB πρέπει να ειναι ;
και κάτι τελευταίες κατηγορίες " / " μπορώ να έχω σε ξεχωριστή κατάτμηση και ποιες όλες μαζι ;

Ευχαριστώ
LOCKHEART
babeTUX
babeTUX
 
Δημοσιεύσεις: 13
Εγγραφή: 26 Νοέμ 2009, 14:59
Εκτύπωση

Re: Εισαγωγή στο σύστημα αρχείων του linux

Δημοσίευσηαπό Epirotes » 04 Δεκ 2009, 12:20

Για το / 15-20 (το πολύ 25) GB.
Για το swap ότι ανέφερες, αλλά όχι πάνω από 3 (άντε 4) GB. (Εγώ π.χ. που έχω 4 GB μνήμη δεν φτιάχνω 8 GB swap, αλλά 4, κι αυτά πολλά είναι).
Για το /boot και τ' άλλα που ρωτάς δεν ξέρω γιατί δεν έχω φτιάξει ποτέ ξεχωριστά διαμερίσματα γι' αυτά, εκτός από το /home.

@ sudobash: Μπράβο κι εύγε! Πολύ καλός και κατατοπιστικός οδηγός! :thumbup: :clap: :bow:
Οδηγίες για νέα μέλη ---- Οδηγοί - How to - Tutorials
1 Linux: Μέτριος ┃ Προγραμματισμός: Καθόλου ┃ Αγγλικά: Προχωρημένος
2 Ubuntu 16.04 precise 64bit (el_GR.UTF-8), Windows 10
3 Intel Core2 Duo CPU E8400 3.00GHz ‖ RAM 8 GB ‖ Gigabyte X48-DS4
4 Advanced Micro Devices [AMD] nee ATI Caicos [Radeon HD 6450] [1002:6779]
5 eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 02)
Άβαταρ μέλους
Epirotes
superbTUX
superbTUX
 
Δημοσιεύσεις: 3185
Εγγραφή: 05 Νοέμ 2008, 00:25
Τοποθεσία: Ιωάννινα, Ήπειρος
Εκτύπωση

Re: Εισαγωγή στο σύστημα αρχείων του linux

Δημοσίευσηαπό vagrale13 » 04 Δεκ 2009, 12:33

LOCKHEART έγραψε:Πόση ακριβώς πρέπει να ειναι η χωρητικότητα του συστήματος αρχείων στο linux για να μην πηγαίνει ο χώρος χαμένος μπορεί κάποιος να μας παει ;

Για παράδειγμα γνωρίζουμε οτι το swap πρέπει να ειναι το διπλάσιο της μνήμης του υπολογιστή μας.

Για τις άλλες ; Θέλω πχ να βάλω το /boοt σε ξεχωριστή κατάτμηση πόσα ΜB πρέπει να ειναι ;
και κάτι τελευταίες κατηγορίες " / " μπορώ να έχω σε ξεχωριστή κατάτμηση και ποιες όλες μαζι ;

Ευχαριστώ

Δες τους οδηγους
εδω σε εικονες viewtopic.php?f=9&t=8535
εδω σε βιντεο viewtopic.php?f=9&t=8223
Desktop 1: Mint 13 Maya i386 / Ubuntu 14.10 Utopic Unicorn i386 (development branch)
CPU: AMD ATHLON II X2 215 │ RAM: 4026Mb │ Graphics Card: GeForce 210 512MB │ LG W2243S : 1920 x 1080
Desktop 2: Ubuntu 12.04 LTS Precise Pangoli i386
AMD Athlon 64 X2 5800+ │ 1024Mb │ nForce 7600 256MB (onboard) | 1024 x 768
Laptop : Sony Vaio VGN-N11m : Ubuntu 14.04Lts Trusty Tahr i386 (Mate desktop)


*Οδηγοί - How to - Tutorials σε Κατηγορίες
*Oδηγίες προς νεοεισερχόμενους σε forum ή linux
Άβαταρ μέλους
vagrale13
Freedom
Freedom
 
Δημοσιεύσεις: 7107
Εγγραφή: 04 Απρ 2009, 19:29
Τοποθεσία: κάπου εδώ μέσα στο net :P
Launchpad: vagrale
IRC: vagrale13
Εκτύπωση


  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Οδηγοί - How to - Tutorials