Αγωγοί στο Unix [Unix Pipes]

Posted by superuser Sun, 10 Jun 2007 12:50:00 GMT

Οι αγωγοί (pipes) στο Unix επιτρέπουν με ευκολία να διευρύνουμε τις δυνατότητες εντολών που μπορούμε να δώσουμε από το κέλυφος. Στην ουσία pipes είναι αυτό που υποδηλώνει ακριβώς ο όρος. Είναι αγωγοί ή σωλήνες όπου στο ένα άκρο τους παίρνουν δεδομένα από την έξοδο μιας εντολής και τα μεταφέρουν στην είσοδο μιας άλλης εντολής. Τόσο απλά.

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

Ας δώσουμε ένα παράδειγμα:

$ cat arxeio.txt 

Η εντολή cat δίνει στην έξοδο (μόνιτορ) το περιεχόμενο του αρχείου arxeio.txt. Μέχρι εδώ δεν υπάρχει κάτι παράξενο. Ας υποθέσουμε τώρα πως θέλω από το κείμενο του αρχείου arxeio.txt να βρω όλες τις αναφορές στην λέξη "Greece". Η ιδέα μου είναι χρησιμοποιήσω έναν αγωγό που θα μεταφέρει τα δεδομένα εξόδου της εντολής cat arxeio.txt (στην ουσία το περιεχόμενο του αρχείου) στην είσοδο της εντολής grep Greece που θα ψάξει να βρει τις γραμμές στις οποίες υπάρχει ο όρος "Greece".
$ cat arxeio.txt | grep Greece 

Το σύμβολο | συμβολίζει έναν αγωγό. Σημαίνει πως τα δεδομένα εξόδου της εντολής που είναι στ'αριστερά του θα μεταφερθούν στην είσοδο της εντολής που είναι δεξιά του. Οι δυνατότητες των αγωγών είναι άπειρες και βάλτε τη φαντασία σας να δουλέψει. Ακολουθεί ένα ακόμη παράδειγμα. Η εντολή ls δίνει στην έξοδο της τα περιεχόμενα του τρέχοντος φακέλου, ενώ η εντολή sort τα ταξινομεί αλφαβητικά:

$ ls | sort

Ακόμη όμως δεν τελειώσαμε. Θα προσθέσουμε ακόμη μία σωλήνα. Τα δεδομένα εξόδου της πρώτης εντολής θα μεταφερθούν στην δεύτερη και αφού επεξεργασθούν θα οδηγηθούν στην είσοδο της τρίτης εντολής. Για παράδειγμα:

$ ls | grep Free | sort

Η εντολή ls δίνει στην έξοδο της τα περιεχόμενα του τρέχοντος φακέλου, απ'τα οποία η εντολή grep βρίσκει σε ποιες γραμμές περιέχεται ο όρος Free και τέλος αυτές τις γραμμές η εντολή sort της ταξινομεί αλφαβητικά.

Μπορείτε να ενώσετε όσες σωλήνες θέλετε μεταξύ εντολών. Δεν υπάρχουν όρια. Όποιος θέλει ας αφήσει το δικό του παράδειγμα σωληνώσεων με comment.

Posted in  | Tags , , , ,  | no comments

Βασικές Εντολές στο Unix

Posted by superuser Sat, 20 Jan 2007 05:21:00 GMT

Το Unix διαφέρει απ'τα υπόλοιπα λειτουργικά συστήματα στο ότι μέσω μιας απλής κονσόλας και ενός τερματικού θα μπορούσαμε να ελέγξουμε κάθε λειτουργία του συστήματος μας. Ακόμη κι αν έχουμε αποφασίσει να χρησιμοποιήσουμε τον υπολογιστή μας σαν σταθμό εργασίας (WorkStation) σε γραφικό περιβάλλον Χ, θα χρειαστούμε μερικές βασικές εντολές ελέγχου και πληροφόρησης του συστήματος μας. Μόλις συνδεθούμε σε ένα σύστημα Unix εμφανίζεται το prompt(προτροπή) - είναι ένα σύμβολο $ ή %. Την εντολή που πληκτρολογούμε, την διαβάζει το κέλυφος (shell) και την εκτελεί.

Επεξεργασία Καταλόγων

Δημιουργία καταλόγου

$ mkdir onoma-katalogoy


Διαγραφή κενού καταλόγου
$ rmdir onoma-kenou-katalogoy


Διαγραφή καταλόγου μαζί με το περιεχόμενο του (αρχεία,άλλοι κατάλογοι)
$ rm -r onoma-katalogoy-me-periehomeno


Εμφάνιση τρέχoντος καταλόγου
$ pwd


Εμφάνιση περιεχομένων τρέχοντος καταλόγου
$ ls -l


Εμφάνιση περιεχομένων συγκεκριμένου καταλόγου
$ ls -l onoma-katalogoy


Μεταφορά σε συγκεκριμένο κατάλογο
$ cd onoma-katalogoy 


Σημ: Σε όλες τις παραπάνω εντολές αντί για όνομα καταλόγου μπορούμε να δώσουμε την πλήρη ή μερική τοποθεσία του καταλόγου (/ekei/pou/einai/o/katalogos-mou)

Επεξεργασία Αρχείων

Δημιουργία αρχείου

Χρησιμοποιείστε τον αγαπημένο κειμενογράφο σας & σώστε το αρχείο


Διαγραφή αρχείου
$ rm onoma-arxeiou


Αντιγραφή αρχείου
$ cp onoma-yparxontos-arxeiou  onoma-neou-arxeiou


Αντιγραφή περισσοτέρων αρχείων σε ένα κατάλογο
$ cp onoma-1-arxeiou  onoma-2-arxeiou  onoma-katalogoy


Αποκοπή αρχείου
$ mv onoma-yparxontos-arxeiou  onoma-neou-arxeiou


Αποκοπή περισσοτέρων αρχείων και μεταφορά σε φάκελο
$ mv onoma-1-arxeiou  onoma-2-arxeiou  onoma-katalogoy


Εμφάνιση περιεχομένου αρχείου
$ cat onoma-arxeiou 


Εμφάνιση περιεχομένου αρχείου ανά σελίδα
$ cat onoma-arxeiou | more 


Posted in  | Tags , ,  | no comments