LoginSignup
3
5

More than 3 years have passed since last update.

【macOS】sshで接続したときにプロンプトの文字色を変える方法

Last updated at Posted at 2018-06-21

普段はWindowsなんですが、諸事情あってMacも使うことになりまして、
ターミナル上だとサーバーに接続してるのかローカルなのかわかりにくいので、
sshで接続したときのプロンプトの文字色を変えることにしました。

参考にしたのはこちら。
Bashでssh接続時、接続先によってプロンプトの文字色/背景色を変える

まぁ、この記事に全てが書いてあるからこの通りにやれば良いんだけど、ちょっと詰まったのでメモ。

1.ssh_change_prompt.shを作成する

わざわざシェルスクリプト作成してエイリアスを設定するの面倒だし、
そのまま.bash_profileに書けば良くね?と思ってやってみたけどダメだった。

というわけで、素直に手順に従う。

$ cd
$ vi .ssh/ssh_change_prompt.sh
ssh_change_prompt.sh
#!/bin/bash

# server_nameごとに色を分けたい場合
if [[ "$@" == server_name ]]; then
  ssh server_name -t "export PS1='\[\e[37m\][\[\e[31m\]\u\[\e[37m\]@\h \[\e[32m\]\W\[\e[37m\]]\$ '; bash --login"
else
  ssh $@
fi

# どのサーバーにsshしても適用したい場合
ssh $@ -t "export PS1='\[\e[37m\][\[\e[31m\]\u\[\e[37m\]@\h \[\e[32m\]\W\[\e[37m\]]\$ '; bash --login"

ちなみにこれで[User@host CurrentDirectory]$のように表示されて、Userが赤、CurrentDirectoryが緑、それ以外が白になります。

2.エイリアスを設定する

さっき作ったシェルにエイリアスを設定して、変更を反映する。

$ vi .bash_profile

alias ssh=~/.ssh/ssh_change_prompt.sh

変更した後反映するのも忘れずに。

$ source .bash_profile

ちょっと詰まったところ

試しにsshしてみたら、権限が無いって怒られた。

$ ssh server_name
-bash: /Users/user_name/.ssh/ssh_change_prompt.sh: Permission denied

さっき作ったssh_change_prompt.shを見たら実行権限がなかったので、ユーザーに実行権限を付与したらうまくいった。

$ ls -l .ssh/
-rw-r--r--  1 user  group   189  3 28 12:12 ssh_change_prompt.sh

$ chmod +x .ssh/ssh_change_prompt.sh
// もしくは
$ chmod u+x .ssh/ssh_change_prompt.sh
$ ls -l .ssh/
-rwxr--r--  1 user  group   189  3 28 12:12 ssh_change_prompt.sh
3
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5