Ao escrever um comando longo na linha de comando * nix e precisar voltar ao primeiro caractere, para adicionar algo no início (por exemplo nohup
, a , quando você perceber que o processo será longo, ou a sudo
, quando você perceber que você precisa de permissões de root) pode levar muito tempo para o cursor voltar ao primeiro caractere ...
Existe um atalho que permita que você pule direto para lá?
Estou usando um mac, então Homenão é uma opção
linux
command-line
unix
keyboard-shortcuts
cursor
clami219
fonte
fonte
sudo
é digitarsudo !!
. O!!
é substituído pelo comando anterior.Respostas:
Ctrl+ADeveria trabalhar. Ctrl+Ecorresponde ao final da linha de comando.
fonte
Isso depende do shell em questão.
Alguns shells (como AT&T ksh88) praticamente não oferecem edição de linha de entrada.
Nos shells que implementam a
vi
edição do modo (talvez seja necessário habilitar issoset -o vi
), isso é feito pressionando Esc(para alternar do modo de inserção) seguido de 0para pular para o início da linha ou $para o final da linha. Em seguida, entre novamente no modo de inserção pressionando i- o cursor permanecerá onde está - ou a- o cursor se moverá um para a direita para adicionar texto.vi
A edição do modo foi recentemente ordenada pelo padrão POSIX.A edição de modo muito mais comum
emacs
(graças aos deuses, não tem nada a ver com o sistema de edição-barra-operacional do Emacs) usa Ctrl-Apara pular para o início da linha e Ctrl-Epular para o final da linha. Este modo requer que você executeset -o emacs
muitos shells (principalmente o AT&T ksh93), mas é ativado por padrão no mksh e no GNU bash.A maioria das conchas modernas suporta os modos
emacs
evi
. (Ambos os modos exigem um tty para funcionar.)Em muitos shells, você pode personalizar as combinações de teclas; geralmente para o
emacs
modo, embora alguns shells também permitam personalizar a combinação de teclas para ovi
modo. Se você tem uma chave à qual deseja vincular isso, primeiro precisa descobrir as sequências de teclas que ela produz (por exemplo, no meu sistema, Alt-CursorLeftproduz Esc+[+1+;+3+D(^[[1;3D
;^X
é Ctrl-Xe^[
é Esc)), para que eu possa digitar algo comoe terá essa combinação de teclas alterada, dependendo do shell. Geralmente, você pode persistir no arquivo de inicialização (
~/.mkshrc
,~/.kshrc
) ou, para o GNU bash, em~/.inputrc
. Observe que nem todos os shells suportam bindind todas as chaves em todas as versões.Geralmente, você pode descobrir quais caracteres uma chave gera apenas executando
cat
no shell, digitando a chave e assistindo. Depois pressione^C
( Ctrl-C) para abortarcat
.fonte
^D^D
, ainda recebo "o lixo" ecoado ...Você já tentou a tecla Home? Eu uso o MobXterm para conectar ao linux box e uso as teclas Home e End do teclado para ir para o primeiro ou o último caractere do comando.
fonte
Se você mudou para o
vi
modo, usandoset -o vi
, você pode pressionar Esce Iou Apara inserir texto no início ou no final da linha. Ou se você está apenas olhando para mover o cursor, é ^e $.fonte
No modo emacs (alternado por:)
set -o emacs
é pressionando:No modo vi (alternado por:)
set -o vi
quando no modo de comando (Esc ) é pressionando:Veja também:
fonte