7ο Εργαστήριο - Ο φλοιός Bash και η διαμόρφωση του

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "7ο Εργαστήριο - Ο φλοιός Bash και η διαμόρφωση του"

Transcript

1 ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης 7ο Εργαστήριο - Ο φλοιός Bash και η διαμόρφωση του Ο φλοιός γενικά Μεταβλητές Ψευδώνυμα (aliases) Αρχεία εκκίνησης φλοιού Ο Φλοιός login Επεξεργασία της γραμμής εντολών από το φλοιό Ασκήσεις 1

2 Ο φλοιός Bash και η διαμόρφωση του Ο φλοιός γενικά Ανάλογα με το σύστημα Unix ή Linux που χρησιμοποιούμε μας διατίθενται και διαφορετικά κελύφη (shells). Για κάθε χρήστη στη συνέχεια "φορτώνεται" στην κύρια μνήμη ένα διαφορετικό αντίγραφο του φλοιού που παρέχει ένα σύστημα επικοινωνίας μεταξύ του χρήστη και του Unix ή Linux. Οι πιο διαδεδομένοι φλοιοί είναι οι Bourne shell (sh), C shell (csh), Korn shell (ksh), Enhanced C shell (tcsh), Bourne Again Shell (bash), rc, pdksh, tcsh, zsh και ash. Οι φλοιοί συσχετίζονται μεταξύ τους αφού έχουν κοινά στοιχεία και λειτουργίες ή ανήκουν όπως θα λέγαμε στην ίδια ομάδα. Για να δείτε τους διαθέσιμους φλοιούς του συστήματος, δώστε την εντολή : cat /etc/shells. Για να διαπιστώσετε το φλοιό που χρησιμοποιείτε, δώστε την εντολή: echo $SHELL. Για αλλαγή του φλοιού, δώστε την εντολή: chsh, πληκτρολογήστε τον κωδικό σας εφόσον ζητηθεί και μετά τη διαδρομή για το νέο φλοιό. Ο φλοιός Bash μεσολαβεί μεταξύ του πυρήνα και του περιβάλλοντος του χρήστη χωρίς να αποτελεί τμήμα του λειτουργικού συστήματος. Είναι μία επιπλέον εντολή του λειτουργικού συστήματος. ανιχνέυει τις εντολές και εκτελεί τις εφαρμογές. Μετατρέπει την είσοδο του χρήστη σε παραγωγική διαδικασία, διερμηνεύει εντολές και συνδέει τη γραμμή εντολών με το υπόλοιπο σύστημα. Επιπλέον είναι και γλώσσα προγραμματισμού αφού διαθέτει δικές του εντολές, διατηρεί λίστα μεταβλητών, χρησιμοποιεί μεταβλητές περιβάλλοντος και ειδικούς χαρακτήρες, επιτρέπει τη δημιουργία συναρτήσεων, ενώ διαθέτει μηχανισμούς αντικατάστασης εντολών και ακύρωσης των ειδικων χαρακτήρων. Αν φανταστούμε τον πυρήνα (kernel) του λειτουργικού συστήματος Linux στο κέντρο μιας σφαίρας, τότε ο φλοιός είναι το εξωτερικό επίπεδο που περιβάλει τον πυρήνα. Παραμετροποίηση (διαμόρφωση) του φλοιού bash Ο φλοιός διαμορφώνεται με τη χρήση διαφόρων μηχανισμών, όπως: τοπικές μεταβλητές, ψευδώνυμα, συναρτήσεις, τις εντολές set και shopt. Εξάλλου, ο φλοιός διαμορφώνει άλλες εντολές και εφαρμογές, μέσω των μεταβλητών περιβάλλοντος. Όλες οι ρυθμίσεις, μπορούν να γίνουν είτε για ένα σύστημα από το διαχειριστή, είτε για κάθε χρήστη ξεχωριστά από τους ίδιους τους χρήστες. 2

