Σενάρια φλοιού (Shell scripts)

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

Download "Σενάρια φλοιού (Shell scripts)"

Transcript

1 Σενάρια φλοιού (Shell scripts) 4ο ΕΡΓΑΣΤΗΡΙΟ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ -04 1

2 Φλοιός (Shell) Είναι το πρόγραμμα που διερμηνεύει (interpreter) τις εντολές που εισάγονται από το πληκτρολόγιο. Οι εντολές είναι δυνατόν να τοποθετηθούν σε ένα αρχείο που ονομάζεται shell script. Κάθε φορά που εισάγεται από το πληκτρολόγιο μια γραμμή το Λ.Σ. χρησιμοποιεί ένα τμήμα του για να αναλύσει το περιεχόμενο της γραμμής, τον command line processor (CLP). Στο UNIX ο CLP είναι εξ ολοκλήρου διαχωρισμένος από το υπόλοιπο Λ.Σ. user Applications shells Kernel Hardware ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ -04 2

3 ηλαδή ο CLP γράφεται ως ξεχωριστό πρόγραμμα και κάθε χρήστης επικοινωνεί με ένα αντίγραφο αυτού του προγράμματος. Αυτό το πρόγραμμα από μόνο του είναι ο φλοιός (SHELL). Σε κάθε σύστημα UNIX υπάρχουν τουλάχιστον δύο διαθέσιμοι φλοιοί : Bourne shell (sh) και C-shell (csh) (αναπτύχθηκε στα πλαίσια του BSD Unix). Ωστόσο η γλώσσα που χρησιμοποιείται για την επικοινωνία με καθένα από τους φλοιούς αυτούς είναι διαφορετική. Άλλοι φλοιοί : Korn shell (ksh) terminal-based C shell (tcsh) Bourne again shell (bash) είναι ο εξ ορισμού φλοιός σε συστήματα linux Ανεξάρτητα από τον φλοιό που χρησιμοποιείται, όλοι έχουν ως στόχο να παρέχουν στο UNIX μια διεπαφή χρήστη (user interface). ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ -04 3

4 Χαρακτηριστικά φλοιών ιερμηνεία (interpretation ) και επεξεργασία της γραμμής εντολών εσμευμένες λέξεις Μετα-χαρακτήρες φλοιού (wild cards) Πρόσβαση και διαχείριση των εντολών των προγραμμάτων φλοιού ιαχείριση αρχείων :ανακατεύθυνση εισόδου / εξόδου και διασωληνώσεις Υποστήριξη μεταβλητών Καθορισμό ψευδωνύμων (aliases) Έλεγχο του περιβάλλοντος και δημιουργία περιβάλλοντος προσαρμοσμένου στις απαιτήσεις του χρήστη ημιουργία σεναρίων φλοιού (shell scripts) Προγραμματισμός φλοιού (Shell programming) ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ -04 4

5 Αναζήτηση του shell που χρησιμοποιούμε Από το prompt του συστήματος ($, %) Mέσω της εντολής ps (processes) $ps ef: παράγει πληροφορίες για όλες τις διεργασίες (e) σε πλήρη λίστα (f) Χρησιμοποιώντας το αρχείο /etc/passwd και την εντολή awk: $ awk -F: { if ($1 == studin ) print your shell is: $7} < /etc/passwd your shell is: /bin/bash με χρήση μεταβλητών περιβάλλοντος: $echo $SHELL /bin/bash ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ -04 5

