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 viedição do modo (talvez seja necessário habilitar isso set -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ê execute set -o emacsmuitos 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 emacse vi. (Ambos os modos exigem um tty para funcionar.)
Em muitos shells, você pode personalizar as combinações de teclas; geralmente para o emacsmodo, embora alguns shells também permitam personalizar a combinação de teclas para o vimodo. 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 como
bind '^[[1;3D=beginning-of-line'
bind '"\e[1;3D":beginning-of-line'
e 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 catno shell, digitando a chave e assistindo. Depois pressione ^C( Ctrl-C) para abortar cat.