Create your blog and photo album with postbit
Create your blog and photo album

Create new post

Content:

Upload a picture:
Tags (keywords separated by comma)

Save Cancel
Rodrigo Siqueira rsiqueira:   Followers: 25 ; Following: 31

Explore Rodrigo Siqueira's photo albums:
Verona - Italy (41)
Seine River - Paris (31)
Férias no Chile - Santiago (78)
Pomar (10)
Toledo - Espanha (47)
Pixel Art (13)

Usando screen no cygwin


Eu uso o "GNU screen" no Cygwin para poder gerenciar várias janelas de bash dentro de uma janela só. Uso teclas de atalho para alternar entre uma janela e outra. Por exemplo estes são os atalhos mais usados no screen:
"Ctrl-A P"  (previous) mostra o conteúdo da janela anterior
"Ctrl-A N" (next) vai para a próxima janela
"Ctrl-A C" cria uma nova janela dentro do screen.

Instruções (passo-a-passo) para usar o screen com cygwin:

1) Instalar o pacote "screen" à partir do setup do Cygwin.

2) Para o screen entrar como default ao entrar no cygwin, passei a usar um arquivo de inicialização que criei, chamado "cygwin2.bat", para substituir o "cygwin.bat" original. Assim eu clico no cygwin2.bat e entro direto no mintty e no screen. A vantagem de usar o mintty (ao invés do default CMD.exe) é que posso usar o mouse para redimensionar a janela onde roda o cygwin e possui melhores recursos de scroll, copy e paste com o mouse, fonte mais legível, etc.

Conteúdo do meu cygwin2.bat:

@echo off
C:
chdir C:\cygwin\bin
start mintty -e /usr/bin/screen
 
Ou seja, apenas mudei a última linha do cygwin.bat que originalmente tinha o comando:
bash --login -i


3) Criei um arquivo de inicialização do screen chamado ".screenrc" no meu diretório raiz do cygwin, com o conteúdo:

shell -/bin/bash
nethack on
echo "welcome :-)"
defscrollback 12000
# Cria algumas janelas:
screen -t '' 0 /bin/bash --login -i
screen -t '' 1 /bin/bash --login -i
screen -t '' 2 /bin/bash --login -i
screen -t '' 3 /bin/bash --login -i
screen -t '' 4 /bin/bash --login -i
screen -t '' 5 /bin/bash --login -i

 

Um problema que tive (e consegui corrigir) foi que a última linha da tela (last line/bottom line) ficou com problema de terminal, bagunçando as letras e dificultando editar um texto, mudando as outras linhas de posição, pulando letras, editando fora de lugar, deixando a última linha em branco e mantendo o cursor fora de lugar. Para resolver esse problema da última linha, criei um arquivo de configuração do Mintty (arquivo ".minttyrc") com o seguinte conteúdo no meu diretório raiz:

Columns=120
Rows=54
CopyOnSelect=yes
Transparency=low
CursorColour=252,236,188
ScrollbackLines=25000
Font=DejaVu Sans Mono
FontHeight=8
CursorType=block
CursorBlinks=no
BoldAsFont=no
FontIsBold=no
Term=xterm-256color
 
4) Criei um atalho para executar o screen a partir do Windows:
Aperte o botão da direita do mouse no padrão de fundo do Windows -> Novo -> Atalho:
Target: C:\cygwin\bin\mintty.exe -e /usr/bin/screen -d -RR (e criar shortcut com a tecla: "CTRL-ALT-X" para este atalho).
Assim a cada vez que pressionar control-alt-x, vai entrar o screen, recuperando a sessão anterior (se tiver) ou criando uma sessão nova.
No meu computador, o atalho criado ficou na pasta:
C:\Users\(meu usuário)\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu

Ao instalar a versão 64 bits do Cygwin (http://www.cygwin.com/setup-x86_64.exe), ocorreu um erro ao tentar executar o "screen". O GNU screen só funcionou a primeira vez e não entrou quando tentei executar pela segunda vez. Apareceu erro:

Directory /tmp/uscreens-S-my_username must have mode 700.

Para resolver esse problema, precisei rodar o Cygwin.bat como administrador e executar os comandos no bash:
(obs: trocar "my_username pelo seu nome de usuário no cygwin)

Comando 1:
chgrp Usuários /tmp/uscreens/S-my_username 

Se você estiver usando Windows em inglês, o comando é:
chgrp users /tmp/uscreens/S-my_username 

Comando 2:
chmod 700 /tmp/uscreens/S-my_username

Agora com isso consigo usar o screen como usuário comum (sem precisar rodar como administrador do Windows). Essa solução do problema funcionou no Windows 7 e Windows 8.

Se não funcionar, pode tentar remover o diretório /tmp/uscreens e tentar rodar o screen novamente como usuário normal.
Outro erro que pode ocorrer é esse: Directory /tmp/uscreens must have mode 777 (resolvi ao remover este diretório).

 

OUTRA SOLUÇÃO PARA ESTE PROBLEMA DO SCREEN (sem precisar mudar o grupo do usuário, quando usar cygwin64 e Windows 7 ou Windows 8 ou Windows 10):

Fazendo o GNU screen funcionar no cygwin64 e Windows 10:

Para não dar erro ao executar o cygwin screen.exe (GNU screen):
Directory '/tmp/uscreens' must have mode 777.
Directory /tmp/uscreens/S-rodrigo must have mode 700.
 
Após rodar o screen pela primeira vez, rode o seguinte comando:
chgrp -R Users /tmp/uscreens/
chmod 777 /tmp/uscreens/
chmod 700 /tmp/uscreens/S-rodrigo
(OBS: tambem pode ser grupo "None" ao invés do grupo "Users")
 
Isso resolve o problema de permissão do diretório para o chmod funcionar corretamente com grupo (group) no cygwin64.
 

Post by Rodrigo Siqueira (2014-05-11 15:08)

Post your comment:

Name: Email: Site:




| Explore users | New posts | Create your blog | Create your photo album |
| About Postbit | Our blog | Terms of use | Contact Postbit |


Copyright © 2017 - postbit.com