Memilih Kolum serta Membuang Perkataan Berulang dari Output Commandline

Sebentar tadi saya cuba melihat senarai pengguna yang log masuk ke salah satu server. Di sini saya ingin kongsikan cara untuk menapis hasil yang kita mahu dari output yang panjang berjela di dalam commandline.

Untuk melihat senarai pengguna yang log masuk melalui shell adalah dengan menjalankan perintah

$ lsof -i -n | egrep '\<sshd\>' 

Anda akan mendapat output seperti gambar dibawah.

Dengan melihat output ini, adakah anda dapat mengetahui siapa dan berapa ramaikah pengguna yang sedang log masuk? Tidak.

Jalankan perintah ini untuk memaparkan hanya nama pengguna

$ lsof -i -n | egrep '\<sshd\>' | awk '{print $3}'

Anda akan mendapat *output *seperti di bawah.

awk ‘{print $3}’ diguna untuk memilih kolum ketiga iaitu nama pengguna. Anda boleh mengubah kolum pilihan dengan cara menukar 3 kepada kolum yang anda mahu. Contoh: kolum 4 adalah awk ‘{print $4}’

Sekarang anda lebih mudah melihat senarai pengguna. Tapi, wujud pengguna yang berulang. Jadi kita perlu menapis lagi supaya hasilnya lebih kemas dan mudah dibaca.

Untuk membuang pengguna yang berulang, sila jalankan perintah ini

$ lsof -i -n | egrep '\<sshd\>' |  awk '{print $3}' | awk '!seen[$1]++'

ssh user siap

awk ‘!seen[$1]++’ bertujuan menampilkan perkataan baharu yang pertama dilihat. Bermakna, sekiranya perkataan sama ditemui lagi, perkataan itu akan dibuang dari senarai.
Hasil di atas lebih mudah untukt melihat siapa serta berapa pengguna yang sedang log masuk ke sesebuah server




Leave a Reply

Your email address will not be published. Required fields are marked *