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

Υπάρχει όμως ένας τρόπος για να ελέγξετε τι μπαίνει στον κατάλογο ιστορικού και τι όχι; Ή, με άλλα λόγια, μπορούμε να ενεργοποιήσουμε μια λειτουργία ανώνυμης περιήγησης στο web στη γραμμή εντολών του Linux; Η απάντηση είναι ναι και υπάρχουν πολλοί τρόποι για να επιτευχθεί αυτό, ανάλογα με το τι ακριβώς θέλετε. Σε αυτό το άρθρο θα συζητήσουμε μερικές από τις δημοφιλείς διαθέσιμες λύσεις.

Σημείωση : όλες οι εντολές που παρουσιάζονται σε αυτό το άρθρο ελέγχθηκαν στο Ubuntu.

Διαφορετικοί διαθέσιμοι τρόποι

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

1. Εισάγετε χώρο πριν από την εντολή

Ναι, το έχετε διαβάσει σωστά. Εισαγάγετε ένα χώρο στην αρχή μιας εντολής και θα αγνοηθεί από το κέλυφος, πράγμα που σημαίνει ότι η εντολή δεν θα καταγραφεί στο ιστορικό. Ωστόσο, υπάρχει μια εξάρτηση - η εν λόγω λύση θα λειτουργήσει μόνο εάν η μεταβλητή περιβάλλοντος HISTCONTROL οριστεί σε "ignorespace" ή "ignoreboth", η οποία είναι στις περισσότερες περιπτώσεις κανονικά.

Έτσι, μια εντολή όπως τα εξής:

 [space] echo "αυτό είναι ένα απόλυτα μυστικό" 

Δεν θα εμφανιστεί στην ιστορία αν έχετε ήδη κάνει αυτήν την εντολή:

 εξαγωγή HISTCONTROL = ignorespace 

Το παρακάτω στιγμιότυπο οθόνης αποτελεί παράδειγμα αυτής της συμπεριφοράς.

Η τέταρτη εντολή "echo" δεν καταγράφηκε στο ιστορικό καθώς εκτελέστηκε με ένα κενό στην αρχή.

2. Απενεργοποιήστε ολόκληρο το ιστορικό για την τρέχουσα περίοδο λειτουργίας

Εάν θέλετε να απενεργοποιήσετε ολόκληρο το ιστορικό μιας περιόδου σύνδεσης, μπορείτε να το κάνετε εύκολα απενεργοποιώντας τη μεταβλητή περιβάλλοντος HISTSIZE πριν ξεκινήσετε με την εργασία γραμμής εντολών. Για να ακυρώσετε τη μεταβλητή εκτελέστε την ακόλουθη εντολή:

 εξαγωγή HISTFILE = 0 

HISTFILE είναι ο αριθμός γραμμών (ή εντολών) που μπορούν να αποθηκευτούν στη λίστα ιστορικού για μια συνεχή περίοδο bash. Από προεπιλογή, αυτή η μεταβλητή έχει καθορισμένη τιμή - για παράδειγμα, 1000 στην περίπτωσή μου.

Έτσι, η παραπάνω εντολή θα θέσει την τιμή της μεταβλητής περιβάλλοντος στο μηδέν και κατά συνέπεια τίποτα δεν θα αποθηκευτεί στη λίστα ιστορικού μέχρι να κλείσετε το τερματικό. Λάβετε υπόψη ότι επίσης δεν θα μπορείτε να δείτε τις εντολές που εκτελούνται προηγουμένως, πατώντας το πλήκτρο βέλους προς τα επάνω ή εκτελώντας την εντολή history .

3. Διαγράψτε ολόκληρο το ιστορικό αφού τελειώσετε

Αυτό μπορεί να θεωρηθεί ως μια εναλλακτική λύση στη λύση που αναφέρεται στην προηγούμενη ενότητα. Η μόνη διαφορά είναι ότι σε αυτή την περίπτωση εκτελείτε μια εντολή Αφού τελειώσετε με όλη τη δουλειά σας. Ακολουθεί η εντολή:

 ιστορία-cw 

