<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mauricio de Amorim &#187; bash</title>
	<atom:link href="http://mauriciodeamorim.com.br/tag/bash/feed/" rel="self" type="application/rss+xml" />
	<link>http://mauriciodeamorim.com.br</link>
	<description>Tecnologia e desenvolvimento web</description>
	<lastBuildDate>Tue, 21 Feb 2012 22:09:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Ordenando conteúdo de arquivo via bash unix</title>
		<link>http://mauriciodeamorim.com.br/2011/08/31/ordenando-conteudo-de-arquivo-via-bash/</link>
		<comments>http://mauriciodeamorim.com.br/2011/08/31/ordenando-conteudo-de-arquivo-via-bash/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 23:58:02 +0000</pubDate>
		<dc:creator>Mauricio de Amorim</dc:creator>
				<category><![CDATA[Dicas rápidas]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ordenação]]></category>

		<guid isPermaLink="false">http://mauriciodeamorim.com.br/?p=824</guid>
		<description><![CDATA[O comando sort ajuda muito quando precisamos fazer ordenações simples de palavras, números ou datas dentro de arquivos texto, cvs, etc. Existem muitas outras maneiras, mas nenhuma tão rápida como esta. Fica a dica: Listando os arquivos e exibindo o conteúdo do arquivo lista_de_clientes.txt > ls -la -rw-r--r-- 1 amorim staff 58 Aug 31 19:11 [...]]]></description>
			<content:encoded><![CDATA[<p>O comando <b>sort</b> ajuda muito quando precisamos fazer ordenações simples de palavras, números ou datas dentro de arquivos texto, cvs, etc. Existem muitas outras maneiras, mas nenhuma tão rápida como esta. <br/> Fica a dica:</p>
<p>Listando os arquivos e exibindo o conteúdo do arquivo lista_de_clientes.txt</p>
<pre style="background-color: black; color: white" >
<span style="color: green" >> </span>ls -la
-rw-r--r--   1 amorim  staff      58 Aug 31 19:11 lista_de_clientes.txt
<span style="color: green" >> </span>cat lista_de_clientes.txt
mauricio
amorim
wordpress
wordpress
wordpress
linux
bash
</pre>
<p>Usando o comando <b>sort</b> com o parâmetro <b> -u</b> para eliminar itens duplicados e usando <b> >> </b> para atribuir o resultado ao arquivo lista_de_clientes_ordenada.txt</p>
<pre style="background-color: black; color: white">
<span style="color: green" >> </span> <span style="color: yellow" >sort -u </span>lista_de_clientes.txt <span style="color: yellow" >>> </span>lista_de_clientes_ordenada.txt
<span style="color: green" >> </span> cat lista_de_clientes_ordenada.txt
amorim
bash
linux
mauricio
wordpress
</pre>
<p>Referência:<br />
<a href="http://solinux.gcf.eti.br/classificacao-ordenacao-e-eliminacao-de-palavras-repetidas-usando-sort/" "target_blank">Só Linux</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mauriciodeamorim.com.br/2011/08/31/ordenando-conteudo-de-arquivo-via-bash/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Erro ao instalar MySql com Homebrew no MacOS</title>
		<link>http://mauriciodeamorim.com.br/2010/07/11/erro-ao-instalar-mysql-com-homebrew-no-macos/</link>
		<comments>http://mauriciodeamorim.com.br/2010/07/11/erro-ao-instalar-mysql-com-homebrew-no-macos/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 04:43:36 +0000</pubDate>
		<dc:creator>Mauricio de Amorim</dc:creator>
				<category><![CDATA[Erros]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[homebrew]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[MySql]]></category>

		<guid isPermaLink="false">http://mauriciodeamorim.com.br/?p=688</guid>
		<description><![CDATA[Ao tentar instalar o MySql com Homebrew no meu MacOS Snow Leopard 10.6.4 obtive o seguinte erro: macos-snow ~ $ brew install mysql ==> Downloading ftp://ftp.cwru.edu/pub/bash/readline-6.0.tar.gz curl: (7) couldn't connect to host Este erro pode ocorrer se você re-instalou o seu SO ou está com uma máquina nova porque o MySql depende do bash e [...]]]></description>
			<content:encoded><![CDATA[<p>Ao tentar instalar o MySql com <a href="http://mxcl.github.com/homebrew/" target="_blank">Homebrew</a> no meu MacOS Snow Leopard 10.6.4 obtive o seguinte erro:</p>
<pre style="background-color: black; color: white;">
macos-snow ~  $ brew install mysql
<span style="color: #F9D64C">==> Downloading ftp://ftp.cwru.edu/pub/bash/readline-6.0.tar.gz</span>
curl: <span style="color: #FF3F3F">(7) couldn't connect to host</span>
</pre>
<p>Este erro pode ocorrer se você re-instalou o seu SO ou está com uma máquina nova porque o MySql depende do <a href="http://pt.wikipedia.org/wiki/Bash" target="_blank">bash</a> e o <a href="http://www.linuxfromscratch.org/lfs/view/6.5/chapter06/readline.html" target="_blank">Readline</a> é um componente para edição e histórico da linha de comando <a href="http://www.jorgebernal.info/development/fixing-snow-leopard-ruby-readline" target="_blank">por isso o Readline é instalado</a> antes da instalação do MySql.</p>
<p>A solução mais rápida foi editar a fórmula para instalação do Readline em /usr/local/Library/Formula/readline.rb e trocar o endereço <b>ftp://ftp.cwru.edu/pub/bash/readline-6.0.tar.gz</b> por <b>ftp://ftp.gnu.org/pub/gnu/readline/readline-6.0.tar.gz</b>, no meu caso isto aconteceu porque o primeiro endereço não estava respondendo.</p>
<pre style="background-color: black; color: white;">
class Readline  Formula
  url <b style="color: #FF3F3F">'ftp://ftp.cwru.edu/pub/bash/readline-6.0.tar.gz'</b>
  md5 'b7f65a48add447693be6e86f04a63019'
  homepage 'http://tiswww.case.edu/php/chet/readline/rltop.html' 

   ...
OS X provides the BSD Readline library. In order to prevent conflicts when
programs look for libreadline we are defaulting this GNU Readline installation
to keg-only.
   ...
</pre>
<p>Fica aqui a dica também se você quiser editar fórmulas para instalar com o Homebrew, no diretório /usr/local/Library/Formula/ irá encontrá-las. Para criar novas fórmulas visite <a href="http://wiki.github.com/mxcl/homebrew/formula-cookbook" target="_blank">Wiki do Homebrew</a> ou leia este post do <a href="http://akitaonrails.com/2010/02/27/limpando-meu-ambiente-de-desenvolvimento-parte-2-homebrew" target="_blank">AkitaOnRails</a>.</p>
<p><b>Mais informações: </b><br />
<a href="http://www.mail-archive.com/cygwin@cygwin.com/msg94439.html" target="_blank"> &#8211; Bash-4.0 available for FTP</a><br />
<a href="http://tim.theenchanter.com/2010/01/getting-ruby-to-use-readline-instead-of.html" target="_blank"">- Use readline instead of libedit</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mauriciodeamorim.com.br/2010/07/11/erro-ao-instalar-mysql-com-homebrew-no-macos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Melhorando o prompt do bash para RVM</title>
		<link>http://mauriciodeamorim.com.br/2010/03/16/prompt-bash-para-rvm/</link>
		<comments>http://mauriciodeamorim.com.br/2010/03/16/prompt-bash-para-rvm/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 05:00:00 +0000</pubDate>
		<dc:creator>Mauricio de Amorim</dc:creator>
				<category><![CDATA[Dicas rápidas]]></category>
		<category><![CDATA[Ambientes]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[RVM]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://mauriciodeamorim.com.br/?p=659</guid>
		<description><![CDATA[Esses dias configurei meus sistemas operacionais para usar RVM que serve para gerenciar diferentes instalações do Ruby na mesma máquina. Para instalar no Snow Leopard segui o tutorial do Akita &#8220;Limpando meu Ambiente de Desenvolvimento&#8221; e para instalar no Ubuntu segui o post do Barenko &#8220;Preparando o Ubuntu para múltiplos ambientes Ruby utilizando RVM&#8221; que [...]]]></description>
			<content:encoded><![CDATA[<p>Esses dias configurei meus sistemas operacionais para usar <a href="http://rvm.beginrescueend.com/" target="_blank">RVM</a> que serve para gerenciar diferentes instalações do Ruby na mesma máquina.</p>
<p>Para instalar no Snow Leopard segui o tutorial do Akita <a href="http://akitaonrails.com/2010/01/01/limpando-meu-ambiente-de-desenvolvimento" target="_blank">&#8220;Limpando meu Ambiente de Desenvolvimento&#8221;</a> e para instalar no Ubuntu segui o post do Barenko <a href="http://barenko.wordpress.com/2010/01/19/preparando-o-ubuntu-para-multiplos-ambientes-ruby-utilizando-rvm/" target="_blank">&#8220;Preparando o Ubuntu para múltiplos ambientes Ruby utilizando RVM&#8221;</a> que é mais ou menos uma &#8220;tradução&#8221; do post do Akita para Ubuntu. Deixei tudo igual com exceção da linha onde tem <strong>&#8220;/var/lib/gems/1.8/bin/rvm-install&#8221;</strong> que alterei para </p>
<pre>
~/rvm-install
</pre>
<p>Porém como eu uso <a href="http://github.com/guides/home" target="_blank">Git</a> uma coisa que estava me incomodando é que o prompt do <a href="https://help.ubuntu.com/community/Beginners/BashScripting" target="_blank">Bash</a> em ambos SO não estavam adequados para mostrar a versão da RVM e o branch atual do Git ao mesmo tempo, então fiz algumas e alterações e encontrei algumas &#8220;frescuras a mais&#8221; para personalizar o prompt.<br />
Substitua a linha que começa com &#8220;expost PS1=&#8217;&#8230;.&#8221; no arquivo ~/.bashrc (Ubuntu) ou ~/.bash_profile (MacOS) para:</p>
<pre>
sudo gedit ~/.bashrc
</pre>
<pre style="background-color:white; color:black">
export PS1='\[\033[38m\]\u\[\033[32m\] \w \[\033[1;33m\]`~/.rvm/bin/rvm-prompt i v
`\[\033[0;31m\] `git branch 2> /dev/null | grep -e ^* | sed -E s/^\\\\\*\ \(.+\)$/\(\\\\\1\)\ /
`\[\033[37m\]$\[\033[00m\] '
</pre>
<p>Com isto o prompt ficará assim </p>
<pre style="background-color:black; color:white">
seu_usuario <span style="color: green">~/projetos/blog</span><span style="color: yellow; font-weight: bold"> ruby-ree </span><span style="color: red"> ( working ) </span>$
</pre>
<p>Segue uma tabela com as cores existentes, se você quiser deixar a fonte em negrito use 1; ao invés de 0;</p>
<pre style="background-color:black; color:white; width: 100px;">
<span style="color: green">"\033[0;32m"</span>
<span style="color: green; font-weight: bold">"\033[1;32m"</span>
</pre>
<p><strong>Cores</strong><br />
corPadrao=&#8221;\033[0m&#8221;<br />
preto=&#8221;\033[0;30m&#8221;<br />
vermelho=&#8221;\033[0;31m&#8221;<br />
verde=&#8221;\033[0;32m&#8221;<br />
marrom=&#8221;\033[0;33m&#8221;<br />
azul=&#8221;\033[0;34m&#8221;<br />
purple=&#8221;\033[0;35m&#8221;<br />
cyan=&#8221;\033[0;36m&#8221;<br />
cinzaClaro=&#8221;\033[0;37m&#8221;<br />
amarelo=&#8221;\033[0;33m&#8221;<br />
branco=&#8221;\033[1;37m&#8221;</p>
<p>Aproveitando que este post é sobre RVM, se alguém tiver dificuldades em rodar o script/console dentro de algum ambiente de RVM dá uma olhada neste <a href="http://www.ortiz.blog.br/dicas/problema-ao-executar-scriptconsole-com-rvm/" target="_blank">post</a> que tem uma solução para este problema.</p>
<p><strong>Referências:</strong><br />
<a href="http://akitaonrails.com/2010/01/01/limpando-meu-ambiente-de-desenvolvimento" target="_blank">Limpando meu Ambiente de Desenvolvimento</a><br />
<a href="http://barenko.wordpress.com/2010/01/19/preparando-o-ubuntu-para-multiplos-ambientes-ruby-utilizando-rvm/" target="_blank">Preparando o Ubuntu para múltiplos ambientes ruby utilizando RVM</a><br />
<a href="http://ubuntuforums.org/archive/index.php/t-31247.html" target="_blank">http://ubuntuforums.org/archive/index.php/t-31247.html</a><br />
<a href="http://www.vivaolinux.com.br/dica/Shell-script-com-texto-colorido" target="_blank">http://www.vivaolinux.com.br/dica/Shell-script-com-texto-colorido</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mauriciodeamorim.com.br/2010/03/16/prompt-bash-para-rvm/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Facilitando o trabalho com Git</title>
		<link>http://mauriciodeamorim.com.br/2010/03/08/facilitando-o-trabalho-com-git/</link>
		<comments>http://mauriciodeamorim.com.br/2010/03/08/facilitando-o-trabalho-com-git/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 04:28:30 +0000</pubDate>
		<dc:creator>Mauricio de Amorim</dc:creator>
				<category><![CDATA[Dicas rápidas]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://mauriciodeamorim.com.br/?p=628</guid>
		<description><![CDATA[No dia-a-dia utilizar recursos das ferramentas certas ajudam a agilizar nosso trabalho, tratando-se de controle de versões o Git tem diversos truques interessantes. Vou resumir de forma rápida alguns comandos que utilizo diariamente, a idéia é concentrar aqui novas dicas que forem aparecendo, então sugestões são bem vindas. INSTAWEB Um dos comandos mais úteis e [...]]]></description>
			<content:encoded><![CDATA[<p>No dia-a-dia utilizar recursos das ferramentas certas ajudam a agilizar nosso trabalho, tratando-se de controle de versões o <a href="http://learn.github.com/p/intro.html" target="_blank">Git </a>tem diversos truques interessantes. Vou resumir de forma rápida alguns comandos que utilizo diariamente, a idéia é concentrar aqui novas dicas que forem aparecendo, então sugestões são bem vindas.</p>
<p><strong>INSTAWEB</strong></p>
<p>Um dos comandos mais úteis e interessantes que tenho utilizado ultimamente para fazer revisão de código ou para ter um histórico do projeto é o &#8220;instaweb&#8221; que inicia um servidor local onde podemos navegar (<a href="http://127.0.0.1:1234/?p=.git;a=shortlog" target="_blank">http://127.0.0.1:1234/?p=.git;a=shortlog</a>) pelos commits e verificar as diferenças do repositório de uma forma bem simples e clara. É importante lembrar que ao subir o serviço o terminal fica liberado sendo necessário parar o servidor após utilizar senão o processo continuará &#8220;rodando&#8221;.</p>
<pre>
git instaweb --httpd webrick
git instaweb --httpd webrick --stop
</pre>
<p><strong>STASH</strong></p>
<p>O comando &#8220;stash&#8221; é útil quando estamos trabalhando em algum código que ainda não está concluído e precisamos atualizar o projeto com as últmas atualizações, então colocamos nossas alterações em área isolada com <strong><em>git stash</em></strong>, atualizamos o projeto e aplicamos novamente nossas alterações com <strong><em>git stash apply</em></strong>. Exemplo:</p>
<pre>
git stash
git stash apply
</pre>
<p><strong>AMEND</strong></p>
<p>O comando &#8220;amend&#8221; é utilizado para corrigir ou re-editar a mensagem do último commit desde que ele não tenha sido enviado para o repositório. Exemplo:</p>
<pre>
git commit -m "Alguma mensagem errada"
git commit --amend -m "Correção da mensagem"
</pre>
<p><strong>GREP</strong></p>
<p>Com &#8220;grep&#8221; encontramos palavras dentro dos arquivos do projeto, combinado com -n é possível saber em qual linha a palavra ou o conjunto delas foi encontrado.</p>
<pre>
git grep -n "palavra ou frase procurada"
</pre>
<p><strong>RESET</strong></p>
<p>Reset pode ser utilizado basicamente para duas situações, uma delas é desfazer um commit mantendo as alterações realizadas no código com &#8220;&#8211;soft&#8221; e para desfazer um commit completamente incluindo as alterações com &#8220;&#8211;hard&#8221;. Exemplo:</p>
<pre>
git reset --soft HEAD~1
git reset --hard HEAD~1
</pre>
<p><strong>LOG</strong></p>
<p>Temos diversas formas para verificar os logs de commits do projeto, abaixo alguns tipos de formatações para exibí-los. O último &#8220;shortlog&#8221; mostra a quantidade de commits do projeto.</p>
<pre>
git log --pretty=oneline --graph --all
git log --pretty=oneline --abbrev-commit
git whatchanged -n 1
git shortlog -s -n
</pre>
<p>Para complementar, uma dica para mostrar o branch atual no terminal. No arquivo ~/.bashrc no Ubuntu ou ~/.bash_profile no MacOS inclua as linhas abaixo, feche o terminal e abra novamente para que as alterações sejam aplicadas.</p>
<pre style="color: black; background: white; padding-left: 10px;">
export PS1="\[\033[38m\]\u\[\033[32m\] \w \[\033[31m\]\`ruby -e
\"print (%x{git branch 2> /dev/null}.grep(/^\*/).first ||
'').gsub(/^\* (.+)$/, '(\1) ')\"\`\[\033[37m\]$\[\033[00m\] "
</pre>
<p>O  terminal ficará assim:</p>
<pre style="color: white; background: black; padding-left: 10px;">
user <span style="color:green">~/projects/blog</span> <span style="color:red"> (master) </span>$
</pre>
<p><strong>Referências:</strong><br />
<a href="http://gitready.com/" target="_blank">http://gitready.com/</a><br />
<a href="http://book.git-scm.com/" target="_blank">http://book.git-scm.com/</a><br />
<a href="http://learn.github.com/p/intro.html" target="_blank">http://learn.github.com/p/intro.html</a><br />
<a href="http://book.git-scm.com/4_tracking_branches.html" target="_blank">http://book.git-scm.com/4_tracking_branches.html</a><br />
<a href="http://cheat.errtheblog.com/s/git" target="_blank">http://cheat.errtheblog.com/s/git</a><br />
<a href="http://book.git-scm.com/4_ignoring_files.html" target="_blank">http://book.git-scm.com/4_ignoring_files.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mauriciodeamorim.com.br/2010/03/08/facilitando-o-trabalho-com-git/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

