Τεύχος Εργαστηριακών Ασκήσεων UNIX

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

Download "Τεύχος Εργαστηριακών Ασκήσεων UNIX"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Τεύχος Εργαστηριακών Ασκήσεων UNIX Στέφανος Γκρίτζαλης Αναπληρωτής Καθηγητής ρ. Γιώργος Καµπουράκης ιδάσκων (Π.. 407/80) ρ. Κωνσταντίνος Καραφασούλης ιδάσκων (Π.. 407/80) Φεβρουάριος 2005

2 1. ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ ΓΙΑ ΤΟ ΣΥΣΤΗΜΑ ΚΑΙ ΤΑ ΑΡΧΕΙΑ Αξιοποιήστε τη διαταγή man ή info για να µελετήσετε τις κυριότερες επιλογές των εντολών που ακολουθούν. 1. «Κατεβάστε» από τη διεύθυνση το πρόγραµµα putty.exe. Εκτελέστε το και στο πεδίο Host Name or IP address τοποθετήστε: lykourgos.samos.aegean.gr ή Επιπλέον επιλέξτε SSH (secure shell) και συνδεθείτε. 2. Αποσυνδεθείτε από το σύστηµα (exit, logout, ^d) και συνδεθείτε πάλι. Για να µετακινηθείτε στο home directory σας οποιαδήποτε στιγµή πληκτρολογήστε cd $HOME. Ο Shell που εργάζεστε είναι ο Korn shell. 3. Χρησιµοποιήστε τις εντολές date, logname, uname, clear, cal, cal 2003, tty, who, who am I, passwd username, w, pwd, write, last username. Περιγράψτε τι κάνουν και τι µορφή έχουν τα αποτελέσµατα ή το format των απαντήσεων που πρέπει να δώσετε. 4. ώστε τις εντολές ls, ls -a, ls., ls.., ls -l.., ls /, ls /bin, ls /b*. Nα περιγράψετε το αποτέλεσµα της εντολής ls και την µορφή των αποτελεσµάτων που δίνει. 5. ώστε τις διαταγές ls -l /bin/date, ls -li /bin/date. Περιγράψετε το αποτέλεσµα της εντολής ls -l, ls -li και την µορφή των αποτελεσµάτων που δίνει. 6. Χρησιµοποιήστε τις εντολές: ls -t /usr ls -i /usr ls -l -s /bin/pwd ls -ls /usr/bin/logname ls -m /usr ls -m /dev και να περιγράψετε την µορφή των αποτελεσµάτων της κάθε περίπτωσης. 7. ώστε τις διαταγές α) ls -F /usr β) ls -x /usr γ) ls -R /usr και περιγράψτε την µορφή των αποτελεσµάτων τους. 8. Τι αποτελέσµατα έχουν οι διαταγές: α) ls /*/who β) ls /*/*/logname γ)ls /l* δ) ls /b[ou]ot 9. ηµιουργείστε ένα αρχείο µε όνοµα arxeio (cat > arxeio στο τέλος ^d) και περιεχόµενα το όνοµά σας. Χρησιµοποιείστε την εντολή ls για να δείτε τα χαρακτηριστικά του αρχείου αυτού µε switches -l, -t, -i, -s και περιγράψτε τα αποτελέσµατα. 10. Βρείτε τα αποτελέσµατα των εντολών: ls -l /dev/ttyp[01234] ls -x /dev/tty[pqr]* 11. ώστε τις εντολές που θα εµφανίσουν όλα τα αρχεία των καταλόγων /bin και /dev: σε στήλες ονοµαστικά µόνο. µε αναλυτικές πληροφορίες ταξινοµηµένα ανά ηµεροµηνία τροποποίησης µε πληροφορίες για το µέγεθος τους και την ηµεροµηνία δηµιουργίας τους, ποια από αυτά είναι κατάλογοι. ποια είναι κατάλογοι, εκτελέσιµα ή µε link δίπλα, δίπλα µε κόµµα ανάµεσα το µέγεθος των αρχείων. σε στήλες µε πληροφορίες για το είδος του αρχείου (directory κλπ) που ξεκινάνε από t που τελειώνουν σε y 12. Χρησιµοποιήστε την find για να βρείτε τους καταλόγους που περιέχουν τα αρχεία who, passwd και arxeio. 13. Με τη διαταγή cat παρουσιάστε και σχολιάστε το περιεχόµενο των αρχείων /etc/passwd και /etc/group. 14. Να βρείτε και να εµφανίσετε στην οθόνη όλα τα αρχεία µε όνοµα που αρχίζει από tty και βρίσκονται στον κατάλογο /dev. 15. Αλλάξτε το prompt του συστήµατος µε το όνοµα σας µε την εντολή PS1= myname. Σελίδα 2 από 38

3 16. Βρείτε το τερµατικό που εργάζεται ένας φίλος σας και στείλτε του µήνυµα (σηµειώστε ότι µε την εντολή tty µπορώ να βρω σε ποιο τερµατικό εργάζοµαι θυµηθείτε να πατήσετε ^d στο τέλος του µηνύµατος). Εναλλακτικά µπορείτε να χρησιµοποιήσετε τη write µε το όνοµα του χρήστη στον οποίο θέλετε να στείλετε µήνυµα (write username). Σελίδα 3 από 38