Όπως ήδη αναφέρθηκε, αυτό θα έχει το ίδιο αποτέλεσμα με τη λύση HISTFILE που αναφέρθηκε παραπάνω.

4. Απενεργοποιήστε το ιστορικό μόνο για την εργασία που κάνετε

Ενώ οι λύσεις (2 και 3) που περιγράφονται παραπάνω κάνουν το τέχνασμα, σβήνουν ολόκληρη την ιστορία, κάτι που μπορεί να είναι ανεπιθύμητο σε πολλές περιπτώσεις. Ενδεχομένως να υπάρχουν περιπτώσεις στις οποίες θέλετε να διατηρήσετε τη λίστα ιστορικού μέχρι το σημείο που ξεκινάτε την εργασία γραμμής εντολών. Για καταστάσεις όπως αυτές, πρέπει να εκτελέσετε την ακόλουθη εντολή πριν αρχίσετε με την εργασία σας:

 [space] set + o ιστορία 

Σημείωση : [space] αντιπροσωπεύει ένα κενό διάστημα.

Η παραπάνω εντολή θα απενεργοποιήσει προσωρινά το ιστορικό, δηλαδή ό, τι κάνετε μετά την εκτέλεση αυτής της εντολής, δεν θα εγγραφεί στο ιστορικό, αν και όλα τα πράγματα που εκτελέστηκαν πριν από την παραπάνω εντολή θα είναι εκεί όπως βρίσκεται στη λίστα ιστορικού.

Για να ενεργοποιήσετε εκ νέου το ιστορικό, εκτελέστε την ακόλουθη εντολή:

 [Διάστημα] set -o ιστορία 

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

5. Διαγράψτε συγκεκριμένες εντολές από το ιστορικό

Τώρα υποθέστε ότι η λίστα ιστορικού περιέχει ήδη μερικές εντολές που δεν θέλετε να καταγραφούν. Τι μπορεί να γίνει σε αυτή την περίπτωση; Είναι απλό. Μπορείτε να προχωρήσετε και να τα αφαιρέσετε. Το παρακάτω είναι πώς να το πετύχετε:

 ιστορικό [διάστημα] grep "μέρος της εντολής που θέλετε να καταργήσετε" 

Η παραπάνω εντολή θα εξάγει μια λίστα εντολών αντιστοίχισης (που υπάρχουν στη λίστα ιστορικού) με έναν αριθμό [num] πριν από κάθε ένα από αυτά.

Μόλις εντοπίσετε την εντολή που θέλετε να καταργήσετε, εκτελέστε την ακόλουθη εντολή για να καταργήσετε τη συγκεκριμένη καταχώρηση από τη λίστα ιστορικού:

 ιστορία -d [num] 

Το παρακάτω στιγμιότυπο οθόνης είναι ένα παράδειγμα αυτού.

Η δεύτερη εντολή 'echo' αφαιρέθηκε με επιτυχία.

Εναλλακτικά, μπορείτε απλά να πατήσετε το πλήκτρο βέλους προς τα πάνω για να κάνετε μια βόλτα πίσω από τη λίστα ιστορικού και μόλις η εντολή του ενδιαφέροντός σας εμφανιστεί στο τερματικό, απλά πατήστε το πλήκτρο "Ctrl + U" για να αδειάσετε πλήρως τη γραμμή, λίστα.

συμπέρασμα

Υπάρχουν πολλοί τρόποι με τους οποίους μπορείτε να χειριστείτε το ιστορικό γραμμής εντολών του Linux για να ταιριάξετε τις ανάγκες σας. Λάβετε, ωστόσο, υπόψη ότι δεν είναι συνήθως μια καλή πρακτική να κρύβετε ή να αφαιρείτε μια εντολή από την ιστορία, αν και δεν είναι επίσης λάθος, per se, αλλά θα πρέπει να γνωρίζετε τι κάνετε και ποιες επιπτώσεις μπορεί να έχει.