Categorias
Linux

Velhos favoritos do bash

É sempre válido revisitar comandos esquecidos do bash. Três dos mais úteis que parecem ter sido esquecidos no uso comum são o cut, paste e o comando de tradução, tr. cut e paste fazem exatamente o que você espera, e apesar de soarem banais, surpreende quão poderosos podem ser quando usados na linha de comando ou em scripts.

cut normalmente é um pouco mais útil do que o comando paste. Executar o cut recorta parte de uma linha e a redireciona para a saída padrão. Predeterminadamente, o comando usa tabulação como separador de campos, mas isto pode ser alterado usando -d, e os campos são selecionadas ao usar o indicador -f.

paste efetivamente permite que você possa mesclar conteúdos em colunas, como um cat vertical. A melhor maneira de ver como funciona é criando dois arquivos de texto, cada um com três linhas de dados separadas. A saída do paste será o conteúdo do primeiro arquivo numa coluna à esquerda no segundo arquivo.

O comando tr é usado para apagar saídas irrelevantes, como espaços ou tabulações. A opção mais útil é a -s, que remove espaços repetidos em seqüências de um simples caracter. Use a saída de ls -al, que gera uma longa lista de diretórios incluindo o tamanho dos arquivos preenchidos com espaços para melhor visualização. O comando tr pode ser usado para removê-los e colocar um simples caracter de espaço como separação de campos.

Um exemplo de como estes comandos podem trabalhar juntos:

ls -al --sort=size /usr/bin | tr -s ' ' | cut -d ' ' -f 5,8

A longa saída de ls é classificada e então transportada para o comando de tradução. Este remove o preenchimento, deixando os campos separados por um caracter de espaço. Depois o cut usa o caracter de espaço como um delimitador de campo e pega os campos 5 e 6 da saída. O que você tem é uma lista de arquivos, classificadas por tamanho, mostrando apenas o tamanho e o nome do arquivo.

Categorias
Linux

Descomprimindo o tar de maneira inteligente

A tarefa de extração de tarballs iniciar ao abrir um console, trocar para o diretórios do seu tarball e então digitar o comando tar seguido dos argumentos de acordo com o arquivo que você quer extrair. É aonde encontramos um leve problema. Admitimos que não é um grande problema, mas quando você faz isso repetidamente, começa a ser um incômodo real. O problema é que você precisa lembrar qual o tipo de arquivo que você vai extrair antes de autocompletar o nome do arquivo. Normalmente é bz2 ou gz, mas você precisa especificar o 'z' ou o 'j' antes de sabê-lo.

Podemos escrever um script usando um arquivo de comando para determinar o tipo de arquivo e depois passá-lo através da condição 'if' para determinar o comando correto de extração. Você pode preferir embutir os argumentos que usa sempre no script, mas neste caso eles são apenas transmitidos para o comando. O script inicia com a definição do tipo de arquivo, usando o código a seguir:

#!/bin/bash
FILE_TYPE=$(file -b $2|awk '{ print $1}')

Com o argumento 'b', o arquivo de comando retorna apenas uma pequena linha de dados, sendo o primeiro caracter o tipo de arquivo. Esta informação é extraída desta linha ao acoplar a saída através de awk. Depois apenas precisaremos de usar o 'if' para executar o comando correto.

if [ "$FILE_TYPE" = "bzip2" ]; then
tar "$1j" "$2"
elif [ "$FILE_TYPE" = "gzip" ]; then
tar "$1z" "$2"
fi

Obviamente, é simples adicionar seus próprios tipos e deixar esta parte mais compreensível. Será preciso salvar seu script com um nome conveniente (escolher lfx) e colocá-lo na sua pasta (como um ~/bin). Descomprimir arquivos tar será depois será simples ao digitar:

$ lfx xvf ~/testfile.bz2
Categorias
Linux

Manipule os codecs

O problema de ter muitos arquivos de vídeos é que eles estão em muitos formatos de arquivo diferentes - e há dúzias de codecs diferentes para codificar streams de áudio e vídeo.

