web-dev-qa-db-ja.com

ssh経由で色付きの端末を取得する方法は?

Sshを介してリモートホストに接続すると、すべてが単一のフォント/色になります。私が地元でやっているような色を持ちたい。実行可能ファイルは緑色、シンボリックリンクなどは青色

52
Dima

サーバー上のxtermであったため、.bashrcに問題があると考えました

本当に! ls --color=autoは、TTYに接続している場合にのみ機能します。すべてをリモートホスト上の--color.bashrcに変更すると、すべてがきれいな色になります。

34
Dima

これは私のために働いた:

ssh -t my_Host my_command

-tがキーでした。 説明

18
juanpastas

私にとって~/.bashrcにはすでに色が設定されているようで、問題はsshがbashrcファイルを使用しないことです。次を~/.bash_profileに追加することで、sshセッションでbashrcを使用できます。

if [ -f ~/.bashrc ]; then
      . ~/.bashrc
fi
10

サーバーに接続したときのサーバー上のXTERM環境変数の内容は何ですか?

~ > export | grep -i term
TERM=xterm
7

私の場合、欠落している部分には、ls、grepなどの色が付けられていました。これは、.bashrcファイルにエイリアスを追加することで追加できます。

alias ls='ls --color=auto'
alias grep='grep --color=auto'

等.

4
Stuart Clark

~./bashrc設定(ローカルサーバーとリモートサーバーの両方)を変更しようとしましたが、うまくいかないようでした。

それから、リモートサーバーの~/.bashrcは、ssh経由で接続しても実行されないことに気付きました。そこで、リモートサーバーの~/.bashrcputtinng if [ -f ~/.bashrc ]; then . ~/.bashrc fiで実行する~/.bash_profileを作成しました。https://stackoverflow.com/questions/820517/bashrc-at-ssh-login )。

そのため、このソリューションでは~/bashrcファイルを直接変更する必要はありませんでしたが、リモートサーバーの~/bash_profileファイルを変更して、リモートサーバーの~/bashrcファイルを実行する必要がありました。

2
chris544

直接ログインしている間は色が正常に機能したため、ファイルforce_color_Prompt=yes~/.bashrc行のコメントを外しました。

# uncomment for a colored Prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the Prompt
force_color_Prompt=yes

(Ubuntu 18.04 LTS)

1
hinneLinks

私の状況では、最近chef-localをインストールし、.bash_profileに行を追加するように要求しました。サインインすると、.bashrcが表示されたため、.bash_profileがロードされなくなります。

私がしたことは、.bash_profileに行を追加することでした:

source .bashrc
export PATH="/opt/chefdk/embedded/bin:$PATH"

ログアウトしてからログインし直して、色付きの端末を手に入れました。

1
Kevin

上記の「マイクE」からのコメントには、答えが含まれていますが、読むのが難しいだけでなく、.bashrcをあまり使用しない場合の彼の意味を理解するのも難しいです-私はしません。

少しねじ込んだ後、私はsshでログインしていたマシンで~/.bashrcの次の行を変更することで、望ましい結果を得ました。

# set a fancy Prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_Prompt=yes;;
esac

に:

# set a fancy Prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_Prompt=yes;;
    xterm) color_Prompt=yes;;
esac

最初の行の「色」の後に「| xterm」を追加したり、sshが「xterm-color」の代わりに「xterm」を使用してそれを変更した理由を調べたりして、それを変更できたと思いますが、これはうまくいきます他にやることがあります。

0
Mike Wise

TERM=dumbが原因でプロキシ経由で接続すると色が消えていたので修正しました。

ssh myproxy "ssh pi@localhost -p 5000 -tt 'TERM=xterm bash'"
0
ErichBSchulz