3 Μεταβλητές Γενικά Οι μεταβλητές έχουν θεμελιώδη σημασία για την παραμετροποίηση, τόσο του φλοιού όσο και οποιασδήποτε άλλης εφαρμογής. Μία μεταβλητή είναι μία ετικέτα για κάποια τιμή. Η τιμή μπορεί να αλλάζει με την πάροδο του χρόνου, από ένα σύστημα σε ένα άλλο, από τον ένα χρήστη στον άλλο. Όμως η ετικέτα είναι σταθερή. Έτσι, ένα shell script (δηλαδή, ένα αρχείο που περιέχει εντολές προς τον φλοιό) μπορεί να τοποθετεί μια τιμή στο $HOME, που δεν είναι τίποτα άλλο παρά μία αναφορά στο home directory του χρήστη. Η τιμή αυτή διαφέρει από χρήστη σε χρήστη, αλλά πάντα αναφέρεται στο home directory του χρήστη που εκτελεί το script. Οι μεταβλητές είναι δύο ειδών: τοπικές μεταβλητές ή μεταβλητές φλοιού (local variables, shell variables) που χρησιμοποιούνται μόνο από τον φλοιό και μεταβλητές περιβάλλοντος (environment variables) που χρησιμοποιούνται από το φλοιό για να περνάει τιμές στις εφαρμογές που καλεί. Το αποτέλεσμα είναι ότι οι τοπικές μεταβλητές χρησιμοποιούνται για την παραμετροποίηση του ίδιου του φλοιού, ενώ οι μεταβλητές περιβάλλοντος χρησιμοποιούνται για την παραμετροποίηση άλλων εντολών. Για να δούμε τις μεταβλητές και τις τιμές τους χρησιμοποιούμε τις εντολές set, env και echo. Η εντολή set εμφανίζει όλες τις μεταβλητές, η env μόνο τις μεταβλητές περιβάλλοντος και η echo την τιμή μίας μόνο μεταβλητής. Τοπικές μεταβλητές Οι τοπικές μεταβλητές (ή μεταβλητές φλοιού) είναι μεταβλητές που ο φλοιός δεν τις περνάει σε άλλες εντολές. Χρησιμοποιούνται για την ρύθμιση του ίδιου του φλοιού. Χρησιμοποιούνται επίσης και σε shell scripts, όπως θα δούμε και σε άλλη παράγραφο. Ο χρήστης έχει τη δυνατότητα να ορίσει, στον τρέχοντα φλοιό που εργάζεται, τις δικές του τοπικές μεταβλητές. Δημιουργία τοπικής μεταβλητής Για να ορίσουμε μία μεταβλητή, δίνουμε την εντολή: VARIABLE=VALUE Συμβατικά, τα ονόματα των μεταβλητών είναι με κεφαλαία γράμματα. Τα ονόματα των μεταβλητών και οι τιμές τους δεν πρέπει να περιέχουν κενούς χαρακτήρες. Έτσι αν η τιμή περιέχει κενά, πρέπει να χρησιμοποιούνται διπλά εισαγωγικά ("). Π.χ. WELCOME="Welcome to Linux" Για να εμφανίσουμε την τιμή μιας μεταβλητής, χρησιμοποιούμε την echo: Π.χ. echo $WELCOME Πρέπει να επισημανθεί ότι, για να αναφερθούμε στην τιμή μίας μεταβλητής χρησιμοποιούμε το χαρακτήρα $ πριν από το όνομα της μεταβλητής. Παράδειγμα $ first_name=john $ surname=tsaknakis Τότε η εντολή : $ echo $first_name $surname, θα εμφανίσει : John Tsaknakis. 3

4 Για μία πλήρη λίστα των τοπικών μεταβλητών, συμβουλευτείτε το τμήμα Shell variables στη σελίδα bash του man. Συνήθεις τοπικές μεταβλητές HISTFILESIZE: ορίζει πόσες εντολές αποθηκεύονται στο αρχείο του ιστορικού. HISTFILE: ορίζει το όνομα του αρχείου στο οποίο αποθηκεύονται οι εντολές του ιστορικού. HISTSIZE: ορίζει πόσες εντολές «θυμάται» ο φλοιός κατά τη διάρκεια της συνεδρίας του χρήστη. COLUMNS: ορίζει το πλάτος (σε χαρακτήρες) του τερματικού. LINES: ορίζει το ύψος (σε γραμμές) του τερματικού. Η μεταβλητή PS1, ορίζει τη μορφή του συμβόλου προτροπής εντολών (prompt) και μπορεί να διαμορφωθεί από το χρήστη με ακολουθίες χαρακτήρων. Μερικοί από τους χαρακτήρες (escape sequences) που χρησιμοποιούνται για τη μορφοποίηση τoυ prompt είναι οι: - \d για την ημερομηνία - \h για το όνομα της μηχανής - \t για την ώρα - \u για το όνομα χρήστη - \w για τον τρέχοντα κατάλογο εργασίας - \! για τον αύξοντα αριθμό της εντολής στο ιστορικό - \$ για ενδεικτικό απλού χρήστη (εμφανίζει #) ή χρήστη με δικαιώματα διαχείρισης (εμφανίζει $) Παράδειγμα: Η εντολή : PS1="\u@\h:\w<\!>\$" θα εμφανίζει το prompt ως εξής: adam@ekdd-srv-01:/tmp<235>$ Για μία πλήρη λίστα των escape sequences συμβουλευτείτε το τμήμα PROMPTING στη σελίδα bash του man. Μεταβλητές περιβάλλοντος Οι τοπικές μεταβλητές υπάρχουν μόνο μέσα στον τρέχοντα φλοιό. Ο φλοιός περνάει σε άλλους φλοιούς μόνο τις μεταβλητές περιβάλλοντος, όπως είναι για παράδειγμα η μεταβλητή EDITOR, η οποία χρησιμοποιείται για να γνωρίζουν οι διάφορες εφαρμογές με ποια εφαρμογή προτιμά ο χρήστης να επεξεργάζεται αρχεία κειμένου. Οι μεταβλητές περιβάλλοντος υπάρχουν στον οικείο κατάλογο και στον κατάλογο /etc. Για τον φλοιό bash, οι προκαθορισμένες μεταβλητές περιβάλλοντος ορίζονται στο αρχείο /etc/profile και για τον κάθε χρήστη στο αρχείο.bash_profile που υπάρχει στον προσωπικό του κατάλογο. 4

5 Δημιουργία μεταβλητής περιβάλλοντος Ο παραδοσιακός τρόπος για τη δημιουργία μία μεταβλητής περιβάλλοντος είναι πρώτα να δημιουργήσουμε μία τοπική μεταβλητή και μετά να την κάνουμε export σε μεταβλητή περιβάλλοντος. Παράδειγμα: $ EDITOR=/usr/bin/vim $ export EDITOR Με την πρώτη εντολή δημιουργείται μία τοπική μεταβλητή EDITOR που περιέχει το εκτελέσιμο αρχείο μαζί με το path της εφαρογής κειμένου που προτιμά ο χρήστης και με την δεύτερη εντολή η μεταβλητή EDITOR μετατρέπεται σε μεταβλητή περιβάλλοντος. Ο φλοιός bash υποστηρίζει και συντετμημένη σύνταξη. $ export EDITOR=/usr/bin/vim Συνήθεις μεταβλητές περιβάλλοντος Ορισμένες συχνά χρησιμoποιούμενες μεταβλητές περιβάλλοντος είναι οι παρακάτω: HOME. Είναι το πλήρες όνομα διαδρομής - μονοπάτι για το home directory του χρήστη LOGNAME. Είναι ο κωδικός χρήστη (user ID) ή το όνομα του λογαριασμού (π.χ. tsaknakis). LANG. Είναι το αναγνωριστικό της προκαθορισμένης γλώσσας που πρέπει να χρησιμοποιούν οι εφαρμογές. PWD. Είναι ο τρέχων κατάλογος εργασίας. EDITOR. Εϊναι ο επιθυμητός text editor του χρήστη LESS. Είναι οι επιλογές για την εντολή less. SHELL. Είναι το μονοπάτι για το φλοιό στον οποίο κάνατε login. USER. Είναι το όνομα του λογαριασμού του χρήστη. TERM. Ορίζει τον τύπο του τερματικού που χρησιμοποιείτε. Σε περίπτωση που το τερματικό σας δε δουλεύει σωστά, π.χ. επειδή ανοίξατε ένα δυαδικό αρχείο, εκτελέστε την εντολή reset. PATH. Η μεταβλητή PATH περιέχει μία λίστα καταλόγων στους οποίους βρίσκονται οι εντολές. Έτσι, όταν δεν δίνουμε μονοπάτι για μία εντολή, ο φλοιός αναζητά την εντολή στους καταλόγους αυτούς και εκτελεί την πρώτη που συναντά και ταιριάζει με την εντολή της οποίας την εκτέλεση ζητήσαμε. Η εντολή which ψάχνει στη λίστα των καταλόγων και επιστρέφει το πλήρες μονοπάτι της εντολής που θα εκτελεστεί. Για παράδειγμα, η εκτέλεση της εντολής which less, θα μας ενημερώσει για το πλήρες μονοπάτι του αρχείου το οποίο θα εκτελεστεί όταν ζητήσουμε την εκτέλεση της εντολής less. Για να εκτελέσουμε την εντολή less που βρίσκεται σε άλλο αρχείο και όχι σε αυτό που επιστρέφει η which, αρκεί να ζητήσουμε την εντολή μαζί με το μονοπάτι της, π.χ../less. PS1. Είναι το κύριο προτρεπτικό σήμα (prompt string) που εμφανίζει το Λ.Σ. (π.χ. $). 5

6 PS2. Εϊναι ο δείκτης > που χρησιμοποιείται για να συνεχιστεί η συμπλήρωση της εντολής στην από κάτω γραμμή. ΤΖ. Χρησιμοποιείται για τον καθορισμό της ζώνης ώρας (time zone) του συστήματος. MAIL. Ορίζει το γραμματοκιβώτιο (mailbox) του χρήστη. Πρόκειται για το αρχείο που αποθηκεύονται τα μηνύματα που λαμβάνει ο χρήσης μέσω ηλεκτρονικού ταχυδρομείου (π.χ. /var/mail/john). MAILCHECK. Ορίζει κάθε πότε το σύστημα θα ελέγχει αν υπάρχει νέο μήνυμα ( ) στο γραμματοκιβώτιο του χρήστη. Για παράδειγμα αν έχει τιμή 300 το Λ.Σ. κάθε 5 λεπτά θα πραγματοποιεί έλεγχο για τη λήψη νέου και στην περίπτωση νέας άφιξης θα εμφανίσει το μήνυμα : "You have mail". Χρήσιμες εντολές Η εντολή env εμφανίζει τις μεταβλητές περιβάλλοντος που υπάρχουν στο κέλυφος. Η εντολή set εμφανίζει όλες τις μεταβλητές που υπάρχουν στο κέλυφος. Η εντολή unset χρησιμοποιείται για να αφαιρεθεί μία μεταβλητή από το κέλυφος. Η εντολή printenv μπορεί να χρησιμοποιηθεί για να τυπώσει το περιεχόμενο μιας μεταβλητής, όταν δοθεί το όνομα της (π.χ. printenv PWD). Χρήση ειδικών χαρακτήρων στην γραμμή εντολών Η γραμμή εντολών του φλοιού bash παρέχει πολλές ευκολίες στο χρήστη. Οι σημαντικότερες από αυτές είναι: Αντικατάσταση μεταχαρακτήρων (File globbing) File globbing: είναι η λειτουργία αντικατάστασης των wildcards (ή μεταχαρακτήρων ή χαρακτήρων-μπαλαντέρ) *, ταιριάζει με οποιοδήποτε πλήθος χαρακτήρων?, ταιριάζει με ένα μόνο (οποιοδήποτε) χαρακτήρα [a-z], ταιριάζει με οποιοδήποτε χαρακτήρα ανήκει σε αυτό το εύρος [^a-z], ταιριάζει με οποιοδήποτε χαρακτήρα δεν ανήκει σε αυτό το εύρος Η εντολή echo μπορεί να χρησιμοποιηθεί για να ελέγξουμε αν η αντικατάσταση των μεταχαρακτήρων έγινε όπως σκοπεύαμε, πριν εκτελέσουμε μία εντολή με μεταχαρακτήρες. 6

7 Το πλήκτρο Tab Το πλήκτρο Tab χρησιμοποιείται για να συμπληρώσουμε το όνομα εντολής ή αρχείου (που πρέπει να είναι όρισμα σε μία εντολή) Αγκύλες {} Οι αγκύλες { και } χρησιμοποιούνται για να δημιουργούμε πρότυπα συμβολοσειρών. Για το διαχωρισμό των συμβολοσειρών χρησιμοποιείται ο χαρακτήρας κόμμα (,). Αν ο πρώτος χαρακτήρας είναι κόμμα, εννοείται η κενή συμβολοσειρά. H εντολή echo x{a,b} είναι ισοδύναμη με την echo xa xb. H εντολή cp file.txt{,-save} είναι ισοδύναμη με την cp file.txt file.txt-save. Αποτελέσματα εντολών Μπορείτε να συμπεριλάβετε τα αποτελέσματα της εκτέλεσης μίας εντολής, χρησιμοποιώντας το $( ) ή τα ``. Οι εντολές: echo "This machine is named: $(hostname)" echo "This machine is named: `hostname`" παράγουν τα ίδια αποτελέσματα. Αρχικά θα εκτελεστεί η εντολή hostname και το αποτέλεσμά της θα αντικατασταθεί στην εντολή που δώσαμε. Μαθηματικές πράξεις Ορισμένες μαθηματικές πράξεις μπορούν να εκτελεστούν από το φλοιό. Με χρήση της εντολής expr:, π.χ. echo Area: `expr $X \* $Y`. Η χρήση της expr δεν είναι βολική γιατί έχει αυστηρό συντακτικό. Με χρήση της $[ ]: Οι εντολές echo Area: $[$X*$Y] echo Area: $[ $X * $Y ] και echo Area: $[ $X*$Y ] είναι ισοδύναμες, γιατί το συντακτικό είναι ανεκτικό. Βασικές πράξεις που εκτελούνται από το φλοιό και οι τελεστές τους: πρόσθεση (+), αφαίρεση (-), πολλαπλασιασμός (*), διαίρεση (/), ύψωση σε δύναμη (**), υπόλοιπο διαίρεσης (%). Στη σελίδα bash του man, τμήμα ARITHMETIC EVALUATIONS, υπάρχει πλήρης κατάλογος των αριθμητικών πράξεων που μπορεί να εκτελέσει ο φλοιός. 7

8 Ακύρωση της σημασίας των ειδικών χαρακτήρων Για να ακυρώσουμε την σημασία των ειδικών χαρακτήρων και να τους χειριστούμε ως συνηθισμένους χαρακτήρες πρέπει να ενημερώσουμε το φλοιό. Ο χαρακτήρας backslash (\) Η εντολή echo Your cost: \$5.00 δεν θα αναζητήσει μεταβλητή (ακυρώνεται η ειδική σημασία του χαρακτήρα $). Έστω ότι θέλουμε να βρούμε όλα τα αρχεία που βρίσκονται στον τρέχοντα κατάλογο και το όνομά τους ξεκινάει από file*. Αν εκτελέσουμε την εντολή: find file* ο φλοιός θα μας επιστρέψει όλα τα αρχεία των οποίων το όνομα αρχίζει με "file". Εμείς όμως θέλουμε να επιστραφούν μόνο τα αρχεία των οποίων το όνομα αρχίζει με "file*". Για να βρούμε αυτό που ψάχνουμε πρέπει να δώσουμε την εντολή ως find file\* Μονά και διπλά εισαγωγικά Ορισμένες φορές θέλουμε να ακυρώσουμε την ειδική σημασία πολλών χαρακτήρων στη σειρά, π.χ. στην εντολή echo \*\*\* SALES \*\*\* είναι πιο βολικό (και πιο σωστό) να χρησιμοποιήσετε τα μονά ή τα διπλά εισαγωγικά. Τα μονά εισαγωγικά ακυρώνουν την ειδική σημασία όλων των χαρακτήρων. Τα διπλά εισαγωγικά ακυρώνουν την ειδική σημασία όλων των χαρακτήρων εκτός από τους $, $(), $[], `, \,!. Σε πολλές περιπτώσεις η χρήση μονών ή διπλών εισαγωγικών παράγει τα ίδια αποτελέσματα. Συνδυασμοί πλήκτρων για τη γραμμή εντολών <Ctrl+a>, μετακίνηση στην αρχή της γραμμής <Ctrl+e>, μετακίνηση στo τέλος της γραμμής <Ctrl+u>, διαγραφή μέχρι την αρχή της γραμμής <Ctrl+k>, διαγραφή μέχρι το τέλος της γραμμής 8

9 Ψευδώνυμα (aliases) Τα ψευδώνυμα είναι συντομογραφίες μεγαλύτερων εντολών. Αν υπάρχουν εντολές που τις χρησιμοποιείτε συχνά αλλά είναι αρκετά μεγάλες, μπορείτε να τις κάνετε μικρότερες χρησιμοποιώντας ψευδώνυμα με την εντολή alias. Για να ορίσετε ένα ψευδώνυμο με την alias, πρώτα θα πρέπει να επιλέξετε το κατάλληλο αρχείο, για να τροποποιήσετε αναλογα με το κέλυφος που χρησιμποιείτε: Αν είστε χρήστης του bash πρέπει να χρησινοποιείτε το αρχείο : ~/.bashrc Αν είστε χρήστης του kash πρέπει να χρησινοποιείτε το αρχείο : ~/.kashrc Αν είστε χρήστης του csh πρέπει να χρησινοποιείτε το αρχείο : ~/.cshrc Πριν από κάθε τροποποίηση προτείνετε η διατήρηση ενός αντίγραφου ασφαλείας. Στη συνέχεια εκτελέστε την εντολή: nano.bashrc με την οποία επιλέγετε ο διορθωτής nano για την τροποποίηση του αρχείου.bashrc (για το φλοιό bash). Αφού προσθέσουμε όσα ψευδώνυμα θέλουμε, αποθηκεύσουμε τις τροποποιήσεις και βγαίνουμε από τον διορθωτή κειμένου nano. Παραδείγματα Με την εντολή : alias quit="logout", δημιουργούμε το ψευδώνυμο quit για την εντολή logout. Με την εντολή : alias c=clear, δημιουργούμε το ψευδώνυμο c για την εντολή clear. Με την εντολή : alias rm="rm -i", δημιουργούμε το ψευδώνυμο rm για την εντολή rm -i. Έτσι κάθε φορά που καλείται η εντολή rm θα εκτελείται η rm -i. Για να χρησιμοποιήσπυμε την εντολή rm, αντί του alias της (rm i), δίνουμε την εντολή βάζοντας μπροστά της το χαρακτήρα \: \rm r Junk. Αν θέλουμε να δούμε όλα τα ψευδώνυμα,τότε καλούμε την εντολή alias χωρίς ορίσματα. Για να δούμε ένα συγκεκριμένο ψευδώνυμο, χρησιμοποιούμε την εντολή alias με το ψευδώνυμο που θέλουμε να δούμετο ως όρισμα του. π.χ. alias dir. 9

10 Αρχεία εκκίνησης φλοιού Τα shell startup scripts (αρχεία εκκίνησης φλοιού) εκτελούνται κατά την εκκίνηση του φλοιού από τον χρήστη. Οι περισσότερες από τις ρυθμίσεις που είδαμε μέχρι τώρα ισχύουν μόνο για τον τρέχοντα φλοιό. Ωστόσο, προφανώς, όλοι οι χρήστες επιθυμούν οι ρυθμίσεις τους (μεταβλητές, ψευδώνυμα και άλλες ρυθμίσεις) να ισχύουν γενικά (όποτε ξεκινούν ένα νέο φλοιό) και όχι μόνο στον τρέχοντα φλοιό. Γι αυτό το λόγο χρησιμοποιούμε τα shell startup scripts, δηλαδή αρχεία εντολών που εκτελούνται κατά την εκκίνηση του φλοιού. Οι περισσότερες από αυτές τις ρυθμίσεις γίνονται από το διαχειριστή του συστήματος, αλλά και οι χρήστες μπορούν να ρυθμίζουν ότι αφορά το περιβάλλον εργασίας τους. Αυτό γίνεται με την επεξεργασία των startup scripts που βρίσκονται στο home directory κάθε χρήστη. Ο Φλοιός login O φλοιός login είναι ο πρώτος φλοιός που εκτελείται για κάθε χρήστη, είναι δηλαδή ο φλοιός στον οποίο γίνεται η επιβεβαίωση της ταυτότητας του χρήστη. Οι φλοιοί που ξεκινούν από τον χρήστη με άλλο τρόπο και όχι με το login, π.χ. με την εκτέλεση της εντολής bash, καλούνται no-login shell. Η διαφορά μεταξύ των login και no-login shells είναι ότι εκτελούνται διαφορετικά αρχεία εκκίνησης (startup scripts). Σειρά εκτέλεσης startup scripts Στα login shells εκτελούνται, με τη σειρά, τα ακόλουθα startup scripts: 1. /etc/profile 2. /etc/profile.d 3. ~/.bash_profile 4. ~/.bashrc 5. /etc/bashrc Κάθε script μπορεί να κάνει αλλαγές σε ότι έχει οριστεί ήδη σε προηγούμενο script. Έτσι η μεταβλητή PATH ορίζεται στο script /etc/profile αλλά, κατόπιν, αλλάζει η τιμή της στο ~/.bash_profile. Στα no-login shells εκτελούνται, με τη σειρά, τα ακόλουθα startup scripts: 1. ~/.bashrc 2. /etc/bashrc 3. /etc/profile.d Όπως βλέπετε, τα no-login shells εκτελούν κάποια από τα script που εκτελούν τα login shells αλλά με διαφορετική σειρά. Τυπικές εντολές στα startup scripts Οι τυπικές εντολές που μπαίνουν στα startup scripts είναι οι ακόλουθες: ορισμοί τοπικών μεταβλητών, όπως η PS1, 10

11 ορισμοί μεταβλητών περιβάλλοντος, όπως η PATH και η LESS, ορισμοί ψευδωνύμων ή ενδεχομένως αναίρεση ανεπιθύμητων ψευδωνύμων που ορίστηκαν νωρίτερα με άλλο script. Αρχεία startup scripts Ιδιαίτερο ρόλο κατέχουν τα παρακάτω αρχεία - scripts: 1. Το αρχείο /etc/profile. Το αρχείο /etc/profile είναι το πρώτο που εκτελείται όταν ξεκινά ένα login shell. Τα no-login shells δεν εκτελούν το script αυτό. Το αρχείο αυτό είναι «καθολικό», εκτελείται δηλαδή για όλους τους χρήστες του συστήματος που χρησιμοποιούν ως login shell ένα φλοιό τύπου Bourne (όπως ο sh και ο bash). Στο script αυτό ορίζονται οι τιμές των μεταβλητών PATH, USER, LOGNAME, MAIL, HOSTNAME, HISTSIZE και INPUTRC καθώς επίσης εκτελούνται και τα scripts που βρίσκονται στον κατάλογο: /etc/profile.d. Στον κατάλογο /etc/profile.d περιέχονται πρόσθετα shell scripts,τα οποία μπορούν να επεξεργαστούν μόνο από τον διαχειριστή και όχι από τους χρήστες. 2. Τα αρχεία ~/.bash_profile και ~/.bashrc. Τα αρχεία ~/.bash_profile και ~/.bashrc ανήκουν στη δικαιοδοσία του χρήστη. Ο χρήστης μπορεί να θέσει μεταβλητές, ψευδώνυμα, και εντολές που θέλει να εκτελούνται όταν εκκινεί ένα shell. Το αρχείο ~/.bash_profile εκτελείται για login shells μόνο, ενώ το ~/.bashrc εκτελείται από login και no-login shells. Μην βάζετε ποτέ στο ~/.bashrc script εντολές που έχουν έξοδο στην οθόνη, όπως π.χ. η εντολή date. Τέτοιες εντολές πρέπει να μπαίνουν στο script ~/.bash_profile μόνο. 3. Το αρχείο ~/.bash_logout Το αρχείο ~/.bash_logout χρησιμοποιείται σπάνια. Εκτελείται κάθε φορά που ο χρήστης βγαίνει από το login shell, δηλαδή κάθε φορά που ο χρήστης βγαίνει από το σύστημα. Είναι πολύ χρήσιμο για να εκτελούμε προγράμματα κατά την έξοδό μας από το σύστημα. Ενδεικτικά αναφέρουμε: Αντίγραφο ασφαλείας των αρχείων του χρήστη. Διαγραφή προσωρινών αρχείων. 11

12 Επεξεργασία της γραμμής εντολών από το φλοιό Η διαδικασία της επεξεργασίας της γραμμής εντολών από το φλοιό είναι αρκετά σύνθετη. Μία αρκετά απλή εκδοχή της διαδικασίας αυτής είναι: Η γραμμή εντολών χωρίζεται σε λέξεις που χωρίζονται από κενά, tab, αλλαγές γραμμών, και άλλους ειδικούς χαρακτήρες όπως:,,, &, ;, (, ), <, >. Αντικατάσταση συναρτήσεων και ψευδωνύμων. Επέκταση των χαρακτήρων { και } και δημιουργία των αντίστοιχων συμβολοσειρών. Αντικατάσταση του χαρακτήρα ~ με την κατάλληλη συμβολοσειρά (~, ~bob, ~/files). Αντικατάσταση παραμέτρων και μεταβλητών. Αντικατάσταση των $, ${ }, $ (( )), $ [ ], $ ( ). Η γραμμή χωρίζεται σε λέξεις ξανά. Αντικατάσταση μεταχαρακτήρων σε ονόματα αρχείων (file globbing). Ανακατεύθυνση σε αρχεία, >, >>, <, <<, 2>, 2>>. Η εντολή εκτελείται. Συνθήκες Στο Unix δεν υπάρχει ξεχωριστή έννοια συνθήκης όπως σε άλλες γλώσσες. Οποιαδήποτε εντολή μπορεί να χρησιμοποιηθεί σαν συνθήκη. Για παράδειγμα μια εντολή read μπορεί να είναι συνθήκη για κάποιον βρόχο. Εφόσον η εντολή εκτελείται σωστά επιστρέφει κωδικό σωστής εκτέλεσης και η «συνθήκη» επαληθεύεται. Εφόσον εκτελεστεί λάθος επιστρέφει κωδικό λάθους και η συνθήκη είναι ψευδής. Ο κωδικός αυτός στο UNIX επιστρέφεται στην παράμετρο $? και για σωστή εκτέλεση είναι ο αριθμός 0 ενώ για λάθος εκτέλεση είναι ο αριθμός 1. Ορισμένες εντολές επιστρέφουν περισσότερους κώδικες για λάθος εκτέλεση όπως πχ η εντολή expr που θα δούμε παρακάτω. if Η εντολή if χρησιμοποιείται για εκτέλεση εντολών κάτω από συνθήκες. Η σύνταξή της είναι η ακόλουθη. if <συνθήκη>; then <εντολές> elif <συνθήκη>; then <εντολές> else <εντολές> fi Τα τμήματα elif και else είναι προαιρετικά, ενώ μπορούμε να έχουμε οσαδήποτε elif θέλουμε. Στην εκτέλεση της if εκτελούνται ΜΟΝΟ οι εντολές του ενός βρόχου, εκείνου που πληροί την συνθήκη. Μπορούμε να έχουμε πολλές if την μια μέσα στην άλλη. Η κάθε if πρέπει να βρίσκεται εξ ολοκλήρου μέσα σε ένα και μόνο μπλοκ της αμέσως προηγούμενης if. 12

13 test Η πιο συνηθισμένη εντολή-συνθήκη είναι η εντολή test. Η εντολή test παίρνει εσωτερικά συνθήκες με την έννοια που τις έχουμε γνωρίσει σε άλλες γλώσσες. Μπορεί να συγκρίνει αριθμούς (μόνο ακέραιους) να συγκρίνει strings, να δεχτεί λογικούς τελεστές και να κάνει πολλά ακόμα ενδιαφέροντα πράγματα. Άμα η εσωτερική συνθήκη της test ισχύει η test σαν εντολή επιστρέφει 0 στο $?, όπως κάθε εντολή που εκτελείτε σωστά, ενώ άμα δεν ισχύει επιστρέφει 1. Η ανοιχτή αγκύλη ( [ ) είναι ένας δεσμός (link) στην test και έτσι η εντολή μπορεί να γραφτεί και με την χρήση αγκύλων. Σε αυτήν την περίπτωση χρειάζεται να κλείσει η εντολή με την κλειστή αγκύλη ( ] ). Προσοχή στην σύνταξη όταν χρησιμοποιούμε αγκύλες γιατί πρέπει να βάλουμε κενά μετά την ανοιχτή ( [ ) και πριν την κλειστή αγκύλη. ( ] ) Συνήθως η εντολή test γράφεται με αγκύλες γιατί είναι πιο ευκολοδιάβαστη και σπάνια την βλέπουμε γραμμένη αλλιώς. Θα δείξουμε παραδείγματα και με τους δυο τρόπους γραφής: test s filename γράφεται και [ -s filename ] test r filename γράφεται και [ -r filename ] Ο παρακάτω πίνακας περιέχει της χρήσεις των παραμέτρων που δέχεται η test (options). Προσοχή στα κενά μέσα στα [ ]. 1. Εξετάζοντας αρχεία: [ -s file ] Το αρχείο δεν είναι άδειο [ -r file ] Το αρχείο είναι readable. Έχουμε δικαίωμα να το διαβάσουμε. [ -w file ] Το αρχείο είναι writeable. Έχουμε δικαίωμα να γράψουμε σε αυτό [ -x file ] Το αρχείο είναι executable. Έχουμε δικαίωμα να το εκτελέσουμε [ -f file ] Το αρχείο υπάρχει και είναι απλό αρχείο [ -d file ] Το αρχείο υπάρχει και είναι κατάλογος (directory) [ -c file ] Το αρχείο υπάρχει και είναι ειδικό αρχείο χαρακτήρων. Συνήθως συσκευή χαρακτήρων όπως ένα modem. [ -b file ] Το αρχείο υπάρχει και είναι ειδικό αρχείο τύπου block. Συνήθως συσκευή block όπως ένας σκληρός δίσκος 2. Εξετάζοντας strings Προσοχή στα κενά στις δυο πλευρές του = και των άλλων συμβόλων. [ -z string ] Το μήκος του string είναι μηδενικό. (0 χαρακτήρες) [ -n string ] Το μήκος του string είναι μη μηδενικό (έχει χαρακτήρες) [ string1 = string2 ] Τα δυο strings είναι ίδια [ string1!= string2 ] Τα δυο strings είναι διαφορετικά [ string ] Το string δεν είναι null 13

14 3. Εξετάζοντας ακεραίους. Προσοχή και εδώ στα κενά [ int1 eq int2 ] Οι δυο ακέραιοι είναι ίσοι [ int1 ne int2 ] Οι δυο ακέραιοι είναι άνισοι [ int1 ge int2 ] Ο πρώτος ακέραιος είναι μεγαλύτερος ή ίσος με τον δεύτερο [ int1 gt int2 ] Ο πρώτος ακέραιος είναι μεγαλύτερος από τον δεύτερο [ int1 le int2 ] Ο πρώτος ακέραιος είναι μικρότερος ή ίσος με τον δεύτερο [ int1 lt int2 ] Ο πρώτος ακέραιος είναι μικρότερος από τον δεύτερο 4. Λογικοί τελεστές. Προσοχή και εδώ στα κενά! condition Άρνηση συνθήκης. Λογικός Τελεστής NOT Condition1 a condition2 Λογικός τελεστής ΚΑΙ (AND). Επιστρέφεται αληθής τιμή όταν ΚΑΙ οι δυο συνθήκες είναι αληθείς. Condition1 o condition2 Λογικός τελεστής Ή (OR). Επιστρέφεται αληθής τιμή όταν τουλάχιστον μια συνθήκη είναι αληθής. \( group \) Ειδικές παρενθέσεις που χρησιμοποιούνται για ομαδοποίηση συνθηκών. (escaped parentheses) Παραδείγματα: if [ $3 = Monday ] Εξετάζει αν η τρίτη παράμετρος είναι το string Monday. Αν αυτό συμβαίνει είναι αληθής if [ -s /etc/passwd ] Εξετάζει αν το αρχείο /etc/passwd έχει κάτι μέσα γραμμένο και δεν είναι άδειο. Αν συμβαίνει αυτό τότε η συνθήκη είναι αληθής. Η εκτέλεση της εντολής δείχνει ταυτόχρονα ότι το αρχείο υπάρχει αλλά δεν μας λέει τι είναι. Θα μπορούσε πχ να είναι κατάλογος if [! -d /etc/group ] Εξετάζει αν το αρχείο /etc/group είναι κατάλογος. Με την άρνηση της συνθήκης η test είναι αληθής όταν το αρχείο ΔΕΝ είναι κατάλογος. (Πράγμα που συμβαίνει γιατί το αρχείο /etc/group είναι κανονικό αρχείο) if [ -u /bin/passwd ] Εξετάζει αν το αρχείο /bin/passwd έχει δικαίωμα SUID πράγμα που συμβαίνει οπότε η συνθήκη είναι αληθής και η test επιστρέφει 0. (κωδικός σωστής εκτέλεσης) if [ $? eq 0 ] Εξετάζει αν εκτελέστηκε σωστά η προηγούμενη εντολή. Αν όντως εκτελέστηκε σωστά η συνθήκη είναι αληθής. 14

15 if [ $? eq 1 ] Εξετάζει αν εκτελέστηκε λάθος η τελευταία εντολή. if [ \( $? eq 0 \) a \( $? eq 1 \) ] Για να είναι αληθής αυτή η συνθήκη πρέπει ταυτόχρονα η τελευταία εντολή να εκτελέστηκε ΚΑΙ σωστά ΚΑΙ λάθος, πράγμα αδύνατον οπότε η συνθήκη είναι ΠΑΝΤΑ ψευδής if [ \( $? eq 0 \) o \( $? eq 1 \) ] Για να είναι αληθής αυτή η συνθήκη πρέπει η τελευταία εντολή να έδωσε κωδικό σωστής εκτέλεσης 0 ή λάθος εκτέλεσης 1. Αληθής ΠΑΝΤΑ σχεδόν για όλες τις εντολές. Εξαιρούνται μόνο ορισμένες που επιστρέφουν και άλλους κωδικούς σφάλματος όπως πχ η expr if [ $# -gt 5 ] Εξετάζει αν ο αριθμός παραμέτρων είναι μεγαλύτερος του 5 if [ -f /etc/printcap ] Εξετάζει αν το αρχείο /etc/printcap είναι κανονικό αρχείο και υπάρχει. while Η εντολή while χρησιμοποιείτε όπως σε όλες τις γλώσσες για την εκτέλεση ενός κύκλου εντολών κάτω από κάποια συνθήκη. (Conditional loop). Η σύνταξή της είναι ως εξής: while <συνθήκη>;do <εντολές> done Θυμίζουμε ότι στην θέση της συνθήκης μπαίνει κάποια εντολή. (Συνήθως η εντολή test) Ο βρόχος while εκτελείτε όσο η συνθήκη είναι αληθής. Όσο δηλαδή η εντολή που παίζει το ρόλο της συνθήκης επιστρέφει κωδικό σωστής εκτέλεσης (κωδικός 0). until Παρόμοια με τον βρόχο while. Η until όμως εκτελείται όσο η συνθήκη είναι ψευδής. Μόλις η συνθήκη γίνει αληθής σταματάει η εκτέλεση του βρόχου. Η σύνταξή της είναι: until <συνθήκη>;do <εντολές> done expr Η εντολή expr χρησιμοποιείτε για να υπολογίζει αριθμητικές εκφράσεις ακεραίων. Ως γνωστό το κέλυφος του UNIX δεν αναγνωρίζει αριθμούς, οπότε τον ρόλο αυτό τον αναλαμβάνει η expr. Παραδείγματα: i=`expr $i +1` Προσθέτει το 1 στο i και βάζει το αποτέλεσμα ξανά στο i. var=`expr $var 5` Αφαιρεί το 5 από το var και βάζει το αποτέλεσμα ξανά στο var 15

16 var1=`expr $var \* 3` Πολλαπλασιάζει το var με το 3 και βάζει το αποτέλεσμα στο var1 var2=`expr $var \/ 4` Διαιρεί το var με το 4 και βάζει το αποτέλεσμα στο var2 Προσοχή όλη η έκφραση περικλείεται σε ανάποδα εισαγωγικά (`) που σημαίνουν ότι η εντολή εκτελείται. Η χρήση του \ πριν από το * και το / είναι αναγκαία γιατί αυτά τα σύμβολα για το κέλυφος είναι μεταχαρακτήρες. Παράδειγμα expr σε while loop. i=1 while [ $i lt 100 ];do echo $i i=`expr $i + 1` done Η χρήση του i είναι για μετρητής εκτελέσεων του βρόχου. H expr επιστρέφει κωδικό εκτέλεσης μεγαλύτερο ή ίσο του 2 όταν προσπαθούμε να κάνουμε πράξεις με μεταβλητές που ΔΕΝ είναι αριθμοί. Άσκηση test1 Κάντε ένα πρόγραμμα σεναρίου κελύφους (script) με μια παράμετρο που να δημιουργεί ένα αρχείο με όνομα την παράμετρο. Αν δοθεί χωρίς παράμετρο να δημιουργεί το myfile.txt. Για περισσότερες από μια παραμέτρους να βγαίνει μήνυμα λάθους. Αν το αρχείο με όνομα την παράμετρο υπάρχει να κάνει έλεγχο επικάλυψης (overwrite) να μας ρωτάει τι να κάνουμε και να κάνει ότι του πούμε. Λύση: if [ $# -gt 1 ];then echo usage: test1 parameter elif [ $# -eq 0 ]; then touch myfile.txt else if [ -f $1 ];then echo file $1 exists. Overwrite? Yy/Nn read answer if [ \( $answer!= y \) a \( $answer!= Y \) ];then echo file NOT overwritten else >$1 echo file $1 overwritten fi else touch $1 echo file $1 created fi fi 16

17 Ασκήσεις 1. Δημιουργείστε ένα ψευδώνυμο το οποίο να εμφανίζει το history, με αντίστροφη σειρά εκτέλεσης. 2. Στην άσκηση αυτή θα δημιουργήσετε νέα ψευδώνυμα και θα τα αποθηκεύσετε ώστε να μπορείτε να τα χρησιμοποιήσετε ξανά. Φτιάξτε ένα ψευδώνυμο της εντολής clear που θα έχει το όνομα c. Ελέγξτε ότι φτιάξατε το ψευδώνυμο και εκτελέστε το. Τώρα θα φτιάξετε ένα ακόμη ψευδώνυμο, με όνομα lr. Το ψευδώνυμο lr, θα εκτελεί την εντολή ls με τις ακόλουθες επιλογές. (α) Το ψευδώνυμο θα εμφανίζει τη «μακρυά» μορφή της εντολής ls (long listing) (β) To ψευδώνυμο θα δείχνει και τα κρυφά αρχεία (γ) Θα εμφανίζει δείκτη (indicator) για το είδος του αρχείου, δίπλα στο όνομα κάθε αρχείου (δ) Θα εμφανίζει τα αποτελέσματα, ταξινομημένα κατά το χρόνο τελευταίας τροποποίησής τους (modification time) (ε) Τα αποτελέσματα θα ταξινομούνται με αντίστροφη σειρά Θα χρειαστεί να συμβουλευτείτε την εντολή man για την εντολή ls. Τα ψευδώνυμα που έχετε φτιάξει, δεν θα ισχύουν αν βγείτε από το σύστημά σας. Θα χρειαστεί να τα αποθηκεύσετε, προκειμένου να είναι διαθέσιμα στο μέλλον. Ανοίξτε το αρχείο ~/.bashrc και κάτω από τη γραμμή: #User specific aliases and functions προσθέστε τα δύο ψευδώνυμα που φτιάξατε. Βγείτε από το σύστημά σας και μπείτε ξανά. Δοκιμάστε τα ψευδώνυμα που αποθηκεύσατε. 3. Στην άσκηση αυτή θα αλλάξετε την προτροπή εντολών σας (prompt). Αν χρειαστεί συμβουλευτείτε τη σελίδα bash του man (ψάξτε για τη συμβολοσειρά PROMPTING). Σε ένα τερματικό, δείτε την τιμή της προτροπής εντολών. (α) Αλλάξτε την προτροπή σε "UBUNTU -> ". Προσέξτε να προσθέσετε ένα κενό χαρακτήρα μετά το > ώστε να ξεχωρίζουν οι εντολές από την προτροπή. (β) Τώρα να αλλάξετε την προτροπή ώστε να δείχνει το όνομα του συστήματός σας (hostname) και το χαρακτήρα $. (γ) Αλλάξτε την προτροπή εντολών ώστε να δείχνει και τον αύξοντα αριθμό εντολής από το ιστορικό. (δ) Αλλάξτε την προτροπή εντολών ώστε να δείχνει και το πλήρες μονοπάτι του τρέχοντα καταλόγου εργασίας, ανάμεσα στο όνομα συστήματος και την αρίθμηση των εντολών. Να εμφανίζει το χαρακτήρα : (στ) Τώρα ανοίξτε το αρχείο ~/.bashrc και αποθηκεύστε την τελευταία μορφή της προτροπής. Αφού αποθηκεύσετε το αρχείο, ανοίξτε ένα νέο τερματικό για να ελέγξετε ότι η προτροπή σας είναι όντως η επιθυμητή. 17

18 4. Όταν μία εντολή περιέχει μία άλλη εντολή περιεχόμενη σε backquotes (` `), ο φλοιός εκτελεί πρώτα την εντολή που βρίσκεται μέσα στα (` `) και το αποτέλεσμα αντικαθιστάται πριν την εκτέλεση της πρώτης εντολής. Χρησιμοποιήστε αυτή τη δυνατότητα για να εκτελέσετε την εντολή ls l για το πλήρες όνομα του αρχείου που εκτελείται όταν τρέχετε gzip. 18

9ο Εργαστήριο - Ο φλοιός Bash και η διαµόρφωση του

9ο Εργαστήριο - Ο φλοιός Bash και η διαµόρφωση του ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τµήµα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήµατα (Εργαστήριο) Διδάσκων: I. Τσακνάκης 9ο Εργαστήριο - Ο φλοιός Bash και η διαµόρφωση του Ο φλοιός γενικά Μεταβλητές Ψευδώνυµα (aliases)

Διαβάστε περισσότερα

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τµήµα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήµατα (Εργαστήριο) Διδάσκων: I. Τσακνάκης. 7ο Εργαστήριο

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τµήµα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήµατα (Εργαστήριο) Διδάσκων: I. Τσακνάκης. 7ο Εργαστήριο ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τµήµα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήµατα (Εργαστήριο) Διδάσκων: I. Τσακνάκης 7ο Εργαστήριο Συµπίεση αρχείων Χρήση ειδικών χαρακτήρων στην γραµµή εντολών 1 Συµπίεση αρχείων

Διαβάστε περισσότερα

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών Λειτουργικά Αριστείδης Ηλίας Συστήματα Ι Φ ρ ο ν τ ι σ τ ή ρ ι ο Shell Scripting Εισαγωγή Ένα shell script είναι μια λίστα εντολών που εκτελούνται ακολουθιακά Εκτελούνται ανάλογα με το κέλυφος και για

Διαβάστε περισσότερα

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:03 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Λύβας Χρήστος chrislibas@ssl-unipi.gr Μανουσόπουλος Χρήστος cman@unipi.gr Αρχική επιμέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΔΕΣΜΕΥΜΕΝΑ ΟΝΟΜΑΤΑ +- Υπάρχουν ορισμένες

Διαβάστε περισσότερα

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:04 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I Πιτροπάκης Νικόλαος Υποψήφιος Διδάκτορας Contact: npitrop@unipi.gr Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr If at first you don't succeed, call it version

Διαβάστε περισσότερα

Μερικές άλλες χρήσιμες εντολές

Μερικές άλλες χρήσιμες εντολές 1 Μερικές άλλες χρήσιμες εντολές whoami (Εμφανίζει το όνομα του τρέχοντος χρήστη) pwd (Εμφανίζει το όνομα του τρέχοντος καταλόγου) cat text file name (Παρουσιάζει στην οθόνη το περιεχόμενο ενός αρχείου

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr Operating System (O.S) O.S Types Windows 1981 Macintosh 1984 Linux 1991 Unix 1969 ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ UNIX

Διαβάστε περισσότερα

ΜΑΘΗΜΑ: ΕΙΑΓΩΓΗ ΣΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 9o ΕΡΓΑΣΤΗΡΙΟ

ΜΑΘΗΜΑ: ΕΙΑΓΩΓΗ ΣΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 9o ΕΡΓΑΣΤΗΡΙΟ 9o ΕΡΓΑΣΤΗΡΙΟ ΣΤΟΧΟΣ σενάρια φλοιού ΑΣΚΗΣΗ 1 Να γράψετε ένα σενάριο φλοιού (shell script) που : 1. θα δέχεται ως ορίσματα εισόδου : το όνομα ενός καταλόγου (να ελέγξετε την ύπαρξη του καταλόγου). μια επέκταση

Διαβάστε περισσότερα

Πως δημιουργούμε ένα νέο αρχείο κειμένου; Με τρεις τρόπους:

Πως δημιουργούμε ένα νέο αρχείο κειμένου; Με τρεις τρόπους: Αρχεία Πως δημιουργούμε ένα νέο αρχείο κειμένου; Με τρεις τρόπους: Με την εντολή touch: touch test.txt δημιουργούμε ένα κενό αρχείο test.txt. Mε την εντολή echo: Η echo λειτουργεί σαν αντίλαλος, δηλαδή

Διαβάστε περισσότερα

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό Υπολογιστικά συστήματα: Στρώματα 1 ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗς ΠΛΗΡΟΦΟΡΙΚΗΣ επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό δεδομένα Εισαγωγή στο Unix Περιεχόμενα Εισαγωγή 2 Εισαγωγή

Διαβάστε περισσότερα

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Τμημα Πληροφορικης και Τηλεματικης Τσάμη Παναγιώτα ΑΜ: 20833 ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Άσκηση 1 Αθήνα 13-12-2011 Αναφορά Ενότητα 1 A Δημιουργήστε στο φλοιό 3 εντολές (alias) που η

Διαβάστε περισσότερα

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:01 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στο Unix

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στο Unix ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Εισαγωγή στο Unix Υπολογιστικά συστήματα: Στρώματα 1 επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό δεδομένα Περιεχόμενα 2 Εισαγωγή

Διαβάστε περισσότερα

3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX

3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης 3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX Αρχικός φάκελος χρήστη Home directory

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

Διαβάστε περισσότερα

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας Τ.Ε.Ι ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ & ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΟΙΚΗΣΗΣ Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας Πτυχιακή εργασία του φοιτητή Γιαννακίδη Αποστόλη Επιβλέπων καθηγητής Τσούλος

Διαβάστε περισσότερα

Εισαγωγή στα Λειτουργικά Συστήματα

Εισαγωγή στα Λειτουργικά Συστήματα Εισαγωγή στα Λειτουργικά Συστήματα S E T Δ Ι Α Φ Α Ν Ε Ι Ω Ν 10 S C R I P T S Α Ν Τ Ω Ν Η Σ Σ Ι Δ Η Ρ Ο Π Ο Υ Λ Ο Σ Φλοιός (Shell) 2 Είναι το πρόγραμμα που διερμηνεύει (interpreter) τις εντολές που εισάγονται

Διαβάστε περισσότερα

Shell Scripts: loops / if / test

Shell Scripts: loops / if / test Shell Scripts: loops / if / test Loops with for while until for variable in list_of_values ne while εντολή (επιτυχής) ne until εντολή (επιτυχής) ne For in exi times apo ayti ti lista in 1 2 alla kai alles

Διαβάστε περισσότερα

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ Κεφαλαία και μικρά γράμματα ελληνικού αλφαβήτου: Α Ω και α ω Κεφαλαία και μικρά γράμματα λατινικού αλφαβήτου: A Z και a z Αριθμητικά ψηφία: 0 9 Ειδικοί χαρακτήρες: + - * / =. ( ),! & κενός

Διαβάστε περισσότερα

Μερικές άλλες χρήσιμες εντολές

Μερικές άλλες χρήσιμες εντολές 1 Μερικές άλλες χρήσιμες εντολές whoami (Εμφανίζει το όνομα του τρέχοντος χρήστη) pwd (Εμφανίζει το όνομα του τρέχοντος καταλόγου) less (Το ίδιο με την εντολή «cat», αλλά επιτρέπει την κύλιση στο κείμενο.

Διαβάστε περισσότερα

Επαναληπτικές Ασκήσεις

Επαναληπτικές Ασκήσεις Επαναληπτικές Ασκήσεις Δημιουργήστε ένα φάκελο test, κάτω από το home directory του χρήστη (~). ~ test z1 z2 z3 z4 z5 z6 z7 a1.txt a2.txt a3.txt a4.txt Σχήμα 1 1. Μέσα στον test, δημιουργείστε με χρἠση

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 2 -ΑΚΥΡΩΣΗ ΣΗΜΑΣΙΑΣ ΕΙΔΙΚΩΝ ΧΑΡΑΚΤΗΡΩΝ

ΑΣΚΗΣΗ 2 -ΑΚΥΡΩΣΗ ΣΗΜΑΣΙΑΣ ΕΙΔΙΚΩΝ ΧΑΡΑΚΤΗΡΩΝ -n δεν αφήνει γραμμή SCRIPTS FILES ΟΛΑ ΤΑ SCRIPT les πρέπει να είναι ΕΚΤΕΛΕΣΙΜΑ: chmod +x myscript Παράδειγμα ενός απλού script με όνομα myscript "This is my rst script" -n "I am the user: " whoami Summary7

Διαβάστε περισσότερα

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1 Πανεπιστήμιο Κύπρου Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη της Πληροφορικής και Πληροφοριακά Συστήματα Εργαστήριο - ΕΠΛ003 Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο UNIX Μέρος 1 Παναγιώτης

Διαβάστε περισσότερα

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

Διαβάστε περισσότερα

Linux με τη χρήση κονσόλας

Linux με τη χρήση κονσόλας Linux με τη χρήση κονσόλας Κεφάλαιο 2 Κείμενα Χρυσούλα Παπάζογλου Πανεπιστήμιο Μακεδονίας, Βιβλιοθήκη και Κέντρο Πληροφόρησης Υπηρεσία Ασύγχρονης Τηλεκπαίδευσης Θεσσαλονίκη, Μάρτης 2009 Το υλικό διατίθεται

Διαβάστε περισσότερα

2ο Εργαστήριο. Εισαγωγική στο Λ.Σ. LINUX Γενικές εντολές συστήματος και χρηστών

2ο Εργαστήριο. Εισαγωγική στο Λ.Σ. LINUX Γενικές εντολές συστήματος και χρηστών ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης 2ο Εργαστήριο Εισαγωγική στο Λ.Σ. LINUX Γενικές εντολές συστήματος και χρηστών Πίνακας Εντολών

Διαβάστε περισσότερα

ΟΛΑ ΤΑ SCRIPT files πρέπει να είναι ΕΚΤΕΛΕΣΙΜΑ: $*, : ΟΛΑ - Η λίστα (ο πίνακας) με τα ορίσματα $# πλήθος παραμέτρων. one two third parameter

ΟΛΑ ΤΑ SCRIPT files πρέπει να είναι ΕΚΤΕΛΕΣΙΜΑ: $*, : ΟΛΑ - Η λίστα (ο πίνακας) με τα ορίσματα $# πλήθος παραμέτρων. one two third parameter SCRIPTS FILES ΟΛΑ ΤΑ SCRIPT les πρέπει να είναι ΕΚΤΕΛΕΣΙΜΑ: LAB8 chmod +x myscript $*, $@ : ΟΛΑ - Η λίστα (ο πίνακας) με τα ορίσματα $# πλήθος παραμέτρων Σχόλια AΣΚΗΣΗ 1 - for και παράμετροι εντολής (script

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Σύντομες εισαγωγικές σημειώσεις για την. Matlab Σύντομες εισαγωγικές σημειώσεις για την Matlab Δήλωση Μεταβλητών Για να εισάγει κανείς δεδομένα στη Matlab υπάρχουν πολλοί τρόποι. Ο πιο απλός είναι στη γραμμή εντολών να εισάγουμε αυτό που θέλουμε και

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 4 η Τελεστές Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

Διαβάστε περισσότερα

ΤΕΙΘ ΣΤΕΦ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 3o ΕΡΓΑΣΤΗΡΙΟ

ΤΕΙΘ ΣΤΕΦ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 3o ΕΡΓΑΣΤΗΡΙΟ 3o ΕΡΓΑΣΤΗΡΙΟ ΣΤΟΧΟΣ Εξοικείωση με τον χειρισμό αρχείων και καταλόγων με wildcards. Άδειες χρήσης. ΑΣΚΗΣΗ 1 Δημιουργείστε στον τρέχων κατάλογο τα παρακάτω αρχεία: hello.dat hello.doc hello.exe hello1.exe

Διαβάστε περισσότερα

Λειτουργικά Συστήματα. Άσκηση Πράξη. Shell Programming

Λειτουργικά Συστήματα. Άσκηση Πράξη. Shell Programming Λειτουργικά Συστήματα Άσκηση Πράξη Shell Programming Resources Μπορείτε να βρείτε ένα καταπληκτικό tutorial για το bash shell στο: http://linuxcommand.org/ 2 Γενικά Το κέλυφος (shell) προσφέρει ένα εναλλακτικό

Διαβάστε περισσότερα

Τυπικές χρήσεις της Matlab

Τυπικές χρήσεις της Matlab Matlab Μάθημα 1 Τι είναι η Matlab Ολοκληρωμένο Περιβάλλον Περιβάλλον ανάπτυξης Διερμηνευμένη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρμογών Ευκολία διατύπωσης Cross platform (Wintel, Unix, Mac) Τυπικές χρήσεις

Διαβάστε περισσότερα

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων. Shell Programming

Εργαστήριο Λειτουργικών Συστημάτων. Shell Programming Εργαστήριο Λειτουργικών Συστημάτων Shell Programming Resources Μπορείτε να βρείτε ένα καταπληκτικό tutorial για το bash shell στο: http://linuxcommand.org/ 2 Γενικά Το κέλυφος (shell) προσφέρει ένα εναλλακτικό

Διαβάστε περισσότερα

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ Μάθημα 3ο Λογαριασμοί χρηστών Μιχαηλίδης Παναγιώτης Περιεχόμενα Λογαριασμοί χρηστών Το αρχείο /etc/passwd To αρχείο /etc/shadow To αρχείο /etc/group Προσθήκη χρηστών

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

Διαβάστε περισσότερα

Λειτουργικά Συστήματα. Shell Programming

Λειτουργικά Συστήματα. Shell Programming Λειτουργικά Συστήματα Shell Programming Resources Μπορείτε να βρείτε ένα καταπληκτικό tutorial για το bash shell στο: http://linuxcommand.org/ 2 Γενικά Το κέλυφος (shell) προσφέρει ένα εναλλακτικό περιβάλλον

Διαβάστε περισσότερα

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης. 8ο Εργαστήριο

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης. 8ο Εργαστήριο ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης 8ο Εργαστήριο Χρήστες και Ομάδες Χρηστών Εντολές su και sudo Δικαιώματα Αρχείων Ειδικά Δικαιώματα

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Β Μέρος Δομή Ελέγχου if-elif-else Επαναληπτική Δομή Ελέγχου while Επαναληπτική Δομή Ελέγχου for Αλληλεπίδραση χρήστη-προγράμματος Συναρτήσεις Η δομή

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

Διαβάστε περισσότερα

Εργαστήριο ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ UNIX

Εργαστήριο ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ UNIX Εργαστήριο ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ UNIX Εισαγωγή Ξεκινάμε την εργαστηριακή μελέτη των Λειτουργικών Συστημάτων των Υπολογιστικών Συστημάτων εξετάζοντας αρχικά το λειτουργικό σύστημα Unix. Σκοπός του εργαστηρίου

Διαβάστε περισσότερα

Σημειωματάαριο Δευτέρας 16 Οκτ. 2017

Σημειωματάαριο Δευτέρας 16 Οκτ. 2017 Σημειωματάαριο Δευτέρας 16 Οκτ. 2017 Λίστες και ανακύκλωση for Είδαμε στην αρχή (ξανά) μερικά βασικά πράγματα για λίστες. Λίστα είναι μια πεπερασμένη ακολουθία από αντικείμενα (αριθμούς, strings, άλλες

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές Σκοπός του εργαστηρίου αυτού είναι η εξοικείωση με κάποιες εφαρμογές που θα μας φανούν πολύ χρήσιμες κατά τη διάρκεια του μαθήματος της Εισαγωγής στον Προγραμματισμό.

Διαβάστε περισσότερα

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Εργαστήριο 4: 4.1 Η Δομή Ελέγχου if Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Γενική Μορφή: Παρατηρήσεις:

Διαβάστε περισσότερα

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα; Λίστα για ψώνια Έννοιες: αρχεία- άνοιγμα- εγγραφή διάβασμα Προαπαιτούμενα : δομή επιλογής, επανάληψης, συναρτήσεις, λίστες Ο Άκης, τώρα που έμαθε και τις λίστες στην Python αποφάσισε να φτιάξει μια λίστα

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

Διαβάστε περισσότερα

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I Πιτροπάκης Νικόλαος Υποψήφιος Διδάκτορας Contact: npitrop@unipi.gr Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr Life would be so much easier if we only

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Επισκόπηση Λ.Σ. Εργαστηριακές Ασκήσεις

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Επισκόπηση Λ.Σ. Εργαστηριακές Ασκήσεις ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Εργαστηριακές Ασκήσεις Υλικό από: Modern Operating Systems Laboratory Exercises, Shrivakan Mishra Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο

Διαβάστε περισσότερα

Εισαγωγή στο λειτουργικό σύστηµα Unix

Εισαγωγή στο λειτουργικό σύστηµα Unix Εισαγωγή στο λειτουργικό σύστηµα Unix Εισαγωγή Περιεχόµενα Λειτουργίες του Λ.Σ. Unix Λογαριασµοί Username Password Userid και Groupid Home Directory Κέλυφος Σύστηµα Αρχείων Pathname examples Pathname σχετικής

Διαβάστε περισσότερα

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

Διαβάστε περισσότερα

3 ο Εργαστήριο Μεταβλητές, Τελεστές

3 ο Εργαστήριο Μεταβλητές, Τελεστές 3 ο Εργαστήριο Μεταβλητές, Τελεστές Μια μεταβλητή έχει ένα όνομα και ουσιαστικά είναι ένας δείκτης σε μια συγκεκριμένη θέση στη μνήμη του υπολογιστή. Στη θέση μνήμης στην οποία δείχνει μια μεταβλητή αποθηκεύονται

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ 9.1 Εντολές Εισόδου/εξόδου Στην Pascal, 1. Tα δεδομένα των προγραμμάτων λαμβάνονται: είτε από το πληκτρολόγιο είτε από ένα αρχείο με τη χρήση των διαδικασιών read και readln,

Διαβάστε περισσότερα

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 4ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΟΙ ΤΕΛΕΣΤΕΣ ΣΥΓΚΡΙΣΗΣ Με τους τελεστές σύγκρισης, συγκρίνουμε τις

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Περίληψη Προηγούμενου Επισκόπηση αρχείων και επεξεργασία κειμένου Εντολές file,

Διαβάστε περισσότερα

Προγραμματισμός Διαχείρισης Συστημάτων Ι

Προγραμματισμός Διαχείρισης Συστημάτων Ι Προγραμματισμός Διαχείρισης Συστημάτων Ι Μάθημα 3ο Επεξεργαστές κειμένου Μιχαηλίδης Παναγιώτης Επεξεργαστές κειμένου Στα προηγούμενα μαθήματα είδαμε εντολές για τον χειρισμό αρχείων στο σύστημα αρχείων

Διαβάστε περισσότερα

Εντολές ελέγχου ροής if, for, while, do-while

Εντολές ελέγχου ροής if, for, while, do-while Εντολές ελέγχου ροής if, for, while, do-while 1 Μαρτίου 014 1 Εντολές εκτέλεσης υπό συνθήκη Μπορούμε να εκτελέσουμε εντολές της γλώσσας σε περίπτωση που κάποια συνθήκη ισχύει χρησιμοποιώντας την εντολή

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στο Λ.Σ. UNIX Εργαστηριακές Σημειώσεις Εισαγωγή στο UNIX Αρμοδιότητες των Λ.Σ. Διαχείριση πόρων o o Συσκευές I/O (disk, keyboard, mouse, terminal) Μνήμη Διαχείριση

Διαβάστε περισσότερα

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο) TEC610 (ΣΤ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Εαρινό εξάμηνο Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά

Διαβάστε περισσότερα

Η Απάντηση. Φύλλο Εργασίας. Μηνύματα

Η Απάντηση. Φύλλο Εργασίας. Μηνύματα Η Απάντηση Φύλλο Εργασίας Στο βιβλίο The Hitchhiker s Guide to the Galaxy, περιγράφεται μια υπερευφυής φυλή η οποία αποφασίζει να φτιάξει έναν υπολογιστή που θα δώσει οριστικά την απάντηση για το νόημα

Διαβάστε περισσότερα

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python Σκοπός της 1ης άσκησης είναι η εξοικείωση με τη γλώσσα προγραμματισμού Python, την οποία και θα χρησιμοποιήσουμε και στις υπόλοιπες εργαστηριακές ασκήσεις.

Διαβάστε περισσότερα

Προγραμματιστικό Περιβάλλον

Προγραμματιστικό Περιβάλλον Προγραμματιστικό Περιβάλλον Προγραμματίζοντας τις βασικές αριθμητικές πράξεις 2 ο Γυμνάσιο Παλλήνης Καθηγήτρια: Ευφροσύνη Σκιαδά Πρόσθεση Αφαίρεση Πολλαπλασιασμός Σύμβολα αριθμητικών πράξεων Διαίρεση Τι

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

Διαβάστε περισσότερα

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ Λογικός τύπος ( ) Ο τύπος είναι κατάλληλoς για την αναπαράσταση ποσοτήτων που μπορούν να πάρουν δύο μόνο τιμές (π.χ. ναι/όχι, αληθές/ψευδές, ). Τιμές ή Δήλωση Εκχώρηση Ισοδυναμία με ακέραιους

Διαβάστε περισσότερα

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:05 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux

Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux 1 Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux Το Linux είναι ένα λειτουργικό σύστημα όμοιο με το Unix που αναπτύχθηκε από έναν πυρήνα (kernel, Εικ.1) τον οποίο δημιούργησε το 1991 ο Linus Torvalds όντας

Διαβάστε περισσότερα

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ (1/3) /ˈjuː.nɪks/ +- Στην πρωταρχικη του μορφη κατασκευάστηκε

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου Σκοπός και περίγραμμα της Ενότητας 4 Σκοπός της παρουσίασης Να μελετήσουμε τις συναρτήσεις που ελέγχουν την ροή και την εκτέλεση ενός προγράμματος Σύνοψη

Διαβάστε περισσότερα

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

Διαβάστε περισσότερα

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προεπεξεργαστής Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαδικασία Μεταγλώττισης πρόγραµµα επεξεργασίας κειµένου if a

Διαβάστε περισσότερα

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου ΕΣΔ 516 Τεχνολογίες Διαδικτύου Εισαγωγή στην PHP Περιεχόμενα Περιεχόμενα PHP και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις Παράδειγματα 1 Βιβλιογραφία Ενότητας Βιβλιογραφία [Lane 2004]: Chapter

Διαβάστε περισσότερα

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Εργαστήριο 3: 3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Η C++, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες.

Διαβάστε περισσότερα

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

Διαβάστε περισσότερα

wc -l <file1 10 ή να μετρήσω πόσες γραμμές δίνει μια οποιαδήποτε άλλη εντολή π.χ. η finger : finger wc -l 8

wc -l <file1 10 ή να μετρήσω πόσες γραμμές δίνει μια οποιαδήποτε άλλη εντολή π.χ. η finger : finger wc -l 8 Τελευταίες σημειώσεις - 2016 Μεταβλητές Βάζουμε μεταβλητές πχ για πιο ευκρινές πρόγραμμα (προτιμήστε μικρά γράμματα και όχι ονόματα εντολών) πχ. filename="$1" (αποφύγετε το file="$1" υπάρχει εντολή file

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Νέο Πρόγραμμα

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ I. 1. Εισαγωγή 3 ΠΡΟΛΟΓΟΣ

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ I. 1. Εισαγωγή 3 ΠΡΟΛΟΓΟΣ ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΛΟΓΟΣ xiii ΜΕΡΟΣ I 1. Εισαγωγή 3 1.1 Περί Λειτουργικών Συστημάτων 3 1.1.1 Τι είναι Λειτουργικό Σύστημα (Operating System) 3 1.1.2 To UNIX 4 1.1.3 Η δομή ενός Λειτουργικού Συστήματος 5 1.2

Διαβάστε περισσότερα

Δίκτυα Η/Υ στην Επιχείρηση

Δίκτυα Η/Υ στην Επιχείρηση Δίκτυα Η/Υ στην Επιχείρηση Εισαγωγή στο λειτουργικό σύστημα Unix Γκάμας Βασίλειος, Εργαστηριακός Συνεργάτης Λειτουργικό Σύστημα (ΛΣ) Λογισμικό συστήματος, το οποίο αποτελεί τη διασύνδεση μεταξύ του υλικού

Διαβάστε περισσότερα

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια: Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται

Διαβάστε περισσότερα

Αβδέλαρου Κωνσταντίνα

Αβδέλαρου Κωνσταντίνα ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ Αβδέλαρου Κωνσταντίνα 1 η Εργασία στο μάθημα Λειτουργικά Συστήματα Ταύρος, 9 Δεκεμβρίου 2014 Άσκηση 1.1 Το shell script που δημιουργήθηκε είναι:

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή, Χρήσιμες Εφαρμογές

ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή, Χρήσιμες Εφαρμογές ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή, Χρήσιμες Εφαρμογές Σκοπός του εργαστηρίου αυτού είναι η χρησιμοποίηση κάποιων εφαρμογών που θα μας φανούν πολύ χρήσιμες κατά τη διάρκεια του μαθήματος της Εισαγωγής στον Προγραμματισμό.

Διαβάστε περισσότερα

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C Master Mind εφαρμογή στη γλώσσα προγραμματισμού C Φεβρουάριος/Μάρτιος 2013 v. 0.1 Master-mind: κανόνες παιχνιδιού Στο master mind χρειάζεται να παράγονται κάθε φορά 4 τυχαία σύμβολα από ένα πλήθος 6 διαφορετικών

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Περίληψη Προηγούμενου Επισκόπηση αρχείων και επεξεργασία κειμένου Εντολές file,

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο Στο φετινό εργαστήριο του μαθήματος, έχετε τη δυνατότητα να δουλέψετε σε 2 περιβάλλοντα. Ένα σε περιβάλλον UNIX μέσω απομακρυσμένης σύνδεσης σε

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Λύβας Χρήστος chrislibas@ssl-unipi.gr Μανουσόπουλος Χρήστος cman@unipi.gr Αρχική επιμέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ vi editor Είναι ο βασικός επεξεργαστής

Διαβάστε περισσότερα

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού Strange

Η γλώσσα προγραμματισμού Strange Προγραμματιστική άσκηση: Η γλώσσα προγραμματισμού Strange Η Strange είναι μια μικρή γλώσσα προγραμματισμού. Παρόλο που οι προγραμματιστικές της ικανότητες είναι μικρές, η εκπαιδευτική αυτή γλώσσα περιέχει

Διαβάστε περισσότερα

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β.1 Τύποι Δεδομένων Όλες οι γλώσσες προγραμματισμού (πρέπει να) υποστηρίζουν πέντε (5) πρωταρχικούς τύπους δεδομένων: char (character) int (integer)

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

Διαβάστε περισσότερα

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή Αντίρριο, 05/04/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» To δεύτερο μέρος της εργασίας έχει ως στόχο την ανάπτυξη του συντακτικού αναλυτή με χρήση του bison / byacc. Στο

Διαβάστε περισσότερα

Σημειωματάριο Δευτέρας 9 Οκτ. 2017

Σημειωματάριο Δευτέρας 9 Οκτ. 2017 Σημειωματάριο Δευτέρας 9 Οκτ. 2017 Η δομή ελέγχου if... else... elif Βλέπουμε τώρα πώς μπορούμε να γράψουμε προγράμματα που η εκτέλεσή τους ακολουθεί διαφορετική πορεία ανάλογα με τα δεδομένα. Χωρίς τέτοιες

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων IDLE - Διαδικασία ανάπτυξης προγραμμάτων Python - Απλά προγράμματα

Διαβάστε περισσότερα

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα; Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο Τι θα τυπωθεί στον παρακάτω κώδικα; Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο Τι θα τυπωθεί στον παρακάτω κώδικα; Χωρίς να αλλάξουμε τον τύπο των a,b,

Διαβάστε περισσότερα