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

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

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

Transcript

1 ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τµήµα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήµατα (Εργαστήριο) Διδάσκων: I. Τσακνάκης 9ο Εργαστήριο - Ο φλοιός 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 3

4 Τότε η εντολή : $ echo $first_name $surname, θα εµφανίσει : John Tsaknakis. Για µία πλήρη λίστα των τοπικών µεταβλητών, συµβουλευτείτε το τµήµα 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 και echo, εµφανίζουν τις µεταβλητές περιβάλλοντος και τις τιµές τους.! Η εντολή env εµφανίζει τις µεταβλητές περιβάλλοντος που υπάρχουν στο κέλυφος.! Η εντολή set εµφανίζει όλες τις µεταβλητές που υπάρχουν στο κέλυφος.! Η εντολή unset χρησιµοποιείται για να αφαιρεθεί µία εντολή από το κέλυφος.! Η εντολή printenv µπορεί να χρησιµοποιηθεί για να τυπώσει το περιεχόµενο µιας µεταβλητής, όταν δοθεί το όνοµα της (π.χ. printenv PWD). Για µία πλήρη λίστα των τιµών που δέχεται η set, συµβουλευτείτε το τµήµα SHELL BUILT-IN COMMANDS στη σελίδα bash του man. Ψευδώνυµα (aliases) Τα ψευδώνυµα είναι συντοµογραφίες µεγαλύτερων εντολών. Αν υπάρχουν εντολές που τις χρησιµοποιείτε συχνά αλλά είναι αρκετά µεγάλες, µπορείτε να τις κάνετε µικρότερες χρησιµοποιώντας ψευδώνυµα µε την εντολή alias. Για να ορίσετε ένα ψευδώνυµο µε την alias, πρώτα θα πρέπει να επιλέξετε το κατάλληλο αρχείο, για να τροποποιήσετε αναλογα µε το κέλυφος που χρησιµποιείτε:! Αν είστε χρήστης του bash πρέπει να χρησιµοποιείτε το αρχείο : ~/.bashrc! Αν είστε χρήστης του kash πρέπει να χρησιµοποιείτε το αρχείο : ~/.kashrc! Αν είστε χρήστης του csh πρέπει να χρησιµοποιείτε το αρχείο : ~/.cshrc Πριν από κάθε τροποποίηση προτείνεται η διατήρηση ενός αντίγραφου ασφαλείας. Στη συνέχεια εκτελέστε την εντολή: nano.bashrc µε την οποία επιλέγετε ο διορθωτής nano για την τροποποίηση του αρχείου.bashrc (για το φλοιό bash). Αφού προσθέσουµε όσα ψευδώνυµα θέλουµε, αποθηκεύσουµε τις τροποποιήσεις και βγαίνουµε από τον διορθωτή κειµένου nano. 6

7 Παραδείγµατα! Με την εντολή : 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. Αρχεία εκκίνησης φλοιού Τα 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. 7

8 ! Στα 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,! ορισµοί µεταβλητών περιβάλλοντος, όπως η 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, δηλαδή κάθε φορά που ο χρήστης βγαίνει από το σύστηµα. Είναι πολύ χρήσιµο για να εκτελούµε προγράµµατα κατά την έξοδό µας από το σύστηµα. Ενδεικτικά αναφέρουµε:! Αντίγραφο ασφαλείας των αρχείων του χρήστη.! Διαγραφή προσωρινών αρχείων. 8

9 Επεξεργασία της γραµµής εντολών από το φλοιό Η διαδικασία της επεξεργασίας της γραµµής εντολών από το φλοιό είναι αρκετά σύνθετη. Μία αρκετά απλή εκδοχή της διαδικασίας αυτής είναι:! Η γραµµή εντολών χωρίζεται σε λέξεις που χωρίζονται από κενά, 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. 9

10 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 10

11 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 ] Εξετάζει αν εκτελέστηκε σωστά η προηγούµενη εντολή. Αν όντως εκτελέστηκε σωστά η συνθήκη είναι αληθής. 11

12 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 12

13 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 13

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

