Можно использовать regex в ударе (3.0 или выше) для выполнения этого:
if [[ $strname =~ 3(.+)r ]]; then
strresult=${BASH_REMATCH[1]}
else
echo "unable to parse string $strname"
fi
В ударе группы получения от regex размещаются в специальный массив BASH_REMATCH
. Элемент 0 содержит все соответствие, и 1 содержит соответствие для первой группы получения.
mysql
использование readline
для интерфейса командной строки и для обработки истории.
readline
настроен в ~/.inputrc
файл и в /etc/inputrc
в масштабе всей системы.
У Вас, вероятно, есть a
set history-size 300
где-нибудь там. Просто удалите ту установку или добавьте a:
$if Mysql
set history-size -1
$endif
к Вашему ~/.inputrc
.
Можно запустить хвост-F на файле истории и передать вывод по каналу в новый файл:
tail -F ~/.mysql_history >> ~/.mysql_complete_history
Вы получите все команды, (хотя файл вырастет довольно много каждого раза: целый файл истории добавляется к ~/.mysql_complete_history время файла, Вы выходите из mysql консоли),
Править:
Правильно заполниться ~/.mysql_complete_history
с точным выводом ~/.mysql_history
используйте этот сценарий Stephane Chazelas
Не уверенный, работало ли это на Вас, но man chattr
показывает, что существует флаг a
который обозначает, "добавляют только", таким образом, я дал бы ему попытку и видел бы.;)
EXT4_FS_XATTR
поддержка в моем ядре.
– Martin Vegter
07.11.2013, 13:08
xattr
поддержка даже tmpfs
. А-ч
– poige
07.11.2013, 15:38
Если Вы хотите видеть все запросы, которые Вы использовали во все время, которое можно включить переменной общего журнала (см. также, Как включить MySQL Query Log?).
Знайте, что это вызовет много CPU и замедлит mysql),
Вы могли затем создать новый файл истории из того журнала каждый раз перед вводом консоли
cat /var/lib/mysql/yourhost.log | cut -f4-99|while read i; do echo $i\;; done | > ~/.mysql_history
это поместит все команды, которые выполняются на Вашем сервере в Вашем файле истории.
Это не прекрасно, команды причины, которые были по нескольким строкам, находятся в единственной строке истории теперь (но возможно можно зафиксировать это также при необходимости в нем),
.mysql_history
имеет все еще точно 300 строк – Martin Vegter 03.12.2013, 17:17mysql
считайте Ваш~/.inputrc
? Подтвердите сstrace -fe open mysql ...
. Что находится в Вашем~/.inputrc
теперь (и прежде)? Что делаетenv | grep MYSQL
вернуть? – Stéphane Chazelas 03.12.2013, 17:38mysql
был псевдоним кalias mysql='/usr/bin/rlwrap -a -pRED /usr/bin/mysql'
. Когда я отключаю псевдоним, он работает. Шанс использовать Ваш прием с моим активным псевдонимом? (Я пытался использовать$if rlwrap
в моем .inputrc, но это, кажется, не работает), – Martin Vegter 04.12.2013, 10:09rlwrap -s 99999999
, см. rlwrap страницу справочника. Это - rlwrap, который накладывает то ограничение на 300, можно забыть об изменениях в~/.inputrc
. – Stéphane Chazelas 04.12.2013, 10:43