Provavelmente você tem familiaridade com o maravilhoso MPlayer, mas o que você talvez não saiba é que é que há um utilitário irmão chamado MEncoder. Ele é desenvolvido a partir do mesmo código base do MPlayer e como resultado é capaz de converter para e dos mesmos formatos que seu consumado irmão. MEncoder funciona pela linha de comando e pode não ser tão intuitivo para iniciantes, pois há muitos parâmetros. Verifique na página man do MEncoder!

Basicamente o comando do mencoder usa quatro parâmetros diferentes para converter o arquivo. A primeira parte é a entrada, a segunda é a saída do codec de vídeo, a terceira para a saída do codec de áudio seguida do parâmetro final para a saída do comando. Um comando MEncoder típico parece como isso:

$ mencoder input.avi -ovc lavc -ovc -lavcopts vcodec=mpeg4:vhq:vbitrate=1200 -oac copy -o output.avi

Isso parece complicado, mas na verdade não é tanto. input.avi é o arquivo a ser processado, e -ovc lavc diz ao MEncoder qual é o codec de saída a ser usado. O próximo parâmetro são as opções de codec. Neste caso, especificamos MPEG4 (equivalente ao DivX) com variação de bit-rate de 1200. O -oac copy é aonde o codec de saída de áudio deve estar, mas neste caso estamos simplesmente copiando para arquivo fonte, que é o parâmetro final.

O que é interessante sobre o MEncoder é que ele realmente tira vantagens do sistema Linux. Por exemplo, você pode usar uma entrada de televisão para o arquivo-fonte, ou passar o vídeo através de um filtro. Você pode até remover as barras que você vê em filmes widescreen usando o comando crop.

Categorias
Conhecimento

Frases – entrevista de Carlos Brito à Veja

Carlos Brito, de 50 anos, é presidente da AB Inbev. Gostei de quase tudo desse cara. Na entrevista, há pérolas:

"Não temos orgulho de demitir ninguém. Mas uma das responsabilidades sociais de uma empresa é obter lucro. Sem o lucro, todos os funcionários e famílias que dependem da companhia cedo ou tarde estarão na rua."

"Cheguei lá e disse que as pessoas talentosas gostam de três coisas: meritocracia, honestidade e um ambiente informal. O sujeito talentoso é a favor da meritocracia e não gosta de senioridade."

"Acredito que ser justo é tratar pessoas diferentes de formas diferentes. Tratar todo mundo igual é injusto. Aquelas pessoas que são apaixonadas, se dedicam mais à empresa, dão mais resultados - essas merecem mais oportunidades que as outras, mais atenção, mais treinamento. E elas têm de ganhar mais dinheiro também. Já que é impossível agradar a todos, vou agradar àqueles com maior talento. Sinto muito pelos menos talentosos, mas..."

"(...) a repetição funciona."

Fonte: Veja, edição 2179 - ano 43 - nº 34, de 25 de agosto de 2010

Categorias
Linux

Apelidos para comando de exclusão segura

Todos conhecemos o terrível sentimento: você digita rm * e assim que seu dedo aperta o Enter, a horrível sensação de que você está no diretório errada lhe ataca, mas você pode apenas observar indefeso enquanto seu dedo completa sua pequena mas destrutiva jornada, enviando seus arquivos para uma piscina de zeros e uns.

Por padrão, muitos comandos Unix são destrutivos. rm apaga arquivos, cp e mv sobrescreve-os sem hesitação nem misericórdia. Há opções que adicionam um nível de segurança - os argumentos -i ou --interactive para os comandos acima irá lhe perguntar se você quer confirmar sua intenção a cada passo - mas se você tiver tempo de parar e pensar sobre usá-los, você teria tempo de checar se está no diretório correto ou algo parecido. Se você quer usá-los por padrão, adicione estas linhas a /etc/profile ou ~/.bashrc

alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'

para que os comandos sejam executados com a opção -i por padrão. Você pode sempre usar -f se quiser habilitar o máximo da destrutividade.

