TTY บน Linux คืออะไร? (และวิธีใช้คำสั่ง tty)

อะไรttyคำสั่งทำอย่างไร พิมพ์ชื่อของเทอร์มินัลที่คุณใช้ TTY ย่อมาจาก "teletypewriter" เรื่องราวเบื้องหลังชื่อของคำสั่งคืออะไร? นั่นต้องใช้เวลาอธิบายอีกเล็กน้อย

Teleprinters จากปี 1800

ในช่วงทศวรรษที่ 1830 และ 1840 ได้มีการพัฒนาเครื่องจักรที่เรียกว่า teleprinters เครื่องเหล่านี้สามารถส่งข้อความที่พิมพ์ "ลงสาย" ไปยังสถานที่ห่างไกล ข้อความถูกพิมพ์โดยผู้ส่งบนแป้นพิมพ์ประเภทต่างๆ พิมพ์ลงบนกระดาษที่ส่วนรับ เป็นขั้นตอนวิวัฒนาการในการโทรเลขซึ่งก่อนหน้านี้อาศัยมอร์สและรหัสที่คล้ายกัน

ข้อความถูกเข้ารหัสและส่งจากนั้นรับถอดรหัสและพิมพ์ มีเทคนิคหลายอย่างที่ใช้ในการเข้ารหัสและถอดรหัสข้อความ ที่มีชื่อเสียงที่สุดและอุดมสมบูรณ์ที่สุดแห่งหนึ่งได้รับการจดสิทธิบัตรในปี พ.ศ. 2417 โดยÉmile Baudot ซึ่งมีการตั้งชื่ออัตราการส่งข้อมูล รูปแบบการเข้ารหัสอักขระของเขาก่อนวันที่ ASCII ภายใน 89 ปี

ในที่สุดการเข้ารหัสของ Baudot ก็กลายเป็นสิ่งที่ใกล้เคียงที่สุดกับมาตรฐานในการเข้ารหัสเทเลพรินเตอร์และผู้ผลิตส่วนใหญ่ก็นำมาใช้ การออกแบบฮาร์ดแวร์ดั้งเดิมของ Baudot มีเพียงห้าปุ่มคล้ายกับคีย์เปียโน ผู้ดำเนินการจำเป็นต้องเรียนรู้คีย์ผสมเฉพาะสำหรับแต่ละตัวอักษร ในที่สุดระบบเข้ารหัส Baudot ก็รวมเข้ากับรูปแบบแป้นพิมพ์แบบเดิม

เพื่อทำเครื่องหมายความก้าวหน้านั้นเครื่องนี้ได้รับการตั้งชื่อว่าเครื่องพิมพ์ดีด สิ่งนี้ถูกย่อให้สั้นลงเป็น teletypes และในที่สุดก็เป็น TTYs นั่นคือที่มาที่เราได้อักษรย่อว่า TTY แต่โทรเลขเกี่ยวข้องอะไรกับคอมพิวเตอร์?

ASCII และ Telex

เมื่อ ASCII มาถึงในปีพ. ศ. 2506 ผู้ผลิตโทรพิมพ์ได้นำมาใช้ แม้จะมีการประดิษฐ์และการใช้โทรศัพท์อย่างแพร่หลาย แต่โทรพิมพ์ก็ยังคงแข็งแกร่ง

Telex เป็นเครือข่ายโทรพิมพ์ทั่วโลกที่อนุญาตให้ส่งข้อความที่เป็นลายลักษณ์อักษรไปทั่วโลก เป็นวิธีการหลักในการส่งข้อความที่เป็นลายลักษณ์อักษรในช่วงหลังสงครามโลกครั้งที่สองจนถึงช่วงที่เครื่องแฟกซ์เฟื่องฟูในทศวรรษ 1980