6 Επιλέγοντας νέο shell $ ls -lf /bin/*sh* (αναζήτηση των διαθέσιμων shells) -r-xr-xr-x 1 stef mkpasswd Jun /bin/tcsh.exe -r-xr-xr-x 1 stef mkpasswd Jan /bin/sh.exe lrwxrwxrwx 1 stef mkpasswd 9 Dec /bin/ksh.exe -r-xr-xr-x 1 stef mkpasswd Oct /bin/bash.exe lrwxrwxrwx 1 stef mkpasswd 4 Dec /bin/csh -> tcsh $chsh(αλλαγή φλοιού) Changing shell for studin Old shell: /bin/csh New shell: _ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ -04 6

7 Το περιβάλλον φλοιού (shell environment) $ env cat -n 1 PWD=/usr/people/staff/it/stefanos 2 SHELL=/bin/csh 3 TERM=vt100 4 USER=stefanos 5 PATH=/usr/sbin:usr/bsd:/usr/bin:/usr/X11:/usr/free ware/bin:/usr/local/bin:/usr/java/bin: 6 MAIL=/var/mail/stefanos 7 LOGNAME=stefanos 8 EDITOR=/bin/vi 9 SSH2_CLIENT= ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ -04 7

8 Όταν ένας χρήστης κάνει login στο σύστημα τότε το σύστημα καθορίζει ορισμένες από τις μεταβλητές περιβάλλοντος που δείχνουν το home directory, το shell που εκτελείται κλπ Ορισμένες από αυτές τις μεταβλητές υπάρχουν ως πεδία στη γραμμή που αντιστοιχεί στον χρήστη στο password file π.χ. $ grep $USER /etc/passwd awk -F: {print $6} /usr/people/staff/it/stefanos $ grep $USER /etc/passwd awk -F: {print $5} Katsavounis Stefanos ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ -04 8

9 Αρχεία εκκίνησης στο bash (startup files) Αρχικά διαβάζεται και εκτελείται το αρχείο /etc/profile, εφόσον αυτό υπάρχει. Το αρχείο αυτό είναι το εξ ορισμού αρχείο διαμόρφωσης φλοιού για οποιονδήποτε χρήστη του συστήματος. Το home directory κάθε χρήστη μπορεί περιέχει ένα ή περισσότερα από τα ακόλουθα bash startup files, τα οποία περιέχουν εντολές που εφαρμόζονται μόνον για την τρέχουσα χρήση του συστήματος: ~/.bash_profile, ~/.bash_login, ~/.profile, ~/bash_rc, και ~/.bash_logout ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ -04 9

10 Login shell : δημιουργείται κάθε φορά που γίνεται login σε ένα account. Nonlogin shell : δημιουργείται όταν αρχίζει ένα πρόσθετο bash shell, κατά τη διάρκεια της σύνδεσης του χρήστη, όπως π.χ. όταν ανοίγει ένα terminal window. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

11 Όταν ξεκινά ένα login shell, το bash συμβουλεύεται κατά σειρά ορισμένα από τα παρακάτω αρχεία : 1. /etc/profile 2. ~/.bash.profile 3. ~/.bash_login 4. ~/.profile Όταν ξεκινά ένα nonlogin shell, το bash συμβουλεύεται μόνον ένα αρχείο εκκίνησης το ~/bashrc. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

12 Επειδή τα login και nonlogin shells χρησιμοποιούν διαφορετικά αρχεία εκκίνησης οι δύο φλοιοί μπορούν να διαφέρουν. Οι περισσότερες διανομές Linux περιέχουν το αρχείο ~/.bash_profile που δημιουργείται αυτόματα και περιέχει ένα σενάριο που εκτελεί αυτόματα τις εντολές που βρίσκονται στο αρχείο ~/.bashrc. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

13 Ηπροσθήκη μιας εντολής που θα εκτελείται αυτόματα όταν κάθε χρήστης του συστήματος κάνει login πρέπει να γίνεται στο αρχείο /etc/profile. Ωστόσο χρειάζονται δικαιώματα superuser για την επεξεργασία αυτού του αρχείου. Η προσθήκη μιας εντολής που θα εκτελείται όταν ξεκινά ένας login φλοιός για το δικό μας account, πρέπει να γίνει στο αρχείο ~/.bash.profile. Οι εντολές που θα εκτελούνται μόνον μετά την εκτέλεση των εντολών που υπάρχουν στα ~/.bash.profile και ~/.bash_login θα πρέπει να περιλαμβάνονται στο αρχείο ~/.profile. Η προσθήκη μιας εντολής που εκτελείται όταν ξεκινά ένα nonlogin shell, γίνεται στο αρχείο ~/.bashrc. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

14 Παραδείγματα # ~/.profile -- # $Id:.profile,v /02/12 13:33:03 ray Exp ray $ # The personal initialization file, executed for login bourne shells #[ -e /etc/config.d/d ] && echo "~$USER/.profile" 1>&2 if [ -n "$BASH_VERSION" ]; then if [ -r "$HOME/.bashrc" ]; then # login shells are always interactive, are they?. $HOME/.bashrc else [ -r /etc/config.d/shells/bashrc ] &&. /etc/config.d/shells/bashrc fi else # non-bash 'sh'-users are on their own for now... : fi # load maintained system-defaults... [ -r /etc/config.d/shells/profile ] &&. /etc/config.d/shells/profile # load user-defaults [ -r $HOME/.profile-private ] &&. $HOME/.profile-private # personal additions and overrides should preferrably be placed in this last # file, but may nevertheless be appendend below, e.g.... #export LANG=is_IS.ISO ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

15 # ~/.bashrc -- # $Id:.bashrc,v /02/12 13:32:54 ray Exp ray $ # The individual per-interactive-shell startup file for bash #[ -e /etc/config.d/d ] && echo "~$USER/.bashrc: \$-='$-'" 1>&2 # load maintained system-defaults... (NB: $HOME/.profile, i.e. # /etc/config.d/shells/profile) depend on this one!!!) [ -r /etc/config.d/shells/bashrc ] &&. /etc/config.d/shells/bashrc # load user-defaults [ -r $HOME/.bashrc-private ] &&. $HOME/.bashrc-private # personal additions should preferrably be placed in the above file, # but may nevertheless be appendend below... ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

16 Aliases (ψευδώνυμα) $ alias ls ls -CF $ls $aliasdir ls-lf $aliasren mv $aliascopy cp-i $ alias DEL rm -i $alias COPY cp -i DEL rm -i DIR ls -lf REN mv ls ls -CF ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

17 Prompts SAVE=${PS1} η τιμή του SAVE ότι και το PS1 π.χ. \s-\v$ PS1=$ το prompt είναι το $ PS1=$SAVE επαναφορά του αρχικού prompt PS1= [\t][\u@\h:\w]\$ t =current time (24 hours) u =username h =hostname w =current working directory [08:13:40][stefanos@aetos:~]$ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

18 Σενάρια φλοιού (shell scripts) Ονομάζονται και διαδικασίες (procedures) κελύφους και επιτρέπουν ένα χρήστη να προσαρμόζει το περιβάλλον εργασίας του, εμπλουτίζοντάς το με νέες εντολές. Τα σενάρια φλοιού όταν είναι μικρά, γράφονται και εγκαθίστανται εύκολα π.χ. $ cat <<EOF >dir ls acf EOF chmod +x dir Η εντολή αυτή αντιγράφει τη 2η γραμμή στο αρχείο dir, η εντολή ls ορίζει τι ακριβώς θα κάνει η dir και η εντολή chmod απονέμει την άδεια προσπέλασης για εκτέλεση στο αρχείο dir (απαραίτητη προϋπόθεση για να εκτελεστεί ένα σενάριο φλοιού) Εκτέλεση του script : $./dir ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

19 1ο παράδειγμα σεναρίου φλοιού #!/bin/bash # My first script echo "Hello World! Όταν θα εκτελεστεί στο aetos.it.teithe.gr #!/usr/bin/bsh # My first script echo "Hello World! ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

20 2ο παράδειγμα script file loginfo (πρέπει να είναι executable): echo The current date and time: \c date echo The number of users: \c who wc -l # count number of lines echo personal info: \c ); who am i exit 0 $chmod +x loginfo $loginfo The current date and time: Thursday October 10 The number of users: 7 Personal info: lseiter ttya. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

21 Ερμηνεία των shell scripts Όταν το κέλυφος παίρνει μια εντολή που δεν είναι άμεση, δηλ. δεν ανήκει στο σύνολο εντολών που αναγνωρίζει και εκτελεί απευθείας, τότε καλεί τον πυρήνα του και του αναθέτει την εκτέλεση της εντολής. Αυτή η εντολή μπορεί να είναι είτε ένα πρόγραμμα σε εκτελέσιμη μορφή είτε ένα σενάριο φλοιού. Εφόσον είναι σενάριο φλοιού, ο πυρήνας θα πρέπει να επιλέξει έναν φλοιό για να εκτελέσει το σενάριο. Ο τρόπος με τον οποίο θα γίνει η επιλογή κελύφους εξαρτάται από το σύστημα. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

22 Στα περισσότερα συστήματα η 1η γραμμή ενός σεναρίου έχει πάντοτε τη μορφή: #!shell Όπου shell είναι το πλήρες όνομα της διαδρομής ενός κελύφους που θα χρησιμοποιηθεί για την ερμηνεία του σεναρίου π.χ. #!/bin/bash Ορισμένα συστήματα δεν συμμορφώνονται με τη σύμβαση #! και παρέχουν άλλους τρόπους π.χ. με πρώτο χαρακτήρα το # εννοείται το κέλυφος C ενώ με πρώτο χαρακτήρα το : εννοείται το κέλυφος Bourne. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

23 Η πρώτη γραμμή στο script ορίζει το κέλυφος που θα χρησιμοποιηθεί για την εκτέλεση των εντολών που περιέχει το σενάριο (το! ακολουθεί αμέσως μετά το # χωρίς ενδιάμεσα κενά) : #!/bin/sh #!/bin/csh #!/bin/tcsh #!/bin/bash Bourne shell C-shell TC-shell BASH shell ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

24 Όλα τα κελύφη παρέχουν την επιλογή v για να εμφανίζεται στην οθόνη κάθε γραμμή του σεναρίου καθώς αυτό διαβάζεται και την επιλογή x για να εμφανίζονται οι εντολές, καθώς εκτελούνται. Οι επιλογές αυτές είναι πολύ χρήσιμες για τη συντακτική ανάλυση των εντολών. Εμφάνιση του φλοιού που χρησιμοποιείται : echo $SHELL SHELL είναι η μεταβλητή περιβάλλοντος που κρατά το όνομα του τρέχοντος φλοιού, ενώ $SHELL είναι η τιμή αυτής της μεταβλητής. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

25 Πως γίνεται εκτελέσιμο ένα shell script Πρέπει στο αρχείο του script να αποδοθεί το δικαίωμα execute (file mode +x) χρησιμοποιώντας την εντολή chmod π.χ. $chmod +x sh_script1 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

26 ημιουργία ενός shell script Το 1ο βήμα είναι να βεβαιωθούμε ότι το σενάριο δημιουργείται σε ένα directory που περιλαμβάνεται στο search path (διαφορετικά δεν θα μπορούμε να χρησιμοποιήσουμε το σενάριο ως εντολή): $pwd $echo $PATH $cat new.script # sample shell script echo searching for shell scripts pwd echo file * grep script sed s/:/ / awk {print $1} exit 0 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

27 Τι περιέχουν τα προγράμματα φλοιού Μεταβλητές Λογικές δομές (if, case ) ομές επανάληψης (while, for, until ) Συναρτήσεις (functions) Σχόλια ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

28 Προγραμματισμός κελύφους ΜΕΤΑΒΛΗΤΕΣ Μεταβλητές περιβάλλοντος : είναι τμήμα του περιβάλλοντος του συστήματος και δεν χρειάζεται να ορισθούν. Μπορούν να χρησιμοποιηθούν από ένα πρόγραμμα φλοιού ενώ ορισμένες (π.χ. PATH) μπορούν επίσης να τροποποιηθούν. Μεταβλητές φλοιού : ορίζονται, τροποποιούνται και χρησιμοποιούνται σε ένα σενάριο φλοιού. Οι μεταβλητές στον προγραμματισμό κελύφους δεν είναι typecast, δηλ. μπορούν να χρησιμοποιηθούν αδιακρίτως ως αριθμητικές ή αλφαριθμητικές. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

29 Μεταβλητές περιβάλλοντος Αρχικοποιούνται κατά την εκκίνηση (login) Μεταβιβάζονται σε όλες τις διεργασίες που εκτελούνται από τον τρέχοντα φλοιό (current shell) Χρησιμοποιούνται για την αποθήκευση πληροφοριών που χρειάζεται να γνωρίζουν άλλα προγράμματα Συνήθως τους αποδίδονται αναγνωριστικά με κεφαλαία γράμματα (upper case identifiers) ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

30 Μεταβλητές φλοιού Αρχικοποιούνται από τον φλοιό, εν μεταβιβάζονται στις διεργασίες που εκτελούνται από τον τρέχοντα φλοιό, Συνήθως τους αποδίδονται αναγνωριστικά με μικρά γράμματα (lower case identifiers) ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

31 Χρήση μεταβλητών σε προγράμματα κελύφους Για να χρησιμοποιηθεί μια μεταβλητή πρέπει να γνωρίζουμε : πώς να της αποδώσουμε μια τιμή και πώς να έχουμε πρόσβαση στη μεταβλητή αυτή για να γνωρίζουμε την τιμή της. Υπάρχουν 4 τρόποι για να δώσουμε τιμή σε μια μεταβλητή : 1. χρησιμοποιώντας απευθείας εκχώρηση 2. χρησιμοποιώντας την εντολή read 3. χρησιμοποιώντας command-line parameters 4. αντικαθιστώντας την έξοδο μιας εντολής (χρήση μιας ενσωματωμένης εντολής expr μέσω ` `ή περικλείοντας την εντολή σε $( ) ) ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

32 1. Απευθείας εκχώρηση τιμής (direct assignment) myoffice= Room 301, N.O.C. Ο φλοιός ανακτά τις τιμές των μεταβλητών όταν χρησιμοποιηθεί το σύμβολο $ πριν από το όνομα της μεταβλητής: echo My address is $my echo My office is $myoffice cp current /corporate/info/public/sales corpsales=/corporate/info/public/sales cp current $corpsales ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

33 Για την εκχώρηση τιμής μπορεί να χρησιμοποιηθεί το όνομα της μεταβλητής μέσα σε {} ${PS1}, ${SHELL} Π.χ. $ prompt=${ps1} $echo $prompt \s-\v\$ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

34 Χρήση απλών & διπλών εισαγωγικών $echo My host name is $HOSTNAME My host name is aetos.it.teithe.gr $echo My host name is $HOSTNAME My host name is $HOSTNAME ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

35 2. Χρησιμοποιώντας την εντολή read Ηεντολήread εκχωρεί σε μια μεταβλητή οτιδήποτε εισάγεται από το πληκτρολόγιο, ακολουθούμενο από μια αλλαγή γραμμής. #!/bin/bash echo -n "Enter some text > " read text echo "You entered: $text" Η επιλογή n στην echo δεν επιτρέπει την αλλαγή γραμμής. $ read_demo.bash Enter some text > this is some text You entered: this is some text ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

36 Αριθμητικές πράξεις #!/bin/bash first_num=0 second_num=0 echo -n "Enter the first number --> " read first_num echo -n "Enter the second number -> " read second_num echo "first number + second number = $((first_num + second_num))" echo "first number - second number = $((first_num - second_num))" echo "first number * second number = $((first_num * second_num))" echo "first number / second number = $((first_num / second_num))" echo "first number % second number = $((first_num % second_num))" echo "first number raised to the" echo "power of the second number = $((first_num ** second_num))" ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

37 Αριθμητικές Πράξεις με την expr i=9 Προσοχή στα εισαγωγικά!!! j=18 k=`expr $i + $j` echo $k ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

38 3. Χρήση Command-Line Parameters Κάθε φορά που το κέλυφος διερμηνεύει μια εντολή συνδέει ονόματα μεταβλητών σε κάθε στοιχείο της γραμμής εντολών. Ως στοιχεία της γραμμής εντολών θεωρούνται ακολουθίες χαρακτήρων διαχωριζόμενες με κενά ή tab. (χρησιμοποιείστε εισαγωγικά αν πρόκειται χαρακτήρες με ενδιάμεσα κενά να αντιπροσωπεύουν ένα στοιχείο). Οι μεταβλητές που συνδέονται με τα στοιχεία της γραμμής εντολής είναι οι $0, $1, $2, $9. Αυτές οι 10 μεταβλητές αντιστοιχούν με τις θέσεις των στοιχείων στη γραμμή εντολών και λέγονται παράμετροι θέσης (positional parameters). Το όνομα της εντολής είναι η μεταβλητή $0, Το πρώτο όρισμα ή παράμετρος της εντολής είναι το $1, ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

39 Shell programming διαχείριση μεταβλητών Ειδικές μεταβλητές φλοιού όνομα περιγραφή $1 - $9 αυτές είναι οι παράμετροι θέσης $0 το όνομα της εντολής $# το πλήθος των ορισμάτων θέσης $? Η κατάσταση εξόδου (exit status) της εντολής που εκτελέστηκε τελευταία $$ ο αριθμός διεργασίας του φλοιού $! Ο αριθμός διεργασίας της διεργασίας που εκτελείται στο παρασκήνιο $* ένα string που περιλαμβάνει όλα τα ορίσματα $@ το ίδιο με το $*, εκτός αν χρησιμοποιούνται εισαγωγικά ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

40 $* επεκτείνεται στις παραμέτρους θέσης (positional parameters), ξεκινώντας από την πρώτη. Όταν η επέκταση γίνεται χρησιμοποιώντας διπλά εισαγωγικά, υλοποιείται με μια μόνο λέξη που περιλαμβάνει την τιμή κάθε παραμέτρου που διαχωρίζεται από τις υπόλοιπες τιμές με διαχωριστικό που αντιστοιχεί στον πρώτο χαρακτήρα της ειδικής μεταβλητής IFS'. επεκτείνεται στις παραμέτρους θέσης, ξεκινώντας από την πρώτη. Όταν η επέκταση γίνεται χρησιμοποιώντας διπλά εισαγωγικά, κάθε παράμετρος επεκτείνεται σε μια ξεχωριστή λέξη. $# επεκτείνεται στον αριθμό των παραμέτρων θέσης στο δεκαδικό σύστημα αρίθμησης. $0 επεκτείνεται στο όνομα του φλοιού ή του σεναρίου φλοιού. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

41 Παραδείγματα # Name: showvars # Purpose: demonstrate command-line variables echo $0 echo $2 $4! echo $3 showvars -s hello look at me bart showvars hello bart! look at me ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

42 #!/bin/bash # FILE: testparms echo "$1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12" echo $* echo $# $testparms a b c d e f g h I j k l a b c d e f g h i a0 a1 a2 a b c d e f g h I j k l 12 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

43 # Name: safrm # Purpose: copy file to directory /tmp and then remove it from the current directory # first copy $1 to /tmp cp $1 /tmp # now remove the file rm $1 safrm abc def ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

44 Εντολές προγραμματισμού στο κέλυφος for i in λίστα λέξεων; do εντολές, το $i παίρνει διαδοχικά τις τιμές της λίστας λέξεων done Παράδειγμα : #!/bin/bash for i in word1 word2 word3; do echo $i done ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

45 Παράδειγμα #!/bin/bash for i in $@; do echo $i Done Αν το script έχει όνομα for1 τότε : $for1 ww 77 uu ww 77 uu ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

46 Παράδειγμα #!/bin/bash for i in $*; do echo ls l $i wc l $i file $i echo done ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

47 Ηεντολή while while συνθήκη; do commands done Παράδειγμα #!/bin/bash number=0 while [ $number -lt 10 ]; do echo "Number = $number" number=$((number + 1)) done Ηεντολή while χρησιμοποιείται στα σενάρια φλοιού για την ανάγνωση αρχείων κειμένου όταν αυτά αποτελούν τα ορίσματα εισόδου των σεναρίων κελύφους ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

48 Ηεντολή until #!/bin/bash number=0 until [ $number -ge 10 ]; do echo "Number = $number sleep 1 number=$((number + 1)) done ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

49 Ηεντολή if if expression; then commands; elif expression; then commands; elif expression; then commands else commands; fi ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

50 παράδειγμα με if ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

51 Κάθε εντολή έχει μια επιστρεφόμενη τιμή (output state) if cat file then echo "file exists ; else echo "file does not exist ; fi ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

52 if [ -f.bash_profile ]; then echo "You have a.bash_profile." else echo "Yikes! You have no.bash_profile!" fi ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

53 Έλεγχος αλφαριθμητικών ( τελεστής = ) #!/bin/bash number=1 if [ $number = "1" ]; then echo "Number equals 1" else echo "Number does not equal 1" fi if [ $NAME = John Doe -a $BAL -gt 5000 ] then echo ok else echo not ok fi ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

54 Επιστρεφόμενες τιμές command1 && command2 εκτελεί τη δεύτερη εντολή αν, και μόνον αν, η πρώτη εντολή είναι επιτυχής, δηλ. επιστρέφει την τιμή 0. command1 command2 εκτελεί τη δεύτερη εντολή αν, και μόνον αν, η πρώτη εντολή είναι εσφαλμένη δηλ. δεν επιστρέφει την τιμή 0. -! command Boolean NOT ακυρώνει (αναιρεί) την επιστρεφόμενη τιμή της εντολής ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

55 Expression -d file -e file -f file -L file -r file -w file -x file file1 -nt file2 file1 -ot file2 -z string -n string string1 = string2 string1!= string2 Description Ηεντολή test True if file is a directory. True if file exists. True if file exists and is a regular file. True if file is a symbolic link. True if file is a file readable by you. True if file is a file writable by you. True if file is a file executable by you. True if file1 is newer than (according to modification time) file2 True if file1 is older than file2 True if string is empty. True if string is not empty. True if string1 equals string2. True if string1 does not equal string2. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

56 Παρατηρήσεις Όταν χρησιμοποιούμε test commands ( [ ] ) πρέπει να δίνουμε ιδιαίτερη προσοχή στα κενά ανάμεσα στις παραμέτρους της εντολής, διαφορετικά θα υπάρξουν λανθασμένα αποτελέσματα. Για τον έλεγχο των αποτελεσμάτων που προκύπτουν κατά την εκτέλεση μιας εντολής μπορούμε να χρησιμοποιούμε την echo $? που επιστρέφει το αποτέλεσμα της αμέσως προηγούμενης εντολής που έχει εκτελεστεί (0=true, 1=false) ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

57 Παράδειγμα #!/bin/bash number=0 echo -n "Enter a number > " read number echo "Number is $number" if [ $((number % 2)) -eq 0 ]; then echo "Number is even" else echo "Number is odd" fi ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

58 Χρήση των εντολών if, test #!/bin/bash echo -n Enter a filename to check ==> ; read filename if test! -r $filename then echo unable to read the file $filename exit 1 fi ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

59 Παράδειγμα με if και test if test -f $filename then echo $filename is a regular file elif test -d $filename then echo $filename is a directory elif [ -h $filename ] then echo $filename is a symbolic link elif [ -c $filename ] then echo $filename is a character special file fi ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

60 4. Απόδοση τιμής σε μεταβλητή με χρήση `` # get the size of the file filesize=`ls -ld $filename cut -c31-41` echo file size is $filesize if [ $filesize -le 100 ] then echo $filename is less than 100 bytes elif [ ($filesize -gt 100 ) -a ( $filesize -lt ) ] then echo $filename is greater than 100 bytes but less than bytes fi ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

61 4. Απόδοση τιμής σε μεταβλητή με χρήση $( ) #!/bin/bash filesize=$(ls -l $1 cut -c31-41) echo filesize of $1 is $filesize Η χρήση των $( ) είναι ισοδύναμη με αυτή των ` ` ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

62 case value in pattern 1) command anothercommand ;; pattern 2) command anothercommand ;; esac echo -n "Your Answer: " read ANSWER case $ANSWER in Y* y*) ANSWER="YES" ;; N* n*) ANSWER="NO" ;; *) ANSWER="MAYBE" ;; esac echo $ANSWER Ηεντολή case ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

63 Παράδειγμα στην εντολή case echo-n "Enterthenameofananimal:" read ANIMAL echo -n "The $ANIMAL has " case $ANIMAL in horse dog cat) echo -n "four";; man kangaroo ) echo -n "two";; *) echo -n "an unknown number of";; esac echo " legs." ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

64 Εντολή shift #!/bin/bash echo "You start with $# positional parameters" # Loop until all parameters are used up while [ "$1"!= "" ]; do echo "Parameter 1 equals $1" echo "You now have $# positional parameters" done # Shift all the parameters down by one shift ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

65 Παράδειγμα : ιαχείριση περισσότερων από 9 παραμέτρων #!/bin/bash #shift_demo script: echo "arg1=$1 arg2=$2 arg3=$3" shift echo "arg1=$1 arg2=$2 arg3=$3" $shift_demo one two three four arg1=one arg2=two arg3=three arg1=two arg2=three arg3=four ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

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

67 1. Εύρεση του login shell #!/bin/sh if [ "$SHELL" = "/bin/bash" ]; then echo "your login shell is the bash (Bourne again shell)" else echo "your login shell is not bash but $SHELL" fi ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

68 2. Χρήση for, if, test #!/bin/bash for i in $@; do # check to see if the named file is executable if test -x $i then ls -l $i fi done ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

69 3. Χρήση for #!/bin/bash count=0 for i in $(cat testfile); do count=$((count + 1)) echo "Word $count ($i) contains $(echo - n $i wc -c) characters" done ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

70 4. Απόδοση τιμής με χρήση ``& ανάγνωση τιμών από αρχείο #!/bin/bash count=0 while read line do username=`echo $line cut -d: -f1` echo user $count has username $username count=`expr $count + 1` done < /etc/passwd ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

71 5. Χρήση if, test, for #!/bin/bash for filename in do if [ -f $filename ]; then result="$filename is a regular file" else if [ -d $filename ]; then result="$filename is a directory" fi fi if [ -w $filename ]; then result="$result and it is writable" else result="$result and it is not writable" fi echo "$result" done ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

72 6. Ορισμός και χρήση basename - dirname #!/bin/bash a=/home/aetos/daily-log.txt echo "Basename of $α = `basename $a`" echo "Dirname of $α = `dirname $a`" echo ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

73 7. Σύγκριση των περιεχομένων 2 directories #!/bin/bash # cmp_dir - program to compare two directories # Check for required arguments if [ $# -ne 2 ]; then echo "usage: $0 directory_1 directory_2" exit 1 fi # Make sure both arguments are directories if [! -d $1 ]; then echo "$1 is not a directory!" exit 1 fi if [! -d $2 ]; then echo "$2 is not a directory!" exit 1 fi ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

74 Συνέχεια παραδείγματος 7 # Process each file in directory_1, comparing it to directory_2 missing=0 for filename in $1/*; do fn=$(basename $filename) Χρήση ειδικών μεταβλητών!! if [ -f $filename ]; then if [! -f $2/$fn ]; then echo "$fn is missing from $2" missing=$((missing + 1)) fi fi done echo "$missing files missing" ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

75 8. Εύρεση μέσου όρου μιας σειράς αριθμών #!/bin/bash sum=0 num=0 while true; do echo -n enter a number [0-100] (0 for quit) : ;read score if [ $score lt 0 ] [ $score gt 100 ]; then echo try again!! elif [ $score eq 0 ]; then echo average = $average exit 0 else sum=$((sum+score)) num=$((num+1)) average=$((sum/num)) fi done echo exit end ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

76 9. Χρήση των $*, και της shift #!/bin/bash echo NAME of script is $0 count=1 for name in $*; do echo $count '=>' $name count=$((count+1)) done ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

77 10. Χρήση ειδικών παραμέτρων θέσης #!/bin/bash echo '** Show parameters using **' count=1 for name in ; do echo $count '=>' $name count=$((count+1)) done echo Show use of shift while [ $# -ne 0 ]; do echo first parameter is $1 shift done ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

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

79 ΑΣΚΗΣΗ -1 Να γραφεί ένα shell script που θα διαβάζει ένα αρχείο και θα το εμφανίζει στην οθόνη γραμμή προς γραμμή. Στην αρχή κάθε γραμμής θα βρίσκεται ο αύξων αριθμός της γραμμής. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

80 Λύση άσκησης -1 #!/bin/bash if [ $# -eq 0 ]; then echo ERROR: usage is: $0 filename exit 1 fi # read the file line by line count=1 while read line do echo "$count: $line" count=$((count + 1)) done < $1 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

81 ΑΣΚΗΣΗ -2 Να γραφεί ένα shell script που θα δέχεται το login name ενός χρήστη και θα εμφανίζει πόσες φορές έχει κάνει logged on (χρήση των εντολών who, grep, wc) ΛΥΣΗ #!/bin/bash times=`who grep $1 wc l` echo "$1 is logged on $times times" ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

82 ΑΣΚΗΣΗ -3 Να γραφεί ένα shell script με όνομα lsdirs που θα εμφανίζει μόνον τα ονόματα των directories στο τρέχον directory. ΛΥΣΗ #!/bin/sh for file in $*/*; do if [ -d $file ] then done fi ls $file ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

