Next Previous Contents

4. Αρχεία και Προγράμματα

4.1 Αρχεία: Εισαγωγικά Θέματα

Η δομή των αρχείων και καταλόγων του Linux είναι αρκετά παρόμοια με αυτήν του DOSWin. Τα αρχεία έχουν ονόματα που υπόκεινται σε ορισμένους κανόνες, φυλάσσονται σε καταλόγους, κάποια είναι εκτελέσιμα και μεταξύ των εκτελεσίμων κάποια έχουν διακόπτες (switches) ως εντολές. Επιπλέον, μπορείτε να χρησιμοποιείτε χαρακτήρες μπαλαντές (wildcard), ανακατεύθυνσης (redirection) και piping. Υπάρχουν μόνο κάποιες μικρές διαφορές:

Μπορείτε τώρα να μεταφερθείτε στην ενότητα Μετάφραση εντολών από το DOS στο Linux, στη θέση σας όμως θα διάβαζα κι άλλο.

4.2 Συμβολικοί δεσμοί

Στο UNIX υπάρχει ένα είδος αρχείων που δεν υπάρχει στο DOS: ο συμβολικός δεσμός (symbolic link). Αυτό μπορεί να θεωρηθεί ως δείκτης προς ένα αρχείο ή έναν κατάλογο, και μπορεί να χρησιμοποιείται αντί για το δεικνυόμενο· είναι παρόμοιο με τις συντομεύσεις των Windows. Παραδείγματα συμβολικών δεσμών είναι το /usr/X11, που δείχνει στο /usr/X11R6· το /dev/modem, που δείχνει είτε στο /dev/ttyS0 ή στο /dev/ttyS1.

Για να φτιάξετε έναν συμβολικό δεσμό:

$ ln -s <arxeio_h_katalogos> <onoma_desmou>

Παράδειγμα:

$ ln -s /usr/doc/g77/DOC g77manual.txt

Τώρα μπορείτε να αναφέρεστε στο g77manual.txt αντί για το /usr/doc/g77/DOC. Οι δεσμοί φαίνονται έτσι στην έξοδο του ls :

$ ls -F
g77manual.txt@
$ ls -l
(diafora_pragmata...)           g77manual.txt -> /usr/doc/g77/DOC

4.3 Δικαιώματα και Ιδιοκτησίες

Τα αρχεία και οι κατάλογοι στο DOS έχουν τα ακόλουθα χαρακτηριστικά (attributes): A (archive, αρχεία), H (hidden, κρυφά), R (read-only, μόνο για ανάγνωση), and S (system, συστήματος). Μόνον τα H και τα R έχουν νόημα στο Linux: τα κρυφά αρχεία ξεκινούν με μία τελεία, όσο για το attribute R, διαβάστε κι άλλο.

Στο UNIX ένα αρχείο έχει «δικαιώματα» (permissions) και έναν ιδιοκτήτη (owner), ο οποίος με τη σειρά του ανήκει σε μία «ομάδα» (group). Δείτε το παράδειγμα:

$ ls -l /bin/ls
-rwxr-xr-x  1  root  bin  27281 Aug 15 1995 /bin/ls*

Το πρώτο πεδίο περιέχει τα δικαιώματα του αρχείου /bin/ls, που ανήκει στον root, ομάδα bin. Αφήνοντας τις υπόλοιπες πληροφορίες που δίνει η εντολή, στεκόμαστε στη σημασία του -rwxr-xr-x από αριστερά προς τα δεξιά:

