GNU/Linux >> Znalost Linux >  >> Linux

Linux – uložené v souborech /dev/pts a můžeme je otevřít?

Podle mých znalostí /dev/pts soubory jsou vytvářeny pro relace ssh nebo telnet.

Přijatá odpověď:

V /dev/pts není nic uloženo . Tento souborový systém žije čistě v paměti.

Záznamy v /dev/pts jsou pseudoterminály (zkráceně pty). Unixová jádra mají obecný pojem terminály. Terminál poskytuje aplikacím způsob, jak zobrazovat výstup a přijímat vstup přes koncové zařízení. Proces může mít řídící terminál — v případě aplikace v textovém režimu takto interaguje s uživatelem.

Terminály mohou být buď hardwarové terminály (“tty”, zkratka pro “teletype”) nebo pseudoterminály (”pty”). Hardwarové terminály jsou připojeny přes nějaké rozhraní, jako je sériový port (ttyS0 , …) nebo USB (ttyUSB0 , …) nebo přes obrazovku počítače a klávesnici (tty1 , …). Pseudoterminály poskytuje emulátor terminálu, což je aplikace. Některé typy pseudoterminálů jsou:

  • Aplikace GUI, jako je xterm, gnome-terminal, konsole, … transformují události klávesnice a myši na textový vstup a graficky zobrazují výstup v nějakém písmu.
  • Multiplexní aplikace, jako je vstup a výstup relé obrazovky a tmux z a do jiného terminálu, k oddělení aplikací v textovém režimu od skutečného terminálu.
  • Vzdálené aplikace prostředí, jako je sshd, telnetd, rlogind, … reléový vstup a výstup mezi vzdáleným terminálem na klientovi a pty na serveru.

Pokud program otevře terminál pro zápis, výstup z tohoto programu se objeví na terminálu. Je běžné, že na terminálu vystupuje několik programů současně, i když to může být občas matoucí, protože neexistuje způsob, jak zjistit, která část výstupu pochází z kterého programu. Procesy na pozadí, které se pokoušejí zapisovat na jejich řídicí terminál, mohou být automaticky pozastaveny signálem SIGTTOU.

Pokud program otevře terminál pro čtení, vstup od uživatele je předán tomuto programu. Pokud ze stejného terminálu čte více programů, je každý znak směrován nezávisle na jeden z programů; toto se nedoporučuje. Normálně z terminálu v daný čas aktivně čte pouze jeden program; programy, které se pokoušejí číst ze svého ovládacího terminálu, když nejsou v popředí, jsou automaticky pozastaveny signálem SIGTTIN.

Chcete-li experimentovat, spusťte tty v terminálu, abyste viděli, co je to terminálové zařízení. Řekněme, že je to /dev/pts/42 . V shellu v jiném terminálu spusťte echo hello >/dev/pts/42 :řetězec hello se zobrazí na druhém terminálu. Nyní spusťte cat /dev/pts/42 a zadejte druhý terminál. Zabít tu cat (což znesnadní použití druhého terminálu), stiskněte Ctrl +C .

Související:Linux – Upgrade základní desky a CPU bez přeinstalace?

Zápis na jiný terminál je občas užitečný pro zobrazení upozornění; například write příkaz to dělá. Čtení z jiného terminálu se normálně neprovádí.


Linux
  1. Linux:Rozdíl mezi /dev/console, /dev/tty a /dev/tty0?

  2. Jak přenosné jsou /dev/stdin, /dev/stdout a /dev/stderr?

  3. obrazovka Nelze otevřít váš terminál '/dev/pts/0' - zkontrolujte prosím

  1. Jak mohu změnit množství a velikost linuxových ramdisků (/dev/ram0 - /dev/ram15)?

  2. Linux:Rozdíl mezi /dev/console , /dev/tty a /dev/tty0

  3. jádro:deaktivace /dev/kmem a /dev/mem

  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Linux – proč `/dev/ptmx` a `/dev/pts/ptmx` nejsou soubory zařízení?

  3. Je špatné propojit /dev/random s /dev/urandom v Linuxu?