Ελληνικό From DOS/Windows to Linux HOWTO <author>Υπό Guido Gonzato, <url url="guido@ibogeo.df.unibo.it"> Μετάφραση: Νίκος Θεοδώρου, <url url="ntheo@math.auth.gr"> <date>v1.3.2, 22 Φεβρουαρίου 1999 <abstract> Αυτό το HOWTO είναι αφιερωμένο σε όλους τους (συντόμως πρώην;) χρήστες του DOS και των Windows που αποφάσισαν να στραφούν στο Linux, τον ελεύθερο κλώνο του UNIX. Ο σκοπός του κειμένου αυτού είναι να βοηθήσει τον αναγνώστη να μεταφέρει τις γνώσεις του από το DOS και τα Windows στο περιβάλλον του Linux, καθώς επίσης και να προσφέρει ιδέες για την ανταλλαγή αρχείων και πηγών μεταξύ των δύο Λειτουργικών Συστημάτων. </abstract> <toc> <sect> Εισαγωγή <p> <sect1> Είναι το Linux κατάλληλο για εσάς; <p> Σκέφτεστε να αλλάξετε από τον κόσμο του DOS (αυτός ο ορισμός καλύπτει και τα Windows) στο Linux; Καλή ιδέα: το Linux είναι τεχνικώς ανώτερο του DOS, των Windows 9x και ακόμη και των Windows NT. Προσοχή όμως: ίσως να μην είναι χρήσιμο για εσάς. Αυτές είναι οι βασικές διαφορές μεταξύ των DOS/Windows και του Linux: <itemize> <item> Τα Windows τρέχουν το Microsoft Office και πολλά παιχνίδια. Θεωρούνται εύκολα στην εγκατάσταση και τις ρυθμίσεις. Είναι εξαιρετικά ασταθή. Λειτουργούν φτωχά. Κολλάνε συχνά. <item> Το Linux τρέχει το StarOffice, έχει πολύ τεχνικό λογισμικό και λιγότερα παιχνίδια. Μπορεί να φανεί δύσκολο στην εγκατάσταση και τις ρυθμίσεις. Είναι σταθερό σαν βράχος. Λειτουργεί εξαιρετικά. Κολλάει πολύ σπάνια. </itemize> Εξαρτάται από εσάς να αποφασίσετε τί χρειάζεστε. Επιπλέον, το Linux σας δίνει δύναμη, αλλά σας παίρνει αρκετό χρόνο μέχρι να μάθετε πώς να τη χρησιμοποιείτε. Επίσης, αν χρησιμοποιείτε κυρίως εμπορικό λογισμικό, ή δεν έχετε όρεξη να μάθετε νέες εντολές και διαδικασίες, καλύτερα ψάξτε σε άλλα λειτουργικά. Έχετε υπ' όψη ότι πολλά άτομα που αποφασίζουν να ασχοληθούν με το Linux τα παρατούν, λόγω των δυσκολιών στην αρχή. Το Linux γίνεται ολοένα απλούστερο στη χρήση, όμως <em/μην περιμένετε να μάθετε να το χρησιμοποιείτε τέλεια προτού διαβάσετε πολύ και το έχετε χρησιμοποιήσει για τουλάχιστον μερικούς μήνες/. Το Linux δε δίνει άμεσα αποτελέσματα. Παρ' όλες αυτές τις προειδοποιήσεις όμως είμαι 100% σίγουρο; ότι με το Linux θα βρείτε τον Παράδεισο για τον υπολογιστή σας. Επ' ευκαιρίας, υπενθυμίζω ότι Linux + DOS/Win μπορούν να συνυπάρχουν άνετα στον ίδιο υπολογιστή. Προϋποθέσεις γι' αυτό το howto: Υποθέτω ότι <itemize> <item> γνωρίζετε τις βασικές εντολές και διεργασίες του DOS, <item> έχετε εγκατεστημένο στον υπολογιστή σας το Linux, <item> πιθανώς με το X Window System (για συντομία X11), <item> το κέλυφος (το αντίστοιχο του <tt/COMMAND.COM/) είναι το <tt/bash/. </itemize> Εκτός αν αναφερθεί διαφορετικά, όλες οι πληροφορίες που παρατίθενται αναφέρονται στο παλιό κακό DOS. Σε κάποια σημεία υπάρχουν πληροφορίες και για τα Windows here and there, έχετε όμως υπ' όψη ότι τα Windows και το Linux είναι εντελώς διαφορετικά, σε αντίθεση με το DOS που είναι κάτι σαν ένας φτωχός συγγενής του UNIX. Επίσης έχετε υπ' όψη ότι αυτή η δουλειά δεν είναι ένας πλήρης οδηγός, ούτε καν οδηγός για αρχαρίους! Η τελευταία έκδοση αυτού του κειμένου βρίσκεται σε διάφορες μορφές στο <url url="ftp://sunsite.unc.edu:/pub/Linux/docs/howto">. <sect1> Είναι. Πείτε μου περισσότερα. <p> Εγκαταστήσατε το Linux και τις εφαρμογές που χρειαζόσασταν στον υπολογιστή σας. Φτιάξατε έναν λογαριασμό για τον εαυτό σας (αν όχι γράψτε <tt/adduser toonomasas/ <em/τώρα!/ και το Linux λειτουργεί. Δώσατε το όνομα χρήστη και τον κωδικό σας, και τώρα κοιτάτε την οθόνη σκεπτόμενος «τώρα;». Μην απογοητεύεστε..... είστε σχεδόν έτοιμος να κάνετε ό,τι κάνατε και στα DOS/Win, και πολλά ακόμη. Αν χρησιμοποιούσατε τα DOS/Win θα κάνατε κάτι από τα παρακάτω: <itemize> <item> θα τρέχατε προγράμματα και θα δημιουργούσατε, αντιγράφατε, βλέπατε, διαγράφατε, τυπώνατε, μετονομάζατε αρχεία· <item> κατασκευάζατε, διαγράφατε καταλόγους, θα αλλάζατε μεταξύ καταλόγων και θα βλέπατε τα περιεχόμενά τους· <item> θα διαμορφώνατε δισκέτες και θα αντιγράφατε αρχεία από και προς αυτές· <item> θα ρυθμίζατε το σύστημα· <item> θα «σερφάρατε» στο Διαδίκτυο· <item> θα γράφατε αρχεία .BAT και προγράμματα στην αγαπημένη σας γλώσσα· <item> το υπόλοιπο 1% </itemize> Θα σας ενδιαφέρει να μάθετε ότι αυτές οι λειτουργίες μπορούν και γίνουν και στο Linux με τρόπο παρόμοιο με αυτόν του DOS. Στο DOS ο μέσος χρήστης χρησιμοποιεί ελάχιστες από τις 100 και πλέον διαθέσιμες εντολές· το ίδιο, μέχρι ενός σημείου, συμβαίνει και στο Linux. <sect2> Εισαγωγικά Θέματα <p> Ο καλύτερος τρόπος να μάθετε κάτι νέο είναι να λερώσετε τα χέρια σας. Στον κόσμο του Linux ενθαρρύνεσθε να πειραματιστείτε και να «παίξετε» με το λειτουργικό, γιατί εκτός κι αν μπείτε στο σύστημα (login) ως «root», δεν μπορείτε να κάνετε κανένα κακό. Κάποια σημεία: <itemize> <item> κατ' αρχάς, πώς να κλείσετε το Linux με ασφάλεια: Αν δείτε μια οθόνη κειμένου, πατήστε <CTRL-ALT-DEL>, περιμένετε να επανεκκινήσει το σύστημα (reboot) και μετά κλείστε τον υπολογιστή. Αν δουλεύετε υπό το X Window System, πατήστε <CTRL-ALT-BACKSPACE> πρώτα, και μετά <CTRL-ALT-DEL>. <em/Ποτέ/ μη σβήνετε ή επανεκκινείτε τον υπολογιστή απ' ευθείας: αυτό μπορεί να βλάψει το σύστημα αρχείων (file system)· <item> αντίθετα με το DOS και Windows, το Linux έχει εξαρχής μηχανισμούς ασφαλείας. Τα αρχεία και οι κατάλογοι έχουν δικαιώματα (permissions) σχετισμένα με αυτά. Κατά συνέπεια, κάποια αρχεία - κατάλογοι Δε μπορούν να προσπελαστούν από τον απλό χρήστη· (βλέπε <ref id="Permissions" name="Δικαιώματα και Ιδιοκτησίες">). Το DOS και τα Windows, αντιθέτως, θα σας αφήσουν να σβήσετε όλα τα περιεχόμενα του σκληρού σας δίσκου` <item> υπάρχει ένας ειδικός χρήστης που λέγεται «root»: είναι ο διαχειριστής του συστήματος, με δικαιώματα ζωής και θανάτου επί του υπολογιστή. Αν εργάζεστε στο δικό σας υπολογιστή, θα είστε και root. Είναι γενικά <em/επικίνδυνο/: καθώς το παραμικρό λάθος μπορεί να βλάψει σοβαρά ή και να καταστρέψει το σύστημα, όπως ακριβώς και στα DOS/Win. Μη δουλεύετε ως root εκτός κι αν είναι απολύτως απαραίτητο· <item> πολλή από την πολυπλοκότητα του Linux οφείλεται στην υψηλή παραμετροποίησή του. Σχεδόν κάθε ιδιότητα και κάθε πρόγραμμα που τρέχει σε Linux μπορεί να ρυθμιστεί μέσω ενός ή περισσοτέρων αρχείων ρυθμίσεων. Η πολυπλοκότητα είναι το τίμημα της ισχύος· <item> η ανακατεύθυνση (redirection) και το piping είναι μία λειτουργία του DOS, πολύ σημαντική και πολύ πιο δυνατή στο Linux. Απλές εντολές μπορούν να ενωθούν, ώστε να επιτύχουν πιο πολύπλοκα έργα. Προτείνω να μάθετε πολύ καλά πως να τα χρησιμοποιείτε. </itemize> <sect2> Πού θα βρείτε βοήθεια <p> Υπάρχουν πάρα πολλοί τρόποι να βρείτε βοήθεια για το Linux. Οι σημαντικότεροι είναι: <itemize> <item> <em/να διαβάσετε την υπάρχουσα τεκμηρίωση/---και το εννοώ! Παρ' ότι αυτό το HOWTO που διαβάσετε μπορεί να χρησιμεύσει ως μία εισαγωγή στο Linux, υπάρχουν αρκετά βιβλία που καλόν είναι να διαβάσετε: το «Linux Installation and Getting Started» του Matt Welsh (<url url="http://sunsite.unc.edu/mdw/LDP/gs/gs.html">), το «Linux User Guide» του Larry Greenfield (<url url="ftp://sunsite.unc.edu/pub/Linux/docs/linux-doc-project/users-guide">), και το FAQ του Linux (<url url="http://sunsite.unc.edu/mdw/FAQ/Linux-FAQ.html">). Να νιώθετε λιγάκι ένοχος έως ότου διαβάσετε τουλάχιστον ένα από αυτά! <item> η τεκμηρίωση των ήδη εγκατεστημένων πακέτων συχνά βρίσκεται σε υποκαταλόγους του <file>/usr/doc/</file>· <item> για να πάρετε βοήθεια σχετικώς με τις «εσωτερικές εντολές» του κελύφους, γράψτε <tt/help/ ή, καλύτερα, <tt/man bash/ ή <tt/info bash/· <item> για βοήθεια σε κάποια εντολή, γράψτε <tt/man εντολή/ που επικαλείται τη σελίδα εγχειριδίου (man page) της <tt/εντολή/. Εναλλακτικά, γράψτε <tt/info εντολή/ που επικαλείται, εάν υπάρχει, τη σελίδα πληροφοριών (info page) της <tt/εντολή/· πρόκειται για ένα σύστημα τεκμηρίωσης σε υπερκείμενο (hypertext) ίσως όχι φιλικό για χρήση στην αρχή. Τέλος, μπορείτε να χρησιμοποιήσετε τα <tt/apropos εντολή/ ή <tt/whatis εντολή/. Σε κάθε περίπτωση, πατήστε `q' για έξοδο· <item> τέλος, στο Διαδίκτυο (Internet): το καλύτερο μέρος για βοήθεια είναι οι Ομάδες Συζητήσεων (Usenet), όπως η <url url="news:comp.os.linux.setup">. Παρακαλώ μη μου στείλετε ηλ. επιστολή για βοήθεια, καθώς είναι αρκετά απασχολημένος. <item> (Σ.τ.Μ. κάντε μια βολτούλα κι από το «δικό μας» www.linux.gr ...) </itemize> <sect1> Συμβάσεις <p> Στο παρόν έγγραφο πολλά παραδείγματα θα είναι στην εξής μορφή: η <tt/<...>/ είναι μια απαραίτητη παράμετρος, ενώ η <tt/[...]/ προαιρετική. Παράδειγμα: <tscreen><verb> $ tar -tf <file.tar> [> redir_file] </verb></tscreen> Το <tt>file.tar</tt> πρέπει να αναφέρεται, όμως η ανακατεύθυνση (redirection) στο <tt/redir_file/ είναι προαιρετική. «RMP» σημαίνει «please Read the Man Pages for further information» (= παρακαλώ διαβάστε τις σελίδες εγχειριδίου για περαιτέρω πληροφορίες). Επαναλαμβάνω ότι είναι εξαιρετικά σημαντικό να διαβάζει κανείς την τεκμηρίωση. Το «DOSWin» σημαίνει «DOS/Windows». Όταν το prompt μιας εντολής είναι το <tt>#</tt>, η εντολή αυτή μπορεί να κληθεί μόνον από τον root. <sect> Για τους ανυπόμονους <p> Για ένα γρήγορο ξεκίνημα, ρίξτε μια ματιά στον παρακάτω πίνακα: <!-- I'd like to make this an sgml table, but lynx wouldn't display it correctly. I'll think it over. --> <tscreen><verb> DOS Linux Shmeiwseis ------------------------------------------------------------------------------ ATTRIB (+-)attr file chmod <mode> file entelws diaforetiko BACKUP tar -Mcvf device dir/ to idio CD dirname\ cd dirname/ sxedon h idia syntaksh COPY file1 file2 cp file1 file2 to idio DEL file rm file prosoxh - den yparxei undelete DELTREE dirname rm -R dirname/ to idio DIR ls oxi akribws h idia syntaksh DIR file /S find . -name file entelws diaforetiko EDIT file vi file ypopsiazomai oti de 8a sas aresei jstar file moiazei me to edit toy dos EDLIN file ed file ksexaste to FORMAT fdformat, mount, umount arketa diaforetikh syntaksh HELP command man command, idia logikh info command MD dirname mkdir dirname/ sxedon h idia syntaksh MORE < file less file safws anwtero MOVE file1 file2 mv file1 file2 to idio NUL /dev/null to idio PRINT file lpr file to idio PRN /dev/lp0, /dev/lp1 to idio RD dirname rmdir dirname/ sxedon h idia syntaksh REN file1 file2 mv file1 file2 oxi gia pollapla arxeia RESTORE tar -Mxpvf device diaforetikh syntaksh TYPE file less file poly kalytero WIN startx apexei parassagkes! </verb></tscreen> Αν θέλετε κάτι παραπάνω από έναν πίνακα με εντολές, δείτε την παρακάτω ενότητα. <sect> Γνωρίστε το bash <p> Έχω καλά νέα: στο Linux πληκτρολογείτε πολύ λιγότερα στη γραμμή εντολών, αφού το κέλυφος <tt>bash</tt> πληκτρολογεί για σας όποτε είναι δυνατόν, και έχει αρκετές όμορφες λειτουργίες διορθώσεων. Κατ' αρχάς, το επάνω βέλος ανακαλεί τις προηγούμενες γραμμές εντολών· και όχι μόνο. Πατώντας <TAB> συμπληρώνονται τα ονόματα αρχείων και καταλόγων. Για παράδειγμα, το να γράψει κανείς <tscreen><verb> $ ls /uTABloTABbTAB </verb></tscreen> είναι σαν να γράφει <tscreen><verb> $ ls /usr/local/bin </verb></tscreen> Αν υπήρξε μπλέξιμο κατά τη γραφή του <tscreen><verb> $ ls /uTABloTABiTAB </verb></tscreen> τότε το <tt>bash</tt> σταματά, διότι δεν ξέρει αν εννοείτε <file>/usr/local/info</file> ή <file>/usr/local/include</file>. Δώστε περισσότερους χαρακτήρες και ξαναπατήστε <TAB> Άλλοι χρήσιμοι συνδυασμοί είναι ο <ESC-BACKSPACE> που σβήνει μια λέξη στα αριστερά , ενώ ο <ESC-D> σβήνει μια λέξη στα δεξιά· ο <ESC-F> μετακινεί το δρομέα κατά μια λέξη στα δεξιά και ο <ESC-B> στα αριστερά· ο <CTRL-A> μετακινεί στην αρχή της γραμμής και ο <CTRL-E> στο τέλος της. Ο συνδυασμός <ALT> είναι ισοδύναμος με τον <ESC>. Αρκετά για τώρα. Μόλις συνηθίσετε αυτές τις συντομεύσεις, θα βρίσκετε τη γραμμή εντολών του DOS πολύ ενοχλητική... <sect> Αρχεία και Προγράμματα <p> <sect1> Αρχεία: Εισαγωγικά Θέματα <p> Η δομή των αρχείων και καταλόγων του Linux είναι αρκετά παρόμοια με αυτήν του DOSWin. Τα αρχεία έχουν ονόματα που υπόκεινται σε ορισμένους κανόνες, φυλάσσονται σε καταλόγους, κάποια είναι εκτελέσιμα και μεταξύ των εκτελεσίμων κάποια έχουν διακόπτες (switches) ως εντολές. Επιπλέον, μπορείτε να χρησιμοποιείτε χαρακτήρες μπαλαντές (wildcard), ανακατεύθυνσης (redirection) και piping. Υπάρχουν μόνο κάποιες μικρές διαφορές: <itemize> <item> στο DOS, τα ονόματα των αρχείων είναι στη λεγόμενη «μορφή 8.3»· π.χ. <tt/NOTENOUG.TXT/. Στο Linux κάνουμε καλύτερα πράγματα. Αν εγκαταστήσατε το Linux χρησιμοποιώντας ένα σύστημα αρχείων (file system) όπως το ext2 ή το umsdos, μπορείτε να χρησιμοποιείτε μακρύτερα ονόματα (έως 255 χαρακτήρες), και με περισσότερες της μίας τελείες: παραδείγματος χάριν, <tt/Ayto_einai.ena.POLY_makry.onomaarxeioy/. Σημειώστε ότι χρησιμοποίησα τόσο κεφαλαίους όσο και μικρούς χαρακτήρες: Άλλωστε... <item> οι πεζοί και οι κεφαλαίοι χαρακτήρες στα ονόματα αρχείων είναι διαφορετικοί. Έτσι, τα <tt/FILENAME.tar.gz/ και <tt/filename.tar.gz/ είναι δύο διαφορετικά αρχεία. Το <tt/ls/ είναι μια εντολή, το <tt/LS/ είναι ένα λάθος· <item> οι χρήστες των Windows ας προσέχουν όταν χρησιμοποιούν μεγάλα ονόματα αρχείων στο Linux. Αν το όνομα ενός αρχείου περιέχει κενά (δεν προτείνεται, αλλά μπορεί να γίνει) τότε πρέπει να περικλείσετε το όνομα του αρχείου σε διπλά λατινικά εισαγωγικά κάθε φορά που αναφέρεστε σ' αυτό. Παράδειγμα: <tscreen><verb> $ # h parakatw entolh ftiaxnei enan katalogo poy legetai "My old files" $ mkdir "My old files" $ ls My old files bin tmp </verb></tscreen> Επίσης, κάποιοι χαρακτήρες καλό είναι να μη χρησιμοποιούνται. Π.χ.: <tt/!*$&#/· <item> δεν υπάρχουν δεσμευτικές επεκτάσεις όπως .COM και .EXE για τα προγράμματα ή .BAT για τα αρχεία batch. Τα εκτελέσιμα αρχεία σημειώνονται με έναν αστερίσκο <tt/*/' στο τέλος του ονόματός τους, όταν εκτελείτε την εντολή <tt/ls -F/ . Για παράδειγμα: <tscreen><verb> $ ls -F I_am_a_dir/ cindy.jpg cjpg* letter_to_Joe my_1st_script* old~ </verb></tscreen> Τα αρχεία <tt/cjpg*/ και <tt/my_1st_script*/ είναι εκτελέσιμα, δηλαδή «προγράμματα» . Στο DOS, τα αρχεία backup λήγουν σε .BAK, ενώ στο Linux λήγουν με μια περισπωμένη `<tt/˜/'. Επίσης, ένα αρχείο το όνομα του οποίου ξεκινά με τελεία θεωρείται κρυφό. Παράδειγμα: το αρχείο <tt/.I.am.a.hidden.file/ δε θα φανεί μετά την εντολή <tt/ls/· <item> Οι διακόπτες (switches) στα προγράμματα του DOS δίνονται στη μορφή <tt>/switch</tt>, ενώ στο Linux δίνονται με <tt/-switch/ ή <tt/--switch/. Παράδειγμα: το <tt>dir /s</tt> θα γίνει <tt/ls -R/. Σημειώστε ότι πολλά προγράμματα του DOS, όπως το <tt/PKZIP/ ή το <tt/ARJ/, χρησιμοποιούν διακόπτες τύπου UNIX. </itemize> Μπορείτε τώρα να μεταφερθείτε στην ενότητα <ref id="Files" name="Μετάφραση εντολών από το DOS στο Linux">, στη θέση σας όμως θα διάβαζα κι άλλο. <sect1> Συμβολικοί δεσμοί <p> Στο UNIX υπάρχει ένα είδος αρχείων που δεν υπάρχει στο DOS: ο συμβολικός δεσμός (symbolic link). Αυτό μπορεί να θεωρηθεί ως δείκτης προς ένα αρχείο ή έναν κατάλογο, και μπορεί να χρησιμοποιείται αντί για το δεικνυόμενο· είναι παρόμοιο με τις συντομεύσεις των Windows. Παραδείγματα συμβολικών δεσμών είναι το <tt>/usr/X11</tt>, που δείχνει στο <tt>/usr/X11R6</tt>· το <tt>/dev/modem</tt>, που δείχνει είτε στο <tt>/dev/ttyS0</tt> ή στο <tt>/dev/ttyS1</tt>. Για να φτιάξετε έναν συμβολικό δεσμό: <tscreen><verb> $ ln -s <arxeio_h_katalogos> <onoma_desmou> </verb></tscreen> Παράδειγμα: <tscreen><verb> $ ln -s /usr/doc/g77/DOC g77manual.txt </verb></tscreen> Τώρα μπορείτε να αναφέρεστε στο <tt/g77manual.txt/ αντί για το <tt>/usr/doc/g77/DOC</tt>. Οι δεσμοί φαίνονται έτσι στην έξοδο του <tt/ls/ : <tscreen><verb> $ ls -F g77manual.txt@ $ ls -l (diafora_pragmata...) g77manual.txt -> /usr/doc/g77/DOC </verb></tscreen> <sect1> Δικαιώματα και Ιδιοκτησίες <label id="Permissions"> <p> Τα αρχεία και οι κατάλογοι στο DOS έχουν τα ακόλουθα χαρακτηριστικά (attributes): A (archive, αρχεία), H (hidden, κρυφά), R (read-only, μόνο για ανάγνωση), and S (system, συστήματος). Μόνον τα H και τα R έχουν νόημα στο Linux: τα κρυφά αρχεία ξεκινούν με μία τελεία, όσο για το attribute R, διαβάστε κι άλλο. Στο UNIX ένα αρχείο έχει «δικαιώματα» (permissions) και έναν ιδιοκτήτη (owner), ο οποίος με τη σειρά του ανήκει σε μία «ομάδα» (group). Δείτε το παράδειγμα: <tscreen><verb> $ ls -l /bin/ls -rwxr-xr-x 1 root bin 27281 Aug 15 1995 /bin/ls* </verb></tscreen> Το πρώτο πεδίο περιέχει τα δικαιώματα του αρχείου <tt>/bin/ls</tt>, που ανήκει στον root, ομάδα bin. Αφήνοντας τις υπόλοιπες πληροφορίες που δίνει η εντολή, στεκόμαστε στη σημασία του <tt/-rwxr-xr-x/ από αριστερά προς τα δεξιά: <tt/-/ είναι το είδος του αρχείου (<tt/-/ = κανονικό αρχείο, <tt/d/ = κατάλογος, <tt/l/ = δεσμός, κλπ)` <tt/rwx/ είναι τα δικαιώματα του ιδιοκτήτη του αρχείου (owner) και είναι(read=ανάγνωση, write=εγγραφή, execute=εκτέλεση)· <tt/r-x/ είναι τα δικαιώματα της ομάδας (group) του ιδιοκτήτη (owner) του αρχείου και είναι (read=ανάγνωση, execute=εκτέλεση)· (Δε θα καλύψω την έννοια της ομάδας, θεωρώ ότι μπορείτε να κάνετε και χωρίς αυτήν, εφ' όσον είστε αρχάριοι ;-) και <tt/r-x/ είναι τα δικαιώματα για όλους τους άλλους χρήστες (read=ανάγνωση, execute=εκτέλεση). Ο κατάλογος <tt>/bin</tt> έχει επίσης δικαιώματα: δείτε στην ενότητα <ref id="Directories Permissions" name="Directories Permissions"> για περαιτέρω πληροφορίες. Γι' αυτό δεν μπορείτε να διαγράψετε το αρχείο <tt>/bin/ls</tt> παρά μόνο αν είστε root: δεν έχετε το δικαίωμα (permission) να το κάνετε. Για να αλλάξετε τα δικαιώματα ενός αρχείου, η εντολή είναι: <tscreen><verb> $ chmod <whoXperm> <file> </verb></tscreen> όπου who είναι <tt/u/ (user=χρήστης, είναι ο ιδιοκτήτης), <tt/g/ (group=ομάδα), <tt/o/ (other=άλλοι), X είναι είτε <tt/+/ ή <tt/-/, perm είναι <tt/r/ (read=ανάγνωση), <tt/w/ (write=εγγραφή), or <tt/x/ (execute=εκτέλεση). Κάποια παραδείγματα της χρήσης της <tt>chmod</tt> είναι τα ακόλουθα: <tscreen><verb> $ chmod +x file </verb></tscreen> αυτό θέτει το δικαίωμα εκτέλεσης για το αρχείο. <tscreen><verb> $ chmod go-rw file </verb></tscreen> αυτό αφαιρεί τα δικαιώματα ανάγνωσης και εγγραφής για όλους, πλην του ιδιοκτήτη. <tscreen><verb> $ chmod ugo+rwx file </verb></tscreen> αυτό δίνει σε όλους (χρήστη, ομάδα, άλλους) δικαιώματα ανάγνωσης, εγγραφής και εκτέλεσης. <tscreen><verb> # chmod +s file </verb></tscreen> αυτό φτιάχνει ένα αρχείο «setuid» ή «suid» --- ένα αρχείο που μπορούν όλοι να εκτελέσουν, με τα δικαιώματα του ιδιοκτήτη του. Θα συναντήσετε αρκετά suid αρχεία του root· αυτά είναι συνήθως σημαντικά αρχεία του συστήματος, όπως ο X server. Ένας πιο σύντομος τρόπος για να αναφερθεί κανείς στα δικαιώματα είναι με αριθμητικά ψηφία: Το <tt/rwxr-xr-x/ μπορεί να εκφραστεί ως 755 (κάθε γράμμα αντιστοιχεί σε έναν αριθμό: το <tt>---</tt> είναι 0, το <tt>--x</tt> είναι 1, το <tt/-w-/ είναι 2, το <tt/-wx/ είναι 3...). Δείχνει δύσκολο, αλλά με λίγη εξάσκηση θα καταλάβετε την έννοια. Ο root, όντας ο «υπερχρήστης» μπορεί να αλλάξει τα δικαιώματα των αρχείων όλων των χρηστών. RMP. <sect1> Αρχεία: Μεταφράζοντας εντολές <label id="Files"> <p> Αριστερά βρίσκονται οι εντολές του DOS· δεξιά οι αντίστοιχες για το Linux. <tscreen><verb> ATTRIB: chmod COPY: cp DEL: rm MOVE: mv REN: mv TYPE: more, less, cat </verb></tscreen> Τελεστές ανακατεύθυνσης (redirection) και plumbing: <tt/ < > >> |/ Χαρακτήρες Μπαλαντέρ: <tt/* ?/ <tt>nul: /dev/null</tt> <tt>prn, lpt1: /dev/lp0 ή /dev/lp1; lpr</tt> <sect2> Παραδείγματα <p> <tscreen><verb> 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 </verb></tscreen> Σημειώσεις: <itemize> <item> Το <tt/*/ είναι εξυπνότερο στο Linux: το <tt/*/ σημαίνει όλα τα αρχεία εκτός από τα κρυφά· το <tt/.*/ σημαίνει όλα τα κρυφά αρχεία (και επίσης τον τρέχοντα κατάλογο `<tt/./' και τον προηγούμενο `<tt/../': προσοχή!)· το <tt/*.*/ σημαίνει μόνο τα αρχεία που έχουν ένα `<tt/./' στη μέση με μια τελεία· το <tt/p*r/ σημαίνει «peter» και «piper»· το <tt/*c*/ σημαίνει «picked» και «peck»· <item> όταν χρησιμοποιείτε <tt/more/, πιέζετε <SPACE> για να διαβάσετε το αρχείο και «q» για έξοδο. Το <tt/less/ έχει περισσότερες λειτουργίες και επιτρέπει τη χρήση των βελών· <item> δεν υπάρχει <tt/UNDELETE/, γι' αυτό <em/σκεφτείτε το καλά/ προτού σβήσετε οτιδήποτε· <item> εν αντιθέσει προς το <tt/< > >>/του DOS, το Linux έχει <tt/2>/ για να ανακατευθύνει μηνύματα λάθους (stderr)· επιπλέον, το <tt/2>&1/ ανακατευθύνει από το stderr στο stdout, ενώ το <tt/1>&2/ ανακατευθύνει από το stdout στο stderr· <item> Το Linux έχει ένα ακόμη wildcard: το <tt/[]/. Χρήση: το <tt/[abc]*/ σημαίνει όλα τα αρχεία που ξεκινούν με a, b, c· το <tt/*[I-N1-3]/ σημαίνει τα αρχεία που τελειώνουν σε I, J, K, L, M, N, 1, 2, 3· <item> το <tt/lpr/ <file> τυπώνει μία σελίδα στο παρασκήνιο. Για να ελέγξετε την κατάσταση της αλληλουχίας εκτύπωσης (print queue) χρησιμοποιείστε το <tt/lpq/· για να αφαιρέσετε ένα αρχείο από την αλληλουχία εκτύπωσης χρησιμοποιείστε <tt/lprm/· <item> δεν υπάρχει εντολή παρόμοια με την <tt/RENAME/ του DOS· δηλαδή, το <tt/mv *.xxx *.yyy/ δε θα δουλέψει. Μια εντολή παρόμοια με την REN είναι διαθέσιμη στο <url url="ftp://sunsite.unc.edu/pub/Linux/utils/file">· <item> χρησιμοποιείστε <tt/cp -i/ και <tt/mv -i/ για να ειδοποιηθείτε όταν ένα αρχείο πρόκειται να επικαλυφθεί. </itemize> <sect1> Εκτέλεση Προγραμμάτων: Πολυδιεργασία και Συνεδρίες (Sessions) <p> Για να τρέξετε ένα πρόγραμμα πληκτρολογείστε το όνομά του όπως θα κάνατε και στο DOS. Αν ο κατάλογος (Ενότητα <ref id="Directories" name="Χρήση Καταλόγων">) που είναι εγκατεστημένο το πρόγραμμα περιέχεται στο the PATH (Section <ref id="System Initialisation" name="Αρχεία Αρχικοποίησης (Initialisation) Συστήματος">), το πρόγραμμα θα ξεκινήσει. Εξαίρεση: Εν αντιθέσει προς το DOS, στο Linux ένα πρόγραμμα που περιέχεται στον τρέχοντα κατάλογο δε θα τρέξει, εκτός αν ο κατάλογος περιέχεται στο PATH. Λύση: αν το πρόγραμμα είναι <tt/prog/ πληκτρολογείστε <tt>./prog</tt>. Η συνήθης γραμμή εργαλείων είναι κάπως έτσι: <tscreen><verb> $ command [-s1 [-s2] ... [-sn]] [par1 [par2] ... [parn]] [< input] [> output] </verb></tscreen> όπου <tt>-s1</tt>, ..., <tt>-sn</tt> είναι οι διακόπτες της εντολής, <tt/par1/, ..., <tt/parn/ είναι οι παράμετροι του προγράμματος. Μπορείτε να χρησιμοποιήσετε περισσότερες της μίας εντολές στην γραμμή εντολών: <tscreen><verb> $ command1 ; command2 ; ... ; commandn </verb></tscreen> Αυτά έχω να πω για το τρέξιμο προγραμμάτων, είναι όμως πολύ απλό να πούμε κάτι περισσότερο. Ένας από τους βασικούς λόγους για τη χρήση του Linux είναι το γεγονός ότι πρόκειται για ένα πολυδιεργασιακό Λ.Σ., δηλαδή ότι μπορεί να τρέχει περισσότερα του ενός προγράμματα (εφ' εξής διαδικασίες (processes) ταυτοχρόνως). Μπορείτε να ξεκινάτε διαδικασίες στο περιθώριο (background) συνεχίζοντας να εργάζεστε όπως πριν. Επιπλέον, στο Linux μπορείτε να έχετε πολλές συνεδρίες: είναι σαν να έχετε πολλούς υπολογιστές να λειτουργούν ταυτοχρόνως! <itemize> <item> Για να αλλάξετε στις συνεδρίες 1..6 των εικονικών κονσόλων (virtual consoles), πιέστε <ALT-F1> ... <ALT-F6> <item> Για να ξεκινήσετε μία νέα συνεδρία στην ίδια εικονική κονσόλα χωρίς να αφήσετε την τρέχουσα, πατήστε <tt/su - <loginname>/. Παράδειγμα: <tt/su - root/. Αυτό είναι χρήσιμο, για παράδειγμα, αν θέλετε να εκτελέσετε μια εργασία που μπορεί να κάνει μόνο ο root. <item> Για να τερματίσετε μια συνεδρία, πληκτρολογείστε <tt/exit/. Αν υπάρχουν σταματημένες εργασίες (stopped jobs) (βλέπε παρακάτω), θα ειδοποιηθείτε. <item> Για να ξεκινήσετε μια διαδικασία στο περιθώριο, προσθέστε το σύμβολο '<tt/&/' στο τέλος της γραμμής εντολών: <tscreen><verb> $ programma [-diakoptes] [parametroi] [< eisodos] [> eksodos] & [1] 123 </verb></tscreen> το κέλυφος αναγνωρίζει τη διαδικασία με έναν αριθμό εργασίας (π.χ. <tt/[1]/· βλ. παρακάτω), και με έναν PID (Process Identification Number, Αριθμό Αναγνωρίσεως Διαδικασίας · στο παράδειγμά μας 123). <item> Για να δείτε πόσες διαδικασίες υπάρχουν, πληκτρολογείστε <tt/ps ax/. Αυτό θα δώσει ως αποτέλεσμα έναν κατάλογο των τρεχόντων διαδικασιών τη στιγμή αυτή. <item> Για να σκοτώσετε (τερματίσετε) μία διαδικασία, πληκτρολογείστε <tt/kill <PID>/. Κάποιες φορές ίσως θελήσετε να σκοτώσετε μία διαδικασία όταν δεν ξέρετε πώς να την τερματίσετε με τον φυσιολογικό τρόπο... Μπορείτε να σκοτώσετε τις διαδικασίες άλλων χρηστών μόνον αν είστε ο root. Κάποιες φορές, μία διαδικασία σκοτώνεται μόνον με <tt/kill -SIGKILL <PID>/. Επιπροσθέτως, το κέλυφος σας επιτρέπει να σταματάτε ή να διακόπτετε προσωρινά μία διαδικασία, να τη στείλετε στο παρασκήνιο και να φέρετε μία διαδικασία από το παρασκήνιο. Όταν αναφερόμαστε σε αυτά τα θέματα θα καλούμε τις διαδικασίες «εργασίες» (jobs). <item> Για να δείτε πόσες εργασίες υπάρχουν πληκτρολογείστε <tt/jobs/. Εδώ, οι εργασίες αναγνωρίζονται από τον αριθμό εργασίας τους και όχι το PID. <item> Για να σταματήσετε μία εργασία που τρέχει στο foreground, πληκτρολογείστε <CTRL-C> (δε θα δουλέψει πάντα). <item> Για να διακόψετε μία εργασία που τρέχει στο foreground, πληκτρολογείστε <CTRL-Z> (ομοίως). <item> Για να στείλετε μία διακεκομμένη εργασία στο παρασκήνιο, πληκτρολογείστε <tt/bg <%job>/ (μετατρέπεται σε εργασία). <item> Για να φέρετε μία εργασία στο foreground, πληκτρολογείστε <tt/fg <%job>/. Για να φέρετε στο foreground την τελευταία εργασία που στείλατε στο παρασκήνιο, δώστε απλά <tt/fg/. <item> Για να σκοτώσετε μία εργασία, πληκτρολογείστε <tt/kill <%job>/ όπου <job> μπορεί να είναι 1, 2, 3,... </itemize> Χρήσει αυτών των εντολών μπορείτε να διαμορφώσετε ένα δίσκο, να συμπιέσετε ένα πλήθος αρχείων, να μεταγλωττίσετε ένα πρόγραμμα και να αποσυμπιέσετε ένα συμπιεσμένο αρχείο ταυτοχρόνως, έχοντας ακόμη το prompt στη διάθεσή σας! Δοκιμάστε να το κάνετε αυτό και στα Windows και δείτε την διαφορά αποδόσεως (εφ' όσον δεν κολλήσουν....). <sect1> Εκτέλεση Προγραμμάτων σε Απομακρυσμένους Υπολογιστές. <p> Για να τρέξετε ένα πρόγραμμα σε έναν απομακρυσμένο υπολογιστή ονόματι <tt/remote.machine.edu/: <tscreen><verb> $ telnet remote.machine.edu </verb></tscreen> Αφού κάνετε log in, ξεκινήστε το αγαπημένο σας πρόγραμμα. Εννοείτε πως θα πρέπει να έχετε λογαριασμό κελύφους (shell account) στον απομακρυσμένο υπολογιστή. Αν έχετε X11, μπορείτε να τρέξετε και εφαρμογές X από απομακρυσμένους υπολογιστές, κάνοντάς τις να φαίνονται στην οθόνη του προσωπικού σας υπολογιστή. Έστω <tt/remote.machine.edu/ το απομακρυσμένο σύστημα και <tt/local.linux.box/ το Linuxόκουτό σας. Για να τρέξετε από το <tt/local.linux.box/ μία εφαρμογή Χ ευρισκόμενη στο <tt/remote.machine.edu/, κάντε τα παρακάτω: <itemize> <item> ανοίξτε το X11, ξεκινήστε ένα <tt/xterm/ ή κάποιον άλλον συμβατό εξομοιωτή τερματικού (terminal emulator) και πληκτρολογείστε: <tscreen><verb> $ xhost +remote.machine.edu $ telnet remote.machine.edu </verb></tscreen> <item> αφού κάνετε log in, πληκτρολογείστε: <tscreen><verb> remote:$ DISPLAY=local.linux.box:0.0 remote:$ progname & </verb></tscreen> (αντί για <tt/DISPLAY.../, ίσως χρειαστεί να γράψετε: <tt/setenv DISPLAY local.linux.box:0.0/. Εξαρτάται από το απομακρυσμένο κέλυφος.) </itemize> Et voila! Το <tt/progname/ θα ξεκινήσει στον <tt/remote.machine.edu/ και θα φαίνεται στον υπολογιστή σας. Καλύτερα να μην το χρησιμοποιήσετε όμως με σύνδεση μέσω modem, γιατί θα είναι εξαιρετικά αργό και άρα όχι ιδιαίτερα χρήσιμο.. Επιπλέον, είναι μία άξεστη και ανασφαλής μέθοδος: καλύτερα διαβάστε το «Remote X Apps mini-HOWTO» στη διεύθυνση <url url="http://sunsite.unc.edu/LDP/HOWTO/mini/Remote-X-Apps">. <sect> Χρήση Καταλόγων <label id="Directories"> <p> <sect1> Κατάλογοι: Αρχικά Σχόλια <p> Είδαμε τις διαφορές μεταξύ των αρχείων στο DOSWin και στο Linux. Όσον αφορά τους καταλόγους, στο DOSWin ο ριζικός κατάλογος είναι <tt/\/ και στο Linux είναι <tt>/</tt>. Ομοίως, οι φωλιασμένοι κατάλογοι χωρίζονται με <tt/\/ στο DOSWin, ενώ με <tt>/</tt> στο Linux. Παραδείγματα διαδρομών αρχείων: <tscreen><verb> DOS: C:\PAPERS\GEOLOGY\MID_EOC.TEX Linux: /home/nikos/papers/geology/middle_eocene.tex </verb></tscreen> Ως συνήθως, <tt/../ είναι ο πατρικός κατάλογος (parent directory) και <tt/./ είναι ο τρέχων κατάλογος (current) directory. Να θυμάστε ότι το σύστημα δεν επιτρέπει να τρέξετε τις <tt/cd/, <tt/rd/, και <tt/md/ όπου θέλετε. Κάθε χρήστης διατηρεί τα πράγματά του σε έναν κατάλογο που ονομάζεται «οικείος» (home), που δίδεται από το διαχειριστή του συστήματος· παραδείγματος χάριν, στον υπολογιστή μου ο οικείος κατάλογός μου είναι ο <tt>/home/nikos</tt>. <sect1> Δικαιώματα Καταλόγων <label id="Directories Permissions"> <p> Και οι κατάλογοι έχουν δικαιώματα. Ισχύουν όσα είδαμε στην ενότητα <ref id="Permissions" name="Δικαιώματα και ιδιοκτησίες"> , δηλαδή τα χρήστης (user), ομάδα (group) και άλλοι (other). Στην περίπτωση των καταλόγων, το <tt/rx/ σημαίνει ότι μπορείτε να αλλάξετε στον κατάλογο και <tt/w/ ότι μπορείτε να διαγράψετε ένα αρχείο του καταλόγου (σύμφωνα με τα δικαιώματα του αρχείου φυσικά) ή και τον ίδιο τον κατάλογο. Για παράδειγμα, για να κρατήσω τους άλλους χρήστες μακριά από το αρχείο <tt>/home/nikos/text</tt>: <tscreen><verb> $ chmod o-rwx /home/nikos/text </verb></tscreen> <sect1> Κατάλογοι: Μετάφραση Εντολών <label id="Directories: Trans"> <p> <tscreen><verb> DIR: ls, find, du CD: cd, pwd MD: mkdir RD: rmdir DELTREE: rm -rf MOVE: mv </verb></tscreen> <sect2> Παραδείγματα <p> <tscreen><verb> DOS Linux --------------------------------------------------------------------- C:\NIKOS>DIR $ ls C:\NIKOS>DIR FILE.TXT $ ls file.txt C:\NIKOS>DIR *.H *.C $ ls *.h *.c C:\NIKOS>DIR/P $ ls | more C:\NIKOS>DIR/A $ ls -l C:\NIKOS>DIR *.TMP /S $ find / -name "*.tmp" C:\NIKOS>CD $ pwd n/a - vlepe simeiwsi $ cd omoiws $ cd ~ omoiws $ cd ~/temp C:\NIKOS>CD \OTHER $ cd /other C:\NIKOS>CD ..\TEMP\TRASH $ cd ../temp/trash C:\NIKOS>MD NEWPROGS $ mkdir newprogs C:\NIKOS>MOVE PROG .. $ mv prog .. C:\NIKOS>MD \PROGS\TURBO $ mkdir /progs/turbo C:\NIKOS>DELTREE TEMP\TRASH $ rm -rf temp/trash C:\NIKOS>RD NEWPROGS $ rmdir newprogs C:\NIKOS>RD \PROGS\TURBO $ rmdir /progs/turbo </verb></tscreen> Σημειώσεις: <itemize> <item> για τη χρήση της <tt/rmdir/, ο προς διαγραφή κατάλογος πρέπει να είναι κενός. Για να διαγράψετε έναν κατάλογο μαζί με όλα του τα περιεχόμενα χρησιμοποιείστε την <tt/rm -rf/ με δική σας ευθύνη· <item> ο χαρακτήρας «<tt/˜/» είναι συντόμευση για το όνομα του οικείου καταλόγου σας. Οι εντολές <tt/cd/ ή <tt/cd ~/ θα σας μεταφέρουν στον οικείο κατάλογο από όπου κι αν είστε· η εντολή <tt>cd ~/tmp</tt> θα σας μεταφέρει στο <tt>/home/your_home/tmp</tt>· <item> η <tt/cd -/ «αναιρεί» την τελευταία <tt/cd/. </itemize> <sect> Δισκέτες, σκληροί δίσκοι κλπ <label id="Floppies"> <p> Υπάρχουν δύο μέθοδοι να διαχειριστεί κανείς τις συσκευές: ο τρόπος του DOS και ο τρόπος του UNIX Εεεεεσείς αποφασίζετε! <sect1> Διαχείριση συσκευών με τον τρόπο του DOS. <p> Οι περισσότερες διανομές του Linux περιέχουν την σουίτα Mtools suite, ένα σύνολο εντελώς αντιστοίχων εντολών προς αυτές του DOS, με τη διαφορά ότι ξεκινούν με ένα «m»: π.χ., <tt/mformat/, <tt/mdir/, <tt/mdel/, <tt/mmd/, κλπ. Μπορούν επίσης να διαχειριστούν μεγάλα ονόματα αρχείων, αλλά όχι δικαιώματα. Αν ρυθμίσετε τα Mtools τροποποιώντας το αρχείο <file>/etc/mtools.conf</file> (ένα δείγμα περιλαμβάνεται στη διανομή) θα μπορείτε να έχετε πρόσβαση στη διαμέριση DOS/Win, στο CD--ROM, και το Zip drive. Όμως η εντολή <tt/mformat/ δε θα λειτουργήσει για να διαμορφώσετε μία φρεσκοαγορασμένη δισκέτα. Ως root, θα πρέπει να τρέξετε προκαταβολικά την εντολή: <tt>fdformat /dev/fd0H1440</tt>. Δεν μπορείτε να χρησιμοποιήσετε αρχεία σε μια δισκέτα με μία εντολή του τύπου <tt>less a:file.txt</tt>! Αυτό είναι το μειονέκτημα του χειρισμού δίσκων με τον τρόπο του DOS. <sect1> Διαχείριση συσκευών με τον τρόπο του UNIX. <p> Το UNIX έχει διαφορετικό τρόπο να χειρίζεται τις συσκευές. Δεν υπάρχουν ξεχωριστοί τόμοι όπως A: και C: · ένας δίσκος είτε είναι δισκέτα ή οτιδήποτε γίνεται τμήμα ενός τοπικού συστήματος αρχείων μέσω μιας διαδικασίας που λέγεται «προσάρτηση» (mounting). Όταν τελειώσετε με τη συσκευή, πρέπει να την «αποπροσαρτήσετε» προτού την εξάγετε. Η φυσική διαμόρφωση ενός δίσκου και η δημιουργία ενός συστήματος αρχείων επ' αυτού είναι δύο διαφορετικές διαδικασίες. Η εντολή <tt/FORMAT A:/ στο DOS κάνει και τα δύο, στο Linux όμως υπάρχουν διαφορετικές εντολές. Για να διαμορφώσετε μία δισκέτα δείτε ανωτέρω· για να δημιουργήσετε ένα σύστημα αρχείων: <tscreen><verb> # mkfs -t ext2 -c /dev/fd0H1440 </verb></tscreen> Μπορείτε να χρησιμοποιήσετε <tt/dos/, <tt/vfat/ (προτεινόμενο) ή άλλα είδη αντί για το <tt/ext2/. Μόλις η δισκέτα ετοιμαστεί, προσαρτήστε την με την εντολή: <tscreen><verb> # mount -t ext2 /dev/fd0 /mnt </verb></tscreen> καθορίζοντας το σωστό σύστημα αρχείων, αν δεν χρησιμοποιείτε <tt/ext2/. Τώρα μπορείτε να αναφέρεστε στα αρχεία της δισκέτας χρησιμοποιώντας <tt>/mnt</tt> αντί για A: και B:. Παραδείγματα: <tscreen><verb> DOS Linux --------------------------------------------------------------------- C:\NIKOS>DIR A: $ ls /mnt C:\NIKOS>COPY A:*.* $ cp /mnt/* . C:\NIKOS>COPY *.ZIP A: $ cp *.zip /mnt C:\NIKOS>EDIT A:FILE.TXT $ jstar /mnt/file.txt C:\NIKOS>A: $ cd /mnt A:> _ /mnt/$ _ </verb></tscreen> Όταν τελειώσετε πριν εξάγετε τη δισκέτα <em/πρέπει/ να την αποπροσαρτήσετε με την εντολή <tscreen><verb> # umount /mnt </verb></tscreen> Προφανώς, χρειάζεται να εφαρμόσετε τις <tt/fdformat/ και <tt/mkfs/ μόνο σε αδιαμόρφωτες δισκέτες και όχι σε ήδη χρησιμοποιούμενες. Αν θέλετε να χρησιμοποιήσετε τον οδηγό (drive) B:, αντικαταστήστε τα <tt/fd0H1440/ και <tt/fd0/ με <tt/fd1H1440/ και <tt/fd1/ αντιστοίχως στα προηγούμενα παραδείγματα. Επίσης είναι προφανές πως όσα είπαμε για τις δισκέτες ισχύουν και για άλλες συσκευές· παραδείγματος χάριν, μπορείτε να προσαρτήσετε έναν σκληρό δίσκο ή έναν οδηγό CD--ROM. Για να προσαρτήσετε ένα CD--ROM: <tscreen><verb> # mount -t iso9660 /dev/cdrom /mnt </verb></tscreen> Αυτός είναι ο «επίσημος» τρόπος για να προσαρτήσετε τους δίσκους σας. Καθώς όμως είναι αρκετά εκνευριστικό να πρέπει να είναι κανείς root για να προσαρτήσει μία δισκέτα ή ένα CD--ROM, υπάρχει και η πλάγια οδός: <itemize> <item> Ως root, κάντε τα εξής: <tscreen><verb> # mkdir /mnt/floppy ; mkdir /mnt/cdrom # chmod 777 /mnt/floppy /mnt/cd* # # sigoureuteite oti h syskeyh CD-ROM einai swsth # chmod 666 /dev/hdb ; chmod 666 /dev/fd* </verb></tscreen> <item> και προσθέστε στο <file>/etc/fstab</file> τις εξής γραμμές: <tscreen><verb> /dev/cdrom /mnt/cdrom iso9660 ro,user,noauto 0 0 /dev/fd0 /mnt/floppy vfat user,noauto 0 0 </verb></tscreen> </itemize> Τώρα, για να προσαρτήσετε μία δισκέτα DOS και ένα CD--ROM: <tscreen><verb> $ mount /mnt/floppy $ mount /mnt/cdrom </verb></tscreen> Τα <file>/mnt/floppy</file> και <file>/mnt/cdrom</file> είναι πλέον προσβάσιμα από όλους τους χρήστες. Έχετε υπ' όψη ότι επιτρέποντας σε όλους τους χρήστες να προσαρμόζουν δισκέτες κατ' αυτόν τον τρόπο αφήνετε μία χασματώδη τρύπα ασφαλείας, εφ' όσον σας ενδιαφέρει. Δύο χρήσιμες εντολές είναι η <tt/df/, που δίνει πληροφορίες για το προσαρτημένο σύστημα αρχείων, και η <tt/du dirname/ που αναφέρει το χώρο στο δίσκο που καταλαμβάνει ο κατάλογος dirname. <sect1> Αντίγραφα ασφαλείας (back up) <label id="Backing Up"> <p> Υπάρχουν διάφορα πακέτα που μπορούν να σας βοηθήσουν, το ελάχιστο όμως που μπορείτε να κάνετε για να δημιουργήσετε αντίγραφα ασφαλείας (backup) σε πολλές δισκέτες είναι (ως root): <tscreen><verb> # tar -M -cvf /dev/fd0H1440 dir_to_backup/ </verb></tscreen> Σιγουρευτείτε ότι έχετε μία διαμορφωμένη δισκέτα στον τόμο και αρκετές ακόμη έτοιμες. Για να επαναφέρετε (restore) τα πράγματά σας, εισάγετε την πρώτη δισκέτα στον τόμο και πληκτρολογείστε: <tscreen><verb> # tar -M -xpvf /dev/fd0H1440 </verb></tscreen> <sect> Και τα Windows; <p> Το «αντίστοιχο» των Windows είναι το γραφικό σύστημα X Window System. Αντίθετα με τα Windows και το Mac, το X11 δεν κατασκευάστηκε για ευκολία στην χρήση ή για ομορφιά, αλλά για να προσφέρει γραφικές δυνατότητες σε σταθμούς εργασίας UNIX. Αυτές είναι οι βασικές διαφορές: <itemize> <item> ενώ τα Windows δείχνουν το ίδιο παντού, το X11 δεν είναι έτσι· είναι πολύ πιο παραμετροποιήσιμο. Η γενική όψη δίνεται από ένα συστατικό που λέγεται «διαχειριστής παραθύρων» (window manager, w.m.), για την επιλογή του οποίου έχετε ένα ευρύ πεδίο: <tt/fvwm/, βασικός αλλά καλός και οικονομικός στη μνήμη, <tt/fvwm2-95/, <tt/Afterstep/, <tt/WindowMaker/, <tt/Enlightenment/, και πολλοί ακόμη. Ο w.m. ενεργοποιείται συνήθως από το <tt/.xinitrc/· <item> ο w.m. σας μπορεί να ρυθμιστεί ώστε κάθε παράθυρο να λειτουργεί όπως στα -χμμ- Windows: πατάτε επάνω του και έρχεται στο προκείμενο (foreground). Μία άλλη δυνατότητα είναι να έρχεται στο προκείμενο κάθε φορά που το ποντίκι κινείται πάνω του («focus»). Ακόμη, η τοποθέτηση των παραθύρων στην οθόνη μπορεί να είναι αυτόματη ή να υπάρχει αλληλεπίδραση (interactive): αν ένα περίεργο πλαίσιο εμφανιστεί αντί για το πρόγραμμά σας, πατήστε με το αριστερό πλήκτρο του ποντικού στο σημείο που το θέλετε να εμφανιστεί· <item> οι περισσότερες επιλογές μπορούν να ρυθμιστούν διορθώνοντας ένα ή περισσότερα αρχεία ρυθμίσεων. Διαβάστε την τεκμηρίωση του w.m. σας: το αρχείο ρυθμίσεων είναι <tt/.fvwmrc/, <tt/.fvwm2rc95/, <tt/.steprc/, κτλ. Ένα δείγμα αρχείου ρυθμίσεων βρίσκεται συνήθως στο <file>/etc/X11/window-manager-name/system.window-manager-name</file>· <item> οι εφαρμογές του X11 είναι γραμμένες με τη χρήση ειδικών βιβλιοθηκών («widget sets»)· καθώς υπάρχουν διάφορες, οι εφαρμογές δείχνουν διαφορετικές. Οι πιο βασικές είναι αυτές που χρησιμοποιούν τα Athena widgets (όψη δύο διαστάσεων, 2--Δ look· <tt/xdvi/, <tt/xman/, <tt/xcalc/)· άλλες χρησιμοποιούν το Motif (<tt/netscape/), άλλες τα Tcl/Tk, XForms, Qt, Gtk, και άλλα. Σχεδόν όλες αυτές οι βιβλιοθήκες προσφέρουν περίπου την ίδια όψη και αίσθηση με τα Windows· <item> η αίσθηση, δυστυχώς, μπορεί να είναι ασυνάρτητη. Παραδείγματος χάριν, αν επιλέξετε μία γραμμή κειμένου χρησιμοποιώντας το ποντίκι και πατήσετε <BACKSPACE>, θα περιμένατε να εξαφανιστεί, σωστά; Αυτό δε συμβαίνει με τις εφαρμογές που είναι βασισμένες στο Athena, λειτουργεί όμως με άλλα widget sets· <item> ο τρόπος με τον οποίο λειτουργούν οι μπάρες κυλίσεως και αυξομειώσεως εξαρτάται από τον w.m. και το widget set. Συμβουλή: αν δείτε ότι οι μπάρες κυλίσεως δεν συμπεριφέρονται όπως περιμένατε, δοκιμάστε να τις κινήσετε χρησιμοποιώντας τα δύο πλήκτρα του ποντικιού μαζί ή το μεσαίο· <item> οι εφαρμογές δεν έχουν ένα εικονίδιο εξ ορισμού, αλλά μπορούν να έχουν πολλά. Οι περισσότεροι w.m. έχουν ένα μενού που καλείτε πατώντας με το ποντίκι στην επιφάνεια εργασίας («ριζικό παράθυρο»)· προφανώς, το μενού αυτό μπορεί να ρυθμιστεί. Για να αλλάξετε την εμφάνιση του ριζικού παραθύρου, χρησιμοποιείστε το <tt/xsetroot/ ή το <tt/xloadimage/· <item> το πρόχειρο μπορεί να περιέχει μόνο κείμενο, και συμπεριφέρεται παράξενα. Άπαξ επιλέξατε κάποιο κείμενο, αυτό αντιγράφεται στο πρόχειρο· μετακινηθείτε κάπου αλλού και πατήστε το μεσαίο πλήκτρο για να το επικολλήσετε (paste). Μια εφαρμογή που χρησιμεύει για πολλαπλά buffers (πεδία μνήμης) είναι το <tt/xclipboard/· <item> υπάρχει επίσης η δυνατότητα του drag and drop, μόνον εφ' όσον η εφαρμογή και ο w.m. το υποστηρίζουν. </itemize> Για οικονομία μνήμης, συνίσταται να χρησιμοποιείτε εφαρμογές που χρησιμοποιούν τις ίδιες βιβλιοθήκες. Στην πράξη, βέβαια, αυτό είναι δύσκολο να εφαρμοστεί. Υπάρχουν κάποια εγχειρήματα με σκοπό να κάνουν το X11 να δείχνει και να συμπεριφέρεται τόσο συμβατά όσο και τα Windows. Τα Gnome, <url url="http://www.gnome.org"> και KDE, <url url="http://www.kde.org">, είναι υπέροχα! Δοκιμάστε τα και δε θα νοσταλγήσετε τα Windows ποτέ ξανά... <sect> Ρυθμίζοντας το σύστημα <p> <sect1> Αρχεία αρχικοποίησης συστήματος <label id="System Initialisation"> <p> Δύο σημαντικά αρχεία του DOS είναι τα <tt/AUTOEXEC.BAT/ και <tt/CONFIG.SYS/, που χρησιμοποιούνται κατά την εκκίνηση για να αρχικοποιήσουν (initialise) το σύστημα, να θέσουν κάποιες μεταβλητές περιβάλλοντος, όπως PATH και FILES, και πιθανώς να εκκινήσουν ένα πρόγραμμα ή αρχείο batch file. Στο Linux υπάρχουν πολλά είδη αρχείων αρχικοποίησης, με μερικά εκ των οποίων καλύτερα να μην ασχοληθείτε, έως ότου είστε σίγουροι για το τί κάνετε. Τα σημαντικότερα είναι: <tscreen><verb> ARXEIA SHMEIWSEIS /etc/inittab mhn to peirazete gia thn wra! /etc/rc.d/* omoiws </verb></tscreen> Αν αυτό που θέλετε είναι απλώς να θέσετε την PATH και άλλες μεταβλητές περιβάλλοντος, να αλλάξετε τα μηνύματα login ή να ξεκινάτε αυτόματα ένα πρόγραμμα μετά το login, δείτε τα ακόλουθα αρχεία: <tscreen><verb> ARXEIO SHMEIWSEIS /etc/issue 8etei to mhnyma prin to login /etc/motd 8etei to mhnyma meta to login /etc/profile 8etei thn $PATH kai alles metablhtes, klp. /etc/bashrc 8etei ta aliases, tis leitourgies (functions), klp. /home/your_home/.bashrc 8etei ta proswpika sas aliases kai leitoyrgies /home/your_home/.bash_profile `h /home/your_home/.profile 8etei to periballon kai ksekina ta programmata sas </verb></tscreen> Αν το τελευταίο αρχείο υπάρχει ήδη (πρόκειται για κρυφό αρχείο), θα διαβαστεί μετά το login, και οι εντολές του θα εκτελεστούν. Για παράδειγμα, κοιτάξτε αυτό το <tt/.bash_profile/: <code> echo Environment: printenv | less # equivalent of command SET under DOS alias d='ls -l' # easy to understand what an alias is alias up='cd ..' echo "I remind you that the path is "$PATH echo "Today is `date`" # use the output of the command 'date' echo "Have a good day, "$LOGNAME # The following is a "shell function" ctgz() # List the contents of a .tar.gz archive. { for file in $* do gzip -dc ${file} | tar tf - done } # end of .profile </code> Οι <tt/$PATH/ και <tt/$LOGNAME/, όπως θα καταλάβατε, είναι μεταβλητές περιβάλλοντος. Υπάρχουν πολλές ακόμη· για παραδείγματα, RMP σχετικά με τις εφαρμογές <tt/less/ και <tt/bash/. Βάζοντας την παρακάτω γραμμή στο <file>/etc/profile</file> θα έχετε το ακριβές αντίστοιχο του <tt>PROMPT $P$G</tt>: <tscreen><verb> export PS1="\w\\$ " </verb></tscreen> <sect1> Αρχεία αρχικοποίησης προγραμμάτων <p> Στο Linux τα πάντα σχεδόν μπορεί να ρυθμιστεί στις ανάγκες σας. Τα περισσότερα προγράμματα έχουν ένα ή περισσότερα αρχεία αρχικοποίησης τα οποία μπορείτε να μαστορέψετε. Συνήθως ονομάζονται <tt/.onoma_programmatosrc/ στον οικείο κατάλογό σας. Τα πρώτα που θα θελήσετε να μετατρέψετε είναι: <itemize> <item> <tt/ .inputrc/: χρησιμοποιείται από το <tt/bash/ για να καθορίσει τα key bindings (=δεσμεύσεις πλήκτρων;)· <item> <tt/ .xinitrc/: χρησιμοποιείται από το <tt/startx/ για να αρχικοποιήσει το X Window System· <item> <tt/ .fvwmrc/: χρησιμοποιείται από τον διαχειριστή παραθύρων <tt/fvwm/. <item> <tt/ .joerc, .jstarrc/: χρησιμοποιείται από τον συντάκτη κειμένου <tt/joe/; <item> <tt/ .jedrc/: χρησιμοποιείται από τον συντάκτη κειμένου <tt/jed/; <item> <tt/ .pinerc/: χρησιμοποιείται από το πρόγραμμα ηλ. αλληλογραφίας <tt/pine/; <item> <tt/ .Xdefault/: χρησιμοποιείται από πολλά προγράμματα για X. </itemize> Για όλα αυτά και για όσα συναντήσετε αργότερα, RMP. Θα σας ενδιέφερε ίσως να δείτε το Configuration HOWTO, <url url="http://sunsite.unc.edu/mdw/HOWTO/Config-HOWTO.html">. <sect> Θέματα Δικτύωσης <p> Η «σύνδεση μέσω τηλεφώνου» (Dialup Networking) όχι απλά υπάρχει στο Linux, αλλά είναι σταθερότερη και γρηγορότερη. Το πρωτόκολλο που χρησιμοποιούμε είναι το PPP, που χρησιμοποιείται για τη σύνδεση υπολογιστών στο Διαδίκτυο μέσω modems. Χρειάζεστε έναν πυρήνα με υποστήριξη PPP και ένα εργαλείο που να τηλεφωνεί και κάνει τη σύνδεση. Για να πάρετε την αλληλογραφία σας από τον διακομιστή του Παροχέα (ISP) σας χρειάζεστε ένα κατάλληλο εργαλείο («email fetcher») που χρησιμοποιεί πρωτόκολλο POP protocol· όταν η αλληλογραφία σας «κατέβει» θα φαίνεται σαν να εστάλη κατ' ευθείαν στον υπολογιστή σας. Στη συνέχεια, θα χρησιμοποιήσετε ένα πρόγραμμα διαχείρισης ηλεκτρονικής αλληλογραφίας (MUA = Mail User Agent) όπως το <tt>pine</tt>, το <tt>mutt</tt>, το <tt>elm</tt> και διάφορα άλλα. Ενώ στα Windows το πρόγραμμα που τηλεφωνεί, ο dialer ξεκινά αυτομάτως κάθε φορά που ξεκινάτε μία διαδικτυακή εφαρμογή, στο Linux τα πράγματα λειτουργούν ανάποδα: πρώτα τηλεφωνείτε και μετά ξεκινάτε την εφαρμογή. Αν προτιμάτε όμως την προαναφερθείσα μέθοδο μπορείτε να χρησιμοποιήσετε το <tt>diald</tt>. Η εγκατάσταση και χρήση της τηλεφωνικής σύνδεσης ήταν μία εκ των δυσκολότερων διαδικασιών στο Linux· τώρα τα πράγματα έχουν απλοποιηθεί. Για περισσότερες πληροφορίες συμβουλευθείτε το Configuration HOWTO. Τέλος, κάποια λόγια για την «Περιοχή Δικτύου» (Νetwork neighborhood): μπορείτε να κάνετε τον σταθμό εργασίας σας που τρέχει Linux να εμφανίζεται όπως σαν να τρέχατε Windows NT/9x σε ένα τοπικό δίκτυο υπολογιστών Windows! Θα χρησιμοποιήσετε το Samba: όχι τον ομώνυμο Βραζιλιάνικο χορό, αλλά μία εφαρμογή του πρωτοκόλλου SMB για Linux. Σχετικά δείτε στο <url url="http://samba.anu.edu.au/samba">. <sect> Στοιχεία Προγραμματισμού <p> <sect1> Σενάρια φλοιού: κατά πολύ ανώτερα των αρχείων .bat <label id="Shell Scripts"> <p> Αν χρησιμοποιούσατε αρχεία .BAT για να κατασκευάσετε συντομεύσεις πολύ μεγάλων εντολών στο DOS(εγώ το έκανα συχνά), τώρα στο Linux μπορείτε να εισάγετε κατάλληλα alias (δείτε το παραπάνω παράδειγμα) στο <tt/profile/ ή το <tt/.bash_profile/. Αν όμως τα αρχεία .BAT σας ήταν πιο πολύπλοκα, τότε θα τρελαθείτε με την γλώσσα σεναρίων (scripting language) που σας παρέχει το κέλυφος: είναι το ίδιο δυνατή όσο και η παλιά καλή QBasic, αν όχι δυνατότερη. Έχει μεταβλητές, δομές όπως while, for, case, if... then... else, και πολλές άλλες δυνατότητες: είναι μια καλή εναλλακτική σε μία «πραγματική» γλώσσα προγραμματισμού. Για να γράψετε ένα σενάριο - το αντίστοιχο του αρχείου .BAT στο DOS - αρκεί να γράψετε ένα απλό αρχείο ASCII που να περιέχει τις εντολές σας, να το σώσετε και να το κάνετε εκτελέσιμο με την εντολή <tt/chmod +x <scriptfile>/. Για να το εκτελέσετε, γράψτε το όνομά του. Μία προειδοποίηση: ο βασικός συντάκτης κειμένου του συστήματος είναι ο <tt/vi/, και από την εμπειρία μου συνάγω ότι οι περισσότεροι χρήστες δυσκολεύονται πολύ κατά τη χρήση του. Δεν θα εξηγήσω τη χρήση του: διαβάστε το βιβλίο του Matt Welsh ή ψάξτε για έναν οδηγό στο Διαδίκτυο. Θα πω όμως ότι: <itemize> <item> για να εισάγετε κείμενο, πατήστε <tt>i</tt> και μετά το κείμενό σας· <item> για να διαγράψετε χαρακτήρες, πατήστε <ESC> και μετά <tt>x</tt>· <item> για να βγείτε από τον <tt/vi/ χωρίς να σώσετε το κείμενο, πληκτρολογείστε <ESC> και μετά <tt/:q!/ <item> για να σώσετε το κείμενό σας και να βγείτε, πληκτρολογείστε <ESC> και μετά <tt/:wq/. </itemize> Ένας καλός συντάκτης κειμένου για αρχαρίους είναι ο <tt>joe</tt> που ξεκινά πληκτρολογώντας <tt/jstar/. Έχετε τις ίδιες συντομεύσεις πλήκτρων όπως στους συντάκτες του DOSWin editor. Ο <tt>jed</tt> στο WordStar ή σε μορφή IDE είναι ακόμη καλύτερος. Αν θέλετε συμβουλευτείτε την ενότητα <ref id="Programs" name="Πού θα βρείτε εφαρμογές"> για να δείτε πού θα βρείτε αυτούς τους συντάκτες. Η συγγραφή σεναρίων στο <tt/bash/ είναι ένα εξαιρετικά αχανές θέμα και χρειάζεται ένα βιβλίο από μόνο του! Γι' αυτό και δε θα υπεισέλθω περισσότερο. Θα σας δώσω όμως ένα παράδειγμα σεναρίου κελύφους (shell script), εκ του οποίου μπορείτε να εξάγετε μερικούς βασικούς κανόνες: <code> #!/bin/sh # sample.sh # I am a comment # don't change the first line, it must be there echo "This system is: `uname -a`" # use the output of the command echo "My name is $0" # built-in variables echo "You gave me the following $# parameters: "$* echo "The first parameter is: "$1 echo -n "What's your name? " ; read your_name echo notice the difference: "hi $your_name" # quoting with " echo notice the difference: 'hi $your_name' # quoting with ' DIRS=0 ; FILES=0 for file in `ls .` ; do if [ -d ${file} ] ; then # if file is a directory DIRS=`expr $DIRS + 1` # DIRS = DIRS + 1 elif [ -f ${file} ] ; then FILES=`expr $FILES + 1` fi case ${file} in *.gif|*jpg) echo "${file}: graphic file" ;; *.txt|*.tex) echo "${file}: text file" ;; *.c|*.f|*.for) echo "${file}: source file" ;; *) echo "${file}: generic file" ;; esac done echo "there are ${DIRS} directories and ${FILES} files" ls | grep "ZxY--!!!WKW" if [ $? != 0 ] ; then # exit code of last command echo "ZxY--!!!WKW not found" fi echo "enough... type 'man bash' if you want more info." </code> <sect1> Η πιο C-μαντική γλώσσα <p> Στο UNIX, γλώσσα του συστήματος είναι η C, είτε μας αρέσει είτε όχι. Παρ' όλ' αυτά είναι διαθέσιμες και άλλες γλώσσες, όπως οι Java, FORTRAN, Pascal, Lisp, Basic, Perl, κλπ. Θεωρώντας ως δεδομένο ότι γνωρίζετε C, ιδού κάποιες κατευθυντήριες γραμμές για εσάς που έχετε «χαλάσει» από την Turbo C++ ή όποια άλλη υλοποίηση της C στο DOS. Στο Linux, ο μεταγλωττιστής C λέγεται <tt/gcc/ και δεν έχει καμία από τις φανφάρες που κατά κανόνα συνοδεύουν τις DOS-άδικες υλοποιήσεις: δεν υπάρχει IDE, βοήθεια on-line, ενσωματωμένη υπηρεσία αποσφαλμάτωσης (integrated debugger) κλπ. Είναι απλώς και μόνον ένας μεταγλωττιστής για τη γραμμή εντολών, πολύ δυνατός και αποτελεσματικός. Για να μεταγλωττίσετε τον κώδικα <tt/hello.c/ θα πληκτρολογήσετε: <tscreen><verb> $ gcc hello.c </verb></tscreen> το οποίον θα δημιουργήσει ένα εκτελέσιμο αρχείο ονόματι <tt/a.out/. Για να δώσετε στο εκτελέσιμο άλλο όνομα, πληκτρολογείστε: <tscreen><verb> $ gcc -o hola hello.c </verb></tscreen> Για να συνδέσετε μία βιβλιοθήκη με ένα πρόγραμμα, προσθέστε το διακόπτη -l<όνομα_βιβλιοθήκης>. Παραδείγματος χάριν, για να συνδέσετε τη μαθηματική βιβλιοθήκη: <tscreen><verb> $ gcc -o mathprog mathprog.c -lm </verb></tscreen> (Ο διακόπτης <tt>-l<libname></tt> αναγκάζει τον <tt/gcc/ να συνδέσει τη βιβλιοθήκη <tt>/usr/lib/lib<όνομα_βιβλιοθήκης>.so</tt>· οπότε, ο <tt/-lm/ συνδέει το <tt>/usr/lib/libm.so</tt>). Ωραία μέχρι στιγμής. Όταν, όμως, το πρόγραμμά σας αποτελείται από διάφορα πηγαία αρχεία, τότε χρειάζεστε το πρόγραμμα <tt/make/. Ας υποθέσουμε ότι έχετε γράψει έναν expression parser. Το πηγαίο αρχείο του είναι το <tt/parser.c/ και αυτό περιέχει (#includes) δύο αρχεία header, τα <tt/parser.h/ και <tt/xy.h/. Θέλετε τώρα να χρησιμοποιήσετε τις ρουτίνες του <tt/parser.c/ σε ένα άλλο πρόγραμμα, έστω το <tt/calc.c/, το οποίο στη συνέχεια περιέχει (#includes) το <tt/parser.h/. Μπλέξιμο! Τί πρέπει να κάνετε για να μεταγλωττίσετε το <tt/calc.c/; Θα πρέπει να γράψετε το λεγόμενο <tt/Makefile/, το οποίο δείχνει στον μεταγλωττιστή τις εξαρτήσεις μεταξύ των πηγαίων αρχείων και των αρχείων object. Στο παράδειγμά μας: <code> # This is Makefile, used to compile calc.c # Press the <TAB> key where indicated! calc: calc.o parser.o <TAB>gcc -o calc calc.o parser.o -lm # calc depends on two object files: calc.o and parser.o calc.o: calc.c parser.h <TAB>gcc -c calc.c # calc.o depends on two source files parser.o: parser.c parser.h xy.h <TAB>gcc -c parser.c # parser.o depends on three source files # end of Makefile. </code> Σώστε αυτό το αρχείο ως <tt/Makefile/ και πληκτρολογείστε <tt/make/ για να μεταγλωττίσετε το πρόγραμμά σας· εναλλακτικά, σώστε το ως <tt/calc.mak/, πληκτρολογείστε <tt/make -f calc.mak/, και βεβαίως RMP! Μπορείτε να βρείτε κάποια βοήθεια σχετικά με τις συναρτήσεις της C που καλύπτονται από τις σελίδες εγχειριδίου (man pages), τομέας 3· για παράδειγμα, <tscreen><verb> $ man 3 printf </verb></tscreen> Για να αποσφαλματώσετε τα προγράμματά σας (debug) χρησιμοποιείστε το <tt>gdb</tt>. Για να μάθετε πώς να το χρησιμοποιείτε: <tt>info gdb</tt>. Υπάρχουν πολλές διαθέσιμες βιβλιοθήκες· ανάμεσα στις πρώτες που θα θελήσετε να χρησιμοποιήσετε είναι οι <tt/ncurses/ (εφέ σε textmode), και <tt/svgalib/ (γραφικά κονσόλας). Αν είστε αρκετά γενναίοι να ασχοληθείτε με τον προγραμματισμό στο X11 (δεν είναι τόσο δύσκολο), ιδού κάποιες βιβλιοθήκες που διευκολύνουν τη συγγραφή προγραμμάτων σε Χ11. Δείτε στο <url url="http://www.xnet.com/~blatura/linapp6.html">, έχοντες υπ' όψη ότι το Gtk άρχισε να γίνεται το πρότυπο στο Linux. Πολλοί συντάκτες κειμένου δρουν ως IDE, για παράδειγμα οι <tt/emacs/ και <tt/jed/, έχουν τη δυνατότητα για φωτισμό σύνταξης (syntax highlighting), αυτόματη παραγραφοποίηση (indent), και άλλα. Εναλλακτικά, κατεβάστε το πακέτο <tt/rhide/ από τον τόπο <url url="ftp://sunsite.unc.edu:/pub/Linux/devel/debuggers/">. Είναι ένας κλώνος του Borland IDE και πιστεύω θα σας αρέσει. <sect> Το υπόλοιπο 1% <p> Μάλλον περισσότερο από 1%... <sect1> Η χρήση των tar και gzip <p> Στο UNIX υπάρχουν κάποιες ευρέως χρησιμοποιούμενες εφαρμογές για την δημιουργία πακέτων (archives) και τη συμπίεση αρχείων. Το <tt/tar/ χρησιμοποιείται για την κατασκευή πακέτων - όπως το <tt/PKZIP/ ή το <tt>Winzip</tt>με τη διαφορά ότι δεν συμπιέζει, απλά «πακετάρει». Για να φτιάξετε ένα νέο πακέτο: <tscreen><verb> $ tar -cvf <onoma_arxeiou.tar> <file> [file...] </verb></tscreen> Για να εξάγετε (extract) αρχεία από ένα πακέτο: <tscreen><verb> $ tar -xpvf <onoma_arxeiou.tar> [file...] </verb></tscreen> Για να δείτε τα περιεχόμενα ενός πακέτου: <tscreen><verb> $ tar -tf <onoma_arxeiou.tar> | less </verb></tscreen> Μπορείτε να συμπιέσετε με το <tt/compress/, το οποίον είναι πλέον απηρχαιωμένο και καλόν είναι να μη χρησιμοποιείται πλέον, και με το <tt/gzip/: <tscreen><verb> $ compress <arxeio> $ gzip <arxeio> </verb></tscreen> Έτσι δημιουργείται ένα συμπιεσμένο αρχείο με κατάληξη <tt/.Z/ (από το <tt/compress/) ή <tt/.gz/ (από το <tt/gzip/). Αυτά τα προγράμματα μπορούν να συμπιέσουν μόνο ένα αρχείο κάθε φορά. Για την αποσυμπίεση: <tscreen><verb> $ compress -d <arxeio.Z> $ gzip -d <arxeio.gz> </verb></tscreen> RMP. Υπάρχουν επίσης τα προγράμματα <tt/unarj/, <tt/zip/ και <tt/unzip/ (συμβατά με το PK??ZIP) . Αρχεία με κατάληξη <tt/.tar.gz/ ή <tt/.tgz/ (πακεταρισμένα με <tt/tar/, εν συνεχεία συμπιεσμένα με <tt/gzip/) είναι τόσο συχνά στο UNIX όσο και τα αρχεία .ZIP στο DOS. Για να δείτε τα περιεχόμενα ενός αρχείου <tt/ .tar.gz/: <tscreen><verb> $ tar -ztf <arxeio.tar.gz> | less </verb></tscreen> <sect1> Εγκατάσταση εφαρμογών <label id="Install"> <p> Κατ' αρχάς να διευκρινίσουμε κάτι: η εγκατάσταση εφαρμογών είναι υπόθεση του root. Οι περισσότερες εφαρμογές του Linux διανέμονται ως πακέτα <tt/.tar.gz/, που κατά κανόνα περιέχουν έναν κατάλογο με κατάλληλο όνομα περιέχοντα αρχεία και/ή υποκαταλόγους. Ένας καλός κανόνας είναι να εγκαθιστάτε αυτά τα πακέτα από το <tt>/usr/local</tt> με την εντολή <tscreen><verb> # tar -zxf <archive.tar.gz> </verb></tscreen> και εν συνεχεία διαβάζοντας το αρχείο README ή INSTALL. Στις περισσότερες περιπτώσεις, η εφαρμογή διανέμεται ως πηγαίος κώδικας, τον οποίο θα πρέπει να μεταγλωττίσετε· συνήθως, αρκεί να πληκτρολογήσετε <tt/make/ και μετά <tt>make install</tt>. Αν το πακέτο (archive) περιέχει το σενάριο <tt>configure</tt>, τρέξτε το προηγουμένως. Προφανώς, θα χρειαστείτε το μεταγλωττιστή <tt/gcc/ ή <tt/g++/. Άλλα πακέτα πρέπει να «ανοιχθούν» (unpack) στον κατάλογο <file>/</file>· έτσι συμβαίνει με τα πακέτα <tt/.tgz/ του Slackware. Άλλα πακέτα περιέχουν τα αρχεία, αλλά όχι μέσα σε υποκατάλογο, οπότε πρέπει να προσέχετε για να μην μπλεχτείτε. Πάντοτε να βλέπετε τα περιεχόμενα ενός πακέτου πριν το εγκαταστήσετε. Το Debian και το Red Hat έχουν τις δικές τους μορφές πακέτων, τα <tt/.deb/ και <tt/.rpm/ αντιστοίχως. Το τελευταίο μάλιστα χαίρει ευρείας αποδοχής. Για να εγκαταστήσετε ένα πακέτο <tt/rpm/ πληκτρολογείστε <tscreen><verb> # rpm -i package.rpm </verb></tscreen> <sect1> Χρήσιμες συμβουλές <p> <bf/Κύλιση προς τα πίσω/: πατώντας <SHIFT + PAG UP> (το γκρίζο πλήκτρο) μπορείτε να κυλάτε προς τα πίσω (backscroll) μερικές σελίδες, αναλόγως πόση μνήμη video έχετε διαθέσιμη. <bf/Καθαρισμός της οθόνης/: αν χρησιμοποιήσετε τις <tt/more/ ή <tt/cat/ σε ένα δυαδικό αρχείο (binary file), η οθόνη σας πιθανώς να γεμίσει με σκουπίδια. Για να το διορθώσετε πληκτρολογείστε (χωρίς να βλέπετε) (blind type) <tt/reset/ ή την παρακάτω σειρά χαρακτήρων: <tt/echo CTRL-V ESC c RETURN/. <bf/Επικόλληση κειμένου/: για την κονσόλα, δείτε κάτωθι· όταν είστε στο X, πατήστε με το ποντίκι (click) και μετά σύρτε για να επιλέξετε κείμενο σε ένα παράθυρο <tt/xterm/ και στη συνέχεια πατήστε το μεσαίο πλήκτρο του ποντικιού (ή και τα δύο ταυτοχρόνως αν έχετε ποντίκι δύο πλήκτρων) για να επικολλήσετε. Υπάρχει ακόμη και το <tt/xclipboard/ (δυστυχώς μόνο για κείμενο), όμως μη μπερδευτείτε από την αργή του απόδοση. <bf/Χρήση του ποντικιού/: αν έχετε εγκαταστήσει τον <tt/gpm/, έναν οδηγό ποντικιού για την κονσόλα, μπορείτε να πατήσετε και να σύρετε (click and drag) για να επιλέξετε κείμενο και μετά δεξί κλικ για να επικολλήσετε το επιλεγέν κείμενο. Λειτουργεί ανάμεσα στις πηγαίες κονσόλες (VC). <bf/Μηνύματα του πυρήνα/: ρίξτε μια ματιά στο <tt>/var/adm/messages</tt> ή <tt>/var/log/messages</tt> ως root για να δείτε τί έχει να σας πει ο πυρήνας, συμπεριλαμβανομένων των μηνυμάτων εκκινήσεως. Ίσως βρείτε πρακτική την εντολή <tt/dmesg/. <sect1> Πού θα βρείτε εφαρμογές <label id="Programs"> <p> Αν αναρωτιέστε πού θα βρείτε εφαρμογές για το Linux σας για να αντικαταστήσετε αυτές που χρησιμοποιούσατε στο DOS/Win σας προτείνω τους βασικούς τόπους λογισμικού για Linux: <url url="ftp://sunsite.unc.edu/pub/Linux">, <url url="ftp://tsx-11.mit.edu/pub/linux">, και <url url="ftp://ftp.funet.fi/pub/Linux">. Άλλοι καλοί τόποι για αρχή είναι ο «`Linux Applications and Utilities Page» <url url="http://www.xnet.com/~blatura/linapps.shtml">, και η «επίσημη» ιστοσελίδα του Linux <url url="http://www.linux.org">. <sect1> Κάποια πράγματα που δε μπορούσατε να κάνετε <p> Το Linux μπορεί να κάνει πολλά πράγματα που για τα DOS/Windows ήταν φορτικά, δύσκολα ή ακόμη αδύνατα. Ιδού κάποιες ευκολίες που μπορείτε να γευτείτε: <itemize> <item> η εντολή <tt/at/ σας επιτρέπει να τρέχετε προγράμματα σε μια συγκεκριμένη χρονική στιγμή· <item> η <tt/awk/ είναι μία απλή, αλλά δυνατή γλώσσα που σας επιτρέπει να μεταχειρίζεστε αρχεία δεδομένων και όχι μόνο. Παραδείγματος χάριν, αν <tt/data.dat/ είναι ένα αρχείο δεδομένων με πολλά πεδία, τότε η εντολή <tscreen><verb> $ awk '$2 ~ "abc" {print $1, "\t", $4}' data.dat </verb></tscreen> τυπώνει τα πεδία 1 και 4 καθεμιάς γραμμής του <tt/data.dat/ της οποίας το δεύτερο πεδίο περιέχει τα «abc»· <item> το <tt/cron/ είναι πολύ χρήσιμο για να εκτελεί διάφορες εργασίες περιοδικώς, σε συγκεκριμένη ημερομηνία και ώρα. Πληκτρολογείστε <tt/man 5 crontab/· <item> το <tt/file <όνομα_αρχείου>/ σας λέει τί είδους αρχείο είναι το όνομα_αρχείου (κείμενο ASCII, εκτελέσιμο, πακέτο κλπ)· <item> η <tt/find/ (δείτε επίσης τον Τομέα <ref id="Directories: Trans" name="Κατάλογοι: Μετάφραση Εντολών">) είναι μία από τις πιο δυνατές και χρήσιμες εντολές. Χρησιμοποιείται για να βρίσκει αρχεία που απαντούν σε ορισμένα χαρακτηριστικά και να εκτελεί εργασίες σε αυτά. Η γενική χρήση της <tt/find/ είναι: <tscreen><verb> $ find <directory> <ekfrash> </verb></tscreen> όπου η <ekfrash> περιέχει κριτήρια έρευνας και εργασίες. Παραδείγματα: <tscreen><verb> $ find . -type l -exec ls -l {} \; </verb></tscreen> βρίσκει όσα αρχεία είναι συμβολικοί δεσμοί και τυπώνει το αρχείο στο οποίο δείχνουν. <tscreen><verb> $ find / -name "*.old" -ok rm {} \; </verb></tscreen> βρίσκει όλα τα αρχεία του ζητούμενου είδους και τα διαγράφει, ζητώντας πρώτα την άδειά σας. <tscreen><verb> $ find . -perm +111 </verb></tscreen> βρίσκει όλα τα αρχεία με δικαίωμα (permission) 111 (εκτελέσιμα). <tscreen><verb> $ find . -user root </verb></tscreen> βρίσκει όλα τα αρχεία που ανήκουν στον root. Αυτή έχει πολλές δυνατότητες - RMP· <item> η <tt/grep/ βρίσκει πρότυπα κειμένου (text patterns) στα αρχεία. Για παράδειγμα, η <tscreen><verb> $ grep -l "geology" *.tex </verb></tscreen> βρίσκει τα αρχεία *.tex που περιέχουν την λέξη «geology». Η παραλλαγή της, <tt/zgrep/, λειτουργεί στα συμπιεσμένα αρχεία gzip. RMP· <item> Οι <bf/συνήθεις εκφράσεις/ είναι ένας πολύπλοκος, αλλά πολύ δυνατός τρόπος έρευνας σε κείμενο. Για παράδειγμα, η εντολή <tt>^a[^a-m]X{4,}txt$</tt> βρίσκει μία γραμμή που ξεκινά με `a', ακολουθεί οποιοσδήποτε χαρακτήρας εκτός αυτών του διαστήματος a-m, ακολουθούν τέσσερα ή περισσότερα `X', και τελειώνει σε `txt'. Μπορείτε να χρησιμοποιήσετε συνήθεις εκφράσεις με ανεπτυγμένους συντάκτες, όπως ο <tt>less</tt>, και σε πολλές εφαρμογές. Για μία εισαγωγή πληκτρολογείστε <tt>man grep</tt>· <item> η <tt/script <όνομα_σεναρίου>/ στέλνει τα περιεχόμενα της οθόνης στο <tt/όνομα_σεναρίου/ έως ότου δώσετε την εντολή <tt/exit/. Χρήσιμη για αποσφαλμάτωση· <item> η <tt/sudo/ επιτρέπει στους χρήστες να εκτελούν κάποιες από τις λειτουργίες του root (π.χ. διαμόρφωση και προσαρμογή δίσκων· RMP)· <item> η <tt/uname -a/ σας δίνει πληροφορίες για το σύστημα· <item> οι <tt/zcat/ και <tt/zless/ επιτρέπουν την περιήγηση και piping σε gzip-αρισμένα αρχεία, χωρίς την προηγούμενη αποσυμπίεσή τους. Για παράδειγμα: <tscreen><verb> $ zless textfile.gz $ zcat textfile.gz | lpr </verb></tscreen> <item> οι παρακάτω εντολές είναι επίσης χρήσιμες: <tt>bc, cal, chsh, cmp, cut, fmt, head, hexdump, nl, passwd, printf, sort, split, strings, tac, tail, tee, touch, uniq, w, wall, wc, whereis, write, xargs, znew.</tt> RMP. </itemize> <sect1> Εξάσκηση του UNIX υπό DOS/Windows <p> Είναι απίστευτο, αλλά υπάρχουν εξαίρετα εργαλεία που προσφέρουν ένα UNIX-οειδές περιβάλλον στο DOS/Windows! Ένα από αυτά είναι η σουίτα Djgpp (<url url="http://www.delorie.com/djgpp">) για DOS, ενώ το το Cygnus (<url url="http://www.cygnus.com">) είναι μία πολυπλοκότερη μεταφορά στο Win32. Αμφότερα περιέχουν τα ίδια εργαλεία ανάπτυξης GNU με το Linux· παρ' όλα αυτά δε θα έχετε την ίδια σταθερότητα και απόδοση... Αν θέλετε να πάρετε μία γεύση από το Linux, δοκιμάστε το Djgpp. Κατεβάστε και εγκαταστ είστε τα παρακάτω αρχεία (τη στιγμή που γράφω αυτό, η τελευταία έκδοση είναι η 2.02): <tt>djdev202.zip, bnu281b.zip, bsh1147b.zip, fil316b.zip, find41b.zip, grep22b.zip, gwk303b.zip, lss332b.zip, shl112b.zip.</tt>. Παρέχονται οδηγίες εγκατάστασης και περαιτέρω βοήθεια μπορείτε να βρείτε στον τόπο <url url="news:comp.os.msdos.djgpp">. Ειδικότερα, η χρήση του <tt>bash</tt> στο DOSWin είναι μεγάλη ανακούφιση. Για να το ρυθμίσετε καταλλήλως, διορθώστε το παρεχόμενο αρχείο <tt>BOOT.BAT</tt> ώστε να απεικονίζει την εγκατάστασή σας, και στη συνέχεια τοποθετείστε αυτά τα αρχεία στον οικείο κατάλογό σας (στη διαμέριση των Windows ) αντί αυτών που παρέχονται: <tscreen><verb> # this is _bashrc LS_OPTIONS="-F -s --color=yes" alias cp='cp -i' alias d='ls -l' alias l=less alias ls="ls $LS_OPTIONS" alias mv='mv -i' alias rm='rm -i' alias u='cd ..' </verb></tscreen> <tscreen><verb> # this is _bprof if [ -f ~/_bashrc ]; then . ~/_bashrc fi PS1='\w\$ ' PS2='> ' CDPATH="$CDPATH:~" # stuff for less(1) LESS="-M-Q" # makrys dromeas, siwphlos LESSEDIT="%E ?lt+%lt. %f" # dior8wsh prwths grammhs VISUAL="jed" # syntakths LESSCHARSET=latin1 # kalyterh orash tonismenwn grammatwn export PS1 PS2 CDPATH LS_OPTIONS LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET </verb></tscreen> <sect1> Συνήθεις επεκτάσεις και σχετιζόμενα προγράμματα <p> Θα συναντήσετε διάφορες επεκτάσεις αρχείων. Εξαιρώντας τις πιο σπάνιες (π.χ. γραμματοσειρές κλπ), αυτές είναι: <itemize> <item> <tt/1 ... 8/: σελίδες εγχειριδίου (man pages). Διαβάστε τις με <tt>groff -Tascii -man <αρχείο.1></tt>· <item> <tt/arj/: πακέτα κατασκευασμένα με <tt/arj/· <item> <tt/dvi/: αρχείο παραγόμενο από το ΤeX (βλ. παρακάτω). Χρησιμοποιείστε <tt/xdvi/ για να το δείτε, <tt/dvips/ για να το τρέψετε σε αρχείο PostScript <tt/.ps/· <item> <tt/gz/: πακέτα κατασκευασμένα με <tt/gzip/· <item> <tt/info/: αρχεία info (κάτι σαν εναλλακτικά των man pages). Δείτε τις με <tt/info/· <item> <tt/lsm/: Linux Software Map file. Είναι απλά αρχεία ASCII που περιέχουν την περιγραφή ενός πακέτου· <item> <tt/ps/: αρχείο PostScript. Για να το δείτε ή να το τυπώσετε χρησιμοποιείστε το <tt/gs/ και εναλλακτικά <tt/ghostview/ ή <tt/gv/· <item> <tt/rpm/: πακέτα Red Hat. Μπορείτε να τα εγκαταστήσετε σε κάθε σύστημα με τον διαχειριστή πακέτων <tt/rpm/· <item> <tt/taz, tar.Z/: πακέτα, κατασκευασμένα με <tt/tar/ και συμπιεσμένα με <tt/compress/· <item> <tt/tgz, tar.gz/: πακέτα κατασκευασμένα με <tt/tar/ και συμπιεσμένα με <tt/gzip/· <item> <tt/tex/: αρχείο κειμένου προς εισαγωγή στο TeX, ένα παντοδύναμο σύστημα στοιχειοθεσίας. «Τσιμπήστε» το πακέτο <tt/tex/, διαθέσιμο σε πολλές διανομές· <item> <tt/texi/: αρχείο texinfo, μπορεί να δημιουργήσει τόσο TeX όσο και info αρχεία (<tt/info/). Πάρτε το <tt/texinfo/· <item> <tt/xbm, xpm, xwd/: αρχείο γραφικών· <item> <tt/Z/: πακέτο κατασκευασμένο με <tt/compress/· </itemize> <sect1> Μετατροπή Αρχείων <p> Αν χρειάζεστε να μεταφέρετε αρχεία ανάμεσα στο DOS/Win και το Linux, έχετε υπ' όψη το πρόβλημα «τέλους γραμμής» («end of line» problem). Στο DOS, κάθε γραμμή κειμένου τελειώνει με CR/LF (δηλαδή ASCII 13 + ASCII 10), ενώ στο Linux με LF. Αν διορθώσετε ένα αρχείο του DOS μέσα από το Linux, πιθανότατα κάθε γραμμή θα τελειώνει με ένα περίεργο «M»· ένα αρχείο κειμένου του Linux στο DOS θα φαίνεται σαν ως μία απλή χιλιομετρική γραμμή χωρίς παραγράφους. Για τη σωστή μετατροπή των αρχείων υπάρχουν κάποια εργαλεία, τα <tt/dos2unix/ και <tt/unix2dos/. Αν έχετε αρχεία μόνο κειμένου που περιέχουν τονισμένους χαρακτήρες, σιγουρευτείτε ότι έχουν γίνει μέσα από τα Windows (με Notepad) και όχι σε απλό DOS· διαφορετικά, όλοι οι τονισμένοι χαρακτήρες θα μπερδευτούν. Η μετατροπή αρχείων Word ή WordPerfect σε απλό κείμενο είναι δυνατή, αν και κάπως επικίνδυνη. Θα χρειαστείτε κάποιο από τα εργαλεία που υπάρχουν στους τόπους του CTAN· ένας είναι ο <url url="ftp://ftp.tex.ac.uk">. Κατεβάστε το πρόγραμμα <tt/word2x/ από τον κατάλογο <file>/pub/tex/tools/</file>, ή δοκιμάστε κάποιο από τα προγράμματα του καταλόγου <file>/pub/tex/support/</file>. Ειδικότερα, το <tt>word2x</tt> μετατρέπει αρχεία Word 6, ενώ για αρχεία του Word 97 θα χρειασθείτε το <tt>mswordview</tt> (<url url="http://www.csn.ul.ie/~caolan/docs/MSWordView.html">) που τα τρέπει σε HTML. <sect1> Ελεύθερες Σουίτες γραφείου <p> Αν η μετατροπή αρχείων δεν είναι αρκετή, έχετε τη δυνατότητα να βυθιστεί-τε σε ένα (ελεύθερο! πακέτο, παρόμοιο του Microsoft Office. Η σουίτα StarOffice είναι ελεύθερη για ιδιωτική χρήση. Είναι μεγάλη, κάπως αργή, αλλά παρ' όλ' αυτά πολύ καλή: προσφέρει δυνατότητες που δεν υπάρχουν στο Microsoft Office. Ακόμη, μπορεί να διαβάσει και να γράψει αρχεία των Word και Excel files, αν και η μετατροπή δεν είναι πάντοτε τέλεια. Ιστοσελίδα: <url url="http://www.stardivision.com">. (Σ.τ.Μ.: η σελίδα έχει πλέον αλλάξει, μετά την εξαγορά της StarDivision από την Sun, και πλέον είναι <url url="http://www.sun.com/staroffice">) Άλλο καλό πακέτο είναι το Corel WordPerfect, μία ελεύθερη έκδοση του οποίου παρέχεται στο Διαδίκτυο. Να πω κι άλλα; Τσιμπήστε το! <url url="http://www.corel.com">. <sect> Αυτά, για την ώρα! <label id="The End"> <p> Συγχαρητήρια! Έχετε πλέον αρπάξει κάποια πράγματα σχετικά με το UNIX και είστε έτοιμοι να ξεκινήσετε να δουλεύετε. Έχετε υπ' όψη ότι είναι πολλά αυτά που δεν ξέρετε για το σύστημά σας, οπότε πρέπει να εξασκείστε περισσότερο για να χρησιμοποιείστε το Linux άνετα. Αν αυτό που θέλατε πάντως ήταν να βρείτε μερικές εφαρμογές και να αρχίσετε να τις χρησιμοποιείτε, αυτά που είπα πρέπει να ήταν αρκετά. Έχω την πεποίθηση ότι θα χαίρεστε να δουλεύετε με το Linux και πως καθώς θα περνάει ο καιρός θα μαθαίνετε όλο και περισσότερα - έτσι γίνεται με όλους μας! Είμαι επίσης βέβαιος ότι δε θα επιστρέψετε ποτέ στο DOSWin! Ελπίζω να ήμουν σαφής και να βοήθησα ικανοποιητικά τους 3 ή 4 αναγνώστες μου. <sect1> Copyright (κοπή του right;) <p> Εκτός κι αν αναφέρεται διαφορετικά, τα δικαιώματα των HOWTO του Linux ανήκουν στους αντίστοιχους συγγραφείς τους. Τα HOWTO του Linux μπορούν να αναπαραχθούν και να διανεμηθούν εξ ολοκλήρου ή τμηματικώς, εφ' όσον το παρόν σημείωμα περί copyright παραμένει σε κάθε αντίγραφο. Η εμπορική αναδιανομή επιτρέπεται και ενθαρρύνεται· παρ' όλ' αυτά, ο συγγραφέας θα ήθελε να ενημερώνεται για κάθε τέτοια διανομή. Κάθε μετάφραση, παράγωγη ή συνολική εργασία, που εμπορευματοποιεί οποιοδήποτε HOWTO του Linux πρέπει να καλύπτεται από αυτή τη διακήρυξη του copyright. Αυτό σημαίνει, ότι δεν είναι δυνατόν να παραχθεί παράγωγη εργασία από ένα HOWTO και να επιβληθούν περαιτέρω περιορισμοί στην διανομή του. Εξαιρέσεις αυτών των κανόνων είναι δυνατόν να εγκριθούν υπό συγκεκριμένων προϋποθέσεων· απευθυνθείτε στον διαχειριστή των HOWTO του Linux, στη διεύθυνση που δίδεται κάτωθι. Εν ολίγοις, θα θέλαμε να προωθήσουμε τη διάδοση αυτών των πληροφοριών διαμέσου όσων περισσότερων οδών γίνεται. Παρ' όλ' αυτά, επιθυμούμε να διατηρούμε τα δικαιώματα copyright των HOWTO του Linux και θα θέλαμε να ενημερωνόμαστε για όποια σχέδια αναδιανομής των HOWTO. Για όποιες ερωτήσεις, παρακαλώ επικοινωνήστε με τον Tim Bynum, διαχειριστή των HOWTO του Linux μέσω ηλεκτρονικής επιστολής στη διεύθυνση <url url="linux-howto@sunsite.unc.edu">. <sect1> Άρνηση ευθυνών <p> Το «From DOS to Linux HOWTO» γράφτηκε από τον Guido Gonzato, <url url="REMOVE_MEguido@ibogeo.df.unibo.it">. (Αφαιρέστε το «REMOVE_ME».) Ευχαριστώ πολύ τον Matt Welsh, συγγραφέα του «Linux Installation and Getting Started», τον Ian Jackson, συγγραφέα του «Linux frequently asked questions with answers», τον Giuseppe Zanetti, συγγραφέα του «Linux», σε όλους όσους μου έστειλαν ηλεκτρονικές επιστολές με προτάσεις και ιδιαίτερα στον Linus Torvalds και το GNU που μάς έδωσε το Linux. (Σ.τ.Μ.: Η μετάφραση έγινε από τον Νίκο Θεοδώρου <url url="ntheo@math.auth.gr">. Παρ' ότι η μετάφραση ενός HOWTO δεν είναι ιδιαιτέρως προσφέρουσα προς το σύνολο των Ελλήνων Χρηστών του Linux, η γνώση ότι συνέβαλα έστω και λίγο στην διάδοση του λειτουργικού, είναι για μένα αρκετά ικανοποιητική! Είμαι βέβαιος ότι η παρούσα μετάφραση είναι γεμάτη λάθη, ελπίζω όμως στη βοήθεια όλων σας για τη διόρθωσή τους. ) Αυτό το έγγραφο παρέχεται «ως έχει». Κατέβαλα μεγάλη προσπάθεια να το γράψω όσο ακριβέστερα μπορούσα, αλλά χρησιμοποιείστε τις περιεχόμενες σε αυτό πληροφορίες με δική σας ευθύνη. Σε καμμία περίπτωση δε θα θεωρηθώ υπεύθυνος για όποια απώλεια οφείλετε σε χρήση αυτής της εργασίας. Κάθε ανάδραση είναι καλοδεχούμενη. Για όποια παράκληση, πρόταση, βρισιά κλπ είστε ελεύθεροι να επικοινωνήσετε μαζί μου. Να χαίρεστε το Linux και τη ζωή, Guido <tt/=8-)/ </article>