- είναι το είδος του αρχείου (- = κανονικό αρχείο, d = κατάλογος, l = δεσμός, κλπ)` rwx είναι τα δικαιώματα του ιδιοκτήτη του αρχείου (owner) και είναι(read=ανάγνωση, write=εγγραφή, execute=εκτέλεση)· r-x είναι τα δικαιώματα της ομάδας (group) του ιδιοκτήτη (owner) του αρχείου και είναι (read=ανάγνωση, execute=εκτέλεση)· (Δε θα καλύψω την έννοια της ομάδας, θεωρώ ότι μπορείτε να κάνετε και χωρίς αυτήν, εφ' όσον είστε αρχάριοι ;-) και r-x είναι τα δικαιώματα για όλους τους άλλους χρήστες (read=ανάγνωση, execute=εκτέλεση).

Ο κατάλογος /bin έχει επίσης δικαιώματα: δείτε στην ενότητα Directories Permissions για περαιτέρω πληροφορίες. Γι' αυτό δεν μπορείτε να διαγράψετε το αρχείο /bin/ls παρά μόνο αν είστε root: δεν έχετε το δικαίωμα (permission) να το κάνετε. Για να αλλάξετε τα δικαιώματα ενός αρχείου, η εντολή είναι:

$ chmod <whoXperm> <file>

όπου who είναι u (user=χρήστης, είναι ο ιδιοκτήτης), g (group=ομάδα), o (other=άλλοι), X είναι είτε + ή -, perm είναι r (read=ανάγνωση), w (write=εγγραφή), or x (execute=εκτέλεση). Κάποια παραδείγματα της χρήσης της chmod είναι τα ακόλουθα:

$ chmod +x file

αυτό θέτει το δικαίωμα εκτέλεσης για το αρχείο.

$ chmod go-rw file

αυτό αφαιρεί τα δικαιώματα ανάγνωσης και εγγραφής για όλους, πλην του ιδιοκτήτη.

$ chmod ugo+rwx file

αυτό δίνει σε όλους (χρήστη, ομάδα, άλλους) δικαιώματα ανάγνωσης, εγγραφής και εκτέλεσης.

# chmod +s file

αυτό φτιάχνει ένα αρχείο «setuid» ή «suid» --- ένα αρχείο που μπορούν όλοι να εκτελέσουν, με τα δικαιώματα του ιδιοκτήτη του. Θα συναντήσετε αρκετά suid αρχεία του root· αυτά είναι συνήθως σημαντικά αρχεία του συστήματος, όπως ο X server.

Ένας πιο σύντομος τρόπος για να αναφερθεί κανείς στα δικαιώματα είναι με αριθμητικά ψηφία: Το rwxr-xr-x μπορεί να εκφραστεί ως 755 (κάθε γράμμα αντιστοιχεί σε έναν αριθμό: το --- είναι 0, το --x είναι 1, το -w- είναι 2, το -wx είναι 3...). Δείχνει δύσκολο, αλλά με λίγη εξάσκηση θα καταλάβετε την έννοια. Ο root, όντας ο «υπερχρήστης» μπορεί να αλλάξει τα δικαιώματα των αρχείων όλων των χρηστών. RMP.

4.4 Αρχεία: Μεταφράζοντας εντολές

Αριστερά βρίσκονται οι εντολές του DOS· δεξιά οι αντίστοιχες για το Linux.

ATTRIB:         chmod
COPY:           cp
DEL:            rm
MOVE:           mv
REN:            mv
TYPE:           more, less, cat

Τελεστές ανακατεύθυνσης (redirection) και plumbing: < > >> |

Χαρακτήρες Μπαλαντέρ: * ?

nul: /dev/null

prn, lpt1: /dev/lp0 ή /dev/lp1; lpr

Παραδείγματα

DOS                                     Linux
---------------------------------------------------------------------

C:\NIKOS>ATTRIB +R FILE.TXT             $ chmod 400 file.txt
C:\NIKOS>COPY JOE.TXT JOE.DOC           $ cp joe.txt joe.doc
C:\NIKOS>COPY *.* TOTAL                 $ cat * > total
C:\NIKOS>COPY FRACTALS.DOC PRN          $ lpr fractals.doc
C:\NIKOS>DEL TEMP                       $ rm temp
C:\NIKOS>DEL *.BAK                      $ rm *~
C:\NIKOS>MOVE PAPER.TXT TMP\            $ mv paper.txt tmp/
C:\NIKOS>REN PAPER.TXT PAPER.ASC        $ mv paper.txt paper.asc
C:\NIKOS>PRINT LETTER.TXT               $ lpr letter.txt
C:\NIKOS>TYPE LETTER.TXT                $ more letter.txt
C:\NIKOS>TYPE LETTER.TXT                $ less letter.txt
C:\NIKOS>TYPE LETTER.TXT > NUL          $ cat letter.txt > /dev/null
        n/a                             $ more *.txt *.asc
        n/a                             $ cat section*.txt | less

Σημειώσεις:

4.5 Εκτέλεση Προγραμμάτων: Πολυδιεργασία και Συνεδρίες (Sessions)

Για να τρέξετε ένα πρόγραμμα πληκτρολογείστε το όνομά του όπως θα κάνατε και στο DOS. Αν ο κατάλογος (Ενότητα Χρήση Καταλόγων) που είναι εγκατεστημένο το πρόγραμμα περιέχεται στο the PATH (Section Αρχεία Αρχικοποίησης (Initialisation) Συστήματος), το πρόγραμμα θα ξεκινήσει. Εξαίρεση: Εν αντιθέσει προς το DOS, στο Linux ένα πρόγραμμα που περιέχεται στον τρέχοντα κατάλογο δε θα τρέξει, εκτός αν ο κατάλογος περιέχεται στο PATH. Λύση: αν το πρόγραμμα είναι prog πληκτρολογείστε ./prog.

Η συνήθης γραμμή εργαλείων είναι κάπως έτσι:

$ command [-s1 [-s2] ... [-sn]] [par1 [par2] ... [parn]] [< input] [> output]

όπου -s1, ..., -sn είναι οι διακόπτες της εντολής, par1, ..., parn είναι οι παράμετροι του προγράμματος. Μπορείτε να χρησιμοποιήσετε περισσότερες της μίας εντολές στην γραμμή εντολών:

$ command1 ; command2 ; ... ; commandn

Αυτά έχω να πω για το τρέξιμο προγραμμάτων, είναι όμως πολύ απλό να πούμε κάτι περισσότερο. Ένας από τους βασικούς λόγους για τη χρήση του Linux είναι το γεγονός ότι πρόκειται για ένα πολυδιεργασιακό Λ.Σ., δηλαδή ότι μπορεί να τρέχει περισσότερα του ενός προγράμματα (εφ' εξής διαδικασίες (processes) ταυτοχρόνως). Μπορείτε να ξεκινάτε διαδικασίες στο περιθώριο (background) συνεχίζοντας να εργάζεστε όπως πριν. Επιπλέον, στο Linux μπορείτε να έχετε πολλές συνεδρίες: είναι σαν να έχετε πολλούς υπολογιστές να λειτουργούν ταυτοχρόνως!

Χρήσει αυτών των εντολών μπορείτε να διαμορφώσετε ένα δίσκο, να συμπιέσετε ένα πλήθος αρχείων, να μεταγλωττίσετε ένα πρόγραμμα και να αποσυμπιέσετε ένα συμπιεσμένο αρχείο ταυτοχρόνως, έχοντας ακόμη το prompt στη διάθεσή σας! Δοκιμάστε να το κάνετε αυτό και στα Windows και δείτε την διαφορά αποδόσεως (εφ' όσον δεν κολλήσουν....).

4.6 Εκτέλεση Προγραμμάτων σε Απομακρυσμένους Υπολογιστές.

Για να τρέξετε ένα πρόγραμμα σε έναν απομακρυσμένο υπολογιστή ονόματι remote.machine.edu:

$ telnet remote.machine.edu

Αφού κάνετε log in, ξεκινήστε το αγαπημένο σας πρόγραμμα. Εννοείτε πως θα πρέπει να έχετε λογαριασμό κελύφους (shell account) στον απομακρυσμένο υπολογιστή.

Αν έχετε X11, μπορείτε να τρέξετε και εφαρμογές X από απομακρυσμένους υπολογιστές, κάνοντάς τις να φαίνονται στην οθόνη του προσωπικού σας υπολογιστή. Έστω remote.machine.edu το απομακρυσμένο σύστημα και local.linux.box το Linuxόκουτό σας. Για να τρέξετε από το local.linux.box μία εφαρμογή Χ ευρισκόμενη στο remote.machine.edu, κάντε τα παρακάτω:

Et voila! Το progname θα ξεκινήσει στον remote.machine.edu και θα φαίνεται στον υπολογιστή σας. Καλύτερα να μην το χρησιμοποιήσετε όμως με σύνδεση μέσω modem, γιατί θα είναι εξαιρετικά αργό και άρα όχι ιδιαίτερα χρήσιμο.. Επιπλέον, είναι μία άξεστη και ανασφαλής μέθοδος: καλύτερα διαβάστε το «Remote X Apps mini-HOWTO» στη διεύθυνση http://sunsite.unc.edu/LDP/HOWTO/mini/Remote-X-Apps.


Next Previous Contents