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 nameopçã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 -lse 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, Ao 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 $STYvariável de ambiente ainda se refere ao nome original. Veja o screenmanual: 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 ccria uma janela C-a ne C-a palterna para a janela seguinte / anterior e assim por diante.-rou -R) cria uma nova sessão.O Windows possui títulos, que podem ser definidos por meio da -topção de linha de comando, C-a Aligação de teclas, titlecomando ou \eksequê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 -Sopçã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.sessionnameonde 12345 é o ID do processo de tela. Use screen -r sessionnameou screen -r 12345para 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.
screenpelo 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 Xem 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 unaliaspara removê-los.