sexta-feira, 27 de setembro de 2013

Evolution, uma alternativa ao Outlook

Uma das dificuldades das pessoas que estão migrando do Windows para o Linux é encontrar programas semelhantes aos que usava no sistema anterior. O Outlook, muito usado em empresas, é um deles. Pois temos o Evolution, que é muito parecido e também pode ser integrado ao Exchange e ao Google (Calendário, Gmail, Lista de contatos, etc).


A Evolution tem cliente de e-mail, agenda, organizador de tarefas,  calendário, lista de contatos, memorandos e tudo o que o Outlook tem.  


Tem suporte a Imap, Imaps, Exchange, Usenet, Pop3, Pop3s, Smtp, Smtps, Entrega local (maildir) e muitos outros que podem ser instalado separadamente.



Vejam como é fácil enviar um e-mail usando uma conta do Gmail. Se você estiver usando o Gnome3, basta criar uma conta on-line usando o teu usuário do Google para que todas as configurações são feitas automaticamente.


quinta-feira, 26 de setembro de 2013

segunda-feira, 23 de setembro de 2013

Trabalhando com variáveis de ambiente.

A linha de comando do Linux tem uma característica muito útil que é o uso de variáveis e, ao contrário da maioria das linguagens de programação, não é necessário dizer que tipo de dado a variável contém. Por exemplo, vamos definir uma variável chamado IDADE.

$ IDADE=37

Para mostrar o valor da variável IDADE, eu digito:

$ echo $IDADE
37

Vamos agora multiplicar IDADE por 2:


$ echo $(($IDADE * 2))
74

Para concatenar um texto à variável IDADE não é necessário fazer nenhum conversão.

$ texto=`echo $IDADE "Teste"`
$ echo $texto
37 Teste

As variáveis comuns não são exportas para os sub-shell. Veja isso na sequência de comandos abaixo:

$ echo $texto
37 Teste
$ bash
$ echo $texto

$ exit
exit
$ echo $texto
37 Teste

Veja que a variável $texto só existe no bash corrente. Quando entro em um novo bash, ela não existe. Para que uma variável seja visível para os sub-shell é necessário torná-la uma variável de ambiente.

$ export texto

Agora vamos analisar a mesma sequência de comandos:

$ echo $texto
37 Teste
$ export texto
$ bash
$ echo $texto
37 Teste
$ exit
exit
$ echo $texto
37 Teste

O shell já configurar várias variáveis de ambiente que personalizam seu sistema. Para listá-las, digite:

$ env