คอมพิวเตอร์ก็พัฒนาขึ้นเช่นกัน พวกเขามีความสามารถในการโต้ตอบกับผู้ใช้แบบเรียลไทม์และรองรับผู้ใช้หลายคน วิธีการทำงานแบบแบตช์แบบเก่าเริ่มไม่เพียงพอ ผู้คนไม่ต้องการรอ 24 ชั่วโมงหรือนานกว่านั้นสำหรับผลลัพธ์ของพวกเขา การทำการ์ดเจาะรูและรอข้ามคืนสำหรับผลลัพธ์เป็นสิ่งที่ไม่สามารถยอมรับได้อีกต่อไป

ผู้คนต่างต้องการอุปกรณ์ที่จะช่วยให้ป้อนคำแนะนำและรับผลลัพธ์ที่ส่งกลับไปให้ได้ คนต้องการประสิทธิภาพ

Teletype Repurposed

Teletype เป็นตัวเลือกที่สมบูรณ์แบบสำหรับอุปกรณ์อินพุต / เอาต์พุต ท้ายที่สุดแล้วอุปกรณ์ที่ออกแบบมาเพื่อให้สามารถพิมพ์เข้ารหัสส่งรับถอดรหัสและพิมพ์ข้อความได้

โทรพิมพ์ดูแลอะไรหากอุปกรณ์ที่ปลายอีกด้านของการเชื่อมต่อไม่ใช่โทรพิมพ์อื่น ตราบใดที่มันพูดภาษาเข้ารหัสเดียวกันและสามารถรับข้อความและส่งข้อความกลับได้เทเลไทป์ก็ยินดี

และแน่นอนว่ามันใช้แป้นพิมพ์มาตรฐานไม่มากก็น้อย

Teletypes จำลองฮาร์ดแวร์

Teletypes กลายเป็นวิธีการเริ่มต้นในการโต้ตอบกับคอมพิวเตอร์ขนาดเล็กและเมนเฟรมขนาดใหญ่ในยุคนั้น

ในที่สุดพวกเขาก็ถูกแทนที่ด้วยอุปกรณ์ที่เลียนแบบเครื่องจักรกลไฟฟ้าเหล่านั้นโดยใช้อุปกรณ์อิเล็กทรอนิกส์ สิ่งเหล่านี้มีท่อแคโทดเรย์ (CRTs) แทนม้วนกระดาษ พวกเขาไม่สั่นเมื่อส่งคำตอบจากคอมพิวเตอร์ พวกเขาอนุญาตให้ใช้ฟังก์ชันที่เป็นไปไม่ได้มาก่อนเช่นการเลื่อนเคอร์เซอร์ไปรอบ ๆ หน้าจอการล้างหน้าจอข้อความตัวหนาเป็นต้น

DEC VT05 เป็นตัวอย่างแรกเริ่มของโทรพิมพ์เสมือนและเป็นบรรพบุรุษของ DEC VT100 ที่มีชื่อเสียง ขาย DEC VT100 ได้หลายล้านเครื่อง

ซอฟต์แวร์จำลอง Teletypes

ในสภาพแวดล้อมเดสก์ท็อปของ Linux และระบบปฏิบัติการที่คล้าย Unix อื่น ๆ เช่น macOS หน้าต่างเทอร์มินัลและแอปพลิเคชันเช่น x-term และ Konsole เป็นตัวอย่างของเทเลไทป์เสมือน แต่สิ่งเหล่านี้จำลองมาจากซอฟต์แวร์ทั้งหมด พวกเขาเรียกว่าหลอกเทเลไทป์ สั้นลงเป็น PTS

และนั่นคือสิ่งที่เข้าttyมา

tty บอกอะไรเราได้บ้าง?

ในลินุกซ์มีมัลติเพล็กเซอร์หลอกเทเลไทป์ซึ่งจัดการการเชื่อมต่อจากหน้าต่างเทอร์มินัลทั้งหมด pseudo-teletypes (PTS) มัลติเพล็กเซอร์เป็นตัวหลักและ PTS คือทาส มัลติเพล็กเซอร์ถูกส่งโดยเคอร์เนลผ่านไฟล์อุปกรณ์ที่อยู่ที่ / dev / ptmx

