Posts na categoria ‘Linux’
Downgrade Firefox no Mac para rodar Cucumber com Selenium Webdriver
Se você atualizou o Firefox para as versões 4, 5 ou 6 provavelmente está tendo problemas para rodar testes de Cucumber com o Selenium Webdriver, obtendo o erro abaixo: unable to obtain stable firefox connection in 60 seconds ( ) (Selenium::WebDriver::Error::WebDriverError) Para corrigir “paliativamente” e continuar a rodar meus testes fiz o downgrade do Firefox [...]I talk too much…
Ok, that was funny… well, not really, because i did loose a lot of time on it. I have no experience with ASM (Automatic Storage Management) by Oracle, and while a system administrator, i did manage the oracle volumes as filesystems. The raw devices on that time had the “performance” thing, but was a nightmare [...]Tabela de atalhos no bash
Quase toda a vez que eu tenho que executar vários comandos bash, acabo usando em demasia as teclas de seta para percorrer o que foi digitado ou colado no terminal.
A navegação e edição na linha de comando dessa maneira fica na verdade um saco. Os atalhos de navegação no bash facilitam muito o trabalho nesse caso.
Estou publicando uma tabela de atalhos básicos para eu mesmo usar como referência. Espero que também seja útil para você que ainda não domina todos os atalhos do bash e sofre na hora de mover o cursor no terminal.
Tabela de atalhos básicos no bash |
||
| Navegação | Ctrl + A | Move o cursor para o começo da linha. |
| Ctrl + E |
Move o cursor para o final da linha. | |
| Ctrl + B |
Move o cursor um caracter para trás. | |
| Alt + B | Move o cursor uma palavra para trás. | |
| Ctrl + F | Move o cursor um caracter para frente. | |
| Alt + F | Move o cursor uma palavra para frente. | |
| Ctrl + X + X | Move o cursor para o começo ou final da linha. | |
| Ctrl + ] x | Onde x é qualquer caracter, move o cursor para frente até a próxima ocorrência de x. | |
| Alt + Ctrl + ] x | Onde x é qualquer caracter, move o cursor para trás até a próxima ocorrência de x. | |
| Edição | Ctrl + U | Apaga a partir do cursor até o começo da linha. |
| Ctrl + K | Apaga a partir do cursor até o final da linha. | |
| Ctrl + W | Apaga a primeira palavra que está antes do cursor. | |
| Alt + D | Apaga a primeira palavra que está depois do cursor. | |
| Ctrl + Y | Cola o último texto apagado. | |
| Alt + Y | Navega pelos últimos textos apagados (use depois de Ctrl + Y). | |
| Alt + U | Coloca em letras maiúsculas a palavra atual a partir do cursor. | |
| Alt + L | Coloca em letras minúsculas a palavra atual a partir do cursor. | |
| Alt + C | Coloca em letras minúsculas a palavra atual a partir do cursor, deixando a primeira letra em maiúscula (capitalize). | |
| Ctrl + T | Troca de posição as duas últimas letras antes ou entre o cursor. | |
| Alt + T | Troca de posição as duas últimas palavras antes ou entre o cursor. | |
| Completar | Tab Alt + / |
Auto completa uma palavra. |
| Tab + Tab Alt + ? |
Exibe as possibilidades de auto completar de uma palavra. | |
| Alt + * | Insere as possibilidades de auto completar de uma palavra. | |
| Desfazer | Ctrl + X Ctrl + U Ctrl + _ |
Desfaz a última modificação. |
| Alt + R | Desfaz todas as modificações na linha. | |
| Ctrl + L | Limpa a tela deixando a linha atual no topo da tela. | |
| Ctrl + C | Ignora a linha atual e abre uma nova linha vazia. | |
| Histórico | Ctrl + R | Busca reversa incremental no histórico de comandos executados. |
| Alt + P | Busca reversa não incremental no histórico de comandos executados. | |
| Ctrl + P | Navega no histórico para trás (o mesmo que seta para cima). | |
| Ctrl + N | Navega no histórico para frente (o mesmo que seta para baixo). | |
| Alt + . | Recupera a última palavra do comando anterior. | |
| Execução | !! | Executa o último comando. |
| !abc | Executa o último comando que comece com abc. | |
| !abc:p | Imprime o último comando que comece com abc. | |
| !n | Executa o número de comandos n que estão no histórico. | |
| !$ | Último argumento do último comando. | |
| !^ | Primeiro argumento do último comando. | |
| ^abc^xyz | Substitui a primeira ocorrência de abc por xyz no último comando e o executa. | |
Referência: http://www.ice2o.com/bash.ph
Algumas dicas
No Mac OS X, para utilizar os comandos com Alt através da tecla Option é necessário habilitar isso antes.
- Terminal: abra a janela Preferences, vá em Settings, clique em Keyboard e marque a opção “Use option as meta key”.
- iTerm2: abra a janela Preferences, vá em Profiles, clique em Keys e escolha a opção “+Esc” em “Left option (
) key acts as”.
Atualização em 29/04/2011: conforme dica de Lucas Catón.
No Ubuntu, se o menu na barra superior do terminal estíver visível, em todo atalho que comece com Alt deve ser utilizado Shift + Alt, pois o Alt irá acionar os atalhos do menu. Por exemplo, para mover o cursor uma palavra para trás, use Shift + Alt + B ao invés de Alt + B.
Para exibir a documentação completa de atalhos do bash, utilize o comando a seguir no terminal:
man 1 bash
/^READLINE
GlusterFS – Um sistema de arquivos para alta disponibilidade
Depois de um longo tempo sem publicar nada no blog, estou de volta com um assunto interessante: GlusterFS. Neste artigo irei mostrar como instalar e configurar o GlusterFS para criar um sistema de armazenamento de alta disponibilidade utilizando 2 servidores. Ambos os servidores serão client e server e cada servidor será espelho do outro onde [...]Deletei o bash ! e agora?
Depois que escrevi o post relacionado aos arquivos presos por um processo o Cassiano passou uma dica muito boa que vale um blog post!
Cenário
Voce esta logado em um servidor remotamente via SSH, e por algum motivo bizarro , ou sem motivo ou por pura falta de atenção voce acaba removendo o Bash do servidor, voce abre um novo terminal ou uma outra pessoa tenta logar neste mesmo servidor e ocorre essa mensagem de erro:
dezoris:~ ferraz$ ssh 192.168.1.110 Last login: Sat Jan 22 01:53:45 2011 from 192.168.1.4 /bin/bash: No such file or directory Shared connection to 192.168.1.110 closed.
Quando ocorrer esse problema se voce ainda estiver conectado à maquina não precisa entrar em desespero e também não precisa reinstalar o pacote do Bash novamente, vamos utilizar o recurso da partição /proc montada neste server , inicialmente precisariamos saber qual é o pid do processo Bash que estamos utilizando , podemos pegar essa informação executando um echo $$ so que desta vez não tem a necessidade de se verificar o PID do processo bash para localizar as informações necessarias em /proc, basta acessar o diretorio /proc/self, self é um link simbolico que aponta para o processo em execução no momento, no caso é a shell que mantemos aberta.
Lembrando que dentro do diretorio /proc/self vamos encontrar diversas informações sobre a shell em execução armazenada em arquivos, symlinks ou diretorios. A parte que nos interessa é o symlink chamado exe no qual aponta para o PATH do processo do qual aquelas informações do diretorio proc fazem parte:
root@delorean:/proc/self# ls -lah exe lrwxrwxrwx 1 root root 0 2011-01-22 01:54 exe -> /bin/bash (deleted)
Conforme mostrado no ultimo post, a informação extra (deleted) informa que a shell que mantemos ainda aberta em execução esta segurando o conteudo do executavel bash em memória , com isso podemos fazer o seguinte:
root@delorean:/proc/self# cp exe /bin/bash root@delorean:/proc/self# file /bin/bash /bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
Se tentarmos logar no server de outro terminal conseguiremos acesso!
dezoris:~ ferraz$ ssh 192.168.1.110 Last login: Sat Jan 22 01:58:16 2011 from 192.168.1.4 ferraz@delorean:~$
O que aconteceu?
Como mantinhamos a Shell ainda em execução o symlink continuava à apontar para o executavel mesmo depois de deletado com isso temos a possibilidade de fazer uma copia do conteudo que o symlink apontava novamente para o PATH original. Lembrando que o foi feito foi apenas a recuperação do conteudo do executável, não foi recuperado por si o arquivo original, se listarmos o symlink exe depois da copia veremos a informação de arquivo deletado ainda lá:
ferraz@delorean:/proc/self$ ls -lah exe lrwxrwxrwx 1 ferraz ferraz 0 2011-01-22 02:22 exe -> /bin/bash (deleted)
Isso acontece porque o symlink ainda aponta para o inode do antigo Bash que foi removido, quando voce fez uma copia do conteudo que exe aponta foi criado um novo inode que aponta para esse novo executavel:
root@delorean:/proc/1090# ls -li /bin/bash 130861 -rwxr-xr-x 1 root root 934336 2011-01-22 02:17 /bin/bash root@delorean:/proc/1090# rm /bin/bash root@delorean:/proc/1090# ls -lah exe lrwxrwxrwx 1 ferraz ferraz 0 2011-01-22 02:22 exe -> /bin/bash (deleted) root@delorean:/proc/1090# cp exe /bin/bash root@delorean:/proc/1090# file /bin/bash /bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped root@delorean:/proc/1090# ls -li /bin/bash 130862 -rwxr-xr-x 1 root root 934336 2011-01-22 02:26 /bin/bash
Lembrando que essa dica apenas funciona se voce mantem uma Shell aberta no servidor no momento da remoção, se o bash foi removido e voce deslogou do servidor ou se executou um script remotamente via SSH voce nao tem mais a informação do processo via /proc disponivel para o restore.
Intel Specification Update
In October 1, 2010, Intel released a document that describes design defects, known errors, and all the stuff that can make a sysadmin’s life a pain. It was an specification update for the Intel 82546GB Gigabit Ethernet Controller (e1000 driver for most *nix implementations). This ethernet controller is a pretty common chipset, dual ports cards [...]NFS, TCP, retrans and timeo
I think there is a misunderstanding regarding the protocols and NFS options while using it over TCP. As the NFS is an old protocol, and used to UDP, when the implementations did change the default transport to TCP, the features from one were mixed to the other in some interpretations. Well, first things first… NFS [...]Script para monitorar envio e recebimento da placa de rede
Pessoal,
Segue um script, básico para monitorar rapidamente os dados recebidos e enviados da sua placa de rede.Apesar de inicialmente você não utilizar tanto no dia-a-dia. A possibilidade de você utilizá-lo em alguma tarefa que deseja automatizar, é grande.
Salve o script abaixo em extensão *.sh e execute:
recebidos=$(ifconfig | grep 'RX\ bytes' | head -n1 | awk '{print $3$4}');
enviados=$(ifconfig | grep 'RX\ bytes' | head -n1 | awk '{print $7$8}');
echo "Recebidos: $recebidos Enviados: $enviados"
Abaixo, segue o resultado, após executado:[root@localhost ~]# sh networking.sh Recebidos: (5.3MiB) Enviados: (1.4MiB)Para quem deseja obter o resultado em tempo real, pode optar pelo comando "watch", como no exemplo abaixo:
[root@localhost ~]# watch -n 1 -d ./networking.sh
Simulado LPI online (gratuito)
Realizei o simulado, e apesar de está enferrujado a quase 5 meses sem interagir intensamente com Linux, obtive 40% de aproveitamento no simulado 101.
Sugiro que quem esteja interessado em realizar a prova da LPI , faça diversos simulados, e um deles é o simulado abaixo, que após você concluir, obtém a porcentagem de aproveitamento, junto com erros e acertos:
http://www.certificacaolinux.com.br/simulado.htm
