Ao executar comandos, às vezes talvez você precise executar um comando com o argumento do último comando. Como você pode fazer isso?
É claro que, com exceção do uso das teclas de seta e Delchaves: ↑←←←... ←→→DelDelDel... Del<new_command>
.
Ao executar comandos, às vezes talvez você precise executar um comando com o argumento do último comando. Como você pode fazer isso?
É claro que, com exceção do uso das teclas de seta e Delchaves: ↑←←←... ←→→DelDelDel... Del<new_command>
.
Respostas:
Por exemplo, se você executar este comando:
mkdir long_path_here/new_dir
provavelmente você deseja ir no diretório criado recentemente. Você pode fazer isso usando os próximos "atalhos":
cd
Esc.- digite cd
e após pressionar, Escseguido por .(não no mesmo tempo). Se o comando anterior não tiver argumentos, você receberá o próprio comando anterior.cd !*
- neste caso, você obterá todos os argumentos do comando previuos. Se o comando anterior não tiver argumentos, você não receberá nada.cd
Alt+ .- digite cd
e depois pressione Alte .(ao mesmo tempo). De fato, dessa maneira, e continuando pressionando .(sem liberar Alt), você obterá o último argumento para cada comando do histórico. Se um comando não tiver argumentos, você receberá o próprio comando.Em geral: <command>
Esc.ou <command> !*
ou <command>
Alt+ ..
Existem alguns atalhos se você deseja todos os argumentos do comando anterior ou apenas o último argumento.
<command> !*
<command> !$
Exemplos:
ls foo/ bar/
ls !* # Gives the results of ls foo/ bar/
ls foo/ bar/
ls !$ # Gives the results of ls bar/
Se você deseja um único argumento de uma lista de argumentos do comando anterior, pode usar <command> !!:<argNumber>
Exemplo:
ls foo/ bar/ baz/
ls !!:2 # Gives the results of ls bar/
ls foo/ bar/ baz/
ls !!:1 # Gives the results of ls foo/
!
na versão arg, por exemplo !:2
,. Supondo que o bash padrão.
!^
no lugar de !:1
.
Mencionado !*
e !$
é uma coisa boa, mas quando você precisar fazer uma pequena edição, os atalhos da linha de leitura vêm para ajudar!
Por exemplo, em vez dos inúmeros ↑←←←... ←→→DelDelDel... Delvocê pode simplesmente pressionar ↑ Ctrl-a(pular para o início da linha) Alt+d(excluir para o final da palavra)
Para mais informações man readline
e procure Default key bindings
.
Para pegar o n
th argumento do seu comando anterior, digite Alt+ n
+ Alt_. Por exemplo, depois de:
$ echo 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
digitar echo
seguido de Alt2Alt_fornecerá isso no próximo prompt:
$ echo 2
A "captura de tela" depois que você clicar Alt2é:
(arg: 2) echo
Você pode repetir Alt_várias vezes para obter o n
th argumento dos comandos anteriores em sucessão.
Outra idéia útil é definir alias r="fc -s"
. Em seguida, você pode fazer substituições de comando:
$ echo 1
1
$ r echo=history
history 1
27755 history 1