Oltre alla storia di ^ r / ^ i-search:
alt.inserisce l'ultima "parola" del comando precedente sul cursore. Ripetilo per ottenere l'ultima parola dai comandi più vecchi. (Ma nota che un trailing &
conta come l'ultima parola per i comandi in background).
Questo è super utile per mkdir foo
, cd
alt-dot. Anche più veloce di freccia in alto, ^ a, alt-d (cancellare parola in avanti), cd
.
Per ottenere la penultima parola, usa esc
-
2
alt+.
(es. Usa un argomento numerico in stile emacs per alt+.
. Conteggio negativo dalla fine, conteggi positivi in avanti dall'inizio.) Ma di solito questo è più un problema che un valore; ad un certo punto è più veloce raggiungere il mouse e copiare / incollare, o freccia su e ^ w / ^ y parte di esso (vedi sotto).
Se il tuo terminale è impostato in modo corretto / corretto, ctrl-sinistra e ctrl-destra andranno avanti / indietro di parole. In caso contrario, si spera che almeno alt-b e alt-f facciano la stessa cosa.
ctrl- / è un annullamento. È possibile utilizzare la ripetizione automatica per eliminare le parole in modo molto più efficiente se è possibile annullare quando si supera un po 'di tempo.
Il mixaggio / abbinamento più potente dei comandi deriva dall'uso del kill-ring, che funziona proprio come in Emacs. ctrl-y per incollare l'ultimo ctrl-w / ctrl-u / ctrl-backspace / alt-d. alt-y per scorrere il testo ucciso più vecchio.
Più ctrl-w o qualsiasi altra cosa in una riga compongono la voce kill-ring. Utilizzare la freccia sinistra e destra o qualcosa per spezzare la voce se si desidera rimuovere due elementi e incollarne uno solo in seguito.
Combinando tutti questi insieme, puoi
- inizia a digitare un comando
- ctrl-r per tornare a un vecchio comando e afferrarne una parte con control-w o simile.
- esc-r o
alt+r
per ripristinarlo com'era prima di eliminarne una parte.
- alt-
>
per andare alla fine della storia (cioè freccia giù fino in fondo), per tornare al comando in cui ti trovavi nel mezzo.
Altri suggerimenti per l'uso interattivo:
Abilita shopt -s globstar
, quindi puoi farlo **/*.c
(ricorsivo inclusa la directory corrente). A volte utile per l'uso interattivo, ma di solito find -name '*.c' -exec foo {} +
è meglio.
Se scrivi script bash, ti sarà utile averlo shopt -s extglob
abilitato anche nelle tue shell interattive. A volte troverai un uso per cose come *.!(c|h)
abbinare file che non finiscono con .c o .h.
Trova alias ti piace per ls -l
, less
e qualsiasi altra cosa si fa un sacco. ( cp -i
, mv -i
e rm -I
sono carini. Non prendere l'abitudine di dipendere da loro per fare un rm selettivo. GNU rm's -Io chiedo una volta per tutte le discussioni.)
Mi piace alias m=less
(m per "altro"). Ho less
impostato ,e .associato al file precedente / successivo ( lesskey
). L'impostazione predefinita è una sequenza multi-tasto che non può essere utilizzata con autorepeat.
Mi piace fare tutto all'interno dello schermo GNU. Trovo più facile tenere traccia delle finestre numerate dello schermo rispetto a un carico di schede in Konsole (o qualsiasi altro emulatore di terminale che ho provato). Se non lo sai già screen
, impara tmux perché è più recente e meno croccante.
Per ottenere qualcosa di simile alla funzionalità di apertura di una nuova shell con lo stesso cd di un'altra shell, uso un hook personalizzato per cd / pushd / popd che mi permette di fare cds 8
cd in qualunque dir la mia shell nella finestra dello schermo 8 sta usando. Funziona anche con shell al di fuori della sessione dello schermo, purché ci sia solo una sessione dello schermo.
fish
;)