Использование стрелки вверх для запуска предыдущей команды

10

Какую настройку мне нужно использовать со стрелкой вверх для запуска предыдущей команды? С Mac я могу использовать стрелку вверх, чтобы перезапустить команду, которую я только запускал, но она не работает с моей оболочкой bash.

Я использую 8.04 (я не могу использовать новейший дистрибутив из-за некоторых проблем с версией компилятора).

ADDED

Я ничего не менял, так как это новая версия с VMWare Fusion на Mac.

    
задан prosseek 11.04.2011 в 16:12
источник

3 ответа

10

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

set -o

Выход должен содержать (обратите внимание на строку history on ):

histexpand      on
history         on
ignoreeof       off

Если это не разрешено, вам нужно запустить set -o history . Чтобы сделать это изменение постоянным, вам нужно добавить его в ~/.bashrc :

set -o history

Если вы хотите запустить предыдущую команду, вы также можете запустить следующую команду:

!!

Из страницы руководства Bash :

Event Designators
   An event designator is a reference to a command line entry in the history list.

   !      Start a history substitution, except when followed by a blank, newline,
          carriage return, = or ( (when the extglob shell option  is
          enabled using the shopt builtin).
   !n     Refer to command line n.
   !-n    Refer to the current command line minus n.
   !!     Refer to the previous command.  This is a synonym for '!-1'.
   !string
          Refer to the most recent command starting with string.
   !?string[?]
          Refer to the most recent command containing string.  The trailing ? 
          may be omitted if string is followed immediately by a newline.
   ^string1^string2^
          Quick  substitution.  Repeat the last command, replacing string1 with
          string2.  Equivalent to ''!!:s/string1/string2/'' (see Modifiers below).
   !#     The entire command line typed so far.

Если вы используете Bash, вы можете использовать ярлыки по умолчанию для навигации по истории:

  • Ctrl + P : предыдущая команда
  • Ctrl + N : Следующая команда

    Команды манипулирования историей    предыдущая история (C-p)           Извлеките предыдущую команду из списка истории,           список.    следующая история (C-n)           Выполните следующую команду из списка истории, перемещаясь вперед           список.

ответ дан Lekensteyn 11.04.2011 в 16:32
источник
13

Убедитесь, что вы действительно используете bash. Обычным getcha является создание нового пользователя с useradd вместо adduser или приложения «Пользователи и группы» (GUI). В первом случае набор оболочки по умолчанию равен /bin/sh . Бег chsh ( ch ange sh ell), чтобы убедиться, что он установлен на /bin/bash .

    
ответ дан geirha 11.04.2011 в 16:32
1

В терминале введите:

gedit  ~/.inputrc

Затем скопируйте вставку и сохраните:

"\e[A": history-search-backward
"\e[B": history-search-forward
"\e[C": forward-char
"\e[D": backward-char

С этого момента в терминале вы можете выполнять инкрементный поиск. Все, что вам нужно сделать, чтобы найти предыдущую команду, - это ввести первые две или три буквы и стрелку вверх, чтобы быстро найти вас.

    
ответ дан Shailesh Singh 24.08.2015 в 14:42