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 รุ่นปัจจุบันและพวกเขาทั้งหมดมีพฤติกรรมเช่นนี้:
- Ctrl + Alt + F1 : นำคุณกลับสู่หน้าจอล็อกอินสภาพแวดล้อมเดสก์ท็อปแบบกราฟิก
- Ctrl + Alt + F2 : นำคุณกลับสู่สภาพแวดล้อมเดสก์ท็อปแบบกราฟิก
- Ctrl + Alt + F3 : เปิด TTY 3
- Ctrl + Alt + F4 : เปิด TTY 4
- Ctrl + Alt + F5 : เปิด TTY 5
- Ctrl + Alt + F6 : เปิด TTY 6
การเข้าถึงคอนโซลแบบเต็มหน้าจอเหล่านี้ช่วยให้ผู้ใช้ที่ใช้บรรทัดคำสั่งติดตั้ง Linux เท่านั้นและเซิร์ฟเวอร์ Linux จำนวนมากได้รับการกำหนดค่าด้วยวิธีนี้เพื่อให้มีคอนโซลหลายเครื่อง
เคยทำงานบนเครื่อง Linux ที่มีสภาพแวดล้อมเดสก์ท็อปแบบกราฟิกและมีบางอย่างที่ทำให้เซสชันของคุณหยุดทำงานหรือไม่ ตอนนี้คุณสามารถข้ามไปที่หนึ่งในเซสชันคอนโซล TTY เพื่อที่คุณจะได้พยายามแก้ไขสถานการณ์
คุณสามารถใช้top
และps
พยายามระบุแอปพลิเคชันที่ล้มเหลวจากนั้นใช้kill
เพื่อยุติแอปพลิเคชันหรือเพียงแค่ใช้shutdown
เพื่อพยายามปิดให้ดีที่สุดเท่าที่สถานะของคอมพิวเตอร์จะอนุญาต
ที่เกี่ยวข้อง: วิธีฆ่ากระบวนการจาก Linux Terminal
จดหมายเล็ก ๆ สามฉบับที่มีประวัติมากมาย
tty
คำสั่งได้รับชื่อจากอุปกรณ์จากช่วงปลายปี 1800 ปรากฏใน Unix ในปี 1971 และเป็นส่วนหนึ่งของ Linux และ Unix เหมือนระบบปฏิบัติการไปในวันนี้
บทพูดเล็ก ๆ น้อย ๆ มีเรื่องราวอยู่เบื้องหลังเขา