Τρόποι εγκατάστασης προγράμματος στο Ubuntu / Mint 1. Με το Ubuntu Software Center (ή το αντίστοιχο εργαλείο του Mint) 2.

Σχετικά έγγραφα
Προγραμματισμός Ι. Εργαστήριο 1 ο Περιβάλλον Εργασίας. Νικόλαος Δ. Τσελίκας Κυριακή Θ. Σεκλού

Εγκατάσταση και δοκιμή προγραμμάτων για προγραμματισμό στη C

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

Tο περιβάλλον Code::Blocks

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

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

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

Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI

Οδηγίες εγκατάστασης και χρήσης Java σε προσωπικό υπολογιστή

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

Βασικές έννοιες προγραμματισμού

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

Εισαγωγή στη γλώσσα προγραμματισμού C++

Δίκτυα Υπολογιστών Ι. Εγκατάσταση του Network Simulator-2 σε περιβάλλον Cygwin. Δ. Καρβουνάς, Δρ. Κ. Τσαγκάρης, Καθηγ. Π.

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

Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ:

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

Εισαγωγή...1 Το κοινό αυτού του βιβλίου...2 Οι συμβάσεις που χρησιμοποιούνται στο βιβλίο...3

Εγκατάσταση του PiNet για διαχείριση εργαστηρίου με Raspberry Pi. Συγγραφέας: Τριχόπουλος Γιώργος Δεκέμβριος 2016

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

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

Εδώ υπάρχει ένα παράδειγμα από ένα φανταστικό πρόγραμμα και το πακέτο του:

CYGWIN Οδηγίες Χρήσης (Συγγραφέας: Γιώργος ούκας)

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

Αντικειμενοστρεφής Προγραμματισμός

Εισαγωγή στην Python. Διάλεξη 0

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Ένα πρώτο πρόγραμμα ΔΟΜΗ TOY ΠΡΟΓΡΑΜΜΑΤΟΣ. Τι σημαίνουν οι εντολές. Από τι αποτελείται ένα πρόγραμμα

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

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

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ ΓΛΩΣΣΟΜΑΘΕΙΑ

Δομημένος Προγραμματισμός

Tο περιβάλλον Code::Blocks

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

Εισαγωγή στη γλώσσα προγραμματισμού C++14

Δημιουργία μιας εφαρμογής Java με το NetBeans

Οδηγίες Λήψης & Εγκατάστασης του Jitsi 2.0

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

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

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

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία

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

Πανεπιστήμιο Ιωαννίνων

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

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

Πρόβλημα 29 / σελίδα 28

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ

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

Tο περιβάλλον Code::Blocks

ΙΔΡΥΜΑΤΙΚΟ ΑΠΟΘΕΤΗΡΙΟ ΤΕΙ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ

Π : Εγχειρίδια χρήσης της υπηρεσίας για τα κύρια υποστηριζόμενα Λειτουργικά

Εισαγωγή στη γλώσσα προγραμματισμού Fortran 95

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

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ & ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΑΝΑΠΤΥΞΗΣ BloodShed Dev-C++

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

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

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

Ας δούμε λίγο την θεωρία με την οποία ασχοληθήκαμε μέχρι τώρα.

Εγχειρίδιο συμπίεσης / αποσυμπίεσης αρχείων με το λο ογισμικό WinRAR Υπηρεσία Πληροφορικών Συστημάτων Τομέας Συστημάτων ΥΠΣ ΕΔ/70 21/11/2012

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

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

Είσοδος σε συνεδρία της Blackboard και βασικές ρυθμίσεις

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 4 η. Βασίλης Στεφανής

Υπολογιστές Ι. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

Προγραµµατισµός Ι Εργαστήριο 3ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα

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

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

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

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

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

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

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

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

Γνωρίστε το Excel 2007

Κατανεμημένος και Παράλληλος Προγραμματισμός. Εισαγωγή στο MPI. Εγκατάσταση MPICH σε ένα ΗΥ 10/3/2017

Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB

Είσοδος σε συνεδρία της Blackboard και βασικές ρυθμίσεις

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

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

1st exercise of work2 - REMARKS

Linux. (Andrew Tanenbaum to Linus Torvalds)

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

