Это решение немного хакерское, но я думаю, что оно сделает то, что вы ищете. Вам нужно xdotool
и wmctrl
установить для этого, чтобы работать.
Сначала вы должны отредактировать ваш ~/.bashrc
файл, потому что по умолчанию терминал сбрасывает свой заголовок после каждой строки, что делает вывод заголовка командной строки бесполезным.
Сразу после: xterm*|rxvt*)
Заменить: PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
С: PS1="${debian_chroot:+($debian_chroot)}\u@\h \w\a$ "
Далее мы собираемся создать собственный ssh
скрипт, который называется как угодно, но для этого ответа я буду называть свой tab-ssh
. Откройте текстовый редактор и сохраните следующее как tab-ssh
:
#!/usr/bin/env bash
WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}')
xdotool windowfocus $WID
xdotool key ctrl+shift+t
wmctrl -i -a $WID
sleep 1
title=$(echo "$*" | sed s/.*@//g)
xdotool type --delay 1 --clearmodifiers 'echo -en "\033]0;"'"${title}"'"\a"'
xdotool key Return
sleep 1
xdotool type --delay 1 --clearmodifiers "ssh $*"
xdotool key Return
Затем сделайте его исполняемым:
chmod +x tab-ssh
Теперь, если вы используете bash
и gnome-terminal
, при запуске скрипта должна открыться новая вкладка, переименовать ее и начать ssh
сеанс. Например:
tab-ssh username@0.0.0.0
откроет новую вкладку, переименует ее 0.0.0.0
(т.е. все, что следует за знаком «@»), затем выполнит username@0.0.0.0
.
Создано с использованием следующего: