Gunakan getent
untuk menghitung direktori home.
getent passwd |
cut -d : -f 6 |
sed 's:$:/.bash_history:' |
xargs -d '\n' grep -s -H -e "$pattern"
Jika direktori home Anda berada di lokasi yang terkenal, itu bisa sesederhana
grep -e "$pattern" /home/*/.bash_history
Tentu saja, jika pengguna menggunakan shell yang berbeda atau nilai HISTFILE
yang berbeda , ini tidak akan memberi tahu Anda banyak. Ini juga tidak akan memberi tahu Anda tentang perintah yang tidak dijalankan melalui shell, atau tentang alias dan fungsi dan perintah eksternal yang sekarang dihapus yang ada di beberapa direktori pengguna di awal $PATH
pengguna . Jika yang ingin Anda ketahui adalah perintah apa yang telah dijalankan pengguna, Anda memerlukan akuntansi proses atau sistem audit yang lebih bagus; lihat Memantau aktivitas di komputer saya., Bagaimana cara memeriksa berapa lama proses berjalan setelah selesai?.
find /home -name .bash_history | xargs grep <string>
Atau:
grep string $(find /home -name .bash_history)
Perhatikan bahwa ini mencakup direktori home di lokasi default. Akan lebih baik untuk mengurai /etc/passwd
atau aktifkan getent
, dan urai hasilnya.
for i in $(getent passwd | cut -d: -f6 ); do grep string ${i}/.bash_history; done
Anda bisa melakukan
find /home | grep bash_history | xargs grep "whatever"
Tapi menurut saya itu tidak lebih baik dari yang Anda pikirkan.