मैं गिनने की कोशिश कर रहा हूं कि वर्तमान में कितने शेल या टर्मिनल विंडो चल रहे हैं।
मैंने कोशिश की ps a|grep bash;
ps a|grep tty;
लेकिन यह गलत हो सकता है।
मैं गिनने की कोशिश कर रहा हूं कि वर्तमान में कितने शेल या टर्मिनल विंडो चल रहे हैं।
मैंने कोशिश की ps a|grep bash;
ps a|grep tty;
लेकिन यह गलत हो सकता है।
जवाबों:
ls /dev/pts/ | wc -l
टर्मिनल विंडो को खोलने के लिए उपरोक्त कमांड का उपयोग करें।
उन्हें सूचीबद्ध करने के लिए:
ps aux | awk '{print $7}' | grep -v "?"
उन्हें गिनने के लिए:
ps aux | awk '{print $7}' | grep -v "?" | wc -l
आपको उस नंबर से 1 घटाना होगा क्योंकि इसमें शीर्ष TTY शीर्षलेख शामिल है।
यह सब निर्भर करता है यदि आप गिनना चाहते हैं कि कितने उप गोले चल रहे हैं या यदि आप गिनना चाहते हैं कि कितनी टर्मिनल खिड़कियां खुली हैं।
बस टर्मिनल खिड़कियों की गणना करने के लिए आपको उपयोग करने की आवश्यकता होगी:
ls /dev/pts/ | wc -l (stated in a previous answer)
उदाहरण के लिए:
मेरे सिस्टम पर वर्तमान में छह ट्टी उपलब्ध हैं। मेरे पास एक टर्मिनल ओपन पीटी / 0 है जिसमें एफजी या बीजी में 4 प्रक्रियाएं चल रही हैं।
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
यदि आप पृष्ठभूमि की बाल प्रक्रियाओं को दूर करना चाहते हैं तो बस यूनीक को पाइप करें:
ps aux | awk '{print $7}' | grep -v "?" | uniq | wc -l
आपको अभी भी TTY के शीर्ष लेख शीर्षक के लिए 1 को घटाना है, लेकिन आप टटी को पूरी तरह से निकालकर इसमें और सुधार कर सकते हैं क्योंकि ऐसा प्रतीत होता है कि आप किसी भी रास्ते की परवाह नहीं करते हैं।
ps aux | awk '{print $7}' | grep -v "?" | grep -vi "tty*" | uniq
जो आपको एक सटीक गिनती देगा।
संपादित करें
इसके बारे में अधिक सोचना 'ps -a' बेहतर काम करेगा और आप पहले grep को छोड़ सकते हैं।
ps a | awk '{print $2}' | grep -vi "tty*" | uniq | wc -l
grep
और awk
बेमानी है, उपयोग करें awk '/pattern/
; और यह मेरी मशीन पर काम नहीं करता है - यह 19 की रिपोर्ट करता है जब मेरे पास 1. है
मैकोस पर आप उपयोग कर सकते हैं:
cnt=$(w -h | grep "^$(whoami) *s[^ ]* *-"|wc -l)
echo "Your current terminal sessions: $cnt"
यहां मिले: https://stackoverflow.com/a/6180547/6320039
expect
यूजर सेशन में लॉगिंग करता है,xterm
शेल नहीं चल रहा है, आदि की गिनती?