Όταν εκτελείτε μια εντολή σε ένα παράθυρο τερματικού, η έξοδος της εντολής εκτυπώνεται κανονικά στο τερματικό ή στην οθόνη, ώστε να μπορείτε να την διαβάσετε αμέσως. Μπορείτε επίσης να εκτυπώσετε την έξοδο μιας εντολής σε ένα αρχείο, εάν θέλετε να το αποθηκεύσετε.
Η αποθήκευση της εξόδου μιας εντολής σε ένα αρχείο είναι χρήσιμη αν προσπαθείτε να διαγνώσετε ένα πρόβλημα. Για να λάβετε βοήθεια από τεχνική υποστήριξη, ίσως χρειαστεί να εκτελέσετε ορισμένες εντολές στον υπολογιστή σας και να στείλετε τα αποτελέσματα στην ομάδα υποστήριξης. Αυτό είναι εύκολο με τη χρήση της ανακατεύθυνσης εξόδου στη γραμμή εντολών.
Σήμερα θα καλύψουμε τον τρόπο αποστολής της εξόδου μιας εντολής σε ένα αρχείο κειμένου στο κέλυφος bash σε Windows, Mac και Linux.
Σημείωση: Θα χρησιμοποιήσουμε το Mac Terminal Αυτές οι έξι έξυπνες εντολές του τερματικού θα ενισχύσουν το MacBook Αυτές οι 6 απίστευτες εντολές του τερματικού θα ωθήσουν το MacBook Μπορείτε να γεμίζετε τόσο πολύ στο γραφικό περιβάλλον χρήστη πριν γίνει γεμάτο, έκπληξη ότι μπορείτε να κάνετε μερικά δροσερά πράγματα χρησιμοποιώντας το Mac Terminal. Διαβάστε περισσότερα στο παράδειγμά μας, αλλά λειτουργεί με τον ίδιο τρόπο στο κέλυφος bash στο Linux 40+ Οι πλέον χρησιμοποιούμενες εντολές του τερματικού Linux 40+ Οι πιο χρησιμοποιούμενες εντολές του τερματικού Linux Είτε είστε απλώς ξεκίνημα ή απλά περίεργος για το τερματικό Linux, εδώ είναι τις πιο συνηθισμένες εντολές που θα σας μεταφέρουν όλη την ώρα σας στο Linux. Διαβάστε περισσότερα και στο νέο κέλυφος bash στα Windows 10 Ένας γρήγορος οδηγός για Linux Bash Shell στα Windows 10 Ένας γρήγορος οδηγός για το Linux Bash Shell στα Windows 10 Τώρα μπορείτε να τρέξετε το Linux στα Windows. Μάθετε περισσότερα για το Bash στα Windows, από το πώς και γιατί πρέπει να το εγκαταστήσετε, σε κρυφές λειτουργίες που πιθανώς δεν γνωρίζατε. Διαβάστε περισσότερα .
Επαναφορά της εξόδου σε ένα αρχείο μόνο
Υπάρχουν δύο χειριστές για την ανακατεύθυνση της εξόδου μιας εντολής σε ένα αρχείο αντί της οθόνης.
Το σύμβολο > δημιουργεί ένα νέο αρχείο αν δεν υπάρχει ή αντικαθιστά το αρχείο εάν υπάρχει ήδη. Το >> δημιουργεί επίσης ένα νέο αρχείο αν δεν υπάρχει, αλλά προσαρτά το κείμενο στο τέλος του αρχείου αν υπάρχει ήδη, αντί να αντικαταστήσει το αρχείο.
Σημείωση για τον εαυτό σας: όταν ανακατευθύνετε μια έξοδο σεναρίου κελύφους σε ένα αρχείο, δεν θα εμφανίζεται στην κονσόλα :-) #StupidMe
- Xavier Mertens; (@xme) 5 Αυγούστου 2017
Για να ανακατευθύνετε την έξοδο μιας εντολής σε ένα αρχείο, πληκτρολογήστε την εντολή, καθορίστε το χειριστή > ή το >> και μετά δώστε τη διαδρομή σε ένα αρχείο στο οποίο θέλετε να ανακατευθυνθεί η έξοδος. Για παράδειγμα, η εντολή ls απαριθμεί τα αρχεία και τους φακέλους στον τρέχοντα κατάλογο. Όταν εκτελείτε την ακόλουθη εντολή, η λίστα αρχείων και φακέλων θα εγγραφεί στο αρχείο ls_output.txt στο φάκελο TerminalOutput .
Αντικαταστήστε / path / to / file με την πλήρη διαδρομή στο αρχείο που θέλετε να χρησιμοποιήσετε.
ls>/path/to/file
Αυτή είναι η εντολή για το παράδειγμά μας.
ls>/Users/lorikaufman/TerminalOutput/ls_output.txt
Για να δείτε τα περιεχόμενα του αρχείου στο παράθυρο του τερματικού, χρησιμοποιήστε την εντολή cat όπως φαίνεται στην ακόλουθη εντολή. Και πάλι, αντικαταστήστε / path / to / file με την πλήρη διαδρομή προς το αρχείο που θέλετε να προβάλετε.
cat /path/to/file
Ο χειριστής > αντικαθιστά τα περιεχόμενα ενός υπάρχοντος αρχείου κάθε φορά που το χρησιμοποιείτε για την ανακατεύθυνση της εξόδου. Αν θέλετε να αποθηκεύσετε την έξοδο από πολλές εντολές σε ένα μόνο αρχείο, χρησιμοποιήστε τον χειριστή >> . Αυτό προσδένει την έξοδο μιας εντολής στο τέλος του καθορισμένου αρχείου, εάν υπάρχει ήδη. Εάν το αρχείο δεν υπάρχει, δημιουργεί ένα νέο.
Για παράδειγμα, θα προσθέσουμε πληροφορίες συστήματος στο τέλος του αρχείου που δημιουργήσαμε παραπάνω. Έτσι, στην επόμενη γραμμή, uname -a είναι η εντολή, ακολουθούμενη από τον χειριστή ανακατεύθυνσης >> . Στη συνέχεια, η πλήρης διαδρομή προς το αρχείο στο οποίο θέλουμε να προσαρμόσουμε την έξοδο της εντολής uname .
Η παράμετρος -a στην εντολή uname εκτυπώνει όλες τις διαθέσιμες πληροφορίες συστήματος.
uname -a>>/Users/lorikaufman/TerminalOutput/ls_output.txt
Για να δείτε το αρχείο με τις συνημμένες πληροφορίες στο παράθυρο του τερματικού, πληκτρολογήστε την ακόλουθη εντολή, με την πλήρη διαδρομή στο αρχείο σας.
cat /Users/lorikaufman/TerminalOutput/ls_output.txt
Επαναλάβετε αυτή τη διαδικασία όσες φορές χρειάζεται για να διατηρήσετε την προσθήκη της εξόδου εντολών στο τέλος του αρχείου.
Ακολουθεί ένα άλλο παράδειγμα αποστολής της εξόδου της εντολής ls ως δέντρο καταλόγου, με υποκαταλόγους που αναγράφονται αναδρομικά (η παράμετρος R ) και ένα αρχείο ανά γραμμή (η παράμετρος 1 ).
ls -1R>/Users/lorikaufman/TerminalOutput/dir_tree.txt
Στη συνέχεια, χρησιμοποιούμε την εντολή cat, όπως αναφέρθηκε προηγουμένως, για να δείτε τα περιεχόμενα του αρχείου στο παράθυρο του τερματικού.
cat /Users/lorikaufman/TerminalOutput/dir_tree.txt
Εκτυπώστε την έξοδο για προβολή και μεταφέρετε το σε ένα αρχείο
Οι χειριστές > και >> δεν εμφανίζουν την έξοδο μιας εντολής στην οθόνη. Η έξοδος αποστέλλεται μόνο σε ένα αρχείο.
Εάν θέλετε να στείλετε την έξοδο σε ένα αρχείο και να την δείτε στην οθόνη, χρησιμοποιήστε την εντολή tee αντί για τους χειριστές > και >> .
Μην ειδοποιείστε! Σήμερα ανακάλυψα την εντολή `tee`, η οποία διοχετεύει τόσο σε αρχείο όσο και σε πρότυπο. Το Unix συνεχίζει να χαίρεται. pic.twitter.com/aClIT8AdJB
- Zeke Sikelianos (@zeke) στις 29 Αυγούστου 2017
Για να χρησιμοποιήσετε την εντολή tee, πρέπει να διοχετεύσετε την έξοδο από την εντολή που εκτελείτε, όπως το ls, στην εντολή tee, χρησιμοποιώντας την χειριστή σωλήνων, μια κάθετη ράβδο ( | ). Για παράδειγμα, η ακόλουθη εντολή παίρνει την έξοδο της εντολής ls και την διοχετεύει στην εντολή tee . Η εντολή tee στέλνει τότε αυτή την έξοδο στην οθόνη και σε ένα αρχείο που καθορίζετε χρησιμοποιώντας την πλήρη διαδρομή στο αρχείο.
ls | tee /Users/lorikaufman/TerminalOutput/ls_output.txt
Η παραπάνω εντολή αντικαθιστά όλο το περιεχόμενο του αρχείου ή δημιουργεί ένα νέο αν δεν υπάρχει, όπως και ο χειριστής > . Χρησιμοποιήσαμε την ακόλουθη εντολή cat για να δείτε τα περιεχόμενα του αρχείου μας στο παράθυρο του τερματικού.
cat /Users/lorikaufman/TerminalOutput/ls_output.txt
Για να χρησιμοποιήσετε την εντολή tee για να εκτυπώσετε την έξοδο στην οθόνη και να την προσαρτήσετε στο τέλος ενός αρχείου, πληκτρολογήστε την ακόλουθη εντολή. Εδώ, προσθέτουμε τις πλήρεις πληροφορίες του συστήματος στο τέλος του αρχείου χρησιμοποιώντας την εντολή uname -a, ακριβώς όπως κάναμε με τον χειριστή >>, αλλά και την αποστολή της εξόδου στην οθόνη.
uname -a | tee -a /Users/lorikaufman/TerminalOutput/ls_output.txt
Η ακόλουθη εντολή είναι η έκδοση tee της εκτύπωσης ενός δέντρου καταλόγου ανάδρομα σε ένα αρχείο και στην οθόνη, ένα αρχείο σε κάθε γραμμή, όπως ακριβώς κάναμε και με τον χειριστή > .
ls -1R | tee /Users/lorikaufman/TerminalOutput/dir_tree.txt
Στη συνέχεια, χρησιμοποιούμε ξανά την εντολή cat για να δείτε τα περιεχόμενα του αρχείου.
cat /Users/lorikaufman/TerminalOutput/dir_tree.txt
Αλλά περιμένετε, υπάρχουν περισσότερα
Υπάρχουν πολλοί περισσότεροι τρόποι για να ανακατευθύνετε την έξοδο, συμπεριλαμβανομένων των σφαλμάτων, σε ένα αρχείο. Μπορείτε να διαβάσετε σχετικά με τους διαφορετικούς χειριστές και τις εντολές που χρησιμοποιούνται για την ανακατεύθυνση εξόδου στο κεφάλαιο Ανακατεύθυνση εισόδου / εξόδου του Οδηγού σύνταξης Bash Scripting. Μπορείτε επίσης να μάθετε περισσότερα σχετικά με τη χρήση της γραμμής εντολών Ένας σύντομος οδηγός για να ξεκινήσετε με τη γραμμή εντολών Linux Ένας γρήγορος οδηγός για να ξεκινήσετε με τη γραμμή εντολών Linux Μπορείτε να κάνετε πολλά εκπληκτικά πράγματα με εντολές στο Linux και είναι πραγματικά δύσκολο να μάθουν . Διαβάστε περισσότερα .
Έχω μάθει ένα καλό μάθημα σήμερα. Μην ανακατευθύνετε την έξοδο αρχείου καταγραφής 10 εκατομμυρίων επαναλήψεων για βρόχο σε αρχείο txt. Αποτέλεσμα: Αρχείο txt 5 gb.
- Lloyd (@ lcarswell1) 21 Μαΐου 2017
Τι χρησιμοποιείτε για την ανακατεύθυνση εξόδου; Ποια μέθοδος χρησιμοποιείτε; Έχετε μάθει άλλους τρόπους για την ανακατεύθυνση της εξόδου; Μοιραστείτε τις σκέψεις και τις εμπειρίες σας μαζί μας στα παρακάτω σχόλια.