Οι περισσότερες διεργασίες που ξεκινούν μέσω εντολών του UNIX γράφουν στην τυποποιημένη έξοδο (δηλ. στην οθόνη ή παράθυρο του τερματικού). Πολλές από αυτές τις εντολές παίρνουν την είσοδο τους από την τυποποιημένη είσοδο (δηλ, διαβάζουν από το πληκτρολόγιο). Εκτός από την τυποποιημένη είσοδο και έξοδο υπάρχει επίσης και η τυποποιημένη έξοδος σφάλματος όπου οι διεργασίες εμφανίζουν τα μηνύματα λάθους τους. Από προεπιλογή η έξοδος σφάλματος κατευθύνεται στην οθόνη η παράθυρο του τερματικού.
Έχουμε ήδη δει τη χρήση της εντολής cat με την οποία μπορούμε να εμφανίσουμε τα περιεχόμενα ενός αρχείου στην οθόνη.
Γράψτε τώρα την εντολή cat χωρίς να προσδιορίσετε κάποιο αρχείο που να διαβάσει:
% cat
Γράψτε έπειτα κάποιες λέξεις στο πληκτρολόγιο και πιέστε το πλήκτρο [Return.
Τέλος, πιέστε το πλήκτρο [Ctrl] και καθώς το κρατάτε, πιέστε το [d] (αυτό εν' συντομία γράφεται ^D) για να τερματίσετε την είσοδο.
Τι συνέβη;
Αν εκτελέσετε την εντολή cat χωρίς να καθορίσετε κάποιο αρχείο για να διαβάσει, διαβάζει την τυποποιημένη είσοδο (το πληκτρολόγιο) και μόλις λάβει το χαρακτήρα τέλους αρχείου (το ^D), αντιγράφει την είσοδο στην τυποποιημένη έξοδο (την οθόνη).
Στο UNIX έχουμε τη δυνατότητα να ανακατευθύνουμε τόσο την είσοδο όσο και την έξοδο των εντολών.
Χρησιμοποιούμε το σύμβολο > για να ανακατευθύνουμε την έξοδο μιας εντολής. Για παράδειγμα, για να δημιουργήσουμε ένα αρχείο με όνομα list1 το οποίο να περιέχει μια λίστα από φρούτα, πληκτρολογούμε:
% cat > list1
Γράψτε έπειτα τα ονόματα μερικών φρούτων. Πιέστε [Return] μετά από κάθε όνομα.
pear
banana
apple
^D {Αυτό σημαίνει [Ctrl] και [d] για τέλος}
Αυτό που συμβαίνει, είναι ότι η εντολή cat διαβάζει την τυποποιημένη είσοδο (το πληκτρολόγιο) και το > ανακατευθύνει την έξοδο - που φυσιολογικά είναι η οθόνη - σε ένα αρχείο με το όνομα list1
Για να διαβάσετε τα περιεχόμενα του αρχείου, πληκτρολογήστε:
% cat list1
Χρησιμοποιώντας την παραπάνω μέθοδο, δημιουργήστε ένα αρχείο με το όνομα list2 που να περιέχει τα παρακάτω φρούτα: πορτοκάλι, μανταρίνι, μάνγκο, γκρέιπφρουτ. Χρησιμοποιήστε την κατάλληλη εντολή για να διαβάσετε τα περιεχόμενα του list2
Χρησιμοποιώντας τη μορφή >> μπορείτε να προσθέσετε την τυποποιημένη έξοδο στο τέλος ενός ήδη υπάρχοντος αρχείου, χωρίς να διαγράψετε τα περιεχόμενα που έχει ήδη. Έτσι, για να προσθέσετε περισσότερες καταχωρίσεις στο αρχείο list1, πληκτρολογήστε:
% cat >> list1
Και έπειτα πληκτρολογήστε τα ονόματα περισσότερων φρούτων :)
peach
grape
orange
^D (Control D για τέλος εισόδου)
Για να διαβάσετε τα περιεχόμενα του αρχείου, πληκτρολογήστε:
% cat list1
Θα πρέπει να έχετε τώρα δύο αρχεία. Το ένα περιέχει έξι φρούτα, το άλλο περιέχει τέσσερα φρούτα.
Θα χρησιμοποιήσουμε τώρα την εντολή cat για να ενώσουμε (concatenate) τα δύο αρχεία, το list1 και το list2 σε ένα νέο αρχείο με το όνομα biglist. Πληκτρολογήστε:
% cat list1 list2 > biglist
Η εντολή αυτή διαβάζει τα περιεχόμενα των αρχείων list1 και list2 με τη σειρά που φαίνονται και γράφει την έξοδο στο αρχείο biglist
Για να διαβάσετε τα περιεχόμενα του νέου αρχείου, πληκτρολογήστε:
% cat biglist
Θα χρησιμοποιήσουμε το σύμβολο < για να ανακατευθύνουμε την είσοδο της εντολής.
Η εντολή sort ταξινομεί αλφαβητικά ή αριθμητικά μια λίστα. Πληκτρολογήστε:
% sort
Γράψτε έπειτα τα ονόματα μερικών ζώων. Πιέστε [Return] μετά από κάθε όνομα.
dog
cat
bird
ape
^D (control d για να σταματήσετε)
Η έξοδος θα μοιάζει με την παρακάτω:
ape
bird
cat
dog
Μπορείτε να χρησιμοποιήσετε το < για να ανακατευθύνετε την είσοδο ώστε να προέρχεται από ένα αρχείο αντί για το πληκτρολόγιο. Για παράδειγμα, για να ταξινομήσετε τη λίστα με τα φρούτα, πληκτρολογήστε:
% sort < biglist
και θα δείτε την ταξινομημένη λίστα στην οθόνη σας.
Για να γράψετε την ταξινομημένη λίστα σε ένα αρχείο, πληκτρολογήστε:
% sort < biglist > slist
Χρησιμοποιήστε την εντολή cat για να διαβάσετε τα περιεχόμενα του αρχείου slist
Για να δείτε ποιος άλλος είναι συνδεδεμένος στο σύστημα μαζί με εσάς, πληκτρολογήστε:
% who
Μια μέθοδος για να δείτε αυτή τη λίστα ονομάτων ταξινομημένη, είναι να πληκτρολογήσετε:
% who > names.txt
% sort < names.txt
Αυτό είναι κάπως αργό, και θα πρέπει επίσης να θυμηθείτε να διαγράψετε το προσωρινό αρχείο names.txt όταν τελειώσετε. Αυτό που στην πραγματικότητα θέλετε να κάνετε, είναι να ενώσετε με κάποιο τρόπο την έξοδο της εντολής who με την είσοδο της εντολής sort. Αυτό ακριβώς κάνουν οι σωληνώσεις. Το σύμβολο της σωλήνωσης είναι η κάθετη μπάρα |
Για παράδειγμα, πληκτρολογήστε:
% who | sort
και θα πάρετε το ίδιο αποτέλεσμα με το παραπάνω, αλλά πιο γρήγορα και καθαρά.
Για να βρείτε πόσοι χρήστες βρίσκονται αυτή τη στιγμή στο σύστημα, πληκτρολογήστε:
% who | wc -l
Χρησιμοποιώντας σωληνώσεις, δείξτε όλες τις γραμμές των αρχείων list1 και list2 που περιέχουν το γράμμα 'p' και ταξινομήστε το αποτέλεσμα.
| Εντολή | Σημασία |
|---|---|
| command > file | Ανακατεύθυνση τυποποιημένης εξόδου σε αρχείο |
| command >> file | Προσθήκη τυποποιημένης εξόδου στο τέλος υπάρχοντος αρχείου |
| command < file | Ανακατεύθυνση τυποποιημένης εισόδου από αρχείου |
| command1 | command2 | Σωλήνωση της εξόδου της command1 στην είσοδο της command2 |
| cat file1 file2 > file0 | Συνένωση των αρχείων file1 και file2 στο file0 |
| sort | Ταξινόμηση δεδομένων |
| who | Λίστα χρηστών που είναι συνδεδεμένοι στο σύστημα τη δεδομένη στιγμή |
M.Stonebank@surrey.ac.uk, © 9th October 2000