sexta-feira, 25 de julho de 2014

Pesquisa de texto com grep

O comando grep é usado para fazer pesquisa de textos em arquivos e em saída de comandos. Sua forma mais simples é a seguinte.

$ grep ricardo /etc/passwd
ricardo:x:1000:1000:Ricardo Lino Olonca,,,:/home/ricardo:/bin/bash
ftp:x:155:65534::/home/ricardo/Copy/Copy/:/bin/false

Aqui estou procurando todas as linhas que contenham o texto "ricardo". Eu posso também usar o grep para filtrar a saída de um comando.

$ ls -l | grep root
-rw-r--r-- 1 ricardo root    2232995840 Jul  8 09:11 Olonca_2014.iso

Nesse caso eu executei o "ls -l" e pedi ao grep para mostrar somente as linhas que continham a string de texto "root". 

Grep é case sensitive, ou seja, ele faz diferenciação entre caracteres maiúsculos e minúsculos. No exemplo anterior, vamos supor que eu precise saber as linhas que contenham o texto olonca; se eu digitar:

$ ls -l | grep olonca

não será mostrada nenhuma linha, pois o correto é "Olonca".

$ ls -l | grep Olonca
-rw-r--r-- 1 ricardo root    2232995840 Jul  8 09:11 Olonca_2014.iso

Para evitar isso, use o parâmetro "-i".

$ ls -l | grep -i olonca
-rw-r--r-- 1 ricardo root    2232995840 Jul  8 09:11 Olonca_2014.iso

Há situações onde você quer o inverso, ou seja, as linhas que NÃO contem a texto procurado. Para isso use o "-v".

$ grep -v bash /etc/passwd
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh

Aqui estou listando todos os usuários que não possuem o shell bash. Se eu quiser contar essas linhas eu posso chamar o "wc -l" ou usar o parâmetro -c.

$ grep -v bash -c /etc/passwd
76

$ grep -v bash /etc/passwd | wc -l
76

Eu posso também querer mostrar apenas as duas primeiras ocorrências da pesquisa (-m 2)

$ grep -vm2 bash /etc/passwd 
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh

Há dois parâmetros que funcionam como âncoras. Um se refere ao começa da linha (^) e o outro ao final ($). Por exemplo, para mostrar todas as linhas que começam com o texto "ricardo" no arquivo /etc/passwd digite:

# grep ^ricardo /etc/passwd
ricardo:x:1000:1000:Ricardo Lino Olonca,,,:/home/ricardo:/bin/bash

Para ver todos os usuários que usam o login "/bin/false" é só pesquisar pelo texto no final da linha.

$ grep false$ /etc/passwd
usbmux:x:101:46:usbmux daemon,,,:/home/usbmux:/bin/false
messagebus:x:102:104::/var/run/dbus:/bin/false
Debian-gdm:x:103:107:Gnome Display Manager:/var/lib/gdm3:/bin/false
haldaemon:x:105:109:Hardware abstraction layer,,,:/var/run/hald:/bin/false

Aqui vai uma dica preciosa: linhas em branco não consideradas linhas que começam e logo em seguida terminam, sem qualquer caracter entre o início e o fim. Portanto, para eliminar as linhas em branco de um arquivo é só executar o comando abaixo:

$ grep -v ^$ /etc/mtools.conf 
# Debian default mtools.conf file.
# "info mtools" or "man mtools.conf" for more detail.
# # Linux floppy drives
drive a: file="/dev/fd0" exclusive
drive b: file="/dev/fd1" exclusive
drive d: file="/dev/cdrom" exclusive
# # First SCSI hard disk partition
# drive c: file="/dev/sda1"
# # First IDE hard disk partition
# drive c: file="/dev/hda1"
# # dosemu hdimage.
drive m: file="/var/lib/dosemu/hdimage.first" partition=1 offset=128
# # dosemu floppy image
drive n: file="/var/lib/dosemu/fdimage"
# # SCSI zip disk
# drive z: file="/dev/sda4"
# # uncomment the following line to display all file names in lower
# # case by default
# mtools_lower_case=1

Para retirar os comentários do arquivo acima é só não mostrar as linhas que começam com "#". 

# grep -v ^$ /etc/mtools.conf | grep -v ^#
drive a: file="/dev/fd0" exclusive
drive b: file="/dev/fd1" exclusive
drive d: file="/dev/cdrom" exclusive
drive m: file="/var/lib/dosemu/hdimage.first" partition=1 offset=128
drive n: file="/var/lib/dosemu/fdimage"

Você pode querer ver não só as linhas pesquisadas como também algumas linhas antes (-B) e depois (-A).

# dmesg  | grep -A 2 -B 2 libata
[    1.544560] input: AT Translated Set 2 keyboard as /devices/platform/serio0/input/input0
[    1.544897] usbcore: Unknown symbol usb_speed_string (err 0)
[    1.547299] libata version 3.00 loaded.
[    1.745056] e1000e 0000:00:19.0: eth0: (PCI Express:2.5GT/s:Width x1) 50:e5:49:fc:de:9b
[    1.745059] e1000e 0000:00:19.0: eth0: Intel(R) PRO/1000 Network Connection