83 ΑΣΚΗΣΗ -4 Σε πολλές εκδόσεις του unix υπάρχει ένα όρισμα -i για την εντολή cp έτσι ώστε ο χρήστης να ειδοποιείται για επιβεβαίωση, αν το αρχείο πρόκειται να αντικαταστήσει κάποιο υπάρχον (overwrite). Να γραφεί ένα script με όνομα cpi που θα ειδοποιεί αν είναι απαραίτητο, χωρίς να χρησιμοποιηθεί το όρισμα -i. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

84 ΛΥΣΗ άσκησης -4 #!/bin/bash if [ -f $2 ]; then echo -n "$2 exists. Do you want to overwrite it? (y/n)" read yn if [ $yn = "N" -o $yn = "n" ]; then exit 0 fi fi cp $1 $2 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

85 ΑΣΚΗΣΗ -5 Χρησιμοποιώντας την εντολή if να γραφεί ένα shell script που θα ελέγχει αν ένας χρήστης έχει κάνει login στο σύστημα. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

86 Λύση άσκησης -5 # test if user in logged in # input: getuser username user=$1 if who grep -s $user then echo $user is logged in else echo $user not available fi ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

87 ΑΣΚΗΣΗ -6 ίνεται το παρακάτω αρχείο με όνομα netwatch που περιέχει sites που έχουν επισκεφτεί οι χρήστες ενός συστήματος Unix. jamiesob mucus.slime.com tonsloye xboys.funnet.com.fr tonsloye sweet.dreams.com root sniffer.gov.au jamiesob marvin.ls.tc.hk jamiesob never.land.nz jamiesob guppy.pond.cqu.edu.au tonsloye xboys.funnet.com.fr tonsloye janesk horseland.org.uk root tonsloye warez.under.gr tonsloye mucus.slime.com root ftp.ns.gov.au tonsloye xboys.funnet.com.fr root linx.fare.com root crackz.city.bmr.au janesk smurf.city.gov.au jamiesob mucus.slime.com jamiesob mucus.slime.com ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

