Исходя из мира FreeBSD, я хочу, чтобы терминал Linux вел себя как FreeBSD, особенно в версии 9.1, в основном, когда вы вводите cd
в терминал и нажимаете стрелку «вверх», вы можете просматривать все команды в истории, начиная с cd
которых вы можете выиграть много времени.
Я не знаю, как включить эту функцию в Linux Debian или CentOS, которая заставляет меня печатать целое, может кто-нибудь, пожалуйста, помогите.
bindkey -k (up|down) history-search-(back|for)ward
свой,.tcshrc
как описано здесь . Здорово!Ответы:
Добавьте к следующему
~/.inputrc
:объяснение
~/.inputrc
это файл конфигурации для GNU readline . Многие оболочки, в том числеbash
иtcsh
используют readline для редактирования командной строки. Две строки выше сообщат readline, чтобы вызвать его функцию поиска в истории, когда будут найдены escape-последовательности для клавиши со стрелкой вверх (\e[A
) и клавиши со стрелкой вниз (\e[B
).источник
Last word
часто это путь, который я хочу попробовать в различных тайных клише. И Shift F12, чтобы вернуть меня к редактированию всей последней строки с самого начала.~/.inputrc
это удобный инструментЧто происходит, так это то, что FreeBSD и Linux по умолчанию используют разные оболочки. По умолчанию FreeBSD использует tcsh , который имел лучшие интерактивные функции, чем bash в прошлом (но bash догнал), но заметно хуже скриптовых функций .
Самый простой способ получить среду, к которой вы привыкли, - это переключить вашу оболочку на tcsh в Linux. При условии, что tcsh установлен в масштабе всей системы (если это не так, попросите системного администратора установить его), запустите
chsh -s tcsh
для изменения оболочки по умолчанию.Кроме того, вы можете настроить bash на использование этой команды, к которой вы привыкли. По умолчанию, Upи Downстрелки навигации среди всех команд в истории, а не только те , которые начинаются с префикса вы набрали. Чтобы изменить это на поведение, к которому вы привыкли, поместите следующие строки в файл инициализации bash, который находится
.bashrc
в вашем домашнем каталоге. Либо запустить. ~/.bashrc
или начать новую оболочку , чтобы перечитать файл инициализации.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
:Если вы хотите использовать везде одинаковую оболочку, вы также можете использовать bash или zsh во FreeBSD при условии, что порт установлен (снова, обратитесь к системному администратору).
источник
tcsh
доступно для большинства дистрибутивов Linux. Попробуйте установитьtcsh
пакет и запустить его,chsh -s /bin/tcsh
чтобы сделать его оболочкой по умолчанию.источник
Другие ответы решают это, но если вы хотите больше, взгляните на https://github.com/zsh-users/zsh-history-substring-search
Презто ( https://github.com/sorin-ionescu/prezto ) также полно zsh лакомств.
источник