4 2. ΑΡΧΕΙΑ ΚΑΙ ΚΑΤΑΛΟΓΟΙ Παρατηρήστε ότι µπορείτε εύκολα να εκτελέσετε την τελευταία εντολή πατώντας!!. 1. ηµιουργήστε την παρακάτω δενδροειδή δοµή στην περιοχή εργασίας σας: kosmos europi amerikh asia hellas uk france pelloponisos sterea arkadia korinthia ηµιουργείστε ένα αρχείο µε όνοµα prwtoarxeio στο directory sterea και περιεχόµενο το όνοµά σας. Μετονοµάστε το prwtoarxeio σε deyteroarxeio. Αντιγράψτε το deyteroarxeio στο arxeio1 Αντιγράψτε το arxeio1 στο directory pelloloponisos ηµιουργείστε σύνδεσµο του αρχείου arxeio1 στο arxeio2 και ελέγξτε το i-node των αρχείων (ln arxeio1 arxeio2 το i-node πρέπει να είναι το ίδιο). Όταν ένα αρχείο δηµιουργείται το όνοµα του συσχετίζεται µε τον αντίστοιχο i-node του. Η εντολή ln επιτρέπει το συσχετισµό επιπλέον ονοµάτων αρχείων στον ίδιο i-node. Σβήστε το arxeio2 Σβήστε το directory hellas Σβήστε το directory kosmos. 2. ώστε τις εντολές cat /etc/passwd, more /etc/passwd, head /etc/passwd, tail /etc/passwd και περιγράψτε το αποτέλεσµα των εντολών. 3. ηµιουργήστε ένα αρχείο µε όνοµα firstfile και περιεχόµενο "hello world" στην περιοχή σας 4. Εξετάστε τα χαρακτηριστικά του αρχείου που φτιάξατε µε την εντολή ls µε διαφορετικές παραµέτρους, και τα περιεχόµενά του µε την εντολή cat και περιγράψτε τα αποτελέσµατα. 5. ηµιουργήστε ένα ακριβές αντίγραφο του αρχείου αυτού µε το όνοµα secondfile (εντολή cp) και χρησιµοποιήστε την εντολή ls για να εξετάσετε τα χαρακτηριστικά του αρχείου. Η αντιγραφή του αρχείου µπορεί να γίνει και µε την εντολή cat. ηλαδή: cat firstfile > secondfile ή cat file1 file2 file3 > mail (σ αυτή τη περίπτωση η εντολή cat συνενώνει τα αρχεία file1, file2 & file3 στο αρχείο mail. Σηµειώστε ότι το σύµβολο > ονοµάζεται ανακατεύθυνση (redirection), και χρησιµοποιείται για να (ανα)κατευθύνει στην περίπτωσή µας την έξοδο της εντολής (που default είναι η οθόνη) σε ένα άλλο αρχείο. Αν το τελικό αρχείο υπάρχει (το mail στη περίπτωσή µας) µπορούµε να χρησιµοποιήσουµε την ανακατεύθυνση προσθήκης (append redirection) >>, ώστε τα περιεχόµενα των αρχείων file1, file2 & file3 να προστεθούν στο τέλος του mail. 6. Αλλάξτε το περιεχόµενο του secondfile σε "this is my second file". 7. Φτιάξτε έναν κατάλογο µε όνοµα foo (mkdir) και αντιγράψτε σε αυτόν τα δυο αρχεία. 8. Σβήστε τον κατάλογο foo και τα περιεχόµενά του (rm, rmdir). 9. Φτιάξτε έναν κατάλογο µε όνοµα exercises και έναν υποκατάλογο σε αυτόν µε όνοµα series Αποθηκεύστε εκεί τα δυο αρχεία και αλλάξτε το όνοµα των αρχείων σε file1 και file2 (mv). 11. Συγκρίνετε τα δύο αρχεία µε τις διαταγές cmp και diff. Τι παρατηρείτε; 12. Συγκρίνετε τον κατάλογο exercises µε κάποιον άλλο κατάλογο, δικό σας ή του συστήµατος (dircmp). Τι παρατηρείτε; Σελίδα 4 από 38

5 13. Η εντολή ln Μπορεί να χρησιµοποιηθεί για να δηµιουργήσει συνδέσµους αρχείων σε άλλο directory. Για παράδειγµα: cd $HOME Μεταφορά στον κατάλογο περιοχής µας. mkdir lndir ηµιουργία καταλόγου µε το όνοµα lndir cd lndir Μεταφορά στον κατάλογο lndir ln $HOME/exercises/series2/f*. O κατάλογος series2 της περιοχής µας περιέχει δύο αρχεία: τα file1 & file2. Με την παραπάνω εντολή τα δύο αρχεία απέκτησαν σύνδεσµο µε το τρέχον directory ($ΗΟΜΕ/lndir). Για παράδειγµα το αρχείο που βρίσκεται στο /$HOME/lndir/file1 µπορεί να αναφέρεται και σαν $HOME/exercises/series2/file Αξιοποιήστε τη διαταγή man για να µελετήσετε περαιτέρω τις εντολές που παρουσιάστηκαν σε αυτή τη σειρά. Σκεφτείτε και άλλες περιπτώσεις που µπορούν να χρησιµοποιηθούν και συντάξτε παραδείγµατα. 15. Θυµηθείτε ότι για να εκτελέσετε δύο ή περισσότερες εντολές, σε µια γραµµή, αρκεί να τις χωρίσετε µε το χαρακτήρα ; Π.χ. δοκιµάστε το εξής: $who; ls x 16. Απαγορεύστε ή επιτρέψτε στους άλλους χρήστες να σας στέλνουν µηνύµατα (write) µε τις εντολές mesg n ή mesg y αντίστοιχα. 17. είτε τις διεργασίες που υπάρχουν στη µνήµη µε την εντολή ps. Χρησιµοποιώντας τη man βρείτε άλλες χρήσιµες παραµέτρους της εντολής ps. 18. Εκτελέστε τα παρακάτω (σκοπός η δηµιουργία ενός απλού script): cat > new_script echo Your files are: ls echo Today is: date ^d Επιβεβαιώστε ότι όλα έγιναν σωστά: cat new_script Ελέγξτε τα δικαιώµατα του αρχείου: ls l new_script ώστε τα δικαιώµατα εκτέλεσης στο αρχείο:chmod +x new_script Ελέγξτε και πάλι τα δικαιώµατα: ls l Εκτελέστε το script: new_script ή./new_script 19. ηµιουργήστε ένα script µε το όνοµα arguments, ως εξής: cat > arguments echo hello echo $1 echo $2 echo $3 echo $* echo $# ^d Κάντε το αρχείο εκτελέσιµο και «τρέξτε το» ως./arguments ως./arguments giorgos maria dimitrhs Τι παρατηρείτε; 20. ηµιουργήστε ένα script που θα εµφανίζει το πραγµατικό όνοµα του χρήστη που προσδιορίζεται ως όρισµα.. Επίσης θα βρίσκει όλα τα αρχεία που ανήκουν στο συγκεκριµένο χρήστη ψάχνοντας όλο το δέντρο του συστήµατος αρχείων. cat > myscript finger $1 find / -user username print ^d Οµοίως τα υπόλοιπα, ώστε το αρχείο να είναι εκτελέσιµο Σελίδα 5 από 38

6 21. ηµιουργήστε δύο εκτελέσιµα αρχεία µε όνοµα dir1 και mycd από τα οποία το πρώτο: - Θα εµφανίζει τις βασικές πληροφορίες για το όρισµα (µέγεθος, ηµεροµηνία δηµιουργίας, δικαιώµατα, όνοµα, κατάλογος ή εκτελέσιµο) - Όλα τα περιεχόµενα αρχεία αν το όρισµα είναι κατάλογος, ενώ η δεύτερη θα αλλάζει κατάλογο σύµφωνα µε το όρισµά της και θα ενηµερώνει τον χρήστη για τη πλήρη διαδροµή του νέου καταλόγου και συνοπτικά για το περιεχόµενό του, παράδειγµα. pwd /usr/users/giorgos mycd exercises/exrc2 /usr/users/giorgos/exercises/exrc2 & file1 file2 22. Γράψτε script το οποίο όταν εκτελείται θα: εµφανίζει το όνοµα του χρήστη, την ηµεροµηνία και το τερµατικό (tty) που χρησιµοποιείται. 23. Γράψτε script το οποίο όταν εκτελείται : ηµιουργεί τη διπλανή δοµή δένδρου υποκαταλόγων στο home directory: Την dir1 εµφανίζει και τη διαγράφει. dir2 dir3 24. (α) ηµιουργήστε ένα σύνδεσµο του αρχείου mycd σε άλλον υποκατάλογο (π.χ. τον..). Εξετάστε τις ιδιότητες του συνδέσµου µε την ls. Ποιος είναι ο αριθµός κόµβου (i-node) του αρχείου; Ποιος είναι ο αριθµός των συνολικών συνδέσµων προς αυτό; Με τη διαταγή find αναζητήστε τα αρχεία µε τον συγκεκριµένο αριθµό κόµβου. Τι παρατηρείτε; (β) Κρατήστε αντίγραφο του mycd στο mycd.bak (cp) και σβήστε το link που φτιάξατε. Ξαναφτιάξτε το link και σβήστε το αρχικό αρχείο. Τι παρατηρείτε; Επαναφέρετε το εφεδρικό µε όνοµα mycd (mv). (γ) ηµιουργήστε script που αναζητά (και εµφανίζει) αρχεία µε συγκεκριµένο αριθµό κόµβου που προσδιορίζεται ως παράµετρος (όρισµα). Σελίδα 6 από 38

7 3. ΑΝΑΚΑΤΕΥΘΥΝΣΗ - ΦΙΛΤΡΑ - ΤΑΞΙΝΟΜΗΣΗ VI GREP CUT SORT ECHO SH READ 1. Σηµειώστε ότι οι παράµετροι c και u, δίνουν αντίστοιχα το χρόνο τελευταίας τροποποίησης του i-κόµβου (όπως αλλαγή δικαιωµάτων, δηµιουργία συνδέσµων) και το χρόνο που το αρχείο προσπελάστηκε τελευταία. Συνήθως χρησιµοποιούνται µε τις παραµέτρους t και l. (Η ls l δίνει το χρόνο τελευταίας τροποποίησης του αρχείου). 2. ηµιουργείστε ένα directory µε όνοµα redirect. Εκεί, δηµιουργείστε ένα αρχείο µε όνοµα test1 και περιεχόµενο grammi1.ελέγξτε πόσα και ποια αρχεία και µε τι περιεχόµενο υπάρχουν. ώστε τις παρακάτω εντολές, ελέγχοντας κάθε φορά τα περιεχόµενα του directory και τα περιεχόµενα των αρχείων που κάνετε ανακατεύθυνση. Α. $ who > who_file $ cat who_file $ cat test1 > who_file $ cat who_file $ > who_file $ cat who_file $ ls > test2 $ cat test2 $ cat test1 test2 > test1kai2 $ cat test1kai2 $ ls $ who >> test1kai2 $ cat test1kai2 β. $ cat anyparkto 2>error_file $ ls $ cat error_file γ. $ ls > /dev/pts/03 δ. $ who wc $ cat test1kai2 wc -l $ who sort $ ls wc -l $ who sort > users $ sort < users > sorted_users 3. ώστε τις παρακάτω εντολές και περιγράψτε τι κάνουν: $ echo My name is George $ echo 'My name is George' $ echo * $ echo '*' $ echo "*" $ echo \* $ echo \\ $ echo date $ echo 'date' $ echo "date" $ echo `date` $ echo $TERM $ echo '$TERM' $ echo "$TERM" $ echo \$TERM $ echo " " $ echo \" $ echo ' ' $ echo \" $ echo "ls -l" $echo ls -l $echo 'ls -l' $ echo `ls -l` $ echo `date` $ echo "My terminal is $TERM" $ echo n "My terminal is $TERM (y/n)?" οκιµάστε και τις εξής: $ echo Geia soy > dev/tty05 $echo * $echo `pwd` ή $(pwd) $ echo ' >Epiloges >1. Add $echo * * * $var=hello $echo $var $var $var $echo there are `who wc l` users logged in ή $(who wc l) >2. Remove $echo the date is `date` ή $(date) >Epilogh [1-2]: 4. ώστε την εντολή env. Τυπώστε µε την echo µεταβλητές περιβάλλοντος όπως $TERM, $PATH, $LOGNAME, $USER κλπ. 5. Τυπώστε σε ένα αρχείο sysinfo (ανακατεύθυνση και echo) πέντε µεταβλητές περιβάλλοντος. Προσέξτε να µην σβήσετε τα προηγούµενα περιεχόµενα του αρχείου την δεύτερη και τις επόµενες φορές που θα του προσθέσετε δεδοµένα. 6. Στη περιοχή σας, δηµιουργείστε ένα εκτελέσιµο αρχείο µε όνοµα synenosi και τρεις παραµέτρους θέσης, οι δύο πρώτες θα αφορούν αρχεία που θα συνενωθούν στο τρίτο (cat $1 $2 > $3). Τρέξτε το και περιγράψτε τι κάνατε. 7. Για να συνεχίσετε µια εντολή στην επόµενη γραµµή χρησιµοποιήστε το χαρακτήρα \. οκιµάστε τα εξής: $echo one \ > two \ > three (εφόσον δεν υπάρχει άλλος χαρακτήρας \ υπονοείται ότι η εντολή τελείωσε) 8. ώστε τις παρακάτω εντολές και περιγράψτε τα αποτελέσµατα: a. $ date $ set `date` $ echo $1 $echo $3 $ echo $4 $ echo $4 $1 $ echo $# $echo $* $ echo $0 b. $ id $ set `id` $ echo $1 $echo $3 $ echo $4 $ echo $4 $1 $ echo $# $echo $* $ echo $0. Σελίδα 7 από 38

8 9. ώστε τις εντολές: $ met1=george $ set $ echo met1 $ echo $met1 $ unset met1 $ echo $met1 $ met1=a $ met2=b $ met3=c $ echo $met1$met2$met3 $ echo $met1 $met2 $met3 $ set $ name=george $ Name=Mary $ echo my name is $name and your name is $Name 10. ηµιουργείστε ένα εκτελέσιµο αρχείο µε όνοµα var_test µε περιεχόµενα και εκτελέστε το: clear echo n "Please enter value for variable 1:" read var1 echo Variable 1 value is: $var1 ; echo n "Press enter to exit" ; read break1 11. Στη µεταβλητή myname αποδώστε το όνοµά σας και τυπώστε το στην οθόνη. ώστε την εντολή sh και προσπαθήστε να τυπώσετε την myname ξανά. Τι παρατηρείτε; ώστε exit και στη συνέχεια export myname. Ξαναδώστε sh και τυπώστε την myname. ικαιολογήστε τις παρατηρήσεις σας. 12. ηµιουργείστε µε τον vi το αρχείο mail µε περιεχόµενα: George Pappas Peristeri Nick Nikolaou Aigaleo George Georgiou Athens Helen Georgiou Peristeri Nick Pappas Aigaleo John Ioannou Athens Helen Thanou N.Smyrni οκιµάστε την εντολή cut µε τη παράµετρο c στο αρχείο mail. Π.χ. $cut c1-4 mail. Τι παρατηρείτε; 14. Βρείτε τις γραµµές του αρχείου που περιέχουν George, George Pappas, G στην αρχή της γραµµής, το χαρακτήρα Α που δεν ακολουθείται από t, σε ποια γραµµή υπάρχει Nick, πόσες γραµµές περιέχουν Nick, ποια αρχεία (όνοµα) στο τρέχοντα κατάλογο περιέχουν Nick (grep και παράµετροι). 15. Χρησιµοποιώντας την εντολή grep, απαντήστε στα παρακάτω ερωτήµατα: wq Είναι ο χρήστης x στο σύστηµα; esc Ποια αρχεία είναι directories Shift+:/s1/s2 Ποια η γραµµή του xuser στο αρχείο etc/passwd Το τερµατικό pts/03 είναι ενεργό; Εµφανίστε τη γραµµή που αφορά το tty1 από τον κατάλογο /dev Vi Editor 4j 4 γραµµές κάτω. ^D Μισή οθόνη κάτω (^F ολόκληρη). ^U Μισή οθόνη πάνω (^B ολόκληρη). dw ιαγραφή λέξης. 5 Οδηγεί 5 γραµµές κάτω. Shift+:/string Αναζήτηση του string. o/o ηµιουργία γραµµής πάνω ή κάτω από τη τρέχουσα. u Αναίρεση της τελευταίας εντολής. dw ιαγραφή λέξης. 2dd ιαγραφή 2 γραµµών. 0 Μετακίνηση στην αρχή της γραµµής. $ Μετακίνηση στο τέλος της γραµµής. Y ιάσωση της γραµµής στο clipboard. P Επικόλληση. q! Εγκατάλειψη του vi χωρίς αποθήκευση. Εγκατάλειψη µε αποθήκευση. Περιβάλλον εντολών. i, a Εισαγωγή ή προσθήκη χαρακτήρων. Αντικατάσταση του string s1 µε το s2. Σελίδα 8 από 38

9 16. Ταξινοµείστε το παραπάνω αρχείο: Ως προς το Επώνυµο, ως προς επώνυµο και όνοµα, ως προς ταχ. Κώδικα σε φθίνουσα σειρά, ως προς την οδό, ως προς το επώνυµο και ταχ. Κώδικα, ως προς επώνυµο και όνοµα µε απαλοιφή διπλών εγγραφών. 17. Εµφανίστε τα αρχεία της περιοχή σας ταξινοµηµένα Ως προς τον owner, ως προς group, ως προς permissions, ως προς owner και µέγεθος, ως προς owner και το group, ως προς ηµεροµηνία και ώρα. 18. Γράψτε script µε το όνοµα myinfo που εµφανίζει τους χρήστες που είναι συνδεδεµένοι στο σύστηµα ταξινοµηµένους κατά την ώρα εισόδου τους στο σύστηµα, κατά user name σε φθίνουσα σειρά & κατά tty σε φθίνουσα σειρά. 19. Χρησιµοποιώντας τις εντολές grep και wc, γράψτε script µε το όνοµα myutil που: - Εµφανίζει πόσοι είναι συνδεδεµένοι στο σύστηµα και το όνοµά τους αρχίζει από osi. - Εµφανίζει πόσα αρχεία είναι εκτελέσιµα. - Εµφανίζει ποια αρχεία στην περιοχή σας αρχίζουν µε το χαρακτήρα Α. - Εµφανίζει πόσα αρχεία δηµιουργήθηκαν συγκεκριµένο µήνα στην περιοχή σας. - Βρίσκει και εµφανίζει το πλήθος των αρχείων σε κατάλογο (που δίνεται ως παράµετρος) που περιέχουν τη λέξη shell. 20. ηµιουργείστε ένα εκτελέσιµο αρχείο testmetablhtwn2 το οποίο όταν τρέχει θα σας ζητά να πληκτρολογήσετε τα στοιχεία ταυτότητάς σας, και κατόπιν θα τα εµφανίζει στοιχισµένα αφού καθαρίσει την οθόνη 21. ηµιουργείστε ένα εκτελέσιµο αρχείο testmetablhtwn3 το οποίο όταν τρέχει θα σας ζητά να πληκτρολογήσετε τo όνοµα και το επώνυµό σας και αφού καθαρίσει την οθόνη θα σας εµφανίζει τα εξής: Το όνοµά σου είναι Γιάννης Παππάς. Είσαι ο χρήστης xxxxxxxxxxxx. Το σύστηµα που χρησιµοποιείς είναι τύπου xxxxxxxxxxx. Πάτα enter για συνέχεια 22. ηµιουργείστε ένα εκτελέσιµο αρχείο eisagogh το οποίο όταν τρέχει θα σας ζητά να πληκτρολογήσετε τo όνοµα το επώνυµο και το τηλέφωνο κάποιου, και θα προσθέτει µια εγγραφή της µορφής: όνοµα, επώνυµο, τηλέφωνο στο τέλος του αρχείου datafile. 23. Γράψτε script που δέχεται παραµετρικά τα ονόµατα δύο αρχείων, τα συγκρίνει και εµφανίζει µόνο τις γραµµές που αυτά διαφέρουν (όχι τις όµοιες). Τα παρακάτω είναι ιδιαίτερα χρήσιµα. Εκτελέστε πρώτα sh Μεταφορά στην επόµενη γραµµή (\n): οκιµάστε: $echo one\ntwo\nthree $echo skip a\n\nline Παραµονή στην ίδια γραµµή (\c): οκιµάστε: $echo stay on this line\c. Μετακίνηση στην επόµενη θέση tab (\t): οκιµάστε: $echo 1\t2\t3\t4\t5. (µετακίνηση κατά 8 θέσεις κάθε φορά). Σελίδα 9 από 38

10 4. ΕΝΤΟΛΕΣ TEE, AWK 1. Υπάρχουν περιπτώσεις όπου η έξοδος µιας εντολής πρέπει να σταλεί ταυτόχρονα σε ένα αρχείο (για να εξεταστεί αργότερα) και σε µια άλλη εντολή. Αυτό µπορεί να γίνει µε την εντολή tee. οκιµάστε για παράδειγµα το εξής: $ ls tee my_files wc c Ποια εντολή πρέπει να δώσουµε ώστε η έξοδος της who να τοποθετηθεί σε ένα αρχείο µε το όνοµα f_who και µια ταξινοµηµένη της έξοδος να τοποθετηθεί στο αρχείο sorted_who; Τι ακριβώς κάνει η εντολή: $ who grep icsd00 tee icsd_users wc -l 2. Η εντολή awk ψάχνει αρχεία γραµµή προς γραµµή ελέγχοντας για συγκεκριµένα πρότυπα. Μπορεί να ενεργήσει πάνω στις γραµµές που ταιριάζουν µε τα πρότυπα µε διαφόρους τρόπους. Μπορεί επίσης να ψάξει και να κάνει ενέργειες επάνω σε συγκεκριµένα πεδία (fields) µιας γραµµής και είναι ικανή για αριθµητικές όσο και για αλφαριθµητικές λειτουργίες. Η awk επίσης παρέχει δοµές ελέγχου (if, while, for) όπως οι παραδοσιακές γλώσσες προγραµµατισµού. 3. οκιµάστε το εξής: $ who awk {print $1} Η εντολή awk επιλέγει και εµφανίζει το πρώτο πεδίο της εξόδου της who. οκιµάστε $ who awk {print $2} 4. ηµιουργήστε ένα αρχείο µε το όνοµα food και περιεχόµενα: Milk dairy 2.00 Το κενό είναι ο προκαθορισµένος χαρακτήρας διαχωρισµού για Hamburger meat 2.75 την awk. οκιµάστε τώρα τις εντολές: Cheese dairy 1.50 $ awk /dairy/ {print $3} food ^d $ awk /Milk/ {print $0} food *ολόκληρο το record* 5. ηµιουργήστε ένα αρχείο staff_db µε περιεχόµενο το εξής: Name Type Unit_Price Quantity Taxstatus ΧΡΗΣΙΜΑ ΣΥΜΒΟΛΑ Carrots veg.3 1 n ^ Ταίριασµα στην αρχή του δεδοµένου string. Milk Dairy.89 2 n $ Ταίριασµα στο τέλος του δεδοµένου string. [ ] Ταίριασµα µε έναν από τους περιεχόµενους. Magazine Sundry y r1 r2 Ταίριασµα της έκφρασης r1 ή της r2. Cheese Dairy n <, <=, >, >=, ==,!= Σύµβολα για συγκρίσεις. Sandwich Deli y ~,!~ Σύµβολα για συγκρίσεις 2. Onions Veg.29 6 n!, &&, NOT, AND, OR αντίστοιχα (Boolean operators). Chicken Meat n +, -, *, /, % Αριθµητικοί τελεστές (%=Ακέραιο υπόλοιπο). Fish meat n NR Record Number. Floorwax Hshld y NF Number of Fields in current Record. Melon Fruit.98 3 n OFS Output field separator (by default, one space). -F ηλώνει διαφορετικό διαχωριστικό από τα κενό και tab. Celery Veg.79 1 n -f Οι εντολές awk βρίσκονται στο αρχείο που προσδιορίζεται. Napkins hshld.49 6 y 6. ώστε τις εντολές και περιγράψτε το αποτέλεσµα: $ awk /Fish/ staff_db $ awk {print} staff_db $awk '/Cheese/ { print }' staff_db $ awk /C/ {print $2} staff_db $ awk /C/ {print $0} staff_db $ awk /C/ {print $2, $1} staff_db $ awk /^Ch/ staff_db $ awk /[MN]/ staff_db $ awk /^[MN]/ staff_db $ awk /[A-F,-]/ staff_db $ awk /[A-F] y/ staff_db awk '{print $1 }' staff_db awk '{ print $3 $1 }' staff_db awk '{ print $2,$4 }' staff_db awk '{ print $0 }' staff_db awk '$1~/^Ch/' staff_db awk $3>1 ' staff_db awk ' $3>1 && $3<= 2 ' staff_db awk ' ΝR == 3, ΝR == 6 ' staff_db $ awk $5 ~/y/ staff_db $ awk $5!~/y/ staff_db $ awk {print} /etc/passwd $ awk {print $2} /etc/passwd $ awk F: {print $2} /etc/passwd $ awk $1!~/C/ && $5 ~/y/ staff_db $ awk $4 ~/1/ $5 ~/y/ staff_db $ awk $4==1 staff_db $ awk $3>=0 && $3<=1 staff_db $ awk $3!~ /9$/ staff_db $ awk $5~/n$/` staff-db $ awk $2~/t$/ staff_db Σελίδα 10 από 38

11 7. ώστε τις εντολές και περιγράψτε το αποτέλεσµα: $ awk >/dairy/ {print $1} > staff_db 1) Στο αρχείο dairy τοποθετείστε το awk-πρόγραµµα: /Dairy/ {name= $1 price = $3 print name,price, Record Number= NR, Field number= NF} Οι ενέργειες που θέλουµε να εκτελεστούν πρίν και µετά το κυρίως πρόγραµµα awk δηλώνονται αντίστοιχα µε τις προτάσεις BEGIN και END και δώστε τη διαταγή: awk -f dairy staff_db. Τι παρατηρείτε; 2) Στο αρχείο dairy1 τοποθετείστε το awk-πρόγραµµα: /Dairy/ {name= $1 price = $3 printf %-10s, name ; printf %10.1f\n,price} και δώστε τη διαταγή: awk -f dairy1 staff_db. Τι παρατηρείτε; BEGIN {print The name and price for each of your items are: } { name = $1 price = $3 quantity = $4 total = price * quantity sum = sum + total print name, total } END {print the total cost of all items is: sum} 3) Σχολιάστε το αποτέλεσµα της awk -f fill staff_db, όπου fill το πρόγραµµα awk BEGIN {OFS = "\t "} {if ($2~/[vV]eg/) $2 = "vegetables" else if ($2~/[dD]el/) $2 = "delicatessen" else $2="other" print $1, $2 } Αλλάξτε την τελευταία γραµµή και χρησιµοποιώντας την printf να τυπώνετε πλήρεις προτάσεις που να περιέχουν και το Τaxstatus (π.χ. "Το είδος Χ είναι της κατηγορίας Υ και (δεν) υπόκειται σε φορολόγηση"). 4) $5 == y {price = $3; Το αρχείο taxes περιέχει τις εντολές: taxedprice = price + price *.065; printf %s %s\n, $1, taxedprice} Εκτελέστε µε $awk f taxes staff_db Σελίδα 11 από 38

