Trang chủ » làm thế nào để » Cách thay đổi màu của thư mục và tệp trong lệnh ls

    Cách thay đổi màu của thư mục và tệp trong lệnh ls

    Nếu bạn chạy ls lệnh trong Bash, bạn sẽ nhận thấy rằng các thư mục và tệp bạn nhìn thấy được tô màu theo loại của chúng. Bạn có thể tùy chỉnh bảng màu của riêng mình để chọn các màu văn bản, màu nền và định dạng khác nhau như in đậm và gạch chân.

    Cách thức hoạt động

    Bảng màu được lưu trữ trong biến LS_COLORS. Để xem sơ đồ màu hiện tại của bạn, bạn có thể yêu cầu Bash in nội dung của biến:

    tiếng vang $ LS_COLORS

    Bạn sẽ thấy một danh sách dài các loại tệp và mã số. Chúng tôi sẽ giải thích cách tự tạo một danh sách như thế này.

    Trước khi giải quyết vấn đề này, chúng tôi khuyên bạn nên lưu nội dung hiện tại của biến LS_COLORS sang biến khác. Điều này sẽ cho phép bạn nhanh chóng khôi phục các cài đặt mặc định mà không cần đăng xuất khỏi trình bao và đăng nhập lại, hoặc đóng và mở lại cửa sổ đầu cuối. Để lưu nội dung hiện tại của biến LS_COLORS vào một biến mới có tên ORIGINAL, hãy chạy:

    GỐC = $ LS_COLORS

    Bất cứ lúc nào, bạn có thể chạy lệnh sau để hoàn tác các thay đổi của mình và khôi phục các màu mặc định:

    LS_COLORS = $ GỐC

    Những thay đổi của bạn luôn là tạm thời cho đến khi bạn chỉnh sửa một tệp để biến chúng thành mặc định mới của bạn. Bạn luôn có thể đăng xuất và đăng nhập lại hoặc đóng và mở lại cửa sổ đầu cuối để khôi phục màu về cài đặt mặc định của chúng. Tuy nhiên, điều này làm cho nó dễ dàng thực hiện với một lệnh nhanh, đơn.

    Cách đặt màu tùy chỉnh

    Biến LS_COLORS chứa danh sách các loại tệp cùng với mã màu được liên kết. Danh sách mặc định dài vì nó chỉ định các màu khác nhau cho một số loại tệp khác nhau.

    Hãy bắt đầu một ví dụ cơ bản để chứng minh cách thức hoạt động của nó. Giả sử chúng ta muốn thay đổi màu của các thư mục từ màu xanh đậm mặc định sang màu đỏ đậm. Chúng ta có thể chạy lệnh sau để làm như vậy:

    LS_COLORS = "di = 1; 31"

    Các di = 1; 31 bit nói ls thư mục đó (di) là (= =) Dũng cảm (1;) màu đỏ (31).

    Tuy nhiên, đây chỉ là một biến LS_COLORS rất đơn giản, xác định các thư mục là một màu và để mọi loại tệp khác làm màu mặc định. Giả sử chúng ta cũng muốn tạo các tệp có phần mở rộng tệp .desktop thành màu lục lam được gạch chân. Chúng ta có thể chạy lệnh sau để làm như vậy:

    LS_COLORS = "di = 1: 31: *. Desktop = 4; 36"

    Điều này nói ls thư mục đó (di) là (= =) Dũng cảm (1;) màu đỏ (31) và (:) bất kỳ tệp nào kết thúc bằng .desktop (* .desktop) Là (= =) gạch chân (4;) màu lục lam (36).

    Đây là quá trình để tập hợp danh sách các loại tệp và màu sắc của bạn. Chỉ định bao nhiêu tùy thích trong biểu mẫu filetype = color, phân tách từng dấu bằng dấu hai chấm (:).

    Để tập hợp danh sách của riêng bạn, bạn sẽ chỉ cần biết danh sách mã màu và mã loại tệp. Điều này sử dụng cùng mã màu số bạn sử dụng khi thay đổi màu trong dấu nhắc Bash của bạn.

    Đây là danh sách mã màu cho văn bản nền trước:

    • Đen: 30
    • Màu xanh: 34
    • Cyan: 36
    • Màu xanh lá cây: 32
    • Màu tím: 35
    • Đỏ: 31
    • Trắng: 37
    • Vàng: 33

    Ví dụ: vì văn bản màu vàng là mã màu 33, bạn sẽ sử dụng di = 33 để làm cho thư mục màu vàng.

    Dưới đây là danh sách các thuộc tính màu văn bản:

    • Văn bản bình thường: 0
    • Chữ đậm hoặc sáng: 1 (Nó phụ thuộc vào trình giả lập thiết bị đầu cuối.)
    • Văn bản Dim: 2
    • Văn bản được gạch chân: 4
    • Văn bản nhấp nháy: 5 (Điều này không hoạt động trong hầu hết các trình giả lập thiết bị đầu cuối.)
    • Văn bản đảo ngược: 7 (Điều này đảo ngược màu nền trước và màu nền, vì vậy bạn sẽ thấy văn bản màu đen trên nền trắng nếu văn bản hiện tại là văn bản màu trắng trên nền đen.)
    • Văn bản ẩn: 8

    Khi chỉ định một thuộc tính hoặc nhiều hơn một mã màu, hãy tách danh sách mã bằng ký tự dấu chấm phẩy (;). Bạn không cần chỉ định 0 cho văn bản bình thường, vì văn bản bình thường được sử dụng khi bạn không chỉ định một thuộc tính ở đây.

    Ví dụ: vì văn bản in đậm là mã màu 1 và văn bản màu vàng là mã màu 33, bạn sẽ sử dụng di = 1; 33 để làm cho các thư mục đậm màu vàng. Bạn cũng có thể chỉ định nhiều hơn một thuộc tính. Ví dụ: bạn có thể sử dụng di = 1; 4; 33 để làm cho các thư mục đậm, gạch chân màu vàng.

    Dưới đây là danh sách mã màu nền:

    • Nền đen: 40
    • Nền màu xanh: 44
    • Nền Cyan: 46
    • Nền xanh: 42
    • Nền màu tím: 45
    • Nền đỏ: 41
    • Nền trắng: 47
    • Nền vàng: 43

    Ví dụ: vì nền màu xanh là mã màu 44, bạn sẽ sử dụng di = 44 để sử dụng một nền màu xanh cho các thư mục. Bạn cũng có thể kết hợp mã màu nền, mã màu nền trước và bao nhiêu thuộc tính tùy thích. Ví dụ, di = 1; 4; 33; 44 sẽ cung cấp cho bạn văn bản màu vàng đậm, gạch chân trên nền màu xanh.

    Dưới đây là danh sách mã loại tệp:

    • Thư mục: di
    • Tập tin:
    • Liên kết tượng trưng: ln
    • Đặt tên ống (FIFO): pi
    • Ổ cắm: vậy
    • Thiết bị chặn: bd
    • Thiết bị ký tự: cd
    • Liên kết tượng trưng mồ côi (chỉ vào một tệp không còn tồn tại): hoặc
    • Thiếu tệp (một tệp bị thiếu mà một liên kết tượng trưng mồ côi chỉ đến): mi
    • Tệp thực thi (có sự cho phép của xx): ex
    • * .extension: Bất kỳ tệp nào kết thúc bằng phần mở rộng bạn chỉ định. Ví dụ: sử dụng * .txt cho các tệp kết thúc bằng .txt, * .mp3 cho các tệp kết thúc bằng .mp3, * .desktop cho các tệp kết thúc bằng .desktop hoặc bất cứ thứ gì bạn thích. Bạn có thể chỉ định bao nhiêu phần mở rộng tệp khác nhau tùy thích.

    Chỉ định bao nhiêu loại mã loại tệp khác nhau với bao nhiêu màu khác nhau tùy thích, được phân tách bằng ký tự :. Lặp lại quy trình này để lắp ráp biến LS_COLORS của bạn.

    Ví dụ: giả sử bạn muốn sử dụng văn bản màu tím đậm cho các thư mục, văn bản màu đỏ được gạch chân cho các tệp thực thi và văn bản màu lục đậm trên nền đỏ cho các tệp .mp3. Kết hợp mã loại tệp và mã màu từ các danh sách trên, bạn sẽ nhận được:

    LS_COLORS = "di = 1; 35: ex = 4; 31: *. Mp3 = 1; 32; 41"

    Cách đặt màu mặc định mới của bạn

    Bây giờ bạn có một biến LS_COLORS tùy chỉnh hoạt động trong phiên Bash hiện tại. Tuy nhiên, bạn có thể muốn làm cho nó vĩnh viễn để nó tự động được sử dụng bất cứ khi nào bạn bắt đầu một phiên Bash mới mà không cần phải nhớ điều này.

    Bạn có thể đặt biến LS_COLORS tùy chỉnh của mình - và bất kỳ biến Bash nào khác mà bạn thích - bằng cách thêm nó vào tệp .bashrc của tài khoản người dùng của bạn. Tập tin này được đặt tại ~ / .bashrc. Vì vậy, nếu tên người dùng của bạn là bob, bạn sẽ tìm thấy nó tại /home/bob/.bashrc. Có nhiều cách khác để đặt biến môi trường, nhưng đây là một cách đơn giản.

    Đầu tiên, mở tệp này trong trình soạn thảo văn bản ưa thích của bạn. Chúng tôi sẽ sử dụng nano ở đây làm ví dụ, nhưng bạn có thể sử dụng vi, emacs hoặc bất cứ thứ gì bạn thích.

    nano ~ / .bashrc

    Thêm biến LS_COLORS tùy chỉnh của bạn vào một dòng mới ở cuối tệp, như vậy:

    LS_COLORS = "di = 1; 35: ex = 4; 31: *. Mp3 = 1; 32; 41"

    Lưu file và thoát. Trong nano, nhấn Ctrl + O và sau đó nhấn Enter để lưu, sau đó nhấn Ctrl + X để thoát.

    Bất cứ khi nào bạn bắt đầu một phiên Bash mới, Bash sẽ đọc tệp .bashrc và tự động đặt biến LS_COLORS của bạn. Để thay đổi màu sắc của bạn trong tương lai, hãy quay lại tệp .bashrc của bạn và chỉnh sửa dòng LS_COLORS.

    Bạn cũng có thể xóa LS_COLORS = dòng bạn đã thêm vào tệp .bashrc để sử dụng lại các màu mặc định. Nếu bạn không đặt giá trị LS_COLORS, Bash sẽ sử dụng màu mặc định.