Використовуйте getentдля перерахування домашніх каталогів.
getent passwd |
cut -d : -f 6 |
sed 's:$:/.bash_history:' |
xargs -d '\n' grep -s -H -e "$pattern"
Якщо ваші домашні каталоги знаходяться у відомому місці, це може бути так само просто
grep -e "$pattern" /home/*/.bash_history
Звичайно, якщо користувач використовує іншу оболонку або інше значення HISTFILE, це не дасть вам великого значення. Це також не розповість вам про команди, які не виконувалися через оболонку, або про псевдоніми та функції та видалені тепер зовнішні команди, які були в деякому каталозі користувачів на початку користувача $PATH. Якщо ви хочете дізнатися, які команди виконували користувачі, вам потрібен облік процесів або якась більш фантазійна система аудиту; див. Моніторинг активності на моєму комп’ютері. , Як перевірити, як довго тривав процес після його закінчення? .