Aqui eu apresento as principais:

  • SHELL=/bin/bash - Mostra o shell atual
  • TERM=xterm - O tipo de terminal atualmente em uso
  • USER=ricardo - O usuário corrente
  • DESKTOP_SESSION=gnome - O desktop atualmente em uso
  • PATH=/usr/games:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/brlcad/bin:/sbin:/usr/sbin:/sbin:/usr/sbin - As pastas onde o sistema vai procurar por executáveis quando estes forem digitados na linha de comando.
  • PWD=/home/ricardo/Downloads - A pasta atual
  • LANG=pt_BR.utf8 - A linguagem atual do sistema
  • HOME=/home/ricardo - O diretório de trabalho do usuário atual
  • OLDPWD=/home/ricardo - O diretório anterior (antes de um comando "cd" ter sido executado.

As variáveis de ambiente podem ser configuradas de uma forma geral através do arquivos /etc/profile, e pode ser personalizada através do arquivo ~/.profile de cada usuários.

sexta-feira, 20 de setembro de 2013

O drive de cd não abre. O que fazer?

Algumas vezes o drive de cd emperra e não abre, mesmo você apertando o botão open. Você clica com o botão direito e manda ejetar, mas mesmo assim ele não abre. O que fazer?

Antes de tentar usar um clip (daqueles de prender papel), tente usar o comando eject como root.

# eject

Segundo a própria documentação do eject, dependendo do tipo de midia há 4 maneiras de ejetá-la. O eject tenta todos os tipos possíveis, e serve não só para dvd, mas para fitas de backup, zip e jaz drive, hd externo, e muitos outros. 

Agora, se nem assim funcionar, só com clip, mesmo. Mas é bom desligar o equipamento antes.

quarta-feira, 18 de setembro de 2013

Script bash com cores

Quem escreve script bash pode trabalhar com cores. É simples:

$ echo -e '\e[34;43;1m teste \e[m'


Aqui, a cor do texto é azul (34) e o fundo amarelo (43) e negrito (1). Abaixo mostro um script simples que mostra todas as combinações possíveis.

#!/bin/bash
for atributo in 1 4 7
do
    for texto in `seq 30 37`
    do
        echo -n '|'
        for fundo in `seq 40 47`
        do
            echo -n -e '\e['$texto';'$fundo';'$atributo'm '$texto $fundo $atributo' \e[m'
            echo -n ' | '
        done
        echo   
    done
done

Ao executar esse script, a tela abaixo é mostrada. Cada célula contém os valores para a cor do texto, a cor do fundo, e o atributo.


Assim fica mais fácil escrever scripts elegantes.

sexta-feira, 13 de setembro de 2013

Como saber o tamanho de uma pasta

Uma forma de saber o tamanho de uma pasta é usando o du. Por padrão, du mostra o tamanho de cada arquivo e pasta dentro da pasta pesquisada, sumarizando. Por exemplo, para mostrar o tamanho das pastas e arquivos da pasta atual, de uma forma amigável, eu uso:

$ du -h
64K    ./Contas/Telefone
84K    ./Contas/Celular
100K    ./Contas/Outras
188K    ./Contas/Freitas
12K    ./Contas/Cursos
72K    ./Contas/Luz
236K    ./Contas/Transferencia
508K    ./Contas/Seguro
148K    ./Contas/Carro
56K    ./Contas/Casa
240K    ./Contas/Cartao
28K    ./Contas/Livros
8,0K    ./Contas/Net
12K    ./Contas/Escolinha
1,8M    ./Contas
6,2M    ./Apostilas/Rede
42M    ./Apostilas/Linux
2,9M    ./Apostilas/ShellScript
896K    ./Apostilas/Hardware
828K    ./Apostilas/Html
308K    ./Apostilas/Pesquisas
3,1M    ./Apostilas/Contos
173M    ./Apostilas/Linux Magazine
1,4M    ./Apostilas/Historia_da_informatica
64M    ./Apostilas/Ipv6
388K    ./Apostilas/Musica/Flauta Doce_files/capa_data
12K    ./Apostilas/Musica/Flauta Doce_files/index2_data
440K    ./Apostilas/Musica/Flauta Doce_files
8,0K    ./Apostilas/Musica/tecnicas_files/h_data
224K    ./Apostilas/Musica/tecnicas_files
52K    ./Apostilas/Musica/digitacao_files
2,5M    ./Apostilas/Musica
328K    ./Apostilas/Cubo-magico/rubik_sol_arquivos
768K    ./Apostilas/Cubo-magico
54M    ./Apostilas/Outras revistas
12M    ./Apostilas/Efemerides
1,6M    ./Apostilas/Normas
764K    ./Apostilas/Oracle
1,9M    ./Apostilas/Unimes/Gestao_financeira
22M    ./Apostilas/Unimes/Gestao
102M    ./Apostilas/Unimes/Economia
3,7M    ./Apostilas/Unimes/Infraestrutura_em_ti
980K    ./Apostilas/Unimes/Hardware
4,8M    ./Apostilas/Unimes/Gestao_Software_Livre
2,3M    ./Apostilas/Unimes/Gestao_de_negocios_da_informacao
336K    ./Apostilas/Unimes/Governanca_em_projetos
137M    ./Apostilas/Unimes
500M    ./Apostilas
4,2M    ./Outros
432K    ./Documentos/PFCodAcesso.aspx_arquivos
5,2M    ./Documentos
1,1M    ./Documentacao/Web
3,0M    ./Documentacao/Outros
180K    ./Documentacao/Vulnerabilidades
216K    ./Documentacao/Politica
20K    ./Documentacao/Feitos
512K    ./Documentacao/Backups
28K    ./Documentacao/Pendencias
20K    ./Documentacao/PJ x Clt
1,2M    ./Documentacao/Gateway
1,9M    ./Documentacao/Dr
20K    ./Documentacao/Sistemas de arquivos
8,0M    ./Documentacao
24K    ./Programacao/remoto
424K    ./Programacao
519M    .

Se você reparar bem, verá o tamanho total da pasta atual (última linha) bem como o tamanho de cada subpasta de primeiro nível, as de segundo nível, e assim por diante. Você quiser saber o tamanho somente das pastas, sem duas subpastas, digite:

$ du -sh *
500M    Apostilas
1,8M    Contas
8,0M    Documentacao
5,2M    Documentos
4,2M    Outros
424K    Programacao

Para saber somente o tamanho da pasta atual, digite:

$ du -sh .
519M    .


quarta-feira, 11 de setembro de 2013

Dropbox para Linux

Para quem ainda não conhece, o Dropbox é um serviço de armazenamento na nuvem que oferece 2Gb de espaço gratuito, e esse espaço ainda pode aumentar até 16Gb. Os arquivos podem ser acessados pela web. Aqui vou explicar como instalar o cliente do Dropbox no Linux e selecionar pastas para serem sincronizadas automaticamente com a nuvem.


A primeira coisa a fazer é se cadastrar no site www.dropbox.com. Em seguida, baixe o pacote no endereço abaixo de acordo com a tua distribuição.


No meu caso eu baixei o arquivo dropbox_1.6.0_i386.deb. Em seguida execute, como root, o comando:

# dpkg -i dropbox_1.6.0_i386.deb

Se a instalação ocorrer sem problemas, abra o Dropbox. No Gnome, ele fica em "Aplicativos/Internet".


A tela abaixo deverá aparecer.


Escolha "Já tenho uma conta no Dropbox" e clique em "Seguinte".


Digite os teus dados e clique em "Seguinte". 


Escolha a opção que desejar e clique em "Seguinte".


Escolha "Avançado" e clique em "Seguinte"


Escolha a opção padrão e clique em "Seguinte".

Escolha a segunda opção e clique em "Sincronização seletiva".


Como essa é a segunda máquina que faço, posso escolher qual pasta sincronizar. Essa relação que ele mostra é a que já está na nuvem. Só para efeito de ilustração, vou selecionar somente a pasta "ProgramasRFB". Clique em "Atualizar" e depois em "Instalar".


Agora o sistema abre um pequeno tutorial. Se você não conhece o Dropbox aconselho acompanhar esse manual para saber os recursos que o Dropbox tem. Por exemplo, nesta tela ele já afirma que qualquer alteração nos arquivos do Dropbox serão replicados para todos os equipamentos que a conta possui. Clique em "Pular Tour".


Clique em "Encerrar".


Já vai aparecer um ícone do Dropbox no canto superior direito (se você usa o Gnome clássico) ou no canto inferior direito (se você usa o Gnome Shell). Clicando nele com o botão direito um menu aparecerá mostrando as informações referentes do serviço.

E agora, o pulo do gato para quem usa Linux. Você não precisa mover seus arquivos para a pasta Dropbox para que eles sejam sincronizados. Basta criar um link. Por exemplo, se você quer colocar a pasta Vídeos no dropbox, primeiro crie um link clicando na pasta com o botão direito e escolhendo a opção "Criar link".


 Agora mova o link criado para a pasta do Dropbox e renomei-a para Vídeos. Veja como ficou na imagem abaixo.


A pasta com todos os seus arquivos já foram sincronizados com a nuvem e com a outra máquina que possuo.

sexta-feira, 6 de setembro de 2013

Instalando um pacote com dpkg

As vezes você precisa instalar um programa que não está disponível nos repositórios da distribuição Linux que você usa. Neste caso, se você usa uma distro derivada do Debian, você vai precisar do dpkg. O dpkg é executado automaticamente pelo apt-get e pelo aptitude, mas quando você faz o download do pacote manualmente, o apt não vai resolver o teu problema. Vamos supor que você baixou o pacote "iceweasel.deb". Para instalá-lo, digite como root:

# dpkg -i iceweasel.deb

Se você precisar reconfigurar o pacote, execute:

# dpkg --configure iceweasel

Se quiser saber informações sobre o "iceweasel", digite:

$ dpkg -s iceweasel 
Package: iceweasel
Status: install ok installed
Priority: optional
Section: web
Installed-Size: 10006
Maintainer: Maintainers of Mozilla-related packages
Architecture: i386
Version: 17.0.8esr-1~deb7u1
Provides: gnome-www-browser, www-browser
Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.16.0), libgtk2.0-0 (>= 2.10), libnspr4 (>= 2:4.9-2~) | libnspr4-0d (>= 1.8.0.10), libstdc++6 (>= 4.1.1), fontconfig, procps, debianutils (>= 1.16), xulrunner-17.0 (>= 17.0.8esr-1~deb7u1), libsqlite3-0 (>= 3.7.12-1~)
Suggests: fonts-stix | otf-stix, mozplugger, libgssapi-krb5-2 | libkrb53
Breaks: xul-ext-torbutton
Conffiles:
 /etc/iceweasel/pref/iceweasel.js f1bcbce2d713f2f639a9a9db7c3ad228
 /etc/iceweasel/profile/prefs.js 93be5f9524282281f3667126622465b3
 /etc/iceweasel/profile/mimeTypes.rdf 904530787fbba18b4c308f61d98b7fa0
 /etc/iceweasel/profile/localstore.rdf 261033f45887bd20dbce72ea8d0fb34e
 /etc/iceweasel/profile/chrome/userContent-example.css c27e3e72e487dc0351e59ba1fe8d86f5
 /etc/iceweasel/profile/chrome/userChrome-example.css fbfca410cac55d488681dc195a16d9e0
 /etc/iceweasel/profile/bookmarks.html f1bdc87110734c387740b3454b8fedb5
 /etc/iceweasel/searchplugins/common/duckduckgo.xml 10875ea748c00bec65f896c0e8b4cb27
 /etc/iceweasel/searchplugins/common/debsearch.xml 626edd789818df62e5980799dcdb2b71
 /etc/iceweasel/searchplugins/locale/en-US/yahoo.xml 0f60b8553cc11238aa83c0676d353cd0
 /etc/iceweasel/searchplugins/locale/en-US/wikipedia.xml 4bf0b9bb9dadd8ef93129a90c047b732
 /etc/iceweasel/searchplugins/locale/en-US/twitter.xml 2349c3ba24652f25519dfde46b36b101
 /etc/iceweasel/searchplugins/locale/en-US/google.xml f44e88cd631f9c92c0cba9d603663ac1
 /etc/iceweasel/searchplugins/locale/en-US/eBay.xml 38b8e877633189e3604b423aca30e605
 /etc/iceweasel/searchplugins/locale/en-US/bing.xml 0df4ccff8b3ffd8a4e7fbc0e8300d739
 /etc/iceweasel/searchplugins/locale/en-US/amazondotcom.xml 7789a0fcebe1a90c7ce4d14633bbba3a
 /etc/iceweasel/iceweaselrc a7f1bcffd6febdb02e86652a60ebfd16 obsolete
