Выборочное сохранение истории команд в отдельный файл - PullRequest
1 голос
/ 25 апреля 2020

Я хотел бы изменить механизм истории в оболочке fi sh, чтобы все команды, начинающиеся с 'apt', (также) были (также) сохранены в отдельном файле.

Есть ли способ сделать это без перекомпиляции fi sh? Было бы лучше, если бы я мог включить / выключить эту функцию.

Спасибо!

1 Ответ

1 голос
/ 26 апреля 2020

Вместо этого вы, скорее всего, захотите посмотреть в / var / log / apt /, где apt хранит свои журналы. Они гораздо более авторитетны, чем все, что вы можете взломать вместе в оболочке, потому что apt на самом деле их пишет.


Теперь, если вы должны сделать это в fi sh, вы можете подключиться к fi * 1010 События *, например, событие fish_preexec, запускаемое перед выполнением команды:

function saveapt --on-event fish_preexec
    # The event hands the commandline over as the first argument
    # This really just checks if the commandline starts with 'apt',
    # so it won't e.g. detect `command apt` or calling it via functions
    # or scripts.
    if string match -r '^apt' -- $argv
        echo (date) $argv >> ~/apt_history.txt
    end
end

сохраните в файле с исходными данными, например config.fi sh или conf.d / *. fi sh

...