Arquivo

Textos com Etiquetas ‘Mac OS X’

Tabela de atalhos no bash

24 de abril de 2011

Quase toda a vez que eu tenho que executar vários comandos bash, acabo usando em demasia as teclas de seta para percorrer o que foi digitado ou colado no terminal.

A navegação e edição na linha de comando dessa maneira fica na verdade um saco. Os atalhos de navegação no bash facilitam muito o trabalho nesse caso.

Estou publicando uma tabela de atalhos básicos para eu mesmo usar como referência. Espero que também seja útil para você que ainda não domina todos os atalhos do bash e sofre na hora de mover o cursor no terminal.

Tabela de atalhos básicos no bash

Navegação Ctrl + A Move o cursor para o começo da linha.
Ctrl + E
Move o cursor para o final da linha.
Ctrl + B
Move o cursor um caracter para trás.
Alt + B Move o cursor uma palavra para trás.
Ctrl + F Move o cursor um caracter para frente.
Alt + F Move o cursor uma palavra para frente.
Ctrl + X + X Move o cursor para o começo ou final da linha.
Ctrl + ] x Onde x é qualquer caracter, move o cursor para frente até a próxima ocorrência de x.
Alt + Ctrl + ] x Onde x é qualquer caracter, move o cursor para trás até a próxima ocorrência de x.
Edição Ctrl + U Apaga a partir do cursor até o começo da linha.
Ctrl + K Apaga a partir do cursor até o final da linha.
Ctrl + W Apaga a primeira palavra que está antes do cursor.
Alt + D Apaga a primeira palavra que está depois do cursor.
Ctrl + Y Cola o último texto apagado.
Alt + Y Navega pelos últimos textos apagados (use depois de Ctrl + Y).
Alt + U Coloca em letras maiúsculas a palavra atual a partir do cursor.
Alt + L Coloca em letras minúsculas a palavra atual a partir do cursor.
Alt + C Coloca em letras minúsculas a palavra atual a partir do cursor, deixando a primeira letra em maiúscula (capitalize).
Ctrl + T Troca de posição as duas últimas letras antes ou entre o cursor.
Alt + T Troca de posição as duas últimas palavras antes ou entre o cursor.
Completar Tab
Alt + /
Auto completa uma palavra.
Tab + Tab
Alt + ?
Exibe as possibilidades de auto completar de uma palavra.
Alt + * Insere as possibilidades de auto completar de uma palavra.
Desfazer Ctrl + X
Ctrl + U
Ctrl + _
Desfaz a última modificação.
Alt + R Desfaz todas as modificações na linha.
Ctrl + L Limpa a tela deixando a linha atual no topo da tela.
Ctrl + C Ignora a linha atual e abre uma nova linha vazia.
Histórico Ctrl + R Busca reversa incremental no histórico de comandos executados.
Alt + P Busca reversa não incremental no histórico de comandos executados.
Ctrl + P Navega no histórico para trás (o mesmo que seta para cima).
Ctrl + N Navega no histórico para frente (o mesmo que seta para baixo).
Alt + . Recupera a última palavra do comando anterior.
Execução !! Executa o último comando.
!abc Executa o último comando que comece com abc.
!abc:p Imprime o último comando que comece com abc.
!n Executa o número de comandos n que estão no histórico.
!$ Último argumento do último comando.
!^ Primeiro argumento do último comando.
^abc^xyz Substitui a primeira ocorrência de abc por xyz no último comando e o executa.

Referência: http://www.ice2o.com/bash.ph

Algumas dicas

No Mac OS X, para utilizar os comandos com Alt através da tecla Option é necessário habilitar isso antes.

  • Terminal: abra a janela Preferences, vá em Settings, clique em Keyboard e marque a opção “Use option as meta key”.
  • iTerm2: abra a janela Preferences, vá em Profiles, clique em Keys e escolha a opção “+Esc” em “Left option (Option Key) key acts as”.
    Atualização em 29/04/2011: conforme dica de Lucas Catón.

No Ubuntu, se o menu na barra superior do terminal estíver visível, em todo atalho que comece com Alt deve ser utilizado Shift + Alt, pois o Alt irá acionar os atalhos do menu. Por exemplo, para mover o cursor uma palavra para trás, use Shift + Alt + B ao invés de Alt + B.

Para exibir a documentação completa de atalhos do bash, utilize o comando a seguir no terminal:
man 1 bash
/^READLINE

Unix , , , , , , , , ,

Usando o Passenger 3.0 em modo standalone em aplicações Rails

19 de outubro de 2010

