Archive for the ‘Manipulação de Dados’ Category
256 cores no shell
Quem leu os posts [Deixando o prompt colorido] e [Usando cores e efeitos no shell] gostou da idéia de colorir os caracteres do shell e o prompt com 16 cores.
Porém, é possível que o seu shell tenha 256 cores, sendo as 16 que já vimos até então (do padrão ANSII) e mais 240 novas.
Para explicar novamente o que expliquei em [Usando cores e efeitos no shell], é mais cômodo você ler o artigo que citei antes, pois o uso das 256 cores é mais complexo (sem saber o básico, você terá dificuldades de compreender), e depois volte a partir daqui para continuar de onde parou :D
Vamos aos exemplos agora.
Para imprimirmos o nome “Alice” apenas em violeta, ou seja, Alice
echo -e "\033[0;38;5;129m Alice \033[0m"
"Alice" com fundo verde-limão e texto em negrito: Alice
echo -e "\033[1;48;5;118m Alice \033[0m"
Para entender melhor:
echo -e "\033[1;48;5;118m Alice \033[0m"
O número 1 é o código do negrito. Se ele for 0, não é negrito. Os demais efeitos estão em [Usando cores e efeitos no shell].
O número 48 é para que a cor seja especificada como plano de fundo. Se for 38 a cor é especificada para o texto.
Não sei qual é a finalidade desse número 5, mas ele deve estar ali. Se for omitido ou colocar outro número no lugar, não vai funcionar.
O número 118 é o código da cor verde-limão. O código do violeta é 129. A tabela completa com todos os códigos de cores está no final desse artigo.
E é possível combinar as cores de textos e de plano de fundo também.
"Alice" com texto em violeta com fundo verde-limão sem efeitos, ou seja, Alice
Vamos printar o código do texto violeta primeiro (\033[0;38;5;129m) e depois o código do plano de fundo verde-limão (\033[0;48;5;118m):
echo -e "\033[0;38;5;129m\033[0;48;5;118m Alice \033[0m"
"Alice" com texto em violeta e negrito com fundo verde-limão, ou seja, Alice
Vamos printar o código do texto violeta primeiro (\033[0;38;5;129m) e depois o código do plano de fundo verde-limão com o código de negrito junto (\033[1;48;5;118m).
echo -e "\033[0;38;5;129m\033[1;48;5;118m Alice \033[0m"
Nada impede também de você querer printar primeiro o código do plano de fundo e depois o código do texto, porque o resultado final será o mesmo, independente da ordem, porém o código do efeito deve ser especificado na última tag, do contrário, não vai sair o efeito negrito (ou qualquer outro), porque você vai acabar ativando o negrito com 1 na primeira tag, mas já o desativa logo em seguida com o 0 na segunda tag.
A seguir está a tabela completa de todas as cores:
Quem usa o terminal do Mac vai se decepcionar, porque este terminal não suporta 256 cores, os demais sim, porém quem usa o Mac pode ter esperanças nos terminais alternativos, como o Zoc, o Terminator ou o iTerm. O terminal nativo do X que é utilizado pelo Mac e pelo Linux suporta todas essas cores.
Para saber quais são os efeitos e quais programas o suportam, veja [Usando cores e efeitos no shell].
Como compilar no Mac (gcc, g++, make etc)
Para deixar o Mac pronto para compilar novas aplicações a partir dos código-fontes, você deverá baixar o Xcode no site da Apple™.
É necessário se cadastrar gratuitamente como um desenvolvedor Apple (Apple Developer) antes de efetuar o download, desça até o rodapé da página que acabou de abrir para se cadastrar como Apple Developer.
Após estar cadastrado, e logado naquele site, baixe a imagem do Xcode. Se não encontrar nada sobre Xcode, clique aqui para ir direto para a página de download dele.
Depois de baixado, não tem segredos, é só abrir a imagem de disco (.dmg) baixada e clicar duas vezes no programa de instalação.
Das opções disponíveis, as que vão realmente interessar são apenas a Xcode Toolset e a Unix Development.
TrueCrypt – Aumente a segurança das suas informações
O TrueCrypt é um utilitário que é capaz de montar volumes criptografados. Estes volumes podem ser partições ou arquivos e o suporte é tanto em modo texto quanto em modo gráfico.
Neste tutorial, mostrarei como utilizá-lo no modo gráfico:
Acesse a página do TrueCrypt e faça o download dele, conforme o sistema que você utiliza.

Talvez você esteja na dúvida para descobrir qual a arquitetura do seu sistema (32 bits ou 64 bits) rode o comando:
uname -a # Algumas distribuições exigirão que você rode este comando como root
Se nessa informação conter x86_64 seu sistema é de 64 bits.
Se retornar i686, i586, i486 ou i386, seu sistema é 32 bits.
Qualquer informação diferente desta, é porque não há suporte ainda já empacotado, então você terá que baixar o source code para Mac OS X / Linux e compilá-lo.
Assim que estiver baixado, alterne seu usuário para o root para executar a instalação dele:
$ sudo su - root # cd /home/DIRETÓRIO/QUE/VOCÊ/EXTRAIU/O/ARQUIVO # chmod +x truecrypt-6.3a-setup-x86 # ./truecrypt-6.3a-setup-x86
Esta é a tela de instalação, basta concordar com o contrato e iniciar a instalação.
Pronto, agora é só executá-lo, abaixo está uma imagem de como localizá-lo no Ubuntu.
A seguir a tela do TrueCrypt, para criar um volume novo, clique no botão “Create Volume”.

Vamos usar o exemplo mais simples, o de criar um volume a partir de um arquivo criptografado.

Escolha o Standard TrueCrypt volume

Nesta tela, clique no botão Select File…

… escolha em qual pasta o arquivo ficará armazenado, e informe também qual será o nome do arquivo.

Aqui são os algoritmos de criptografia que este arquivo terá, quanto mais algoritmos forem implementados melhor (opção AES-Twofish-Serpent e Serpent-Twofish-AES).

E aqui estão os algorítimos de hash disponíveis, qualquer um deles podem ser escolhidos.

Escolha o tamanho desse arquivo. No exemplo está apenas 5MB porque o intuito é guardar apenas pequenos documentos e TXTs.

Aqui você define a segurança para acesso a este novo volume que você criará.

Você pode definir uma senha, ou se preferir pode usar um arquivo de chave. Como eu sou muito desconfiado, eu usei os dois :-D.
Clique no botão “Key files…” para criar um novo arquivo de chave, e na nova janela, clique no botão “Generate Random Keyfile…”

Você pode escolher qualquer tipo de algorítimo de hash também.
Agora é só clicar no botão “Generate and Save Keyfile…” e salvar o arquivo de chave.
Ao voltar na tela anterior, clique em “Close” para voltar para a outra janela, para clicar no botão “Add Files…”

Escolha o arquivo da chave que você acabou de salvar e clique em OK.
Obs: Se a senha que você colocar possuir poucos caracteres, o TrueCrypt chamará a sua atenção.

Estamos quase no final. Escolha o formato do volume, se for FAT ele ficará compatível com Windows, mas não será possível determinar as permissões e owner/grupo dos arquivos e diretórios dentro do volume. Escolhendo EXT2 ou EXT3, somente os sistemas em Linux conseguirão ler este arquivo caso ele seja portado para outros computadores. O formato EXT3 é o mais confiável de todos.
Essa tela aparece se você não escolher o FAT, se você escolher a primeira opção ele vai voltar à tela anterior e sugerir que você mude o formato para FAT.

Nessa parte, passe o cursor do mouse sobre a janela para ele mudar o hash do volume, quanto mais você passar o mouse, mais ele vai mudar :-D

E finalmente, clique no botão “Format”. A senha de root do seu computador será solicitada.

De volta à janela principal, clique em “Select File…” e escolha o arquivo de volume que você acabou de criar.
Clique em um dos números acima e em seguida no botão “Mount”.

Uma janela aparecerá pedindo que você digite a senha e/ou especifique o arquivo de chave. Neste exemplo, você terá que especificar tanto a senha quanto o arquivo de chave. Clique em “Keyfiles…” para usar o arquivo de chave que você criou.

Se o caminho do arquivo aparecer na linha correspondente ao número que você clicou, é porque seu volume foi montado com sucesso.

A partir daí ele fica acessível como um volume montado igual a qualquer outro dispositivo, como pen drive.

Para desmontar o volume basta clicar em Dismount.
Acertando a data e a hora
Com conexão à internet:
É bem mais fácil. Com o usuário root rode:
ntpdate -u IP_ou_HOST_do_SERVIDOR_NTP
Você pode usar qualquer servidor NTP, a seguir estão os três do NTP.br:
a.ntp.br b.ntp.br c.ntp.br
Exemplo:
ntpdate -u a.ntp.br
Sem conexão à internet:
É um pouco mais complicado. Com o usuário root rode:
date MMDDhhmmAA
Onde:
MM: Dois dígitos do mês
DD: Dois dígitos do dia
hh: Dois dígitos da hora
mm: Dois dígitos do minuto
AA: Dois dígitos do ano
E finalmente use o comando a seguir para salvar as alterações:
date -w
Um exemplo: Acertar para 23:45 do dia 15 de novembro de 2011.
date 1115234511 date -w
Veja como redefinir a senha de root caso a tenha esquecido (Red Hat, Fedora e distribuições baseadas).
Caso você precise recuperar a senha de root e não há mais forma de se logar com este usuário, nem usando o sudo su, ainda existe uma salvação:
Assim que você ligar o computador você irá para a tela de inicialização do Grub, escolha a opção que você costuma usar (como na imagem abaixo, usamos o exemplo do CentOS) e pressione a tecla E.

Escolha a opção do Kernel (imagem abaixo) e pressione E novamente.:

Acrescente no final a palavra single igual à imagem a seguir, e pressione o Enter em seguida:

Com isso você voltará à tela anterior mas com o parâmetro já editado, agora é só pressionar a tecla B:

Com o Linux carregado, basta rodar o comando passwd e definir a nova senha de root:

Agora reinicie seu computador e deixe-o carregar normalmente.
Veja como redefinir a senha de root caso a tenha esquecido (Debian, Ubuntu e distribuições baseadas).
Caso você precise recuperar a senha de root e não há mais forma de se logar com este usuário, nem usando o sudo su, ainda existe uma salvação:
Assim que você ligar o computador você irá para a tela de inicialização do Grub, escolha a opção que você costuma usar (como na imagem abaixo, usamos o exemplo do Debian) e pressione a tecla E.

Escolha a opção do Kernel (imagem abaixo) e pressione E novamente.:

Substitua ro por rw e acrescente no final init=/bin/bash igual à imagem a seguir, e pressione o Enter em seguida:

Com isso você voltará à tela anterior mas com o parâmetro já editado, agora é só pressionar a tecla B:

Com o Linux carregado, basta rodar o comando passwd e definir a nova senha de root:

Agora reinicie seu computador e deixe-o carregar normalmente.
Recortar, Copiar e Colar no VI / VIM
O Recortar também pode ser usado como Apagar.
Todos os comandos abaixo funcionam somente em modo de comandos (pressione ESC a qualquer momento para alternar para o modo de comando).
Copiar uma linha inteira:
Posicione o cursor sobre a linha desejada e pressione yy, esse comando copia a linha para a área de transferência do vim.
Recortar uma linha inteira:
Posicione o cursor sobre a linha desejada e pressione dd, esse comando move a linha para a área de transferência do vim.
Colar o conteúdo da área de transferência:
Pressione p.
Você também pode copiar ou recortar as linhas que estão acima ou abaixo também.
Copiar a linha atual e mais as dez linhas abaixo:
Posicione o cursor sobre a primeira linha desejada e pressione y, digite 10 e pressione seta para baixo.
Recortar a linha atual e mais as quinze linhas acima:
Posicione o cursor sobre a última linha desejada e pressione d, digite 15 e pressione seta para cima.
Salvando o resultado de um comando (sem erros e com erros juntos e separados) em arquivos.
Supondo que queiramos salvar em arquivo o resultado de “ls -l um_diretório”:
Salvando sem nenhuma mensagem de erro:
ls -l um_diretorio > resultado.txt
Você não verá nada na tela a não ser erros (se houverem, nesse caso, diretório não encontrado ou problema de permissão nele), pois tudo o que o comando acima deveria exibir na tela será salvo no arquivo “resultado.txt”.
Salvando os erros (se houverem) no mesmo arquivo:
ls -l um_diretorio > resultado.txt 2>&1
Nada será mostrado na tela, nem os erros, porque o argumento 2>&1 converte mensagens de erros em saídas normais e depois salva todo o resultado no arquivo “resultado.txt”.
Salvando os erros (se houverem) em um arquivo separado:
ls -l um_diretorio > resultado.txt 2>erros.txt
Salva o resultado do comando (sem erros) no arquivo “resultado.txt” e salva os erros no arquivo “erros.txt”. Comandos como o “find” podem retornar saídas normais e erros durante a sua execução, então esse exemplo te ajuda a filtrar todas as saídas válidas e os erros retornados por esse comando.
Deixando o prompt colorido
A distribuição Gentoo possui um prompt colorido ao acessar o shell, veja aqui como deixá-lo para a sua distribuição também.
Abra o arquivo .bashrc (faça um backup dele antes ok?) que está no seu diretório home de usuário (geralmente /home/seunome ou /root se você estiver como root).
Vá ao final do arquivo e, conforme a tabela que está no tópico [Usando cores e efeitos no shell] você pode escolher as cores para seu prompt definindo-as na variável PS1 e PS2.
A variável PS1 é a que mostra o texto no seu prompt, como:
jose@jose-desktop:~$ _
E a variável PS2 é aquele “>” que aparece quando você digita um comando com mais de uma linha, por exemplo:
jose@jose-desktop:~$ echo " > Ola"
Geralmente a variável PS1 tem o seguinte conteúdo:
PS1="\u@\h:\w\$ "
onde:
\u Exibe o nome do usuário (username)
\h Exibe o nome da máquina (hostname)
\w Exibe o caminho atual
E a PS2 é simplesmente:
PS2=" > "
Para apenas o nome do seu usuário aparecer em vermelho, conforme o exemplo da tabela de código de cores [aqui], definiremos por exemplo:
PS1="\033[31m\u\033[0m@\h:\w\$ "
Resultado final:
jose@jose-desktop:~$
Se quiser algo como:
jose@jose-desktop:~$
em uma linha só ficará grande, então você pode fazer dessa forma:
PS1="\033[35m\u" PS1="$PS1\033[34m@" PS1="$PS1\033[36m\h" PS1="$PS1\033[32m:" PS1="$PS1\033[33m\w" PS1="$PS1\033[31m\$\033[0m "
Teste antes abrindo um terminal novo para ver se está tudo ok, do contrário, restaure o backup do .bashrc
Outra forma mais rápida de ele atualizar o seu prompt após essa edição é rodar o comando
source .bashrc
Detalhe importante para quem usa distribuições baseadas no Red Hat, como o próprio Red Hat, CentOS, Mandriva e Fedora, O arquivo “.bashrc” em alguns casos é o “.bash_profile”, então substitua todos os exemplos com .bashrc por .bash_profile
O que acha de editar a variável PS2 para deixá-la algo como o exemplo abaixo?
jose@jose-desktop:~$ for x in {1..7}
>>>>>> do
>>>>>> echo $x
>>>>>> done
Divirtam-se :-)
Usando cores e efeitos no shell
É possível lidarmos com cores no shell e com efeitos também.
As cores comuns já estão padronizadas e alguns dos efeitos também, porém as cores brilhantes e alguns dos efeitos ainda estão passando por esse processo.
Na tabela abaixo os resultados foram testadas nos seguinte softwares:
- Terminal do Mac OS X
- Terminal do Gnome (gnome-terminal);
- Terminal do KDE (konsole);
- Shell nativo do Unix (quando nenhuma interface gráfica está carregada);
- PuTTY (conectado por SSH a partir de um computador com Windows);
[m] mac terminal – [g] gnome-terminal – [k] konsole – [n] native unix shell – [x] native X shell – [p] putty
| Efeitos | Cor dos caracteres | Cor de fundo | |||
| 0 | Voltar tudo ao normal m [OK] – g [OK] – k [OK] – n [OK] – x[OK] – p [OK] |
30 | Preto | 40 | Preto |
| 1 | Negrito (com cor brilhante) m [OK] – g [OK] – k [OK] – n [OK] – x [OK] – p [--] |
31 | Vermelho | 41 | Vermelho |
| 2 | Escuro m [--] – g [OK] – k [--] – n [OK] – x [--] – p [--] |
32 | Verde | 42 | Verde |
| 3 | (indefinido) m [--] – g [--] – k [--] – n [--] – p [--] |
33 | Amarelo | 43 | Amarelo |
| 4 | Sublinhado m [--] – g [OK] – k [OK] – n [--] – p [OK] |
34 | Azul | 44 | Azul |
| 35 | Magenta | 45 | Magenta | ||
| 6 | (indefinido) m [--] – g [--] – k [--] – n [--] – p [--] |
36 | Ciano | 46 | Ciano |
| 7 | Invertido m [OK] – g [OK] – k [OK] – n [OK] – p [OK] |
37 | Branco | 47 | Branco |
| 8 | Invisível m [OK] – g [OK] – k [--] – n [--] – p [--] |
90 | Preto Brilhante | 100 | Preto Brilhante |
m [--] – g [OK] – k [--] – n [--] – p [--] |
91 | Vermelho Brilhante | 101 | Vermelho Brilhante | |
| |
92 | Verde Brilhante | 102 | Verde Brilhante | |
| |
93 | Amarelo Brilhante | 103 | Amarelo Brilhante | |
| |
94 | Azul Brilhante | 104 | Azul Brilhante | |
| |
95 | Magenta Brilhante | 105 | Magenta Brilhante | |
| |
96 | Ciano Brilhante | 106 | Criano Brilhante | |
| |
97 | Branco Brilhante | 107 | Branco Brilhante | |
Exemplos:
Para imprimirmos o nome “Alice” apenas em verde, ou seja, Alice
echo -e "\033[32m Alice \033[0m"
Dá para fazer combinações de um ou mais efeitos com cores, e de cores com cores também.
"Alice" com fundo vermelho brilhante e texto em negrito: Alice
echo -e "\033[101;1m Alice \033[0m"
"Alice" com fundo Ciano Brilhante e texto Azul: Alice
echo -e "\033[106;34m Alice \033[0m"
"Alice" com fundo Verde, texto Amarelo, sublinhado e negrito: Alice
echo -e "\033[33;42;4;1m Alice \033[0m"
Mas por que tenho sempre que finalizar com "\033[0m" ?
Porque ele reseta (retira) a configuração de cores. Se essa sequencia não for colocada, todo o seu shell terá a cor e/ou o efeito aplicados até então.
É possível também [deixar o prompt do seu shell colorido] com estas mesmas informações.








