Màu sắc trong kết nối ssh


8

Tôi có một thiết bị đầu cuối bash đầy màu sắc (ví dụ ls và vim hiển thị màu khi được cấu hình để làm như vậy).

Làm cách nào để có những màu này khi kết nối với máy chủ từ xa qua ssh?

Câu trả lời:


3

Đọc phần phụ dircolors.sh từ cuốn sách "Beyond Linux From Scratch":

Kịch bản lệnh này sử dụng các tệp ~/.dircolors/etc/dircolorsđể kiểm soát màu của tên tệp trong danh sách thư mục. Họ kiểm soát đầu ra màu của những thứ như ls --color . Giải thích về cách khởi tạo các tệp này nằm ở cuối phần này.

cat > /etc/profile.d/dircolors.sh << "EOF"
# Setup for /bin/ls and /bin/grep to support color, the alias is in /etc/bashrc.
if [ -f "/etc/dircolors" ] ; then
        eval $(dircolors -b /etc/dircolors)

        if [ -f "$HOME/.dircolors" ] ; then
                eval $(dircolors -b $HOME/.dircolors)
        fi
fi
alias ls='ls --color=auto'
alias grep='grep --color=auto'
EOF

9
Bạn có thể mở rộng câu trả lời của bạn một chút? Câu hỏi có 2.800 lượt xem - sẽ rất tuyệt nếu thêm một chút bối cảnh.
slhck

Fedora 20 cũng đi kèm với một kịch bản colorls.sh .
Cristian Ciupitu

3

Sử dụng kết hợp /unix/9883/how-can-i-run-a-script-immediately-after-connecting-via-ssh và câu trả lời của nik bạn có thể làm:

ssh host.example.com -t '. /etc/profile; . ~/.profile; /bin/bash'

Điều này sẽ thực thi các tập lệnh hồ sơ của bạn khi đăng nhập, sau đó mở một bash shell. Kịch bản hồ sơ của bạn là nơi màu sắc được xác định.

Hoặc, để thuận tiện tối đa, hãy thêm các mục sau vào ~/.ssh/configtệp của bạn :

Host *
  LocalCommand . /etc/profile; . ~/.profile; /bin/bash
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.