{"id":9034,"date":"2019-01-02T14:23:22","date_gmt":"2019-01-02T14:23:22","guid":{"rendered":"http:\/\/blog.bachi.net\/?p=9034"},"modified":"2019-01-02T14:30:56","modified_gmt":"2019-01-02T14:30:56","slug":"terminal-tty-pseudo-terminal-pts-shell","status":"publish","type":"post","link":"https:\/\/blog.bachi.net\/?p=9034","title":{"rendered":"Terminal (TTY), Pseudo-Terminal (PTY), Shell"},"content":{"rendered":"<table>\n<tr>\n<td>Terminal<\/td>\n<td>A terminal was that what seemed like 30 kg piece of solid cast iron frame wrapped in cream-colour plastic case with a glass display and keyboard in front of you<\/td>\n<\/tr>\n<tr>\n<td>Terminal Emulation<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Shell<\/td>\n<td>A shell was a program running on the main computer interpreting your commands.<\/td>\n<\/tr>\n<\/table>\n<table>\n<tr>\n<td>terminal, tty<\/td>\n<td>text input\/output environment<\/td>\n<\/tr>\n<tr>\n<td>terminal emulator, pseudo-tty<\/td>\n<td>&#8211;<\/td>\n<\/tr>\n<tr>\n<td>console<\/td>\n<td>physical terminal<\/td>\n<\/tr>\n<tr>\n<td>shell<\/td>\n<td>command line interpreter<\/td>\n<\/tr>\n<\/table>\n<table>\n<tr>\n<td>pty<\/td>\n<td>&#8220;pseudo terminal&#8221;<\/td>\n<\/tr>\n<tr>\n<td>pts<\/td>\n<td>&#8220;pseudo terminal slave&#8221;: login device when connecting through the network or a console (e.g. ssh).<\/td>\n<\/tr>\n<tr>\n<td>tty<\/td>\n<td>&#8220;teletype&#8221;: serial or console connections (text mode)<\/td>\n<\/tr>\n<\/table>\n<table>\n<tr>\n<td><a href=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2019\/01\/pty_xorg.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2019\/01\/pty_xorg-300x126.jpg\" alt=\"\" width=\"300\" height=\"126\" class=\"alignleft size-medium wp-image-9039\" srcset=\"https:\/\/blog.bachi.net\/wp-content\/uploads\/2019\/01\/pty_xorg-300x126.jpg 300w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2019\/01\/pty_xorg-768x323.jpg 768w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2019\/01\/pty_xorg-624x263.jpg 624w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2019\/01\/pty_xorg.jpg 1021w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2019\/01\/pty_telnet.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2019\/01\/pty_telnet-300x126.jpg\" alt=\"\" width=\"300\" height=\"126\" class=\"alignleft size-medium wp-image-9040\" srcset=\"https:\/\/blog.bachi.net\/wp-content\/uploads\/2019\/01\/pty_telnet-300x126.jpg 300w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2019\/01\/pty_telnet-768x323.jpg 768w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2019\/01\/pty_telnet-624x263.jpg 624w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2019\/01\/pty_telnet.jpg 1021w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/td>\n<\/tr>\n<\/table>\n<h1>Must Read Tutorial<\/h1>\n<p><a href=\"https:\/\/www.linusakesson.net\/programming\/tty\/\">The TTY demystified<\/a><br \/>\n<a href=\"https:\/\/gangmax.me\/blog\/2017\/02\/21\/what-is-tty-slash-pty-slash-pts\/\">What Is Tty\/pty\/pts<\/a><\/p>\n<h3>Change Content on Terminal<\/h3>\n<p><a href=\"https:\/\/stackoverflow.com\/questions\/11283625\/overwrite-last-line-on-terminal\/27326630#27326630\">Overwrite last line on terminal<\/a><br \/>\n<a href=\"https:\/\/unix.stackexchange.com\/questions\/43075\/how-to-change-the-contents-of-a-line-on-the-terminal-as-opposed-to-writing-a-new\">How to change the contents of a line on the terminal as opposed to writing a new one?<\/a><br \/>\n<a href=\"https:\/\/askubuntu.com\/questions\/171694\/how-do-i-keep-terminal-line-from-overwriting-itself\">How do I keep terminal line from overwriting itself?<\/a><\/p>\n<h3>ncurses<\/h3>\n<p>&#8220;The curses library (ncurses) provides a terminal-independent method of controlling character screens.&#8221;<br \/>\n<a href=\"https:\/\/www.ibm.com\/developerworks\/library\/l-python6\/\">Curses programming<\/a><br \/>\n<a href=\"http:\/\/urwid.org\/\">urwid<\/a><br \/>\n<a href=\"https:\/\/github.com\/urwid\/urwid\">github.com\/urwid\/urwid<\/a>, Console user interface library for Python<\/p>\n<h3>Terminal Codes<\/h3>\n<p><a href=\"http:\/\/wiki.bash-hackers.org\/scripting\/terminalcodes\">Terminal codes (ANSI\/VT100) introduction<\/a><\/p>\n<h3>What is a Terminal\/Console\/Shell (StackOverFlow \/ StackExchange)<\/h3>\n<p><a href=\"https:\/\/unix.stackexchange.com\/questions\/335992\/what-is-the-difference-between-pts-and-tty-and-0\">What is the difference between **pts** and **tty** and **:0**?<\/a><br \/>\n<a href=\"https:\/\/unix.stackexchange.com\/questions\/180943\/terminal-vs-bash\">Terminal vs bash? [duplicate]<\/a><br \/>\n<a href=\"https:\/\/unix.stackexchange.com\/questions\/21147\/what-are-pseudo-terminals-pty-tty\/21148\">What are pseudo terminals (pty\/tty)?<\/a><br \/>\n<a href=\"https:\/\/stackoverflow.com\/questions\/4426280\/what-do-pty-and-tty-mean\">What do pty and tty mean?<\/a><br \/>\n<a href=\"https:\/\/unix.stackexchange.com\/questions\/270272\/how-to-get-the-tty-in-which-bash-is-running\/270372\">How to get the tty in which bash is running?<\/a><br \/>\n<a href=\"https:\/\/unix.stackexchange.com\/questions\/4126\/what-is-the-exact-difference-between-a-terminal-a-shell-a-tty-and-a-con\">What is the exact difference between a &#8216;terminal&#8217;, a &#8216;shell&#8217;, a &#8216;tty&#8217; and a &#8216;console&#8217;?<\/a><\/p>\n<h3>Wikipedia<\/h3>\n<h4>English<\/h4>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Curses_(programming_library)\">curses (programming library)<\/a><br \/>\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/Ncurses\">ncurses<\/a><br \/>\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/Terminfo\">Terminfo<\/a><br \/>\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/Text-based_user_interface\">Text-based user interface<\/a><br \/>\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/Pseudoterminal\"Pseudoterminal><\/a><\/p>\n<h4>Deutsch<\/h4>\n<p><a href=\"https:\/\/de.wikipedia.org\/wiki\/Ncurses\">ncurses<\/a><br \/>\n<a href=\"https:\/\/de.wikipedia.org\/wiki\/Zeichenorientierte_Benutzerschnittstelle\">Zeichenorientierte Benutzerschnittstelle<\/a><br \/>\n<a href=\"https:\/\/de.wikipedia.org\/wiki\/Pseudoterminal\">Pseudoterminal<\/a><\/p>\n<h3>man<\/h3>\n<p><a href=\"http:\/\/man7.org\/linux\/man-pages\/man7\/pty.7.html\">pty<\/a><br \/>\n<a href=\"http:\/\/man7.org\/linux\/man-pages\/man4\/tty.4.html\">tty<\/a><br \/>\n<a href=\"http:\/\/man7.org\/linux\/man-pages\/man4\/ttyS.4.html\">ttyS<\/a><br \/>\n<a href=\"http:\/\/man7.org\/linux\/man-pages\/man5\/ttytype.5.html\">ttytype<\/a><br \/>\n<a href=\"http:\/\/man7.org\/linux\/man-pages\/man5\/terminfo.5.html\">terminfo<\/a>, terminal capability data base<br \/>\n<a href=\"https:\/\/www.freebsd.org\/cgi\/man.cgi?query=getty&#038;sektion=8&#038;manpath=freebsd-release-ports\">getty<\/a>, set terminal mode<br \/>\n<a href=\"http:\/\/man7.org\/linux\/man-pages\/man8\/agetty.8.html\">agetty<\/a>, alternative Linux getty<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Terminal A terminal was that what seemed like 30 kg piece of solid cast iron frame wrapped in cream-colour plastic case with a glass display and keyboard in front of you Terminal Emulation Shell A shell was a program running on the main computer interpreting your commands. terminal, tty text input\/output environment terminal emulator, pseudo-tty [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-9034","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/9034","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9034"}],"version-history":[{"count":5,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/9034\/revisions"}],"predecessor-version":[{"id":9041,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/9034\/revisions\/9041"}],"wp:attachment":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9034"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9034"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9034"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}