O que está acontecendo é que o FreeBSD e Linux usam diferentes shells por padrão. O FreeBSD assume 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 notavelmente piores .
A maneira mais direta de obter o ambiente com o qual você está acostumado seria mudar seu shell para o tcsh no Linux. Desde 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 seu shell padrão.
Como alternativa, você pode configurar o bash para ter este comando ao qual está acostumado. Por padrão, as setas Upe Downnavegam entre todos os comandos do histórico, não apenas aqueles que começam com o prefixo digitado. Para mudar isso para o comportamento que você está acostumado, coloque as seguintes linhas no arquivo de inicialização do bash, que está .bashrc
no seu diretório pessoal. 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 o seu terminal envia ao shell quando você pressiona uma tecla de seta. Uppode ser \eOA
(escape, O
, A
) ou \e[A
dependendo do seu terminal, e similarmente para Down.
Por padrão, o bash oferece diferentes associações de teclas para pesquisar o histórico de comandos. Você pode pressionar Ctrl+ e R, em seguida, inserir alguns caracteres para procurar um comando contendo essa substring em qualquer lugar da linha. Pressione Ctrl+ Spara avançar ou não para trás. A pesquisa é incremental (ou seja, conforme você digita); Alt+ Pe Alt+ Nfornecem uma pesquisa não incremental.
Em vez de bash e tcsh, você pode alternar para zsh, que possui alguns recursos interessantes não encontrados em outros shells . O Zsh possui Ctrl+ Re
Ctrl+ Spor padrão, assim como o bash. Para obter Upe Downcomo você tinha no tcsh, insira as seguintes linhas ~/.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ê deseja usar o mesmo shell em qualquer lugar, também pode usar o bash ou o zsh no FreeBSD, desde que a porta esteja instalada (novamente, pergunte ao administrador do sistema).