Το Bourne Again Shell, γνωστότερο ως bash, είναι το προεπιλεγμένο για τις περισσότερες διανομές Linux. Είναι εξαιρετικά ισχυρό όσο περνούν τα κοχύλια εντολών και κατέχει όλα τα είδη των έξυπνων κόλπα για όσους θέλουν να μάθουν. Ένα από τα καλύτερα χαρακτηριστικά είναι, κατά τη γνώμη μου, το σύστημα ιστορικού εντολών.

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

Πάνω / Κάτω βέλη

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

!!

Ένα παρόμοιο χαρακτηριστικό με αυτό που αναφέρθηκε παραπάνω είναι το διπλό κτύπημα (!!). Αυτοί οι χαρακτήρες που εισάγονται στο κέλυφος αντιπροσωπεύουν την τελευταία πληκτρολογημένη εντολή. Ας υποθέσουμε ότι προσπαθείτε να εκτελέσετε μια εντολή μόνο για να διαπιστώσετε ότι χρειάζεστε προνόμια root για να το κάνετε. Αντί να επαναλάβετε ολόκληρη την εντολή, μπορείτε απλά να εισέλθετε

 sudo !! 

Bash θα αντικαταστήσει το !! για την προηγούμενη εντολή, όπως στο παρακάτω παράδειγμα.

Αυτό λειτουργεί επίσης πιο πίσω, μπορείτε να κάνετε κάτι σαν

 ! -5 

για να ανακαλέσετε την εντολή 5 καταχωρήσεις πίσω στο ιστορικό.

!(λέξη)

Ίσως πριν από λίγες ημέρες πληκτρολογήσατε μια μακρά, σύνθετη εντολή στο κέλυφος σας, για παράδειγμα μια σειρά επιλογών για το "wterm". Μπορείτε να εντοπίσετε και να εισάγετε εκ νέου από την εντολή χρησιμοποιώντας την ενσωματωμένη αναζήτηση της ιστορίας. Μπορείτε απλά να προσθέσετε τα πρώτα γράμματα της εντολής μετά το! και bash θα το βρει.

Να είστε προσεκτικοί με αυτό. Μπορεί να καταλήξετε να τρέχετε κάτι διαφορετικό από αυτό που περιμένατε. Μην το χρησιμοποιείτε για δυνητικά επικίνδυνες εντολές όπως "rm" ή "fdisk".

!?(λέξη)

Αυτό είναι παρόμοιο με το τελευταίο χαρακτηριστικό δεδομένου ότι ψάχνει το ιστορικό για τη λέξη που εισήχθη, αλλά αντίθετα! (Λέξη) αυτό θα βρει τη λέξη οπουδήποτε στην εντολή, όχι μόνο την αρχή.

Να είστε προσεκτικοί με αυτό. Μπορεί να καταλήξετε να τρέχετε κάτι διαφορετικό από αυτό που περιμένατε. Μην το χρησιμοποιείτε για δυνητικά επικίνδυνες εντολές όπως "rm" ή "fdisk".

Ctrl-R

Αυτό μπορεί να είναι το αγαπημένο μου ιστορικό εργαλείο ιστορίας. Είναι λίγο σαν το ! στοιχείο παραπάνω, αλλά διαδραστικό. Στο κέλυφος εντολών σας, πατήστε Ctrl-R, και θα ξεκινήσει μια αναζήτηση. Καθώς πληκτρολογείτε, το bash θα αναζητήσει το ιστορικό και θα σας δείξει τα αποτελέσματα κατά την πληκτρολόγηση. Όταν εμφανίζεται η εντολή που θέλετε, απλά πατήστε enter και θα εκτελεστεί αυτή η εντολή. Αυτό μπορεί να είναι ασφαλέστερο από τα πράγματα όπως ! επειδή μπορείτε να δείτε ποια θα είναι η εντολή πριν την εκτελέσετε, οπότε δεν χρειάζεται να μαντέψετε ή να βασιστείτε στη μνήμη.

Χειροκίνητη αναζήτηση

Ίσως δεν σας αρέσει ο τρόπος με τον οποίο λειτουργεί το Ctrl-R ή θέλετε να δείτε όλες τις εντολές που πληκτρολογήσατε ή ακριβώς αυτές που περιέχουν μια συγκεκριμένη λέξη. Η εντολή ιστορικού θα σας δείξει το πλήρες ιστορικό εντολών σας, μαζί με τον αριθμό ιστορικού κάθε εντολής (κρατήστε αυτή τη σκέψη, θα καλύψουμε αυτούς τους αριθμούς σε μια στιγμή).

Μπορείτε επίσης να ορίσετε τον αριθμό των στοιχείων που θα εμφανίσει η εντολή ιστορικού . Για να δείτε τις τελευταίες 10 καταχωρήσεις στο ιστορικό, θα μπορούσατε να πληκτρολογήσετε

 ιστορία 10 

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

!(αριθμός)

Όταν χρησιμοποιείτε την εντολή ιστορικού για να προβάλετε τη λίστα ιστορικού εντολών, θα παρατηρήσετε ότι κάθε στοιχείο στη λίστα έχει έναν αριθμό που σχετίζεται με αυτό. Μπορείτε να το χρησιμοποιήσετε για να ανακαλέσετε την συγκεκριμένη εντολή. Για παράδειγμα, το στοιχείο 87 θα μπορούσε να εκτελεστεί ξανά εισάγοντας

 87 

στο κέλυφος σας.

Αντικατάσταση λέξεων

Αυτό είναι αρκετά μεγάλο. Πόσες φορές έχετε γράψει κάποια μεγάλη εντολή μόνο για να συνειδητοποιήσετε ότι βάλατε, ας πούμε, hdd όταν ήθελε hdc ; Καλά bash έχετε καλύψει. Μπορείτε να αντικαταστήσετε μια λέξη στην προηγούμενη εντολή με μια άλλη χρησιμοποιώντας το "^", όπως στο παρακάτω παράδειγμα

Διαχείριση του ιστορικού σας

Από προεπιλογή, το ιστορικό αποθηκεύεται σε ~ / .bash_history. Μπορείτε να ασχοληθείτε με αυτό το αρχείο, ωστόσο θεωρείτε κατάλληλο, αλλά υπάρχουν μερικά χρήσιμα πράγματα που θα μπορούσατε να προσπαθήσετε να το διαχειριστείτε αυτόματα. Δηλαδή, ορίζοντας τις μεταβλητές περιβάλλοντος HISTSIZE και HISTFILESIZE . Για να ορίσετε τον αριθμό των καταχωρήσεων που μπορούν να αποθηκευτούν στο αρχείο ιστορικού στο 1000, εισάγετε

 εξαγωγή HISTFILESIZE = 1000 

στο κέλυφος σας. Αυτό θα περιορίσει το αρχείο σε 1000 εγγραφές. Εάν θέλετε να κάνετε αυτήν την αλλαγή μόνιμη, τοποθετήστε την εντολή εξαγωγής στο αρχείο .bashrc ή .bash_profile.