coluna do aurélio 07
screen (janelizando o modo texto - parte 1)
http://aurelio.net/doc/coluna
olás. como começar a escrever sobre o screen
? ele tem tantas vantagens
e seu uso pode ser para tantos fins diferentes que realmente é difícil
encontrar um ponto de partida. por definição, ele é um gerenciador de
console que cria "janelas" e permite toda sorte de facilidades e
interações entre elas, como alternar, copiar, colar, monitorar,
capturar, travar, dividir, redimensionar, interromper, guardar,
restaurar e destruir.
então com apenas um acesso ("login") na máquina, você pode ter várias
janelas, independentes, cada uma com seu próprio ambiente, como no X
.
o efeito é parecido com ter várias seções abertas nos alt+F1
, alt+F2
da vida, mas sem precisar ficar informando usuário e senha a cada seção
nova e com possibilidade de interação total entre elas.
essa "janela", não é gráfica ou visual, portanto o modo texto continua o mesmo de sempre, em tela cheia. se preferir, você pode sacrificar a última linha da tela para ter uma "barra de tarefas", podendo colocar nela a data, horário, informações de consumo de memória e CPU da máquina, e nomes para cada janela criada. vale a pena, é muito útil.
bem, vamos dar uma brincada com ele então? a página do programa está em http://www.gnu.org/software/screen, mas ele também vem com a grande maioria (todas?) das distribuições de linux, procure na sua. instalado o programa, simplesmente o chame na linha de comando:
$ screen
apareceu uma tela de boas-vindas. aperte ENTER
. pronto, este é o
screen
! apareceu nada? então está certo &:) como já dito, ele é tela
cheia, então não interfere na aparência de seu console, mas já está
funcionando. para saber os comandos mais usados, digite ctrl+a ?
. este
ctrl+a
é a tecla-chave do screen
e precede todos os seus comandos.
esta combinação será referenciada como ^a
daqui adiante, então ^a ?
é a ajuda, use-a sempre que precisar.
primeiramente, para ficar mais "visual" o processo de criação e troca de
janelas, vamos colocar a "barra de tarefas". como o vi
, o screen
tem
uma linha de comando própria, para aceitar comandos literais ou que
recebem parâmetros, invocada pelo comando :
. então, primeiro chame a
linha de comando com o ^a :
(veja a linha láááá embaixo) e digite
hardstatus alwayslastline "%c %w"
. agora temos uma barra permanente
com o horário e as janelas abertas, por enquanto apenas uma "0* bash",
sendo zero o número da janela, o asterisco indica que é esta a janela
ativa e "bash" é o nome desta janela.
para Criar uma janela nova, ^a c
. note que ela apareceu na barra lá
embaixo também, com o número 1 e com o mesmo nome da janela anterior.
para não confundir, vamos trocar o nome desta janela: ^a A
(note que é
um "a" maiúsculo), e aparecerá um prompt para você digitar o nome novo
da janela, suponhamos "www", e nesta janela você chama o lynx
para
navegar.
para Alternar entre duas janelas (igual com os canais da tv), ^a ^a
.
este além de útil no uso diário é bom para se ter um diff
bem visual
entre dois arquivos, abrindo um em cada janela e simplesmente segurando
o ^a
até cansar.
crie uma terceira janela ^a c
, e a nomeie como "email" por exemplo.
agora vamos ver mais de uma janela simultaneamente na tela ("Split"),
apertando ^a S
para dividir a tela em 2 partes. para mais partes, siga
apertando ^a S
até se satisfazer. ao dividir a tela, a janela atual
fica na parte de cima e na parte debaixo, NÃO há janelas, ela se inicia
vazia. então vamos com o cursor para a parte de baixo ^a TAB
e colocar
a janela do lynx
(que tem número 1) nela ^a 1
. quer voltar para a
parte superior? ^a TAB
novamente.
se por acaso você apertou por engano ^a s
, com o "s" minúsculo, verá
que a tela "congelou". basta apertar ^a q
pra ela se descongelar. esta
é a função de "scroll lock", igual como apertar a tecla de mesmo nome do
teclado. ela é praticamente inútil pois o próprio ctrl+s
já faz isso
(além de existir a tecla física), então podemos anular este comando para
evitar apertá-lo sem querer: ^a :bind s
, ou ainda redefini-lo para
outra função qualquer: ^a :bind s help
. e assim pode-se anular ou
redefinir qualquer outro comando. e note que ao consultar a ajuda, suas
redefinições aparecerão lá!
para voltar à tela cheia, ^a Q
"maximizará" a tela ativa, voltando à
condição anterior à da divisão. cada janela desaparecerá normalmente
quando você der o "logout" do shell
, ou para forçar, ou melhor dizer,
"matar" uma janela, ^a k
. muito útil caso você tenha rodado algum
programa que travou na tela. ao invés de ir numa outra console, ter que
descobrir o PID
dele e dar um kill -9
, simplesmente mate a janela e
tudo o que estiver rodando (ou zumbi) nela será morto também.
ao sair da última janela, o screen
também se encerrará e você volta ao
shell
normal. ou melhor ainda, o screen
conta com o recurso de
guardar uma seção, então você pode começar a baixar aquele arquivo
gigantesco da internet no trabalho, guardar a seção do screen
("Detach") ^a d
, sair com seu usuário do sistema normalmente
("logout"), e dia seguinte, como todos os dias, você acessa o sistema
("login") e Restaura a seção screen
do dia anterior:
$ screen -r
mágica! os processos continuaram rodando durante a noite mesmo você não
estando na máquina. essa funcionalidade de guardar e restaurar a seção é
com certeza uma das melhores do screen
, e útil em várias situações
onde você não pode estar o tempo todo acessando a máquina. se houver
mais de uma seção guardada, um screen -ls
lhe listará as disponíveis.
e como última dica de hoje, para capturar a tela toda e gravar em um
arquivo, ^a h
. o nome do arquivo gravado aparecerá no rodapé, algo
como "hardcopy.1".
há listas de discussão em português (screen-br@yahoogroups.com) e em inglês (gnu-screen@yahoogroups.com) para usuários iniciantes e gurus.
na próxima coluna a continuação com dicas avançadas de uso, como copiar
e colar texto sem o mouse, fazer monitoração de janelas, rodar programas
automaticamente e ter um ~/.screenrc
incrementado.
-- este texto pode ser copiado livremente na íntegra ou em parte, desde que indicado o endereço do original: http://aurelio.net/doc/coluna