Como eu uso o comando * nix oscreen
dia todo e não consegui encontrar ninguém iniciando esta pergunta, achei que deveria ser iniciado. Você conhece o drill: wiki da comunidade, uma resposta por recursos para que todos possamos votar.
Como eu uso o comando * nix oscreen
dia todo e não consegui encontrar ninguém iniciando esta pergunta, achei que deveria ser iniciado. Você conhece o drill: wiki da comunidade, uma resposta por recursos para que todos possamos votar.
Respostas:
Eu adoro usá-lo para conectar a consoles seriais, ou seja,
screen /dev/ttyS0 19200
Este comando simplesmente abre uma conexão à porta serial 0 (ttyS0) com uma velocidade de transmissão de 19200
A melhor característica do screen
Byobu (anteriormente screen-profiles) é fornecida com o Ubuntu por padrão desde o Jaunty: https://launchpad.net/byobu
É um gerenciador de configuração com padrões muito bons, toneladas de notificações de status e atalhos de teclado úteis (por exemplo, f2 para nova tela, f3-f4 para prev / next etc.)
Eu realmente não vou a lugar nenhum sem ele :)
Da resposta do KTamas: Mais de uma pessoa pode usar a mesma tela, ou seja, se um amigo seu estiver ssh
no seu computador, ele poderá se conectar à sua tela. É ótimo quando duas ou três pessoas estão trabalhando nos mesmos projetos.
Não é exatamente um "recurso oculto"; mas um arquivo .screenrc configurado corretamente pode fazer muita diferença. Um dos melhores exemplos lá fora, pode ser encontrado no google screenrc e 'brad sims' - ele tem um excelente arquivo para mexer.
Dito isto, minha configuração favorita seria bindkey:
# bind F7 to detach screen session from this terminal
# bind F8 to kill current screen window.
# bind F9 to create a new screen
# bind F10 to rename current screen window
# bind F11 to move to previous window
# bind F12 to move to next window
bindkey -k k7 detach
bindkey -k k8 kill
bindkey -k k9 screen
bindkey -k k; title
bindkey -k F1 prev
bindkey -k F2 next
Não me lembro de quem roubei isso (alguém no dotfile.org). Eu o modifiquei um pouco para ssh:
#!/bin/sh
# scr - Runs a command in a fresh screen
#
# Get the current directory and the name of command
wd=`pwd`
cmd=$1
shift
# We can tell if we are running inside screen by looking
# for the STY environment variable. If it is not set we
# only need to run the command, but if it is set then
# we need to use screen.
if [ -z "$STY" ]; then
$cmd $*
else
# Screen needs to change directory so that
# relative file names are resolved correctly.
screen -X chdir $wd
# Ask screen to run the command
if [ $cmd == "ssh" ]; then
screen -X screen -t ""${1##*@}"" $cmd $*
else
screen -X screen -t "$cmd $*" $cmd $*
fi
fi
Em seguida, defino os seguintes aliases de bash:
vim() {
scr vim $*
}
man() {
scr man $*
}
info() {
scr info $*
}
watch() {
scr watch $*
}
ssh() {
scr ssh $*
}
Ele abre uma nova tela para os aliases acima e, se usando ssh, renomeia o título da tela com o nome do host ssh.
Cheers z0mbix
Uma coisa que acho útil é que a tela possa emular uma largura maior que o seu terminal. Acho isso útil se estou usando less
arquivos de log reais e não quero que as linhas sejam quebradas. Usando:
Ctrl-A:width -w 999
Eu posso definir screen
que seja mais largo que o meu terminal, e as linhas de log less
não serão quebradas.
-s
dirá para não quebrar linhas. Você pode usar Left
e Right
para rolar as linhas.
Um recurso interessante: você pode usar backtick
para extrair informações extras para exibição em uma legenda. Por exemplo, eu tenho um script que gera um resumo de uma linha de novas contagens de email em várias pastas e aparece na linha inferior se minha sessão de tela junto com o nome do host com uma configuração parecida com esta:
backtick 1 15 15 /home/waltermundt/bin/newmail
caption always
caption string "%{.kW}%1` example.com %{.bW}%-w%{.rW}%n %t%{-}%+w %{.gW}%h%{-}"
A chave é o% 1` bit, que se refere à saída do trabalho de backtick 1.
(Eu uso hardstatus
como a sequência do título xterm e a defini de maneira diferente, portanto, use em caption
vez de hardstatus alwayslastline
.)
Não é um recurso "oculto", mas a capacidade de compartilhar uma sessão de tela com outro usuário ativo é muito útil.
Existem maneiras complicadas de configurar o compartilhamento de tela, incluindo permissões de controle de acesso e gerenciamento de nome de usuário. O que costumo fazer com colegas de trabalho é muito mais rápido e sujo:
chmod 777 $(tty)
sudo su <username>
screen -x <session>
Isso não requer nenhuma configuração avançada ou compartilhamento de senha.
Uma pequena folha de dicas que imprimi para mim;
(Nota: Tudo é precedido por Ctrl-A)
A: renomeie uma janela ": mostra uma lista de janelas d: sessão de desprendimento
E screen -D -R
para desanexar e reconectar uma sessão em execução (caso você perca o acesso à sua sessão).
Nenhum desses recursos é realmente oculto, mas esses são os que eu acho mais úteis.
É um recurso essencial, mas é claro que o melhor é Ctrl-A:conversar diretamente com a tela. : screen -t title ssh hostname
etc.