Κόλπα με το ιστορικό σε bash/zsh

Αλλά υπάρχει και ένας άλλος τρόπος. Θα μπορούσε να έγραφε την εντολή history και να κάνει και ίσως αναζήτηση με grep σε αυτήν.

Η εντολή history θα δείξει τις τελευταίες εντολές.

history

 8671  apt update
 8672  apt upgrade
 8673  cd tmp
 8674  vi gizmos.sh
 8675  chmod +x gizmos.sh
 8676  ./gizmos.sh

!n

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

Απλά γράφοντας

!8671

θα τρέξει η αντίστοιχη εντολή.

!$

Αν δεν μάθεις κάτι άλλο μάθε αυτό. Είναι το τελευταίο πράγμα που δούλεψες. Ας το δούμε με ένα παράδειγμα

vi gizmo.sh
chmod +x !$
./!$

Ας υποθέσουμε πως ξέρεις τι κάνουν οι εντολές, το θέμα είναι η τελευταία λέξη. Την οποία κρατάει το !$. Έτσι είναι σαν να γράψαμε

vi gizmo.sh
chmod +x gizmo.sh
./gizmo.sh

To zsh που χρησιμοποιώ θα δείξει την εντολή και θα πρέπει να πατήσω δυο φορές το Enter ενώ το bash θα εκτελέσει τις εντολές αμέσως. Κανείς δεν είναι τέλειος.

!n*

To n θα είναι ένας αριθμός από το 0 έως το 9 και σημαίνει τα τελευταία ορίσματα. Έτσι

vi main.c func.h func.c 
git add !:2*

είναι σαν

git add func.h func.c 

!*

Εδώ τα θέλουμε όλα, θα δείχνω με σχόλιο # την επέκταση της κάθε εντολής από εδώ και στο εξής.

vi main.c func.h func.c 
git add !*
#git add main.c func.h func.c 

!cmd

Πατώντας τα πρώτα γράμματα μιας εντολής τρέχουμε την ίδια εντολή

!vi
#vi main.c func.h func.c

Εδώ βολεύει το zsh μιας και βλέπουμε τι θα τρέξει πριν πατήσουμε το Enter, ενώ μπορούμε να κάνουμε και μικρές αλλαγές.

!-n

Αυτή θα τρέξει την ν-προηγούμενη εντολή.

Άλλα κόλπα

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

5 Likes

Επίσης καλό είναι να δει κάποιος και αυτό το άρθρο

5 Likes

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

Τσεκάρε τε την, νομίζω θα σας βοηθήσει.

2 Likes