GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:archiviato nei file /dev/pts e possiamo aprirli?

Secondo le mie conoscenze, /dev/pts i file vengono creati per sessioni ssh o telnet.

Risposta accettata:

Nulla è memorizzato in /dev/pts . Questo filesystem risiede esclusivamente nella memoria.

Voci in /dev/pts sono pseudo-terminali (pty in breve). I kernel Unix hanno una nozione generica di terminali. Un terminale consente alle applicazioni di visualizzare l'output e di ricevere l'input tramite un dispositivo terminale. Un processo può avere un terminale di controllo — per un'applicazione in modalità testo, questo è il modo in cui interagisce con l'utente.

I terminali possono essere terminali hardware ("tty", abbreviazione di "teletype") o pseudo-terminali ("pty"). I terminali hardware sono collegati su un'interfaccia come una porta seriale (ttyS0 , …) o USB (ttyUSB0 , …) o tramite lo schermo e la tastiera di un PC (tty1 , …). Gli pseudo-terminali sono forniti da un emulatore di terminale, che è un'applicazione. Alcuni tipi di pseudo-terminali sono:

  • Le applicazioni GUI come xterm, gnome-terminal, konsole, … trasformano gli eventi della tastiera e del mouse in input di testo e visualizzano l'output graficamente in alcuni font.
  • Applicazioni multiplexer come screen e tmux relay input e output da e verso un altro terminale, per disaccoppiare le applicazioni in modalità testo dal terminale effettivo.
  • Applicazioni shell remote come sshd, telnetd, rlogind, … inoltrano input e output tra un terminale remoto sul client e un pty sul server.

Se un programma apre un terminale per la scrittura, l'output di quel programma appare sul terminale. È comune avere più programmi in uscita contemporaneamente su un terminale, anche se a volte ciò può creare confusione poiché non c'è modo di dire quale parte dell'output provenga da quale programma. I processi in background che tentano di scrivere sul loro terminale di controllo possono essere automaticamente sospesi da un segnale SIGTTOU.

Se un programma apre un terminale per la lettura, l'input dell'utente viene passato a quel programma. Se più programmi vengono letti dallo stesso terminale, ogni carattere viene instradato indipendentemente ad uno dei programmi; questo non è raccomandato. Normalmente c'è un solo programma che legge attivamente dal terminale alla volta; i programmi che tentano di leggere dal proprio terminale di controllo mentre non sono in primo piano vengono automaticamente sospesi da un segnale SIGTTIN.

Per sperimentare, esegui tty in un terminale per vedere qual è il dispositivo terminale. Diciamo che è /dev/pts/42 . In una shell in un altro terminale, esegui echo hello >/dev/pts/42 :la stringa hello verrà visualizzato sull'altro terminale. Ora esegui cat /dev/pts/42 e digita nell'altro terminale. Per uccidere quel cat comando (che renderà difficile l'utilizzo dell'altro terminale), premere Ctrl +C .

Correlati:Linux:aggiornare la scheda madre e la CPU senza reinstallare?

La scrittura su un altro terminale è occasionalmente utile per visualizzare una notifica; ad esempio il write il comando lo fa. La lettura da un altro terminale normalmente non viene eseguita.


Linux
  1. Cosa sono i file /dev/zero e /dev/null in Linux

  2. Comando Linux per concatenare i file audio e inviarli a ogg

  3. Come posso modificare la quantità e la dimensione dei ramdisk di Linux (/dev/ram0 - /dev/ram15)?

  4. Linux:differenza tra /dev/console , /dev/tty e /dev/tty0

  5. kernel:disabilitare /dev/kmem e /dev/mem

tty (/dev/tty ) vs pts (/dev/pts) in Linux

Che cos'è "/dev/null 2&1" in Linux

Che cos'è /dev/null in Linux

Linux:differenza tra /dev/console , /dev/tty e /dev/tty0?

Quanto sono portatili /dev/stdin, /dev/stdout e /dev/stderr?

/proc/cpuinfo e /proc/meminfo in Linux