Οι περισσότερες διεργασίες που ξεκινούν από εντολές UNIX γράφουν στην τυπική έξοδο (δηλαδή, γράφουν στην οθόνη του τερματικού) και πολλές παίρνουν την είσοδό τους από την τυπική είσοδο (δηλαδή τη διαβάζουν από το πληκτρολόγιο). Υπάρχει επίσης το τυπικό σφάλμα, όπου οι διεργασίες γράφουν τα μηνύματα σφάλματός τους, από προεπιλογή, στην οθόνη του τερματικού.
Έχουμε ήδη δει μια χρήση της εντολής cat για την εγγραφή των περιεχομένων ενός αρχείου στην οθόνη.
Τώρα πληκτρολογήστε cat χωρίς να καθορίσετε ένα αρχείο για ανάγνωση
% cat
Στη συνέχεια, πληκτρολογήστε μερικές λέξεις στο πληκτρολόγιο και πατήστε το πλήκτρο [Επιστροφή].
Τέλος, κρατήστε πατημένο το πλήκτρο [Ctrl] και πατήστε [d] (γραμμένο ως ^ D για συντομία) για να τερματίσετε την είσοδο.
Τι έχει συμβεί?
Εάν εκτελέσετε την εντολή cat χωρίς να καθορίσετε ένα αρχείο προς ανάγνωση, διαβάζει την τυπική είσοδο (το πληκτρολόγιο) και μόλις λάβει το «τέλος αρχείου» (^ D), το αντιγράφει στην τυπική έξοδο (στην οθόνη).
Στο UNIX, μπορούμε να ανακατευθύνουμε τόσο την είσοδο όσο και την έξοδο των εντολών.
Χρησιμοποιούμε το σύμβολο > για να ανακατευθύνουμε την έξοδο μιας εντολής. Για παράδειγμα, για να δημιουργήσετε ένα αρχείο που ονομάζεται list1 που περιέχει μια λίστα με φρούτα, πληκτρολογήστε
% cat > list1
Στη συνέχεια, πληκτρολογήστε τα ονόματα ορισμένων φρούτων. Πατήστε [Επιστροφή] μετά από κάθε ένα.
pear
banana
apple
^D {this means press [Ctrl] and [d] to stop}
Αυτό που συμβαίνει είναι ότι η εντολή cat διαβάζει την τυπική είσοδο (το πληκτρολόγιο) και το> ανακατευθύνει την έξοδο, η οποία συνήθως πηγαίνει στην οθόνη, σε ένα αρχείο που ονομάζεται list1
Για να διαβάσετε τα περιεχόμενα του αρχείου, πληκτρολογήστε
% cat list1
Άσκηση 3α
Χρησιμοποιώντας την παραπάνω μέθοδο, δημιουργήστε ένα άλλο αρχείο που ονομάζεται list2 που περιέχει τα ακόλουθα φρούτα: πορτοκάλι, δαμάσκηνο, μάνγκο, γκρέιπφρουτ. Διαβάστε τα περιεχόμενα της λίστας 2
3.2.1 Προσάρτηση σε αρχείο
Η φόρμα >> προσθέτει την τυπική έξοδο σε ένα αρχείο. Έτσι, για να προσθέσετε περισσότερα στοιχεία στη λίστα αρχείων1, πληκτρολογήστε
% cat >> list1
Στη συνέχεια, πληκτρολογήστε τα ονόματα περισσότερων φρούτων
ροδάκινο
σταφύλι
πορτοκάλι
^ D (Έλεγχος D για διακοπή)
Για να διαβάσετε τα περιεχόμενα του αρχείου, πληκτρολογήστε
% cat list1
Θα πρέπει τώρα να έχετε δύο αρχεία. Το ένα περιέχει έξι φρούτα, το άλλο περιέχει τέσσερα φρούτα.
Τώρα θα χρησιμοποιήσουμε την εντολή cat για να συνδέσουμε (συνενώσουμε) τις list1 και list2 σε ένα νέο αρχείο που ονομάζεται biglist. Τύπος
% cat list1 list2 > biglist
Αυτό που κάνει είναι να διαβάζει τα περιεχόμενα της λίστας1 και της λίστας2 με τη σειρά της και μετά να εξάγει το κείμενο στη λίστα αρχείων
Για να διαβάσετε τα περιεχόμενα του νέου αρχείου, πληκτρολογήστε
% cat biglist
3.3 Ανακατεύθυνση της εισόδου
Χρησιμοποιούμε το < symbol για να ανακατευθύνουμε την είσοδο μιας εντολής.
Η εντολή ταξινόμηση αλφαβητικά ή αριθμητικά ταξινομεί μια λίστα. Τύπος
% sort
Στη συνέχεια, πληκτρολογήστε τα ονόματα ορισμένων ζώων. Πατήστε [Επιστροφή] μετά από κάθε ένα.
dog
cat
bird
ape
^D (control d to stop)
Η έξοδος θα είναι
ape
bird
cat
dog
Χρησιμοποιώντας το <μπορείτε να ανακατευθύνετε την είσοδο ώστε να προέρχεται από ένα αρχείο και όχι από το πληκτρολόγιο. Για παράδειγμα, για να ταξινομήσετε τη λίστα με τα φρούτα, πληκτρολογήστε
% sort < biglist
και η ταξινομημένη λίστα θα βγει στην οθόνη.
Για έξοδο της ταξινομημένης λίστας σε ένα αρχείο, πληκτρολογήστε
% sort < biglist > slist
Χρησιμοποιήστε το cat για να διαβάσετε τα περιεχόμενα της λίστας αρχείων
3,4 σωλήνες
Για να δείτε ποιος είναι μαζί σας στο σύστημα, πληκτρολογήστε
% who
Μια μέθοδος για να λάβετε μια ταξινομημένη λίστα ονομάτων είναι να πληκτρολογήσετε,
% who > names.txt
% sort < names.txt
Αυτό είναι λίγο αργό και πρέπει να θυμάστε να αφαιρέσετε το προσωρινό αρχείο που ονομάζεται names όταν τελειώσετε. Αυτό που πραγματικά θέλετε να κάνετε είναι να συνδέσετε την έξοδο της εντολής who απευθείας στην είσοδο της εντολής ταξινόμησης. Αυτό ακριβώς κάνουν οι σωλήνες. Το σύμβολο για έναν σωλήνα είναι η κάθετη ράβδος |
Για παράδειγμα, πληκτρολόγηση
% who | sort
θα δώσει το ίδιο αποτέλεσμα όπως παραπάνω, αλλά πιο γρήγορο και καθαρό.
Για να μάθετε πόσοι χρήστες είναι συνδεδεμένοι, πληκτρολογήστε
% who | wc -l