कैसे गिनें कि कितने शेल / टर्मिनल चल रहे हैं?


10

मैं गिनने की कोशिश कर रहा हूं कि वर्तमान में कितने शेल या टर्मिनल विंडो चल रहे हैं।

मैंने कोशिश की ps a|grep bash; ps a|grep tty;

लेकिन यह गलत हो सकता है।


टर्मिनल विंडो की आपकी परिभाषा क्या है ? क्या एक गनोम-टर्मिनल टैब, वर्चुअल टर्मिनल, व्यक्ति ssh, स्क्रीन / tmux pane, लॉगिंग expectयूजर सेशन में लॉगिंग करता है, xtermशेल नहीं चल रहा है, आदि की गिनती?
स्टीफन चेज़लस

1
टर्मिनल विंडो "ctrl-alt-t" के साथ खुली। मैंने इसे गिनकर हल किया कि कितने "pts"> कौन कमांड में कौन हैं। grep "pts" | wc -l
मार्टिनचो

जवाबों:


6
ls /dev/pts/  | wc -l

टर्मिनल विंडो को खोलने के लिए उपरोक्त कमांड का उपयोग करें।


कोशिश की है कि। यह 23 दिखाता है। और मेरे पास केवल एक टर्मिनल / बैश विंडो खुली है।
मार्टिनो

@ user68957 क्या आप किसी भी संयोग से कई उपयोगकर्ताओं के साथ एक साझा कंप्यूटर पर हैं?
चिराग भाटिया - chirag64

एक घर का कंप्यूटर, उस समय एक उपयोगकर्ता। ट्रिक को गिनना होगा कि कितने टर्मिनल विंडो खुले हैं, या टर्मिनल प्रक्रियाएं हैं। यदि मैं एक> कौन करता हूं, तो यह दो उपयोगकर्ताओं को सूचीबद्ध करता है: 0 yyyy-mm-dd hh-mm (: 0) me pts / 0 yyyy-mm-dd hh-mm (: 0) यदि मैं अपनी टर्मिनल विंडो खोलता हूं, तो > यह कौन दिखाता है: मुझे: 0 yyyy-mm-dd hh-mm (: 0) me pts / 0 yyy-mm-dd hh-mm (: 0) me pts / 1 yyyy-mm-dd hh-mm (: 0) क्या मुझे सिर्फ "pts /" grep चाहिए?
Martincho

2

उन्हें सूचीबद्ध करने के लिए:

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. है
जसोवरीयन

मैं थोड़ा असमंजस में हूँ। अभी, मैं Ubuntu पर 14. 14. एक ही टर्मिनल / बैश विंडो खुली है। एबोब कमांड के साथ, मुझे 23 या 13 मिलता है, जब मुझे 1, या 2 मिलना चाहिए, अगर मैं ctrl-alt-t के साथ एक और टर्मिनल खोलता हूं
मार्टिनचो

यह पहला आदेश पृष्ठभूमि में गोले में चलने वाले बच्चों की प्रक्रियाओं को
गिनाता है

@ अंजोनवर्यन - यह खान पर ठीक काम करता है। जाग के साथ grep का उपयोग करना व्यक्ति की प्राथमिकता है। यदि कोई व्यक्ति जागने में पूरी चीज़ करने में अधिक सहज है तो वह ठीक है।
Jeight

"यह मेरा ठीक काम करता है" शायद ही आपके जवाब की पुष्टि करता है ... शायद आप "तुम्हारा" का कुछ विवरण शामिल कर सकते हैं ताकि लोग जानते हैं कि यह केवल उस प्रणाली पर लागू होता है।
जसोनव्रीयन


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.