GNU/Linux >> Belajar Linux >  >> Linux

Bisakah saya mencari riwayat bash di semua pengguna di server?

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.


Linux
  1. Cara menggunakan perintah riwayat Bash

  2. Bagaimana saya bisa mencari pola multiline dalam sebuah file?

  3. Baris perintah:cari dan ganti di semua nama file yang cocok dengan grep

  1. Mengurai riwayat Bash di Linux

  2. Setel ulang posisi pencarian riwayat bash

  3. Bagaimana saya bisa sepenuhnya mencatat semua tindakan skrip bash?

  1. Bisakah Skrip Bash Dihubungkan ke File?

  2. Bash History:"ignoredups" Dan "erasedups" Mengatur Konflik Dengan Sejarah Umum Di Seluruh Sesi?

  3. Bagaimana Agar Type-ahead Terapkan Ke Bash History Search (ctrl-r)?