Cla*_*ied 0 ssh unix terminal.app macbook-pro title
我不确定这是否是我的 mac 的问题,我是它的菜鸟,或者它是否是我正在使用的服务器的设置。
我正在做的是这样的:
你如何使标题名称坚持为 abc123 并且当我 su 给其他用户时不改变?在此先感谢您的帮助。
标题是从您要连接的服务器设置的。机会是,/etc/bashrc
或类似的文件定义PROMPT_COMMAND
来设置标题。在 CentOS 6 上,它看起来像这样:
if [ -z "$PROMPT_COMMAND" ]; then
case $TERM in
xterm*)
if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
else
PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
fi
;;
[... more of the same ...]
esac
fi
Run Code Online (Sandbox Code Playgroud)
为了防止这种情况,请确保PROMPT_COMMAND=
在root
您通过 SSH 连接的服务器上设置in和您自己的 bash 配置文件(例如~/.bashrc
)。
或者,添加PROMPT_COMMAND
到/etc/sudoers
( env_keep
) 和/etc/ssh/sshd_config
( AcceptEnv
) 以从本地系统继承它,并将其设置为不影响标题栏的值。
在这种特定情况下,您还可以设置您的终端声明一个不同的终端,因为这仅xterm*
在 CentOS 上设置(终端»首选项...»设置»(选择配置文件)»高级»声明终端为)。
Terminal.app 似乎不允许锁定标题 - 您可能希望更改如上所述设置它的配置。您可以随时查看不同的终端,例如 iTerm。即使标题更改,它也支持在标题中保留配置文件名称。
这是一个肮脏的黑客,可以在不更改您通过 SSH 连接到的所有服务器的配置的情况下保留您的终端标题:
在通过 SSH 连接到 Linux 机器的同一个 shell 中,在执行此操作之前,运行以下命令:
while true ; do printf "\033]0;%s\007" "My Terminal Title" ; sleep 1 ; done &
Run Code Online (Sandbox Code Playgroud)
这将在后台执行一个循环,每秒一次将终端标题更改为我的终端标题,覆盖在您的 SSH 会话中执行的任何更改。
一旦大功告成,在你的shell使用作业控制,以阻止它(jobs
以及kill %1
如果它是第一个作业),或fg
将其带到前景,并与取消Ctrl-C
。
归档时间: |
|
查看次数: |
1720 次 |
最近记录: |