Туннелируйте весь сетевой трафик через другой сервер Linux

Команда history никогда не работает с файлом, только с его списком истории в памяти. Вы можете только читать ( r ), писать ( -w ) и добавлять ( -a ) этот список в файл или из него, а затем открывать или управлять списком в памяти. Чтение из файла заменит или расширит историю в текущем сеансе оболочки.

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

bash -c 'history -cr file ; history'

или

( history -cr file ; history )

Вы можете добавить любые параметры истории, которые хотите, во вторую ] history в любом случае. Если вы будете делать это часто, вы можете определить функцию, принимающую файл в качестве аргумента и запускающую версию подоболочки:

histfile() {
    ( history -cr "$1" ; history )
}

Если вы заинтересованы в отображении сохраненных временных меток, вам также необходимо установить HISTTIMEFORMAT . Если вы используете подоболочку и получаете метки времени в оболочке хоста, они должны быть там автоматически, но для версии bash -c или сценария вам необходимо установить ее:

bash -c 'history -cr file ; HISTTIMEFORMAT="%Y%m%d%H%I%S " history'

Вы также можете экспортировать переменную из родительской оболочки.

2
20.08.2015, 23:44
0 ответов

Теги

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