ttyคำสั่งจะพิมพ์ชื่อของแฟ้มอุปกรณ์ที่ทาสหลอกโทรพิมพ์ของคุณใช้ในการติดต่อต้นแบบ และที่มีประสิทธิภาพคือจำนวนหน้าต่างเทอร์มินัลของคุณ

มาดูกันว่าttyรายงานอะไรสำหรับหน้าต่างเทอร์มินัลของเรา:

tty

การตอบสนองแสดงว่าเราเชื่อมต่อกับไฟล์อุปกรณ์ที่ / dev / pts / 0

หน้าต่างเทอร์มินัลของเราซึ่งเป็นการจำลองซอฟต์แวร์ของเทเลไทป์ (TTY) ถูกเชื่อมต่อกับมัลติเพล็กเซอร์หลอกเทเลประเภทเป็นแบบหลอกเทเลไทป์ (PTS) และมันจะเป็นเลขศูนย์

ตัวเลือกเงียบ

-s(เงียบ) ตัวเลือกที่ทำให้เกิดttyการสร้างผลผลิตที่ไม่มี

tty -s

มันสร้างมูลค่าออกอย่างไรก็ตาม:

  • 0 : หากอินพุตมาตรฐานมาจากอุปกรณ์ TTY จำลองหรือทางกายภาพ
  • 1 : หากอินพุตมาตรฐานไม่ได้มาจากอุปกรณ์ TTY
  • 2 : ข้อผิดพลาดทางไวยากรณ์ใช้พารามิเตอร์บรรทัดคำสั่งไม่ถูกต้อง
  • 3 : เกิดข้อผิดพลาดในการเขียน

สิ่งนี้น่าจะเป็นประโยชน์มากที่สุดในการเขียนสคริปต์ Bash แต่แม้กระทั่งในบรรทัดคำสั่งเราสามารถสาธิตวิธีดำเนินการคำสั่งได้ก็ต่อเมื่อคุณกำลังรันในหน้าต่างเทอร์มินัล (TTY หรือเซสชัน PTS)

tty -s && echo "ใน tty"

เนื่องจากเรากำลังทำงานในเซสชัน TTY รหัสทางออกของเราคือ 0 และคำสั่งที่สองจะถูกเรียกใช้

ใครเป็นผู้บังคับบัญชา

คำสั่งอื่น ๆ สามารถเปิดเผยหมายเลข TTY ของคุณได้ whoคำสั่งจะแสดงรายการข้อมูลทั้งหมดเข้าสู่ระบบผู้ใช้รวมทั้งตัวเอง

Alec และ Mary เชื่อมต่อกับคอมพิวเตอร์ Linux จากระยะไกล พวกเขาเชื่อมต่อกับ PTS หนึ่งและสอง

ผู้ใช้ dave จะแสดงว่าเชื่อมต่อกับ“: 0”

นี่แสดงถึงหน้าจอและแป้นพิมพ์ที่เชื่อมต่อกับคอมพิวเตอร์จริง แม้ว่าหน้าจอและคีย์บอร์ดจะเป็นอุปกรณ์ฮาร์ดแวร์ แต่ก็ยังเชื่อมต่อกับมัลติเพล็กเซอร์ผ่านไฟล์อุปกรณ์ ttyแสดงให้เห็นว่าเป็น / dev / pts / 2

Who
tty

ที่เกี่ยวข้อง: วิธีตรวจสอบบัญชีผู้ใช้ปัจจุบันใน Linux

การเข้าถึง TTY

คุณสามารถเข้าถึงเซสชัน TTY แบบเต็มหน้าจอได้โดยกดปุ่ม Ctrl + Alt ค้างไว้แล้วกดปุ่มฟังก์ชันปุ่มใดปุ่มหนึ่ง

Ctrl + Alt + F3 จะแสดงพรอมต์การเข้าสู่ระบบของ tty3

หากคุณเข้าสู่ระบบและออกttyคำสั่งคุณจะเห็นว่าคุณเชื่อมต่อกับ / dev / tty3

