Αλλά υπάρχει και ένας άλλος τρόπος. Θα μπορούσε να έγραφε την εντολή 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. Αλλά δεν υπάρχει λόγος να γνωρίζεις κάτι άλλο. Ναι υπήρχε μια εποχή που τα γνώριζα και τα χρησιμοποιούσα. Αλλά μετά κάποιος έξυπνος σκέφτηκε το πάνω βελάκι και τα ξέχασα όλα. Εκτός από τα παραπάνω που είναι για μένα τα ποιο χρήσιμα σήμερα και αξίζει τον κόπο να μάθεις να τα χρησιμοποιείς.