Bagaimana untuk melihat berapa banyak pengguna di Linux

Perintah yang menunjukkan anda setiap sesi log masuk terbuka pada mesin:

Anda juga boleh menggunakan perintah w untuk mendapatkan pandangan yang lebih terperinci tentang apa yang dilakukan setiap sesi log masuk:

Kita boleh mengira sesi dibuka dengan mengira baris dalam output arahan siapa atau w jika kita menggunakan pilihan -h (untuk menekan baris pengepala, yang kita tidak mahu dikira). Untuk melakukan ini, kami akan menaikkan output menggunakan bar menegak (" | ") untuk membuat saluran paip arahan, menghantar output satu program ke program seterusnya dalam perancangan. Di sini, kami mengira garis siapa dan w -h dengan memahat mereka ke wc -l, dengan berkesan menjana perhitungan sesi aktif.

Mengira pengguna unik

Kaedah di atas mengira sesi log masuk, tetapi jika pengguna mempunyai lebih daripada satu sesi login dibuka, mereka akan dihitung lebih dari satu kali. Untuk menghitung pengguna yang unik, kita perlu lebih kreatif. Kita boleh menggunakan perintah potong untuk melupuskan semua maklumat kecuali nama pengguna:

Perintah di atas berkata, "mengambil output siapa, dan hanya memaparkan maklumat pertama, yang dibatalkan oleh ruang." Ia memberikan kita senarai nama pengguna sahaja, tetapi kita masih perlu menyaring nama berulang.

Untuk melakukan ini, kita boleh menambah perintah sort -u . Ini menyusun nama mengikut abjad dan menyaring sebarang baris yang tidak unik:

Dan akhirnya, untuk mengira pengguna unik ini, kami menambah wc -l pada akhir saluran paip arahan kami:

Menggunakan ps untuk mengira mana-mana pengguna yang menjalankan proses

Satu lagi teknik yang berguna adalah dengan menggunakan arahan ps untuk membuat senarai setiap pengguna pada sistem yang memiliki proses sedang berjalan. Untuk melakukan ini, kita boleh menggunakan ps dengan pilihan -e, -a, -h, dan -o pengguna . Mereka boleh digabungkan seperti berikut:

Perintah ini mengatakan, "tunjukkan maklumat untuk proses yang sangat dimiliki oleh pengguna ny, jangan tunjukkan maklumat, dan cetak nama pengguna ."

Perhatikan bahawa sebagai tambahan kepada pengguna yang sebelum ini disenaraikan oleh siapa, kami juga melihat akar yang disenaraikan di sini. Perintah yang menunjukkan hanya pengguna yang log masuk ke sesi terminal, tetapi ps akan menyenaraikan mana-mana pengguna yang memiliki proses berjalan, walaupun mereka tidak mempunyai terminal terbuka. Perintah PS termasuk root, dan ia mungkin termasuk pengguna yang khusus sistem tertentu.

Sama seperti sebelumnya, kita boleh menyusun output kami dan hanya menyenaraikan nama unik:

... dan menghasilkan jumlah yang dikehendaki: