<?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>Thiago Fazzio &#187; echo</title>
	<atom:link href="http://blog.thiagofazzio.com.br/tag/echo/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.thiagofazzio.com.br</link>
	<description>Debian GNU/Linux, Software Livre e Tecnolgia correndo nas veias.</description>
	<lastBuildDate>Thu, 29 Jul 2010 17:36:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Adicionando e removendo diretórios ao $PATH.</title>
		<link>http://blog.thiagofazzio.com.br/29/03/2009/adicionando-e-removendo-diretorios-ao-path/</link>
		<comments>http://blog.thiagofazzio.com.br/29/03/2009/adicionando-e-removendo-diretorios-ao-path/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 14:53:18 +0000</pubDate>
		<dc:creator>fazzio</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Informática]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[echo]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[path]]></category>

		<guid isPermaLink="false">http://blog.thiagofazzio.com.br/?p=206</guid>
		<description><![CDATA[Bom Dia Pessoal!!! Rapidamente informando o motivo da demora por mais posts &#8230; Como todos sabem eu moro em Santos &#8211; SP e desde o começo do mês estou trabalhdo em um grande provedor de Internet em São Paulo, subindo e descendo todo dia, fica um pouco complicado ter tempo pra qualquer coisa por causa [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-210" title="bash1" src="http://blog.thiagofazzio.com.br/wp-content/uploads/2009/03/bash1.png" alt="bash1" width="356" height="89" /></p>
<p><strong>Bom Dia Pessoal!!!</strong></p>
<p>Rapidamente informando o motivo da demora por mais posts &#8230;</p>
<p>Como todos sabem eu moro em Santos &#8211; SP e desde o começo do mês estou trabalhdo em um grande provedor de Internet em São Paulo, subindo e descendo todo dia, fica um pouco complicado ter tempo pra qualquer coisa por causa do meu horário (14h as 22h), não tem fretado e gasto quase 6h só no circuito &#8220;casa&lt;&gt; estrada&lt;&gt;trabalho&#8221;, mas isso logo vai mudar e vou ter algum tempinho novamente.</p>
<p>Essa dica é muito útil quando você quer isolar scripts para o seu usuário, e não todos os outros ou o root. Também é muito prática quando usa-se uma máquina compartilhada como é o meu caso no trabalho, dessa forma você não vai precisar ficar executando o script sempre pelo caminho absoluto como por exemplo:</p>
<p>Você está no diretório /root e que executar um script que só você usa, que está em diretórios no seu home, vai precisar especificar o caminho todo como em &#8230;</p>
<blockquote><p><strong> &#8220;/home/valcicreide/scripts/gerador_de_nomes.sh&#8221; </strong></p></blockquote>
<p>&#8230; fica meio chato ficar digitando isso tudo a cada vez que você quiser rodar o script.</p>
<p>Aí você me diz:</p>
<p>- Ahh Fazzio, coloca o script no /usr/local/bin e tudo está resolvido, vai aparecer até no completion (tecla TAB) !</p>
<p>Tudo bem, é uma saída, mas e se a máquina que você usa é compartilhada e todos executam scripts com o mesmo nome, porém com parâmetros diferentes como usuário e senha, como ficaria?</p>
<p>É daí que tive pela primeira vez a necessidade de maniular o <strong>$PATH</strong>.</p>
<p><em><strong>Explicação Expressa:</strong></em> <strong>$PATH</strong> é uma variável de sistema que contém os endereços dos diretórios onde o shell que você usa vai procurar os programas que você solicita. O <strong>ifconfig</strong>, por exemplo, fica no diretório <strong>/sbin/ifconfig</strong>.</p>
<p>P: Mas como eu descubro isso?</p>
<p>R: Utilizando o comando <strong>which</strong>.</p>
<blockquote><p>$ which ifconfig<br />
/sbin/ifconfig</p></blockquote>
<p>Legal né?</p>
<p>Beleza, vamos ao que interessa, finalmente &#8230; =D</p>
<p>O mais prático no meu caso seria adicionar o diretório onde eu salvo os scripts ao <strong>$PATH</strong>.</p>
<p>Para descobrir qual o seu $PATH atual, você usa:</p>
<blockquote><p><strong>echo $PATH</strong></p></blockquote>
<p>Vai ter algo parecido com:</p>
<blockquote><p><strong>/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games<br />
</strong></p></blockquote>
<p>Para simplesmente adicionar um diretório ao $PATH basta usar o comando:</p>
<blockquote><p><strong>PATH=$PATH:/diretorio_novo</strong></p></blockquote>
<p>Substitua o <strong>&#8220;/diretorio_novo&#8221;</strong> pelo caminho do seu diretório de scripts, o meu ficou:</p>
<blockquote><p><strong>PATH=$PATH:/home/tfazzio/scripts</strong></p></blockquote>
<p>Simples né, mas ainda tem um detalhe.</p>
<p>Dessa forma, ao sair do terminal essa alteração vai deixar de existir, se você quiser que ela se torne permanente deve adicionar uma linha ao  final do arquivo de configuração do seu shell preferido, no meu caso o <strong>Bash</strong>, o arquivo é o <strong>.bashrc</strong> que fica no seu home.</p>
<blockquote><p><strong>export PATH=$PATH:/diretorio_novo</strong></p></blockquote>
<p>Pronto, agora toda vez que você abrir um terminal, esse diretório vai estar no $PATH, permitindo que você rode seus scripts feliz e contente usando apenas o nome deles e com a comodidade do recurso de auto-completar com o TAB, não é lindo? &#8230; =P</p>
<p>Um último detalhe &#8230;</p>
<p>Eu nunca vejo em dicas como desafazer as coisas e acho isso muito ruim. Mesmo em livros isso acontece muito e as vezes não é tão lógico o processo de desafazer a alteração.</p>
<p>Para desfazer essa alteração, basta você remover a linha do seu &#8220;.bashrc&#8221; e rebootar a máquina.</p>
<p>Não! Rebootar é coisa de MUW! (Malditos Usuários de Windows)</p>
<p>Basta você remover a linha e depois executar os comandos abaixo:</p>
<p>Primeiro um <strong>&#8220;echo $PATH&#8221;</strong>, para copiar seu PATH original, exceto o diretório que será removido, é claro.</p>
<p>Depois basta um:</p>
<blockquote><p><strong>PATH=/path_original</strong></p></blockquote>
<p>No meu caso ficaria:</p>
<blockquote><p><strong>PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games</strong></p></blockquote>
<p>Pronto, tudo volta como era antes&#8230; =)</p>
<p>Bom, era uma dica rápida, mas tudo bem. Quanto mais entendemos o que estamos fazendo e o conceito das coisas, melhor se torna o aprendizado.</p>
<p>Obs. Agradecimentos ao <a title="InFog Blog" href="http://infog.casoft.info" target="_blank"><strong>InFog</strong></a> que ajudou na revisão do post e teste dos comandos.</p>
<p>Abraços e bom final de semana &#8230; =D</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thiagofazzio.com.br/29/03/2009/adicionando-e-removendo-diretorios-ao-path/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
