Ανακατεύθυνση Εισόδου/Εξόδου και Διασωλήνωση στο Λειτουργικό Σύστημα UNIX

Σχετικά έγγραφα
Είσοδος/Έξοδος (I/O) Παράδειγμα Δένδρου Συστήματος Αρχείων. Ανακατεύθυνση Εισόδου/Εξόδου και Διασωλήνωση στο Λειτουργικό Σύστημα UNIX

Εντολές Διαχείρισης Αρχείων στο Λειτουργικό Σύστημα UNIX

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

Εντολές του Λειτουργικού Συστήματος UNIX

Δικαιώματα Πρόσβασης στο Λειτουργικό Σύστημα UNIX

Δικαιώματα Πρόσβασης στο Λειτουργικό Σύστημα UNIX. Χρήστες και Ομάδες στο Unix. Δικαιώματα στο Unix. Παράδειγμα Δένδρου Συστήματος Αρχείων

Το Σύστημα Αρχείων του UNIX

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

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

Εισαγωγή στο Λειτουργικό Σύστημα UNIX

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

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

Διαδικαστικά. Εισαγωγή στο Λειτουργικό Σύστημα UNIX. Διαδικαστικά. Τι είναι το Λειτουργικό Σύστημα

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

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

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

Εντολζς του Λειτουργικοφ Συστήματος UNIX

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

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

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

Η εντολή ln. σύνδεση με την πραγματική καταχωρημένη πληροφορία. περισσότερα ονόματα (συνδέσεις). Τα επιπλέον ονόματα δημιουργούνται με

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

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

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

Κεφάλαιο 4: Λογισμικό Συστήματος

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

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

Προγραμματισμό για ΗΜΥ

ΤΜΗΜΑ Δ1 ΕΡΓΑΣΙΑ : ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ ΜΕ ΕΙΚΟΝΕΣ ΟΜΑΔΑ PC 5

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

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

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

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

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

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

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

Κεφάλαιο 3 Λειτουργικά Συστήματα Β ΕΠΑΛ

Κεφάλαιο 4. Λογισμικό Συστήματος

Οδηγίες Εγκατάστασης και Χρήσης Ψηφιακών Πιστοποιητικών

Σχολ.έτος Κεφάλαιο 5 ο Γνωριμία με το Λογισμικό του Υπολογιστή.

Εργαστηριακή Άσκηση 14

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

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

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

Λιβανός Γιώργος Εξάμηνο 2017Β

Μάθημα 10 ο ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (INPUT/OUTPUT)

Οδηγός χρήσης. EurobankTrader Mobile (για κινητά τηλέφωνα)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Βασικές Έννοιες της Πληροφορικής

Διάλεξη 18η: Διαχείρηση Αρχείων

MK Prosopsis Ltd - Assistive Technology Products & Services

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Διαδικτυακές Εφαρμογές Ενότητα 4: Streams

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

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

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

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

Προτεινόμενες εργασίες Προγραμματισμού Διαδικτύου

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

