¿Cuál es su definición de ventana de terminal ? ¿Cuenta una pestaña gnome-terminal, una terminal virtual, una persona que inicia sesión a través de ssh, un panel screen / tmux, expectuna sesión de usuario emulada, que xtermno ejecuta un shell, etc.?
Stéphane Chazelas
1
Ventana de terminal abierta con "ctrl-alt-t". Lo resolví contando cuántos "pts" hay en> quién manda quién | grep "pts" | wc -l
Martincho
Respuestas:
6
ls /dev/pts/| wc -l
Use el comando anterior para contar las ventanas de terminal abiertas.
Intenté eso. Muestra 23. Y solo tengo una ventana de terminal / bash abierta.
Martincho
@ user68957 ¿Está usted en una computadora compartida con múltiples usuarios por casualidad?
Chirag Bhatia - chirag64
Una computadora en casa, un usuario a la vez. El truco sería contar cuántas ventanas de terminal están abiertas o procesos de terminal. Si hago un> who, me enumera dos usuarios: 0 aaaa-mm-dd hh-mm (: 0) me pts / 0 aaaa-mm-dd hh-mm (: 0) Si abro otra ventana de terminal, con > a quién muestra: yo: 0 aaaa-mm-dd hh-mm (: 0) me pts / 0 aaaa-mm-dd hh-mm (: 0) me pts / 1 aaaa-mm-dd hh-mm (: 0) ¿Debería simplemente grep "pts /"?
Martincho
2
Para enumerarlos:
ps aux | awk '{print $7}'| grep -v "?"
Para contarlos:
ps aux | awk '{print $7}'| grep -v "?"| wc -l
Deberá restar 1 de ese número, ya que incluye el encabezado TTY superior.
Todo esto depende si desea contar cuántos sub shells se están ejecutando o si desea contar cuántas ventanas de terminal están abiertas.
Para contar solo las ventanas de terminal que necesitaría usar:
ls /dev/pts/| wc -l (stated in a previous answer)
Por ejemplo:
En mi sistema actualmente hay seis tty's disponibles. También tengo un terminal abierto pts / 0 que tiene 4 procesos ejecutándose en fg o 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
Si desea eliminar los procesos secundarios en segundo plano, simplemente canalice a uniq:
Todavía tiene que restar 1 para el título del encabezado de TTY, pero puede mejorar aún más si elimina los tty por completo, ya que parece que de todos modos no le importan.
grepy awkes redundante, uso awk '/pattern/; y esto no funciona en mi máquina - informa 19 cuando tengo 1.
jasonwryan
Estoy un poco confundido. En este momento, estoy en Ubuntu 14. Solo hay una ventana de terminal / bash abierta. Con los comandos abobe, obtengo 23 o 13, cuando debería obtener 1 o 2 en caso de que abra otra terminal con ctrl-alt-t
Martincho
Ese primer comando cuenta los procesos
secundarios que se
@jasonwryan: funciona bien en el mío. Usar grep con awk es preferencia de la persona. Si alguien se siente más cómodo haciendo todo en awk, entonces está bien.
Jeight
"Funciona bien en la mía" apenas confirma su respuesta ... Tal vez podría incluir algunos detalles de lo que es "suyo" para que la gente sepa que solo se aplica a ese sistema.
expect
una sesión de usuario emulada, quexterm
no ejecuta un shell, etc.?Respuestas:
Use el comando anterior para contar las ventanas de terminal abiertas.
fuente
Para enumerarlos:
Para contarlos:
Deberá restar 1 de ese número, ya que incluye el encabezado TTY superior.
Todo esto depende si desea contar cuántos sub shells se están ejecutando o si desea contar cuántas ventanas de terminal están abiertas.
Para contar solo las ventanas de terminal que necesitaría usar:
Por ejemplo:
En mi sistema actualmente hay seis tty's disponibles. También tengo un terminal abierto pts / 0 que tiene 4 procesos ejecutándose en fg o bg.
Si desea eliminar los procesos secundarios en segundo plano, simplemente canalice a uniq:
Todavía tiene que restar 1 para el título del encabezado de TTY, pero puede mejorar aún más si elimina los tty por completo, ya que parece que de todos modos no le importan.
Eso te dará un conteo exacto.
EDITAR
Pensando en ello más 'ps -a' funcionaría mejor y puede omitir el primer grep.
fuente
grep
yawk
es redundante, usoawk '/pattern/
; y esto no funciona en mi máquina - informa 19 cuando tengo 1.En macos puedes usar:
Encontrado aquí: /programming//a/6180547/6320039
fuente
Podrías hacerlo
$ pgrep bash
También puedes hacer
$ W
fuente