O Phusion Passenger é um módulo para os servidores Apache e Nginx para rodar aplicações Web Ruby, como por exemplo aplicações Ruby on Rails.

Ontem foi lançada a sua versão 3.0 do Passenger e entre as novidades está o Phusion Passenger Standalone (também chamado de Phusion Passenger Lite) que pode ser utilizado em ambiente de desenvolvimento, ao invés do Mongrel ou WEBrick.

O processo de instalar e subir o Passenger em teoria é simples, mas tive que instalar algumas dependências no meu Mac OS X para poder utilizá-lo. Abaixo listo os passos que percorri na minha instalação.

Primeiro de tudo, instalei a gem do Passenger:

$ gem install passenger

Successfully installed daemon_controller-0.2.5
Successfully installed spruz-0.1.5
Successfully installed file-tail-1.0.5
Successfully installed passenger-3.0.0
4 gems installed

Depois, todo feliz, fui iniciar o Passenger:

$ passenger start

Recebi as seguintes mensagens dizendo para atualizar a RVM:

Nginx core 0.8.52 isn’t installed

Phusion Passenger Standalone will automatically install it into:

/Users/Prodis/.passenger/standalone/3.0.0-i386-ruby1.8.7-x86_64-macosx-10.5/nginx-0.8.52

This will only be done once. Please sit back and relax while installation is
in progress.

Checking for required software…

* GNU C++ compiler… found at /usr/bin/g++
* GNU make… found at /usr/bin/make
* A download tool like ‘wget’ or ‘curl’… found at /opt/local/bin/curl
* Ruby development headers… found
* OpenSSL support for Ruby… found
* RubyGems… found
Your RVM wrapper scripts are too old. Please update them first by running ‘rvm update –head && rvm reload && rvm repair all’.

Então eu atualizei a RVM:

$ rvm update --head && rvm reload && rvm repair all

E tentei de subir o Passenger de novo:

$ passenger start

E aí obtive essas mensagens indicando que eu não tinha Curl com suporte a SSL:

Nginx core 0.8.52 isn’t installed

Phusion Passenger Standalone will automatically install it into:

/Users/Prodis/.passenger/standalone/3.0.0-i386-ruby1.8.7-x86_64-macosx-10.5/nginx-0.8.52

This will only be done once. Please sit back and relax while installation is
in progress.

Checking for required software…

* GNU C++ compiler… found at /usr/bin/g++
* GNU make… found at /usr/bin/make
* A download tool like ‘wget’ or ‘curl’… found at /opt/local/bin/curl
* Ruby development headers… found
* OpenSSL support for Ruby… found
* RubyGems… found
* Rake… found at /Users/Prodis/.rvm/wrappers/ree-1.8.7-2009.10/rake
* rack… found
* Curl development headers with SSL support… not found
* OpenSSL development headers… found
* Zlib development headers… found
* file-tail… found
* daemon_controller >= 0.2.5… found

Some required software is not installed.
But don’t worry, this installer will tell you how to install them.

Press Enter to continue, or Ctrl-C to abort.

——————————————–

Installation instructions for required software

* To install Curl development headers with SSL support:
Curl was found, but it doesn’t support SSL.
Please download Curl from http://curl.haxx.se/libcurl and make sure you install it with SSL support.

If the aforementioned instructions didn’t solve your problem, then please take
a look at the Users Guide:

/Users/Prodis/.rvm/gems/ree-1.8.7-2009.10/gems/passenger-3.0.0/doc/Users guide Standalone.html

Fui até a URL indicada, entrei na página de downloads do Curl e baixei o arquivo curl-7.21.2.zip. Descompactei o arquivo zipado e instalei o Curl com os seguintes comandos:

$ ./configure --with-ssl

$ make

$ sudo make install

Mais uma vez executei o comando para iniciar o Passenger:

$ passenger start

E dessa vez o Nginx foi instalado:

Nginx core 0.8.52 isn’t installed

Phusion Passenger Standalone will automatically install it into:

/Users/Prodis/.passenger/standalone/3.0.0-i386-ruby1.8.7-x86_64-macosx-10.5/nginx-0.8.52

This will only be done once. Please sit back and relax while installation is
in progress.

Checking for required software…

* GNU C++ compiler… found at /usr/bin/g++
* GNU make… found at /usr/bin/make
* A download tool like ‘wget’ or ‘curl’… found at /usr/local/bin/curl
* Ruby development headers… found
* OpenSSL support for Ruby… found
* RubyGems… found
* Rake… found at /Users/Prodis/.rvm/wrappers/ree-1.8.7-2009.10/rake
* rack… found
* Curl development headers with SSL support… found
* OpenSSL development headers… found
* Zlib development headers… found
* file-tail… found
* daemon_controller >= 0.2.5… found

