+++
title = 'Linux για τους νοητικά ασθενείς part II'
date = '1999-03-01T00:00:00Z'
description = ''
author = 'Κοτσιφάκης Θρασύβουλος'
issue = ['Magaz 13']
issue_weight = 4
+++

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

*Συνέχεια του άρθρου του προηγούμενου μήνα. Τα πρώτα σας βηματάκια στο Linux και στα τερτίπια του .**Strictly for beginers**.*

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

**1. Ό LI.LO. (άκου όνομα κι αυτός).**
-------------------------------------------------------------------------

**2. Τα αρχεία συστήματος**
--------------------------------------------------------------

-   [2.1 /etc/fstab](#ss2.1)
-   [2.2 /etc/profile](#ss2.2)
-   [2.3 /etc/printcap](#ss2.3)
-   [2.4 /etc/rc.config](#ss2.4)
-   [2.5 /etc/inittab](#ss2.5)
-   [2.6 /etc/conf.modules](#ss2.6)
-   [2.7 Τα αρχεία autoexec.bat και config.sys](#ss2.7)

**3. Επίλογος (άντε γιατί βαρεθήκαμε).**
---------------------------------------------------------------------------


### [1. Ό LI.LO. (άκου όνομα κι αυτός).]{#s1}

Χαιρετώ τα πλήθη και μπαίνω κατ\' ευθείαν στο ψητό. LI.LO. εστί **Linux Loader**, και τι κάνει αυτός ε; λοιπόν αυτός φροντίζει να ξεκινήσει(σουν) το(τα)
λειτουργικό(ά) μας. Προφανώς όταν κάνατε εγκατάσταση του Linux, σας ζητήθηκε να τον εγκαταστήσετε κάπου. 'ν δεν έχετε κάποιο λειτουργικό με δικό του loader
(π.χ. OS/2) εγκαταστήστε τον στο MBR (master boot record).Φτιάξτε τα boot volumes μέσα από τις ρουτίνες που διαθέτει κάθε Distribution, δώστε τους ονομασία και
όταν ξεκινήσει ο κουβάς σας θα δείτε ένα μήνυμα μετά από την εκκίνηση του bios όπως το παρακάτω:

**LΙLO:**

Δώστε τώρα το όνομα που δώσατε στο boot volume του Linux και συνεχίστε με τα βήματα που διαβάσατε στο πρώτο άρθρο της σειράς για να κάνετε login. Πάμε τώρα να
βγάλουμε τα μάτια στον lilo και να μάθουμε μερικά ψιλά για το πως θα τον κάνουμε να δουλεύει όπως θέλουμε εμείς.

Κατά την εγκατάσταση του συστήματος σας στο σημείο που εγκαταστήσατε τον lilo συνέβησαν τα εξής:

    α.  Καθορίστηκαν οι εγγραφές για το τι λειτουργικά συστήματα πρέπει να είναι έτοιμος ο lilo να ξεκινήσει.
    β.  Καθορίστηκαν οι ονομασίες αυτών (boot labels)
    γ.  Καθορίστηκε η θέση τους (σε ποιο δίσκο, σε ποιο partition )
    δ.  Καθορίστηκε ποιο λειτουργικό θα είναι το default.
    ε.  Τροποποιήθηκε το MBR 
    στ. Γράφτηκαν οι αλλαγές στο configuration file του LILO.

Αυτά βέβαια με απλά λόγια διότι οι διαδικασίες αυτές είναι much much more complicated απ\' όσον ακούγονται, (διαβάστε το /usr/doc/lilo/README και θα καταλάβετε
τι εννοώ.) Πάμε τώρα να αλλάξουμε τα φώτα στον lilo.

Μεταφερθείτε στο /etc directory και ψάξτε για ένα αρχείο με το όνομα **lilo.conf**. Ανοίξτε το με κάποιον editor (vi, pico, joe ή όποιον άλλο εσείς πλέον
χρησιμοποιείτε -συνιστώ ανεπιφύλακτα τον pico). Αυτό που θα δείτε είναι περίπου το παρακάτω :

    # LILO global section start
    boot=/dev/hda
    prompt
    timeout=100
    vga = normal
    # End LILO global section
    #
    # Linux bootable partition config begins
    image = /boot/vmlinuz
    root = /dev/hda6
    label = linux
    # Linux bootable partition config ends
    #
    # Winblows bootable partition config begins
    other = /dev/hda1
    label = w95
    table = /dev/hda
    # Winblows bootable partition config ends

Νομίζω ότι με κάποια προσεκτική ανάγνωση καταλαβαίνετε τι κάνει αυτό το αρχείο αλλά και πως το κάνει.Βέβαια εδώ δεν διαβάζουμε για να γίνουμε Πυθίες γι αυτό ας
εξηγήσουμε μερικά πράγματα.

Προσέξτε τις εγγραφές ανάμεσα από τα σχόλια \"\#LILO global section start\" και \"\# End LILO global section\". Εδώ βρίσκονται οι γενικές (σφαιρικές)
καταχωρίσεις για την αρχική συμπεριφορά του συστήματος μας.

**boot=\...** : Εδώ καθοδηγούμε το σύστημα για το που βρίσκεται το boot record. Συνήθως είναι /dev/hda ή /dev/sda (αν ξεκινάμε τον lilo από hard-disk ) ή και
/dev/fd0 (αν ξεκινάμε από δισκέττα -ναι, και αυτό γίνεται).

**prompt** : Ενεργοποιείται το LILO prompt που βλέπουμε στην εκκίνηση και μας καλεί να επιλέξουμε λειτουργικό για την εκκίνηση.

**timeout=\...tenthsofsecs** : Εδώ βάζουμε τον χρόνο που θα καθυστερήσει ο lilo στο prompt πριν ξεκινήσει το default λειτουργικό.Το 100 που έχει το lilo.conf
παραπάνω σημαίνει 10 seconds.

**vga=\...** : Εδώ μπορούμε να χρησιμοποιήσουμε μία τιμή ανάλυσης σε χαρακτήρες για την απεικόνιση των τερματικών μας. Οι επιλογές που έχουμε είναι normal
(80x25) ext (80x50) ή ask όπου ερωτούμαστε για την ανάλυση (στο 2.2 kernel η παράμετρος ask δείχνει τον πραγματικό της εαυτό αφού μπορούμε να εκκινήσουμε σε
SVGA Mode).

Προς στιγμήν ας αφήσουμε το global section στο οποίο θα επιστρέψουμε δριμύτεροι για να του αλλάξουμε τα φώτα, και ας ρίξουμε μία ματιά στο section **\# Linux
bootable partition config begins**

**image=**/boot/vmlinuz : Εδώ λέμε στον lilo πού θα βρεί τον πυρήνα (vmlinuz είναι το όνομα που θα συναντήσετε και που αργότερα θα χρησιμοποιείτε κι εσείς για
την ονομασία των custom kernel που θα φτιάχνετε, π.χ. vmlinuz\_2\_0\_36 vmlinuz\_2\_2 κ.λ.π. /boot φυσικά είναι το directory όπου αποθηκεύετε τους πυρήνες σας.

**root =**/dev/hda6 : Έδώ φυσικά καθοδηγούμε τον lilo για το που κάνουμε mount το root (/)

**label** = linux : Έδω του λέμε τι entry να περιμένει στο prompt. Πληκτρολογώντας δηλαδή linux και πατώντας το enter θα ξεκινήσει να φορτώνει το Linux του
οποίου το loadable kernel βρίσκεται στο /boot ,ονομάζεται vmlinuz και το root directory του \"κάθεται\" στο /dev/hda6

Ας πειράξουμε τώρα λίγο το συγκεκριμένο αρχείο.Μπείτε σε μια άλλη κονσόλα και ανοίξτε τον editor της αρεσκείας σας. Πληκτρολογείστε ότι σας κατέβει για μήνυμα
έναρξης και σώστε το π.χ. με ένα όνομα όπως my\_welcome\_msg. Γυρίστε τώρα στο τερματικό που έχετε ανοιχτό το lilο.conf και γράψτε στο global section την εξής
εγγραφή.

**message**=\.../my\_welcome\_msg όπου έχω τελείες εσείς βάλτε το path για το my\_welcome\_msg π.χ. /boot/my\_welcome\_msg

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

**timeout=** 300

Επειδή όμως και αυτός ο χρόνος είναι μικρός για το επίσης μικρό και νωθρό νευρικό σας σύστημα ας ανατρέξουμε στις παρακάτω ενότητες για να αλλάξουμε και τα
labels και να τα κάνουμε μικρότερα

**label=**l

**label=**w

Αλλά επειδή αν και πτωχοί τω πνεύματι είμαστε ανήσυχοι και διαβάσαμε το άρθρο του φίλου μου Βαγγέλη στο προηγούμενο τεύχος και έχουμε κάνει complile έναν kernel
τον οποίο θέλουμε να δοκιμάσουμε για να καμαρώσουμε τι ωραία και γρήγορα που (δεν) ξεκινάει το μασίνι μας αφού απαντήσαμε αρνητικά σε ότι μας ρώτησε κατά την
διάρκεια του config ας φτιάξουμε και ένα section για το δικό μας kernel που με περηφάνεια ονομάσαμε vmlinuz\_siga\_kai\_8a\_bootarei.

     
    # LILO global section start
    boot=/dev/hda
    message=/boot/my_welcome_msg
    prompt
    timeout=300
    vga = normal                     
    # End LILO global section
    #
    # Linux bootable partition config begins
    image = /boot/vmlinuz
    root = /dev/hda6
    label = l
    # Linux bootable partition config ends
    #
    # Winblows bootable partition config begins    
    other = /dev/hda1
    label = w
    table = /dev/hda
    # Winblows bootable partition config ends
    #
    #to neo section me to kernel poy ftiajame jekina edw
    image= /boot/vmlinuz_siga_kai_8a_bootarei   #elpizw oti to antigrapsate sto /boot
    root = /dev/hda6
    label = l1                                 #elpizw na prolauete na to plhktrologhsete 
    #edw teleiwnoume (ponhroulia mou!) 

Αφού κάναμε τις αλλαγές μας σώζουμε το lilo.conf και περήφανοι για την πρόοδο μας επανεκκινούμε τον κουβά μας, βλέπουμε το LILO prompt και γράφουμε **l**,
πατάμε το enter και παίρνουμε τ\' \_ \_ \_ \_ \_ια μας ,μας λέει ο lilos ότι λέει δεν υπάρχει τέτοιο πράμα. Πατάμε το Tab για να δούμε τι επιλογές έχουμε και τι
θωρούν τα μάτια μας; **linux** και **w95** μα αφού τα αλλάξαμε με τα ίδια τα χεράκια μας , και το καινούριο kernel που είναι; Well αφήστε το linux να μπουτάρει
όσο θα σας εξηγώ.

Όταν μετατρέπουμε το αρχείο lilo.conf πρέπει να εγκαταστήσουμε τον lilo ξανά για να αλλάξουν τα settings του **/boot/map** το οποίο δεν μεταβάλλεται αν δεν
τρέξουμε το :

**/sbin/lilo**

Αφού τώρα το ξέρουμε πάμε να εφαρμόσουμε την γνώση μας. Tο μήνυμα που θα πάρουμε μετά από την εκτέλεση του /sbin/lilo θα είναι

    Added l*
    Added w
    Added l1

Ο αστερίσκος που βλέπετε πλάι στο **l** δείχνει ότι το l είναι το image που θα φορτώσει σε (πολύ) πιθανό timeout . Αν τώρα θέλετε να ξεκινά by default τα
**ΑΚΑΤΑΝΟΜΑΣΤΑ(c)** τότε κάντε σκάντζα το linux section με το Winblows section (το Winblows πρώτο) και ξανατρέξτε το /sbin/lilo, να πάτε τώρα τρέχοντας να
εξομολογηθείτε την αμαρτία σας σ\' ένα παπά (τον αφορισμό τον έχετε σίγουρο, μόνο ο Χριστοδου(λοπου)λος σας σώζει που αυτός όλα τα συγχωρεί). Τέλος πάντων
ξεκινήστε τον κουβά και βλέπουμε.Και τώρα όπως βλέπετε και το μηνυματάκι σας φαίνεται στην οθόνη έναρξης και το νέο kernel δεν μπουτάρει και γενικώς τα κάνατε
θάλασσα.


### [2. Τα αρχεία συστήματος]{#s2}

Τα αρχεία συστήματος είναι κάτι αρχεία τα οποία διαβάζει ο κουβάς μας κατά την διαδικασία εκκίνησης του για να πάρει γενικές κατευθύνσεις και για να ξέρει τι
υπηρεσίες θα ξεκινήσει.Τα αρχεία αυτά θα τα συναντήσετε μέσα στο **/etc** και στα directories των εκάστοτε user (/root , /home/\...).Γενικά οι τροποποιήσεις
αυτών των αρχείων (ειδικά των γενικών αρχείων που βρίσκονται στο **/etc**) κρίνεται απαγορευμένη για μωρά και ηλιθίους αλλά μάλλον -με πάσα επιφύλαξη- εσείς δεν
ανήκετε σε καμμία από τις δύο παραπάνω κατηγορίες.Έχοντας υπ\' όψιν τα παραπάνω λοιπόν συνιστώ ανεπιφύλακτα να κάνετε ένα **backup** των αρχείων πριν ξεκινήσετε
να τα τσακίζετε στις αλλαγές προς το καλύτερο -κούνια που σας κούναγε.

Αρχεία συστήματος στο **LINUX**, λοιπόν, είναι τα κάτωθι

-   **/etc/fstab**
-   **/etc/profile**
-   **/etc/printcap**
-   **/etc/rc.config**
-   **/etc/inittab**
-   **/etc/conf.modules**

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

-   **/etc/DIR COLORS** Αναθέτει τα χρώματα στην εντολή ls
-   **/etc/XF86Config** Το configuration για το παραθυρικό περιβάλλον
-   **/etc/passwd** Πληροφορίες για τους χρήστες (ονόματα, τα shell, τα user ID τους κ.λ.π.)
-   **/etc/shadow** Τα passwords

Φυσικά config file είναι και το lilo.conf αλλά και τα παρακάτω που βρίσκονται στους καταλόγους του κάθε χρήστη (συνήθως /home/{username}).

-   **.profile** το προσωπικό script του κάθε χρήστη (για το **bash**)
-   **.bashrc** το configuration του bash
-   **.xinitrc** Ένα script για να εκκινείτε τα Χ WINDOWS με τα δικά σας γούστα (γραμματοσειρές, προγράμματα που θα ξεκινούν, ο WINDOW MANAGER της αρεσκείας σας
    κ.λ.π).

### [2.1 /etc/fstab]{#ss2.1}

Λοιπόν αυτό το αρχείο είναι ίσως το πιο απλό στο editing αφού διαβάζεται πανεύκολα. Ας εξηγήσουμε όμως τι κάνει.

Με απλά λόγια **καθοδηγεί στην εκκίνηση** το linuxoboxo μας για το τι **filesystems** υπάρχουν στον κουβά μας, για το που γίνονται **mount** και τις
**διαδικασίες ελέγχου** για κάθε ένα απ\' αυτά.

Η μορφή του είναι ως κάτω:

    Συσκευή     mount-point   filesystem-type   mount-options    dumps(backups)     fschk

-   **Συσκευή** . Εδώ ορίζουμε τις συσκευές μας (hard-drives και partitions π.χ. /dev/hda6, floppy-disks π.χ./dev/fd0, cdrom π.χ. /dev/hdc)
-   **mount-point**.Εδώ ορίζουμε κάτω από ποιον κατάλογο θα γίνεται mount η κάθε συσκευή (/ , /usr , /opt , /cdrom , /mnt/floppy κ.λ.π.)
-   **filesystem-type**.Εδώ ορίζουμε το είδος του filesystem για την κάθε συσκευή (ext2 , msdos , vfat , iso9660 , hpfs κ.λ.π.)
-   **mount-options**.Εδώ ορίζουμε με τι επιλογές θα γίνει mount το κάθε σύστημα αρχείων. Αυτό λέει στο σύστημα για το αν το filesystem είναι read-write (rw),
    read-only (ro) κλπ. Συχνά θα συναντήσετε εδώ και τον ορισμό default , αυτό σημαίνει ότι κατά την εκκίνηση θα χρησιμοποιηθούν οι default επιλογές του
    συστήματος για το συγκεκριμένο filesystem-type.
-   **dumps**. Εδώ καλούμαστε να ορίσουμε αν θα ζητήσουμε να γίνει backup της μορφής του filesystem κατά την εκκίνηση.Οι επιλογές είναι δύο α. μηδέν(0) και β.
    ένα (1) .Με μηδέν το filesystem δεν θα γίνει backup. Με ένα (1) θα αναγκάσει να γραφτεί ένα backup του συστήματος.
-   **fschk**. Εδώ ορίζουμε αν θα ελέγχεται η συσκευή για λάθη. Οι επιλογές είναι τρείς. α. Μηδέν (0) δεν γίνεται έλεγχος δηλαδή β. Ένα (1) αφορά το root
    filesystem **(/)** και κάνει ένα εκτεταμένο fschk . γ. Δύο (2) ένα λιγότερο thorough fschk.

```{=markdown}
&nbsp;
```
    Ας δώσουμε όμως και δύο-τρία παραδειγματάκια :
    <p>
    Για ένα filesystem ext2 στο πρώτο partition του πρώτου IDE harddisk που θέλουμε να χρησιμοποιήσουμε σαν root οι εγγραφές στο fstab θα είναι :
    <verb>
    /dev/hda1     /       ext2          default     1    1

Για το δεύτερο partition του δεύτερου δίσκου που κατά τραγική τύχη είναι Fat32 και γίνεται mount στο directory /winblows οι εγγραφές θα είναι:

    /dev/hdb2    /winblows           vfat         default(ή και rw)        0    0

Για ένα cdrom master στον δεύτερο IDE controller που θέλουμε να γίνεται αυτόματα mount στην εκκίνηση στον κατάλογο /mnt/cdrom οι εγγραφές είναι:

    /dev/hdc     /mnt/cdrom        iso9660    ro,auto                     0    0

Αυτά τα ολίγα για το **fstab** και πάμε παρακάτω.

### [2.2 /etc/profile]{#ss2.2}

Το **profile** είναι ένα αρχείο, μα τι αρχείο.Εδώ τα πράγματα μπορεί να είναι εύκολα για τους διαβασμένους έως πολύ δύσκολα για τους αδιάβαστους (σας έστειλα
αδιάβαστους που λέμε). Το profile λοιπόν για να ξέρετε ελέγχει την γενική συμπεριφορά του κελύφους εργασίας μας (κάτι λέγαμε για bash την άλλη φορά, θυμάστε;).

Η δομή του είναι περίπου αυτή που θα είχε και ένα πρόγραμμα της **C**. Από εδώ μέσα ορίζουμε το πως θα συμπεριφέρονται οι μεταβλητές συστήματος , ποια
directories θα είναι μόνιμα στο PATH , που βρίσκονται οι ΜΑΝ σελίδες, τι aliases θα χρησιμοποιηθούν, τι γλώσσα κ.λ.π.

Αυτό που ακολουθεί είναι ένα μικρό δείγμα profile αρχείου . Οι εξηγήσεις για το κάθε τι βρίσκονται στα comments(\#)

     # /etc/profile

    PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin   #καθορίζεται το path για τα εκτελέσιμα αρχεία
    export PATH                                        #γνωστοποιείται στο σύστημα

    export LANG=gr_GR                                  #καθορίζεται η γλώσσα

    LC_ALL=gr_GR         #αλλάζουν όλες οι ρυθμίσεις της γλώσσας και συμβολισμών σε ελληνικά (καθαρά C macro)
    export LC_ALL=gr_GR  #και εδώ γίνονται διαθέσιμες οι νέες ρυθμίσεις στο shell                                    
    export LC_CTYPE=iso-8859_7    #αλλάζουν και καθορίζονται οι λειτουργίες που έχουν να κάνουν με επεξεργασία χαρακτήρων
                                  #σε κωδικοσελίδα iso 8859-7 (ελληνική)                    

    MANPATH=/usr/local/man:/usr/man:/usr/X11R6/man    #καθορίζεται το path για το που βρίσκονται οι man σελίδες
    export MANPATH                                    #γνωστοποιείται στο σύστημα το path των man

    PS1="\t:\W\\"                       #καθορίζεται η πρωτεύουσα συμπεριφορά του shell prompt
    PS2='> '                            #καθορίζεται η δευτερεύουσα συμπεριφορά του shell prompt
    export PS1 PS2                      #γνωστοποιούνται στο σύστημα

    alias ls='ls -l --color=tty '    
    alias dir='ls -l'                    
    alias ll='ls -l'                    #Διάφορα aliases
    alias la='ls -la'                   
    alias l='ls -alF'                   
    alias ls-l='ls -l'                  

    clear                                #καθαρίζει τον buffer από τα μηνύματα

    if   [ -x /tmp/osslinux-3.7.1z/osslinux.runme ] ; then       #κάνει έλεγχο για την ύπαρξη  αρχείου με όνομα osslinux.runme 
       echo "the sound services can be initialized with  **/tmp/osslinux-3.7.1z/osslinux.runme **"     #ειδοποιεί για την ύπαρξη του αρχείου 
    else 
       echo "if you do not have a sound ready kernel compile one"    #αν δεν υπάρχει  ειδοποιεί και προτείνει
    fi 

     

Μέσα στο profile μπορούν να οριστούν εκφράσεις όπως if\...then\.....else , loops και άλλα περίεργα και εντυπωσιακά για καλύτερο έλεγχο και παραμετροποίηση του
συστήματος, αυτό βέβαια απαιτεί από εσάς να μάθετε καλά το πως λειτουργεί το κέλυφος εργασίας.

Όπως θα καταλάβατε το **profile** μπορεί να γίνει a real pain in our ass με την πολυπλοκότητα που μπορεί να λάβει. Μία προσεκτική ανάγνωση στην **man bash** θα
μας διώξει τις πολλές απορίες. Και συνεχίζουμε ακάθεκτοι.

### [2.3 /etc/printcap]{#ss2.3}

Α-χα! εδώ μπαίνουμε στο πιο πονεμένο θέμα για τον στραβόγιαννο χρήστη.**Ο ΕΚΤΥΠΩΤΗΣ ΜΟΥ** και πως αυτός θα δουλέψει. Μεγάλο θέμα και σηκώνει ώρες συζήτησης.
Φυσικά δέν θα σας κάνω την χάρη (εδώ είδα κι έπαθα να κάνω τον δικό μου εκτυπωτή να δουλέψει θα κάνω τον δικό σας;).

Λοιπόν το printcap είναι το αρχείο που διαχειρίζεται τους εκτυπωτές μας. Μέσα απ\' αυτό περιγράφεται η συμπεριφορά του εκτυπωτή, η ονομασία του, το που θα
γίνονται spool τα έγγραφα προς εκτύπωση, το πώς θα μετατραπεί και θα εκτυπωθεί ένα αρχείο που δεν είναι ASCII. Η απλούστερη μορφή του είναι η παρακάτω η οποία
όμως είναι ικανή να τυπώσει μόνο ASCII κείμενο

    # epson colonas pro:      # ονομασία του  printer
    lp:lp=/dev/lp1            # ποια συσκευή είναι  
    :sd=/usr/spool/lp1        #το spool directory
    :sh                       #παράμετρος που εμποδίζει την εκτύπωση του ονόματος του
                              #owner των προς εκτύπωση σελίδων σαν επικεφαλίδα 

Επειδή όμως εσείς δεν θα τυπώσετε μόνο ASCII αλλά όλο και κάποια βρώμικη φωτογραφία θα προσπαθεί να βρει τον δρόμο της προς τον εκτυπωτή σας καλό είναι να
γνωρίζετε ότι υπάρχουν τα λεγόμενα φίλτρα τα οποία αναλαμβάνουν να περιγράψουν στον εκτυπωτή αυτό που του στέλνετε (γυμνή, ψηλή, ξανθιά με πλούσια προσόντα
κ.λ.π.) ώστε το αποτέλεσμα να είναι το αναμενόμενο και ουχί ακαταλαβίστικοι χαρακτήρες που γεμίζουν τις σελίδες σας.\
Μία ματιά στην **man printcap** και στο **THE LINUX PRINTING HOWTO** θα σας διαφωτίσει για το πώς θα εγκαταστήσετε διάφορα φίλτρα εκτύπωσης. Οι περισσότερες
distributions πάντως έχουν και κάποια φίλτρα για εκτυπωτές. Η RH έχει τα redhat print filters τα οποία μπορείτε να εγκαταστήσετε μέσω του printool. Αντίστοιχα η
SUSE έχει τα apsfilters τα οποία μπορείτε να εγκαταστήσετε μέσω του yast, ενώ επίσης μπορείτε να βρείτε και commercial φίλτρα στο διαδίκτυο.

### [2.4 /etc/rc.config]{#ss2.4}

Εδώ έχομεν το αρχείο το οποίο είναι υπεύθυνο για την έναρξη των δαιμόνων (daemons) για την επιλογή της ρύθμισης γλώσσας, της χρησιμοποιούμενης γραμματοσειράς
για την έναρξη και το σετάρισμα των υπηρεσιών δικτύου και άλλων όμορφων και χορταστικών πραγμάτων.Ένα πολύ μικρό δείγμα rc.config είναι και το ακόλουθο

    MOUSE="/dev/psaux" #που βρίσκεται το mouse
    MODEM="/dev/ttyS2" #που βρίσκεται το modem
    KEYTABLE="us.map.gz"#το console map για τους χαρακτήρες 
    CONSOLE_FONT="8x14alt"#τίθεται το font της κονσόλας
    KBD_NUMLOCK="yes"#αν το numlock θα είναι on κατά την εκκίνηση
    KBD_CAPSLOCK="no"#αν το capslock θα είναι on 
    TIMEZONE="Europe/Athens"#ρυθμίσεις ώρας  (/usr/lib/zoneinfo/localtime)
    START_LOOPBACK="yes"έναρξη μίας εικονικής υπηρεσίας δικτύου (χρήσιμη για την λειτουργία εκτυπωτή) 
    NETCONFIG=""#configuration για LAN και δίκτυα γενικά
    IPADDR_0=""
    IPADDR_1=""
    IPADDR_2=""
    IPADDR_3=""
    NETDEV_0="ppp0"#το όνομα του πρωτοκόλλου (συσκευής) δικτύου που μπορεί να ενεργοποιηθεί
    NETDEV_1="eth0"
    NETDEV_2=""
    NETDEV_3=""
    SETUPDUMMYDEV=yes#dummy net device χρειάζεται για σύνδεση με ppp (internet)
    FQHOSTNAME="1.local"#το hostname (από το /etc/hosts)
    NAMESERVER="193.91.1.1"το DNS του server που επιχειρεί πρώτη σύνδεση (εδώ της forthnet)
    START_KERNELD="yes"#εκκίνηση του kernel daemon
    START_GPM="yes"εκκίνηση του gpm για την υποστήριξη mouse σε τερματικό
    GPM_PARAM=" -t ps2 -m /dev/mouse"#παράμετροι για το mouse και το gpm
    START_LPD=yes#εκκίνηση του printer daemon

Όπως καταλαβαίνετε το rc.config είναι το βασικό αρχείο συστήματος το οποίο και διαβάζουν τα scripts κατά την εκκίνηση του Linux για να πληροφορηθούν για την
μορφή που πρέπει να πάρει το σύστημα.Μην το αλλάζετε εκτός και αν ξέρετε πολύ καλά τι κάνετε.

### [2.5 /etc/inittab]{#ss2.5}

Είναι ένα μάλλον απλό αρχείο του οποίου η σημασία όμως είναι πολύ μεγάλη και για να καταλάβουμε πως λειτουργεί θα πρέπει να πούμε μερικά πράγματα για την
**/sbin/init** και τι κάνει.

Λοιπόν αυτή η init καθορίζει την συμπεριφορά του μηχανήματος . Όλοι φαντάζομαι έχετε δώσει κάποια από τις εντολές reboot, halt, shutdown κλπ, λοιπόν το τί θα
κάνουν αυτές καθορίζεται από τα init scripts που βρίσκονται στο **/sbin/init.d** και τα οποία διαβάζει η init η οποία είναι και το πρώτο πράγμα που φορτώνει ο
kernel στην εκκίνηση για να ελέγξει τις processes που θα εκκινηθούν. Φαίνεται απλό ε; Ε λοιπόν δεν είναι, αφού στο Linux υπάρχουν διάφορα επίπεδα κάτω από τα
οποία μπορεί να τρέξει. Αυτά χαρακτηρίζονται από ένα αριθμό (αν παρατηρήσετε τα μηνύματα στην εκκίνηση θα δείτε που εκκινεί κάθε run-level και πιο είναι το
τελευταίο που χρησιμοποιείται ).

Ένας πίνακας με τα run-levels παρατίθεται εδώ (με πάσα επιφύλαξη για τα του red hat)

    SUSE
    0 halt
    S single user
    1 multi-user χωρίς δίκτυο 
    2 multi-user με δίκτυο
    3 multi-user με δίκτυο και γραφικό login (xdm ή kdm καθορίζεται στο rc.config μαζί με τον window manager)
    6 reboot

    RED HAT
    0 halt
    1 single user
    2 multi user χωρίς network
    3 full multi-user
    5 γραφικό login όλες οι υπηρεσίες
    6 reboot

Έσείς προφανώς με όποια distribution και αν δουλεύετε σε full multi - user περιβάλλον θα κάνετε login.

Και φτάνουμε τώρα στο inittab το οποίο καθορίζει την συμπεριφορά της init και των ενεργειών που θα γίνουν σε κάθε runlevel. Παρακάτω ένα inittab με τα σχόλια
του.

    # /etc/inittab
    id:2:initdefault: #Έδω καθορίζετε ως default runlevel το 2 (#suse multiusr+network)

    si:I:bootwait:/sbin/init.d/boot #το πρώτο script που διαβάζει (αυτό που ξεκινά τον 
                                    #kerneld για τα modules 
                                    # ενεργοποιεί το swap ,κάνει fschk κ.λ.π.)

    l0:0:wait:/sbin/init.d/rc 0  #
    l1:1:wait:/sbin/init.d/rc 1  #ΕΝΤΟΛΕΣ ΓΙΑ ΚΑΘΥΣΤΕΡΗΣΗ ΣΤΗΝ ΜΕΤΑΒΑΣΗ ΤΩΝ
    l2:2:wait:/sbin/init.d/rc 2  #RUN-LEVELS ΓΙΑ ΝΑ ΓΙΝΟΥΝ MOUNT ΤΑ FILESYSTEMS
    l3:3:wait:/sbin/init.d/rc 3  #
    l6:6:wait:/sbin/init.d/rc 6  #

    ls:S:wait:/sbin/init.d/rc S   #οδηγίες για περίπτωση που θα μεταβούμε
    ~~:S:respawn:/sbin/sulogin    #σε single user mode (κατι ανάλογο με safe mode)

    ca::ctrlaltdel:/sbin/shutdown -r -t 4 now #η συμπεριφορά του three finger salute 
                                              #(for those about to rock  We salute you)
                                                                     

Για να καταλάβετε καλύτερα πως λειτουργεί η **init** και το **inittab** καλό θα ήταν να ρίξετε μια ματιά στα script που βρίσκονται στο **/sbin/init.d** και
στους υποκαταλόγους του (rc0.d ,rc2.d κλπ) αλλά και στην **man init**

### [2.6 /etc/conf.modules]{#ss2.6}

Εδώ δεν έχουμε και πολλά να πούμε γιατί το αρχείο αυτό το μόνο πράγμα που περιέχει είναι οι ρυθμίσεις αυτών των κομματιών του hardware που ξεκινάνε με το
kerneld τον daemon δηλαδή που φορτώνει τα modules (ας πούμε drivers που φορτώνονται και ξεφορτώνονται δυναμικά) και επίσης aliases δηλαδή μετονομασίες των
modules π.χ. **alias ppp0 ppp** ή **alias iso9660 isofs** . Οι ρυθμίσεις τώρα που αναφέρονται στα modules έχουν να κάνουν με διευθύνσεις **io** και τα **irq**.
Ένα αρχείο λοιπόν που μάλλον δεν θα το αγγίξετε ποτέ αλλά μόνο για να διαγράψετε κάνα δυο comments από συσκευές που θέλετε να φορτώνουν αυτόματα μετά από κάποιο
επιτυχημένο (θα περάσουν χρόνια) kernel compilation που θα κάνετε.

### [2.7 Τα αρχεία autoexec.bat και config.sys]{#ss2.7}

Καλά μεγάλε άμα δεν τα ξέρεις αυτά τα αρχεία έπαιξες και έχασες. Μη με ρωτάς καθόλου γιατί. Θα έπρεπε να ξέρεις.Τέλος πάντων ας σας εξηγήσω λίγα πράγματα γι\'
αυτά. Είναι αρχεία που ασχολούνται με το φόρτωμα των απαιτούμενων drivers, που καθορίζουν τα path των εκτελέσιμων (στο dos) και άλλα χορταστικά .Στο **LINUX**
εμφανίζονται με ενιαία μορφή που είναι η παρακάτω.

    #autoexec.bat
    #config.sys
    set path=/read_my_lips/den_yparxoun_tetoia_arxeia_sto_linux_ma_ _ka/ 
    fi

Αυτή η τελευταία παράγραφος αφιερώνεται σ\' αυτόν που μου ζήτησε αυτά τα αρχεία από το linuxoboxo μου γιατί λέει δεν μπορούσε να κάνει δουλειά με τα δικά του
και το linux του δεν ξεκινούσε (ήταν και γιατρός πανάθεμα τον -ψυχίατρος βέβαια).

Ξεκαθαρίζουμε λοιπόν. **ΔΕΝ ΥΠΑΡΧΟΥΝ ΑΡΧΕΙΑ CONFIG.SYS ΚΑΙ AUTOEXEC.BAT ΣΤΟ LINUX**. 'ντε πια με τρελλάνατε. (Το παραπάνω περιστατικό είναι πέρα για πέρα
αληθινό και συνέβη αρχές Φεβρουαρίου, μάρτυς η γυναίκα μου).


### [3. Επίλογος (άντε γιατί βαρεθήκαμε).]{#s3}

Και αφού διαβάσαμε εδώ για όλα αυτά τα περίεργα και μάλλον δύσκολα -για αρχάριους-, ας παινέψουμε και λίγο το linuxακι μας και την βαβούρα του.Well well τι
μπορούμε να πούμε ,τι strings μπροστά στα πόδια μας, τι παράμετροι συσκευών, τι επικοινωνία με το μηχάνημα. Πείτε μου βρε άθλιοι είδατε πουθενά στα
ΑΚΑΤΑΝΟΜΑΣΤΑ(c) τόση γνώση για τις διεργασίες και τα εσωτερικά της λειτουργίας του κουβά σας; Εδώ με το linux έχει αρχίσει το μυαλό και ξυπνάει που είχε
καταντήσει σαν την βιοχλαπάτσα με όλα αυτά τα λειτουργικά που κάτω από ένα πέπλο μυστικότητας τα έκαναν όλα. Εδώ τα πάντα είναι παραμετροποιήσημα , η
επικοινωνία με τις συσκευές διαφανής και στα χέρια του χρήστη (μέχρι καφέ μπορείτε να φτιάξετε με το linuxακι σας).

Να θυμίσω ότι στα τεύχη [08/98](../08/05_bash1.html) και [09/98](../09/06_bash2.html) ο φίλος μου Βαγγέλης έγραψε δύο υπέροχα άρθρα (ούτε καν τα διάβασα) για το
bash και πως θα δουλέψουμε παραγωγικότερα μαζί του. Αξίζει να τους ρίξετε μία ματιά αφού μου φαίνεται πως είναι το μοναδικό documentation για το bash στα
ελληνικά. Καλό διάβασμα λοιπόν και φρόνιμα.

    Σημειώνω ότι τα scripts που δίνονται εδώ σαν παραδείγματα, δεν είναι ολοκληρωμένα ούτε, απαραίτητα, λειτουργικά. Ένα copy και paste δεν θα σας σώσει δηλαδή από την διαδικασία του scripting για να βάλετε ελληνικά ή για να κάνετε το Linux σας να αναγνωρίζει τον καινούργιο δίσκο του. 

    the expression ΑΚΑΤΑΝΟΜΑΣΤΑ(c) is a copyright of Papadogiannakis Vaggelis. 

