segunda-feira, 19 de agosto de 2013

Copiar para o clipboard a partir do Shell do Linux

Gostei tanto do comando CLIP para o Windows (ver post anterior) que procurei uma solução parecida para o Linux :-)

Pesquisando nas internetes, descobri o comando xclip, que deveria fazer o mesmo, mas não consegui fazer ele funcionar adequadamente.

O comando que funcionou no Ubuntu com o Unity, foi o xsel, como no exemplo abaixo:
$ ls -l | xsel -b
Esta opção "-b " é a chave para a coisa funcionar, indicando que o xsel vai copiar os dados para o clipboard. O comportamento padrão é utilizar uma área que não é exatamente o clipboard, mas uma área de transferência usada apenas pelo shell.

Nenhum dos dois programas estão na lista dos pré-instalados. Para instalar o xsel no Ubuntu, basta entrar com o comando:
$ sudo apt-get install xsel
Para usar o clipboard no shell programaticamente, basta usar a opção -o:
#!/bin/sh
VAR=`xsel -bo`
...

É isso aí! Bom uso

Atualização: no Mac existe um comando nativo pra isso, que é o pbcopy.

Para copiar a listagem do diretório para o clipboard:
ls -lh | pbcopy

O utilitário pbpaste faz o contrário. Aqui um exemplo pra codificar o conteúdo do clipboard em base64 e devolver o resultado codificado para o clipboard:
pbpaste | base64 | pbcopy


quinta-feira, 8 de agosto de 2013

Mais Shell do Windows

Comandinho legal do dia: CLIP

Clip copia para o clipboard qualquer conteúdo direcionado para a console, como:
grep "xkx" c:\dir\log.log | CLIP


segunda-feira, 22 de julho de 2013

Dez dedos no Windows

Pra quem privilegia a utilização de comandos pelo teclado (10 dedos) ao invés do mouse (2), o Windows sempre aparece como um azarão.

Sua interface em linha de comando (cmd) é pouco poderosa e os utilitários de apoio, ainda que tenham melhorado muito, deixam a desejar em comparação com sistemas posix (*nix, Mac).

Aqui, duas dicas para começar a montar um bom ambiente para trabalhar em linha de comando no Windows.

Criando uma espécie de ~/bin

Quem é usuário de um sistema posix está acostumado a utilizar shell scripts e links simbólicos para concentrar seus utilitários e atalhos favoritos em uns poucos diretórios, evitando engordar o seu PATH com um grande número de diretórios.

A melhor maneira que eu conheço para aproximar este comportamento no windows é criar um diretório onde são colocados programas e links simbólicos para os utilitários desejados. Sim, o Windows tem links simbólicos (ou quase isso).

Links para programas são os famosos atalhos de desktop, arquivos com extensão .lnk. Para utilizar estes atalhos na linha de comando, você deve alterar o valor da variável de ambiente PATHEXT:
  • Meu Computador -> Propriedades -> Propriedades Avançadas -> (botão) Variáveis de Ambiente
  • Altere o valor da variável PATHEXT, inserindo a extensão .LNK.
    No meu Windows 8 o resultado final foi este:
    C:>echo %PATHEXT%
    .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.LNK

Instalando utilitários em linha de comando do Linux

Existe um projeto muito útil no SourceForge que é o UnxUtils. A home-page do projeto está bastante desatualizada, mas os programas tem sido atualizados em http://sourceforge.net/projects/unxutils/

O pacote deste projeto contém um diretório "bin" contendo um programa sh.exe, que tive problemas para executar corretamente em mais do que 80 colunas. É uma pena, mas deixei pra lá.
O que interessa mesmo está no diretório usr/local/wbin, que contém um grande número de utilitários em linha de comando do Unix portados para o Windows.

Pra quem quiser se aventurar, existe um pacote completo do ambiente Linux para ser executado no Windows, que é o CygWin. Eu prefiro pular, já que tive alguns problemas com este pacote no passado, mas se alguém tem alguma experiência recente com ele, faça um comentário por favor.

Bem, depois de instalado o básico, é hora de usar os dez dedos para trabalhar mais produtivamente. Vou continuar postando outras dicas por aqui.

quarta-feira, 17 de julho de 2013

Sublime Text Editor

Recentemente fui apresentado a este fantástico editor de textos / programas e fica aqui a dica.

É Sublime um produto pago, no modelo de shareware, com implementação multiplataforma: Linux, Mac e Windows.

Eu costumava usar o Notepad++ no Windows, o Textmate no Mac e o Gedit ou VI no Linux. Com o aumento da alternância entre os três sistemas e mais o uso intenso do Linux no dia-a-dia, surgiu a demanda por um editor multiplataforma. Os plugins / extensões dele são escritos em Python e os arquivos de configuração são documentos Json.

Eu adorei as escolhas dele. Tem um visual limpo e boas escolhas para coisas do dia-a-dia, como o diretório corrente, quase sempre o que se espera que seja. Rápido para carregar e para operar e utiliza a sintaxe do python para expressões regulares, o que é uma grande vantagem para mim.

Baixe o editor e personalize o ambiente com plugins e configurações da sua preferência.

As dicas e links se referem à versão 2 do editor, mas atualmente a versão 3 está em Beta. Depois atualizo este post.

A documentação é legal e as opções em linha de comando bem poderosas (10 dedos, lembra?). Este link é para as opções de linha de comando no Mac, mas nos outros SO são semelhantes. Depois eu publico um post só sobre minhas dica sobre linha de comando no Windows.

Instalando um gerenciador de plugins

O primeiro passo é instalar um plugin que vai ajudar a instalar outros plugins. Para isso, é preciso inserir o seguinte comando na console de comandos do Sublime.

Acione o menu View -> Show Console e digite o seguinte código:
import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'

Após a reiniciar o editor, no menu Tools -> Command Palette (Command+Shift+P no Mac ou Ctrl+Shift+P nos demais) e selecionar a opção PackageControl: InstallPackage para instalar novos plugins, entrando com o nome do plugin desejado. Meus plugins favoritos até agora são:

  • SublimeRope: ótimo plugin para desenvolvimento em Python
  • JsFormat: Formata código Javascript e Json
  • Djaneiro: algumas extensões úteis para desenvolvimento em Django
Algumas destas dicas vieram daqui:
http://www.arruda.blog.br/programacao/sublime-text-2-python-virtualenv-e-auto-complete/
http://blog.odnous.net/2012/02/how-i-use-sublime-text-2-for-django.html

terça-feira, 16 de julho de 2013

De Nerd para Nerd

Este post é só pra contar sobre a motivação deste Blog e as minhas intenções com ele.

No dia a dia, como administrador de sistemas e desenvolvedor de software, vivo me deparando com a necessidade de montar um bom ambiente de trabalho, com um conjunto de ferramentas que garanta boa produtividade e um custo reduzido (ou zero) para ser montado.

Normalmente fazia este registro em documentos no Google Docs, que acabavam servindo apenas para mim. Inspirado no blog http://registrodedicas.blogspot.com.br, mantido pelo meu amigo Emerson, decidi fazer a mesma coisa, só que com visibilidade pública.

Uso Mac em casa e Linux e Windows no trabalho, o que me vai tornar este blog um espaço multiplataforma, com várias dicas interessantes para quem precisar ferramentas equivalentes nestes ambientes.

Na medida do possível, vou marcando as postagens com tags que facilitem o agrupamento dos textos.