Acabei de apresentar o GNU Screen a um amigo e eles estão tendo dificuldade em se acostumar com isso. Isso me faz pensar nas coisas essenciais que ele precisa saber sobre o excelente utilitário Screen , as mesmas coisas que você acha que vale a pena ensinar a alguém, um iniciante, do zero. Quais são algumas analogias e dicas úteis para lembrar de amarras etc.?
Seria maravilhoso.
gnu-screen
Henry B
fonte
fonte
Respostas:
Uso
Screen
há mais de 10 anos e provavelmente uso menos da metade dos recursos. Portanto, definitivamente não é necessário aprender todos os seus recursos imediatamente (e eu não recomendo tentar). Meus comandos diários são:Eu acho que é isso. Às vezes uso os recursos de tela dividida, mas certamente não diariamente. A outra dica é se a tela parece ter travado porque você pressionou alguma combinação de teclas aleatória por acidente, faça as duas coisas
^Q
e^A ^Q
tente destravá-la.fonte
exit
). A janela da tela fecha automaticamente após sair do último shell em uma janela.Não consegui me acostumar com a tela até encontrar uma maneira de definir uma 'barra de status' na parte inferior da tela que mostra em qual 'guia' ou 'tela virtual' você está e quais outras existem. Aqui está minha configuração:
fonte
Ctrl+ A? - mostre a tela de ajuda!
fonte
Se o seu amigo tem o hábito de pressionar
^A
para chegar ao início da linha no Bash, ele terá algumas surpresas, já que^A
é a tecla de comando da tela. Normalmente acabo com uma tela congelada, possivelmente por causa de alguma tecla aleatória que pressionei após^A
:-)Nesses casos eu tento
^A s
e^A q
bloquear / desbloquear a rolagem do terminalpara consertar isso. Para ir para o início de uma linha dentro da tela, a sequência de teclas é
^A a
.fonte
Você pode remapear a tecla escape de Ctrl+ Apara ser outra tecla de sua escolha, então se você a usar para outra coisa, por exemplo, para ir para o início da linha no bash, você só precisa adicionar uma linha ao seu ~ /. arquivo screenrc. Para torná-lo ^ b ou ^ B, use:
Na linha de comando, use sessões de nomes para manter várias sessões sob controle. Eu uso uma sessão por tarefa, cada uma com várias guias:
Ao usar a tela, você só precisa de alguns comandos:
Uma excelente referência rápida pode ser encontrada aqui . Vale a pena marcar como favorito.
fonte
screen -e^oo
para que possa usar Ctrl + O para isso e, em seguida, inicio os internos comscreen -m
para que iniciem novas sessões.^A :
seguido por\Bb
seguido de Enter para definir a tecla de escape para ^ B. Em geral,^A :
permite que você avalie o comando que você.screenrc
entende.Algumas dicas para aqueles que estão familiarizados com a tela, mas que tendem a não se lembrar das coisas que lêem na página de manual:
.screenrc
arquivo:Isso atribui ctrl+ a shift+ 0 through 9para as janelas 10 a 19.
fonte
Ctrl+ Aé o comando básico
Ctrl+ A N= ir para a tela *** N *** ext
Ctrl+ A P= ir para a *** P *** tela anterior
Ctrl+ A C= *** C *** ria nova tela
Ctrl+ A D= *** D *** anexe sua tela
fonte
http://www.debian-administration.org/articles/34
Escrevi isso há alguns anos, mas ainda é uma boa introdução que recebe muitos comentários positivos.
fonte
$VAR1 = \'Can\'t connect to local MySQL server through socket \'/var/run/mysqld/mysqld.sock\' (111 "Connection refused") at ../lib/Singleton/DBI.pm line 95. ';
Eu "devo" adicionar isto: adicionar
para o seu
.screenrc
, se você - como eu - costumava usar janelas divididas, comoC-a S
divide a janela real, masC-a s
congela. Então, acabei de desabilitar o atalho de congelamento.fonte
^-Q
descongela se você acertar^-S
Ctrl+ aé uma chave especial.
Ctrl+ a d- [d] etach, deixe os programas (irssi?) em segundo plano, vá para casa.
Ctrl+ a c[c] ria uma nova janela Ctrl+ a 0-9alternar entre as janelas por número
screen -r - volta para a sessão separada
Isso cobre 90% dos casos de uso. Não tente mostrar todas as funcionalidades de uma só vez.
fonte
screen
fiquei confuso sobre o que realmente significava remover e reconectar uma tela. Citação : "... você pode executar tarefas de longa duração em consoles separados (como ssh em uma máquina remota, sessões de IRC, ...) em uma determinada máquina, desconectar da sessão, mover de um local físico para outro, conectar-se a a máquina por meio de ssh e reconecte à sessão de tela para continuar trabalhando. "Não é realmente essencial, não apenas relacionado à tela, mas habilitando 256 cores em meu terminal, GNU Screen e Vim melhoraram minha experiência de tela em muito (especialmente porque eu codifico no Vim cerca de 8h por dia - existem alguns esquemas de cores ótimos para os olhos).
fonte
A primeira modificação que faço em .screenrc é alterar o comando de escape. Assim como muitos de vocês, não gosto da sequência padrão Ctrl-A por causa de sua interferência com essa funcionalidade fundamental em quase todos os outros contextos. No meu arquivo .screenrc, adiciono:
escapar `e
Isso é backtick-e.
Isso me permite usar a crase como a tecla de escape (por exemplo, para criar uma nova tela, pressiono crista-c, desanexar é crase-d, crista- é ajuda, crista-crista é a tela anterior, etc.). A única maneira de interferir (e eu tive que me livrar do hábito) é usando crase na linha de comando para capturar a saída da execução ou colando qualquer coisa que contenha crase. Para o primeiro, modifiquei meu hábito usando a convenção BASH $ (comando). Para o último, geralmente apenas abro outro xterm ou desanexo da tela e colo o conteúdo que contém o crase. Finalmente, se eu desejar inserir uma crase literal, simplesmente pressiono crase-e.
fonte
Há algum trabalho interessante sendo feito para obter uma boa configuração de tela GNU acontecendo por padrão na próxima versão do Ubuntu Server, que inclui o uso da parte inferior da tela para mostrar todas as janelas, bem como outros detalhes úteis da máquina (como o número de atualizações disponível e se a máquina precisa de uma reinicialização). Você provavelmente pode pegá-
.screenrc
los e personalizá-los de acordo com suas necessidades.Os comandos mais úteis que tenho no meu
.screenrc
são os seguintes:Assim, sempre sei quais janelas estão abertas e o que está funcionando nelas no momento.
fonte
Eu uso o seguinte para
ssh
:Em seguida, defino os seguintes aliases de bash:
Ele abre uma nova tela para os aliases acima e iff usando ssh, ele renomeia o título da tela com o nome de host ssh.
fonte
Gosto de configurar uma sessão de tela com nomes descritivos para as janelas. ^ a A permitirá que você dê um nome para a janela atual e ^ a "lhe dará uma lista de suas janelas. Quando terminar, destaque a tela com ^ ad e reconecte com tela -R
fonte
Eu gosto de usar
screen -d -RR
para criar / anexar automaticamente a uma determinada tela. Criei funções bash para tornar mais fácil ...Eles criam um alias para
/usr/bin/screen -d -RR -S $name $command
. Por exemplo, gosto de usar o irssi em uma sessão de tela, portanto, em meu .bashrc (abaixo dessas funções), tenho:Então eu posso apenas digitar
irc
um terminal para entrar no irssi. Se a tela 'irc' ainda não existe, ela é criada e / usr / bin / irssi é executado a partir dela (que se conecta automaticamente, é claro). Se já estiver em execução, simplesmente reconecto-o, desanexando à força qualquer outra instância que já esteja anexada a ele. É muito bom.Outro exemplo é a criação de aliases de tela temporários para perldocs à medida que os encontro:
A opção -a (deve ser o primeiro argumento) anexa o alias da tela a .bashrc (portanto, é persistente) e -d o remove (eles podem ser potencialmente destrutivos, portanto, use por sua conta e risco). xD
Acrescentar:
Outro bashismo que acho conveniente ao trabalhar muito com tela:
Dessa forma, você pode listar suas telas com muito menos teclas. Não sei se
sls
colide com algum utilitário existente, mas não colidia no momento em meu sistema, então fui em frente.fonte
^ AA volta para a tela de onde você acabou de sair.
fonte
Ctrl+ Aé um ótimo personagem especial para pessoas do Unix, mas se você estiver usando a tela para falar com o OpenVMS , não ser capaz de ^ A vai deixá-lo careca prematuramente.
No VMS , se você estiver editando um comando DCL antes da execução do buffer de histórico, o modo Insert está desligado (deve ser por alguns motivos que não vou entrar aqui) ... para ligá-lo para que você não Para não sobrescrever seu comando em vez de espaçar as coisas, você deve pressionar `^ A.
fonte
screen -e ^Ll
por motivos semelhantes; Eu simplesmente não consigo desaprender a digitar ctrl-A para ir para o início da linha no Emacs. Felizmente, ctrl-L é um pressionamento de tecla que raramente preciso, e também IMHO se conecta muito bem com seu significado geral (redesenhar / limpar tela)..screenrc
hasescape ^@^@
, que usa o caractere nulo em vez de control-A. Na maioria dos sistemas, você pode inserir o caractere nulo como espaço de controle, que é muito fácil de digitar. (Eu tenho uma sessão de tela aninhada em execução dentro de uma janela na minha sessão principal; para essa eu tenhoescape ^]^]
.)