Posts na categoria ‘Linux’

31ago2011

Ordenando conteúdo de arquivo via bash unix

(0) comentários
O comando sort ajuda muito quando precisamos fazer ordenações simples de palavras, números ou datas dentro de arquivos texto, cvs, etc. Existem muitas outras maneiras, mas nenhuma tão rápida como esta. Fica a dica: Listando os arquivos e exibindo o conteúdo do arquivo lista_de_clientes.txt > ls -la -rw-r--r-- 1 amorim staff 58 Aug 31 19:11 [...]
23ago2011

Downgrade Firefox no Mac para rodar Cucumber com Selenium Webdriver

(0) comentários
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 [...]
11mai2011

I talk too much…

(0) comentários
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 [...]


24abr2011

Tabela de atalhos no bash

(0) comentários

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 (Option Key) 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


18abr2011

GlusterFS – Um sistema de arquivos para alta disponibilidade

(0) comentários
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 [...]
22jan2011

Deletei o bash ! e agora?

(0) comentários

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.

27nov2010

Intel Specification Update

(0) comentários
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 [...]


22nov2010

NFS, TCP, retrans and timeo

(0) comentários
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 [...]


22set2010

Script para monitorar envio e recebimento da placa de rede

(0) comentários

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

21set2010

Simulado LPI online (gratuito)

(0) comentários

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


Switch to our mobile site