O que está acontecendo é que o FreeBSD e o Linux usam shells diferentes por padrão. O FreeBSD usa como padrão o tcsh , que tinha melhores recursos interativos do que o bash no passado (mas o bash alcançou), mas recursos de script marcadamente piores .
A maneira mais direta de obter o ambiente que você está acostumado seria trocar seu shell para o tcsh no Linux. Contanto que o tcsh esteja instalado em todo o sistema (se não estiver, peça ao administrador do sistema para instalá-lo), execute chsh -s tcsh
para alterar o shell padrão.
Alternativamente, você pode configurar o bash para ter este comando que você está acostumado. Por padrão, as setas Up e Down navegam entre todos os comandos no histórico, não apenas aqueles que começam com o prefixo que você digitou. Para mudar isso para o comportamento que você está acostumado, coloque as seguintes linhas no arquivo de inicialização do bash, que é .bashrc
em seu diretório inicial. Execute . ~/.bashrc
ou inicie um novo shell para reler o arquivo de inicialização.
bind '"\eOA": history-search-backward'
bind '"\e[A": history-search-backward'
bind '"\eOB": history-search-forward'
bind '"\e[B": history-search-forward'
As seqüências de escape são o que seu terminal envia ao shell quando você pressiona uma tecla de seta. Acima pode ser \eOA
(escape, O
, A
) ou \e[A
dependendo do seu terminal, e similarmente para Abaixo .
Por padrão, o bash oferece diferentes ligações de teclas para pesquisar o histórico de comandos. Você pode pressionar Ctrl + R e, em seguida, digitar alguns caracteres para procurar um comando que contenha esta substring em qualquer lugar da linha. Pressione Ctrl + S para avançar, em vez de retroceder. A pesquisa é incremental (ou seja, como você digita); Alt + P e Alt + N fornecem uma pesquisa não incremental.
Em vez de bash e tcsh, você pode alternar para zsh, que tem alguns recursos interessantes não encontrados em outros shells . Zsh tem Ctrl + R e
Ctrl + S por padrão, assim como o bash. Para obter Up e Down como você tinha em tcsh, coloque as seguintes linhas em ~/.zshrc
:
bindkey '\eOA' history-beginning-search-backward
bindkey '\e[A' history-beginning-search-backward
bindkey '\eOB' history-beginning-search-forward
bindkey '\e[B' history-beginning-search-forward
Se você quiser usar o mesmo shell em todos os lugares, você pode usar bash ou zsh no FreeBSD também, desde que a porta esteja instalada (novamente, pergunte ao administrador do sistema).