Downloading Nginx…
# curl http://sysoev.ru/nginx/nginx-0.8.52.tar.gz -f -L -o /tmp/Prodis-passenger-standalone-28027/nginx-0.8.52.tar.gz
Installing Phusion Passenger Standalone…
[*********************************************] Copying files… -
All done!

E finalmente consegui subir o Passenger em modo standalone:

$ passenger start

=============== Phusion Passenger Standalone web server started ===============
PID file: /Users/Prodis/Lab/quick-todo/tmp/pids/passenger.3000.pid
Log file: /Users/Prodis/Lab/quick-todo/log/passenger.3000.log
Environment: development
Accessible via: http://0.0.0.0:3000/

You can stop Phusion Passenger Standalone by pressing Ctrl-C.
===============================================================================

Note que para usar o Passenger não utilizamos mais script/server ou rails server, somente o comando passenger start na raiz da aplicação Rails.

Uma coisa interessante do Phusion Passenger Standalone é que você não precisa iniciá-lo a partir da aplicação. Você pode passar como parâmetro para o comando start o caminho da sua aplicação Rails:

Prodis ~/Downloads [ree-1.8.7] $ passenger start ~/Lab/webstore/ -p 3001

=============== Phusion Passenger Standalone web server started ===============
PID file: /Users/Prodis/Lab/webstore/passenger.3001.pid
Log file: /Users/Prodis/Lab/webstore/passenger.3001.log
Environment: development
Accessible via: http://0.0.0.0:3001/

You can stop Phusion Passenger Standalone by pressing Ctrl-C.
===============================================================================

Note que eu passei também no parâmetro -p a porta em que eu quero minha aplicação fique disponível.

Para a lista completa os parâmetros do comando start do Passenger, use o help:

$ passenger start --help

Ruby , , , , , ,

Instalando ImageMagick no Mac OS X 10.5

4 de março de 2010

PaperClip é um plugin de upload de arquivos para Ruby on Rails que cria atributos dos arquivos nas classes ActiveRecord funcionando da mesma maneira como se estivesse utilizando campos do banco de dados.

Para utilizar esse plugin, é necessário instalar o ImageMagick, que pode ser feito via MacPorts:
$ sudo port install ImageMagick

Eu fiz isso e obtive o seguinte erro:

On Mac OS X 10.5, tiff 3.8.2 requires Xcode 3.1 or later but you have Xcode 3.0.
Error: Target org.macports.extract returned: incompatible Xcode version
Error: The following dependencies failed to build: tiff xorg-libXext xorg-libX11 autoconf help2man p5-locale-gettext m4 automake libtool xorg-bigreqsproto xorg-inputproto xorg-kbproto xorg-libXau xorg-xproto xorg-libXdmcp xorg-util-macros xorg-xcmiscproto xorg-xextproto xorg-xf86bigfontproto xorg-xtrans xorg-libXt xorg-libsm xorg-libice
Error: Status 1 encountered during processing.

.
Para instalar o ImageMagick no Mac OS X 10.5 é preciso ter o Xcode 3.1 ou superior. Eu tinha o Xcode 3.0 instalado, então fui até a página de desenvolvedores da Apple e baixei a últma versão do Xcode para Mac OS X 10.5.

O endereço é https://connect.apple.com. Você precisa se logar para ter acesso aos downloads. Se você não tem cadastro, pode criar uma nova conta.

Depois de logado, clique no link Downloads, depois no menu da direita em Developer Tools, localize a seção Xcode 3.1.4 Developer Tools e faça o download dos 993 MB do arquivo Xcode 3.1.4 Developer DVD (Disk Image).

Após instalado o Xcode 3.1.4, você já pode instalar o ImageMagick via MacPorts e depois utilizar o PaperClip.

Para mais informações sobre o PaperClip, acesse esse link:
http://delicious.com/prodis.net/paperclip

Unix , , , , , ,

Dica para instalar Webrat no Mac OS X e no Ubuntu

30 de agosto de 2009

Tanto no Mac OS X como Ubuntu pode haver dependências para instalar o Webrat. Abaixo segue a solução dos problemas que tive na hora da instalação.

.
Mac OS X

Antes de instalar o Webrat você precisa instalar o pacote Xcode Tools que vem com o DVD de instalação do Mac OS X. Esse pacote você encontra na pasta Optional Installs / Xcode Tools do DVD. Ele é necessário, pois arquivos de cabeçalho do Ruby (header files) não são instalados por padrão no Mac OS X.