12 8. ηµιουργήστε ένα αρχείο basi σε ένα directory awk_files της περιοχής σας µε περιεχόµενο τα εξής: (Epwnymo Onoma Ypsos Baros Ilikia Fylo όχι µέσα στο αρχείο) Pappas Nikos M Pararas George M Georgiou Iordanis M Parara Irini F Ioannou Eleni F Alexiou Nikos M Pappa Eleni F Georgiou Irini F Alexiou Niki F Ioannou Nikos M 9. ηµιουργείστε awk προγράµµατα στην ίδια περιοχή που να απαντούν στα παρακάτω ερωτήµατα και δώστε τους αντίστοιχα ονόµατα aw1, aw2, aw3, A. Σε κάθε πρόγραµµα θα τυπώνονται τίτλοι στην αρχή για τα αντίστοιχα πεδία που τυπώνονται και διακεκοµµένη γραµµή στο τέλος. 1. Ποιών το επώνυµο αρχίζει από P (τυπώνονται όλα τα στοιχεία). 2. Ποιών το επώνυµο αρχίζει από Α (τυπώνονται όλα τα στοιχεία). 3. Ποιών το επώνυµο αρχίζει από Α έως Ι (τυπώνονται όλα τα στοιχεία). 4. Ποιών το επώνυµο αρχίζει από Α ή P (τυπώνονται όλα τα στοιχεία). B. Σε κάθε πρόγραµµα θα τυπώνονται µόνο οι εγγραφές που ταιριάζουν στα ερωτήµατα. 5. Ποιών το ύψος είναι > 1.80 (τυπώνονται δίπλα-δίπλα επώνυµο, όνοµα, ύψος). 6. Ποιών το ύψος είναι >1.70 και <1.80 (τυπώνονται δίπλα-δίπλα επώνυµο, όνοµα, ύψος). 7. Ποιών το ύψος είναι <1.70 ή > 1.80 (τυπώνονται δίπλα-δίπλα επώνυµο, όνοµα, ύψος). 8. Ποιοι έχουν ηλικία 25 (τυπώνονται δίπλα-δίπλα επώνυµο, όνοµα, ηλικία). 9. Ποιοι έχουν ηλικία από 20 έως 30 (τυπώνονται δίπλα-δίπλα επώνυµο, όνοµα, ηλικία). 10. Ποιοι είναι άρρενες (τυπώνονται δίπλα-δίπλα επώνυµο, όνοµα, φύλο). 11. Ποιών το επώνυµο αρχίζει από P και είναι πάνω από 1.70 (τυπώνονται δίπλα-δίπλα επώνυµο, όνοµα, ύψος). 12. Ποιοι είναι άνδρες πάνω των 30 (τυπώνονται δίπλα-δίπλα επώνυµο, όνοµα, ηλικία). Γ. Εκτυπώστε µόνο τα ονόµατα των χρηστών και το τερµατικό που είναι συνδεδεµένοι (µε who).. Τυπώστε το αρχείο βάση αφήνοντας µια κενή γραµµή για κάθε εγγραφή. Ε. Τυπώστε τα στοιχεία της κάθε εγγραφής µε µορφή: Επώνυµο: xxxxxxx Όνοµα: xxxxxx Ύψος: ddd Βάρος: ddd Ηλικία: ddd Φύλο: x Z. Φτιάξτε αντίστοιχα προγράµµατα awk που να τυπώνουν: 1. Τον µέσο όρο του ύψους των ανδρών. 2. Το µέσο όρο βάρους και ηλικίας όλων των ατόµων της βάσης. 3. Το µέσο όρο βάρους των γυναικών. {i = NF while (i > 0) { printf %s, $i i -- } printf \n } Τι ακριβώς κάνουν αυτά τα δύο awk προγράµµατα στο αρχείο staff_db ή στο αρχείο basi { for (i = NF; i > 0 ; i-- ) printf %s, $i printf \n } Σελίδα 12 από 38

