?

Log in

No account? Create an account
   Journal    Friends    Archive    Profile    Memories
 

История в bash'е - morfizm


Apr. 22nd, 2014 04:20 pm История в bash'е

Последние 3 года мне было лениво разобраться, как сделать, чтобы, набрав префикс, можно было бы клавишами вверх-вниз листать историю команд, начинающихся с данного префикса.

Проблема решилась за минуту по первой ссылке гугл-поиска, после того, как я ввёл: bash up down history
Правда, потом пришлось потратить ещё минуту, чтобы понять, как починить другие клавиши, добавив $include /etc/inputrc
Вот окончательный solution:

>$ cat ~/.inputrc

$include /etc/inputrc
## arrow up
"\e[A":history-search-backward
## arrow down
"\e[B":history-search-forward


Мораль: не надо лениться искать солюшны, облегчающие мучения. Очень часто простые решения лежат на поверхности, стоит только протянуть руку.

11 comments - Leave a commentPrevious Entry Share Next Entry

Comments:

From:birdwatcher
Date:April 22nd, 2014 11:48 pm (UTC)
(Link)
С ума сойти. А я всю жизнь говорю history | grep prefix
Теперь уж, наверное, поздно переучиваться.
From:raindog_2
Date:April 23rd, 2014 12:13 am (UTC)
(Link)
А я для этого использую Ctrl+R. Преимущество в том, что, во-первых, так искать не по префиксу, а по любой части коммандной строки. Во-вторых, набирать нужно не больше, чем достаточно, чтобы найти то, что тебе нужно - например, если я помню, что в команде было слово 'experimental', то скорее всего нужная строка появится уже после 'ex'.
From:be_unafraid
Date:April 23rd, 2014 01:02 am (UTC)
(Link)
Да, вот я не знаю, как когда-то жила без Ctrl+R :)
From:_m_e_
Date:April 23rd, 2014 05:50 am (UTC)
(Link)
+1 за Ctrl+R, и настраивать ничего не надо
From:_winnie
Date:May 1st, 2014 04:23 pm (UTC)
(Link)
Надо настраивать, иначе
1) история перезатирается за два дня:
2) исчезает, когда закрываешь терминал крестиком закрытия окна или при network-проблеме

export HISTCONTROL=ignoredups #не показывать по Ctrl+R одно и тоже
export HISTFILESIZE=1000000 # хранить историю несколько лет
export HISTSIZE=1000000 # вы можете настроить эту опцию два раза, чтобы было понятней!
export PROMPT_COMMAND='history -a;' #сохранять историю после каждой команды
From:_m_e_
Date:May 2nd, 2014 07:43 am (UTC)
(Link)
а, действительно, оказалось все просто кем-то было настроено по умолчанию

для ZSH это у меня выглядит примерно

setopt inc_append_history # Append incrementally, without waiting for shell to exit
setopt sharehistory # Share between multiple shells
setopt histignoredups # Ignore consecutive dupes
setopt histreduceblanks # Reduce blanks
From:morfizm
Date:May 4th, 2014 11:13 pm (UTC)
(Link)
Спасибо! Это очень полезно.
From:dennyrolling
Date:April 23rd, 2014 06:56 am (UTC)
(Link)
и я тоже за ^R
From:lyuden
Date:April 23rd, 2014 03:04 am (UTC)
(Link)
oh my zsh

не конкректно для этого солюшена но там много чего забавного
From:morfizm
Date:May 4th, 2014 11:05 pm (UTC)
(Link)
Я как-то пробовал zsh и у меня он не пошёл, было достаточно много отличий от bash, а bash это практически стандарт.
From:eternele
Date:April 23rd, 2014 08:00 am (UTC)
(Link)
!