Existe uma maneira de atribuir um nome específico a uma sessão de tela unix? Por exemplo, digamos que estou executando o mesmo programa várias vezes, cada um com parâmetros diferentes e quero dizer qual é qual.
Existe uma maneira de atribuir um nome específico a uma sessão de tela unix? Por exemplo, digamos que estou executando o mesmo programa várias vezes, cada um com parâmetros diferentes e quero dizer qual é qual.
Respostas:
Você pode nomear uma sessão ao iniciá-la com a -S name
opção Na tela em execução, você pode alterá-lo digitando CTRL-a, :sessionname name
. Você pode visualizar as sessões de tela em execução screen -ls
e conectar-se a uma por nome com screen -xS name
.
Em uma sessão de tela única, você também pode nomear cada janela. Faça isso digitando CTRL-a, A
o nome que você deseja. Você pode visualizar uma lista interativa de janelas nomeadas digitando CTRL-a, "
e selecione a lista para a qual deseja alternar.
Nomear telas e terminais nas telas é realmente útil para lembrar o que são e por que você os iniciou em primeiro lugar.
:sessionname NEWNAME
), mas é "geralmente desencorajado". A $STY
variável de ambiente ainda se refere ao nome original. Veja o screen
manual: gnu.org/software/screen/manual/html_node/Session-Name.html
Existem dois conceitos aqui, e não tenho certeza de qual deles você tem em mente:
C-a c
cria uma janela C-a n
e C-a p
alterna para a janela seguinte / anterior e assim por diante.-r
ou -R
) cria uma nova sessão.O Windows possui títulos, que podem ser definidos por meio da -t
opção de linha de comando, C-a A
ligação de teclas, title
comando ou \ek
sequência de escape. Veja a resposta do shellter para mais detalhes.
As sessões podem ter nomes. Você normalmente definiria o nome na linha de comando com a -S
opção; se você não especificar um nome, a tela cria um. Se você usa várias sessões de tela, normalmente atribui a eles nomes de sessão diferentes. Você pode listar a sessão da tela em execução com screen -ls
; a primeira palavra em cada linha da sessão é 12345.sessionname
onde 12345 é o ID do processo de tela. Use screen -r sessionname
ou screen -r 12345
para retomar uma sessão indicada por seu nome ou ID do processo.
Ah ... Tela, isso me leva de volta ;-)
Para uma janela
-t name
sets the title (a.k.a.) for the default shell or specified program.
See also the "shelltitle" .screenrc command.
Para várias sessões iniciadas no seu .screenrc
screen -t top 2 nice top
screen -t ....
Aqui está um link para uma cópia on-line da página de manual para tela.
Editar: adicionado
Para alterar o nome da tela atual, crie uma ferramenta de script de shell como
cat scrnTitle.sh
#/bin/bash
echo -ne '\ek${0}\e\\'
Não testado, não tenho tela disponível no sistema em que estou trabalhando.
screen
pelo menos 25 anos. Me retira, porque agora é um caso de uso especial que eu levaria screen
. Normalmente, continuo abrindo X-Terms
, mas lembro quando parecia impossível rodar X
em um PC 486 ;-) Felicidades!
As respostas acima já informam como nomear uma tela quando você a inicia. Eles também apontam que uma tela não pode ser renomeada após ter sido iniciada. O título da janela pode ser definido, mas o nome usado para anexar à tela permanece pid.pty.host.
No entanto, para obter um efeito útil, descobri que o uso do alias funciona muito bem. Se eu esquecer de nomear uma tela ou me encontrar em uma sessão com várias telas que naturalmente se tornaram telas para tarefas específicas, basta definir um apelido para o comando anexar a elas.
exemplo:
alias goncompile='screen -r 2354'
A emissão do comando alias por si só lembrará as telas que você criou e o comando que você configurou para anexar a elas.
Use unalias
para removê-los.