Jaka jest twoja definicja okna terminala ? Czy liczy się karta terminal-gnome, terminal wirtualny, osoba logująca się przez ssh, panel screen / tmux, expectemulowana sesja użytkownika, xtermbrak uruchomionej powłoki itp.?
Stéphane Chazelas
1
Okno terminalu otwarte za pomocą „ctrl-alt-t”. Rozwiązałem to, policząc ile „pts” jest w> kto dowodzi kim | grep "pts" | wc-l
Martincho
Odpowiedzi:
6
ls /dev/pts/| wc -l
Użyj powyższego polecenia, aby policzyć otwarte okna terminala.
Próbowałem tego. Pokazuje 23. I mam tylko jedno otwarte okno terminalu / bash.
Martincho
@ user68957 Czy przypadkiem używasz wspólnego komputera z wieloma użytkownikami?
Chirag Bhatia - chirag64
Jeden komputer domowy, jeden użytkownik naraz. Sztuką byłoby policzyć, ile okien terminali jest otwartych lub procesów terminalowych. Jeśli zrobię> kto, wyświetli to listę dwóch użytkowników: 0 rrrr-mm-dd gg-mm (: 0) me pts / 0 rrrr-mm-dd gg-mm (: 0) Jeśli otworzę inne okno terminala, z > kto to pokazuje: ja: 0 rrrr-mm-dd gg-mm (: 0) me pts / 0 rrrr-mm-dd gg-mm (: 0) me pts / 1 rrrr-mm-dd gg-mm (: 0) Czy powinienem po prostu grepować „pts /”?
Martincho
2
Aby je wymienić:
ps aux | awk '{print $7}'| grep -v "?"
Aby je policzyć:
ps aux | awk '{print $7}'| grep -v "?"| wc -l
Musisz odjąć 1 od tego numeru, ponieważ zawiera on górny nagłówek TTY.
Wszystko zależy od tego, czy chcesz policzyć, ile jest uruchomionych podpowłok lub czy chcesz policzyć, ile okien terminala jest otwartych.
Aby policzyć tylko okna terminali, musisz użyć:
ls /dev/pts/| wc -l (stated in a previous answer)
Na przykład:
W moim systemie dostępnych jest obecnie sześć tty. Mam również jeden terminal otwarty pts / 0, który ma 4 procesy uruchomione w fg lub 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
Jeśli chcesz usunąć procesy potomne w tle, po prostu potokuj do uniq:
Nadal musisz odjąć 1 dla tytułu nagłówka TTY, ale możesz to jeszcze poprawić, usuwając tty całkowicie, ponieważ wygląda na to, że i tak nie przejmujesz się tym.
grepi awkjest zbędny, użyj awk '/pattern/; i to nie działa na moim komputerze - zgłasza 19, gdy mam 1.
jasonwryan
Jestem trochę zmieszany. Obecnie korzystam z Ubuntu 14. Otwarte jest tylko jedno okno terminalu / bash. Z poleceniami abobe dostaję 23 lub 13, kiedy powinienem dostać 1, lub 2 w przypadku, gdy otworzę inny terminal z ctrl-alt-t
Martincho
To pierwsze polecenie zlicza procesy potomne działające w powłokach w tle, a nie tylko otwarte sesje terminalowe
Jeight
@jasonwryan - Działa dobrze na mojej. Używanie grep z awk jest preferencją osoby. Jeśli ktoś jest bardziej komfortowy, robiąc wszystko w awk, to nie ma sprawy.
Jeight
„Działa dobrze w moim przypadku” z trudem potwierdza twoją odpowiedź… Być może mógłbyś podać jakiś szczegół tego, czym jest „twój”, aby ludzie wiedzieli, że dotyczy to tylko tego systemu.
expect
emulowana sesja użytkownika,xterm
brak uruchomionej powłoki itp.?Odpowiedzi:
Użyj powyższego polecenia, aby policzyć otwarte okna terminala.
źródło
Aby je wymienić:
Aby je policzyć:
Musisz odjąć 1 od tego numeru, ponieważ zawiera on górny nagłówek TTY.
Wszystko zależy od tego, czy chcesz policzyć, ile jest uruchomionych podpowłok lub czy chcesz policzyć, ile okien terminala jest otwartych.
Aby policzyć tylko okna terminali, musisz użyć:
Na przykład:
W moim systemie dostępnych jest obecnie sześć tty. Mam również jeden terminal otwarty pts / 0, który ma 4 procesy uruchomione w fg lub bg.
Jeśli chcesz usunąć procesy potomne w tle, po prostu potokuj do uniq:
Nadal musisz odjąć 1 dla tytułu nagłówka TTY, ale możesz to jeszcze poprawić, usuwając tty całkowicie, ponieważ wygląda na to, że i tak nie przejmujesz się tym.
To da ci dokładne obliczenie.
EDYTOWAĆ
Myślenie o tym bardziej „ps -a” działałoby lepiej i możesz pominąć pierwsze grep.
źródło
grep
iawk
jest zbędny, użyjawk '/pattern/
; i to nie działa na moim komputerze - zgłasza 19, gdy mam 1.Na komputerach Mac możesz użyć:
Znalezione tutaj: https://stackoverflow.com/a/6180547/6320039
źródło
Mógłbyś
$ pgrep bash
Ty też możesz to zrobić
$ W
źródło