วิธีการเปลี่ยนสีของไดเรกทอรีและไฟล์ในคำสั่ง ls
หากคุณเรียกใช้ LS
คำสั่งใน Bash คุณจะสังเกตเห็นว่าไดเรกทอรีและไฟล์ที่คุณเห็นมีสีตามประเภท คุณสามารถปรับแต่งชุดสีของคุณเองเพื่อเลือกสีข้อความสีพื้นหลังและการจัดรูปแบบที่แตกต่างกันเช่นตัวหนาและขีดเส้นใต้.
วิธีนี้ใช้ได้ผล
ชุดรูปแบบสีจะถูกเก็บไว้ในตัวแปร LS_COLORS หากต้องการดูชุดรูปแบบสีปัจจุบันของคุณคุณสามารถบอกให้ Bash พิมพ์เนื้อหาของตัวแปรได้:
echo $ LS_COLORS
คุณจะเห็นรายการประเภทไฟล์และรหัสตัวเลขแบบยาว เราจะอธิบายวิธีสร้างรายการแบบนี้ด้วยตัวคุณเอง.
ก่อนที่จะเล่นกับสิ่งนี้เราขอแนะนำให้บันทึกเนื้อหาปัจจุบันของตัวแปร LS_COLORS เป็นตัวแปรอื่น สิ่งนี้จะช่วยให้คุณกู้คืนการตั้งค่าเริ่มต้นได้อย่างรวดเร็วโดยไม่ต้องออกจากเชลล์และลงชื่อเข้าใช้อีกครั้งหรือปิดและเปิดหน้าต่างเทอร์มินัลใหม่ หากต้องการบันทึกเนื้อหาปัจจุบันของตัวแปร LS_COLORS ไปยังตัวแปรใหม่ที่ชื่อว่า ORIGINAL ให้รัน:
ORIGINAL = $ LS_COLORS
คุณสามารถเรียกใช้คำสั่งต่อไปนี้เมื่อใดก็ได้เพื่อเลิกทำการเปลี่ยนแปลงและเรียกคืนสีเริ่มต้น:
LS_COLORS = $ ORIGINAL
การเปลี่ยนแปลงของคุณจะเป็นแบบชั่วคราวเสมอจนกว่าคุณจะแก้ไขไฟล์เพื่อให้เป็นค่าเริ่มต้นใหม่ของคุณ คุณสามารถออกจากระบบและลงชื่อเข้าใช้ใหม่หรือปิดและเปิดหน้าต่างเทอร์มินัลใหม่เพื่อเรียกคืนสีกลับเป็นการตั้งค่าเริ่มต้น อย่างไรก็ตามสิ่งนี้ทำให้ง่ายต่อการทำด้วยคำสั่งเดียวอย่างรวดเร็ว.
วิธีการตั้งค่าสีที่กำหนดเอง
ตัวแปร LS_COLORS มีรายการประเภทไฟล์พร้อมกับรหัสสีที่เกี่ยวข้อง รายการเริ่มต้นมีความยาวเนื่องจากมันระบุสีที่แตกต่างกันสำหรับไฟล์ประเภทต่างๆ.
ลองเริ่มตัวอย่างพื้นฐานเพื่อสาธิตวิธีการทำงาน สมมติว่าเราต้องการเปลี่ยนสีของไดเรกทอรีจากสีน้ำเงินตัวหนาเริ่มต้นเป็นตัวหนาสีแดง เราสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อทำ:
LS_COLORS = "ดิ = 1; 31"
ดิ = 1; 31
บิตบอก LS
ไดเรกทอรีนั้นdi
) คือ (=
) ตัวหนา (1;
) สีแดง (วันที่ 31
).
อย่างไรก็ตามนี่เป็นเพียงตัวแปร LS_COLORS ง่าย ๆ ที่กำหนดไดเรกทอรีเป็นสีเดียวและปล่อยให้ไฟล์ประเภทอื่น ๆ เป็นสีเริ่มต้น สมมติว่าเราต้องการสร้างไฟล์ที่มีนามสกุลไฟล์. เดสก์ท็อปด้วยสีฟ้าที่ขีดเส้นใต้เช่นกัน เราสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อทำ:
LS_COLORS = "ดิ = 1: 31:. * สก์ท็อป = 4; 36"
สิ่งนี้จะบอก LS
ไดเรกทอรีนั้นdi
) คือ (=
) ตัวหนา (1;
) สีแดง (วันที่ 31
) และ (:
) ไฟล์ใด ๆ ที่ลงท้ายด้วย. desktop (*.เดสก์ทอป
) คือ (=
) ขีดเส้นใต้ (4;
) สีฟ้า (36
).
นี่เป็นกระบวนการรวบรวมรายการประเภทและสีของไฟล์ของคุณ ระบุมากเท่าที่คุณต้องการในรูปแบบ filetype = color โดยแยกแต่ละรายการด้วยอักขระโคลอน (:).
ในการรวบรวมรายการของคุณเองคุณเพียงแค่ต้องรู้รายการรหัสสีและรหัสประเภทไฟล์ ใช้รหัสสีตัวเลขเดียวกันกับที่คุณใช้เมื่อเปลี่ยนสีในพรอมต์ Bash ของคุณ.
นี่คือรายการของรหัสสีสำหรับข้อความเบื้องหน้า:
- ดำ: 30
- น้ำเงิน: 34
- สีฟ้า: 36
- เขียว: 32
- ม่วง: 35
- แดง: 31
- ขาว: 37
- สีเหลือง: 33
ตัวอย่างเช่นเนื่องจากข้อความสีเหลืองคือรหัสสี 33 คุณจะต้องใช้ ดิ = 33
เพื่อให้ไดเรกทอรีเหลือง.
นี่คือรายการของคุณลักษณะสีข้อความ:
- ข้อความปกติ: 0
- ข้อความตัวหนาหรือแสง: 1 (ขึ้นอยู่กับเทอร์มินัลอีมูเลเตอร์)
- ข้อความติ่มซำ: 2
- ข้อความที่ขีดเส้นใต้: 4
- ข้อความกะพริบ: 5 (สิ่งนี้ไม่ทำงานในโปรแกรมจำลองเทอร์มินัลส่วนใหญ่)
- ข้อความที่ตรงกันข้าม: 7 (สิ่งนี้จะสลับสีพื้นหน้าและพื้นหลังดังนั้นคุณจะเห็นข้อความสีดำบนพื้นหลังสีขาวหากข้อความปัจจุบันเป็นข้อความสีขาวบนพื้นหลังสีดำ)
- ข้อความที่ซ่อนอยู่: 8
เมื่อระบุแอททริบิวต์หรือมากกว่าหนึ่งรหัสสีให้คั่นรายการรหัสด้วยอักขระเซมิโคลอน (;) คุณไม่จำเป็นต้องระบุ 0 สำหรับข้อความปกติเนื่องจากจะใช้ข้อความปกติเมื่อคุณไม่ได้ระบุแอตทริบิวต์ที่นี่.
ตัวอย่างเช่นเนื่องจากตัวหนาเป็นรหัสสี 1 และตัวอักษรสีเหลืองคือรหัสสี 33 คุณจึงควรใช้ ดิ = 1; 33
เพื่อให้ไดเรกทอรีเป็นตัวหนาสีเหลือง คุณสามารถระบุมากกว่าหนึ่งแอตทริบิวต์ ตัวอย่างเช่นคุณสามารถใช้ ดิ = 1; 4; 33
เพื่อทำให้ไดเรกทอรีเป็นตัวหนาสีเหลืองที่ขีดเส้นใต้.
นี่คือรายการรหัสสีพื้นหลัง:
- พื้นหลังสีดำ: 40
- พื้นหลังสีน้ำเงิน: 44
- พื้นหลังสีน้ำเงิน: 46
- พื้นหลังสีเขียว: 42
- พื้นหลังสีม่วง: 45
- พื้นหลังสีแดง: 41
- พื้นหลังสีขาว: 47
- พื้นหลังสีเหลือง: 43
ตัวอย่างเช่นเนื่องจากพื้นหลังสีน้ำเงินเป็นรหัสสี 44 คุณจึงต้องใช้ ดิ = 44
เพื่อใช้พื้นหลังสีน้ำเงินสำหรับไดเรกทอรี คุณยังสามารถรวมรหัสสีพื้นหลังรหัสสีพื้นหน้าและคุณลักษณะได้มากเท่าที่คุณต้องการ ตัวอย่างเช่น, ดิ = 1; 4; 33; 44
จะให้ตัวหนาสีเหลืองขีดเส้นใต้บนพื้นหลังสีน้ำเงิน.
นี่คือรายการของรหัสประเภทไฟล์:
- ไดเรกทอรี: di
- ไฟล์: fi
- ลิงก์สัญลักษณ์: ln
- ไปป์ที่มีชื่อ (FIFO): pi
- ซ็อกเก็ต: ดังนั้น
- อุปกรณ์บล็อก: bd
- อุปกรณ์ตัวละคร: ซีดี
- ลิงก์สัญลักษณ์เด็กกำพร้า (ชี้ไปที่ไฟล์ที่ไม่มีอยู่แล้ว): หรือ
- ไฟล์หายไป (ไฟล์หายไปที่ลิงก์สัญลักษณ์กำพร้าชี้ไป): mi
- ไฟล์ที่ปฏิบัติการได้ (มีสิทธิ์“ x”): เช่น
- * .extension: ไฟล์ใด ๆ ที่ลงท้ายด้วยนามสกุลที่คุณระบุ ตัวอย่างเช่นใช้ * .txt สำหรับไฟล์ที่ลงท้ายด้วย. txt, * .mp3 สำหรับไฟล์ที่ลงท้ายด้วย. mp3, * .desktop สำหรับไฟล์ที่ลงท้ายด้วย. desktop หรืออะไรก็ได้ที่คุณต้องการ คุณสามารถระบุนามสกุลไฟล์ได้มากเท่าที่คุณต้องการ.
ระบุรหัสประเภทไฟล์ที่มีสีต่างกันมากเท่าที่คุณต้องการโดยคั่นด้วยอักขระ: ทำซ้ำกระบวนการนี้เพื่อรวบรวมตัวแปร LS_COLORS ของคุณ.
ตัวอย่างเช่นสมมติว่าคุณต้องการใช้ตัวอักษรสีม่วงตัวหนาสำหรับไดเรกทอรีขีดเส้นใต้สีแดงสำหรับไฟล์ที่ปฏิบัติการได้และตัวอักษรสีเขียวตัวหนาบนพื้นหลังสีแดงสำหรับไฟล์. mp3 เมื่อรวบรวมรหัสประเภทไฟล์และรหัสสีจากรายการด้านบนคุณจะได้รับ:
LS_COLORS = "ดิ = 1; 35: อดีต = 4; 31: *. mp3 = 1; 32; 41"
วิธีการตั้งค่าสีเริ่มต้นใหม่ของคุณ
ตอนนี้คุณมีตัวแปร LS_COLORS ที่กำหนดเองซึ่งทำงานในเซสชัน Bash ปัจจุบัน อย่างไรก็ตามคุณอาจต้องการทำให้มันถาวรดังนั้นจึงถูกใช้โดยอัตโนมัติทุกครั้งที่คุณเริ่มเซสชัน Bash ใหม่โดยที่คุณไม่ต้องจำสิ่งนี้.
คุณสามารถตั้งค่าตัวแปร LS_COLORS ที่คุณกำหนดเองและตัวแปร Bash อื่น ๆ ที่คุณต้องการโดยเพิ่มลงในไฟล์. bashrc ของบัญชีผู้ใช้ของคุณ ไฟล์นี้อยู่ที่ ~ / .bashrc ดังนั้นหากชื่อผู้ใช้ของคุณคือ bob คุณจะพบได้ที่ /home/bob/.bashrc มีวิธีอื่นในการตั้งค่าตัวแปรสภาพแวดล้อมเช่นกัน แต่นี่เป็นวิธีง่ายๆ.
ก่อนอื่นให้เปิดไฟล์นี้ในโปรแกรมแก้ไขข้อความที่คุณต้องการ เราจะใช้นาโนที่นี่เป็นตัวอย่าง แต่คุณสามารถใช้ vi, emacs หรืออะไรก็ได้ที่คุณชอบ.
นาโน ~ / .bashrc
เพิ่มตัวแปร LS_COLORS ที่คุณกำหนดเองไปยังบรรทัดใหม่ที่ท้ายไฟล์เช่น:
LS_COLORS = "ดิ = 1; 35: อดีต = 4; 31: *. mp3 = 1; 32; 41"
บันทึกไฟล์และออก ใน nano กด Ctrl + O แล้วกด Enter เพื่อบันทึกจากนั้นกด Ctrl + X เพื่อออก.
เมื่อใดก็ตามที่คุณเริ่มเซสชัน Bash ใหม่ Bash จะอ่านไฟล์. bashrc และตั้งค่าตัวแปร LS_COLORS ของคุณโดยอัตโนมัติ หากต้องการเปลี่ยนสีในอนาคตให้กลับไปที่ไฟล์. bashrc ของคุณและแก้ไขบรรทัด LS_COLORS.
นอกจากนี้คุณยังสามารถลบ LS_COLORS =
บรรทัดที่คุณเพิ่มลงในไฟล์. bashrc ของคุณเพื่อใช้สีเริ่มต้นอีกครั้ง หากคุณไม่ได้ตั้งค่า LS_COLORS Bash จะใช้สีเริ่มต้น.