Σε κάθε διανομή μπορεί να παρέχονται διαφορετικοί windows manager όπως: Xfe (Xubuntu) Gnome, (Debian,Ubuntu) KDE, (Kubuntu, Mandriva)

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή

Γ τάξη Τεχνολογικής Κατεύθυνσης Ενιαίου Λυκείου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. ΔΟΜΗ ΕΠΙΛΟΓΗΣ Διδάσκων: ΔΟΥΡΒΑΣ ΙΩΑΝΝΗΣ

Ιδιότητες αντικειμένων, συγγραφή κώδικα, συντακτικά λάθη

Εγκατάσταση του Arduino IDE

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ & ΔΙΑΣΥΝΔΕΣΗΣ CLIENT SECURE REMOTE ACCESS IP VPN

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

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

Transcript:

Τρόποι εγκατάστασης προγράμματος στο Ubuntu / Mint 1. Με το Ubuntu Software Center (ή το αντίστοιχο εργαλείο του Mint) 2. Με το synaptic 1

3. Εγκατάσταση μπορεί να γίνει και με χρήση της μεθόδου AptURL. Π.χ. στη γραμμή διευθύνσεων του προγράμματος πλοήγησης εισάγουμε apt:geany Με τον τρόπο αυτό θα γίνει εγκατάσταση του προγράμματος geany. Πιθανόν ο δημιουργός μίας ιστοσελίδας να έχει δημιουργήσει το κατάλληλο link: <a href="apt:geany">click here</a> και ο χρήστης να μπορεί να κάνει εγκατάσταση του πακέτου με ένα κλικ. Μπορεί να γίνει και η εγκατάσταση πολλών προγραμμάτων ταυτόχρονα, π.χ.: <a href="apt:package1,package2,package3">click here</a> και ο χρήστης να μπορεί να κάνει εγκατάσταση του πακέτου με ένα κλικ. Για να μπορεί να γίνει χρήση του AptURL θα πρέπει το πρόγραμμα πλοήγησης να υποστηρίζει το πρωτόκολλο APT. Εάν π.χ. ο firefox έχει εγκατασταθεί στο σύστημά μας από τα αποθετήρια, τότε εξ ορισμού το υποστηρίζει. Αλλιώς θα πρέπει να γίνει ενεργοποίηση της δυνατότητας αυτής (https://help.ubuntu.com/community/apturl). 4. Αν δεν υπάρχει ένα πρόγραμμα στα αποθετήρια (repositories) και δεν μπορεί να εγκατασταθεί με τους προηγούμενους τρόπους, τότε αν υπάρχει διαθέσιμο για download το deb αρχείο (για την έκδοση του Ubuntu/Mint που έχουμε), τότε μπορούμε να το ανοίξουμε (π.χ. με διπλό κλικ) και να το κάνουμε εγκατάσταση με τον Package Installer με γραφικό τρόπο (εργαλείο GDebi): 2

Εναλλακτικά μπορούμε να το κάνουμε εγκατάσταση από την γραμμή εντολών με την εντολή apt-get: sudo apt-get install <όνομα πακέτου> Αν το πακέτο δεν εξαρτάται από επιπλέον αρχεία και βιβλιοθήκες, μπορεί απευθείας να εγκατασταθεί με sudo dpkg -i <όνομα πακέτου> Δηλαδή το dpkg δεν μπορεί να επιλύσει και να εγκαταστήσει αυτόματα αλληλοεξαρτήσεις των πακέτων που εγκαθιστούμε. Στην ουσία το apt-get κάνει χρήση του dpkg για την εγκατάσταση των πακέτων, αφού πρώτα ελέγξει για τυχόν αλληλοεξαρτήσεις. 5. Ίσως το πακέτο να υπάρχει διαθέσιμο σε μορφή rpm. Η μορφή rpm είναι κατάλληλη για διανομές όπως το Fedora, το RedHat και το Mandriva. Υπάρχει εφαρμογή με το όνομα alien που ίσως μπορεί να μετατρέψει το rpm πακέτο μας σε μορφή deb (https://help.ubuntu.com/community/rpm/alienhowto). 6. Αν δεν υπάρχει ένα πρόγραμμα σε μορφή πακέτου που είναι έτοιμο για εγκατάσταση, θα πρέπει να βρούμε τον κώδικά του (source). Συνήθως ο κώδικας είναι σε μορφή πακέτου tar και συμπιεσμένο είτε σε μορφή gz είτε σε μορφή bz2. Θα πρέπει αφού κατεβάσουμε το αρχείο σε έναν φάκελο να το κάνουμε αποσυμπίεση. Η αποσυμπίεση γίνεται με > tar -xzvf tarballname.tar.gz για αρχεία gz ή > tar -xjvf tarballname.tar.bz2 για αρχεία bzip2. Εναλλακτικά, μπορούμε να αποσυμπιέσουμε το αρχείο με > gunzip tarballname.tar.gz ή > bunzip2 tarballname.tar.bz2 και μετά δίνουμε > tar -xvf tarballname.tar Στη συνέχεια θα πρέπει να διαβάσουμε προσεκτικά τις οδηγίες εγκατάστασης (συνήθως αρχείο INSTALL ή README.TXT). Συχνά για την εγκατάσταση δίνουμε τις εντολές >./configure > make > make install 3

αλλά πάντοτε εξαρτάται από το συγκεκριμένο πρόγραμμα και καλά είναι να ακολουθήσουμε τις οδηγίες χρήσης. Η αποσυμπίεση (ή και συμπίεση) αρχείων μπορεί αντί να γίνει με την εντολή tar, να γίνει με γραφικό τρόπο με χρήση π.χ. του προγράμματος Archive Manager (στο μενού Accesories): Με > zcat -f /var/log/dpkg.log* fgrep " install " sort μπορούμε να πάρουμε ταξινομημένα (σε αύξουσα σειρά ως προς την ημερομηνία) τα προγράμματα τα οποία έχουν γίνει εγκατάσταση. Αυτό γίνεται ελέγχοντας το αρχείο καταγραφής (log) για το dpkg. Η εντολή zcat χρησιμοποιείται αντί για την cat γιατί τα αρχεία είναι συμπιεσμένα. Αν θέλουμε τα πιο πρόσφατα 10 προγράμματα που έγιναν εγκατάσταση, μπορούμε να δώσουμε: > zcat -f /var/log/dpkg.log* fgrep " install " sort tail -10 4

Προγραμματισμός με Geany 5

6

7

Μεταγλώττιση C/C++ Έστω ότι έχουμε ένα αρχείο με το όνομα test1.c το οποίο περιέχει πρόγραμμα C. Τότε δίνοντας > gcc test1.c μεταγλωττίζει το πρόγραμμα και αν δεν υπάρχουν λάθη τότε δημιουργεί ένα αρχείο με το όνομα a.out το οποίο περιέχει το εκτελέσιμο πρόγραμμα. Δίνοντας >./a.out μπορούμε να εκτελέσουμε το πρόγραμμα. Μπορούμε να ορίσουμε το όνομα που θα έχει το εκτελέσιμο πρόγραμμα δίνοντας > gcc test1.c -ο program1 ώστε το εκτελέσιμο αρχείο να λέγεται program1 αντί για a.out. Εάν έχουμε ένα πρόγραμμα το οποίο αποτελείται από πολλά.c αρχεία, τότε αρκεί απλά να γράψουμε τα ονοματά τους το ένα δίπλα στο άλλο έτσι ώστε να τα κάνει όλα μεταγλώττιση και να παράγει το εκτελέσιμο αρχείο. Για αρχείο που περιέχει κώδικα C++ έχουμε συνήθως επέκταση.cpp και δίνουμε > g++ test2.cpp -o program2 8

CodeBlocks (http://www.codeblocks.org/) 9

Eclipse 10

NetBeans 11

Shell (Κέλυφος) Για να δούμε τα shells που έχουμε εγκατεστημένα > cat /etc/shells Για την έκδοση του Bash > bash version Για να δούμε το default shell ls -l /bin/sh echo echo hello ή echo 'hello' εμφανίζει ένα μήνυμα στην οθόνη. echo -e Hello\nWorld Κάνει αλλαγή γραμμής (\n). Μεταβλητές X=10 Θέτει Χ=10 echo $X Εμφανίζει την τιμή του Χ let X=$X+1 Αλλαγή της τιμής του Χ. Το κάνει 11 X=$X+1 Κάνει το Χ ίσο με 11+1 (όχι ίσο με 12!) echo X Εμφανίζει Χ echo '$X' Εμφανίζει $Χ echo $X Εμφανίζει την τιμή του Χ 12

export X Κάνουμε export έτσι ώστε η τιμή της μεταβλητής να είναι ορατή και στα υποκελύφη ή γενικά τα υποπρογράμματα που έχουμε echo $RANDOM Εμφανίζει έναν τυχαίο αριθμό let Y=$RANDOM%10 Δίνει στο Υ μία τυχαία τιμή ανάμεσα στο 0 και το 9 (ο τελεστής % υπολογίζει το υπόλοιπο της διάιρεσης) echo $PATH Εμφανίζει την τιμή της μεταβλητής συστήματος PATH echo $HOME Εμφανίζει την τιμή της μεταβλητής συστήματος HOME echo $SHELL Εμφανίζει το shell που χρησιμοποιούμε. echo $HOSTNAME Εμφανίζει το όνομα του host. Υπάρχει αποθηκευμένο στο /etc/hostname και άρα μπορούμε να το δούμε και με cat /etc/hostname echo $PS1 Εμφανίζει τα σύμβολα του prompt. PS1= > Αλλάζει τα σύμβολα του prompt. env Βλέπουμε όλες τις μεταβλητές του συστήματος Τα τελευταία χρόνια χρησιμοποιείται αρκετά το DASH ως προεπιλεγμένο για να εκτελεί τα scripts γιατί είναι πιο μικρό και γρήγορο. Αντίθετα στο τερματικό συνήθως χρησιμοποιείται το BASH. Αυτό μπορούμε να το διαπιστώσουμε ελέγχοντας τις εντολές: > echo $SHELL > ls -l /bin/sh Το προεπιλεγμένο shell καθορίζεται με την παράμετρο -s της εντολής useradd και μπορεί να τροποποιηθεί επίσης με την παράμετρο -s της εντολής usermod. Σειρά εκτέλεσης των αρχείων που περιέχουν εντολές για το κέλυφος: 13

Αρχείο script1 #!/bin/sh date gedit gimp Τρόποι εκτέλεσης: Δίνουμε../script1 ή source./script1 Το κάνουμε εκτελέσιμο με chmod a+x script1 και μετά το εκτελούμε με./script1 14

Το αρχείο script1 εκτελεί την εντολή date εκτελεί την εντολή gedit όταν κλείσουμε την εντολή gedit τότε εκτελεί το gimp όταν κλείσουμε και το gimp τότε μπορούμε να δώσουμε άλλη εντολή στο shell Αρχείο script2 #!/bin/sh date gedit & gimp Το αρχείο script2 εκτελεί την εντολή date εκτελεί την εντολή gedit εκτελεί ταυτόχρονα το gimp όταν κλείσουμε και το gimp τότε μπορούμε να δώσουμε άλλη εντολή στο shell Αρχείο script3 #!/bin/sh date gedit & gimp & Το αρχείο script3 εκτελεί την εντολή date εκτελεί την εντολή gedit εκτελεί ταυτόχρονα το gimp μπορούμε να δώσουμε άλλη εντολή στο shell χωρίς να έχουμε κλείσει τα προηγούμενα προγράμματα 15

Κανονικές Εκφράσεις Ας υποθέσουμε ότι θέλουμε να εξάγουμε από κάποια συλλογή κειμένων τις γραμμές που περιέχουν την λέξη «Περικλής» γράφοντας μία κανονική έκφραση. Καταρχήν, η ακολουθία χαρακτήρων που αναζητούμε θα περιέχεται μέσα σε «/», όπου και θα περικλείουμε για το υπόλοιπο της ενότητας αυτής τις ΚΕ. Έτσι η κανονική έκφραση που θα γράφαμε για την εξαγωγή γραμμών που περιέχουν τη λέξη «Περικλής» θα ήταν: /Περικλής/ Γίνεται αναζήτηση σε κάθε γραμμή της συλλογής κειμένων για ένα «Π» το οποίο να ακολουθείται από «ε», από «ρ», από «ι», «κ», «λ», «ή», «ς». Πρέπει να είναι σαφές ότι τα μικρά γράμματα είναι διαφορετικά από τα κεφαλαία (case sensitive), και έτσι αν θέλουμε «Περικλής», με το πρώτο γράμμα δηλαδή κεφαλαίο, δεν θα πρέπει να γράψουμε «περικλής». Έτσι η ΚΕ: /π/ είναι διαφορετική από την ΚΕ: /Π/. Η πρώτη στήλη της λίστας που ακολουθεί δίνει την ΚΕ όπως πρέπει να δοθεί, η δεύτερη το τι αναζητείται, και η τρίτη ένα παράδειγμα γραμμής που θα μπορούσε να εξαχθεί από μία συλλογή κειμένων με υπογραμμισμένη την ακολουθία χαρακτήρων που ταίριαξε με την ΚΕ που δόθηκε: /Περικλής/ Περικλής Τότε που ο Περικλής ήταν.. Παρακάτω θα περιγράψουμε με λίγα λόγια τα ειδικά σύμβολα που χρησιμοποιούνται στις ΚΕ και θα δώσουμε λίγα παραδείγματα για την χρήση τους. Έτσι στις ΚΕ μπορούμε να ορίσουμε το «ή» μεταξύ χαρακτήρων κλείνοντας τους μεταξύ των «[«και «]». Αν θέλουμε να πούμε «δ» ή «Δ», δίνουμε την ΚΕ: /[δδ]/ : /[δδ]/ δ ή Δ Χρησιμοποιούσαν δόρυ. /[δδ]όρυ/ δόρυ ή Δόρυ Χρησιμοποιούσαν δόρυ. /[ηιυ]/ η, ι, ή υ Χρησιμοποιούσαν δόρυ. /[1234567890]/ όποιο ψηφίο Πριν 3.000 χρόνια. 16

Μέσα στα «[» και «]» μπορεί να χρησιμοποιηθεί και το «εύρος». Δηλαδή, αν θέλουμε να πούμε «οποιοδήποτε ψηφίο του δεκαδικού συστήματος» αντί να γράψουμε /[0123456789]/ μπορούμε να πούμε /[0-9]/. Το ίδιο και για τα γράμματα της αλφαβήτου. Θα πρέπει να επισημάνουμε ότι τα φωνήεντα με τόνο ή διαλυτικά θα πρέπει να ορίζονται ξεχωριστά αφού για τον υπολογιστή αντιστοιχούν σε διαφορετικούς χαρακτήρες: /[Α-Ω]/ όποιο κεφαλαίο (άτονο) Το γλυπτό βρέθηκε. /[α-ω]/ όποιο μικρό (άτονο) Η μάχη χάθηκε. /[0-9]/ όποιο ψηφίο Τον 5 ο αιώνα. Το σύμβολο «^» (carret), όταν χρησιμοποιείται σαν πρώτος χαρακτήρας μέσα στις «[» και «]» σημαίνει «όχι». Σε οποιαδήποτε άλλη θέση μέσα στα «[«και «]» σημαίνει τον εαυτό του και μπορεί να χρησιμοποιηθεί ώστε να ταιριάξουμε κάτι στην αρχή μίας γραμμής: /[^α]/ όχι «α» Το μικρότερο άγαλμα. /[^Α-Ω]/ όχι κεφαλαίο Το μικρότερο άγαλμα. /[^οο]/ όχι «ο» ή «Ο» Το μικρότερο άγαλμα. /[η^ι]/ «η» ή «^» ή «ι» γράφοντας «^». Όταν ο χαρακτήρας «?» έπεται κάποιου άλλου χαρακτήρα, σημαίνει ότι ο χαρακτήρας που προηγείται μπορεί να υπάρχει αλλά μπορεί και όχι, ή αλλιώς μηδέν ή μία εμφάνιση του χαρακτήρα που προηγείται: /σπίτια?/ «σπίτι» ή «σπίτια» Το μεγαλύτερο σπίτι. /Αθήνας?/ «Αθήνα» ή «Αθήνας» Στην περιοχή της σημερινής Αθήνας. 17

Το αστέρι του Kleene «*» (Kleene, 1956) χρησιμοποιείται για να δηλώσει μηδέν ή παραπάνω εμφανίσεις του χαρακτήρα που προηγείται: /ε*/ 0 ή παραπάνω «ε» Εεεε! /[αε]*/ 0 ή παραπάνω «α» ή «ε» Αααεε! / [0-9]*/ 0 ή παραπάνω ψηφία Το 330π.χ. Το «+» του Kleene χρησιμοποιείται για να δηλώσει μία ή παραπάνω εμφανίσεις του χαρακτήρα που προηγείται: /[0-9]+/ ένα ή παραπάνω ψηφία Γύρω στο 450. /Αμε+!/ «Αμε!» ή «Αμεε!» ή «Αμεεε!» Αμεεεε! Η τελεία «.» χρησιμοποιείται για να δηλώσει οποιοδήποτε χαρακτήρα (wildcard) εκτός του carriage return: /μικρ.ς/ «μικρής» ή «μικρός» ή..υπήρξε από τις πιο μικρές.. /ξανά.*ξανά/ το «ξανά» δύο φορές στην γραμμή Έγινε ξανά και ξανά. Το «^» δηλώνει αρχή γραμμής, ενώ το «$» τέλος γραμμής: /^Μετά/ γραμμές που αρχίζουν με «Μετά» Μετά την μάχη.. /αιώνα$/ γραμμές που τελειώνουν με «αιώνα»..περασμένου αιώνα /^Επίλογος$/ γραμμές που περιέχουν μόνο «Επίλογος» Επίλογος Το «\b» δηλώνει όριο λέξης, ενώ το «\Β» μη όριο λέξης: 18

/\bανά\b/ «ανά» αλλά όχι «ανάμεσα»..ανά τον κόσμο... /\bυπό\b/ «υπό» σαν πρώτο συνθετικό Η πρώτη υπόσχεση δόθηκε.. Το διαζευκτικό (disjunction) χρησιμοποιείται για να δηλώσει το «ή» μεταξύ ακολουθιών χαρακτήρων: /μάχη πόλεμο/ «μάχη» ή «πόλεμος» Στη δεύτερη μάχη.. /χρυσ(ών ούς)/ χρυσών ή χρυσούς..χρυσών κοσμημάτων.. Η σειρά που ακολουθεί δίνει τις προτεραιότητες μεταξύ των τελεστών: Παρένθεση () Μετρητές (counters) * +? [] Ακολουθίες και τα «^» και «$» (anchors) τέλος ^εγώ εσείς$ To διαζευκτικό Πρέπει να σημειώσουμε ότι οι ΚΕ «απλώνονται» όσο μπορούν κατά το ταίριασμα (patterns are greedy). Έτσι η ΚΕ: /[α-ω]*/ εφαρμοσμένη στην γραμμή «μετά το τέλος» ταιριάζει στο «μετά» και όχι στο «μ» το «με» ή το «μετ». Κάποιοι επιπλέον τελεστές που θα έπρεπε να αναφερθούν είναι οι παρακάτω: \n νέα γραμμή (newline) \t tab {n} n εμφανίσεις του χαρακτήρα ή ακολουθίας χαρακτήρων που προηγείται {n,m} από n έως m εμφανίσεις του χαρακτήρα ή ακολουθίας χαρακτήρων που προηγείται {n,} τουλάχιστον n εμφανίσεις του χαρακτήρα ή ακολουθίας χαρακτήρων που προηγείται 19

/Α{3}/ 3 Α ΑΑΑ! /!{1,4}/ 1 μέχρι 4! Ααα!!! /[0-9]{2,} πάνω από 2 ψηφία Πριν το 600 π.χ.. Επίσης, να σημειώσουμε ότι τo «\» άρει την ειδική ερμηνεία των συμβόλων. \* * Τ*Ε*Λ*Ο*Σ \.. Το 340 π.χ. \?? Any comments? \n newline \t tab 20