13 5. ΑΣΚΗΣΕΙΣ Εκτελέστε τις παρακάτω εντολές. Τι ακριβώς κάνουν; who awk '{ print $5 }' who awk '{ print "User " $1 " is connected on terminal " $2}' *** άλλες πληροφορίες πρέπει να περικλείονται σε διπλά εισαγωγικά *** grep gkamb /etc/passwd awk -F: '{print "Home Dir for:" $1 " is: " $6}' ls -l awk '{print NR ": " $0}' ls -lf awk '{print $5 "\t" $9}' sort -rn more ls -l awk '{total = total + $5} END {print total "used in " NR " files"}' who awk '{print $1 " is " length($1) " characters long"}' who awk '{if ($1 == "csxxxx") print}' grep -c cs02 /etc/passwd ls -F file <όνοµα αρχείου> **** Εντολή αναγνώρισης των τύπων αρχείων **** rm i *** ιαγραφή κατόπιν επιβεβαίωσης *** Βρείτε µε µια εντολή ποια αρχεία στην περιοχή σας είναι commands text {file * grep "commands text"}. Γράψτε εντολή που εµφανίζει τα 5 πιο µικρά σε µέγεθος αρχεία της περιοχής σας (κάθε γραµµή εξόδου να περιέχει το όνοµα του αρχείου και το µέγεθός του χωρισµένα µε tab). Γράψτε εντολή awk που εµφανίζει το πλήθος των χρηστών του αρχείου /etc/passwd που το login name τους είναι ακριβώς 4 χαρακτήρες. Γράψτε εντολή awk που εµφανίζει πόσα ονόµατα λογαριασµών έχουν µήκος κάθε δυνατό αριθµό χαρακτήρων. BEGIN { for (i=1;i<9;i++) count[i]=0 } { n=length($1) count[n]=count[n]+1 } END { for (i=1;i<9;i++) print "there are "count[i]" users with "i" characters login name" } Σελίδα 13 από 38

14 6. ΕΠΕΚΤΑΣΗ ΒΑΣΙΚΩΝ ΕΝΤΟΛΩΝ 1. Η παράµετρος m (mode) επιτρέπει τη δηµιουργία directory µε συγκεκριµένα permissions. Για παράδειγµα δοκιµάστε: $mkdir m 700 new_dir. 2. Περισσότερα για την εντολή find. Σύνταξη: find όνοµα διαδροµής κριτήριο ενέργειες -name Αναζήτηση µε το όνοµα του αρχείου. -user Αναζήτηση µε το όνοµα του χρήστη. -group Αναζήτηση µε το όνοµα της οµάδας. -type (d, b, c, p, f) Αναζήτηση µε τον τύπο του αρχείου. -links n Αναζήτηση µε βάση τον αριθµό των συνδέσµων. -size n Αναζήτηση µε βάση το µέγεθος του αρχείου σε blocks = 512 bytes. -perm Αναζήτηση µε βάση τον τύπο των αδειών του αρχείου. (Παράδειγµα: u=rwx, g=rx, o=rx) -atime n Αναζήτηση µε βάση τον αριθµό ηµερών πριν από τις οποίες προσπελάστηκε το αρχείο. -mtime n Αναζήτηση µε βάση τον αριθµό ηµερών πριν από τις οποίες τροποποιήθηκε το αρχείο. -ctime n Αναζήτηση µε βάση τον αριθµό ηµερών πριν από τις οποίες δηµιουργήθηκε το αρχείο Παραδείγµατα: $find. name file2 print (το print θα εµφανίσει το path των αρχείων που ταιριάζουν) $find / -atime +100 print exec rm {} \; (το exec επιτρέπει την εκτέλεση εντολής στα αρχεία που θα βρεθούν, ενώ τελειώνει µε κενό\; Τα {} αντιπροσωπεύουν τα αρχεία που βρέθηκαν). $find /usr -atime +100 ok rm {} \; (το ok σηµαίνει ότι και το exec αλλά µε επιβεβαίωση). $find. atime +30 atime 60 exec mv {}./old \; (η στο 2 ο atime αντιπροσωπεύει το λογικό AND). $find /usr/nikos user chris name art[1-5] print $find. name n* o name t* print (το o αντιπροσωπεύει το λογικό OR). $find /! -name t* print (το σύµβολο! αντιπροσωπεύει το λογικό NOT). Οι παρενθέσεις έχουν ειδική σηµασία για το shell και γι αυτό το λόγο πρέπει να προηγείται το σύµβολο \ (escape character). Γενικά θα παρατηρήσετε γενικά πως ο χαρακτήρας \ αφαιρεί την ειδική σηµασία από τον επόµενό του. Οι χαρακτήρες \; ηλώνουν που τελειώνει η εντολή exec. +n σηµαίνει > n, -n < n, n ακριβώς n. 3. Πώς βλέπω το χώρο σε blocks (1 block = 512 bytes) που καταλαµβάνουν τα αρχεία µου; Εντολή du (disk usage). Επίσης η εντολή df (disk free) εµφανίζει τον ελεύθερο χώρο στο δίσκο. 4. Περισσότερα για την εντολή ps. -e εµφανίζει πληροφορίες για όλες τις διεργασίες όχι µόνο για αυτές του τερµατικού µας. -d εµφανίζει πληροφορίες για διεργασίες που δεν είναι group leaders (sh). -f (full) πλήρη λίστα πληροφοριών. -l (long) εµφανίζει εκτεταµένη λίστα πληροφοριών. -t (terminal) εµφανίζει τις διεργασίες που σχετίζονται µε συγκεκριµένο τερµατικό. -u εµφανίζει τις διεργασίες συγκεκριµένου χρήστη. Γράψτε script που αναζητά διεργασίες µε βάση κάποιο λεκτικό που προσδιορίζεται ως παράµετρος. Π.χ. αν αναζητώ διεργασίες των φοιτητών του 2 ου έτους το λεκτικό µπορεί θα ήταν icsd02*. Το script πρέπει να αποθηκεύει µόνο τις πληροφορίες που αφορούν το UID και το PID (1 κενό ως διαχωριστικό µεταξύ των στηλών) σε ένα αρχείο µε το όνοµα junk1. Μπορείτε να αλλάξετε το διαχωριστικό σε 1 tab; 5. SED (Stream Editor). Γράψτε εντολή που διαγράφει τη δεύτερη γραµµή του αρχείου staff_db. $sed 2 d staff_db (για τις γραµµές από 1 έως 10 δοκιµάστε $sed 2,10 d staff_db). $sed s/dairy/dairy/ staff_db (αντικαθιστά (substitute) τη λέξη Dairy µε DAIRY). Παρατηρήστε ότι τα αρχικά αρχεία δεν µεταβάλλονται απλώς έχω έξοδο στην οθόνη. $sed s/1/2/ staff_db $sed s/1/2/g staff_db Ποια η διαφορά τους; $sed 2 q staff_db (Τύπωσε τις 2 πρώτες γραµµές και µετά quit). $sed /Fish/ q staff_db (Στο πρώτο «ταίριασµα» µε Fish quit). $sed /^$/ d staff_db ( ιέγραψε τις κενές γραµµές αν υπάρχουν σηµειώστε ότι το σύµβολό ^ σηµαίνει την αρχή της γραµµής και το $ σηµαίνει το τέλος της υπονοείται ενδιάµεσα τίποτα). Σελίδα 14 από 38