88 Μια επιτροπή αποφάσισε να δημιουργήσει ένα νέο αρχείο με όνομα netnasties που περιέχει όλα τα sites που θεωρεί απαγορευμένα (prohibited). mucus.slime.com xboys.funnet.com.fr warez.under.gr crackz.city.bmr.au Να γραφεί ένα shell script που θα εντοπίζει τους χρήστες που έχουν επισκεφτεί τα απαγορευμένα sites και θα τους προειδοποιεί για την απόφαση της επιτροπής. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

89 Ένα από τα πρώτα πράγματα που πρέπει να ελεγχθεί είναι η ύπαρξη των δύο αρχείων netnasties και netwatch. #!/bin/bash if [ -f netwatch ] && [ -f netnasties ]; then echo source files exist" else echo "Can not find one of the data files - exiting" exit 1 fi ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

90 while read buffer do user=`echo $buffer cut -d" " -f1` site=`echo $buffer cut -d" " -f2` if [ $user = $1 ]; then echo "$user visited $site" fi done < netwatch ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

91 1η Λύση τα ονόματα χρηστών που ελέγχονται είναι ορίσματα της γραμμής εντολών #!/bin/bash if [ -f netwatch ] && [ -f netnasties ]; then echo "source files exist" else echo "can not find source files - exiting.." exit 1 fi for checkuser in $*; do while read buffer do #user=`echo $buffer cut -d" " -f1` #site=`echo $buffer cut -d" " -f2` while read checksite do user=`echo $buffer cut -d" " -f 1` site=`echo $buffer cut -d" " -f 2` if [ "$user" = "$checkuser" ] && [ "$site" = "$checksite" ]; then echo "$user visited the prohibited site $site" fi done < netnasties done < netwatch done ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

