Почему я получаю сообщение об ошибке при удалении записей из истории Bash?

Вы можете попробовать следующее.

Поместите этот код в local_httpd.teфайл:

policy_module(local_httpd, 0.0.1)

gen_require(`
    type httpd_t;
')

netutils_domtrans_ping(httpd_t)

Убедитесь, что у вас установлен selinux-policy-develRPM, а затем выполните:

make -f /usr/share/selinux/devel/Makefile local_httpd.ppиsemodule -i local_httpd.pp

Это должно позволить apache (httpd _t )перейти в контекст исполняемого файла ping

8
26.07.2020, 04:01
1 ответ

Возникает ошибка, поскольку xargs не может найти команду history. Это встроенная оболочка, как вы можете подтвердить с помощью type history, поэтому она невидима для xargs. Попробуйте

echo 1 | xargs history -d; echo $?

Возвращаемое значение равно 127. В man xargs, секция EXIT STATUS:

0 if it succeeds
123 if any invocation of the command exited with status 1-125
124 if the command exited with status 255
125 if the command is killed by a signal
126 if the command cannot be run
127 if the command is not found
1 if some other error occurred.

Расширяя комментарий ilkkachu , в принципе вы можете вызвать Bash и вызвать historyиз порожденной оболочки.

echo 1 | xargs -I {} bash -c 'echo $HISTFILE; history' bash {}

Вышеупомянутая команда не вызывает ошибку, поскольку встроенная функция historyдоступна для оболочки Bash. Однако из той же команды можно также обнаружить, что HISTFILEне установлен и historyничего не выводит. :История не включена в не -интерактивной оболочке. Опять же, вы можете активировать его с помощью встроенного set, экспортировать HISTFILEи HISTFILESIZE... Но мы не хотим головной боли. Редактирование .bash_historyнапрямую — самый простой способ.

14
18.03.2021, 23:18

Теги

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