CentOS стрелка вверх предыдущая команда

2735
Dave

На машине с FreeBSD, которую я использовал, клавиша со стрелкой вверх вызывает предыдущую команду BASED на уже набранных буквах. Однако на машине с CentOS, которую я использую, клавиша со стрелкой вверх просто вызывает предыдущую команду.

Кто-нибудь знает, есть ли способ установить его как клавишу со стрелкой вверх FreeBSD для CentOS?

Большое спасибо.

1
Какую оболочку вы используете? Rob Jones 14 лет назад 0
Необходимо переместить в суперпользователя. Vineet Reynolds 14 лет назад 1

5 ответов на вопрос

1

Поведение, которое вы описываете, основано на вашей оболочке.

Оболочкой по умолчанию в CentOS является bash: вы можете подтвердить это, набрав следующее:

$ echo $ SHELL / Бен / Баш 

Если это так, то вы можете получить аналогичную функциональность для вашей оболочки FreeBSD (скорее всего, ksh), нажав CTRL-r. Вы увидите что-то вроде этого:

(Обратный-I-поиска) ` ': 

Просто начните вводить текст, и вы получите команды, которые вы ранее выполняли, основываясь на том, что вы ввели.

Например, в этом терминале, когда я набираю CTRL-r, я получаю это:

(reverse-i-search) `s ': порт sudo установить ruby 

Затем вы можете прокрутить вверх или вниз с помощью клавиши со стрелкой, чтобы пройти все команды, которые соответствуют вашим критериям поиска (в данном случае, 's').

Спасибо! Хе-хе, я на самом деле знаю о Ctrl + R. Но он ищет шаблон правильно? Итак, если я наберу p, все предыдущие команды, которые содержат «p», будут показаны. Что я действительно хочу, так это команда, которая НАЧИНАЕТСЯ с «p» (как поведение в csh). Последнее оказывается быстрее для меня, по крайней мере. 14 лет назад 0
Честно говоря, я просто использую Bash Completion, чтобы обмануть это :). http://freshmeat.net/projects/bashcompletion/ 14 лет назад 0
1
Tom Wijsman

Оболочкой по умолчанию во FreeBSD является CSH. В CentOS должен быть пакет для него (для этого обратитесь к менеджеру пакетов).

HOWTO: Загрузите и установите оболочку csh / tcsh в Linux

Если вам интересно узнать точное поведение FreeBSD CSH, вы также можете прочитать это: http://www.vmunix.com/fbsd-book/configure.phtml 14 лет назад 0
1
knweiss

Вы также можете настроить личный ~/.inputrcфайл для вас bashтак:

"\e[5~": history-search-backward "\e[6~": history-search-forward 

Теперь клавиша page-up выполняет поиск в истории назад и вниз. Это то, что я использую. (Вам нужно перезапустить оболочку, чтобы она вступила в силу.)

Нажмите CTRL + V, а затем KEY, чтобы определить последовательность клавиш, если вы хотите связать команды оболочки с другим KEY (вместо page-up / page-down).

0
Rich Homolka

Это определяется вашей оболочкой. Вы можете определить, какую оболочку вы используете, набрав: echo $ 0

В FreeBSD вы обычно используете csh (который был изобретен в Беркли, доме BSD). В Linux вы обычно запускаете bash. Вы можете получить поведение «стрелка вверх», переключившись в режим редактирования истории emacs. Попробуйте набрать: установить -o emacs в вашем терминале.

Если вам нравится такое поведение, вы можете отредактировать свой файл $ HOME / .bashrc и добавить эту строку, и вы будете иметь в каждой оболочке

0
wandns
  1. Install tcsh as @flokra mentioned.
  2. Place a .cshrc file in your home directory. Inside of that file configure tcsh to show a list of matches to the partially typed command when you press the up or down arrow. Use http://svnweb.freebsd.org/base/stable/9/share/skel/dot.cshrc?revision=244007&view=co&pathrev=244007 as a guide, but what you are looking for is:

    bindkey -k up history-search-backward bindkey -k down history-search-forward 

Похожие вопросы