15 Γράψτε script που βρίσκει αρχείο, που το όνοµά του προσδιορίζεται ως παράµετρος, ξεκινώντας από το ΗΟΜΕ directory και διαγράφει την πρώτη γραµµή του. Το αποτέλεσµα πρέπει να τοποθετηθεί στο αρχείο junk. Γράψτε script που: 1. Θα ζητάει από το χρήστη α. Το όνοµα ενός αρχείου β. ένα λεκτικό προς αντικατάσταση και γ. ένα λεκτικό που θα αντικαταστήσει το προηγούµενο. 2. Θα εντοπίζει το αρχείο και θα αντικαθιστά όλα τα λεκτικά που δόθηκαν στο β µε το λεκτικό που δόθηκε στο γ. 6. ηµιουργήστε το παρακάτω αρχείο: MICHAEL COLLINS USA STEPHEN MICHAEL ENGLAND MICHAEL HUGHES USA MICHAEL MAN AFRICA Α. Βρείτε πόσες φορές υπάρχει το όνοµα MICHAEL και σε ποιες γραµµές (να εµφανίζεται µόνο ο αριθµός της γραµµής). Β. Σε ποιες (αριθµός) γραµµές δεν υπάρχει η χώρα USA (παράµετρος v). Γ. Ταξινοµήστε το αρχείο κατά επώνυµο και χώρα. 7. Εµφανίστε σελίδα σελίδα όλα τα PID των διεργασιών του συστήµατος που περιέχουν στο PID τους τον αριθµό Εµφανίστε τις τελευταίες γραµµές των αρχείων του home directory που είτε ταιριάζουν µε το λεκτικό s*, είτε αρχίζουν από t ή Τ. 9. Να εµφανίσετε και να γράψετε σε αρχείο µε επέκταση sh, τους χρήστες που υπάρχουν στο αρχείο συνθηµατικών (/etc/passwd) και χρησιµοποιούν τον ίδιο φλοιό µε εσάς. 10. Γράψτε script που εντοπίζει όλα τα αρχεία ενός χρήστη (παράµετρος) που βρίσκονται στο δέντρο του directory (παράµετρος) και αλλάζει τα δικαιώµατα προσπέλασής τους σε Γράψτε script που θα δηµιουργεί ένα directory (παράµετρος) µε συγκεκριµένα δικαιώµατα που δίνονται επίσης σαν παράµετρος. 12. Γράψτε script που εµφανίζει µόνο τις ηµεροµηνίες του µήνα και του έτους (που προσδιορίζεται ως παράµετρος) που έχουµε Τετάρτη ή Παρασκευή. 13. Γράψτε script που θα τυπώνει τις πρώτες n γραµµές των αρχείων που ανήκουν σε συγκεκριµένο χρήστη που προσδιορίζεται ως παράµετρος (το n είναι επίσης παραµετρικό). 14. Γράψτε ένα script που διαγράφει όλα τα αρχεία και τους καταλόγους (οπουδήποτε στο σύστηµα και αν βρίσκονται αυτά) που ανήκουν σε κάποιο χρήστη. Το όνοµα του χρήστη δίνεται σαν παράµετρος. 15. Γράψτε script που κάνει το prompt του συστήµατος να είναι το path του εκάστοτε working directory. (π.χ. αν το working directory είναι το /users/kostas, το prompt πρέπει να είναι της µορφής /users/nikos>). 16. Γράψτε script που θα εµφανίζει ποιες διεργασίες τρέχουν σε ένα σύστηµα UNIX και θα επιτρέπει τον τερµατισµό κάποιας απ αυτές µε επιλογή του χρήστη. 17. Σηµειώστε επίσης για την tail ότι χωρίς παράµετρο εµφανίζει τις 10 τελευταίες γραµµές ενός αρχείου (όπως και η head τις 10 πρώτες). Αν χρησιµοποιηθεί µε παράµετρο θετικό ή αρνητικό αριθµό, π.χ. $tail 20 file1, τότε το + σηµαίνει διάβασε από την αρχή του αρχείου και το από το τέλος του. Π.χ. για να εµφανίσετε τις 20 τελευταίες γραµµές ενός αρχείου file1 εκτελέστε: $tail 20 file1, ενώ για να µετρήσετε από τη γραµµή 35 µέχρι το τέλος του file1 εκτελέστε: $tail +35 file Περισσότερα για την grep. $grep George papas mail Αναζήτηση του string George papas στο αρχείο mail. $grep ^G mail Αναζήτηση των γραµµών του mail που ξεκινούν από G. $grep A[^t] mail Αναζήτηση των γραµµών του mail που ξεκινούν από Α και δεν ακολουθούνται από t. $grep n Nick mail Σε ποια γραµµή υπάρχει το string Nick. $grep c Nick mail Πόσες γραµµές περιέχουν το string Nick. $grep l Athens./* Εµφανίζει τα ονόµατα των αρχείων που περιέχουν Athens στο τρέχον dir. $grep v Nick mail Αναζήτηση των γραµµών που δεν περιέχουν το string Nick. $grep * files *** All files in the current directory *** $grep * files $grep [tt]hose file $grep i those file *** ignore case *** $grep [0..9] file $grep l test *.c wc l $grep n test *.c sort r $grep *z /etc/passwd *** ΠΡΟΣΟΧΗ: Σηµαίνει 0 ή περισσότερες εµφανίσεις του χαρακτήρα z *** Σελίδα 15 από 38

16 7. ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ IF ΚΑΙ CASE ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΕΝΤΟΛΗΣ AWK 1. Τα αναγνωριστικά των µεταβλητών (όπως και τα ονόµατα των αρχείων του UNIX) µπορούν αν αποτελούνται από οποιουσδήποτε χαρακτήρες εκτός από το χαρακτήρα / και τους µεταχαρακτήρες του UNIX (*, $, ^, [, ],.,?,,, `, &, ). 2. Οι µεταβλητές δηλώνονται και παίρνουν την αρχική τους τιµή µε το σύµβολο =. Παραδείγµατα: $mark = /usr/bin ή $term = <ENTER> (κενή ακολουθία) ή $name = John noname. $save_date = `date` Η τιµή µιας µεταβλητής δίνεται µε το να προηγηθεί ο χαρακτήρας $ του ονόµατός της. Παραδείγµατα: $ls l $mark τυπώνει τα ονόµατα όλων των αρχείων που βρίσκονται στον κατάλογο /usr/bin. Αν µια µεταβλητή ακολουθείται από άλλους χαρακτήρες, τότε ο γενικός συµβολισµός είναι: $(<όνοµα µεταβλητής>), για παράδειγµα: $cat $(mark)/extend Τυπώνει τα περιεχόµενα του καταλόγου /usr/bin/extend. Μερικές µεταβλητές, όπως είδαµε, έχουν ειδική σηµασία (είναι προκαθορισµένες) για το φλοιό (TERM, HOME, PS1 ). 3. Εντολή test (έλεγχος γεγονότων για χρήση σε scripts σε συνδυασµό µε την if) test r file Αλήθεια αν το αρχείο υπάρχει και είναι readable test w file Αλήθεια αν το αρχείο υπάρχει και είναι writable test x file Αλήθεια αν το αρχείο υπάρχει και είναι executable test f file Έλεγχος για απλά αρχεία (regular files) test d file Αλήθεια αν το αρχείο υπάρχει και είναι directory test z string Αλήθεια αν το string έχει µήκος 0 test n string Αλήθεια αν το string έχει µη µηδενικό µήκος if test r info # θα µπορούσε να γραφεί και [ -r info ] then cat info else echo You can t read that file fi if test $SSH_TTY = /dev/pts/4 then echo This is Anna s Terminal else echo Unknown Terminal fi Για συγκρίσεις χρησιµοποιούνται οι τελεστές που αναφέρονται στην εντολή if παρακάτω. 4. Εντολές επιλογής if εντολές if test f αρχείο #(αν υπάρχει το αρχείο εκτέλεσε την c1 διαφορετικά την c2) then εντολές then c1 # (θα µπορούσε να γραφεί και σαν [ -f αρχείο ] elif εντολές else c2 then εντολές fi if [ $1 ] (Αν δόθηκε τιµή για τη µεταβλητή $1) else εντολές fi then name=$1 else echo Please enter the login name you want to check Λογικοί Τελεστές read name fi -eq ή == (ίσο - equal) echo The number of times $name is logged on is: = (ίσο για strings) who grep $name wc l -gt (greater than) -lt -ge -le -ne -o (or) -a (and)! (not) (less than) (greater or equal) (less or equal) (not equal) hour = `date cut c12-13` if [ $hour ge 0 a $hour lt 12 ] then echo Good morning elif [ $hour lt 18 ] then echo Good afternoon else echo good Night fi Τι κάνουν τα παραπάνω script; Σελίδα 16 από 38

17 Debugging Scripts $sh x script_name $sh v script_name case µεταβλητή in string1) λίστα εντολών1;; string2) λίστα εντολών1;;. *) διαφορετικά # Τίποτα από τα παραπάνω λίστα εντολών* esac 5. Κωδικοί εξόδου εντολών (0 255) cat <<++ MAIN MENU 1) Print working directory 2) List all files in current directory 3) Print today s date and time Please enter your selection $LOGNAME: ++ #Το <<++ οδηγεί την cat να χρησιµοποιήσει τις γραµµές που read selection case $selection in 1) pwd;; 2) ls l;; 3) date;; *) echo Unknown command;; esac #ακολουθούν (και µέχρι την εµφάνιση του ++ στην αρχή µιας γραµµής) σαν την #είσοδο της. Το ++ µπορεί να αντικατασταθεί από οποιοδήποτε string π.χ. EOF # Experiment with command exit status (Γραµµή σχολίων) echo "The next command should fail and return a status greater than zero" ls /nosuchdirectory echo "Status is $? from command: ls /nosuchdirectory" (Με τη βοήθεια της µεταβλητής echo "The next command should succeed and return a status equal to zero" $? µπορώ να εξετάσω τον κωδικό ls /tmp εξόδου µιας εντολής. Μόνο το 0 echo "Status is $? from command: ls /tmp" σηµαίνει επιτυχία). # Use an if block to determine if a command succeeded echo "This mkdir command fails unless you are root:" mkdir /no_way if [ "$?" -ne 0 ] then # Complain and quit echo "Could not create directory /no_way...quitting" exit 1 # Set script's exit status to 1 fi echo "Created directory /no_way" 6. Εφαρµογές Επανάληψη Α. Να γραφεί εντολή που να χρησιµοποιεί την γλώσσα awk, η οποία να τυπώνει τα ονόµατα των χρηστών που είναι συνδεδεµένοι στο σύστηµα και την ώρα εισόδου τους, ταξινοµηµένους κατά φθίνουσα σειρά. # An example with the case statement # Reads a command from the user and processes it echo "Enter your command (who, list, or cal)" read command case "$command" in who) echo "Running who..." who;; list) echo "Running ls..." ls;; cal) echo "Running cal..." cal;; *) echo "Bad command, your choices are: who, list, or cal";; esac exit 0 Β. Να γραφεί πρόγραµµα ή εντολή awk που τυπώνει τα ονόµατα (login names & real names) των χρηστών του συστήµατος ταξινοµηµένα κατ αύξουσα σειρά σελίδα - σελίδα. Γ. Να γραφεί awk πρόγραµµα που µετρά το συνολικό µέγεθος (σε Μbytes) των αρχείων (δεν περιλαµβάνει directories) που περιέχονται σε ένα ευρετήριο, που δίνεται ως παράµετρος. Ελέγξτε πρώτα αν το ευρετήριο υπάρχει.. Χρησιµοποιώντας τις εντολές ls, grep και rm, γράψτε εντολή που διαγράφει όλα τα αρχεία ενός directory (µετά από επιβεβαίωση για κάθε ένα απ αυτά) εκτός από αυτά που καταλήγουν σε p (.p). Η παράµετρος για να γίνει «διαλογική» η rm είναι η i. 7. Ως γνωστό η cal δέχεται µόνο αριθµητικά το µήνα π.χ: $cal Γράψτε shell script που βελτιώνει την εντολή, έτσι ώστε να δουλεύει και µε τα λεκτικά αναγνωριστικά των µηνών (jan ή Jan, feb, apr, may, jun, jul, aug, sep, oct, nov, dec). Π.χ. αν ο χρήστης δώσει $mycal jun 2003 ουσιαστικά θα εκτελείται η cal Το script σας πρέπει να ελέγχει τον αριθµό των ορισµάτων που εισάγει κάθε φορά ο χρήστης και ανάλογα να αποφασίζει. 8. Γράψτε shell script που δέχεται το όνοµα ενός directory σαν όρισµα και: - Θα ελέγχει αν το directory υπάρχει. - Αν δεν υπάρχει θα το δηµιουργεί. - Θα αντιγράφει τα αρχεία που ξεκινούν από t ή Τ και δεν ακολουθούνται από e, του directory που βρίσκεστε στο directory όρισµα.. Σελίδα 17 από 38

18 9. Γράψτε shell script που δέχεται ως παράµετρο το όνοµα ενός χρήστη και ελέγχει αν αυτός έχει συνδεθεί στο σύστηµα και ποιες διεργασίες εκτελεί. Φροντίστε το script σας να κάνει έλεγχο αν δόθηκε µια παράµετρος. 10. Γράψτε ένα shell script που συγκρίνει τα πλήθη αρχείων που περιέχονται σε δύο ευρετήρια. Τα ονόµατα των ευρετηρίων δίνονται αρχικά σαν παράµετροι. Το script πρέπει να ελέγχει αν δόθηκαν 2 παράµετροι, διαφορετικά πρέπει να τερµατίζει µε κατάλληλο µήνυµα που αφορά τη σωστή σύνταξη του script. 11. Γράψτε ένα shell script που θα δέχεται το όνοµα ενός αρχείου σαν παράµετρο και θα το εκτυπώνει εφόσον αυτό έχει περισσότερες από 30 γραµµές. Το script ελέγχει αν κλήθηκε µε µια παράµετρο διαφορετικά πρέπει να τερµατίζει µε κατάλληλο µήνυµα που αφορά τη σωστή σύνταξη του. Η εντολή για εκτύπωση είναι η lp η οποία σε συνδυασµό µε τη παράµετρο d (destination), επιτρέπει την εκτύπωση σε συγκεκριµένο εκτυπωτή. Για να δοκιµάσετε το script χρησιµοποιήστε αντί για την lp, εντολή µε έξοδο στην οθόνη. 12. Γράψτε ένα shell script που διαγράφει τις 10 τελευταίες γραµµές ενός αρχείου που δίνεται ως παράµετρος. Το script θα πρέπει να ελέγχει αν δόθηκε παράµετρος, αν το αρχείο υπάρχει και αν έχει τουλάχιστον 10 γραµµές. Σελίδα 18 από 38

19 8. ΠΑΡΑ ΕΙΓΜΑΤΑ sort -u file_name *** Αφαιρεί επαναλαµβανόµενες ίδιες γραµµές στην έξοδο *** uniq file_name *** Συγκρίνει κάθε γραµµή µε την προηγούµενή της. Αν είναι ίδιες η uniq δεν παραθέτει την 2η γραµµή *** Χρήσιµες παράµετροι της uniq -u παραθέτει µόνο τις γραµµές που δεν επαναλαµβάνονται. -d παραθέτει τις γραµµές που επαναλαµβάνονται. -c πόσες φορές εµφανίζεται η κάθε γραµµή στο αρχείο. Παραδείγµατα: grep, tail, head, sed, read, if grep "^cs00040[^a-z]" /etc/passwd grep cs02 /etc/passwd sed -e 's/:/ /' *** Σύνταξη: s/old/new/flags *** grep cs02 /etc/passwd sed -e 's/:/ /g' who head -10 sed '1,3d' grep john /etc/passwd sed 's/john/jonny/g;s/:/ /g who sed 's/pts/on Terminal /;s/jun/logged in Jun/' awk -F: '{print $7}' /etc/passwd sort uniq -c *** Πόσοι διαφορετικοί φλοιοί χρησιµοποιούνται *** head -4 test *** Οι πρώτες 4 γραµµές του αρχείου *** who head -5 tail -3 test *** Οι τελευταίες 3 γραµµές του αρχείου *** head -12 test tail -3 *** Θα εµφανιστούν 10η, 11η & 12η γραµµή του αρχείου *** read animal name place Dog Tzak the killer Home *** Μόνο το Tzak εκχωρείται στη µεταβλητή name *** read animal name place Dog Tzak\ the\ killer Home *** Now everything is OK! το κενό θα διαβαστεί ως χαρακτήρας *** if [ -f $1 ] **Απαιτούνται κενά µεταξύ [ ] και των υπολοίπων then echo $1 is a regular file elif [-d $1 ] then echo $1 is a directory else echo $1 is not a regular file or a directory fi -w αληθές αν υπάρχει το αρχείο και είναι εγγράψιµο. -x αληθές αν υπάρχει και είναι εκτελέσιµο. -r αληθές αν υπάρχει και είναι αναγνώσιµο. #!/bin/ksh (Korn Shell) echo "Enter a Filename $LOGNAME: \c" read fname if [ "$fname" ] Σελίδα 19 από 38

20 then if [ -f $fname ] then more $fname elif echo "File: $fname does not exist" fi else echo "Next Time enter a valid file name - bye" fi Σελίδα 20 από 38

21 9. ΙΑΦΟΡΕΣ ΜΕΤΑΞΥ ΤΩΝ QUOTES, INTEGER ARITHMETIC ΚΑΙ ΠΑΡΑ ΕΙΓΜΑΤΑ Single quote grep Nick Pappas mail2 grep [NnGH]* Georgiou mail2 echo one two three four *** 4 arguments *** echo one two three four *** 1 argument *** dir = $HOME echo $dir echo $dir echo * echo * Double quote Λειτουργούν το ίδιο µε τα single quotes αλλά δεν είναι τόσο περιοριστικά δηλαδή τα: Dollar sign $ Back quotes ` Back slashes \ εν αγνοούνται όταν βρίσκονται µέσα σε double quotes. phrase = Good morning, he said echo $phrase x = * echo $x echo $x echo $x H µεταβλητή x υποκαθίσταται από το *. Όµως το * δεν υποκαθίσταται από όλα τα αρχεία. οκιµάστε και echo * και κατόπιν echo *. Backslash \ Το backslash είναι σαν να τοποθετώ single quotes γύρω από ένα χαρακτήρα. Εξαιρείται το backslash σαν τελευταίος χαρακτήρας µιας γραµµής (σηµαίνει ότι η γραµµή συνεχίζεται στην επόµενη). echo > *** Syntax error *** echo \> *** OK! *** x = * echo \$x echo \$x *** Το \ δεν αγνοείται µέσα σε double quotes *** command = one\ > two echo command *** Το \ σηµαίνει συνέχεια στην επόµενη γραµµή *** Back quote ` echo The time and date is: `date` ή echo The time and date is: $(date) echo Current working Dir is: `pwd` ή echo Current working Dir is: $(pwd) echo There are $(who wc l) users logged in now = $(date) ; echo $now ή now = `date` ; echo $now Integer Arithmetic $((expression)) *** Γενικός Τύπος *** b = 1 echo $((b=b+1)) j = 8 echo $((i=(i+10)*j)) i = $((i*5)) result = $((i>0 && i<=100)) *** Boolean *** Σελίδα 21 από 38

22 i = $((100 * 200 / 10)) j = $((i < 1000)) echo $i, $j Integer Arithmetic (Script) i = $1 j = $2 k = $((i+j)) echo $k echo $((k=2*k)) echo $((k<100)) Σελίδα 22 από 38

23 10. ΕΝΤΟΛΕΣ WHILE, FOR, UNTIL ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ 1. Γενική σύνταξη εντολών επανάληψης: while [ έκφραση ] for var_name in word_list until [ έκφραση ] do do do λίστα εντολών λίστα εντολών λίστα εντολών done done done 2. Παραδείγµατα: leave=1 while [ $leave eq 1 ] do clear cat <<EOF MAIN MENU 1) Print working directory 2) List all files in current directory 3) Print today s date and time x) Exit Please enter your selection $LOGNAME: EOF read selection case $selection in 1) pwd;; 2) ls l;; 3) date;; x Χ) leave=2;; # = OR *) echo Unknown command;; esac sleep 2 # ώστε να προλάβω να δω την έξοδο done exit 0 for fn in file1 file2 do cp $fn $fn.bak done # η µεταβλητή fn θα πάρει # διαδοχικά τις τιµές file1, file2. echo Enter filenames to backup read fnames for fn in $fnames do cp $fn $fn.bak done count=1 while [ $count le 10 ] do echo $count count = `expr $count + 1` done until who grep icsdxxxxx do sleep 60 done Τι ακριβώς κάνει ; # Τι ακριβώς κάνει το παρακάτω script αν κληθεί µε παράµετρο το login ID σας; who awk {print $1} sort >./loglist$$ # τα $$ στο τέλος του αρχείου είναι το PID της εντολής # άρα κάθε φορά που εκτελώ το script θα δηµιουργούνται # µοναδικά αρχεία grpnum=`awk F: $1 == $1 {print $4} /etc/passwd` awk F: $4 == $grpnum {print $1} /etc/passwd \ sort >./grplist$$ comm. 12./grplist$$./loglist$$ rm./loglist$$./grplist$$ # εκτελέστε το script µε το δικό σας login ID σαν παράµετρο # Η εντολή comm ψάχνει δύο ταξινοµηµένα αρχεία για κοινές γραµµές και εµφανίζει 3 στήλες. Η πρώτη στήλη περιέχει γραµµές που βρέθηκαν µόνο στο 1 ο αρχείο. Η δεύτερη µόνο γραµµές που βρέθηκαν στο 2 ο αρχείο και η 3 η κοινές και στα 2 αρχεία γραµµές. Το 12 σηµαίνει «µην εµφανίζεις τις 1 & 2 στήλες». Σελίδα 23 από 38

24 3. Παραδείγµατα συνέχεια for filename in simple.sh variables.sh #εδώ βάλτε τα ονόµατα δύο αρχείων σας do echo "Variable filename is set to $filename..." ls -l $filename wc -l $filename done for filename in *.sh #αντικαταστήστε το pattern µε ότι εσείς θέλετε do echo "Variable filename is set to $filename..." ls -l $filename wc -l $filename done for text_file in sdsc.txt nlanr.txt #δοκιµάστε το µε δύο δικά σας αρχεία do echo "Editing file $text_file" sed -e 's/application/application/g' $text_file > temp mv -f temp $text_file done Ασκήσεις 1. (Επανάληψη) Τι συµβαίνει µε το παρακάτω shell script. ιορθώστε το. echo enter a file name: read $fname if [ -f fanme ] echo The content of fname: more fname else echo < no such file ; 2. Γράψτε shell script που «ξυπνάει» ανά 30 και διαγράφει όλα τα αρχεία.tmp που έχετε στην περιοχή σας, αφού πρώτα εµφανίσει επιβεβαίωση για καθένα απ αυτά. 3. Γράψτε shell script που «ξυπνάει» ανά 2 και ενηµερώνει συγκεκριµένο χρήστη (του οποίου το login ID δίνεται ως παράµετρος), πόσες φορές είναι συνδεδεµένος στο σύστηµα. 4. Γράψτε shell script που «ξυπνάει» ανά 5 και ενηµερώνει το διαχειριστή, ποιοι χρήστες (τα Login ID τους) συνδέθηκαν στο σύστηµα µια συγκεκριµένη ώρα (παράµετρος) που δίνεται στη µορφή π.χ 5:10 5. (Επαναληπτική). Σ ένα σύστηµα UNIX υπάρχουν 6 χρήστες, οι user1, user2 user6, µε home direcrories αντίστοιχα /users/user1. /users/user6. Οι user1 έως 3 ανήκουν στο group1, ενώ οι χρήστες user4 έως user6 ανήκουν στο group2. Ο system administrator θέλει να δώσει δικαίωµα µόνο στους χρήστες user1 user3 να εκτελούν το αρχείο /bin/xxx. Ποιες εντολές πρέπει να εκτελέσει ενώ βρίσκεται στο /. (η εντολή για αλλαγή του group που ανήκει ένα αρχείο ή directory είναι chgrp). 6. Γράψτε shell script που επιτρέπει σε κάποιο χρήστη να στείλει το ίδιο µήνυµα στους χρήστες user1, user2, user3 user6. Το script θα µπορούσε να αρχίζει κάπως έτσι: echo Write your message to be sent and press ctrl+d 7. Γράψτε ένα shell script που θα ενεργοποιείται κάθε 3 ώρες και θα διαγράφει τις 3 τελευταίες γραµµές όλων των αρχείων που τελειώνουν σε.c ή σε.p του χρήστη του οποίου το όνοµα θα δίνεται ως παράµετρος. (θα πρέπει να γίνεται έλεγχος αν τα αρχεία έχουν 3 ή περισσότερες γραµµές). Πώς θα εκτελέσουµε αυτό το script; 8. Γράψτε ένα shell script που ενεργοποιείται κάθε 10 λεπτά και αντιγράφει όλα τα αρχεία του τρέχοντος directory, στο directory που του έχει δοθεί ως παράµετρος. Θα πρέπει να ελεγχθεί αν τα directory υπάρχουν. 9. Γράψτε ένα shell script που εµφανίζει στην οθόνη τα login names και τα home directories των χρηστών που είναι logged in. Σελίδα 24 από 38

25 10. Γράψτε ένα shell script που θα στέλνει όποτε το καλούµε, µήνυµα σε όλους τους χρήστες που είναι logged in στο σύστηµα. Το µήνυµα θα είναι παράµετρος (κλήση: send_all good morning ). 11. Γράψτε ένα shell script που διακόπτει όλες τις processes εκτός του sh (του αρχικού), ενός χρήστη του οποίου το όνοµα δίνεται ως παράµετρος. Σελίδα 25 από 38

26 11. ΙΑΧΕΙΡΙΣΗ ΧΡΗΣΤΩΝ ΚΑΙ ΙΚΤΥΟΥ 1. Για να προστεθεί ένα χρήστης από το διαχειριστή του συστήµατος Linux θα πρέπει να δοθεί η εντολή useradd user_name και µετέπειτα να δοθεί στο νέο αυτό χρήστη ένα συνθηµατικό passwd user_name. Το συνθηµατικό αυτό θα πρέπει να αλλαχθεί από το νέο χρήστη µόλις συνδεθεί µε το σύστηµα (passwd). Εάν κάποιος χρήστης ξεχάσει το συνθηµατικό του τότε ο διαχειριστής µπορεί εύκολα να το αλλάξει µε την εντολή passwd user_name. ηµιουργήστε ένα χρήστη (για όνοµα βάλτε το µικρό σας και στο τέλος το πρώτο γράµµα του επιθέτου σας, για παράδειγµα JohnA) θέστε ως συνθηµατικό το όνοµα του (π.χ JohnA) και ύστερα αλλάξτε το σε ηµιουργία script το οποίο να δηµιουργεί ένα χρήστη να θέτει το συνθηµατικό του ίδιο µε το όνοµα του (Username) και να ορίζει ότι η διάρκεια ισχύος του συνθηµατικού είναι 2 βδοµάδες. 2. ηµιουργήστε ένα γκρουπ και θέστε σε αυτό τα ονόµατα ορισµένων φίλων σας. (groupadd group_name για τη δηµιουργία του γκρουπ). Για παράδειγµα µπορώ να δηµιουργήσω το γκρουπ friends και να επεξεργαστώ το αρχείο /etc/group προσθέτοντας το log in name µου και τα αντίστοιχα των φίλων µου έτσι ώστε η τελευταία γραµµή να είναι της µορφής friends:x:502:stan,pete,marie. Μπορείτε µε χρήση της οµάδας αυτής που δηµιουργήσατε να δώσετε δικαιώµατα σε ένα αρχείο που έχετε δηµιουργήσει. 3. Όταν ο διαχειριστής θέλει να απενεργοποιήσει ένα χρήστη µπορεί να το πράξει µε πολλούς τρόπους, µπορεί να κλειδώσει ένα χρήστη passwd peter -l, να τον διαγράψει userdel doomed_user_login_name, και να διαγράψει και επιπλέον να διαγράψει το προσωπικό του κατάλογο µαζί µε όλα τα αρχεία του rm -fr /home/doomed_user_login_name. Αρχικά κλειδώστε τον χρήστη που δηµιουργήσατε (µε u ο χρήστης ενεργοποιείται), ενεργοποιήστε τον ξανά και διαγράψτε τόσο το χρήστη µαζί µε τον κατάλογο του. Ποια η διαφορά ανάµεσα στις δύο εντολές ενεργοποίηση / διαγραφή γιατί χρειάζονται και οι δύο. 4. Η ρύθµιση ενός network interface στο Linux γίνεται µε την χρήση της εντολής ifconfig. Οι περισσότεροι υπολογιστές έχουν ένα µόνο ethernet interface το οποίο συµβολίζεται σαν eth0. Π.χ. Η εντολή ifconfig eth0 δείχνει τις ρυθµίσεις του δικτύου. Βλέποντας το εγχειρίδιο της εντολής να εκτελεστούν οι παρακάτω ενέργειες: 1) Ανάθεση IP σε ) Αλλαγή της hardware διεύθυνσής της 3) Λειτουργία κάρτας σε promiscuous mode. Αν µία κάρτα δεν µπορεί να τεθεί σε promiscuous mode υπάρχει περίπτωση αυτή η έλλειψη να προκαλέσει µη σωστή εκτέλεση προγραµµάτων; Επιπλέον το σύστηµα µπορεί να δει σε µία ethernet πολλά network interfaces. Παράδειγµα eth0:0 Είναι αποδεκτή από σύστηµα συσκευή. οκιµάστε να δεσµεύσετε δύο ip διευθύνσεις σε µία κάρτα ethernet. Σηµείωση: Η ανάθεση διευθύνσεων θα πρέπει να γίνεται στο δίκτυο διότι αλλιώς υπάρχει κίνδυνος δέσµευσης όλων των πόρων του δικτύου. 5. Για µπορέσουν τα πακέτα να δροµολογηθούν πρέπει να οριστεί και το routing table µέσω της εντολής route. Ο router για τις εγκαταστάσεις πολυµέσων είναι ο Ενώ για το κτήριο Λυµπέρη Να γραφεί η εντολή µε τα πλήρη στοιχεία που απαιτούνται, έτσι ώστε ο υπολογιστής να στέλνει τα πακέτα µέσω του router. Αλλάξτε την network address mask της κάρτας δικτύου σε λειτουργεί το δίκτυο; Για ποιόν λόγο γίνεται αυτό; Για να είναι ευκολότερη η περιήγηση στο διαδίκτυο, γίνεται χρήση της υπηρεσίας DNS. Να γίνει καταχώρηση του nameserver (karvounis ). Σηµείωση: Η καταχώρηση γίνεται σε αρχείο που περιέχεται στον κατάλογο /etc Σελίδα 26 από 38

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Λύβας Χρήστος 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βασικές εντολές του Unix-Linux

Βασικές εντολές του Unix-Linux Εισαγωγή-Ο Φλοιός (Shell) Βασικές εντολές του Unix-Linux Μόλις συνδεθούμε στο Unix, εμφανίζεται στην οθόνη μας η προτροπή (prompt), σημάδι ότι το λειτουργικό σύστημα περιμένει τις εντολές μας. Το prompt

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

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

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

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

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

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

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

Εργαστήριο 6 Ασκήσεις: To Εργαλείo Ωφελιμότητας Awk Προγραμματισμός Κελύφους Bash

Εργαστήριο 6 Ασκήσεις: To Εργαλείo Ωφελιμότητας Awk Προγραμματισμός Κελύφους Bash Εργαστήριο 6 Ασκήσεις: To Εργαλείo Ωφελιμότητας Awk Προγραμματισμός Κελύφους Bash 1) Τυπώστε όλες τις γραμμές του αρχείου myle για τις οποίες το πρώτο πεδίο είναι διαφορετικό του πρώτου πεδίου της προηγούμενης.

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

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

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

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

*? [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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ #1. Το Λειτουργικό Σύστηµα Unix

ΕΡΓΑΣΤΗΡΙΟ #1. Το Λειτουργικό Σύστηµα Unix ΕΠΛ 032 ΕΡΓΑΣΤΗΡΙΟ #1 1 ΕΡΓΑΣΤΗΡΙΟ #1 Το Λειτουργικό Σύστηµα Unix Λειτουργικό Σύστηµα (Operating System) : είναι ένα σύνολο από προγράµµατα που ελέγχουν, συντονίζουν και επιβλέπουν τη λειτουργία του υλικού

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

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

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

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

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

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

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

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

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

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

Μεταφραστής (Compiler)

Μεταφραστής (Compiler) Windows Καθαρισµος οθονης cls Unix clear Τελεστες ανακατευθυνσης > > >> >> < < Εντολες σε αρχεια * * (wild card) del Α rm Α ιαγραφη type Α cat Α Εµφανιση copy Α Β cp Α Β Αντιγραφη ren Α Β mv Α Β Αλλαγη

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

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

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

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

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

ΤΕΙΘ ΣΤΕΦ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ 2o ΕΡΓΑΣΤΗΡΙΟ ΣΤΟΧΟΣ Εξοικείωση με τον χειρισμό αρχείων και καταλόγων. ΑΣΚΗΣΗ 1 Στον παρακάτω πίνακα αναφέρονται οι πιο συχνές εντολές για τον χειρισμό αρχείων και καταλόγων. Χρησιμοποιώντας την εντολή

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

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) ΕΡΓΑΣΤΗΡΙΟ. 3o ΕΡΓΑΣΤΗΡΙΟ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικό σύστημα Unix

Λειτουργικό σύστημα Unix Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr)

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

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

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

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

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

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

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

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

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

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

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

ΤΕΙΘ ΣΤΕΦ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 6o ΕΡΓΑΣΤΗΡΙΟ 6o ΕΡΓΑΣΤΗΡΙΟ ΣΤΟΧΟΣ Διεργασίες, ανακατεύθυνση, διασωλήνωση, φίλτρα. ΑΣΚΗΣΗ 1 1. Να χρησιμοποιήσετε την εντολή ps για να δείτε τις διεργασίες που εκτελούνται στο σύστημα με όλες τις δυνατές επιλογές (π.χ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης eclass 2.0. Οδηγίες Αναβάθµισης (Upgrade) - 1 - Αθήνα, 1 Ιουνίου 2007. 1. Εισαγωγή

Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης eclass 2.0. Οδηγίες Αναβάθµισης (Upgrade) - 1 - Αθήνα, 1 Ιουνίου 2007. 1. Εισαγωγή Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης eclass 2.0 Οδηγίες Αναβάθµισης (Upgrade) Οµάδα Εργασίας: Τσιµπάνης Κωνσταντίνος, Εξηνταρίδης Γιάννης Αθήνα, 1 Ιουνίου 2007 1. Εισαγωγή Η πλατφόρµα eclass είναι ένα ολοκληρωµένο

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr It seems very simple. It is very simple. But if you don t know what the key is its virtually indecipherable.

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

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

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

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

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

Λειτουργικά Συστήµατα Λειτουργικά Συστήµατα UNIX Ιστορία του UNIX 1940-50 υπολογιστές για ένα άτοµο και µία εργασία για κάθε χρονική περίοδο επικράτηση batch systems 1960 ερευνητικά συστήµατα διαµοιρασµού χρόνου Dartmouth College:

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

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

Προγραμματισμός Διαχείρισης Συστημάτων Ι Προγραμματισμός Διαχείρισης Συστημάτων Ι Μάθημα 2ο Βασικές Εντολές Διαχείρισης Αρχείων και Καταλόγων Μιχαηλίδης Παναγιώτης Περιεχόμενα Σύστημα αρχείων Αρχεία και κατάλογοι Διαδρομές αρχείων και καταλόγων

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

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

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

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

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

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

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

Εισαγωγή στο UNIX. Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων

Εισαγωγή στο UNIX. Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων Εισαγωγή στο UNIX Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων 1 Περίγραµµα Αναζητώντας βοήθεια από το σύστηµα Το κέλυφος (Shell) Αρχεία και Κατάλογοι

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

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

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Σχολή Θετικών Επιστημών Τμ. Πληροφορικής. Διδάσκων: Ι. Η. Λαγαρής. Εισαγωγή Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Σχολή Θετικών Επιστημών Τμ. Πληροφορικής Διδάσκων: Ι. Η. Λαγαρής 1.0 Solaris και UNIX Εισαγωγή Το UNIX είναι ένα λειτουργικό σύστημα που αναπτύχθηκε τις δεκαετίες

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

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

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

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

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

Λειτουργικά Συστήματα Ι - Εργαστήριο 1. Εισαγωγικά Τι είναι το DOS (Disk Operating System); «Το DOS είναι ένα αρκτικόλεξο (Disk Operating System, λειτουργικό σύστημα δίσκου) που αναφέρεται σε μία ομάδα λειτουργικών συστημάτων (δες στο http://en.wikipedia.org/wiki/list_of_dos_operating_systems),

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

Ενότητα 1 Διάλεξη 1β

Ενότητα 1 Διάλεξη 1β Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Εθνικό Μετσόβιο Πολυτεχνείο Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού Ενότητα 1 Διάλεξη 1β Σιέττος Κωνσταντίνος Άδεια Χρήσης Το παρόν

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

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

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

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

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

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

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

Το Shell. Προγραμματισμός II 1

Το Shell. Προγραμματισμός II 1 Το Shell Προγραμματισμός II 1 lalis@inf.uth.gr CLI vs. GUI CLI (Command Line Interface) Μεγαλύτερη ευελιξία και ταχύτητα Πιο εύκολο να γίνουν πολύπλοκες λειτουργίες που συνδυάζουν διαφορετικά προγράμματα/εργαλεία

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

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

Εισαγωγή στα Λειτουργικά Συστήματα Εισαγωγή στα Λειτουργικά Συστήματα S E T Δ Ι Α Φ Α Ν Ε Ι Ω Ν 1 2 S H E L L S C R I P T S A R G U M E N T S + F O R Α Ν Τ Ω Ν Η ς Σ Ι Δ Η Ρ Ο Π Ο Υ Λ Ο ς Χρήση Command-Line Parameters Κάθε φορά που το κέλυφος

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

Εργαστήριο 4 Ασκήσεις: Διαχείριση Δικτύου (nmap, iptables) και Προχωρημένες Εντολές Unix (grep, ps, cut, find)

Εργαστήριο 4 Ασκήσεις: Διαχείριση Δικτύου (nmap, iptables) και Προχωρημένες Εντολές Unix (grep, ps, cut, find) Εργαστήριο 4 Ασκήσεις: Διαχείριση Δικτύου (nmap, iptables) και Προχωρημένες Εντολές Unix (grep, ps, cut, find) 1) Δώστε την εντολή που δείχνει τις ανοιχτές εισερχόμενες θύρες (ports) της μηχανής σας. Χρησιμοποιήστε

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

Εργαστήριο 4: Εργαλεία Συστήματος UNIX. Διδάσκων: Γιώργος Χατζηπολλάς. Στο εργαστήριο θα μελετηθούν: Εργαστηριακή Άσκηση 2 Παραδείγματα χρήσης awk

Εργαστήριο 4: Εργαλεία Συστήματος UNIX. Διδάσκων: Γιώργος Χατζηπολλάς. Στο εργαστήριο θα μελετηθούν: Εργαστηριακή Άσκηση 2 Παραδείγματα χρήσης awk Εργαστήριο 4: Εργαλεία Συστήματος UNIX Στο εργαστήριο θα μελετηθούν: Εργαστηριακή Άσκηση 2 Παραδείγματα χρήσης awk Αρίθμηση και Μαθηματικοί Υπολογισμοί Βρόγχοι Πίνακες Διδάσκων: Γιώργος Χατζηπολλάς 3-1

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

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή ονάδα Δικτύων και Επικοινωνιών ΗΥ Τομέας Πληροφορικής, αθηματικών και Στατιστικής ΓΕΩΠΟΙΚΟ ΠΑΕΠΙΣΤΗΙΟ ΑΘΗΩ Εισαγωγή στην Επιστήμη των ΗΥ άθημα-4 url: http://openeclass.aua.gr (AOA0) Λογισμικό Υπολογιστή

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

ΚΕΦΑΛΑΙΟ Web Services

ΚΕΦΑΛΑΙΟ Web Services ΚΕΦΑΛΑΙΟ Web Services Προϋποθέσεις εγκατάστασης Web Services για το Κεφάλαιο 4.50 1. Κεφάλαιο έκδοση 4.51e build 458 ή νεότερο 2. Internet Information Server (IIS) version 6 ή νεότερος 3. Σε κάποιον υπολογιστή

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

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

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

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

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη ( ιάλεξη 3) ιδάσκων: Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (TP-105)

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (TP-105) ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (TP-105) ΣΗΜΕΙΩΣΕΙΣ MS-DOS WINDOWS Διδάσκων: Γιάννης Χρυσάκης Εργαστηριακό Μάθημα 2012-2013 Τμήμα Εφαρμοσμένης Πληροφορικής & Πολυμέσων Εισαγωγή DOS: Disk Operating System Το

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

Στο εργαστήριο θα μελετηθούν: Διδάσκων: Γιώργος Χατζηπολλάς. Εργαστήριο 2: Εργαλεία Συστήματος UNIX. Ομάδες για παρουσίαση

Στο εργαστήριο θα μελετηθούν: Διδάσκων: Γιώργος Χατζηπολλάς. Εργαστήριο 2: Εργαλεία Συστήματος UNIX. Ομάδες για παρουσίαση Εργαστήριο 2: Εργαλεία Συστήματος UNIX Στο εργαστήριο θα μελετηθούν: Ομάδες για παρουσίαση sed (Stream EDitor) Παραδείγματα χρήσης sed Διδάσκων: Γιώργος Χατζηπολλάς 2-1 Ομάδες Παρουσίασης Group Name Description

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 13/1/13, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 13/1/13, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2012-2013 Προθεσµία: 13/1/13, 22:00 Περιεχόµενα Διαδικαστικά Εκφώνηση άσκησης (Στάδιο 0, Στάδιο 1, Στάδιο 2, Στάδιο 3, Στάδιο 4, Στάδιο 5) Οδηγίες

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

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

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Εγγραφές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η Ανάγκη Ομαδοποίησης Πολλές φορές έχουμε πληροφορίες διαφορετικού τύπου οι οποίες όμως έχουν μεγάλη

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

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

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

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

Κεφάλαιο 10 Διαχείριση Αρχείων και Καταλόγων

Κεφάλαιο 10 Διαχείριση Αρχείων και Καταλόγων Κεφάλαιο 10 Διαχείριση Αρχείων και Καταλόγων Στόχος του Linux να είναι όσο πιο κοντά στο Unix γίνεται. Παραδοσιακά, τα Unix λειτουργικά συστήματα ήταν προσανατολισμένα στη γραμμή εντολών. Έχουμε γραφικό

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

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

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

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

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

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

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

ιαφάνειες παρουσίασης #12

ιαφάνειες παρουσίασης #12 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

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

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 00497 -Δεν ελέγχετε αν η createlist εκτελλέστικε σωστά και δεν τερµατίζετε το πρόγραµµα σε διαφορετική -Σωστά βρίσκετε το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος. -Σωστά τερµατίζετε

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

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record) Διαχείριση Αρχείων Αρχεία Για να είναι δυνατή η επεξεργασία μεγάλου αριθμού δεδομένων τα δεδομένα είναι αποθηκευμένα σε ψηφιακά μέσα κατάλληλα οργανωμένα. Η αποθήκευση γίνεται σε αρχεία. Πολλά προγράμματα

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

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013

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

Λειτουργικά Συστήματα (ΗΥ-345) Χειμερινό Εξάμηνο

Λειτουργικά Συστήματα (ΗΥ-345) Χειμερινό Εξάμηνο Λειτουργικά Συστήματα (ΗΥ-345) Χειμερινό Εξάμηνο 2018-2019 Άσκηση 1 Φροντιστήριο: 05/10/2018 Παράδοση: 18/10/2018 Υλοποίηση Linux C Shell ΤΑ : shevtsov(shevtsov@csd.uoc.gr) Ώρες Γραφείου : Δευτέρα 14:00-16:00

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Εργαστήριο 6 Εντολές Επανάληψης Η δομή Επιλογής στη PASCAL H δομή Επανάληψης στη PASCAL. Ρεύμα Εισόδου / Εξόδου.. Ρεύμα Εισόδου / Εξόδου. To πρόγραμμα γραφικών gnuplot. Γραφικά στη PASCAL. Σκοπός 6.1 ΕΠΙΔΙΩΞΗ

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

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I Πιτροπάκης Νικόλαος Υποψήφιος Διδάκτορας Contact: npitrop@unipi.gr Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr ΔΟΜΗ ΚΑΤΑΛΟΓΩΝ (1/5) / Ριζικός κατάλογος

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

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

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

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

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

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

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

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

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

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

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

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

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

Open eclass 2.2 - Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

Open eclass 2.2 - Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Open eclass 2.2 - Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Οδηγίες Αναβάθμισης (Upgrade) Ομάδα Εργασίας: Τσιμπάνης Κωνσταντίνος, Εξηνταρίδης Γιάννης Αθήνα, 30 Σεπτεμβρίου 2009 Εισαγωγή Η πλατφόρμα Open eclass

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

Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης eclass 1.7. Οδηγίες Αναβάθμισης (Upgrade) - 1 - Αθήνα, 16 Μαρτίου 2007. 1. Εισαγωγή

Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης eclass 1.7. Οδηγίες Αναβάθμισης (Upgrade) - 1 - Αθήνα, 16 Μαρτίου 2007. 1. Εισαγωγή Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης eclass 1.7 Οδηγίες Αναβάθμισης (Upgrade) Ομάδα Εργασίας: Τσιμπάνης Κωνσταντίνος, Εξηνταρίδης Γιάννης Αθήνα, 16 Μαρτίου 2007 1. Εισαγωγή Η πλατφόρμα eclass είναι ένα

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

Διάλεξη 7 Εργαλεία Ωφελιμότητας Unix: Αwk

Διάλεξη 7 Εργαλεία Ωφελιμότητας Unix: Αwk ΕΠΛ371 - Προγραμματισμός Συστημάτων Διάλεξη 7 Εργαλεία Ωφελιμότητας Unix: Αwk Δημήτρης Ζεϊναλιπούρ 7-1 Επεξεργασία Ρεύματος sed (Stream EDitor) awk (Alfred Aho, Peter Weinberger, and Brian Kernighan) Δημιουργείται

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

Εντολές Διαχείρισης Αρχείων στο Λειτουργικό Σύστημα UNIX. Δημιουργία Αρχείων. Η Εντολή cat. Παράδειγμα Δένδρου Συστήματος Αρχείων

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 22/12/2016, 21:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2016-2017 Προθεσµία: 22/12/2016, 21:00 Διαδικαστικά Η εργασία αυτή µπορεί να γίνει σε οµάδες µέχρι 2 ατόµων. Δεν είναι απαραίτητο να συνεργαστείτε

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

Προγραµµατισµός 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'

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