Você também pode usar as expressões regulares na pesquisa, mas isso é assunto para outro post.



quarta-feira, 23 de julho de 2014

Ferramenta gráfica para particionamento de disco

Quem pretende instalar o Linux em dual boot com o Windows provavelmente precisará redimensionar o disco para conseguir espaço para o novo sistema. Esse processo, chamado de particionamento, pode causar perda de dados se feito de forma errada. Por isso, muita gente tem um certo receio de fazê-lo. 

O Gparted é editor de partições (vulgo "particionador") gráfico que facilita e muito o processo de redimensionamento e particionamento do disco.


Ele tem suporte a vários tipos de sistemas de arquivo, como NTFS, FAT, Ext2, Ext3, Ext4, Reiserfs, Xfs, Jfx, Swap, Minix, etc, além do suporte a partições GPT.

Para diminuir o tamanho da partição Windows e liberar espaço para o Linux basta clicar com o botão direito na partição e escolher Redimensionar. Agora arraste a barra, ou digite o valor do tamanho desejado. Geralmente esse processo é bem tranquilo, mas sempre é bom fazer um backup. 

O Gparted está presente na maioria das distribuições Live-cd.

terça-feira, 15 de julho de 2014

Gpaint, o Paint do Linux

O Paint é aquela aplicação que vem junto com o Windows e que as crianças amam. Dá prá fazer algumas pinturas, rabiscos, e até alguns ajustes em fotos. Pois no Linux também tem uma aplicação semelhante: o Gpaint.


O Gpaint já deve estar instalado na tua distribuição Linux, mas caso não esteja você pode procurá-lo no gerenciador de aplicativos. No Debian e derivados use o Synaptic ou, pela linha de comandos, digite:

# apt-get install gpaint 

segunda-feira, 14 de julho de 2014

Olonca Live CD 2014

Está disponível no link https://copy.com/wXGfjHe0ZugX um live cd personalizado por mim. É essa versão que uso nos meus desktops e que contém a maioria dos aplicativos apresentados neste blog. A versão é baseada no Debian.

As principais mudanças em relação à 2013 são:


  • Kernel 3.2
  • Gnome 3.0
  • Instalador gráfico


Abaixo descrevo como instalar a distribuição usando o instalar gráfico que desenvolvi.

Após baixar a iso e queimar a midia, ligue o computador com DVD no drive. A seguinte tela aparecerá.


Aqui vale uma explicação: essa foto foi tirada em janeiro de 2014 no Ceará, a cerca de 3,5 Km da divisa com o Piauí, descendo a serra em direção ao Bom Jardim. É onde mora a avó da minha esposa. https://www.google.com/maps/@-5.5192587,-40.903904,50m/data=!3m1!1e3

No menu apresentado você pode escolher entre o modo Live (primeira opção) modo seguro (que não carrega alguns módulos que podem causar problemas e interface gráfica, ou num caso mais grave travar o sistema) e o teste de memória RAM. Escolhemos a primeira opção e teclamos ENTER.


Essa é a tela inicial o sistema pronto par ao uso. A foto é do Açude do Rodrigão, localizada na cidade de Novo Oriente, Ceará, Brasil.

Para instalar a distribuição, clique no menu Aplicativos, escolha Utilitários e clique em Terminal.


Na tela que aparece, digite "sudo ./instalar.sh


Será solicitada a senha de administrador. Digite "olonca" e tecle ENTER.


A tela seguinte mostra os discos que existem em teu sistema. Por enquanto o instalador não consegue dividir a instalação em vários discos, mas estou trabalhando nisso. Escolha o disco e clique em Ok.


É necessário criar pelo menos uma partição Linux. Também é recomendável criar uma partição swap para a memória virtual. Eu recomendo que a soma da memória virtual com a memória RAM seja de pelo menos 3Gb, mas isso é apenas uma recomendação. Clique em Ok.


Esta é a parte mais crítica da instalação. Nesta tela você pode alterar as partições do disco. É recomendável fazer um backup dos arquivos se você está instalando em dual boot em uma máquina que já possua o Windows, como no meu caso aqui. Na tela abaixo, vemos duas partições que foram criadas na instalação do Windows 7. Precisamos redimensionar a segunda partição. Embora seja raro aparecerem problemas aqui sempre é bom fazer um backup.


Clique na segunda partição com o botão direito e depois clique em Redimensionar/Mover.


Agora escolha o novo tamanho para a partição, ou o espaço que ficará livre após o redimensionamento. No meu caso eu deixei 16Gb de espaço livre. A instalação deverá ter pelo menos 8Gb. Clique em Redimensionar/Mover.


No espaço não alocado, clique com o botão direito e escolha Novo.