92 2η Λύση Από το αρχείο netwatch δημιουργείται ένα νέο αρχείο με όνομα netset που περιλαμβάνει μόνον τα ονόματα των χρηστών, το καθένα μόνον μία φορά, μέσω της εντολής : sed s/.*$//g netwatch sort uniq >netset Η λύση είναι: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

93 #!/bin/bash if [ -f netwatch ] && [ -f netnasties ]; then echo "source files exist" else echo "can not find source files - exiting.." exit 1 fi while read checkuser do while read buffer do #user=`echo $buffer cut -d" " -f1` #site=`echo $buffer cut -d" " -f2` while read checksite do user=`echo $buffer cut -d" " -f 1` site=`echo $buffer cut -d" " -f 2` if [ "$user" = "$checkuser" ] && [ "$site" = "$checksite" ]; then echo "$user visited the prohibited site $site" fi done < netnasties done < netwatch done <netset ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

94 3η λύση Είναι παρόμοια με την προηγούμενη αλλά τα ονόματα χρηστών από το αρχείο netset δημιουργούνται ως αποτέλεσμα της εντολής $(cat netset) : for checkuser in $(cat netset); ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

95 #!/bin/bash if [ -f netwatch ] && [ -f netnasties ]; then echo "source files exist" else echo "can not find source files - exiting.." exit 1 fi for checkuser in $(cat netset); do while read buffer do #user=`echo $buffer cut -d" " -f1` #site=`echo $buffer cut -d" " -f2` while read checksite do user=`echo $buffer cut -d" " -f 1` site=`echo $buffer cut -d" " -f 2` done if [ "$user" = "$checkuser" ] && [ "$site" = "$checksite" ]; then echo "$user visited the prohibited site $site" fi done < netnasties done < netwatch ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