S, (5, -3, 34, -23, 7) ( *, _

Χρήση του διακόπτη /D για αλλαγή της τρέχουσας μονάδας δίσκου πέραν της αλλαγής τρέχοντος καταλόγου για μια μονάδα δίσκου.

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός I (Θ)

8 FORTRAN 77/90/95/2003

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

Το Υλικό Μέρος του Υπολογιστή

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

Δημιουργία, εμφάνιση, μέτρηση πλήθους γραμμών, λέξεων και χαρακτήρων αρχείων κειμένου στο Λ/Σ Unix

«Συστήματα Υποστήριξης Αποφάσεων» «Εφαρμογή Υποστήριξης Απόφασης με την Μέθοδο Ιεραρχικής Ανάλυσης Αποφάσεων AHP»

Αντιγραφή με χρήση της γυάλινης επιφάνειας σάρωσης

Εισαγωγή στους Υπολογιστές

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

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

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

Ανακύκλωσε το Computer Game σε Scratch

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

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

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

Ανάπτυξη εφαρμογής Input-Output

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

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

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

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

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

Περιπτώσεις αλλαγής Λογιστικού Σχεδίου.

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

Οντοκεντρικός Προγραμματισμός

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

Μεταγλωττιστές Ενότητα 1: Εισαγωγή

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

Transcript:

Ανακατεύθυνση Εισόδου/Εξόδου και Διασωλήνωση στο Λειτουργικό Σύστημα UNIX Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΙ Ηπείρου Διδάσκων: Δημήτριος Λιαροκάπης Διαφάνειες: Γρηγόριος Τζώρτζης Ακ. Έτος 2013-2014

Παράδειγμα Δένδρου Συστήματος Αρχείων Στα παραδείγματα που ακολουθούν υποθέτουμε την παρακάτω δενδρική δομή Αρχείο Κατάλογος Τρέχων Κατάλογος

Είσοδος/Έξοδος (I/O) Τα προγράμματα δέχονται δεδομένα μέσω κάποιων εισόδων και αφού τα επεξεργαστούν, εναποθέτουν τα αποτελέσματα στις εξόδους Ως προγράμματα λογίζονται και οι εντολές του Unix Συνήθως η είσοδος δεδομένων γίνεται από το πληκτρολόγιο και η έξοδος των αποτελεσμάτων στην οθόνη Κάθε εκτελούμενο πρόγραμμα στο Unix ανοίγει τρία αρχεία: Το standard input Το standard output Το standard error

Είσοδος/Έξοδος (I/O) Το standard input είναι η πιο κοινή είσοδος για ένα πρόγραμμα, η οποία απουσία άλλου καθορισμού αντιστοιχεί στο πληκτρολόγιο Το standard output είναι η πιο κοινή έξοδος για ένα πρόγραμμα, η οποία απουσία άλλου καθορισμού αντιστοιχεί στην οθόνη Το standard error είναι μία ακόμη κοινή έξοδος για ένα πρόγραμμα, η οποία απουσία άλλου καθορισμού αντιστοιχεί στην οθόνη Στο standard error εναποτίθενται τα διαγνωστικά μηνύματα του Unix

Είσοδος/Έξοδος (I/O) Στο Unix μπορούμε πολύ εύκολα να καθορίσουμε τα standard input, standard output, standard error και γενικότερα τις εισόδους και τις εξόδους να αντιστοιχούν σε αρχεία, αντί των προκαθορισμένων συσκευών. Η διαδικασία αυτή καλείται ανακατεύθυνση εισόδου/εξόδου (I/O redirection).

Ανακατεύθυνση Εισόδου Έστω το πρόγραμμα prog. H ανακατεύθυνση για το standard input γίνεται με χρήση του συμβόλου < ως εξής: prog < <αρχείο> Το παραπάνω σημαίνει: εκτέλεσε το πρόγραμμα prog και αντιστοίχησε το standard input αντί του πληκτρολογίου στο αρχείο <αρχείο>, δηλαδή πάρε είσοδο από το <αρχείο> π.χ. Έστω το πρόγραμμα mail το οποίο αποστέλλει με e- mail το κείμενο που ο χρήστης εισάγει από το πληκτρολόγιο. Αν το e-mail είναι γραμμένο στο αρχείο file, ο χρήστης μπορεί να το αποστείλει χωρίς να το ξανάπληκτρολογήσει ως εξής: mail < file

Ανακατεύθυνση Εισόδου - Παράδειγμα tail -2 <../job.txt Οθόνη job.txt apple

Ανακατεύθυνση Εξόδου Έστω το πρόγραμμα prog. H ανακατεύθυνση του standard output γίνεται με χρήση του συμβόλου > ως εξής: prog > <αρχείο> Το παραπάνω σημαίνει: εκτέλεσε το πρόγραμμα prog και αντιστοίχησε το standard output αντί της οθόνης στο αρχείο <αρχείο> Το παραπάνω έχει ως αποτέλεσμα τη δημιουργία ενός αρχείου στη θέση που καθορίζει το όνομα διαδρομής <αρχείο>, το οποίο περιέχει την έξοδο του prog Αν το αρχείο προϋπάρχει, καταστρέφετε και τη θέση του παίρνει το καινούριο Προσοχή: Η έξοδος δεν εμφανίζεται στην οθόνη

Ανακατεύθυνση Εξόδου Εναλλακτικά, η ανακατεύθυνση του standard output γίνεται με χρήση του συμβόλου >> ως εξής: prog >> <αρχείο> Το παραπάνω σημαίνει: εκτέλεσε το πρόγραμμα prog και αντιστοίχησε το standard output αντί της οθόνης στο αρχείο <αρχείο> Η διαφορά με την προηγούμενη περίπτωση είναι ότι αν το αρχείο προϋπάρχει δεν καταστρέφεται, αλλά το αποτέλεσμα της εξόδου του prog τοποθετείται στο τέλος του υπάρχοντος αρχείου Προσοχή: Η έξοδος δεν εμφανίζεται στην οθόνη

Ανακατεύθυνση Εξόδου Για να ανακατευθύνουμε το standard error για το πρόγραμμα prog χρησιμοποιούμε το σύμβολο 2> ως εξής: prog 2> <αρχείο> Το παραπάνω σημαίνει: εκτέλεσε το πρόγραμμα prog και αντιστοίχησε το standard error αντί της οθόνης στο αρχείο <αρχείο> Το παραπάνω έχει ως αποτέλεσμα τη δημιουργία ενός αρχείου στη θέση που καθορίζει το όνομα διαδρομής <αρχείο>, το οποίο περιέχει τα διαγνωστικά μηνύματα του prog Αν το αρχείο προϋπάρχει, καταστρέφετε και τη θέση του παίρνει το καινούριο. Για να μην γίνει αυτό πρέπει αντί του συμβόλου 2> να χρησιμοποιήσουμε το 2>> Προσοχή: Τα διαγνωστικά μηνύματα δεν εμφανίζονται στην οθόνη

Ανακατεύθυνση Εξόδου - Παράδειγμα ls l.. > /home/tele2/new new drwx------ 3 tele1 teiep 512 Apr 2 14:11 photos -rwxr-xr-x 1 tele1 teiep 371 May 4 1996 job.txt

Ανακατεύθυνση Εξόδου - Παράδειγμα tail -2../job.txt > /etc/ppp/work/new job.txt apple new

Ανακατεύθυνση Εξόδου - Παράδειγμα head -1../job.txt >>../job.txt job.txt apple apple

Συνδυασμός Ανακατεύθυνσης Εισόδου και Εξόδου Για να ανακατευθύνουμε ταυτόχρονα το standard input και το standard output για το πρόγραμμα prog γράφουμε: prog < <αρχείο1> > <αρχείο2> Το παραπάνω αντιστοιχεί το standard input στο <αρχείο1> και το standard output στο <αρχείο2> Εναλλακτικά: prog < <αρχείο1> >> <αρχείο2> Με αυτόν τον τρόπο αν το <αρχείο2> προϋπάρχει δεν καταστρέφεται

Συνδυασμός Ανακατεύθυνσης Εισόδου και Εξόδου Για να ανακατευθύνουμε ταυτόχρονα το standard input, το standard output και το standard error για το πρόγραμμα prog γράφουμε: prog < <αρχείο1> > <αρχείο2> 2> <αρχείο3> Το παραπάνω αντιστοιχεί το standard input στο <αρχείο1>, το standard output στο <αρχείο2> και το standard error στο <αρχείο3> Εναλλακτικά: prog < <αρχείο1> >> <αρχείο2> 2>> <αρχείο3> Με αυτόν τον τρόπο αν τα <αρχείο2> και <αρχείο3> προϋπάρχουν δεν καταστρέφονται

Συνδυασμός Ανακατεύθυνσης Εισόδου και Εξόδου - Παράδειγμα tail -2 <../job.txt > /etc/ppp/work/new job.txt apple new

Διασωλήνωση Η διασωλήνωση (piping) είναι μία τεχνική που επιτρέπει η έξοδος ενός προγράμματος να γίνει είσοδος για ένα άλλο Η διασωλήνωση πραγματοποιείται με χρήση του συμβόλου (pipe) ως εξής: prog1 prog2 Το παραπάνω σημαίνει: εκτέλεσε το πρόγραμμα prog1 και την έξοδο που θα παράγει θέσε την ως είσοδο για το prog2 Προσοχή: Mόνο η έξοδος του prog2 εμφανίζεται

Διασωλήνωση Μπορούμε να συνδέσουμε με διασωλήνωση περισσότερα από δύο προγράμματα ως εξής: prog1 prog2 prog(ν-1) progν Το παραπάνω σημαίνει: εκτέλεσε το πρόγραμμα prog1 και την έξοδο που θα παράγει θέσε την ως είσοδο για το prog2, την έξοδο που θα παράγει το prog2 θέσε την ως είσοδο για το prog3,, την έξοδο που θα παράγει το prog(ν-1) θέσε την ως είσοδο για το progν Προσοχή: Η έξοδος των prog1, prog2,, prog(ν-1) δεν εμφανίζεται, παρά μόνο του progν Η διασωλήνωση είναι ένας τρόπος με τον οποίο μπορούμε να συνδυάσουμε εντολές, ώστε να προκύψουν νέες σύνθετες εντολές

Διασωλήνωση και Ανακατεύθυνση Εισόδου/Εξόδου Μία έκφραση που περιέχει διασωλήνωση μπορεί να γραφεί ισοδύναμα με χρήση της ανακατεύθυνσης εισόδου/εξόδου Η έκφραση: prog1 prog2 prog(ν-1) progν είναι ισοδύναμη με την: prog1 > <αρχείο1> prog2 < <αρχείο1> > <αρχείο2> prog(ν-1) < <αρχείο(ν-2)> > <αρχείο(ν-1)> progν < <αρχείο(ν-1)> rm <αρχείο1> <αρχείο(n-1)>

job.txt apple Διασωλήνωση - Παράδειγμα tail -3../job.txt head -1 tail -3 Ενδιάμεσο Αποτέλεσμα Μη ορατό στο χρήστη head -1 Οθόνη -Άρα η εντολή εμφανίζει την πρώτη γραμμή από τις τρεις τελευταίες του αρχείου -Το παραπάνω μπορεί να γραφεί και ως: tail -3../job.txt > /home/tmp head -1 < /home/tmp rm /home/tmp

job.txt apple Διασωλήνωση - Παράδειγμα tail -3../job.txt head -2 wc -w tail -3 Ενδιάμεσο Αποτέλεσμα Μη ορατό στο χρήστη head -2 -Άρα η εντολή εμφανίζει το πλήθος λέξεων των δύο πρώτων γραμμών από τις τρεις τελευταίες του αρχείου -Το παραπάνω μπορεί να γραφεί και ως: tail -3../job.txt > /home/tmp head -2 < /home/tmp > /home/tmp2 wc w < /home/tmp2 rm /home/tmp /home/tmp2 Μη ορατό στο χρήστη Ενδιάμεσο Αποτέλεσμα Οθόνη 3 wc -w

Διασωλήνωση - Παράδειγμα tail -3../job.txt head -1 > /etc/ppp/work/new job.txt apple tail -3 -Άρα η εντολή αποθηκεύει την πρώτη γραμμή από τις τρεις τελευταίες του αρχείου job.txt στο αρχείο new -Το παραπάνω μπορεί να γραφεί και ως: tail -3../job.txt > /home/tmp head -1 < /home/tmp > /etc/ppp/work/new rm /home/tmp Ενδιάμεσο Αποτέλεσμα Μη ορατό στο χρήστη head -1 new