Además del historial de ^ r / ^ s i-search:
alt.inserta la última "palabra" del comando anterior en el cursor. Repítalo para obtener la última palabra de comandos más antiguos. (Pero tenga en cuenta que un final &
cuenta como la última palabra para los comandos de fondo).
Esto es súper útil para mkdir foo
, cd
alt-punto. Incluso más rápido que de flecha hacia arriba, ^ a, alt-d (borrar la palabra hacia delante), cd
.
Para obtener la penúltima palabra, use esc
-
2
alt+.
(es decir, use un argumento numérico de estilo emacs para alt+.
. El conteo negativo desde el final, el conteo positivo desde el comienzo). Pero esto suele ser más problemático de lo que vale; en algún momento es más rápido alcanzar el mouse y copiar / pegar, o con la flecha hacia arriba y ^ w / ^ y parte de él (ver más abajo).
Si su terminal está configurada bien / correctamente, ctrl-left y ctrl-right irán hacia atrás / adelante por palabras. Si no, con suerte al menos alt-b y alt-f harán lo mismo.
ctrl- / es un deshacer. Puede usar la repetición automática para eliminar palabras de manera mucho más eficiente si puede deshacer cuando se sobrepasa un poco.
La combinación / combinación más potente de comandos proviene del uso del anillo de eliminación, que funciona igual que en Emacs. ctrl-y para pegar el último ctrl-w / ctrl-u / ctrl-backspace / alt-d. alt-y para recorrer el texto eliminado anterior.
Múltiples ctrl-w o lo que sea en una fila hacen en la entrada kill-ring Use la flecha izquierda y derecha o algo para dividir la entrada si desea eliminar dos cosas y solo pegar una más tarde.
Combinando todo esto juntos, puedes
- comenzar a escribir un comando
- ctrl-r para volver a un comando anterior y tomar parte de él con control-w o similar.
- esc-r o
alt+r
para restaurarlo a como estaba antes de eliminar parte de él.
- alt-
>
para ir al final de la historia (es decir, con la flecha hacia abajo hasta el final), para volver al comando en el que estaba.
Otros consejos de uso interactivo:
Habilite shopt -s globstar
, para que pueda hacerlo **/*.c
(recursivo, incluido el directorio actual). A veces útil para uso interactivo, pero generalmente find -name '*.c' -exec foo {} +
es mejor.
Si escribe scripts de bash, también le resultará útil shopt -s extglob
habilitarlos en sus shells interactivos. A veces encontrarás un uso para cosas como *.!(c|h)
hacer coincidir archivos que no terminan con .c o .h.
Encuentra los alias en el que quieres ls -l
, less
y cualquier otra cosa que hacer mucho. ( cp -i
, mv -i
y rm -I
son agradables. No tengas el hábito de depender de ellos para hacer un rm selectivo. GNU rm's -I pregunta una vez por todos los argumentos).
Me gusta alias m=less
(m para "más"). He less
configurado ,y .vinculado al archivo anterior / siguiente ( lesskey
). El valor predeterminado es una secuencia de pulsación de teclas múltiples que no se puede usar con autorepeat.
Me gusta hacer todo dentro de la pantalla GNU. Me resulta más fácil hacer un seguimiento de las ventanas de pantalla numeradas que un montón de pestañas en Konsole (o cualquier otro emulador de terminal que haya probado). Si aún no lo sabe screen
, aprenda tmux porque es más nuevo y menos rudo.
Para obtener algo como la funcionalidad de abrir un nuevo shell con el mismo cwd que otro shell, utilizo un enlace personalizado para cd / pushd / popd que me permite hacer cds 8
cd a cualquier directorio que esté usando mi shell en la ventana de pantalla 8. Esto funciona incluso para shells fuera de la sesión de pantalla, siempre que solo haya una sesión de pantalla.
fish
;)