Existem várias maneiras de fazer o que você quer.
modo interativo
Shells modernos (e mais populares), como bash e zsh, usam a linha de leitura GNU como biblioteca de entrada. Consulte man 3 readline , seção Comandos de edição . Existem dois modos: emacs e vi.
Estilo do Emacs
set -o emacs
@ resposta do sebasth cobre esta parte.
CTRL + P (ou UP ): Último comando
ALT + B : palavra para trás
ALT + F : palavra encaminhada
ALT + D : Excluir a próxima palavra
ALT + retrocesso : Excluir a palavra anterior
CTRL + A : Início da linha
CTRL + E : Fim da linha
Estilo Vi
set -o vi
Pressione I para entrar no modo de inserção e ESC para entrar no modo de comando. Vá no modo de comando e, em seguida:
K : Último comando
B : palavra para trás
W : palavra encaminhada
DW : Excluir a próxima palavra
DB : Excluir a palavra anterior
0 : Início da linha
$ : Fim da linha
Usando um editor externo
fc
irá colar seu último comando (você também pode especificar outro comando em seu histórico) em seu editor favorito (veja a variável $ EDITOR). O comando será executado ao sair do editor.
Quando a linha de comando começar a ficar mais longa e longa, talvez você queira usar um editor real em vez da linha de leitura do shell. Como bônus, você pode salvá-lo como um arquivo de script no seu disco.
Modifique apenas 1 parâmetro
Usar ^before^after
permite substituir a string before
por after
.
Por exemplo:
abitbol@localhost $ echo 1 2 3 4 5 6 7
1 2 3 4 5 6 7
abitbol@localhost $ ^3^42
echo 1 2 42 4 5 6 7
1 2 42 4 5 6 7