Apelidar um comando não significa limitar a prevenção do armagedon do arquivo - você também pode adicionar opções que melhoram a saída de um comando, como adicionar -h a ls ou df para ver o tamanho em leitura humana como KB, MB ou GB.

Categorias
Linux

SSH reverso

O SSH é uma das ferramentas mais versáteis para Linux, mas a maioria das pessoas o utiliza apenas de uma maneira - usando o servidor para enviar dados para o cliente. O que provavelmente você não sabe é que também é possível trocar a lógica usual SSH e usar o cliente para enviar dados ao servidor. Pode parecer contratintuitivo, mas este acesso pode evitar que você tenha que reconfigurar roteadores e firewalls, e é também muito cômodo para acessar a rede corporativa de casa sem VPN.

É necessário instalar o servidor OpenSSH na sua estação de trabalho e a partir de então você deve digitar o que está a seguir para contruir um túnel para a porta SSH na sua máquina de casa.

ssh -R 1234:localhost:22 home_machine

Substitua home_machine pelo endereço IP da sua máquina de casa. Usamos a porta número 1234 na máquina de casa para a sessão de SSH encaminhada e esta porta precisa estar disponível para ser usada e desbloqueada pelo firewall local. Uma vez que você tenha configurado a conexão no trabalho, já pode digitar o seguinte para acessar as máquinas do trabalho de casa:

ssh workusername@localhost -p 1234

Todas as sessão da sua máquina do trabalho serão abertas e você poderá trabalhar como se estivesse no escritório. Não é difícil de modificar o mesmo processo para acessar arquivos do servidor ou até mesmo áreas de trabalho remotas usando VNC. O único problema que você pode encontrar é a expiração do tempo da primeira sessão SSH. Para resolver isso, abra /etc/ssh/sshd.conf na sua máquina do trabalho e tenha certeza de que contém 'KeepAlive yes' e 'ServerAliveInterval 60', pois com isso a conexão não cairá automaticamente.

Categorias
Cotidiano

Claro em Venda casada e enganosa

(Esta é a reprodução da minha reclamação no ReclameAqui)

Sempre fui um entusiasta da Claro, única operadora que atendeu às minhas necessidades até hoje e sou cliente já há alguns anos. Neste ano, porém, a operadora destruiu todos os créditos que eu tinha com ela.

Há um tempo atrás minha esposa quis aproveitar a promoção de venda do celular Nokia E63 (excelente celular, por sinal) para a minha linha e a linha da minha esposa. O atendente, solícito, explicou mais de uma vez como funcionava o plano, indicando que teríamos que assinar o 200 para levar o celular. Até aí tudo tranqüilo.

O plano era de R$ 79,90 e que tínhamos que também ter o plano internet de 20mb que custava R$ 19,90 para uma das linhas, que não tinha pontos suficientes para cancelar o plano de internet. Argumentamos que era uma venda casa, mas foram irredutíveis e até aceitamos.

No fechamento da compra, nos foi oferecido, pois o plano permitia, uma linha adicional para cada linha, que falaria gratuitamente com a linha titular, bastando comprar o chip. Para encerrar a compra, pedimos para sermos cadastrados na promoção atual, o que se prosseguiu com a adesão à promoção do bônus de 1200 minutos para ligações para Claro. A surpresa veio na conta seguinte:

Descobrimos que o valor do plano controle foi cobrado junto com o novo plano 200. Dois planos sendo cobrados! Mas o serviço oferecido estava sendo apenas o do plano 200, sendo que pagamos também o valor correspondente do plano controle 35 anterior ao dia em que aderimos ao novo plano.

Descobrimos também que a linha que falaria gratuitamente com o titular não é o que nos venderam. Deve-se, na verdade, pagar R$ 19,90 no plano família para que isso aconteça. Não é de graça. Ao reclamar, o atendente que nos vendeu os planos disse que era assim mesmo e que eles eram "treinados para apresentar o plano assim, com ligação gratuita entre as linhas", mesmo existindo um valor adicional a ser pago. É enganação! E nem era nossa necessidade ter essas linhas, tanto que nem as usamos pois havíamos comprado o chip para situações de emergência. Nos enganaram para um serviço que não precisávamos e não usamos. Descobri que a Claro está cobrando, inclusive, pela ligação entre essas linhas que estão no plano família.

