У меня есть цветной терминал bash (например, ls и vim показывают цвета, когда настроены для этого).
Как я могу иметь эти цвета при подключении к удаленному серверу через SSH?
Прочитайте подраздел 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
Используя комбинацию https://unix.stackexchange.com/questions/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