96 ΑΣΚΗΣΗ -7 Να γραφεί ένα script που θα χρησιμοποιεί το αρχείο /etc/passwd για να εμφανίσει μια λίστα με τους χρήστες του συστήματος στη μορφή: USER #1 = root USER #2 = bin USER #3 = daemon.. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

97 Λύση άσκησης -7 #!/bin/bash PASSWORD_FILE=/etc/passwd n=1 # User number for name in $(awk BEGIN {FS=":"} { print $1 } ' < "$PASSWORD_FILE" ) do echo "USER #$n = $name" n=$((n+1)) done ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

98 ΑΣΚΗΣΗ -8 Να γραφεί ένα script που θα διαβάζει ένα text file με χρήση της εντολής awk, θα υπολογίζει και θα εμφανίζει το άθροισμα των τιμών μιας οποιασδήποτε στήλης του text file. To script θα δέχεται ως ορίσματα της γραμμής εντολών το όνομα του text file και τον αριθμό της στήλης. Να γίνονται όλοι οι απαραίτητοι έλεγχοι για τα ορίσματα του script. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

99 Λύση άσκησης -8 #!/bin/bash ARGS=2 if [ $# -ne "$ARGS" ]; then echo "Usage: `basename $0` filename column-number" exit 0 fi filename=$1 column_number=$2 # begin awk script awk ' { total += $`"${column_number}«` } END { print total } ' "$filename" # end awk script ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

100 ΑΣΚΗΣΗ -9 Να γραφεί ένα script που θα βρίσκει τον χώρο που καταλαμβάνουν τα αρχεία του τρέχοντος καταλόγου. (υπόδειξη: χρησιμοποιείστε τις εντολές grep και awk) ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

101 Λύση άσκησης -9 TotalBytes=0 for Bytes in $(ls -l grep "^-" awk '{ print $5 }') do TotalBytes=$((TotalBytes+Bytes)) done if [ $TotalBytes -lt 1024 ]; then TotalSize=$(echo total size =$TotalBytes ) echo $TotalSize elif [ $TotalBytes -lt ]; then TotalSize=$(echo total size=`expr $TotalBytes / 1024` Kb) echo $TotalSize fi ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