O plano de internet, da linha da minha esposa, até hoje não funciona. Tentamos ligar diversas vezes para a Claro e a linha sempre é desligada antes de iniciarem a orientação. Fomos até a loja onde compramos e a única possibilidade de fazer a configuração é pelo telefone, que nunca conseguimos.

Quanto aos bônus, linha da minha esposa até recebeu a promoção que solicitamos a ser inscritos. A minha linha até hoje não. Eu ligo para o *525 e eles informam que minha promoçao só pode ser liberada pelo 1052, o 1052 diz que o bônus só pode ser liberado pelo *525 e até hoje, meses depois de iniciar o plano, ainda sou sobrado pelas ligações adicionais que faço para telefones Claro. Cada ligação demora no mínimo 30 minutos, na passagem de um lado para o outro, e eu nunca consigo aderir à promoção.

Entre os serviços adicionais que sou cobrado, sempre vem um valor absurdo por "Serviços, torpedos, hits, jogos etc.", que não vem detalhado sobre o que é. Não reconheço tanto serviço extra que utilizo, pois não utilizo recursos da operadora além das ligações. Quando solicito o detalhamento ao 1052 eles me dizem que as cobranças são por mensagens que, ao serem abertas, automaticamente há cobrança. Um absuro, pois como vou saber o conteúdo de uma mensagem sem abrí-la? Eu não aceito nada de nenhuma mensagem, mas sou cobrado à minha revelia. E mais: os serviços extras cobrados são do chip que não uso e está guardado na caixa!

Cheguei a ir à loja onde comprei os aparelhos e aderi ao plano. Ao invés de ser ajudado, fui atendido pela mesmo outrora vendedor solícito de maneira fria e pudemos ouvir que ela reclamou a um outro colega que estávamos "enchendo o saco dele", para usar palavras dele próprio. Uma lástima e um desrespeito na loja em pleno centro da cidade do Rio de Janeiro, ao lado da Petrobras.

Pelo passado que tive com a Claro, eu me interesso muito em ter um canal para conversar com a operadora sem que tenha que haver o desgaste das vias da justiça.

Categorias
Linux

Ponha seus cds em ordem

Verdadeiros hackers Unix sabem que mudar diretórios pode ser feito de várias maneiras diferentes, e com várias características diferentes, então em breve qualquer um aprenderá que o humilde comando cd pode, na verdade, ser o melhor amigo deles. Você já deve saber que cd ~ lhe leva para o seu diretório home, mas hackers de verdade não gastam dois comandos em nada: apenas digite cd para ter o mesmo resultado. Se você apenas pôr em ordem aquele pequeno rabisco, ~ se torna - e você tem cd -, o comando para navegar de e até o próximo diretório.

Para usuários mais avançados, cd - não é suficiente, porque ele apenas permite que você vá entre o diretório atual e o anterior. Um esquema melhor é usar pushd e popd no lugar de cd. Desta maneira, ao invés de digitar cd diretorio, use pushd diretorio - isto lembra seu atalho completo. Quando você quer dar passos para trás, apenas digite popd e vá para o diretório anterior.

Finalmente, você não odeia quando você está em um diretório simbólico e você não tem idéia de onde está? Pior, executando pwd para imprimir o diretório de trabalho o faz parecer que você não está em um diretório simbólico. Se isto acontecer com você, apenas use o parâmetro -P (pwd -P) para resolver o link simbólico e mostrá-lo aonde você está. E se você quer entrar no diretório real ao invés do link simbólico, apenas use cd 'pwd -P'.

Categorias
Cotidiano

Rua Engenho Novo, 351, Sampaio, RJ, RJ

Rua Engenho Novo, 351, Sampaio, RJ, RJ

Categorias
Cotidiano

Rua Paim Pamplona, 234, Sampaio, RJ, RJ

Rua Paim Pamplona, 234, Sampaio, RJ, RJ