Description: Web browser based on Firefox
 Iceweasel is Firefox, rebranded. It is a powerful, extensible web browser
 with support for modern web application technologies.

Para saber a lista de arquivos do pacote iceweasel., digite:

$ dpkg -L iceweasel

A opção "-l" dá um pequeno resumo do pacote.

$ dpkg -l iceweasel
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Nome                                        Versão                    Arquitectura          Descrição
+++-===========================================-==========================-==========================-===========================================================================================
ii  iceweasel                                   17.0.8esr-1~deb7u1         i386                       Web browser based on Firefox

Se quiser saber qual pacote contém o binário iceweasel, digite:

$ dpkg -S bin/iceweasel
iceweasel: /usr/bin/iceweasel

Bem, essas são as principais opções do dpkg. Ele é um programa essencial nas distribuições baseadas em Debian e certamente esse comando estará presente se você usa Debian, Mint, Ubuntu, etc.

quinta-feira, 5 de setembro de 2013

Corrigindo sistemas de arquivos MSDOS

Alguns pendrives e cartões de memória antigos podem ainda estar usando o sistema de arquivos MS-DOS (FAT16). Esse sistema é corrompido facilmente. Mas para recuperá-lo, o Linux tem o fsck.msdos. Para instalá-lo, digite:

# apt-get install dosfstools