102 ΑΣΚΗΣΗ -10 Να γραφεί ένα script που θα δέχεται ως ορίσματα ένα πρότυπο και ένα νέο πρότυπο. Στη συνέχεια θα αντικαθιστά το παλιό με το νέο πρότυπο σε όλα τα ονόματα αρχείων του τρέχοντος καταλόγου που περιέχουν το παλιό πρότυπο. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

103 1η λύση άσκησης 10 #!/bin/bash criteria=$1 re_match=$2 replace=$3 for i in $( ls *$criteria* ); do src=$i tgt=$(echo $i sed -e "s/$re_match/$replace/g") mv $src $tgt done ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

104 2η λύση άσκησης 10 #! /bin/bash # filename "rename" utility if [ $# -ne 2 ] then echo "Usage: `basename $0` old-pattern new-pattern" exit 0 fi number=0 # Keeps track of how many files actually renamed. for filename in *$1* #Traverse all matching files in directory. do if [ -f "$filename" ] # If finds match... then fname=`basename $filename` # Strip off path. n=`echo $fname sed "s/$1/$2/g"` # Substitute new for old in filename. mv $fname $n # Rename. number=$((number+1)) fi done if [ "$number" -eq 1 ] then echo "$number file renamed." else echo "$number files renamed." fi ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

105 ΑΣΚΗΣΗ -11 Να γραφεί ένα script που θα αντικαθιστά κάθε εμφάνιση του χαρακτήρα _ (underscore) στα ονόματα αρχείων του τρέχοντος καταλόγου με τον χαρακτήρα. Κατά την αντικατάσταση να γίνονται όλοι οι απαραίτητοι έλεγχοι. Στο τέλος θα εμφανίζεται το πλήθος των αρχείων των οποίων το όνομα έχει αλλάξει. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

106 Λύση άσκησης 11 #! /bin/bash number=0 # Keeps track of how many files actually renamed. for filename in * #Traverse all files in directory. do echo "$filename" grep -q " " # Check whether filename if [ $? -eq 0 ]; then fname=$filename # Strip off path. n=`echo $fname sed -e "s/_ /-/g"` # Substitute underscore for -. if [! f $n ]; then mv "$fname" "$n" # Do the actual renaming. number=$((number+1)) elif [ -f $n ]; then echo filename $n already exists fi done if [ $number -gt 0 ] then echo "$number files are renamed." elif [ $number eq 0 ; then echo no files renamed." fi ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

107 ΑΣΚΗΣΗ -12 Να γραφεί ένα script που θα εμφανίζει τη συχνότητα των λέξεων που υπάρχουν σε ένα text file που θα είναι και το μοναδικό όρισμα της γραμμής εντολών. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

108 Λύση άσκησης 12 #!/bin/bash if [ $# -ne 1 ]; then echo "Usage: `basename $0` filename" exit 0 fi if [! -f "$1" ] # Check if file exists. then echo "File \"$1\" not found." exit 0 fi tr A-Z a-z <$1 awk F {for (i=1;i<=nf;i++) word[$i]++} END {for (i in word) print i, word[i]} sort ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ ΕΡΓΑΣΤΗΡΙΟ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΣΚΗΣΗ 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 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 Κάθε φορά που το κέλυφος

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:04 Δρ. Μηνάς Δασυγένης 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Shell Scripts. $ friend=nikos $ echo $friend. $ set grep -n friend. [^a-z] π.χ. echo rm??ee*.txt [1] Nikos

Shell Scripts. $ friend=nikos $ echo $friend. $ set grep -n friend. [^a-z] π.χ. echo rm??ee*.txt [1] Nikos Shell Scripts Shell Script: ένα αρχείο που περιέχει προς τον φλοιό Επανάληψη O φλοιός (shell) µεσολαβεί µεταξύ πυρήνα και χρήστη, εµφανίζει το prompt π.χ. username@hostname:~$, ερµηνεύει, εκτελεί προγράµµατα...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Να γραφεί πρόγραμμα το οποίο δέχεται ως είσοδο μια ακολουθία S από n (n 40) ακέραιους αριθμούς και επιστρέφει ως έξοδο δύο ακολουθίες από θετικούς ακέραιους

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

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

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

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

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

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

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

2.Shell, users, groups και privilegies

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

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

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

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

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011 Διάρκεια Διαγωνισμού: 3 ώρες Απαντήστε όλες τις ερωτήσεις Μέγιστο Βάρος (20 Μονάδες) Δίνεται ένα σύνολο από N σφαιρίδια τα οποία δεν έχουν όλα το ίδιο βάρος μεταξύ τους και ένα κουτί που αντέχει μέχρι

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

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

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

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

Κανονικές εκφράσεις ή παραστάσεις (Regular Expressions) 3 ο Εργαστήριο ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - ΕΡΓΑΣΤΗΡΙΟ

Κανονικές εκφράσεις ή παραστάσεις (Regular Expressions) 3 ο Εργαστήριο ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - ΕΡΓΑΣΤΗΡΙΟ Κανονικές εκφράσεις ή παραστάσεις (Regular Expressions) 3 ο Εργαστήριο ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - ΕΡΓΑΣΤΗΡΙΟ - 03 1 Μια κανονική έκφραση είναι ένας σύντομος και σαφής τρόπος έκφρασης οποιουδήποτε συνδυασμού

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

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

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

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο

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

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

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

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

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

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

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

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

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

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

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα»

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα» ΚΡΕΜΑΛΑ Project 7 1 Εκφώνηση άσκησης Υλοποίηση του παιχνιδιού «Κρεμάλα» Το Project αυτό συνίσταται στην κατασκευή ενός προγράμματος σεναρίου κελύφους, που θα υλοποιεί το γνωστό παιχνίδι «Κρεμάλα» με δυνατότητα

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Όλοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα μικρότεροι του 10000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Αν κάπου κάνετε κάποιες υποθέσεις

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

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

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

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

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

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

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Ολοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα είναι μικρότεροι το 1000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Διάρκεια: 3,5 ώρες Καλή

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

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

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

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

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

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

Basic Missions

Basic Missions www.hackthissite.org Basic Missions Προγουλάκης Νίκος Α.Μ.: 2582 2010-2011 (Ε) www.hackthissite.org 1 www.hackthissite.org www.hackthissite.org 2 www.hackthissite.org www.hackthissite.org 3 www.hackthissite.org

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

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

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

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

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

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

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

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

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

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

(Regular Expressions) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ/ ΧΕΙΜ

