Yanıtlar:
ls /dev/pts/ | wc -l
Açık olan terminal pencerelerini saymak için yukarıdaki komutu kullanın.
Bunları listelemek için:
ps aux | awk '{print $7}' | grep -v "?"
Onları saymak için:
ps aux | awk '{print $7}' | grep -v "?" | wc -l
Üst TTY başlığını içerdiği için bu sayıdan 1 çıkarmanız gerekir.
Bu, kaç tane alt kabuğun çalıştığını saymak veya kaç tane terminal penceresinin açık olduğunu saymak isteyip istemediğinize bağlıdır.
Sadece terminal pencerelerini saymak için kullanmanız gerekir:
ls /dev/pts/ | wc -l (stated in a previous answer)
Örneğin:
Sistemimde şu anda altı adet tty mevcut. Ayrıca fg veya bg çalışan 4 işlem olan bir terminal açık pts / 0 var.
root 4565 0.0 0.0 4060 576 tty1 Ss+ May01 0:00 /sbin/mingetty /dev/tty1
root 4567 0.0 0.0 4060 572 tty2 Ss+ May01 0:00 /sbin/mingetty /dev/tty2
root 4569 0.0 0.0 4060 568 tty3 Ss+ May01 0:00 /sbin/mingetty /dev/tty3
root 4571 0.0 0.0 4060 576 tty4 Ss+ May01 0:00 /sbin/mingetty /dev/tty4
root 4573 0.0 0.0 4060 576 tty5 Ss+ May01 0:00 /sbin/mingetty /dev/tty5
root 4575 0.0 0.0 4060 572 tty6 Ss+ May01 0:00 /sbin/mingetty /dev/tty6
me 17482 0.0 0.0 110236 1136 pts/0 R+ 11:36 0:00 ps aux
root 20374 0.0 0.0 108336 1816 pts/0 Ss May23 0:00 -bash
root 20953 0.0 0.1 161436 1960 pts/0 S May23 0:00 su - me
me 20954 0.0 0.1 108524 1984 pts/0 S May23 0:00 -bash
Eğer arka plan alt süreçlerini almak istiyorsanız, o zaman sadece uniqiye boru atın:
ps aux | awk '{print $7}' | grep -v "?" | uniq | wc -l
TTY'nin başlık başlığı için hala 1 çıkarmanız gerekiyor, ancak yine de umursamadığınız gibi, tty'leri tamamen dışarı çıkararak bunu daha da geliştirebilirsiniz.
ps aux | awk '{print $7}' | grep -v "?" | grep -vi "tty*" | uniq
Bu size doğru bir sayı verecektir.
DÜZENLE
Daha fazla 'ps -a' düşünmek daha iyi çalışır ve ilk grep'i dışarıda bırakabilirsiniz.
ps a | awk '{print $2}' | grep -vi "tty*" | uniq | wc -l
grep
ve awk
gereksizdir, kullanın awk '/pattern/
; ve bu benim makinemde çalışmıyor - 1 olduğunda 19 rapor ediyor.
Macos'ta şunları kullanabilirsiniz:
cnt=$(w -h | grep "^$(whoami) *s[^ ]* *-"|wc -l)
echo "Your current terminal sessions: $cnt"
Burada bulundu: https://stackoverflow.com/a/6180547/6320039
expect
taklit kullanıcı oturumu,xterm
kabuk çalıştırmayan vb. Sayılır mı?