นี่ไม่ใช่ teletype หลอก (จำลองในซอฟต์แวร์) เป็นโทรพิมพ์เสมือน (จำลองในฮาร์ดแวร์) มันกำลังใช้หน้าจอและคีย์บอร์ดที่เชื่อมต่อกับคอมพิวเตอร์ของคุณเพื่อเลียนแบบโทรพิมพ์เสมือนเหมือนที่ DEC VT100 เคยทำ

คุณสามารถใช้ปุ่มฟังก์ชัน Ctrl + Alt กับปุ่มฟังก์ชัน F3 ถึง F6 และเปิด TTY สี่เซสชันหากคุณเลือก ตัวอย่างเช่นคุณสามารถเข้าสู่ระบบ tty3 แล้วกด Ctrl + Alt + F6 เพื่อไปที่ tty6

หากต้องการกลับไปที่สภาพแวดล้อมเดสก์ท็อปแบบกราฟิกของคุณให้กด Ctrl + Alt + F2

การกด Ctrl + Alt + F1 จะทำให้คุณกลับไปที่พรอมต์การเข้าสู่ระบบของเซสชันเดสก์ท็อปกราฟิกของคุณ

ในครั้งเดียว Ctrl + Alt + F1 ถึง Ctrl + Alt + F6 จะเปิดคอนโซล TTY แบบเต็มหน้าจอและ Ctrl + Alt + F7 จะนำคุณกลับสู่สภาพแวดล้อมเดสก์ท็อปแบบกราฟิกของคุณ หากคุณกำลังเรียกใช้การแจกจ่าย Linux รุ่นเก่านี่อาจเป็นลักษณะการทำงานของระบบของคุณ

สิ่งนี้ได้รับการทดสอบกับManjaro, Ubuntu และ Fedora รุ่นปัจจุบันและพวกเขาทั้งหมดมีพฤติกรรมเช่นนี้:

  1. Ctrl + Alt + F1 : นำคุณกลับสู่หน้าจอล็อกอินสภาพแวดล้อมเดสก์ท็อปแบบกราฟิก
  2. Ctrl + Alt + F2 : นำคุณกลับสู่สภาพแวดล้อมเดสก์ท็อปแบบกราฟิก
  3. Ctrl + Alt + F3 : เปิด TTY 3
  4. Ctrl + Alt + F4 : เปิด TTY 4
  5. Ctrl + Alt + F5 : เปิด TTY 5
  6. Ctrl + Alt + F6 : เปิด TTY 6

การเข้าถึงคอนโซลแบบเต็มหน้าจอเหล่านี้ช่วยให้ผู้ใช้ที่ใช้บรรทัดคำสั่งติดตั้ง Linux เท่านั้นและเซิร์ฟเวอร์ Linux จำนวนมากได้รับการกำหนดค่าด้วยวิธีนี้เพื่อให้มีคอนโซลหลายเครื่อง

เคยทำงานบนเครื่อง Linux ที่มีสภาพแวดล้อมเดสก์ท็อปแบบกราฟิกและมีบางอย่างที่ทำให้เซสชันของคุณหยุดทำงานหรือไม่ ตอนนี้คุณสามารถข้ามไปที่หนึ่งในเซสชันคอนโซล TTY เพื่อที่คุณจะได้พยายามแก้ไขสถานการณ์

คุณสามารถใช้topและpsพยายามระบุแอปพลิเคชันที่ล้มเหลวจากนั้นใช้killเพื่อยุติแอปพลิเคชันหรือเพียงแค่ใช้shutdownเพื่อพยายามปิดให้ดีที่สุดเท่าที่สถานะของคอมพิวเตอร์จะอนุญาต

ที่เกี่ยวข้อง: วิธีฆ่ากระบวนการจาก Linux Terminal

จดหมายเล็ก ๆ สามฉบับที่มีประวัติมากมาย

ttyคำสั่งได้รับชื่อจากอุปกรณ์จากช่วงปลายปี 1800 ปรากฏใน Unix ในปี 1971 และเป็นส่วนหนึ่งของ Linux และ Unix เหมือนระบบปฏิบัติการไปในวันนี้

บทพูดเล็ก ๆ น้อย ๆ มีเรื่องราวอยู่เบื้องหลังเขา