EDIT : en Yosemite (OS X 10.10) usa esto en su lugar:
function ssh ()
{
servername=$(echo $@ | sed -E 's|([- a-zA-Z0-9:/]+)( *[^@ ]*@)([^@ ]*)||')
echo -ne "3]0;${servername}unset -f ssh
7";
/usr/bin/ssh $@
}
Tenga en cuenta que la función espera que el nombre de usuario y el nombre del servidor se especifiquen como user@server
(también puede usar la dirección IP del servidor: [email protected]
, el nombre de la pestaña se configurará como a.b.c.d
). Otras combinaciones como -l user server
no funcionarán correctamente.
Puedes desactivar la función con:
function ssh ()
{
servername=$(echo $@ | sed 's|\([- a-zA-Z0-9:/]\+\) *\([^-]\+@\)*\([-a-zA-Z0-9.]\+\)||' | awk '{print $1}');
echo -ne "3]0;${servername}ssh user@server command
7";
/usr/bin/ssh $@
}
Puedes crear una función llamada ssh
que establece el nombre de la pestaña del terminal y luego invoca /usr/sbin/ssh
:
ssh jaume@myserver ls -l /
-
servername=$(echo $@ ...
La primera línea extrae el nombre del servidor de los argumentos pasados a ssh
. Lo probé con varias posibles invocaciones de ssh
con y sin argumentos, pero no puedo prometer que sea a prueba de balas.
-
echo -ne "3]0;${servername}3]0;<name>/usr/bin/ssh $@
7
7";
La segunda línea es donde ocurre la magia.
/usr/bin/ssh
es una secuencia de ESCAPE que establece el nombre de la pestaña del terminal. Consulte este artículo de Wikipedia para obtener más información: este código de escape en particular se encuentra en sección de códigos no CSI .
-
~/.bashrc
Comience bash
con los argumentos proporcionados.
Agregue la función a su archivo %code% (si no usa %code% modifíquelo para que coincida con la sintaxis de su shell y agréguelo al archivo de inicio de su shell) para que siempre esté accesible.
Tenga en cuenta que también establecerá el nombre de la pestaña del terminal cuando ejecute un comando remoto:
function ssh ()
{
servername=$(echo $@ | sed -E 's|([- a-zA-Z0-9:/]+)( *[^@ ]*@)([^@ ]*)||')
echo -ne "3]0;${servername}unset -f ssh
7";
/usr/bin/ssh $@
}
por ejemplo:
function ssh ()
{
servername=$(echo $@ | sed 's|\([- a-zA-Z0-9:/]\+\) *\([^-]\+@\)*\([-a-zA-Z0-9.]\+\)||' | awk '{print $1}');
echo -ne "3]0;${servername}ssh user@server command
7";
/usr/bin/ssh $@
}