Это один из возможных способов сделать то, что вы ищете:
tmux устанавливает переменные среды в создаваемых им оболочках (например, $ TMUX, $ TMUX_PANE), их можно обнаружить и запустить команду ssh, чтобы сообщить вам удаленный сеанс, как клиент был запущен, мы рассматриваем в два этапа.
Во-первых, определение того, где запускается ssh, может быть выполнено с помощью функции, названной ssh для данного примера.
function ssh {
if [ -z "$TMUX" ]; then
# echo connecting from a plain terminal
/usr/bin/ssh $1 # $1 is <user@hostname>
else
# echo connecting through tmux
/usr/bin/ssh -t $1 bash --rcfile '~/.bashrc.tmux'
fi
}
Примечание: функции имеют приоритет, если их имена совпадают с именами программ в вашем пути. Назовите функцию по-другому, если хотите избежать путаницы.
Во-вторых, чтобы позволить вашему удаленному хосту установить вашу подсказку соответствующим образом, создайте файл ~ / .bashrc.tmux на вашем удаленном хосте, например,
# contents of .bashrc.tmux, override PS1 to your liking
source .bashrc
PS1="[\d \t \u@\h:\w ] $ "
. В качестве альтернативы вы можете установить переменную среды, которая будет использоваться в большем количестве мест
RUNNING_THRU_TMUX=true
source .bashrc