Αν ξοδεύετε πολύ χρόνο στο Linux, είναι λογικό να μάθετε πώς μπορείτε να βελτιστοποιήσετε τη χρήση των επιλογών της γραμμής εντολών - ειδικά τον χρόνο που πληρώνετε για την πληκτρολόγηση εντολών. Οι περισσότεροι χρήστες Linux γνωρίζουν το βασικό ιστορικό γραμμής εντολών Linux. Ο απλούστερος τρόπος για να αποφύγετε να πληκτρολογείτε μια εντολή είναι να πατήσετε το πλήκτρο βέλους μέχρι να βρείτε την εντολή σας ή να χρησιμοποιήσετε το απλό !! για την τελευταία εκτελεσθείσα εντολή. Σήμερα θα σας παρουσιάσουμε λίγους σχετικά άγνωστους και, όμως, αποτελεσματικούς τρόπους με τους οποίους μπορείτε να χρησιμοποιήσετε το ιστορικό Linux για να επιταχύνετε τον τρόπο που εργάζεστε.

Επεκτείνετε το ταπεινό !! να δουλέψει για σένα

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

 $ touch build_04052014.tgz άγγιγμα: δεν μπορεί να αγγίξει 'build_04052014.tgz': Η άδεια αρνήθηκε $ sudo !! sudo αφής new_binary [sudo] κωδικός πρόσβασης για richa: 

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

 $ touch build_04052014.tgz $ echo !! > script1.sh $ cat script1.sh αγγίξτε build_04052014.tgz 

Αναζήτηση και εκτέλεση εντολών από το ιστορικό

Η πρόσβαση στην τελευταία εντολή εκτέλεσης έχει περιορισμένη χρήση. Μερικές φορές θα θέλατε να κάνετε αναζήτηση στην ιστορία για να βρείτε μια ασαφή ή πραγματικά μεγάλη εντολή που είχατε δακτυλογραφήσει. Μια απλή αναζήτηση ![keyword] σάς δίνει πρόσβαση. Για παράδειγμα, είχατε μια μεγάλη εντολή που θα τρέξατε το πρωί και δεν θυμάστε τις επιλογές που δώσατε, αλλά εξακολουθείτε να θέλετε να το εκτελέσετε ξανά. Αν αυτό είναι ένα στιγμιότυπο οθόνης του ιστορικού σας από τότε:

Τόσο πώς τρέχετε αυτή την εντολή ξανά; Απλά κάνε:

 $! make brutus.mk && tar brutus / * brutus.tgz && cp brutus.tgz ../output Κτίριο .... 

Πώς να μεταφέρετε ένα επιχείρημα από την προηγούμενη εντολή

Μερικές φορές μπορεί να μην θέλετε να εκτελέσετε μια προηγούμενη εντολή, αλλά απλά να μεταφέρετε το επιχείρημα. Μπορείτε να χρησιμοποιήσετε τον χειριστή " !$ " Όπως φαίνεται παρακάτω.

Αν υπήρχαν πολλά επιχειρήματα στην προηγούμενη εντολή σας και θέλετε να έχετε πρόσβαση μόνο στην πρώτη, μπορείτε να χρησιμοποιήσετε το " !^ "

 $ ls * .png * .txt * .tgz build_04052014.tgz OOO2.png out2.png unix.txt OOO1.png out1.png out3.png παράθυρα.txt $ ls -a! ^ ls -a * .png OOO1.png OOO2.png out1.png out2.png out3.png 

Για να αποκτήσετε πρόσβαση στον αριθμό παραμέτρου x, απλώς χρησιμοποιήστε το " ![prev_command]:[argument_number] ". Το παρακάτω παράδειγμα δείχνει σαφέστερα.

 $ ls * .png * .txt * .tgz build_04052014.tgz OOO2.png out2.png unix.txt OOO1.png out1.png out3.png παράθυρα.txt $ ls -a! ls: 3 ls -a * .tgz build_04052014 .tgz 

Τι γίνεται αν έχετε κάποια εντολή που δεν θέλετε να εμφανίσετε στην ιστορία καθόλου - αν θέλετε απλώς να αφαιρέσετε διπλότυπα και να έχετε καθαρότερο ιστορικό. Μπορείτε να ορίσετε τη μεταβλητή περιβάλλοντος HISTCONTROL για να το χειριστείτε. Δείτε πώς να το κάνετε.

 $ εξαγωγή HISTCONTROL = erasedups 

Αποτρέψτε την εμφάνιση μιας εντολής από το ιστορικό

Κατά καιρούς, μπορεί να θέλετε να αποτρέψετε απλές εντολές που εμφανίζονται στο ιστορικό, όπως " ls " ή " pwd ". Σε τέτοιες περιπτώσεις, μπορείτε να αποτρέψετε την εμφάνισή τους στο ιστορικό χρησιμοποιώντας την εντολή HISTCONTROL ξανά, όπως κάναμε στο παραπάνω παράδειγμα. Ωστόσο, συνήθως δεν είναι καλή ιδέα να αποκρύψετε μια εντολή από την εμφάνιση της στην ιστορία.

Για να αποκρύψετε μια εντολή, πρέπει πρώτα να ορίσετε το HISTCONTROL για να αγνοήσετε τα κενά, δηλαδή να αγνοήσετε όλες τις εντολές που ξεκινούν με το χώρο. Στη συνέχεια, όταν πληκτρολογείτε την εντολή, φροντίστε να προσθέσετε επιπλέον χώρο πριν πληκτρολογήσετε. Αυτό θα εμποδίσει την ιστορία να θυμηθεί την εντολή.

 $ εξαγωγή HISTCONTROL = ignorespace 

Ακριβώς σε περίπτωση για κάποιο περίεργο λόγο, μπορεί να θέλετε να απενεργοποιήσετε πλήρως το ιστορικό του Linux. Για να το κάνετε αυτό, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:

 $ export HISTSIZE = 0 

Αν ψάχνετε για το ιστορικό σας τώρα, θα είναι κενό. Σημειώστε ότι η εντολή HISTSIZE μπορεί επίσης να χρησιμοποιηθεί για να αλλάξει το μέγεθος του ιστορικού σας. Εάν θέλετε να αποθηκεύσετε περισσότερες εντολές στο ιστορικό, ανοίξτε το αρχείο .bash_profile στον οικείο κατάλογό σας και αλλάξτε το HISTSIZE (το κάνετε μεγαλύτερο ή μικρότερο).

Πιστοποίηση εικόνας: τερματικό κέλυφος γραμμής εντολών bash, Εισαγωγή στο κάλυμμα γραμμής εντολών