Se você tentar instalar o Webrat sem esse arquivos, vai obter a seguinte mensagem de erro:

Building native extensions.  This could take a while…
ERROR:  Error installing webrat:
ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
can’t find header files for ruby.

Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/nokogiri-1.3.3 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/nokogiri-1.3.3/ext/nokogiri/gem_make.out

.
Após a instalação do Xcode Tools, instale o Webrat via terminal:

$ sudo gem install webrat

E se tudo ocorrer bem, você terá uma mensagem semelhante a essa:

Building native extensions.  This could take a while…
Successfully installed nokogiri-1.3.3
Successfully installed webrat-0.5.3
2 gems installed
Installing ri documentation for nokogiri-1.3.3…
Installing ri documentation for webrat-0.5.3…
Installing RDoc documentation for nokogiri-1.3.3…
Installing RDoc documentation for webrat-0.5.3…

.
A versão utilizada do Mac OS X foi a 10.5.7.
.
Atualização em 20/09/2009: Conforme o comentário do Mauricio, quando rodamos o Cucumber, aparece a seguinte mensagem:

HI. You’re using libxml2 version 2.6.16 which is over 4 years old and has
plenty of bugs. We suggest that for maximum HTML/XML parsing pleasure, you
upgrade your version of libxml2 and re-install nokogiri. If you like using
libxml2 version 2.6.16, but don’t like this warning, please define the constant
I_KNOW_I_AM_USING_AN_OLD_AND_BUGGY_VERSION_OF_LIBXML2 before requring nokogiri.

A solução para isso é atualizar o libxml2 e reinstalar o nokogiri. Siga os passos abaixo.

Atualize o libxml2 através do MacPorts:
$ sudo port install libxml2

Desinsta-le o nokogiri:
$ sudo gem uninstall nokogiri

Instale novamento o nokogiri para utilizar a nova versão do libxml2:
$ sudo gem install nokogiri

.
Ubuntu

Há duas bibliotecas que precisam ser instaladas antes do Webrat: libxmllibxslt. Para instalá-las, vá no terminal:

$ sudo apt-get install libxml2-dev

$ sudo apt-get install libxslt1-dev

Caso você tente instalar o Webrat sem ter essas bibliotecas, obterá o seguinte erro:

Building native extensions. This could take a while…
ERROR: Error installing webrat:
ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
checking for iconv.h in /opt/local/include/,/opt/local/include/libxml2,/opt/local/include,/opt/local/include,/opt/local/include/libxml2, /usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2,/usr/include,/usr/include/libxml2… yes
checking for libxml/parser.h in /opt/local/include/,/opt/local/include/libxml2,/opt/local/include,/opt/local/include,/opt/local/include/libxml2, /usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2,/usr/include,/usr/include/libxml2… no
libxml2 is missing. try ‘port install libxml2′ or ‘yum install libxml2-devel’
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.

Provided configuration options:
–with-opt-dir
–without-opt-dir
–with-opt-include
–without-opt-include=${opt-dir}/include
–with-opt-lib
–without-opt-lib=${opt-dir}/lib
–with-make-prog
–without-make-prog
–srcdir=.
–curdir
–ruby=/usr/bin/ruby1.8
–with-iconv-dir
–without-iconv-dir
–with-iconv-include
–without-iconv-include=${iconv-dir}/include
–with-iconv-lib
–without-iconv-lib=${iconv-dir}/lib
–with-xml2-dir
–without-xml2-dir
–with-xml2-include
–without-xml2-include=${xml2-dir}/include
–with-xml2-lib
–without-xml2-lib=${xml2-dir}/lib
–with-xslt-dir
–without-xslt-dir
–with-xslt-include
–without-xslt-include=${xslt-dir}/include
–with-xslt-lib
–without-xslt-lib=${xslt-dir}/lib

Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/nokogiri-1.3.3 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/nokogiri-1.3.3/ext/nokogiri/gem_make.out

.
Depois de instalar as bibliotecas, você pode instalar o Webrat no terminal:

$ sudo gem install webrat

E terá a mensagem de instalação com sucesso semelhante a essa:

Building native extensions. This could take a while…
Successfully installed nokogiri-1.3.3
Successfully installed webrat-0.5.3
2 gems installed
Installing ri documentation for nokogiri-1.3.3…
Installing ri documentation for webrat-0.5.3…
Installing RDoc documentation for nokogiri-1.3.3…
Installing RDoc documentation for webrat-0.5.3…

.
A versão utilizada do Ubuntu foi a 9.04.

Ruby, Unix , , , , ,