(Regular Expressions) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ/ ΧΕΙΜ Κανονικές εκφράσεις (Regular Expressions) 1 Μια κανονική έκφραση είναι ένας σύντομος και σαφής τρόπος έκφρασης οποιουδήποτε συνδυασμού χαρακτήρων. Οι κανονικές εκφράσεις (RE) αποτελούνται από συνδυασμό

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

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade Για να ελέγξετε το λογισμικό που έχει τώρα η συσκευή κάντε κλικ Menu > Options > Device > About Device Versions. Στο πιο κάτω παράδειγμα η συσκευή έχει έκδοση λογισμικού 6.0.0.546 με πλατφόρμα 6.6.0.207.

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

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

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

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

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ Διάλεξη 2 Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις Διοργάνωση : ΚΕΛ ΣΑΤΜ Διαφάνειες: Skaros, MadAGu Παρουσίαση: MadAGu Άδεια: Creative Commons 3.0 2 Internal

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

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

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

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

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP Το FTP (File Transfer Protocol) είναι το εξειδικευμένο πρωτόκολλο μεταφοράς αρχείων στα σύγχρονα δίκτυα δεδομένων όπως το Διαδίκτυο. Δίνει τη δυνατότητα μεταφοράς αρχείων από τον υπολογιστή

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

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

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

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

Εισαγωγή στη Matlab 2 Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

Εισαγωγή στη Matlab 2 Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής Εισαγωγή στη Matlab 2 Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής email: dzavanti@cs.uoi.gr Περιεχόμενα Ορισμοί Λογικοί τελεστές f0r loops while loops if else

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 12: Συνοπτική Παρουσίαση Ανάπτυξης Κώδικα με το Matlab Σαμαράς Νικόλαος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

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

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

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

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

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

HY150a Φροντιστήριο 3 24/11/2017

HY150a Φροντιστήριο 3 24/11/2017 HY150a Φροντιστήριο 3 24/11/2017 1 Assignment 3 Overview Το πρόγραμμα ζητείται να διαβάζει μια λίστα δεδομένων που περιγράφει τα διαθέσιμα τμήματα μνήμης (blocks) ενός ΗΥ. Το πρόγραμμα ζητείται να μεταφορτώνει

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

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

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

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

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

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

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

ΕΛΠ 605: Προχωρημένη Αρχιτεκτονική Υπολογιστών. Εργαστήριο Αρ. 1

ΕΛΠ 605: Προχωρημένη Αρχιτεκτονική Υπολογιστών. Εργαστήριο Αρ. 1 ΕΛΠ 605: Προχωρημένη Αρχιτεκτονική Υπολογιστών Εργαστήριο Αρ. 1 Εισαγωγή στα UNIX και άλλα εργαλεία, PhD petrosp@cs.ucy.ac.cy Σελ. 1 UNIX Τι Είναι Λειτουργικό Σύστημα; Γιατί UNIX; Παραλλαγές Unix: Linux,

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

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

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

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

Εισαγωγή στην Tcl. Τί είναι η Tcl;

Εισαγωγή στην Tcl. Τί είναι η Tcl; 1 Εισαγωγή στην Tcl Τί είναι η Tcl; Το αρκτικόλεξο Tcl προέρχεται από τις λέξεις «Tool Control Language». Η Tcl είναι μια γλώσσα προγραμματισμού για scripts γενικής χρήσεως, τα οποία επίσης μπορούν να

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

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

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

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

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι Ενότητα : Εισαγωγή στο λειτουργικό σύστημα Linux. Όνομα Καθηγητή : Δημήτριος Λυμπερόπουλος, Σπύρος Δενάζης Τμήμα : Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

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

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

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Μάθημα 1: Βασική Πλοήγηση σε Linux CLI. Οκτώβριος 2016 Χ. Αλεξανδράκη

Εισαγωγή στον Προγραμματισμό Μάθημα 1: Βασική Πλοήγηση σε Linux CLI. Οκτώβριος 2016 Χ. Αλεξανδράκη Εισαγωγή στον Προγραμματισμό Μάθημα 1: Βασική Πλοήγηση σε Linux CLI Οκτώβριος 2016 Χ. Αλεξανδράκη Command Line Interface Τα περισσότερα λειτουργικά συστήματα είναι φτιαγμένα ώστε να παρέχουν δύο περιβάλλοντα

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

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

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

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

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

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

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

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

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

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

A ΜΕΡΟΣ. 1 program Puppy_Dog; 2 3 begin 4 end. 5 6 { Result of execution 7 8 (There is no output from this program ) 9 10 }

A ΜΕΡΟΣ. 1 program Puppy_Dog; 2 3 begin 4 end. 5 6 { Result of execution 7 8 (There is no output from this program ) 9 10 } A ΜΕΡΟΣ 1 program Puppy_Dog; begin 4 end. 5 6 { Result of execution 7 (There is no output from this program ) 10 } (* Κεφάλαιο - Πρόγραµµα EX0_.pas *) 1 program Kitty_Cat; begin 4 Writeln('This program');

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

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

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

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

ΒασικέςέννοιεςτουUNIX: Πλοήγηση στο Σύστημα Αρχείων, ΟφλοιόςτουUNIX, Βοηθητικά Προγράμματα, ΗδομήτουΠυρήνα.

ΒασικέςέννοιεςτουUNIX: Πλοήγηση στο Σύστημα Αρχείων, ΟφλοιόςτουUNIX, Βοηθητικά Προγράμματα, ΗδομήτουΠυρήνα. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ -UNIX Μάθημα: Λειτουργικά Συστήματα ΙΙ UNIX ΒασικέςέννοιεςτουUNIX: Πλοήγηση στο Σύστημα Αρχείων, ΟφλοιόςτουUNIX, Βοηθητικά Προγράμματα, ΗδομήτουΠυρήνα. Διδάσκων: Επ. Καθ. Κ. Λαμπρινουδάκης

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

Λειτουργικά Συστήματα - Εργαστήριο 6. 6ο Εργαστήριο. Συμπίεση αρχείων Χρήση ειδικών χαρακτήρων στην γραμμή εντολών. Χρήστες και Ομάδες Χρηστών

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

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

Πληροφορική ΙΙ Θεματική Ενότητα 11

Πληροφορική ΙΙ Θεματική Ενότητα 11 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Θεματική Ενότητα 11 Συμβολοσειρές Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το

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

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

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

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση τη

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

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

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

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

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

Εργαστήριο ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ & ΚΑΤΑΛΟΓΩΝ ΣΤΟ UNIX. Εισαγωγή

Εργαστήριο ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ & ΚΑΤΑΛΟΓΩΝ ΣΤΟ UNIX. Εισαγωγή Εισαγωγή Εργαστήριο 2 ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ & ΚΑΤΑΛΟΓΩΝ ΣΤΟ UNIX Συνεχίζουμε την εργαστηριακή μελέτη των Λειτουργικών Συστημάτων εξετάζοντας τις δομές των αρχείων και καταλόγων και τη διαχείρισή τους στο

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