Цвета в соединении ssh


8

У меня есть цветной терминал bash (например, ls и vim показывают цвета, когда настроены для этого).

Как я могу иметь эти цвета при подключении к удаленному серверу через SSH?

Ответы:


3

Прочтите подраздел dircolors.sh из книги «Beyond Linux From Scratch»:

Этот скрипт использует ~/.dircolorsи /etc/dircolorsфайлы для управления цветами имен файлов в списке каталога. Они контролируют цветной вывод таких вещей, как ls --color . Объяснение того, как инициализировать эти файлы, находится в конце этого раздела.

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
Вы можете немного расширить свой ответ? Вопрос имеет 2800 просмотров - было бы здорово добавить немного больше контекста.
slhck

Fedora 20 также поставляется со скриптом colorls.sh .
Кристиан Чиупиту

3

Используя комбинацию /unix/9883/how-can-i-run-a-script-immediately-after-connecting-via-ssh и ответа nik, вы можете сделать:

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

Это выполнит сценарии вашего профиля при входе в систему, затем откроет оболочку bash. Сценарии вашего профиля - это то, где определены цвета.

Или, для максимального удобства, добавьте в свой ~/.ssh/configфайл следующее:

Host *
  LocalCommand . /etc/profile; . ~/.profile; /bin/bash
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.