Apa definisi Anda tentang jendela terminal ? Apakah tab gnome-terminal, terminal virtual, orang yang masuk lebih dari ssh, layar / panel tmux, expectsesi pengguna ditiru, xtermtidak menjalankan shell, dll menghitung?
Stéphane Chazelas
1
Jendela terminal dibuka dengan "ctrl-alt-t". Saya menyelesaikannya dengan menghitung berapa "pts" yang ada dalam perintah siapa | grep "pts" | wc -l
Martincho
Jawaban:
6
ls /dev/pts/| wc -l
Gunakan perintah di atas untuk menghitung jendela terminal terbuka.
Sudah mencobanya. Ini menunjukkan 23. Dan saya hanya memiliki satu terminal / jendela bash terbuka.
Martincho
@ user68957 Apakah Anda menggunakan komputer bersama dengan banyak pengguna?
Chirag Bhatia - chirag64
Satu komputer rumah, satu pengguna pada saat itu. Caranya adalah dengan menghitung berapa banyak terminal windows yang terbuka, atau terminal proses. Jika saya melakukan> siapa, daftar dua pengguna saya: 0 yyyy-mm-dd hh-mm (: 0) saya poin / 0 yyyy-mm-dd hh-mm (: 0) Jika saya membuka jendela terminal lain, dengan > siapa yang menunjukkan: saya: 0 yyyy-mm-dd hh-mm (: 0) saya poin / 0 yyyy-mm-dd hh-mm (: 0) saya poin / 1 yyyy-mm-dd hh-mm (: 0) Haruskah saya hanya grep "Poin"?
Martincho
2
Untuk daftar mereka:
ps aux | awk '{print $7}'| grep -v "?"
Untuk menghitungnya:
ps aux | awk '{print $7}'| grep -v "?"| wc -l
Anda harus mengurangi 1 dari angka itu karena termasuk tajuk TTY atas.
Ini semua tergantung apakah Anda ingin menghitung berapa banyak shell yang berjalan atau jika Anda ingin menghitung berapa banyak jendela terminal yang terbuka.
Untuk menghitung hanya terminal windows Anda perlu menggunakan:
ls /dev/pts/| wc -l (stated in a previous answer)
Sebagai contoh:
Di sistem saya saat ini tersedia enam tty. Saya juga memiliki satu terminal buka pts / 0 yang memiliki 4 proses yang berjalan di fg atau bg.
root 45650.00.04060576 tty1 Ss+May010:00/sbin/mingetty /dev/tty1
root 45670.00.04060572 tty2 Ss+May010:00/sbin/mingetty /dev/tty2
root 45690.00.04060568 tty3 Ss+May010:00/sbin/mingetty /dev/tty3
root 45710.00.04060576 tty4 Ss+May010:00/sbin/mingetty /dev/tty4
root 45730.00.04060576 tty5 Ss+May010:00/sbin/mingetty /dev/tty5
root 45750.00.04060572 tty6 Ss+May010:00/sbin/mingetty /dev/tty6
me 174820.00.01102361136 pts/0 R+11:360:00 ps aux
root 203740.00.01083361816 pts/0SsMay230:00-bash
root 209530.00.11614361960 pts/0 S May230:00 su - me
me 209540.00.11085241984 pts/0 S May230:00-bash
Jika Anda ingin menghapus proses latar belakang anak kemudian hanya pipa ke uniq:
Anda masih harus mengurangi 1 untuk judul tajuk TTY, tetapi Anda dapat lebih meningkatkan ini dengan mengeluarkan tty sama sekali karena tampaknya Anda tidak peduli dengan mereka.
grepdan awkberlebihan, gunakan awk '/pattern/; dan ini tidak bekerja pada mesin saya - itu melaporkan 19 ketika saya memiliki 1.
jasonwryan
Saya sedikit bingung. Saat ini, saya di Ubuntu 14. Hanya ada satu terminal / jendela bash terbuka. Dengan perintah abobe, saya mendapatkan 23 atau 13, ketika saya harus mendapatkan 1, atau 2 jika saya membuka terminal lain dengan ctrl-alt-t
Martincho
Perintah pertama itu menghitung proses anak yang berjalan di shell di latar belakang dan tidak hanya sesi terminal terbuka
Jeight
@jasonwryan - Ini berfungsi dengan baik pada milikku. Menggunakan grep dengan awk adalah preferensi orang. Jika seseorang lebih nyaman melakukan semuanya dengan awk maka itu tidak masalah.
Jeight
"Itu bekerja dengan baik pada saya" hampir tidak membuktikan jawaban Anda ... Mungkin Anda bisa memasukkan beberapa detail dari apa "milikmu" sehingga orang sadar bahwa itu hanya berlaku untuk sistem itu.
expect
sesi pengguna ditiru,xterm
tidak menjalankan shell, dll menghitung?Jawaban:
Gunakan perintah di atas untuk menghitung jendela terminal terbuka.
sumber
Untuk daftar mereka:
Untuk menghitungnya:
Anda harus mengurangi 1 dari angka itu karena termasuk tajuk TTY atas.
Ini semua tergantung apakah Anda ingin menghitung berapa banyak shell yang berjalan atau jika Anda ingin menghitung berapa banyak jendela terminal yang terbuka.
Untuk menghitung hanya terminal windows Anda perlu menggunakan:
Sebagai contoh:
Di sistem saya saat ini tersedia enam tty. Saya juga memiliki satu terminal buka pts / 0 yang memiliki 4 proses yang berjalan di fg atau bg.
Jika Anda ingin menghapus proses latar belakang anak kemudian hanya pipa ke uniq:
Anda masih harus mengurangi 1 untuk judul tajuk TTY, tetapi Anda dapat lebih meningkatkan ini dengan mengeluarkan tty sama sekali karena tampaknya Anda tidak peduli dengan mereka.
Itu akan memberi Anda hitungan yang akurat.
EDIT
Memikirkannya lebih 'ps -a' akan bekerja lebih baik dan Anda dapat mengabaikan grep pertama.
sumber
grep
danawk
berlebihan, gunakanawk '/pattern/
; dan ini tidak bekerja pada mesin saya - itu melaporkan 19 ketika saya memiliki 1.Di Macos Anda dapat menggunakan:
Ditemukan di sini: https://stackoverflow.com/a/6180547/6320039
sumber
Anda bisa melakukannya
$ pgrep bash
Anda juga bisa melakukannya
$ W
sumber