Em "Criar como", é aconselhável escolher "Partição estendida" e deixar todo o espaço disponível para ela. Clique em Adicionar.


No espaço não alocado clique com o botão direito e escolha Novo.


Agora vamos criar a partição destinada ao sistema operacional Linux. Você pode deixar todo o espaço disponível, mas aqui eu vou personalizar e separar 12Gb para o drive raiz. Digite 12000 em "Novo tamanho (Mb)" e clique em Adicionar.


No espaço não alocado clique com o botão direito e escolha Novo.


Estou separando 3Gb para o drive home. Numa instalação para Desktop esse drive deverá ser o maior pois conterá todos os teus arquivos pessoais. Digite 3000 em "Novo espaço (Mb)" e clique em Adicionar.


No espaço não alocado clique novamente com o botão direito e escolha Novo.


Vou deixar todo o espaço restante para a partição de troca. Em "Sistema de arquivos" esolha "linux-swap" e clique em Adicionar.


Nosso esquema de particionamento está completo. Clique no ícone verde onde deverá aparecer a mensagem "Aplicar todas as operaçoes" conforme mostrado na tela abaixo.


Uma tela avisará que as informações serão gravadas no disco. Clique em Aplicar.


O processo de criação das partições pode demorar um pouco dependendo do tamanho do teu disco.


Ao final do processo clique em Fechar.


Se você está fazendo uma instalação simples, ou seja, sem o Windows, será necessário marcar a partição raiz para ser bootável. Para fazer isso, clique na partição com o botão direito e escolha "Gerenciar sinalizadores".


Selecione Boot e clique em Fechar.


Agora feche a janela clicando no X conforme a tela abaixo. 


Agora escolha a partição onde deverá ser instalado o sistema raiz. No meu caso a partição sda5. Escolha a partição e clique em Ok.


A mensagem seguinte informa que todos os dados da partição serão apagados. Clique em Sim para continuar.


Agora esolha a partição onde deverá ser criada a memória virtual (swap). No meu caso é sda7. Clique na partição e depois clique em Ok.


Novamente a mensagem informando que os dados da partição serão apagados. Clique em Sim.


A tela seguinte pergunta se você quer colocar o drive Home em uma outra partição. Se você separou uma partição para os dados dos usuário clique em Sim. Caso contrário clique em Não. No meu caso cliquei em Sim.


Para quem clicou em Sim na tela anterior será mostrado uma tela para que a partição separada para o Home seja selecionada. No meu caso é a sda6. Escolha a partição e clique em Ok.


Se você já possui arquivos pessoais nessa partição então clique em Não. No meu caso cliquei em Sim.


Mais um aviso para quem escolheu formatar a partição Home informando que os dados serão apagados. Clique em Sim. 


Agora que as partições foram formatadas começa o processo de cópia dos arquivos. Isso pode levar bastante tempo. Tenha paciência. 


Após a instalação será perguntado o nome do novo usuário. Digite um nome que lhe agrade. No meu caso digitei "ricardo". Clique em Ok.


A senha do novo usuário é "olonca", assim como a senha do usuário root. Clique em Ok.


O processo de instalação terminou. Clique em Ok.


Clique no menu Olonca e depois em Desligar.


Agora clique em Reiniciar.


Antes do sistema reiniciar será pedido para que você retire a midia do drive de DVD. Retire e midia e tecle ENTER.


Ao reinciar, o menu abaixo será exibido. Nele você pode escolher entre os vários kernel do Linux (o padrão é o primeiro), o modo de segurança e o Windows (última opção). Ao entrar no Windows após a instalação um exame de disco será feito pelo Windows devido a mudança de tamanho da partição. Isso é normal. 


Qualquer problema é só me avisarem pelo e-mail ricardo.olonca@gmail.com

sexta-feira, 11 de julho de 2014

Copy, alternativa ao Dropbox

Há vários sites que disponibilizam um drive para você, como o Dropbox e o Google Drive. Mas eu prefiro o Copy por três motivos:


  • Oferece 15Gb de espaço;
  • Tem suporte ao Linux;
  • Suporte a arquivos grandes, como meus arquivos .iso.




Você também pode compartilhar seus arquivos com outras pessoas.



Para instalar o cliente do Copy para Linux basta fazer o download clicando no Menu, como no print abaixo.


Após a instalação, um ícone será criado na bandeja. Clicando nele com o botão direito e em seguida em "Preferences..." você poderá configurá-lo. Por padrão, será criada uma pasta "Copy" na tua pasta padrão. Todos os arquivos que forem copiados para esse pasta serão sincronizados com o site.



O site do programa é https://www.copy.com/browse/copy.






quinta-feira, 10 de julho de 2014

Google Drive para Linux

O Insync é um cliente para o Google Drive que roda em Linux. Com ele você consegue sincronizar os arquivo do micro com o Google Drive.

Você pode fazer o download do Insync no endereço abaixo. Ele é grátis por 15 dias.

https://www.insynchq.com/