เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | เนื้อหา | ถัดไป>

การเพิ่มสี

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


ภาพ

ความสับสนของเทอร์มินัล

ย้อนกลับไปในสมัยโบราณ เมื่อเทอร์มินัลเชื่อมต่อกับคอมพิวเตอร์ระยะไกล มีเทอร์มินัลหลายยี่ห้อที่แข่งขันกันและทำงานแตกต่างกัน พวกเขามีแป้นพิมพ์ที่แตกต่างกันและพวกเขาทั้งหมดมีวิธีการตีความข้อมูลการควบคุมต่างกัน ระบบที่เหมือน Unix และ Unix มีระบบย่อยที่ค่อนข้างซับซ้อนสองระบบเพื่อจัดการกับ Babel ของการควบคุมเทอร์มินัล (เรียกว่า เทอมแคป และ คำศัพท์). หากคุณดูในส่วนที่ลึกที่สุดของการตั้งค่าเทอร์มินัลอีมูเลเตอร์ คุณอาจพบการตั้งค่าสำหรับประเภทของการจำลองเทอร์มินัล

ในความพยายามที่จะทำให้เทอร์มินัลพูดภาษาทั่วไปบางประเภท สถาบันมาตรฐานแห่งชาติอเมริกา (ANSI) ได้พัฒนาชุดลำดับอักขระมาตรฐานเพื่อควบคุมเทอร์มินัลวิดีโอ ผู้ใช้ DOS รุ่นเก่าจะจำ AN-SI.SYS ไฟล์ที่ใช้ในการเปิดใช้งานการตีความรหัสเหล่านี้


สีของอักขระถูกควบคุมโดยการส่งเทอร์มินัลอีมูเลเตอร์และ รหัสหลีกเลี่ยง ANSI ฝังอยู่ในกระแสของตัวละครที่จะแสดง รหัสควบคุมจะไม่ "พิมพ์ออกมา" บนจอแสดงผล แต่จะถูกตีความโดยเครื่องเทอร์มินัลว่าเป็นคำสั่ง ดังที่เราเห็นในตารางข้างต้น \[ และ \] ลำดับจะใช้เพื่อห่อหุ้มอักขระที่ไม่ได้พิมพ์ รหัสหลีกเลี่ยง ANSI เริ่มต้นด้วยเลขฐานแปด 033 (รหัสที่สร้างโดยแป้น Escape) ตามด้วยแอตทริบิวต์อักขระที่เป็นตัวเลือก ตามด้วยคำสั่ง ตัวอย่างเช่น รหัสสำหรับตั้งค่าสีข้อความให้เป็นปกติ (แอตทริบิวต์ = 0) ข้อความสีดำคือ:

\033[0;30ม

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


ตารางที่ 13- 2: Escape Sequence ที่ใช้ในการตั้งค่าสีข้อความ


ลำดับ

สีข้อความ

ลำดับ

สีข้อความ

\033[0;30ม

Black

\033[1;30ม

สีเทาเข้ม

\033[0;31ม

สีแดง

\033[1;31ม

แสงสีแดง

\033[0;32ม

สีเขียว

\033[1;32ม

ไฟเขียว

\033[0;33ม

Brown

\033[1;33ม

สีเหลือง

\033[0;34ม

สีน้ำเงิน

\033[1;34ม

ฟ้าอ่อน

\033[0;35ม

สีม่วง

\033[1;35ม

สีม่วงอ่อน

การเพิ่มสี


\033[0;36ม

Cyan

\033[1;36ม

ฟ้าอ่อน

\033[0;37ม

แสงสีเทา

\033[1;37ม

ขาว


เรามาลองสร้างพรอมต์สีแดงกัน เราจะใส่รหัส Escape ที่จุดเริ่มต้น:



$ PS1="\[\033[0;31m\]<\u@\h \W>\$ "

$

$ PS1="\[\033[0;31m\]<\u@\h \W>\$ "

$


ใช้งานได้ แต่สังเกตว่าข้อความทั้งหมดที่เราพิมพ์หลังจากพรอมต์นั้นเป็นสีแดงด้วย ในการแก้ไขปัญหานี้ เราจะเพิ่ม Escape Code อื่นที่ส่วนท้ายของพร้อมต์ที่บอกให้เทอร์มินัลอีมูเลเตอร์กลับสู่สีก่อนหน้า:



$ PS1="\[\033[0;31m\]<\u@\h \W>\$\[\033[0m\] "

$

$ PS1="\[\033[0;31m\]<\u@\h \W>\$\[\033[0m\] "

$


มันดีกว่า!

นอกจากนี้ยังสามารถกำหนดสีพื้นหลังของข้อความโดยใช้รหัสที่แสดงด้านล่าง สีพื้นหลังไม่สนับสนุนคุณลักษณะตัวหนา


ตาราง 13-3: Escape Sequences ที่ใช้ในการตั้งค่าสีพื้นหลัง


ลำดับ

สีพื้นหลัง

ลำดับ

สีพื้นหลัง

\033[0;40ม

Black

\033[0;44ม

สีน้ำเงิน

\033[0;41ม

สีแดง

\033[0;45ม

สีม่วง

\033[0;42ม

สีเขียว

\033[0;46ม

Cyan

\033[0;43ม

Brown

\033[0;47ม

แสงสีเทา


เราสามารถสร้างพรอมต์ที่มีพื้นหลังสีแดงโดยใช้การเปลี่ยนแปลงง่ายๆ กับ Escape Code แรก:



$ PS1="\[\033[0;41m\]<\u@\h \W>\$\[\033[0m\] "

<me@linuxbox ~>$

$ PS1="\[\033[0;41m\]<\u@\h \W>\$\[\033[0m\] "

<me@linuxbox ~>$


ลองใช้รหัสสีและดูว่าคุณสามารถสร้างอะไรได้บ้าง!


ภาพ

หมายเหตุ: นอกจากแอตทริบิวต์อักขระปกติ (0) และตัวหนา (1) แล้ว ข้อความอาจได้รับเครื่องหมายขีดล่าง (4) กะพริบ (5) และแอตทริบิวต์ผกผัน (7) ด้วยเช่นกัน เพื่อประโยชน์ของรสนิยมที่ดี เทอร์มินัลอีมูเลเตอร์จำนวนมากปฏิเสธที่จะให้เกียรติคุณลักษณะการกะพริบ


ภาพ


ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: