Что происходит, так это то, что FreeBSD и Linux по умолчанию используют разные оболочки. По умолчанию FreeBSD использует tcsh , который имел лучшие интерактивные функции, чем bash в прошлом (но bash догнал), но заметно хуже скриптовых функций .
Самый простой способ получить среду, к которой вы привыкли, - это переключить вашу оболочку на tcsh в Linux. При условии, что tcsh установлен в масштабе всей системы (если это не так, попросите системного администратора установить его), запустите chsh -s tcsh
для изменения оболочки по умолчанию.
Кроме того, вы можете настроить bash на использование этой команды, к которой вы привыкли. По умолчанию, Upи Downстрелки навигации среди всех команд в истории, а не только те , которые начинаются с префикса вы набрали. Чтобы изменить это на поведение, к которому вы привыкли, поместите следующие строки в файл инициализации bash, который находится .bashrc
в вашем домашнем каталоге. Либо запустить . ~/.bashrc
или начать новую оболочку , чтобы перечитать файл инициализации.
bind '"\eOA": history-search-backward'
bind '"\e[A": history-search-backward'
bind '"\eOB": history-search-forward'
bind '"\e[B": history-search-forward'
Escape-последовательности - это то, что ваш терминал отправляет в оболочку, когда вы нажимаете клавишу со стрелкой. Upможет быть \eOA
(побег, O
, A
) или в \e[A
зависимости от вашего терминала, а так же для Down.
По умолчанию bash предлагает различные привязки клавиш для поиска в истории команд. Вы можете нажать Ctrl+ R, а затем ввести несколько символов для поиска команды, содержащей эту подстроку в любом месте строки. Нажмите Ctrl+, Sчтобы идти вперед, а не назад. Поиск является инкрементным (т. Е. По типу ввода); Alt+ Pи Alt+ Nдают вам неинкрементный поиск.
Вместо bash и tcsh вы можете переключиться на zsh, который обладает некоторыми полезными функциями, которых нет в других оболочках . Zsh имеет Ctrl+ Rи
Ctrl+ Sпо умолчанию, как и bash. Чтобы получить Upи Downкак в tcsh, вставьте следующие строки ~/.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
Если вы хотите использовать везде одинаковую оболочку, вы также можете использовать bash или zsh во FreeBSD при условии, что порт установлен (снова, обратитесь к системному администратору).