Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Εθνικό Μετσόβιο Πολυτεχνείο Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού Ενότητα 1 Διάλεξη 1β Σιέττος Κωνσταντίνος
Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειτα σε άδειες χρήσης Crea%ve Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναγράφεται ρητώς.
To Λειτουργικό Σύστηµα LINUX Σιέττος Κωνσταντίνος
Περιεχόµενα Είναι ένα πλήρως networked 32/64-Bit Unix-like Λειτουργικό Σύστηµα Μεταγλωτιστέςόπως C, C++, Fortran Εργαλεία ικτύου όπως ssh, telnet, ftp, ping, traceroute Παρέχει X Windows GUI Μπορεί να συνυπάρξει µε άλλα Λειτουργικά Συστήµατα (Windows) Credits: Καθ.. Γιάννη Παλυβό, Unix µια πρώτη γνωριµία, γ έκδοση, ΕΜΠ
Προέλευση Ο δηµιουργός του είναι ο Linus Torvalds το 1991 Με βοήθεια από προγραµµατιστές από όλο τον κόσµο Σήµερα χρησιµοποιείται σε περισσότερους 10 εκατ. υπολογιστές Περισσότεροι από 1000 προγραµµατιστές δουλεύουν στην εξέλιξη του Όµως ουσιαστικά είναι το UNIX για Pcια Το UNIX ξεκίνησε ως εσωτερική υπόθεση των Εργαστηρίων Bell της ΑΤ&Τ το 1969
Προέλευση: : UNIX Το 1974-19751975 η 6 η Έκδοση του UNIX δόθηκε ελεύθερα στα Πανεπιστήµια Η πιο επιτυχηµένη έκδοση του είναι η B.S.D. Berkeley Software Distribution Η δύναµη του προέρχεται από τις σχέσεις µεταξύ των προγραµµάτων παρά από τα προγράµµατα αυτά καθ αυτά.
Λογισµικό Open Source Είναι ελεύθερο! Μπορείτε να το κατεβάσετε από το Internet π.χ. RedHat http://www.redhat.com/ Τι περιλαµβάνει: Linux kernel X Windows system και GUI Web, e-mail, FTP servers Υποστήριξη εγκατάστασης και προσαρµογής
Περιέχει όλες τις Στοιχειώδεις εντολές του συστήµατος Το λειτουργικό σύστηµα Linux ιαχειρίζεται το Υλικό Πυρήνας Προγράµµατα που εκτελούνται από το κέλυφος Κέλυφος Εργαλεία Μεταφράζει τις εντολές του χρήστη Είναι προγραµµατιζόµενο
Το λειτουργικό σύστηµα Linux: O Πυρήνας Εκτελεί χαµηλού επιπέδου εργασίες Πρόκειται ουσιαστικά για ένα µεγάλο πρόγραµµα Συντηρεί τις ενεργές διεργασίες του συστήµατος ιαχειρίζεται το σύστηµα αρχείων Υπεύθυνο για την µνήµη και τους δίσκους Γραµµένο σε γλώσσα C εν είναι πρακτικό να γράφονται προγράµµατα που επικοινωνούν µε την µηχανή σε ένα τόσο στοιχειώδες επίπεδο
Το λειτουργικό σύστηµα Linux: Το κέλυφος Αποτελεί µια ενδιάµεση επιφάνεια µεταξύ του πυρήνα και του χρήστη Πρόκειται ουσιαστικά για τον ερµηνευτή των εντολών του χρήστη Ουσιαστικά αποσκοπεί στην καλύτερη αλληλεπίδραση χρήστη µηχανής Έχει ενσωµατωµένες δικές του εντολές αλλά ο βασικός του ρόλος είναι να εκτελεί άλλα προγράµµατα
Το λειτουργικό σύστηµα Linux: Τα εργαλεία Γνωστά και ως εφαρµογές (utilities) εν υπάρχει ενδογενής διαφορά ανάµεσα σε ένα πρόγραµµα γραµµένο από χρήστη και σε αυτά που συνοδεύουν το σύστηµα Ανάµεσα σε αυτά είναι οι βασικές γλώσσες προγραµµατισµού Fortran, C
Τι συµβαίνει όταν πληκτρολογήσουµε µια εντολή? % cat file To σύµβολο % αποτελεί ένα προκαθορισµένο προτρεπτικό του κελύφους C Η εντολή cat είναι µια εφαρµογή που χρησιµεύει στο να δίνει σαν έξοδο της το περιεχόµενο του αρχείου file στην οθόνη. Είναι µια εφαρµογή γραµµένη στην C H εµπλοκή του πυρήνα είναι αθέατη. Για να εκτελεσθεί η εντολή πρέπει να αναλάβει δράση ο πυρήνας
Το σύστηµα αρχείων Το Linux βλέπει τα πάντα ως αρχεία Περιφερειακές µονάδες όπως εκτυπωτές, οθόνες κ.λ.π.. έχουν την ίδια βασική µεταχείριση όπως τα κοινά αρχεία Υπάρχουν πέντε διαφορετικά είδη αρχείων (α) Κοινά αρχεία (ordinary files) (β) Αρχεία καταλόγων (directory files) (γ) Αρχεία συσκευών (device files) (δ) Κοµβικά αρχεία (sockets) (ε) Αρχεία διοχέτευσης (pipes)
Βασικοί Κατάλογοι του συστήµατος /bin /home /dev /etc /tmp /usr κατάλογος εντολών Linux κατάλογος που αποθηκεύoνται οι home κατάλογοι των χρηστών κατάλογος αρχείων συσκευών κατάλογος αρχείων συντήρησης του συστήµατος (σαν το Control Panel στα Windows) κατάλογος αποθήκευσης προσωρινών αρχείων κατάλογος αρχείων, προγραµµάτων κ.λπ. για τους χρήστες
ιοχέτευση Εξόδου ls l >output Το αποτέλεσµα της εντολής ls l διοχετεύεται στο αρχείο εξόδου output Παρουσιάζει τα περιεχόµενα του τρέχοντος καταλόγου µε πλήρη στοιχεία
οµή των καταλόγων και διάδροµοι ιάδροµος (Path) home/fodler1/folder3/folder2 (απόλυτος διάδροµος) folder1 folder2 σχετικός διάδροµος περιγράφονται από ένα συγκεκριµένο σηµείο της ιεραρχίας
Ειδικοί συµβολισµοί / Ο κατάλογος ρίζας (root directory). O τρέχων κατάλογος The current directory.. Ο προηγούµενος κατάλογος στο δέντρο ~ Ο home κατάλογος (home directory) Παραδείγµατα:./a το ίδιο αποτέλεσµα όπως το a../folder1/file2 πήγαινε πάνω ένα επίπεδο και κοίτα στον κατάλογο folder για το αρχείο file2
Άδειες αρχείων (File Permissions) ls l -rwxrwxr-x x 1 toro thrilos 5224 Mar 01 03:22 hello rw-rw-r---- 1 toro thrilos 221 Mar 01 03:59 hello.f rw-rw-r---- 1 toro thrilos 1514 Mar 01 03:59 hello.s drwxrwxr-x x 7 toro thrilos 1024 Mar 01 14:52 goals Άδειες Χρήστης -rwxrwxrwx Οµάδα(group) Others permissions Group permissions Owner permissions Directory flag (d=directory)
Bασικές Εντολές Linux pwd :Εµφανίζει τον παρόντα κατάλογο cd <dir> :µεταβάλει τον παρόντα κατάλογο στον κατάλογο dir ls ls -l :παρουσιάζει τα αρχεία στον τρέχοντα κατάλογο :παρουσιάζει τα αρχεία στον τρέχοντα κατάλογο µε πλήρη στοιχεία
Bασικές Εντολές Linux cp <fromfile> <tofile> Αντιγράφει το αρχείο <fromfile> στο αρχείο <tofile> mv <fromfile> <tofile tofile> rm <file> Μεταφορά ονόµατος του αρχείου <fromfile fromfile> σε<tofile> ιαγραφή του αρχείου µε το όνοµα <file> mkdir <newdir> ηµιουργία ενός νέου καταλόγου µε το όνοµα <newdir>
rmdir <dir> Bασικές Εντολές Linux ιαγραφή ενός άδειου καταλόγου at <hour> <day> <file> Εκτέλεση του αρχείου file σε ορισµένη ώρα και ηµέρα cal <month> <year> Παρουσίαση ηµερολογίου του µήνα month το χρόνο year cat n s <file> Εµφάνιση του αρχείου file -n : µε αρίθµηση γραµµών -s : µε αφαίρεση κενών γραµµών
Bασικές Εντολές Linux cat <file1> <file2> > <file3> clear Ένωση των αρχείων file1 και file2 σε ένα τρίτο αρχείο µε όνοµα file3 Καθαρισµός της οθόνης του τερµατικού kill <choice> <process> Τερµατισµός µια ενεργής διεργασίας choice: -9 υποχρεωτικός τερµατισµός
Bασικές Εντολές Linux chmod <who> <what> > <permission> <file> who Αλλαγή του τρόπου προσπέλασης του αρχείου file what permission u: o χρήστης +: προσθέτει δικαίωµα r: ανάγνωσης g: οµάδα χρήστη ο: λοιποί a: όλοι -rwxrwxrwx - :αφαιρεί δικαίωµα w: γραφής =: καθορίζει δικαίωµα απόλυτα x: εκτέλεσης Others permissions Group permissions Owner permissions Directory flag (d=directory)
man <command> who whoami Bασικές Εντολές Linux Εµφάνιση πληροφοριών (help) για την εντολή command Εµφάνιση των ποιων είναι στο σύστηµα Εµφάνιση της ταυτότητας του χρήστη
Ο επεξεργαστής κειµένου vi O vi (visual) editor (επεξεργαστής κειµένου) είναι ο βασικός και µε µεγάλες δυνατότητες επεξεργαστής κειµένου που έρχεται µε όλα τα συστήµατα UNIX/LINUX. Ουσιαστικά πρόκειται για τον βασικό επεξεργαστή κειµένου για το γράψιµο κώδικα σε περιβάλλοντα UNIX/LINUX. Ένας άλλος δηµοφιλής επεξεργαστής κειµένου για περιβάλλοντα UNIX ο οποίος θα πρέπει όµως συνήθως να εισαχθεί ως επιπλέον λογισµικό στο σύστηµα είναι ο emacs. Το πλεονέκτηµα του vi σε σχέση µε άλλους επεξεργαστές είναι ότι η γνώση του επαρκεί για την εργασία σε όλα τα συστήµατα τύπου UNIΧ, παρέχει πλούσιες δυνατότητες επεξεργασίας και τροποποίηση του κειµένου ενώ είναι ο πλέον κατάλληλος για αργού τύπου συνδέσεις στο διαδίκτυο.
Ο επεξεργαστής κειµένου vi vi <file> Ανοίγει το αρχείο file από την γραµµή 1, στήλη 1. Εισαγωγή/ προσθήκη/ διαγραφή κειµένου Μετά το τέλος της εισαγωγής ή της προσθήκης του κειµένου θα πρέπει να πατηθεί το πλήκτρο <Esc> για να επανέλθει ο vi σε θέση εκτέλεσης των άλλων εντολών i a r x : Εισαγωγή κειµένου πριν το κέρσορα. : Προσθήκη κειµένου µετά τον κέρσορα : Αντικατάσταση του χαρακτήρα κάτω από τον κέρσορα : ιαγραφή του χαρακτήρα κάτω από τον κέρσορα
Ο επεξεργαστής κειµένου vi Εισαγωγή/ προσθήκη/ διαγραφή κειµένου Μετά το τέλος της εισαγωγής ή της προσθήκης του κειµένου θα πρέπει να πατηθεί το πλήκτρο <Esc> για να επανέλθει ο vi σε θέση εκτέλεσης των άλλων εντολών dd u ο O : ιαγραφή ολόκληρης της τρέχουσας γραµµής : Αναίρεση της προηγούµενης αλλαγής οπουδήποτε στο κείµενο : Εισαγωγή µιας νέας γραµµής κάτω από την τρέχουσα :Εισαγωγή µιας της γραµµής πάνω από την τρέχουσα
Ο επεξεργαστής κειµένου vi Μετακίνηση του δροµέα j k h l : Μετακίνηση µία γραµµή κάτω : Μετακίνηση µία γραµµή πάνω : Μετακίνηση ένα χαρακτήρα αριστερά :Μετακίνηση ένα χαρακτήρα δεξιά <ctrl>f : Μετακίνηση της οθόνης κατά µια σελίδα κάτω <ctrl> ctrl>b : Μετακίνηση της οθόνης κατά µια σελίδα πάνω <ctrl> ctrl>d : Μετακίνηση της οθόνης κατά µισή σελίδα κάτω <ctrl>u : Μετακίνηση της οθόνης κατά µισή σελίδα πάνω
Ο επεξεργαστής κειµένου vi Σώσιµο/ διάβασµα/ γράψιµο αρχείων :w : Σώζει το τρέχoν αρχείο στον δίσκο :w file : Σώζει το τρέχoν αρχείο στον δίσκο µε το νέο όνοµα file :56, 128w file :56, 128r file :56,$w >> file :Σώζει τις γραµµές 56 έως 128 του τρέχοντος αρχείου σε ένα άλλο αρχείο µε το όνοµα file :Στο τρέχον αρχείο και εκεί που είναι ο δροµέας διαβάζει (εισάγει) τις γραµµές 56 έως 128 του αρχείου µε το όνοµα file : Γράφει τις γραµµές 56 έως το τέλος του τρέχοντος αρχείου ως συνέχεια στις γραµµές του αρχείου µε όνοµα file
Ο επεξεργαστής κειµένου vi Αναζήτηση/ αντικατάσταση κειµένου /Σειρά χαρακτήρων : Αναζήτηση προς τα εµπρός από τον κέρσορα για την «Σειρά χαρακτήρων»? Σειρά χαρακτήρων : Αναζήτηση προς τα πίσω από τον κέρσορα για την «Σειρά χαρακτήρων» n Ν χαρακτήρων» :Μετακίνηση προς τα εµπρός από τον κέρσορα για επόµενη αναζήτηση για την «Σειρά χαρακτήρων» :Μετακίνηση προς τα πίσω από τον κέρσορα για επόµενη αναζήτηση για την «Σειρά :. : Αναγράφεται στο κάτω µέρος της οθόνης ο τρέχον αριθµός της γραµµής που βρίσκεται ο δροµέας
Ο επεξεργαστής κειµένου vi Αναζήτηση/ αντικατάσταση κειµένου := : Αναγράφεται στο κάτω µέρος της οθόνης ο συνολικός αριθµός των γραµµών :%s/ggggg/rrrrr/ : Αναζήτησε την σειρά χαρακτήρων ggggg και αντικατέστησε την µε την σειρά χαρακτήρων rrrr για την πρώτη εµφανιζόµενη περίπτωση σε κάθε γραµµή :%s/ggggg/rrrrr/g : Αναζήτησε την σειρά χαρακτήρων ggggg και αντικατέστησε την µε την σειρά χαρακτήρων rrrr για την όλες τις εµφανιζόµενες περιπτώσεις σε κάθε γραµµή :g/^/m0 : Αντιστροφή όλων των γραµµών!
Ο επεξεργαστής κειµένου vi Κλείσιµο του vi :q (και ENTER) :wq : Έξοδος από τον vi χωρίς εγγραφή του αρχείου στον δίσκο : Έξοδος από τον vi µε εγγραφή του αρχείου στον δίσκο µε το τρέχον όνοµα :x : Έξοδος από τον vi µε εγγραφή του αρχείου µε διαφορετικό όνοµα στον δίσκο από το όνοµα µε το οποίο ανοίχθηκε ο vi :q! :wq! : Έξοδος από τον vi χωρίς εγγραφή του αρχείου στον δίσκο κατευθείαν χωρίς περαιτέρω επιβεβαίωση : Έξοδος από τον vi µε εγγραφή του αρχείου στον δίσκο µε το τρέχον όνοµα χωρίς περαιτέρω επιβεβαίωση
Ο µεταγλωτιστής της Fortran 77 Μορφή Εντολής για f77 <επιλογή> file.f Τα αρχεία µε κατάληξη *.f θεωρούνται πηγαίος κώδικας (source code)
Ο µεταγλωτιστής της Fortran 77 Απλές κλήσεις του Μεταγλωτιστή Κλήση % f77 file.f Παραγόµενο αρχείο a.out Είδος Αρχείου εκτελέσιµο % f77 file1.f file2.f -c µεταγλωτισµός file1.o file2.o συνδέσιµο % f77 ο ο όνοµα-exe file1.o file2.o όνοµα-exe εκτελέσιµο % f77 file.f o όνοµα-exe % f77 file.f -g % dbx όνοµα-exe για χρήση του dbx εκτελέσιµο Για ανεύρεση λαθών
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικόυ έργου του διδάσκοντα Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα Ε.Μ.Π.» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικού πόρους.