15 (ε) Τώρα ανοίξτε το αρχείο ~/.bashrc και αποθηκεύστε την τελευταία µορφή της προτροπής. Αφού αποθηκεύσετε το αρχείο, ανοίξτε ένα νέο τερµατικό για να ελέγξετε ότι η προτροπή σας είναι όντως η επιθυµητή. Αφαιρέστε την αλλαγή που κάνατε στο ~/.bashrc 4. Όταν µία εντολή περιέχει µία άλλη εντολή περιεχόµενη σε backquotes (` `), ο φλοιός εκτελεί πρώτα την εντολή που βρίσκεται µέσα στα (` `) και το αποτέλεσµα αντικαθιστάται πριν την εκτέλεση της πρώτης εντολής. Χρησιµοποιήστε αυτή τη δυνατότητα για να εκτελέσετε την εντολή ls l για το πλήρες όνοµα του αρχείου που εκτελείται όταν τρέχετε gzip. Απάντηση: ls l `which gzip` 15

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ 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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ 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 (Παρουσιάζει στην οθόνη το περιεχόμενο ενός αρχείου

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.1. Οι λογαριασµοί χρηστών Σύνδεση (login) και αποσύνδεση (logout)

2.1. Οι λογαριασµοί χρηστών Σύνδεση (login) και αποσύνδεση (logout) Πανεπιστήµιο Θεσσαλίας Τµήµα Πληροφορικής µε Εφαρµογές στην Βιοϊατρική Εισαγωγή στον Προγραµµατισµό (εργαστήριο) Εισαγωγή στο λειτουργικό σύστηµα UNIX 1. Σύνδεση στο Εικονικό Ιδιωτικό Δίκτυο (VPN) 1.1.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραµµατισµός 2 The shell

Προγραµµατισµός 2 The shell Προγραµµατισµός 2 The shell 1 CLI vs GUI! CLI (Command Line Interface) Μεγαλύτερη ευελιξία και ταχύτητα Πιο εύκολο να γίνουν πολύπλοκες λειτουργίες. find. -mtime -2 -name '*.txt' -exec sed -i.bak 's/hi/bye/g'

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Triggers, Stored procedures Γιώργος Μαρκοµανώλης Περιεχόµενα Triggers-Ενηµέρωση δεδοµένων άλλων πινάκων... 1 Ασφάλεια...

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

a = 10; a = k; int a,b,c; a = b = c = 10;

a = 10; a = k; int a,b,c; a = b = c = 10; C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor ΕισαγωγήστουςΗ/Υ PHP Hypertext Preprocessor ΤιείναιηPHP; PHP είναιµία server-based scripting language σχεδιασµένη ειδικά για το web. Σε µία html σελίδα µπορούµε να ενσωµατώσουµε php κώδικα που εκτελείται

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

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

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

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

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

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

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

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

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

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

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

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

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

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

for for for for( . */

for for for for( . */ Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται

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

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Το επίπεδο προτεραιότητας µιας διεργασίας µπορεί να αλλάξει µε χρήση της συνάρτησης nice. Κάθε διεργασία διαθέτει µια τιµή που καλείται

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/10, 23:59

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/10, 23:59 ΣΕΤ ΑΣΚΗΣΕΩΝ 2 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2010-2011 Προθεσµία: 15/11/10, 23:59 Στόχοι Πίνακες Συναρτήσεις Συµβολοσειρές Χρήση µεταβλητών και σταθερών Χρήση τελεστών Χρήση δοµών ελέγχου

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

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ 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

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

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

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

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

char name[5]; /* define a string of characters */

char name[5]; /* define a string of characters */ Συµβολοσειρές (Strings) Συµβολοσειρά (string) είναι µια σειρά αλφαριθµητικών χαρακτήρων (γενικά εκτυπώσιµων συµβόλων ASCII). Όταν λέµε σειρά εννοούµε διαδοχικές θέσεις µνήµης που µπορούν να αντιµετωπισθούν

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

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

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

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

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

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

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

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

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

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

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

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

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

ιαχείριση Πληροφοριών στο ιαδίκτυο

ιαχείριση Πληροφοριών στο ιαδίκτυο ιαχείριση Πληροφοριών στο ιαδίκτυο Εργαστήριο (Φυλλάδιο 8) ΤΕΙ Καβάλας - Σχολή ιοίκησης & Οικονοµίας Τµήµα ιαχείρισης Πληροφοριών ιδάσκων: Μαρδύρης Βασίλειος, ιπλ. Ηλ. Μηχανικός & Μηχ. Υπολογιστών, MSc

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

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

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

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

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

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

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

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

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

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

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) 8 ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) ιάλεξη 2 2.1 ΜΕΤΑΒΛΗΤΕΣ (ΜΕΡΟΣ Β) Στην προηγούµενη διάλεξη µάθαµε ότι µπορούµε να χρησιµοποιούµε τη ρητή ή την αυτονόητη δήλωση µεταβλητών

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

επιµέλεια Θοδωρής Πιερράτος

επιµέλεια Θοδωρής Πιερράτος Βασικές έννοιες προγραµµατισµού Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως,

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

Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες

Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες Σύνταξη εντολών Περιεχόµενα Οργάνωση και χειρισµός αρχείων Μπαλαντέρ ικαιώµατα χρήσης αρχείων και οµάδες χρηστών Έλεγχος διεργασιών Σύνταξη εντολών

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

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

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

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

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

Προγραμματισμός Διαχείρισης Συστημάτων Ι Προγραμματισμός Διαχείρισης Συστημάτων Ι Μάθημα 5ο Φλοιούς Linux Μιχαηλίδης Παναγιώτης Φλοιός O φλοιός (shell) είναι ένα πρόγραμμα που παρέχει μια διεπαφή επικοινωνίας γραμμής εντολών ανάμεσα στον χρήστη

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

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

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

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

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

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

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

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

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

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης Εντολές Ελέγχου 2 Γενικά Εντολές λήψης αποφάσεων Επιτρέπουν στο πρόγραμμα να εκτελεί διαφορετικές

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

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

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

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

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

Εισαγωγή στα Λειτουργικά Συστήματα Εισαγωγή στα Λειτουργικά Συστήματα S E T Δ Ι Α Φ Α Ν Ε Ι Ω Ν 1 3 S H E L L S C R I P T S : T E S T, I F Α Ν Τ Ω Ν Η ς Σ Ι Δ Η Ρ Ο Π Ο Υ Λ Ο ς Διεργασίες: Γονείς και Παιδιά Κάθε διεργασία κάνοντας exit

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

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 5 ο Έλεγχος Προγράµµατος Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Η εντολή if (Ι) Η εντολή if είναι µία από τις βασικότερες δοµές ελέγχου ροής στη C, αλλά και στις περισσότερες

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη Επιλογή και επανάληψη Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως, ότι στο

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

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

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

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

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

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

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

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

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

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59 ΣΕΤ ΑΣΚΗΣΕΩΝ 2 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2009-20010 Προθεσµία: 15/11/09, 23:59 Στόχοι Χρήση συναρτήσεων Χρήση µονοδιάστατων πινάκων Διαχείριση συµβολοσειρών Φορµαρισµένη έξοδος δεδοµένων

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

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

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

*? [xyz] [^xy] [!0-9] [:alpha:] [:digit:]

*? [xyz] [^xy] [!0-9] [:alpha:] [:digit:] Directories και αρχεία... /bin bin../bin current/ένα πιο πάνω/root bin/current bin/ ένα πιο πάνω και bin mkdir bin rmdir bin (άδειο) cd bin touch f f1 bin/f2 cat >a1 vi a1 vi +10 a1 cp a1 a2 a3 bin cp

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

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. Πρόοδος 28 Μαρτίου 2009 Οµάδα 1 η

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. Πρόοδος 28 Μαρτίου 2009 Οµάδα 1 η ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική Πρόοδος 28 Μαρτίου 2009 Οµάδα 1 η Γράψτε το ονοµατεπώνυµο και αριθµό ταυτότητάς σας στο πάνω µέρος της αυτής της σελίδας. Πρέπει να απαντήσετε σε όλα τα προβλήµατα

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

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς PERL Δήμος Παύλου Δημήτρης Κουζαπάς Perl Η Perl είναι μια διερμηνευομένη δυναμική γλώσσα προγραμματισμού. Συνδυάζει χαρακτηριστικά από διάφορες γλώσσες. (C/C++, Awk, Lisp κλπ) Διαδόθηκε λόγω της μεγάλης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1st exercise of work2 - REMARKS

1st exercise of work2 - REMARKS 1st exercise of work2 - REMARKS #scriptfilename: script1apipinik #Prwta kanw NAME="Apostolos Pipinikas" kai meta dinw tin entoli echo $NAME alios den tha doulepsei NAME="Apostolos Pipinikas" echo Name:

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 18/12/12, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 18/12/12, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2012-2013 Προθεσµία: 18/12/12, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης 1 Οδηγίες αποστολής άσκησης Διαδικαστικά Η εργασία

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

Οι δείκτες στη γλώσσα C

Οι δείκτες στη γλώσσα C Οι δείκτες στη γλώσσα C Δείκτης είναι µία µεταβλητή η οποία περιέχει σαν τιµή µία διεύθυνση της µνήµης Η τιµή ενός δείκτη δείχνει σε µία άλλη µεταβλητή, η οποία µπορεί να προσεγγισθεί έµµεσα µε τους ειδικούς

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

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

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

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

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

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

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

Βαθμός Σχόλια. lab5 PASS PASS PASS PASS PASS. Οριακά PASS - Καλή δουλειά

Βαθμός Σχόλια. lab5 PASS PASS PASS PASS PASS. Οριακά PASS - Καλή δουλειά Α. Μ. Βαθμός Σχόλια 1183 1194 1238 1239 1240 1241 - Καλή δουλειά 1242 1243 1244 1245 - Κακή χρήση συναρτήσεων. Κάνεις τον ίδιο έλεγχο και εντός και εκτός της συνάρτησης. Θα έπρεπε να έχεις βρεί ένα τρόπο

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

scanf() scanf() stdin scanf() printf() int float double %lf float

scanf() scanf() stdin scanf() printf() int float double %lf float Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση

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

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

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

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

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

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

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

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

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

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

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

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

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

2.Shell, users, groups και privilegies

2.Shell, users, groups και privilegies 2.Shell, users, groups και privilegies 2.0 Εισαγωγή Όλα τα σύγχρονα λειτουργικά συστήματα έχουν γραφικό περιβάλλον που τα κάνουν πολύ φιλικά προς το χρήστη. Το ίδιο ισχύει και στις διανομές του Linux,

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