Supondo que o cartão esteja instalado em /dev/sdb, digite:

# fsck.msdos -av /dev/sdb1
dosfsck 3.0.13 (30 Jun 2012) dosfsck 3.0.13, 30 Jun 2012, FAT32, LFN
Checking we can access the last sector of the filesystem
Boot sector contents:
System ID "mkdosfs"
Media byte 0xf8 (hard disk)
       512 bytes per logical sector
      8192 bytes per cluster
        16 reserved sectors
First FAT starts at byte 8192 (sector 16)
         2 FATs, 16 bit entries
    131072 bytes per FAT (= 256 sectors)
Root directory starts at byte 270336 (sector 528)
       512 root directory entries
Data area starts at byte 286720 (sector 560)
     62465 data clusters (511713280 bytes)
32 sectors/track, 64 heads
         0 hidden sectors
   1000000 sectors total
Reclaiming unconnected clusters.
/dev/sdb1: 20 files, 480/62465 clusters
#


quarta-feira, 4 de setembro de 2013

Veja vídeos e fotos de forma rápida com Display

Uma forma de ver fotos e videos de uma forma rápida é usando o comando "display" disponível no pacote "graphicsmagick-imagemagick-compat".

Para ver um arquivo digite:

$ display foto.jpeg


É uma forma rápido e simples de ver fotos. Se quiser ver várias fotos é só digitar, por exemplo, o comando:

$ display *.jpeg

Agora basta usar as setas de navegação para navegar pelas fotos.

Para instalar o programa, basta digitar:

# apt-get install graphicsmagick-imagemagick-compat

terça-feira, 3 de setembro de 2013

Dig, utilitário para consulta de nomes

O dig é outro utilitário usado para consultar nomes. Sua sintaxe é simples:

$ dig ricardoolonca.blogspot.com.br
; <<>> DiG 9.7.3 <<>> ricardoolonca.blogspot.com.br
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- 5669="" br="" id:="" noerror="" opcode:="" query="" status:="">;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ricardoolonca.blogspot.com.br.    IN    A

;; ANSWER SECTION:
ricardoolonca.blogspot.com.br. 141 IN    CNAME    blogspot.l.googleusercontent.com.
blogspot.l.googleusercontent.com. 138 IN A    74.125.234.44
blogspot.l.googleusercontent.com. 138 IN A    74.125.234.43
blogspot.l.googleusercontent.com. 138 IN A    74.125.234.42

;; Query time: 41 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Mon Aug 19 05:42:32 2013
;; MSG SIZE  rcvd: 141


Para consulta o servidor mx:

$ dig -q-type=mx google.com
; <<>> DiG 9.7.3 <<>> -q-type=mx google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- 14288="" br="" id:="" nxdomain="" opcode:="" query="" status:="">;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;-type=mx.            IN    A

;; AUTHORITY SECTION:
.            10800    IN    SOA    a.root-servers.net. nstld.verisign-grs.com. 2013081900 1800 900 604800 86400

;; Query time: 41 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Mon Aug 19 05:44:09 2013
;; MSG SIZE  rcvd: 101

;; Got answer:
;; ->>HEADER<<- 29147="" br="" id:="" noerror="" opcode:="" query="" status:="">;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.            IN    A

;; ANSWER SECTION:
google.com.        288    IN    A    190.98.170.168
google.com.        288    IN    A    190.98.170.172
google.com.        288    IN    A    190.98.170.148
google.com.        288    IN    A    190.98.170.157
google.com.        288    IN    A    190.98.170.152
google.com.        288    IN    A    190.98.170.183
google.com.        288    IN    A    190.98.170.163
google.com.        288    IN    A    190.98.170.167
google.com.        288    IN    A    190.98.170.182
google.com.        288    IN    A    190.98.170.158
google.com.        288    IN    A    190.98.170.178
google.com.        288    IN    A    190.98.170.153
google.com.        288    IN    A    190.98.170.162
google.com.        288    IN    A    190.98.170.173
google.com.        288    IN    A    190.98.170.187
google.com.        288    IN    A    190.98.170.177

;; Query time: 43 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Mon Aug 19 05:44:09 2013
;; MSG SIZE  rcvd: 284


Todos esses servidores respondem pelos e-mail.

segunda-feira, 2 de setembro de 2013

Acesso remoto pelo Chrome

É possível fazer acesso remoto através de um plugin do Chrome, o Chrome Remote Desktop. Após instalar o plugin, ao abrir uma nova aba, o ícone aparecerá.

Sua utilização é simples. Primeiro clique no ícone "Chrome Remote Desktop". A tela abaixo aparecerá.



Para compartilhar sua área de trabalho, clique em "Share".


O plugin gera um código aleatório. Esse número deverá ser passado para a pessoa que for acessar sua máquina. Este deverá instalar o plugin e clicar no botão "Access". A tela abaixo aparecerá pedindo o código gerado no passo anterior.


Pronto! O legal é que você pode acessar qualquer máquina que tenha o Chrome instalado, independente do sistema operacional.