<?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>Profissionais TI - Pra quem respira informação &#187; Software Livre</title>
	<atom:link href="http://www.profissionaisti.com.br/category/software-livre/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.profissionaisti.com.br</link>
	<description>Pra quem respira informação</description>
	<lastBuildDate>Fri, 10 Feb 2012 16:02:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>WARGAME &#8211; Testes seus conhecimentos em segurança da informação</title>
		<link>http://www.profissionaisti.com.br/2012/02/wargame-testes-seus-conhecimentos-em-seguranca-da-informacao/</link>
		<comments>http://www.profissionaisti.com.br/2012/02/wargame-testes-seus-conhecimentos-em-seguranca-da-informacao/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 15:21:34 +0000</pubDate>
		<dc:creator>Marcos Henrique</dc:creator>
				<category><![CDATA[Redes]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[Conhecimento]]></category>
		<category><![CDATA[teste]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=20896</guid>
		<description><![CDATA[Este WARGAME é composto por 15 desafios onde todos possuem algum tipo de falha de segurança que, assim que descobertas, lhe permitem passar para o próximo nível. Cada desafio requer uma análise detalhada, conhecimento de algumas ferramentas usadas por profissionais de segurança da informação e muita paciência! Nem sempre o óbvio é a resposta! Acesse [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Este WARGAME é composto por 15 desafios onde todos possuem algum tipo de falha de segurança que, assim que descobertas, lhe permitem passar para o próximo nível.</p>
<p style="text-align: justify;">Cada desafio requer uma análise detalhada, conhecimento de algumas ferramentas usadas por profissionais de segurança da informação e muita paciência!</p>
<p style="text-align: justify;"><a href="http://www.100security.com.br/wargame/"><img class="aligncenter" title="100security.com.br" src="http://www.100security.com.br/wargame.png" alt="" width="519" height="343" /></a></p>
<p style="text-align: justify;">Nem sempre o óbvio é a resposta!</p>
<p style="text-align: justify;">Acesse <a title="www.100security.com.br/wargame" href="http://www.100security.com.br/wargame" target="_blank">www.100security.com.br/wargame</a>, participe e comente seus resultados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2012/02/wargame-testes-seus-conhecimentos-em-seguranca-da-informacao/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Distribuições Linux e seus lançamentos de versões</title>
		<link>http://www.profissionaisti.com.br/2012/02/distribuicoes-linux-e-seus-lancamentos-de-versoes/</link>
		<comments>http://www.profissionaisti.com.br/2012/02/distribuicoes-linux-e-seus-lancamentos-de-versoes/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 11:33:00 +0000</pubDate>
		<dc:creator>Sebastião César Vieira</dc:creator>
				<category><![CDATA[Mercado]]></category>
		<category><![CDATA[Papinho de TI]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=20862</guid>
		<description><![CDATA[Optar pela utilização de software livre deveria ser uma das opções ao se comprar qualquer computador, mas sabemos que proporcionar esse tipo de opção confundiria mais do que ajudaria o incauto usuário que procura um computador apenas para &#8220;entrar no Facebook e no MSN&#8221; além, é claro, do lobby existente pelos grandes fabricantes de software [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Optar pela utilização de software livre deveria ser uma das opções ao se comprar qualquer computador, mas sabemos que proporcionar esse tipo de opção confundiria mais do que ajudaria o incauto usuário que procura um computador apenas para &#8220;entrar no Facebook e no MSN&#8221; além, é claro, do lobby existente pelos grandes fabricantes de software para que tal &#8220;disparate&#8221; não aconteça.</p>
<p style="text-align: justify;">Mas o <a href="http://www.profissionaisti.com.br/category/software-livre/">software livre</a>, em especial as distribuições Linux, poderiam ser bem mais populares caso a comunidade em torno das mesmas não tomasse uma, ou algumas, atitudes bastante equivocadas do meu ponto de vista, me refiro nesse caso mais especificamente ao curtíssimo espaço deixado entre os lançamentos de versão estáveis dos sistemas.</p>
<p style="text-align: justify;">Antes que comece o apedrejamento quero deixar claro que me refiro as duas distros que utilizo com mais frequência: o Fedora (presença constante no meu note) e o Ubuntu (que não sai do meu desktop), apesar de um pouco a frente deixar também minha opinião sobre os releases estáveis do Debian.</p>
<p style="text-align: justify;">Desde sua concepção, tanto o Fedora quanto o <a title="Conheça o Ubuntu Dicas" href="http://www.ubuntudicas.com.br/blog/" target="_blank">Ubuntu</a> mantiveram o ritmo de lançamento de duas versões estáveis por ano o que prova que essa já é uma cultura enraizada na comunidade, que clama por novidades para se distanciar cada vez mais do Windows em termos de design e funcionalidades. Mas para alcançar esses resultados, acredito que intervalos tão curtos entre os lançamentos não seriam indispensáveis, mesmo admitindo que os releases na maioria das vezes estão realmente estáveis. Por outro lado, é bastante irritante poucas semanas depois de atualizar o sistema ver que uma versão Alpha já está disponível e que antes mesmo de você se acostumar com a maioria das funcionalidades uma nova versão já foi lançada. Claro que alguns desses pontos só acontecem quando a nova versão difere bastante da anterior, como no caso do Fedora 14 para 15. Mesmo assim ciclos de lançamento maiores ajudariam os desenvolvedores a implementar e testar um maior número de funcionalidades e facilitaria bastante a vida de usuários menos técnicos que invariavelmente ficam perdidos com tantos números e codinomes.</p>
<p style="text-align: justify;">O Debian, que mantém um ciclo médio de uma versão estável a cada dois anos, cumpre seu papel de forma adequada, visto que é um sistema para servidores, que logicamente pode ser usado em desktops, então seus releases devem ser exaustivamente testados para evitar grandes problemas no futuro. Para distros focadas no usuário final a média de 1 ano entre cada lançamento estável provavelmente conseguiria alinhar de forma adequada os principais itens envolvidos: a atualização constante do sistema, a satisfação do usuário e a manutenção e evolução da <a href="http://www.profissionaisti.com.br/category/qualidade/">qualidade</a> dos releases.</p>
<p style="text-align: justify;">Além disso, o tempo que provavelmente seria poupado poderia ser usado em um ponto que, atualmente, considero o Calcanhar de Aquiles do <a href="http://www.profissionaisti.com.br/category/software-livre/">Software Livre</a> e o principal empecilho para sua adoção em larga escala: uma suíte de escritório.</p>
<p style="text-align: justify;">É inegável que o principal trunfo da Microsoft é o Office, prova disso é que boa parte do faturamento da mesma provém dele. Também é desnecessário lembrar que uma suíte de escritório é indispensável à maioria dos usuários e que as versões livres, apesar da constante evolução, ainda deixam bastante a desejar em uma comparação direta.</p>
<p style="text-align: justify;">Com o aumento do espaço entre os releases estáveis das distribuições o tempo recuperado poderia ser investido na melhoria do LibreOffice, por exemplo, que é a principal suíte de escritório aberta disponível hoje no mercado. Claro que resalvas devem ser feitas, afinal são projetos diferentes, que exigem profissionais e níveis técnicos diferentes, mas é em situações assim que a comunidade de Software Livre precisa mostrar sua força e superar esses empecilhos. No Brasil um passo importante foi dado em 2011 com a extinção da Associação BrOffice.org e os esforços revertidos em prol do LibreOffice, que passou a ser a versão mais indicada para nos brasileiros.</p>
<p style="text-align: justify;">Logicamente existem diversos pontos de vista, também cobertos pela razão, para a manutenção do ritmo de lançamento dessas distros e outras tantas opiniões contrárias e a favor da união da comunidade em um único projeto, levando em consideração aspectos não citados nesse pequeno texto, mas para que se consiga uma evolução mais rápida e consistente em outros projetos esse esforço conjunto parece ser a opção mais razoável e acessível.</p>
<p style="text-align: justify;">Qual sua opinião? Deixe seu comentário.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2012/02/distribuicoes-linux-e-seus-lancamentos-de-versoes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introdução ao iBatis (MyBatis) &#8211; Uma alternativa para Hibernate e JDBC</title>
		<link>http://www.profissionaisti.com.br/2012/01/introducao-ao-ibatis-mybatis-uma-alternativa-para-hibernate-e-jdbc/</link>
		<comments>http://www.profissionaisti.com.br/2012/01/introducao-ao-ibatis-mybatis-uma-alternativa-para-hibernate-e-jdbc/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 10:49:54 +0000</pubDate>
		<dc:creator>Sérgio Novelli</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[iBatis]]></category>
		<category><![CDATA[MyBatis]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=20686</guid>
		<description><![CDATA[Olá, caros amigos do PTI. Hoje trago para todos um assunto bastante interessante para quem está inserido no mundo da programação. Trata-se do framework iBatis. O texto é uma tradução do post de Loiane Groner, em seu blog oficial. Loiane é uma profissional experiente desse framework e tem deixado excelentes tutoriais em seu blog. Segue [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft" src="http://loianegroner.com/wp-content/uploads/2011/01/ibatis_mybatis_loiane.png" alt="" width="274" height="149" />Olá, caros amigos do PTI. Hoje trago para todos um assunto bastante interessante para quem está inserido no mundo da programação. Trata-se do framework iBatis. O texto é uma tradução do post de <a title="Blog oficial de Loiante Groner" href="http://loianegroner.com/2011/02/introduction-to-ibatis-mybatis-an-alternative-to-hibernate-and-jdbc/" target="_blank">Loiane Groner</a>, em seu blog oficial. Loiane é uma profissional experiente desse framework e tem deixado excelentes tutoriais em seu blog. Segue o texto.</p>
<p style="text-align: justify;">&#8220;Comecei a escrever uma série de artigos sobre o iBatis / MyBatis. Este é o primeiro artigo e ele irá orientá-lo através do que é iBatis / MyBatis e porque você deve usá-lo.</p>
<p style="text-align: justify;">Para quem não sabesobre iBatis / MyBatis ainda, é um framework de persistência &#8211; uma alternativa ao JDBC e Hibernate, disponível para plataformas Java e NET. Eu tenho trabalhado com ele por quase dois anos, e estou gostando!</p>
<p style="text-align: justify;">Um primeiro detalhes que você pode observar neste e nos artigos seguintes sobre o iBatis / MyBatis é que eu estou usando os termos Mybatis e iBatis. Por quê? Até junho de 2010, iBatis foi sob licença Apache e, a partir deste ano, os fundadores decidiram movê-lo para o Google Code e renomeá-lo para MyBatis. O framework ainda é o mesmo, só tem um nome diferente agora.<br />
Juntei algumas definições as quais vou citá-las:</p>
<h3 style="text-align: justify;"><strong>O que é o MyBatis/iBatis?</strong></h3>
<p style="text-align: justify;">O framework mapeador de dados MyBatis torna mais fácil de usar um banco de dados relacional com aplicações orientadas a objeto. MyBatis trabalha com procedimentos armazenados ou instruções SQL usando um descritor XML. Simplicidade é a maior vantagem do mapeador de dados MyBatis sobre ferramentas de mapeamento objeto relacional.</p>
<p style="text-align: justify;">Para usar o mapeador de dados MyBatis, você usa seus próprios objetos, XML e SQL. Há pouco à saber que você ainda não sabe. Com o MyBatis, você tem todo o poder do SQL e procedimentos armazenados ao seu alcance. (<a title="Site oficial do iBatis" href="http://www.mybatis.org" target="_blank">www.mybatis.org</a>)</p>
<p style="text-align: justify;">O iBATIS é baseado na idéia de que há valor em bancos de dados relacionais e SQL, e que é uma boa idéia de abraçar o investimento a nível de indústria em SQL. Temos experiências em que o banco de dados SQL e até mesmo a ele próprio, ter sobrevivido ao código-fonte do aplicativo, e até mesmo a várias versões do código-fonte. Em alguns casos, vimos que um aplicativo foi reescrito em uma linguagem diferente, mas o SQL e banco de dados permaneceram praticamente inalterados.</p>
<p style="text-align: justify;">É por essas razões que iBATIS não tenta esconder ou evitar SQL. É um framework da camada de persistência que abraça o SQL, tornando mais fácil trabalhar com banco de dados e mais fácil de integrar com softwares orientados a objetos modernos. Atualmente, há rumores de que bancos de dados e SQL ameaçam nossos modelos de objeto, mas este não é o caso. iBATIS pode ajudar a garantir que não é. (<a title="Livro iBatis em Ação" href="http://www.amazon.com/gp/product/1932394826?ie=UTF8&amp;tag=loiagron-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1932394826" target="_blank">Livro iBatis em Ação (iBatis in Action)</a>)</p>
<p style="text-align: justify;">Então&#8230;</p>
<h4 style="text-align: justify;"><span style="text-decoration: underline;">O que é iBatis?</span></h4>
<ul>
<li>Um framework JDBC;</li>
<li>Os desenvolvedores escrevem SQL, iBATIS o executa usando JDBC;</li>
<li>Não precisa mais usar try / catch / finally / try / catch;</li>
<li>Um mapeador SQL;</li>
<li>Automaticamente mapeia propriedades do objeto em parâmetros de prepared statements;</li>
<li>Resulta automaticamente mapas de objetos;</li>
<li>Suporte a consultas com relacionamento N +1;</li>
<li>Um gerenciador de transações;</li>
<li>iBATIS fornece um gerenciamento de transações para operações de banco de dados se nenhuma outra transação está disponível;</li>
<li>iBATIS usa o gerenciamento de transações externas (Spring, EJB CMT, etc), se disponível;</li>
<li>Grande integração com Spring, mas também pode ser usado sem Spring.</li>
</ul>
<h4 style="text-align: justify;"><span style="text-decoration: underline;">O que não é iBatis?</span></h4>
<ul>
<li>ORM;</li>
<li>Não gera SQL;</li>
<li>Não tem uma linguagem de consulta de propriedade;</li>
<li>Não saber sobre a identidade do objeto;</li>
<li>Não transparente persistir objetos;</li>
<li>Não construir um cache de objeto;</li>
</ul>
<p style="text-align: justify;">Essencialmente, iBatis é uma solução de persistência muito leve que lhe dá a maior parte da semântica de um conjunto de ferramentas de mapeamento Objeto/Relacional, sem nenhum drama. Em outras palavras, iBATIS se esforça para facilitar o <a href="http://www.profissionaisti.com.br/category/desenvolvimento/">desenvolvimento</a> de aplicações orientadas a dados abstraindo os detalhes de baixo nível envolvidos na comunicação de dados (o carregamento de um driver de banco de dados, obtenção e gestão de conexões, gerenciar semântica da transação, etc), bem como proporcionar maior nível ORM (mapeamento automatizado e configurável de objetos para chamadas SQL, gerenciamento de dados de conversão de tipo, suporte para consultas estáticas, bem como consultas dinâmicas baseadas em estado de um objeto, mapeamento de joins complexos para gráficos de objetos complexos, etc.). iBATIS simplesmente mapeia JavaBeans para declarações SQL usando um descritor XML muito simples. A simplicidade é a principal vantagem iBATIS sobre outros frameworks e ferramentas de mapeamento objeto relacional (<a title="Developers Book" href="http://www.developersbook.com/" target="_blank">Http://www.developersbook.com</a>).</p>
<h4 style="text-align: justify;"><span style="text-decoration: underline;">Quem está usando iBatis / MyBatis?</span></h4>
<p style="text-align: justify;">Existe uma grande quantidade de projetos já utilizando o iBatis. <a title="Lista de exemplos de projetos utilizando o iBatis" href="http://www.apachebookstore.com/confluence/oss/pages/viewpage.action?pageId=25" target="_blank">Veja uma lista de exemplo</a>.</p>
<p style="text-align: justify;">Acho que o maior caso é o MySpace, com milhões de usuários. Muito bom!&#8221;</p>
<p style="text-align: justify;">Espero que tenham gostado do post. Dúvidas, deixem nos comentários. Até o próximo post!</p>
<p style="text-align: justify;">Autor/Post Original: <a title="Post oficial de Loiante Groner" href="http://loianegroner.com/2011/02/introduction-to-ibatis-mybatis-an-alternative-to-hibernate-and-jdbc/" target="_blank">Loiane Groner</a><br />
Tradução: Google Translator<br />
Adaptação: <a href="http://www.profissionaisti.com.br/author/sergionovelli/" target="_blank">Sérgio Novelli</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2012/01/introducao-ao-ibatis-mybatis-uma-alternativa-para-hibernate-e-jdbc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cinco softwares livres que todo mundo deveria usar</title>
		<link>http://www.profissionaisti.com.br/2011/12/cinco-softwares-livres-que-todo-mundo-deveria-usar/</link>
		<comments>http://www.profissionaisti.com.br/2011/12/cinco-softwares-livres-que-todo-mundo-deveria-usar/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 11:26:37 +0000</pubDate>
		<dc:creator>gabiifonseca</dc:creator>
				<category><![CDATA[Papinho de TI]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[Utilidades]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=20470</guid>
		<description><![CDATA[Por que pagar por programas (ou usar métodos ilícitos!) se existem alternativas gratuitas em que podemos trabalhar tão bem quanto? Quando formato uma máquina para amigos ou parentes sempre instalo alguns programas que uso e recomendo para todos. Esses programas certamente serão usados pelos usuário e basicamente se enquandram em duas categorias: A primeira é [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Por que pagar por programas (ou usar métodos ilícitos!) se existem alternativas gratuitas em que podemos trabalhar tão bem quanto?</p>
<p style="text-align: justify;">Quando formato uma máquina para amigos ou parentes sempre instalo alguns programas que uso e recomendo para todos. Esses programas certamente serão usados pelos usuário e basicamente se enquandram em duas categorias: A primeira é a dos softwares baseados em um outro famoso no mercado. Contudo, prefiro os que serão citados pela sua facilidade de uso ou ferramentas extras (além do fato de serem gratuitos, é claro!). A segunda categoria enquadra programas com recursos claramente inferiores às versões comerciais, mas que são mais do que adequadas para o uso diário de quem não é um profissional da área, ou seja, quando não é necessário realmente investir em algo profissional, uma ferramenta para &#8220;quebrar um galho&#8221;.</p>
<p style="text-align: justify;">Os cinco programas que recomendo são:</p>
<p style="text-align: justify;"><strong>1. VLC Media Player<br />
</strong></p>
<p style="text-align: justify;">No topo da minha lista coloco o  <a href="http://www.videolan.org/vlc/" target="_blank">VLC media player</a>. Esse player toca praticamente todos os formatos de vídeos e audio. Se o VLC não roda um vídeo, então nenhum outro programa vai rodar! Esse software é uma resposta para todos aqueles erros do Media Player sobre codecs não encontrados e outros erros. E o melhor: o VLC não só toca todos os formatos, como faz isso bem! É um dos programas mais bacanas que você instalará na sua máquina, seja ela um Windows, Linux ou Mac. Vale a pena!</p>
<p style="text-align: justify;"><strong>2. Irfanview</strong></p>
<p style="text-align: justify;">O próximo da lista é um visualizador de imagens e pequeno editor, o <strong></strong> <a href="http://www.irfanview.com/" target="_blank">Irfanview</a>. Definitivamente o melhor visualizador atual! Mas certifique-se de baixar os plugins. Você poderá ler tudo, desde arquivos .TXT, arquivos antigos da Kodak de formato .kdc e formatos da Adobe. Ele poderá até tocar uma grande quantidade de formatos de vídeos e músicas. Contudo, é melhor instala-lo antes do VLC, para que os arquivos de vídeo e áudio sejam abertos primeiro pelo VLC que é próprio para isso. Esse programa também lhe permite fazer pequenas alterações em fotos.</p>
<p style="text-align: justify;"><strong>3. ImgBurn</strong></p>
<p style="text-align: justify;">Para aqueles que gostam de trabalhar com imagens ISO e precisam criar essas imagens de um jeito fácil e simples, o <a href="http://www.imgburn.com/" target="_blank">ImgBurn</a> é o utilitário que você precisa. Esse é um tipo de programa que você não sabe que precisa até que comece a barixar ou upar aquivos ISO. Esse programa lhe permite trabalhar de maneira simples e faz a maioria das configurações automaticamente, sem com qe você precise se preocupar.</p>
<p style="text-align: justify;"><strong>4. OpenOffice</strong></p>
<p style="text-align: justify;">Se você não pode pagar por uma versão do Microsoft Office, o <a href="http://www.OpenOffice.org" target="_blank">Open Office</a> lhe servirá bem. Esse pacote sofreu uma série de melhorias e atualmente uso-o para me ajudar na escrita de vários de meus artigos. Realmente fiquei impressionado com a série de recursos e funcionalidades que foram adicionados e tenho certeza que a maioria dos que estão aqui lendo essa coluna também ficariam. O seu processador de textos é tão bom quanto o da <a href="http://www.profissionaisti.com.br/category/microsoft/">Microsoft</a> e eu só adicionaria uma observação para o trabalho com planilhas, que não são assim tão boas para se trabalhar com quantidades abusivas de dados &#8211; mas como poucos utilizam tantos dados em seus computadores pessoais, isso não é um grande problema.</p>
<p style="text-align: justify;"><strong>5. Audacity</strong></p>
<p style="text-align: justify;">Finalmente, o último, mas não menos importante, software a ser recomendado, é o  <a href="http://audacity.sourceforge.net/" target="_blank">Audacity</a>, um editor de sons. Seja você um amador ou profissional e já precisou de trabalhar um som &#8211; para corta-lo ou fazer outro tipo de alteração simples, que não necessite um programa profissional, utilize esse programa! Ele é simples e fácil de usar e leva apenas alguns minutos para realizar alterações. Funciona em todas as plataformas e é pequeno, podendo ser baixado em situações de emergência.</p>
<p style="text-align: justify;">E você, usa algum programa dessa lista? Adicionaria algum? Comente!</p>
<p style="text-align: right;"><em>Texto traduzido com adaptações de <a href="http://www.pcmag.com/article2/0,2817,2383066,00.asp?obref=obinsite" target="_blank">PCMAG</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2011/12/cinco-softwares-livres-que-todo-mundo-deveria-usar/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Benchmark de performance em Bancos de Dados Oracle com o Swingbench</title>
		<link>http://www.profissionaisti.com.br/2011/12/benchmark-de-performance-em-bancos-de-dados-oracle-com-o-swingbench/</link>
		<comments>http://www.profissionaisti.com.br/2011/12/benchmark-de-performance-em-bancos-de-dados-oracle-com-o-swingbench/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 15:07:06 +0000</pubDate>
		<dc:creator>Fábio Prado</dc:creator>
				<category><![CDATA[Infraestrutura]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Swingbench]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=20396</guid>
		<description><![CDATA[Olá pessoal, No artigo de hoje vou apresentar rapidamente uma ferramenta muito interessante que estou utilizando para executar benchmark de performance em Bancos de Dados Oracle, o Swingbench. Swingbench é um software livre que foi desenvolvido em Java por Dominic Giles (especialista em Banco de dados da Oracle UK), projetado para executar e monitorar cargas de [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Olá pessoal,</p>
<p style="text-align: justify;">No artigo de hoje vou apresentar rapidamente uma ferramenta muito interessante que estou utilizando para executar <em>benchmark</em> de performance em <a href="http://www.profissionaisti.com.br/tag/oracle/">Bancos de Dados Oracle</a>, o <strong>Swingbench.</strong> Swingbench é um software livre que foi desenvolvido em Java por Dominic Giles (especialista em Banco de dados da <em>Oracle UK),</em> projetado para executar e monitorar cargas de dados em Bancos de Dados Oracle 10G e 11G, instâncias standalone ou RAC. Ele pode ser instalado em Windows, Linux e vários outros sistemas operacionais e possui funcionalidades para simulação de 4 tipos de aplicações, entre elas a de <em>Entrada de Pedidos,</em> que funciona bem no Oracle 11G e que será apresentada neste artigo.</p>
<p style="text-align: justify;">Para baixar o Swingbench, entre em <a href="http://www.dominicgiles.com/downloads.html" target="_blank">http://www.dominicgiles.com/downloads.html</a>. Após baixá-lo, se o SO da máquina for Linux, faça a instalação conforme as instruções do link <a href="http://www.dominicgiles.com/installation.html" target="_blank">http://www.dominicgiles.com/installation.html</a>. Se o SO for Windows, substitua no roteiro do link anterior, os processos necessários para efetuar a instalação do Java (se não houver instalação prévia)  e configure as variáveis de ambiente JAVAHOME e SWINGHOME apontando para os diretórios indicados no link.</p>
<p style="text-align: justify;">Para usar a ferramenta é necessário criar antes da primeira utilização, os objetos de BD que serão utilizados para efetuar os testes. Para executar a instalação e iniciar os testes, leia e execute o que está descrito no link <a href="http://www.dominicgiles.com/simplebenchmark.html" target="_blank">http://www.dominicgiles.com/simplebenchmark.html</a>. O script <em>oewizard</em> deverá ser executado uma única vez para criar os objetos de BD. Após a criação destes objetos, execute o script <span style="font-family: Courier New;"><span style="font-family: Times New Roman;"><em>swingbench</em>  </span></span><span style="font-family: Times New Roman;">para inicializar a aplicação e permitir o início dos testes de performance. </span></p>
<p style="text-align: justify;">Eu estou utilizando este software para comparar performance de servidores de desenvolvimento, homogação e produção que eu administro e também utilizarei futuramente para medir performance quando houver <em>upgrade</em> de hardware de servidor de BD ou quando for efetuada uma migração de versão de BD.</p>
<p style="text-align: justify;">Os principais indicadores de peformance que o Swingbench fornece e que eu acho que são os mais interessantes para efetuar as comparações de peformance, são: <strong>Average</strong> <strong>TPM</strong> (média de transações por minuto) e <strong>Average</strong> <strong>TPS</strong> (média de transações por segundo). Seguem abaixo o valor do indicador <strong>Average</strong> <strong>TPM </strong>dos BDs em que eu fiz os testes por um tempo de <span style="color: #ff0000;">2 minutos</span> (configurável na ferramenta) simulando <span style="color: #ff0000;">15 sessões</span> de usuários concorrentes, seguidos por imagens contendo todos os indicadores que a ferramenta disponibiliza em um gráfico de visão geral:</p>
<ol style="text-align: justify;">
<li><strong>Produção (Oracle 10g)</strong>: <strong><span style="color: #0000ff;">657</span><span style="color: #000000;">;</span></strong></li>
<li><strong>Homologação (Oracle 10g): <span style="color: #0000ff;">618</span>;</strong></li>
<li><strong>Desenvolvimento (Oracle 11g): <span style="color: #0000ff;">684</span>.</strong></li>
</ol>
<p style="text-align: center;"><a href="http://4.bp.blogspot.com/-_4xjjuiuimI/Tsu23GG7SbI/AAAAAAAAAPo/i-4jY-Scgeo/s1600/grafico_completo_2m_adm_10G_20111122_1247.JPG"><img class="aligncenter" src="http://4.bp.blogspot.com/-_4xjjuiuimI/Tsu23GG7SbI/AAAAAAAAAPo/i-4jY-Scgeo/s400/grafico_completo_2m_adm_10G_20111122_1247.JPG" alt="" width="400" height="178" border="0" /></a><br />
Imagem 1 &#8211; Teste de performance do servidor de produção</p>
<p style="text-align: center;"><a href="http://1.bp.blogspot.com/-C5_Vjjl2k-c/TsE5cs0DP1I/AAAAAAAAAPQ/EDbUJ-rOI1o/s1600/grafico_completo_2m_admhm_10G.JPG"><img class="aligncenter" src="http://1.bp.blogspot.com/-C5_Vjjl2k-c/TsE5cs0DP1I/AAAAAAAAAPQ/EDbUJ-rOI1o/s400/grafico_completo_2m_admhm_10G.JPG" alt="" width="400" height="175" border="0" /></a><br />
Imagem 2 &#8211; Teste de performance do servidor de homologação</p>
<p style="text-align: center;"><a href="http://1.bp.blogspot.com/-MhYMiWKAB2w/TsE55hLyUNI/AAAAAAAAAPY/HDZi6_sRuLE/s1600/grafico_completo_2m_desenv.JPG"><img class="aligncenter" src="http://1.bp.blogspot.com/-MhYMiWKAB2w/TsE55hLyUNI/AAAAAAAAAPY/HDZi6_sRuLE/s400/grafico_completo_2m_desenv.JPG" alt="" width="400" height="172" border="0" /></a><br />
Imagem 3 &#8211; Teste de performance do servidor de desenvolvimento</p>
<h3 style="text-align: justify;">CONCLUSÃO</h3>
<p style="text-align: justify;">A ferramenta Swingbench  é uma ótima opção para fazer benchmark de performance entre BDs distintos e até mesmo para comparar a performance de um BD, contemplando o estado &#8220;antes&#8221; e &#8220;depois&#8221; de alguma alteração ou atualização.</p>
<p style="text-align: justify;">Nos testes que eu fiz, o servidor de desenvolvimento foi o que apresentou melhor performance, porém, ressalto que ele é o único que eu já atualizei para a versão 11g do Oracle Database (ainda não sei se isso influenciou na performance) e que os BDs de desenvolvimento e homologação estavam ociosos no momento da realização dos testes. Os testes no BD de produção foram realizados em um período que concorreu com atividades de sessões de usuários de outras aplicações.</p>
<p style="text-align: justify;">Por hoje é só!</p>
<p style="text-align: justify;">[]s</p>
<p style="text-align: justify;">Referências: <a href="http://www.dominicgiles.com/swingbench.html" target="_blank">http://www.dominicgiles.com/swingbench.html</a><br />
Fonte: <a href="http://www.fabioprado.net/2011/11/benchmark-de-performance-em-banco-de.html" target="_blank">http://www.fabioprado.net/2011/11/benchmark-de-performance-em-banco-de.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2011/12/benchmark-de-performance-em-bancos-de-dados-oracle-com-o-swingbench/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Curso de Shell Script &#8211; Módulo #1: Scripts Shell e suas estruturas</title>
		<link>http://www.profissionaisti.com.br/2011/12/curso-de-shell-script-modulo-1-scripts-shell-e-suas-estruturas/</link>
		<comments>http://www.profissionaisti.com.br/2011/12/curso-de-shell-script-modulo-1-scripts-shell-e-suas-estruturas/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 15:04:09 +0000</pubDate>
		<dc:creator>Roberto Beraldo Chaiben</dc:creator>
				<category><![CDATA[Curso Gratuito]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[Utilidades]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=20049</guid>
		<description><![CDATA[Caso não tenha lido a primeira parte (módulo #0), veja-a em: http://www.profissionaisti.com.br/2011/05/curso-de-shell-script-modulo-0-comandos-basicos-do-linux/ Inicialmente, eu separaria este texto em vários módulos. Porém, optei por fazer algo mais sucinto e criar apenas este módulo &#8211; que complementa o Módulo #0, sobre os comandos básicos do Linux. Neste módulo, serão abordados vários temas da programação em Shell (Bash), [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Caso não tenha lido a primeira parte (módulo #0), veja-a em: <a href="http://www.profissionaisti.com.br/2011/05/curso-de-shell-script-modulo-0-comandos-basicos-do-linux/">http://www.profissionaisti.com.br/2011/05/curso-de-shell-script-modulo-0-comandos-basicos-do-linux/</a></p>
<p style="text-align: justify;">Inicialmente, eu separaria este texto em vários módulos. Porém, optei por fazer algo mais sucinto e criar apenas este módulo &#8211; que complementa o Módulo #0, sobre os comandos básicos do Linux.</p>
<p style="text-align: justify;">Neste módulo, serão abordados vários temas da programação em Shell (Bash), desde variáveis e funções, até expansões, expressões regulares etc.</p>
<p style="text-align: justify;">Sem mais delongas, vamos ao que interessa! <img src='http://www.profissionaisti.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3 style="text-align: justify;">Sumário</h3>
<p style="text-align: justify;"><a href="#scripts">0. Scripts Shell</a><br />
<a href="#vars">1. Variáveis</a><br />
<a href="#envvars">1.1 Variáveis de Ambiente</a><br />
<a href="#espvars">1.2. Variáveis Especiais</a><br />
<a href="#fluxo">2. Controle de Fluxo</a><br />
<a href="#cond">2.1. Condicionais</a><br />
<a href="#if">2.1.1. if</a><br />
<a href="#case">2.1.2. case</a><br />
<a href="#select">2.1.3. select</a><br />
<a href="#repeat">2.2. Estruturas de Repetição (Loops)</a><br />
<a href="#for">2.2.1. for</a><br />
<a href="#while">2.2.2. while</a><br />
<a href="#until">2.2.3. until&#8230;do</a><br />
<a href="#break">2.2.4. break</a><br />
<a href="#continue">2.2.5. continue</a><br />
<a href="#cpattern">3. Padrão C/C++ em Expressões &#8220;(())&#8221;</a><br />
<a href="#es">4. Entrada/Saída</a><br />
<a href="#redir">4.1. Redirecionamento</a><br />
<a href="#pipe">4.2. Usando Pipelines</a><br />
<a href="#expansoes">5. Expansões</a><br />
<a href="#varexp">5.1. Expansão de Variáveis</a><br />
<a href="#params">6. Parâmetros de linha de comando</a><br />
<a href="#funcs">7. Definindo Funções</a><br />
<a href="#return">7.1. Retorno de Funções</a><br />
<a href="#er">8. Expressões Regulares em Bash</a><br />
<a href="#mathexp">9. Expressões Matemáticas</a><br />
<a href="#bashrc">10. O Arquivo .bashrc</a><br />
<a href="#alias">11. Aliases (Apelidos)</a><br />
<a href="#refs">12. Referências</a></p>
<h3 style="text-align: justify;"><a name="scripts"></a>0. Scripts Shell</h3>
<p style="text-align: justify;">Antes de mostrar os recursos do shell, vamos dar uma olhada na maneira como devemos criar scripts shell. Isso facilitará a compreensão do restante do artigo.</p>
<p style="text-align: justify;">Todo arquivo com códigos shell deve ter, na primeira linha, o identificador do interpretador a ser utilizado. A &#8220;linha mágica&#8221; que chama o interpretado bash é:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span></pre></div></div>

<p style="text-align: justify;">O mesmo vale para outras linguagens interpretadas, como PHP, Python, Ruby, Perl etc.</p>
<p style="text-align: justify;">Tendo essa linha no início do arquivo, o segundo passo é dar permissão de execução ao arquivo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">chmod</span> +x script.sh
&nbsp;
Feito isso, basta executar o script:</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ .<span style="color: #000000; font-weight: bold;">/</span>script.sh</pre></div></div>

<p style="text-align: justify;">Também é possível executar o script usando o comando <strong>bash</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">bash</span> script.sh</pre></div></div>

<p style="text-align: justify;">Assim não é necessário haver a &#8220;linha mágica&#8221; no início do script. Também não é preciso dar permissão de execução ao arquivo.</p>
<h3 style="text-align: justify;"><a name="vars"></a>1. Variáveis</h3>
<p style="text-align: justify;">O Bash, assim como muitas outras linguagens, possui o conceito de variável. Para definir uma variável:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">nome_da_variavel</span>=<span style="color: #ff0000;">&quot;valor da variável&quot;</span></pre></div></div>

<p style="text-align: justify;">É importante ressaltar que não deve haver espaços entre o símbolo de atribuição, o nome da variável e seu valor, para que o bash interprete o comando como atribuição, não chamada de comandos.</p>
<p style="text-align: justify;">Para exibir o valor de uma variável, basta usar <strong>echo</strong> da seguinte forma:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$nome_da_variavel</span></pre></div></div>

<h4 style="text-align: justify;"><a name="envvars"></a>1.1 Variáveis de Ambiente</h4>
<p style="text-align: justify;">As variáveis de ambiente são aquelas conhecidas pelos demais processos (programas em execução). Exemplos destas variáveis são: HOME, PATH, EDITOR, etc.</p>
<p style="text-align: justify;">Para entender o seu uso, vejamos um exemplo: editores de texto, como <strong>Vi</strong>, possuem diferentes interfaces para os modos texto e gráfico e necessitam saber qual o tipo de terminal o usuário está usando. A variável de ambiente TERM é o modo pelo qual isto pode ser determinado. Outro exemplo são os programas de e-mail que permitem ao usuário editar mensagens com o editor de textos de sua preferência. Como estes programas sabem qual editor usar? É através da variável EDITOR ou VISUAL.</p>
<p style="text-align: justify;">Qualquer variável pode se tornar uma variável de ambiente. Para isto, ela deve ser &#8220;exportada&#8221;, com o comando <strong>export</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span></pre></div></div>

<p style="text-align: justify;">Também podemos exportar e atribuir valores a uma variável numa única linha de comando:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> =</pre></div></div>

<p style="text-align: justify;">Podemos verificar quais são as variáveis de ambiente já definidas e seus respectivos valores usando o comando abaixo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #660033;">-p</span></pre></div></div>

<p style="text-align: justify;">Para visualizar todas as variáveis basta usar set ou env. Uma importante variável de ambiente é PATH que ajuda o shell a encontrar os comandos que o usuário executa. Todo comando executado é, na realidade, um arquivo. Estes arquivos são chamados executáveis e estão armazenados em vários diretórios como /bin ou /usr/bin. O valor da variável PATH é uma lista de diretórios em que o shell procura toda vez que executamos um comando cujo arquivo não é encontrado no diretório corrente. Assim, não precisamos alterar o diretório de trabalho todas vez que necessitamos executar um comando que se encontra em outro diretório. Basta acrescentar o diretório que contém tal comando à variável PATH. Os nomes dos diretórios na variável são separados pelo caractere dois-pontos (:).</p>
<p style="text-align: justify;">Caso o usuário joao queira adicionar um outro diretório, digamos /home/joao/bin à variável PATH, deve proceder como mostrado a seguir:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PATH</span>=<span style="color: #007800;">$PATH</span>:<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>joao<span style="color: #000000; font-weight: bold;">/</span>bin   <span style="color: #666666; font-style: italic;"># adiciona o diretório</span>
$ <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$PATH</span>                         <span style="color: #666666; font-style: italic;"># verifica</span>
<span style="color: #000000; font-weight: bold;">/</span>bin:<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin:<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin:<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>joao<span style="color: #000000; font-weight: bold;">/</span>bin</pre></div></div>

<p style="text-align: justify;">O primeiro comando faz com que a variável receba o seu valor atual, concatenado com o nome do diretório a ser acrescentado. Observe que existe um &#8220;:&#8221; antes do nome do diretório. O segundo comando é utilizado apenas para visualizarmos o resultado do primeiro.</p>
<h4 style="text-align: justify;"><a name="espvars"></a>1.2. Variáveis Especiais</h4>
<p style="text-align: justify;">Existem algumas variáveis especiais, normalmente utilizadas em script shell, para verificação de parâmetros, valores de retorno de comandos e funções etc.</p>
<table width="100%">
<thead>
<tr>
<td>Variável</td>
<td>Descrição</td>
</tr>
</thead>
<tbody>
<tr>
<td>$0</td>
<td>Parâmetro número 0 (nome do comando ou função)</td>
</tr>
<tr>
<td>$1</td>
<td>Parâmetro número 1 (da linha de comando ou função)</td>
</tr>
<tr>
<td>&#8230;</td>
<td>Parâmetro número N &#8230;</td>
</tr>
<tr>
<td>$9</td>
<td>Parâmetro número 9 (da linha de comando ou função)</td>
</tr>
<tr>
<td>${10}</td>
<td>Parâmetro número 10 (da linha de comando ou função)</td>
</tr>
<tr>
<td>$#</td>
<td>Número total de parâmetros da linha de comando ou função</td>
</tr>
<tr>
<td>$*</td>
<td>Todos os parâmetros, como uma string única</td>
</tr>
<tr>
<td>$@</td>
<td>Todos os parâmetros, como várias strings protegidas</td>
</tr>
<tr>
<td>$$</td>
<td>Número PID do processo atual (do próprio script)</td>
</tr>
<tr>
<td>$!</td>
<td>Número PID do último processo em segundo plano</td>
</tr>
<tr>
<td>$_</td>
<td>Último argumento do último comando executado</td>
</tr>
<tr>
<td>$?</td>
<td>Valor de retorno do último comando executado</td>
</tr>
</tbody>
</table>
<h3 style="text-align: justify;"><a name="fluxo"></a>2. Controle de Fluxo</h3>
<p style="text-align: justify;">Controle de fluxo permite interromper, continuar e deslocar o fluxo de execução do script. Isso envolve controles de decisão (condicionais) e estruturas de repetição (loops).</p>
<h4 style="text-align: justify;"><a name="cond"></a>2.1. Condicionais</h4>
<h4 style="text-align: justify;"><a name="if"></a>2.1.1. if</h4>
<p style="text-align: justify;">Sintaxe:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">if</span>
<span style="color: #000000; font-weight: bold;">then</span>
    comandos
<span style="color: #000000; font-weight: bold;">elif</span>
    comandos
<span style="color: #000000; font-weight: bold;">else</span>
    comandos
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>

<p style="text-align: justify;">O <strong>if</strong>, ao contrário do que ocorre em muitas outras linguagens, testa o retorno de um comando, não uma expressão.</p>
<p style="text-align: justify;">Por exemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">test</span> <span style="color: #000000;">5</span> <span style="color: #660033;">-lt</span> <span style="color: #000000;">7</span>
<span style="color: #000000; font-weight: bold;">then</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'5 é menor que 7'</span>
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>

<p style="text-align: justify;">Porém, é possível posicionar a expressão entre colchetes, de forma a tornar o if mais parecido com o que acontece em outras linguagens:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000;">5</span> <span style="color: #660033;">-lt</span> <span style="color: #000000;">7</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">then</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'5 é menor que 7'</span>
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>

<p style="text-align: justify;">O &#8220;-lt&#8221; significa &#8220;<em>less than</em>&#8220;, ou seja, &#8220;<em>menor que</em>&#8220;, equivalendo ao operador &#8220;&lt; &#8220;.</p>
<p style="text-align: justify;">Outros possíveis operadores são:</p>
<p style="text-align: justify;"><strong>Comparação Numérica<br />
-lt: É menor que (LessThan)<br />
-gt: É maior que (GreaterThan)<br />
-le: É menor igual (LessEqual)<br />
-ge: É maior igual (GreaterEqual)<br />
-eq: É igual (EQual)<br />
-ne: É diferente (NotEqual)</strong></p>
<p style="text-align: justify;"><strong>Comparação de Strings</strong><br />
=: É igual<br />
!=: É diferente<br />
-n: É não nula (não vazia)<br />
-z: É nula (vazia)</p>
<p style="text-align: justify;"><strong>Operadores Lógicos</strong><br />
!: NÃO lógico (NOT)<br />
-a: E lógico (AND)<br />
-o: OU lógico (OR)</p>
<p style="text-align: justify;"><strong>Testes em arquivos</strong><br />
-b: É um dispositivo de bloco<br />
-c: É um dispositivo de caractere<br />
-d: É um diretório<br />
-e: O arquivo existe<br />
-f: É um arquivo normal<br />
-g: O bit SGID está ativado<br />
-G: O grupo do arquivo é o do usuário atual<br />
-k: O sticky-bit está ativado<br />
-L: O arquivo é um link simbólico<br />
-O: O dono do arquivo é o usuário atual<br />
-p: O arquivo é um named pipe<br />
-r: O arquivo tem permissão de leitura<br />
-s: O tamanho do arquivo é maior que zero<br />
-S: O arquivo é um socket<br />
-t: O descritor de arquivos N é um terminal<br />
-u: O bit SUID está ativado<br />
-w: O arquivo tem permissão de escrita<br />
-x: O arquivo tem permissão de execução<br />
-nt: O arquivo é mais recente (NewerThan)<br />
-ot: O arquivo é mais antigo (OlderThan)<br />
-ef: O arquivo é o mesmo (EqualFile)</p>
<h4 style="text-align: justify;"><a name="case"></a>2.1.2. case</h4>
<p style="text-align: justify;">Sintaxe:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">case</span>  <span style="color: #000000; font-weight: bold;">in</span>
    opcao1<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        comandos
        <span style="color: #000000; font-weight: bold;">;;</span>
    opcao2<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        comandos
        <span style="color: #000000; font-weight: bold;">;;</span>
    <span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        operação padrão
<span style="color: #000000; font-weight: bold;">esac</span></pre></div></div>

<p style="text-align: justify;">Exemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Digite um número&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">read</span> x
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$x</span>&quot;</span> <span style="color: #000000; font-weight: bold;">in</span>
    <span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Você digitou o número 1&quot;</span>
        <span style="color: #000000; font-weight: bold;">;;</span>
    <span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Você digitou o número 2&quot;</span>
        <span style="color: #000000; font-weight: bold;">;;</span>
    <span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Você digitou outro número&quot;</span>
<span style="color: #000000; font-weight: bold;">esac</span></pre></div></div>

<h4 style="text-align: justify;"><a name="select"></a>2.1.3. select</h4>
<p style="text-align: justify;">Sintaxe:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">select</span>  <span style="color: #000000; font-weight: bold;">in</span>   ...
<span style="color: #000000; font-weight: bold;">do</span>
    comandos
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p style="text-align: justify;">O comando <strong>select</strong> é pouco utilizado, mas pode ser muito útil para montar menus. Esse comando exibe um menu, associando cada opção a um número. Quando o usuário seleciona o número da opção, o seu valor é associado à.</p>
<p style="text-align: justify;">Exemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">select</span> i <span style="color: #000000; font-weight: bold;">in</span> lista_arquivos lista_arquivos_tree
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$i</span>&quot;</span> <span style="color: #000000; font-weight: bold;">in</span>
        lista_arquivos<span style="color: #7a0874; font-weight: bold;">&#41;</span>
            <span style="color: #c20cb9; font-weight: bold;">ls</span>
            <span style="color: #000000; font-weight: bold;">;;</span>
        lista_arquivos_tree<span style="color: #7a0874; font-weight: bold;">&#41;</span>
            <span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">-R</span>
            <span style="color: #000000; font-weight: bold;">;;</span>
    <span style="color: #000000; font-weight: bold;">esac</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<h4 style="text-align: justify;"><a name="repeat"></a>2.2. Estruturas de Repetição (Loops)</h4>
<p style="text-align: justify;">Loops são estruturas que permitem fazer iterações sobre algum dado.</p>
<h4 style="text-align: justify;"><a name="for"></a>2.2.1. for</h4>
<p style="text-align: justify;">Sintaxe:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">for</span> <span style="color: #000000; font-weight: bold;">&lt;</span>var<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">do</span> <span style="color: #000000; font-weight: bold;">done</span> <span style="color: #000000; font-weight: bold;">&lt;/</span>var<span style="color: #000000; font-weight: bold;">&gt;</span></pre></div></div>

<p style="text-align: justify;">&#8220;var&#8221; é o nome da variável a ser usada no bloco de repetição. &#8220;lista&#8221; pode ser uma lista de dados, fixa ou retornada por outro comando (como o ls), uma sequência de números etc.</p>
<p style="text-align: justify;">Exemplos:</p>
<p style="text-align: justify;">Exibe uma sequência de números:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000;">1</span> <span style="color: #000000;">2</span> <span style="color: #000000;">3</span> <span style="color: #000000;">4</span> <span style="color: #000000;">5</span>
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$i</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p style="text-align: justify;">Lista os diretórios e arquivos da raiz do sistema de arquivos:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$i</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">seq</span> <span style="color: #000000;">1</span> <span style="color: #000000;">10</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$i</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">passwd</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$i</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<h4 style="text-align: justify;"><a name="while"></a>2.2.2. while</h4>
<p style="text-align: justify;">Sintaxe:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">while</span>
<span style="color: #000000; font-weight: bold;">do</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p style="text-align: justify;">Exemplos:</p>
<p style="text-align: justify;">Exibe a sequência de 1 a 10:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">i</span>=<span style="color: #000000;">0</span>
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$i</span> <span style="color: #660033;">-lt</span> <span style="color: #000000;">10</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$i</span>
    <span style="color: #007800;">i</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>i+<span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p style="text-align: justify;">Loop infinito que exibe &#8220;bash&#8221; na tela:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">true</span>
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'bash'</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p style="text-align: justify;">Lendo strings da entrada padrão:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> i
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'Voce digitou a string: '</span> <span style="color: #007800;">$i</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p style="text-align: justify;">Exibe as linhas de um arquivo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #ff0000;">'arquivo.txt'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> i
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$i</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p style="text-align: justify;">Esse exemplo facilita o trabalho com arquivos de texto, cujas linhas possuem espaços. Se fosse usado um loop for nesse caso, seria necessário alterar a variável de ambiente IFS, definindo o separador para quebra de linha (\n).</p>
<p style="text-align: justify;">Uma variação do exemplo anterior é esta:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> i
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$i</span>
<span style="color: #000000; font-weight: bold;">done</span> <span style="color: #000000; font-weight: bold;">&amp;</span>lt; arquivo.txt</pre></div></div>

<p style="text-align: justify;">A principal diferença entre estes dois últimos exemplos é que, no primeiro, o loop while é executado num subshell, devido ao uso do pipe (|). No segundo exemplo, o while é executado no shell corrente.</p>
<p style="text-align: justify;">Para ilustrar o problema, crie um arquivo chamado &#8220;arq.txt&#8221; com algumas linhas de texto. Crie este script e execute-o:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #007800;">FILE</span>=<span style="color: #ff0000;">'arq.txt'</span>
&nbsp;
<span style="color: #007800;">total</span>=<span style="color: #000000;">0</span>
<span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #007800;">$FILE</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> i
<span style="color: #000000; font-weight: bold;">do</span>
	<span style="color: #007800;">total</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>total+<span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">done</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'Total de linhas: '</span> <span style="color: #007800;">$total</span>
&nbsp;
<span style="color: #007800;">total</span>=<span style="color: #000000;">0</span>
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> i
<span style="color: #000000; font-weight: bold;">do</span>
	<span style="color: #007800;">total</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>total+<span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">done</span> <span style="color: #000000; font-weight: bold;">&amp;</span>lt; <span style="color: #007800;">$FILE</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'Total de linhas: '</span> <span style="color: #007800;">$total</span></pre></div></div>

<p style="text-align: justify;">O primeiro loop é executado num subshell, fazendo com que a variável &#8220;total&#8221;, usada no corpo do loop, existe apenas nesse subshell. No segundo caso, isso não ocorre. Isso pode gerar grandes dores de cabeça&#8230; (como já ocorreu comigo)</p>
<h4 style="text-align: justify;"><a name="until"></a>2.2.3. until&#8230;do</h4>
<p style="text-align: justify;">Sintaxe:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">until</span>
<span style="color: #000000; font-weight: bold;">do</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p style="text-align: justify;">Nesse loop, a condição é oposta à usada no while. Por exemplo:</p>
<p style="text-align: justify;">Com while:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">i</span>=<span style="color: #000000;">0</span>
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$i</span> <span style="color: #660033;">-lt</span> <span style="color: #000000;">10</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$i</span>
    <span style="color: #007800;">i</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>i+<span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p style="text-align: justify;">Com unitl:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">i</span>=<span style="color: #000000;">0</span>
<span style="color: #000000; font-weight: bold;">until</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$i</span> <span style="color: #660033;">-ge</span> <span style="color: #000000;">10</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$i</span>
    <span style="color: #007800;">i</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>i+<span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p style="text-align: justify;">Para fazer a mesma coisa, tivemos que usar expressões diferentes na condição do loop.</p>
<h4 style="text-align: justify;"><a name="break"></a>2.2.4. break</h4>
<p style="text-align: justify;">O comando break encerra um loop imediatamente.</p>
<p style="text-align: justify;">Exemplos:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">i</span>=<span style="color: #000000;">0</span>
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">true</span>
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$i</span> <span style="color: #660033;">-ge</span> <span style="color: #000000;">10</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
    <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #7a0874; font-weight: bold;">break</span>
    <span style="color: #000000; font-weight: bold;">fi</span>
    <span style="color: #007800;">i</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>i+<span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> i
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$i</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
    <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #7a0874; font-weight: bold;">break</span>
    <span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<h4 style="text-align: justify;"><a name="continue"></a>2.2.5. continue</h4>
<p style="text-align: justify;">O comando continue para a execução da iteração corrente e vai para a próxima iteração, mesmo que haja mais comandos no bloco de repetição.</p>
<h3 style="text-align: justify;"><a name="cpattern"></a>3. Padrão C/C++ em Expressões &#8220;(())&#8221;</h3>
<p style="text-align: justify;">É possível usar o padrão C em expressões do shell, como em condicionais de estruturas de controle. Para isso, basta colocar a expressão entre dois parênteses.</p>
<p style="text-align: justify;">Exemplos;</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">i</span>=<span style="color: #000000;">0</span>
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span> i <span style="color: #000000; font-weight: bold;">&amp;</span>lt; <span style="color: #000000;">10</span> <span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$i</span>
    <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>i++<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p style="text-align: justify;">É possível, inclusive, usar o padrão do loop for do C:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">for</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>i = <span style="color: #000000;">0</span>; i <span style="color: #000000; font-weight: bold;">&amp;</span>lt; <span style="color: #000000;">10</span>; i++<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$i</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<h3 style="text-align: justify;"><a name="es"></a>4. Entrada/Saída</h3>
<p style="text-align: justify;">Existem três dispositivos principais, que sempre estão abertos, que merecem destaque:</p>
<p style="text-align: justify;">stdin (standard input): entrada padrão. Corresponde, em geral, ao teclado;<br />
stdout (standard output): saída padrão. Corresponde, em geral, à tela do terminal;<br />
stderr (standard error): saída padrão de erros. Corresponde, em geral, à tela do terminal, também.</p>
<p style="text-align: justify;">Esses três dispositivos estão em /dev e estão sempre disponíveis. Quem programa em C, sabe muito bem disso, pois já deve ter usado stdin, stdout e stderr junto com fprintf, fread, fwrite e semelhantes; esses três dispositivos comportam-se como arquivos comuns, sempre abertos e que não devem ser fechados.<br />
É possível brincar com eles no próprio shell. Experimentem dar um cat em /dev/stdin para ver o que acontece. <img src='http://www.profissionaisti.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h4 style="text-align: justify;"><a name="redir"></a>4.1. Redirecionamento</h4>
<p style="text-align: justify;">A entrada de um programa consiste nos dados que lhe são passados inicialmente, os quais são necessários para a execução do programa. A entrada de um programa pode vir do teclado ou de um arquivo, por exemplo. Argumentos passados à comandos constituem a sua entrada.<br />
A saída é constituída pelas informações geradas pelo programa, ou seja, o resultado de sua execução. A saída pode ser mostrada na tela ou gravada em um arquivo de registro.</p>
<p style="text-align: justify;">Muitos comandos do Linux têm sua entrada configurada para a entrada padrão e sua saída para a saída padrão. A entrada padrão é o teclado e a saída padrão é o monitor. Vejamos um exemplo usando o comando cat, que lê dados de todos os arquivos passados como parâmetros e os envia diretamente para a saída padrão. Usando o comando abaixo, veremos o conteúdo do arquivo &#8220;arq1&#8243; seguido pelo conteúdo de &#8220;arq2&#8243;.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">cat</span> arq1 arq2</pre></div></div>

<p style="text-align: justify;">Entretanto, se nenhum nome de arquivo for dado como parâmetro, o comando cat lê dados da entrada padrão e os envia para a saída padrão. Para interromper, deve-se pressionar as teclas ctrl e d simultaneamente (ctrl+d).</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">cat</span>
Ola<span style="color: #000000; font-weight: bold;">!</span> Tem alguem ai?  <span style="color: #666666; font-style: italic;"># usuário</span>
Ola<span style="color: #000000; font-weight: bold;">!</span> Tem alguem ai?  <span style="color: #666666; font-style: italic;"># eco do sistema</span>
Ate mais<span style="color: #000000; font-weight: bold;">!</span>            <span style="color: #666666; font-style: italic;"># usuário</span>
Ate mais<span style="color: #000000; font-weight: bold;">!</span>            <span style="color: #666666; font-style: italic;"># eco do sistema</span>
              <span style="color: #666666; font-style: italic;"># usuário pressiona ctrl+d</span></pre></div></div>

<p style="text-align: justify;">Como podemos ver, cada linha que o usuário digita é imediatamente ecoada pelo comando cat. Aqui um outro exemplo: o comando sort lê dados da entrada padrão &#8211; a menos que algum arquivo seja dado como parâmetro &#8211; e ordena os dados, enviando-os para a saída padrão:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sort</span>
bananas     <span style="color: #666666; font-style: italic;"># usuário</span>
peras       <span style="color: #666666; font-style: italic;"># usuário</span>
goiabas     <span style="color: #666666; font-style: italic;"># usuário</span>
            <span style="color: #666666; font-style: italic;"># ctrl+d</span>
bananas     <span style="color: #666666; font-style: italic;"># eco do sistema</span>
goiabas     <span style="color: #666666; font-style: italic;"># eco do sistema</span>
peras       <span style="color: #666666; font-style: italic;"># eco do sistema</span></pre></div></div>

<p style="text-align: justify;">Digamos que queremos enviar a saída do comando sort para um arquivo, gravando os dados digitados anteriormente. O shell nos permite redirecionar a saída para um arquivo usando o símbolo &#8220;&gt;&#8221;.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sort</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt; lista
bananas  <span style="color: #666666; font-style: italic;"># usuário</span>
peras    <span style="color: #666666; font-style: italic;"># usuário</span>
goiabas  <span style="color: #666666; font-style: italic;"># usuário</span>
         <span style="color: #666666; font-style: italic;"># ctrl+d</span></pre></div></div>

<p style="text-align: justify;">Como se pode ver, o resultado do comando sort não é mostrado imediatamente após o se digitar ctrl+d. Ao invés disso, é salvo em um arquivo chamado &#8220;lista&#8221;. Vejamos o conteúdo desse arquivo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">cat</span> lista
bananas
goiabas
peras</pre></div></div>

<p style="text-align: justify;">Com o redirecionamento de saída, temos uma maneira simples de criar arquivos de texto. Para isso, utilizamos o comando cat para ler a entrada padrão (teclado) e redirecionamos sua saída para um arquivo.</p>
<p style="text-align: justify;">Ao usar &#8220;&gt;&#8221; para redirecionar a saída para um arquivo, estamos realizando um redirecionamento destrutivo, ou seja, o comando &#8220;ls &gt; lista&#8221; sobrescreve o conteúdo do arquivo &#8220;lista&#8221;. Isto é equivalente a dizer que todo o conteúdo anterior de &#8220;lista&#8221; é apagado.<br />
Se, ao invés disso, redirecionarmos usando &#8220;&gt;&gt;&#8221;, a saída será concatenada ao final do arquivo e o conteúdo (se houver) de &#8220;lista&#8221; será preservado. Para melhor entender isso, experimente executar a seguinte seqüência de comandos:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt;<span style="color: #000000; font-weight: bold;">&amp;</span>gt; listagem
<span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt;<span style="color: #000000; font-weight: bold;">&amp;</span>gt; listagem
<span style="color: #c20cb9; font-weight: bold;">less</span> listagem</pre></div></div>

<p style="text-align: justify;">O redirecionamento neste exemplo, diferentemente do exemplo anterior, é denominado redirecionamento não-destrutivo.</p>
<h3 style="text-align: justify;"><a name="pipe"></a>4.2. Usando Pipelines</h3>
<p style="text-align: justify;">Nos exemplos para o filtro sort, os dados de entrada eram digitados pelo usuário ou estavam gravados em um arquivo. O que aconteceria se quiséssemos ordenar dados vindos do saída de outro comando ? Para listar os arquivos do diretório corrente em ordem alfabética invertida devemos fazer com que a saída do comando ls seja ordenada pelo comando sort. Usando a opção &#8220;-r&#8221;, este comando ordena os dados na ordem inversa.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">ls</span>
historia  notas     tese      testes
$ <span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt; lista
$ <span style="color: #c20cb9; font-weight: bold;">sort</span> <span style="color: #660033;">-r</span> lista
testes
tese
notas
lista                             <span style="color: #666666; font-style: italic;"># observe esse nome de arquivo</span>
historia</pre></div></div>

<p style="text-align: justify;">Aqui, salvamos a saída do comando ls em um arquivo (lista) e usamos sort com a opção &#8220;-r&#8221;. Porém, isso faz com que tenhamos um arquivo temporário para armazenar os dados. Assim, toda vez que fizermos isso, teremos que, em seguida, remover o arquivo lista. A solução é usar o que chamamos de pipeline, outro recurso do shell que nos permite conectar vários comandos usando um pipe, onde a saída do primeiro comando é enviada diretamente à entrada do segundo e assim por diante no caso de haver mais de dois comandos conectados por pipes.</p>
<p style="text-align: justify;">No nosso caso, queremos enviar a saída do comando ls para a entrada do comando sort. O símbolo &#8220;|&#8221; (barra vertical) é usado para criar um pipe:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sort</span> <span style="color: #660033;">-r</span>
testes
tese
notas
historia</pre></div></div>

<p style="text-align: justify;">Note que neste exemplo, nenhum nome de arquivo é usado na linha de comando, diferentemente do exemplo anterior que fazia o uso do arquivo intermediário lista. Outra diferença é que o nome desse arquivo intermediário aparece no resultado do penúltimo exemplo, mas não neste último. O comando é mais curto, mais fácil de digitar e o resultado é mais adequado pois não inclui nomes de arquivos intermediários.</p>
<p style="text-align: justify;">É importante observar que o redirecionamento e o uso de pipes são características do shell e não dos comandos em si. É o shell quem provê a sintaxe dos símbolos &#8220;&gt;&#8221;, &#8220;&lt; &#8221; e &#8220;|&#8221;. Logo, se você criar um programa que utilize entrada de dados via stdin, poderá usar redirecionamento para especificar uma entrada para o seu programa.</p>
<h3 style="text-align: justify;"><a name="expansoes"></a>5. Expansões</h3>
<p style="text-align: justify;">Expansões são caracteres, ou uma sequência deles, que expressa outro significado. O intuito disso é facilitar e padronizar comandos.</p>
<p style="text-align: justify;">~: path à home do usuário corrente<br />
~user: path à home do usuário &#8220;user&#8221;<br />
{a,b,c}: presença do caractere &#8220;a&#8221;, &#8220;b&#8221; ou &#8220;c&#8221;. Podem ser usadas strings em vez de simplesmente caracteres.</p>
<p style="text-align: justify;">Exemplos:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ls</span> ~</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ls</span> ~root</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>std<span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #000000; font-weight: bold;">in</span>,out,err<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></div></div>

<h4 style="text-align: justify;"><a name="varexp"></a>5.1. Expansão de Variáveis</h4>
<table width="100%">
<thead>
<tr>
<td>Sintaxe</td>
<td>Expansão</td>
</tr>
</thead>
<tbody>
<tr>
<td>${var:-texto}</td>
<td>Se var não está definida, retorna &#8216;texto&#8217;</td>
</tr>
<tr>
<td>${var:=texto}</td>
<td>Se var não está definida, defina-a com &#8216;texto&#8217;</td>
</tr>
<tr>
<td>${var:?texto}</td>
<td>Se var não está definida, retorna o erro &#8216;texto&#8217;</td>
</tr>
<tr>
<td>${var:+texto}</td>
<td>Se var está definida, retorna &#8216;texto&#8217;, senão retorna o vazio</td>
</tr>
<tr>
<td>${var}</td>
<td>É o mesmo que $var, porém não ambíguo</td>
</tr>
<tr>
<td>${#var}</td>
<td>Retorna o tamanho da string</td>
</tr>
<tr>
<td>${!var}</td>
<td>Executa o conteúdo de $var (igual &#8216;eval \$$var&#8217;)</td>
</tr>
<tr>
<td>${!texto*}</td>
<td>Retorna os nomes de variáveis começadas por &#8216;texto&#8217;</td>
</tr>
<tr>
<td>${var:N}</td>
<td>Retorna o texto a partir da posição &#8216;N&#8217;</td>
</tr>
<tr>
<td>${var:N:tam}</td>
<td>Retorna &#8216;tam&#8217; caracteres a partir da posição &#8216;N&#8217;</td>
</tr>
<tr>
<td>${var#texto}</td>
<td>Corta &#8216;texto&#8217; do início da string</td>
</tr>
<tr>
<td>${var##texto}</td>
<td>Corta &#8216;texto&#8217; do início da string (* guloso)</td>
</tr>
<tr>
<td>${var%texto}</td>
<td>Corta &#8216;texto&#8217; do final da string</td>
</tr>
<tr>
<td>${var%%texto}</td>
<td>Corta &#8216;texto&#8217; do final da string (* guloso)</td>
</tr>
<tr>
<td>${var/texto/novo}</td>
<td>Substitui &#8216;texto&#8217; por &#8216;novo&#8217;, uma vez</td>
</tr>
<tr>
<td>${var//texto/novo}</td>
<td>Substitui &#8216;texto&#8217; por &#8216;novo&#8217;, sempre</td>
</tr>
<tr>
<td>${var/#texto/novo}</td>
<td>Se a string começar com &#8216;texto&#8217;, substitui &#8216;texto&#8217; por &#8216;novo&#8217;</td>
</tr>
<tr>
<td>${var/%texto/novo}</td>
<td>Se a string terminar com &#8216;texto&#8217;, substitui &#8216;texto&#8217; por &#8216;novo&#8217;</td>
</tr>
</tbody>
</table>
<h3 style="text-align: justify;"><a name="params"></a>6. Parâmetros de linha de comando</h3>
<p style="text-align: justify;">Assim como em outras linguagens, é possível passar parâmetros para scripts shell. Para isso, usam-se as variáveis $1, $2, &#8230; A variável $0 contém o comando chamado via linha de comando.</p>
<p style="text-align: justify;">Exemplo:</p>
<p style="text-align: justify;">Crie um arquivo &#8220;test.sh&#8221; com este conteúdo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'$0 = '</span><span style="color: #007800;">$0</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'$1 = '</span><span style="color: #007800;">$1</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'$2 = '</span><span style="color: #007800;">$2</span></pre></div></div>

<p style="text-align: justify;">Veja as saídas das execuções abaixo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ .<span style="color: #000000; font-weight: bold;">/</span>test.sh
<span style="color: #007800;">$0</span> = .<span style="color: #000000; font-weight: bold;">/</span>test.sh
<span style="color: #007800;">$1</span> =
<span style="color: #007800;">$2</span> =
$ .<span style="color: #000000; font-weight: bold;">/</span>test.sh um
<span style="color: #007800;">$0</span> = .<span style="color: #000000; font-weight: bold;">/</span>test.sh
<span style="color: #007800;">$1</span> = um
<span style="color: #007800;">$2</span> =
$ .<span style="color: #000000; font-weight: bold;">/</span>test.sh um dois
<span style="color: #007800;">$0</span> = .<span style="color: #000000; font-weight: bold;">/</span>test.sh
<span style="color: #007800;">$1</span> = um
<span style="color: #007800;">$2</span> = dois</pre></div></div>

<h3 style="text-align: justify;"><a name="funcs"></a>7. Definindo Funções</h3>
<p style="text-align: justify;">Sintaxe:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> nome_da_funcao<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#123;</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></div></div>

<p style="text-align: justify;">Para chamar a função:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">nome_da_funcao
&nbsp;
<span style="color: #666666; font-style: italic;"># caso haja parâmetros</span>
nome_da_funcao param1 param2 ...</pre></div></div>

<p style="text-align: justify;">Exemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> imprime<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#123;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Sou a função '<span style="color: #007800;">${0}</span>'&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Param 1: <span style="color: #007800;">${1}</span>&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Param 2: <span style="color: #007800;">${2}</span>&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Lista de parâmetros: <span style="color: #007800;">${*}</span>&quot;</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
imprime um dois tres quatro</pre></div></div>

<p style="text-align: justify;">Da mesma forma como foram usados $0, $1 etc anteriormente, aqui essas variáveis são usadas para retornar os parâmetros da função. Logo, percebe-se que, dentro de funções, não é possível acessar parâmetros de script, a menos que eles sejam passados por parâmetro para a função.</p>
<h4 style="text-align: justify;"><a name="return"></a>7.1. Retorno de Funções</h4>
<p style="text-align: justify;">Antes de tudo, é preciso diferenciar retorno de função e saída de função. Por exemplo, ao se executar o comando &#8220;cat /etc/passwd&#8221;, a saída é o conteúdo do arquivo; o retorno é 0 (ou outro valor, caso ocorra erro). O retorno de uma função shell é um valor inteiro, normalmente utilizado para definir o status da função, ou seja, se ocorreu algum erro ou e ela foi executada corretamente.</p>
<p style="text-align: justify;">Para obter o valor de retorno de uma função, usa-se a variável &#8220;$?&#8221;. Ela exibe o retorno do último comando executado. Por exemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">passwd</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$?</span></pre></div></div>

<p style="text-align: justify;">Para retornar valor (status) numa função, usa-se o comando return.</p>
<p style="text-align: justify;">Exemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> retorna<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#123;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;sou um valor&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #000000;">42</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #007800;">valor</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span>retorna<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$?</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$valor</span></pre></div></div>

<p style="text-align: justify;">Ao se executar a função, sua saída será &#8220;sou um valor&#8221;; seu retorno será 42.</p>
<p style="text-align: justify;">Em shell, considera-se o valor 0 como execução bem sucedida. Qualquer outro valor representa erro. É por isso que recomenda-se que toda função <code>main</code> de um programa em C retorne o valor 0, desde que não ocorra algum erro.</p>
<h3 style="text-align: justify;"><a name="er"></a>8. Expressões Regulares em Bash</h3>
<p style="text-align: justify;">Expressões regulares em shell podem ser usadas em comparações (if&#8217;s), por exemplo. Em if&#8217;s, usa-se o operador &#8220;=~&#8221; para realizar comparações usando ER&#8217;s:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">s</span>=<span style="color: #ff0000;">&quot;bash&quot;</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$s</span>&quot;</span> =~ ^b <span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">then</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'começa com b'</span>
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>

<h3 style="text-align: justify;"><a name="mathexp"></a>9. Expressões Matemáticas</h3>
<p style="text-align: justify;">O bash não trabalha com expressões matemáticas tão facilmente. Existe o comando &#8220;let&#8221;, que permite realizar expressões matemáticas, mas é mais comum se usar a sintaxe semelhante ao C, utilizando dois parênteses:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #007800;">a</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1</span> + <span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
$ <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>i++<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
$ <span style="color: #007800;">x</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>x<span style="color: #000000; font-weight: bold;">*</span><span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
...</pre></div></div>

<h3 style="text-align: justify;"><a name="bashrc"></a>10. O Arquivo .bashrc</h3>
<p style="text-align: justify;">Na home dos usuários (~), é comum haver o arquivo .bashrc (o ponto no início indica que o arquivo é oculto). Esse arquivo é sempre executado quando se abre um shell. Nele, constam diversas configurações, como definição de variáveis de ambientes, definição de aliases etc. Você pode editar esse arquivo (ou criá-lo, caso não exista):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">vim</span> ~<span style="color: #000000; font-weight: bold;">/</span>.bashrc</pre></div></div>

<p style="text-align: justify;">É possível usar outros editores, não apenas o vim.</p>
<h3 style="text-align: justify;"><a name="alias"></a>11. Aliases (Apelidos)</h3>
<p style="text-align: justify;">Algumas vezes usamos comandos que necessitam de várias opções e argumentos. Para amenizar o trabalho de digitarmos repetidamente estes comandos o bash oferece um recurso chamado alias com o qual podemos definir sinônimos ou &#8220;apelidos&#8221; para um comando. Um alias pode ser definido na linha de comando da seguinte forma:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">alias</span> =</pre></div></div>

<p style="text-align: justify;">Observe que não pode haver espaços em branco antes ou depois do &#8220;=&#8221;.</p>
<p style="text-align: justify;">Esta sintaxe indica que nome é um &#8220;alias&#8221; (apelido) para comando. Toda vez que digitarmos o comando &#8220;nome&#8221;, o bash o substituirá por &#8220;comando&#8221;.</p>
<p style="text-align: justify;">Exemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">alias</span> <span style="color: #007800;">lf</span>=<span style="color: #ff0000;">'ls -F'</span></pre></div></div>

<p style="text-align: justify;">Isso fará o shell executar &#8220;ls -F&#8221; toda vez que usarmos &#8220;lf&#8221; na linha de comando. Ou seja, o que o alias faz na verdade é substituir a palavra &#8220;lf&#8221; por &#8220;ls -F&#8221;. Observe neste exemplo, existe um espaço em branco entre ls e -F. Sempre que houver espaços em branco na definição de um campo, todo o campo deve ser digitado entre aspas simples (&#8216;) ou duplas (&#8220;).</p>
<p style="text-align: justify;">É possível definir aliases em seu .bashrc, para que eles estejam sempre disponíveis na sua sessão.</p>
<h3 style="text-align: justify;"><a name="refs"></a>12. Referências</h3>
<p style="text-align: justify;">Linux Básico:<br />
<a href="http://www.inf.ufpr.br/nicolui/Docs/Livros/LinuxBasico/" target="_blank">http://www.inf.ufpr.br/nicolui/Docs/Livros/LinuxBasico/</a> ou <a href="http://www.inf.ufpr.br/nicolui/Docs/Livros/LinuxBasico.pdf" target="_blank">http://www.inf.ufpr.br/nicolui/Docs/Livros/LinuxBasico.pdf</a></p>
<p style="text-align: justify;">Linux Avançado<br />
<a href="http://www.inf.ufpr.br/nicolui/Docs/Livros/LinuxAvancado.pdf" target="_blank">http://www.inf.ufpr.br/nicolui/Docs/Livros/LinuxAvancado.pdf</a></p>
<p style="text-align: justify;">Canivete Suiço do Shell (Bash)<br />
<a href="http://aurelio.net/shell/canivete/" target="_blank">http://aurelio.net/shell/canivete/</a></p>
<p style="text-align: justify;">Livro Shell Script Profissional (Livro físico):<br />
<a href="http://www.shellscript.com.br/" target="_blank">http://www.shellscript.com.br/</a></p>
<p style="text-align: justify;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p style="text-align: justify;">Originalmente postado no meu blog, em: <a href="http://www.rberaldo.com.br/blog/curso-de-shell-script-modulo-1-scripts-shell-estruturas" target="_blank">http://www.rberaldo.com.br/blog/curso-de-shell-script-modulo-1-scripts-shell-estruturas</a></p>
<p style="text-align: justify;">Siga-me no Twitter: <a href="http://twitter.com/rberaldo" target="_blank">@rberaldo</a><br />
Facebook: <a href="http://www.facebook.com/rberaldo42">http://www.facebook.com/rberaldo42</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2011/12/curso-de-shell-script-modulo-1-scripts-shell-e-suas-estruturas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Loja virtual open source ou solução comercial. Como escolher?</title>
		<link>http://www.profissionaisti.com.br/2011/11/loja-virtual-open-source-ou-solucao-comercial-como-escolher/</link>
		<comments>http://www.profissionaisti.com.br/2011/11/loja-virtual-open-source-ou-solucao-comercial-como-escolher/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 12:23:38 +0000</pubDate>
		<dc:creator>Profissionais TI</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=20349</guid>
		<description><![CDATA[Decidi escrever este artigo, pois sempre me questionam com relação ao uso de soluções open source, por exemplo, Magento e OS Commerce, para montar uma loja virtual. E, vejo o open source como um conceito muito interessante que favorece a colaboração em massa. Na prática, se isso fosse uma verdade absoluta seria o mundo ideal, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Decidi escrever este artigo, pois sempre me questionam com relação ao uso de soluções <a href="http://www.profissionaisti.com.br/category/software-livre/">open source</a>, por exemplo, Magento e OS Commerce, para montar uma <a href="http://www.profissionaisti.com.br/tag/loja-virtual">loja virtual</a>. E, vejo o open source como um conceito muito interessante que favorece a colaboração em massa. Na prática, se isso fosse uma verdade absoluta seria o mundo ideal, mas não é!</p>
<p style="text-align: justify;">Mesmo a solução open source sendo grátis, os códigos-fonte se tornando propriedade da empresa, a comunidade desenvolvendo novas funcionalidades e não existindo um vínculo com uma empresa de desenvolvimento específica, tudo isso pode não ser somente vantagem.</p>
<p style="text-align: justify;">O download do código open source é grátis, mas alguém terá que fazer a implantação, customizar e sustentar essa solução para mantê-la disponível sempre evoluindo e apresentando diferenciais competitivos. Na maioria das vezes, as customizações realizadas modificam as características da solução que não fica mais amigável à instalação de novas funcionalidades disponíveis pela comunidade. A instalação de novas funcionalidades torna-se muito mais trabalhosa e a comunidade não acaba sendo aproveitada como poderia.</p>
<p style="text-align: justify;">A equipe ou empresa contratada para implantar e customizar acaba concentrando todo o conhecimento do projeto, criando um vínculo forte com todas as regras de negócio da plataforma, amarrando-a a essa solução. Por último, ter o código-fonte não é somente uma vantagem. O código-fonte é um ativo da empresa que depreciará, caso não tenha um investimento contínuo em evolução e inovação.</p>
<p style="text-align: justify;">Além disso, é necessária uma infraestrutura adequada para que, na maioria das vezes, faça as empresas fugirem do seu foco principal para cuidar desse tipo de solução, impactando diretamente nos resultados e custos da operação.  Também temos que considerar os problemas de segurança que uma solução de código aberto pode gerar por ter suas falhas muito mais expostas devido ao modelo de negócio.</p>
<p style="text-align: justify;">As soluções open source seguem o mesmo ciclo de vida, com intensidades diferentes, onde temos o entusiasmo dos pioneiros, a adesão em massa que tem a sensação de crescimento acelerado e ganho, a fragmentação em subgrupos que customizam suas soluções e descaracterizam a solução principal e acabam criando um novo ciclo com um projeto próprio. Sendo que, esse ciclo terá um tempo maior de duração quando falamos de “commodities” como um sistema operacional, por exemplo. Consequentemente, uma solução de <a href="http://www.profissionaisti.com.br/tag/loja-virtual">loja virtual</a> que atende varejistas, particularidades dos países onde são implantadas e regras de negócio específicas de cada mercado, não pode ser considerada como um “commodity”.</p>
<p style="text-align: justify;">Dentro desse cenário, uma solução open source se confunde com soluções comercias dentro do mesmo modelo de negócio de posse dos códigos-fonte e, portanto, podemos compará-las as linguagens de programação. Isso quer dizer que uma solução open source poderá concorrer diretamente com uma linguagem de programação e a empresa ou equipe que irá implantar poderá concorrer com as soluções comerciais do mercado, cada uma com seu modelo de negócio.</p>
<p style="text-align: justify;">Diferente do modelo Open Source, soluções no modelo SaaS (Software as a Service) estão se tornando cada vez mais utilizadas. Esse modelo garante ao lojista foco no que realmente é importante para sua operação: “vender e entregar”. Em breve farei um artigo trazendo mais informações do modelo SaaS.</p>
<p style="text-align: justify;">Para concluir é importante ressaltar que o planejamento de uma operação de comércio eletrônico é crucial para o seu sucesso e a plataforma é mais um dos pilares de sustentação. Não existe fórmula matemática para escolher uma ou outra solução e escolher errado pode influenciar diretamente em seus resultados. Portanto, não se deixe convencer pelos anúncios de loja “GRÁTIS”, já que vimos que isso não existe.</p>
<p style="text-align: justify;"><em><strong>Por Alexandre Soncini</strong> &#8211; Diretor de Marketing e Vendas da VTEX, empresa líder em tecnologia para o comércio eletrônico.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2011/11/loja-virtual-open-source-ou-solucao-comercial-como-escolher/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como se preparar para certificação LPI</title>
		<link>http://www.profissionaisti.com.br/2011/11/como-se-preparar-para-certificacao-lpi/</link>
		<comments>http://www.profissionaisti.com.br/2011/11/como-se-preparar-para-certificacao-lpi/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 16:19:01 +0000</pubDate>
		<dc:creator>Marta Vuelma</dc:creator>
				<category><![CDATA[Carreira]]></category>
		<category><![CDATA[Certificação]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[LPI]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=20082</guid>
		<description><![CDATA[Falando sobre certificação Se você parou para ler este texto eu suponho que: deseja obter a certificação LPI está tentando entender por que se fala tanto em certificação (principalmente Linux) já tem esta certificação e está tentando obter um nível mais elevado Mesmo que você não se enquadre em nenhuma das situações acima, de alguma [...]]]></description>
			<content:encoded><![CDATA[<h3 style="text-align: justify;">Falando sobre certificação</h3>
<p style="text-align: justify;">Se você parou para ler este texto eu suponho que:</p>
<ul style="text-align: justify;">
<li>deseja obter a certificação LPI</li>
<li>está tentando entender por que se fala tanto em certificação (principalmente Linux)</li>
<li>já tem esta certificação e está tentando obter um nível mais elevado</li>
</ul>
<p style="text-align: justify;">Mesmo que você não se enquadre em nenhuma das situações acima, de alguma maneira veio parar aqui, então espero que tire proveito deste documento. O texto é longo mas realmente existem muitos assuntos a tratar. Boa leitura.<img title="More..." src="http://martavuelma.wordpress.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<p style="text-align: justify;">Antes de mais nada, preciso fazer alguns esclarecimentos.</p>
<p style="text-align: justify;">O que vou expressar aqui são comentários, experiências pessoais, sugestões, conselhos, dicas e ideias que eu usei durante a minha preparação para LPI. São o resultado de um longo tempo de estudo e preparação que poderão abreviar seu caminho para o estudo, já indicando os materiais mais adequados e outros “macetes”. No entanto, nada do que eu digo aqui é “uma verdade incontestável”. Não existem receitas prontas para levá-lo à certificação. Nem nada que alguém disser poderá poupá-lo de muito estudo e prática dos assuntos aprendidos. Por isso, seja realista: se sua intenção é certificar-se, comece a estudar já! E saiba que terá de encarar o processo de preparação com seriedade e disciplina. Se não fizer isso não chegará a lugar algum.</p>
<h3 style="text-align: justify;">Por que as certificações de TI são tão valorizadas?</h3>
<p style="text-align: justify;">Dizer que o mercado de TI é dinâmico, vasto e complexo já virou clichê. Já faz parte da cartilha de qualquer profissional da área. O que realmente tira o sono destas pessoas é uma pergunta simples: como posso provar que realmente tenho conhecimento na área onde estou ou pretendo trabalhar? Toda vez que uma empresa contrata alguém, independente do que está escrito no currículo ou da experiência que este alguém afirma ter, o empregador está assumindo um risco. É possível que tudo dê certo entre os envolvidos neste binômio. Mas pode não ser assim.</p>
<p style="text-align: justify;">Certificação tem a ver com “aumentar a chance de que o profissional corresponda à expectativa técnica da empresa”. Sabemos que o sucesso na carreira depende também de muitos outros fatores pessoais, objetivos, da empresa, etc. A grande questão é que se somos capazes de provar que dominamos um assunto, diminuímos as variáveis ligadas ao insucesso.</p>
<p style="text-align: justify;">E é justamente por isso que a esmagadora maioria de fabricantes de software ou instituições relacionadas criaram as certificações. O objetivo é permitir ao profissional provar o que realmente sabe.</p>
<p style="text-align: justify;">Certificação não é garantia de emprego, fama e retorno financeiro. É um requisito muito desejável (para não dizer obrigatório) que pode diferenciá-lo de tantos outros que estejam competindo pela mesma vaga. É um forte apoio na hora da decisão de quem vai ser contratado. Considere que você é um empresário e está diante de um grupo de técnicos com currículos e experiências muito semelhantes. Mas um deles possui certificação técnica voltada para a atividade que ele irá desenvolver. Quem você contrataria?</p>
<h3 style="text-align: justify;">O que é a LPI?</h3>
<p style="text-align: justify;">O texto do tópico a seguir foi extraído de: <a href="http://www.lpibrasil.com.br/empresa/o_que.php" target="_blank">http://www.lpibrasil.com.br/empresa/o_que.php</a></p>
<p style="text-align: justify;">O <em>Linux Professional Institute</em> &#8211; LPI &#8211; é uma organização sem fins lucrativos, sediada na Califórnia &#8211; USA e constituída em 1999 pela comunidade Linux, e, desde então, desenvolve de forma acessível um programa de certificação em sistemas GNU/Linux reconhecido internacionalmente por empresas, empregadores e profissionais de TI.</p>
<p style="text-align: justify;">A certificação LPI está entre as 10 mais procuradas do mundo por profissionais da área de Tecnologia da Informação, segundo o site Certcities.com, especializado no assunto.</p>
<p style="text-align: justify;">Certificar-se é uma forma de atestar conhecimentos profissionais, ou seja, validar a eficiência de alguém em determinado assunto.<br />
A principal vantagem da LPI sobre outras certificações Linux é a neutralidade de distribuição, pois as provas do LPI são baseadas no <em>Linux Standard Base</em>, um conjunto de normas que mantém a compatibilidade entre as diferentes versões e distribuições do sistema operacional. A certificação LPI é, portanto, independente da distribuição.</p>
<p style="text-align: justify;">O LPI é reconhecido como a primeira organização do mundo a defender e ajudar o uso profissional do Linux, <em>Open Source e <a href="http://www.profissionaisti.com.br/category/software-livre/">Free Software</a></em>. Os exames de certificação do LPI são aplicados em milhares de lugares no mundo, em vários idiomas e com o apoio de empresários, fabricantes e instrutores.</p>
<p style="text-align: justify;">O programa de exames do LPI é aplicado mundialmente por intermédio da Pearson VUE e da Thomson Prometric em seus centros de certificação e está também disponível na forma de exames tradicionais, aplicados em papel.</p>
<h3 style="text-align: justify;">Por onde começar?</h3>
<p style="text-align: justify;">Antes de mais nada, decidir por obter uma certificação significa decidir por adicionar um diferencial ao seu currículo. E Isso requer dedicação e responsabilidade. Sendo assim, estruturar e seguir um plano de estudos é fundamental. Dentro deste plano deve estar definido quando e onde estudar, horários, materiais que serão utilizados, etc. Vou falar em mais detalhes sobre o material mais a frente neste documento.</p>
<p style="text-align: justify;">Considero necessário dizer neste momento que quando estamos nos preparando para um processo como este, estamos também nos aprimorando em nossa área de atuação e adquirindo um grande volume de conhecimento. O que quero dizer com isso é que obter um título de certificação é uma oportunidade de ampliar muito nosso horizonte e não só de passar em uma prova.</p>
<p style="text-align: justify;"><strong>LPI-ID</strong></p>
<p style="text-align: justify;">Uma etapa importante da preparação para a LPI é a criação do LPI-ID. Esse número é que identificará o candidato todas as vezes que for necessário agendar uma prova ou acessar o site da LPI para verificar o status ou comprovar sua certificação. O LPI-ID pode ser criado aqui: <a href="https://cs.lpi.org/caf/Xamman/register" target="_blank">https://cs.lpi.org/caf/Xamman/register</a>.</p>
<h3 style="text-align: justify;">Onde fazer as provas</h3>
<p style="text-align: justify;">Após isso é importante localizar um centro autorizado VUE ou Prometric na sua cidade ou arredores onde serão realizadas as provas. Nos endereços a seguir você pode pesquisar pelo melhor local: <a href="http://www.vue.com/" target="_blank">http://www.vue.com/</a> e <a href="http://www.prometric.com/" target="_blank">http://www.prometric.com</a>.</p>
<p style="text-align: justify;">No Brasil, a LPI também oferece oportunidades especiais de realização da prova em eventos específicos, como é o caso do Forum Internacional do Software Livre em Porto Alegre (<a href="http://softwarelivre.org/fisl11" target="_blank">http://softwarelivre.org/fisl11</a>).</p>
<p style="text-align: justify;">O agendamento das provas se dá diretamente no site da VUE ou Prometric. Para fazer o pagamento é necessário possuir um cartão de crédito internacional.</p>
<h3 style="text-align: justify;">Organização dos níveis</h3>
<p style="text-align: justify;">A LPI dispõe atualmente de 3 níveis de certificação, conforme abaixo. Para atingir o nível 2 é necessário possui o nível 1. O mesmo se aplica para o nível 3 que requer os 2 anteriores.</p>
<p style="text-align: justify;">A certificação nível 1 é voltada para uso, configuração e manutenção de uma máquina local conectada à rede. Para obter o LPIC-1 é necessário realizar 2 provas (117-101 e 117-102). Cada prova custa US$ 160,00.</p>
<p style="text-align: justify;">A certificação nível 2 é focada na manutenção e configuração de ambientes de servidor. Para obter o LPIC-2 também é preciso atingir os objetivos em 2 provas (117-201 e 117-202) de igual valor das anteriores.</p>
<p style="text-align: justify;">A certificação de nível 3 é o topo da pirâmide, conhecida como Senior Level Linux Professional . Para obter o LPIC-3 é necessário realizar uma prova base (117-301 – Core, US$ 260,00) e uma ou mais provas de especialidade (LPI-302 &#8211; Mixed Environment, LPI-303 – Security, LPI 304 &#8211; Virtualization and High Availability), cada uma pelo mesmo valor da primeira deste nível. Em breve espera-se que seja divulgada a nova prova LPI 305 &#8211; Mail and Messaging Services. Também existe uma proposta de instituir a LPI-306 – Web Services, mas ainda não há nada definido para esta última.</p>
<h3 style="text-align: justify;">Aplicação das provas</h3>
<p style="text-align: justify;">Para os candidatos que realizam as provas em centros autorizados VUE ou Prometric, as mesmas são realizadas no computador e o resultado é conhecido no momento da finalização do exame. As provas podem ter 60 questões para serem respondidas em 90 minutos ou (como ocorreu comigo na 117-201) 80 questões para 120 minutos. Ao responder cada questão é possível marcar para revisão no final da prova assim como é possível voltar para questões anteriores durante o andamento da prova.</p>
<p style="text-align: justify;">Em situações especiais também são realizadas provas escritas (como no FISL). Mesmo para as pessoas que sentem-se mais à vontade com este tipo de avaliação, o tempo para se conhecer o resultado pode ser desestimulante. Pode levar de 15 a 45 dias para chegar o resultado.</p>
<p style="text-align: justify;">As provas do nível 1 estão disponíveis em português ou inglês. Do nível 2 em diante, somente inglês está disponível.</p>
<p style="text-align: justify;">Existem questões com uma única resposta certa, várias respostas certas, completar e digitar comandos. Sempre que existe mais de uma resposta certa, isso é indicado na questão.</p>
<p style="text-align: justify;">O score mínimo necessário para ser aprovado é 500 pontos. O valor total da prova é 800. As questões tem diferentes pesos conforme o tópico a que se relacionam. Isso tudo pode ser consultado no link informado mais adiante.</p>
<h3 style="text-align: justify;">Material de estudo</h3>
<p style="text-align: justify;">Muito bem, você já decidiu que vai se dedicar ao LPI-1 e trilhar este longo mas recompensador caminho da <a href="http://www.profissionaisti.com.br/certificacoes/">certificação</a>. A próxima dúvida óbvia é por onde começar a estudar. É neste momento que é preciso ter em mente que não existe nenhum material que contenha absolutamente tudo que é preciso estudar para passar nas provas.</p>
<p style="text-align: justify;">Se você espera comprar um livro de 500 ou 1000 páginas que será seu único material de estudo, recomendo rever seus conceitos. É comum encontrarmos em fóruns discussões sem fim sobre este ou aquele título. Críticas muito positivas ou terrivelmente negativas sobre este ou aquele autor. Esqueça isso! O programa de estudo para a LPI pode ser consultado aqui: <a href="http://www.lpi.org/eng/certification" target="_blank">http://www.lpi.org/eng/certification</a>.</p>
<p style="text-align: justify;">Existem ótimos autores que publicaram livros que representam excelentes roteiros de estudo. Alguns mais completos, outros menos. Mas nenhum deles é definitivo e deve ser acompanhado de outras fontes e muita prática dos tópicos aprendidos.</p>
<p style="text-align: justify;">Possui um computador com Linux para testar os comandos é muito importante. A maioria de nós aprende e fixa muito mais rapidamente aquilo que executa. Também existem aqueles (como eu) que precisam escrever, fazer resumos, desenhos, etc., para gravar melhor. A escolha do método de estudo varia de pessoa para pessoa. O imprescindível é identificar o seu método e praticá-lo.</p>
<p style="text-align: justify;">Quando você for utilizar material disponível na Internet é preciso ter cuidado se o mesmo está atualizado de acordo com as provas. Por exemplo, as provas atuais são focadas no kernel 2.6.</p>
<p style="text-align: justify;">O mesmo cuidado acima se aplica aos livros. Como o programa da LPI foi reformulado em 2009, é preciso observar a data de publicação dos livros para que atendam este novo programa.</p>
<h3 style="text-align: justify;">Sugestão de material</h3>
<p style="text-align: justify;">Levando em consideração o que foi dito acima, segue uma breve lista de sugestões de material para estudo. Lembre-se: escolha o que lhe for mais interessante e complemente com outras fontes de material alternativo e atualizado.</p>
<p style="text-align: justify;"><strong>Livros específicos para certificação</strong></p>
<ul style="text-align: justify;">
<li>Certificação Linux – Uirá Ribeiro – 2ª Edição &#8211; <a href="http://www.certificacaolinux.com.br/" target="_blank">http://www.certificacaolinux.com.br/ </a>(Neste link também existe um simulado para as provas do nível 1 e um mapa mental muito úteis.)</li>
<li>Certificação LPI-1 – Luciano Siqueira – 3ª Edição &#8211; <a href="http://www.linuxnewmedia.com.br/shopping/livro/certificacaeo_lpi_1_3_edicaeo" target="_blank">http://www.linuxnewmedia.com.br/shopping/livro/certificacaeo_lpi_1_3_edicaeo</a></li>
<li>Certificação LPI-2 – Luciano Siqueira – 2ª Edição &#8211; <a href="http://www.linuxnewmedia.com.br/shopping/livro/certificacaeo_lpi_2_2a_edicaeo">http://www.linuxnewmedia.com.br/shopping/livro/certificacaeo_lpi_2_2a_edicaeo</a></li>
<li>LPI Linux Certification in a Nutshell &#8211; Adam Haeder, Stephen Addison Schneiter, Bruno Gomes Pessanha, James Stanger &#8211; 3<sup>rd</sup> Edition &#8211; <a href="http://oreilly.com/catalog/9780596804886/">http://oreilly.com/catalog/9780596804886/</a></li>
<li>LPIC-1: Linux Professional Institute Certification Study Guide: (Exams 101 and 102) &#8211; Roderick W. Smith – 2ª Edition &#8211; <a href="http://www.sybex.com/WileyCDA/SybexTitle/LPIC-1-Linux-Professional-Institute-Certification-Study-Guide-Exams-101-and-102-2nd-Edition.productCd-0470404833.html">http://www.sybex.com/WileyCDA/SybexTitle/LPIC-1-Linux-Professional-Institute-Certification-Study-Guide-Exams-101-and-102-2nd-Edition.productCd-0470404833.html</a></li>
</ul>
<p style="text-align: justify;"><strong>Outros títulos complementares e recomendados</strong></p>
<ul style="text-align: justify;">
<li>Linux: o Guia Essencial &#8211; Siever, Weber, Figgins, Love &amp; Robbins – 5º Edição</li>
<li>Linux &#8211; Guia do Administrador do Sistema – Rubem Ferreira &#8211; 2ª Edição</li>
<li>Manual Completo do Linux &#8211; Guia do Administrador &#8211; Evi Nemeth e outros &#8211; 2ª Edição</li>
</ul>
<p style="text-align: justify;"><strong>Simulados</strong></p>
<ul style="text-align: justify;">
<li><a href="http://www.testking.com/" target="_blank">http://www.testking.com</a></li>
<li><a href="http://armbrust.eti.br/">http://armbrust.eti.br/</a></li>
<li><a href="http://www.stato.blog.br/wordpress/simulados/open/lpi201/index.html">http://www.stato.blog.br/wordpress/simulados/open/lpi201/index.html</a></li>
<li><a href="http://www.penguintutor.com/certification.php" target="_blank">http://www.penguintutor.com/certification.php</a></li>
</ul>
<p style="text-align: justify;"><strong>Sites recomendados</strong></p>
<ul style="text-align: justify;">
<li><a href="http://www.vivaolinux.com.br/">http://www.vivaolinux.com.br</a></li>
<li><a href="http://br-linux.org/">http://br-linux.org/</a></li>
<li><a href="http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-map/index.html">http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-map/index.html</a></li>
<li><a href="http://www.guiafoca.org/">http://www.guiafoca.org/</a></li>
<li><a href="http://www.linuxquestions.org/questions/">http://www.linuxquestions.org/questions/</a></li>
<li><a href="http://searchenterpriselinux.techtarget.com/">http://searchenterpriselinux.techtarget.com/</a></li>
<li><a title="Site do Prof. Uirá Ribeiro sobre Certificação LPI" href="http://www.certificacaolinux.com.br/certificacao.htm" target="_blank">http://www.certificacaolinux.com.br/certificacao.htm</a></li>
</ul>
<h3 style="text-align: justify;">Considerações finais</h3>
<p style="text-align: justify;">A intenção deste documento é auxiliar àqueles que pretendem se certificar em <a href="http://www.profissionaisti.com.br/tag/linux">Linux</a>. Tenho certeza que muitos terão sugestões e inúmeras perguntas vão surgir. Fique à vontade para perguntar e sugerir. Com isso poderei tornar as informações aqui contidas mais úteis e eficazes para todos. Participe e auxilie no aprimoramento deste artigo.</p>
<p style="text-align: justify;">Para finalizar, agradeço a todos os alunos e amigos que já me perguntaram alguma coisa sobre LPI. Foram as perguntas de vocês que me levaram a escrever este texto.</p>
<p style="text-align: justify;">Bons estudos e boa prova!<br />
Marta Vuelma &#8211; <a href="http://twitter.com/MartaVuelma" target="_blank">@MartaVuelma</a></p>
<p style="text-align: justify;"><em>Artigo publicado em: Meu Blog (<a href="http://martavuelma.wordpress.com" target="_blank">martavuelma.wordpress.com</a>) e <a href="http://www.vivaolinux.com.br" target="_blank">Viva o Linux</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2011/11/como-se-preparar-para-certificacao-lpi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Software livre na educação</title>
		<link>http://www.profissionaisti.com.br/2011/10/software-livre-na-educacao/</link>
		<comments>http://www.profissionaisti.com.br/2011/10/software-livre-na-educacao/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 13:04:46 +0000</pubDate>
		<dc:creator>rosa.cris</dc:creator>
				<category><![CDATA[Acadêmicos]]></category>
		<category><![CDATA[Educação]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[Tendências]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=19981</guid>
		<description><![CDATA[Os alunos estão mais exigentes e os professores precisam se adequar a essa nova realidade. Como ferramenta para auxiliar o professor o computador vem sendo introduzido na educação, mas devido ao custo alto dos softwares proprietários, algumas escolas não tem conseguido atingir esse objetivo. Como alternativa ao custo alto do software proprietário esse trabalho apresenta [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Os alunos estão mais exigentes e os professores precisam se adequar a essa nova realidade. Como ferramenta para auxiliar o professor o computador vem sendo introduzido na educação, mas devido ao custo alto dos <em>softwares</em> proprietários, algumas escolas não tem conseguido atingir esse objetivo. Como alternativa ao custo alto do <em>software</em> proprietário esse trabalho apresenta <em>softwares</em> livres educacionais que facilitam a inclusão do computador no meio educacional.</p>
<p style="text-align: justify;">Chamar a atenção de alunos que tem acesso o tempo todo a diversos tipos de informação não é fácil. O modelo educacional onde o professor fala e o aluno ouve e aceita não funciona mais. Hoje, o papel do professor é o de aproveitar o conhecimento já adquirido pelo aluno e mostrar-lhe o caminho para aprimorar e aumentar seu conhecimento.</p>
<p style="text-align: justify;">O computador tornou-se indispensável no meio educacional e desde que utilizado de forma planejada, tem se apresentado a favor de uma educação mais dinâmica, trazendo de volta o interesse do aluno em aprender. O uso de tecnologias possibilita ao professor uma diversidade maior de atividades fazendo com que o aluno desenvolva melhor algumas habilidades como autonomia, resolução de problemas de forma mais próxima da sua realidade, organização de suas informações, habilidade investigativa, entre outras dependendo da faixa etária de cada aluno. Um dos inviabilizadores da implementação do computador nas escolas é a falta de recursos financeiros. Os <em>softwares</em> proprietários encarecem e muito o preço final do computador devido à cobrança de licenças para sua utilização. Na contra mão do problema tem-se os <em>softwares</em> livres que são de acesso gratuito.</p>
<p style="text-align: justify;">O uso do <em>software</em> livre, hoje em dia oferecidos com grande diversidade em língua portuguesa, dispensa gasto com licenças proprietárias e assim, como salienta Silveira (2003 p.41), ao invés de sermos eternos pagadores de <em>royalties</em>, &#8220;tais recursos poderiam ser canalizados para outros fins, como a compra de <em>hardware</em> ou empregados na formação, treinamento e educação digital&#8221;, pois tão importante quanto garantir o acesso as TICs (Tecnologia da Informação e Comunicação) é capacitar as pessoas, em especial, as comunidades mais desfavorecidas para a utilização da tecnologia em favor do exercício da cidadania.</p>
<p style="text-align: justify;">O processo ensino-aprendizagem se dá na interação entre professor e aluno, aluno e aluno e de ambos com o mundo e seus acontecimentos provocando mudanças no indivíduo, podendo ser permanentes ou não. Aprender é o processo de adquirir conhecimento, valores, habilidades e essencialmente do desenvolvimento da capacidade de pensar. Devemos nos preocupar com um sistema educativo muito padronizado, pois este pode produzir sujeitos muito acomodados, desvalorizando a autonomia da criatividade.</p>
<p style="text-align: justify;">Com a mudança do paradigma educacional, aprender tem o significado de ir além da instrução direta podendo acontecer em ambientes virtuais criativos e mais chamativos para o indivíduo. O uso de novas tecnologias como o computador, tem facilitado a vida de professores que já aceitaram essa nova realidade, proporcionando interação e um ensino mais eficaz para a realidade atual.</p>
<p style="text-align: justify;">Os primeiros experimentos do uso do computador na educação começaram na década de 50 logo depois do início de sua comercialização. Pouco tempo depois, Burrhus Frederic Skinner (1904-1990) criou a Máquina de Ensinar. Em 1970 Seymour Papert desenvolveu a Linguagem de Programação Logo. Esses dois experimentos propiciavam ao aluno deixar de lado a preocupação no certo e errado, dando mais importância ao processo como as coisas acontecem e com a solução para os problemas apresentados, deixando o sinônimo de erro como punição, intimidação e frustração de lado, fazendo com que cada aluno aprendesse no seu ritmo sem desestimular aqueles com um pouco mais de dificuldade.</p>
<p style="text-align: justify;">Muitos foram os experimentos e desde os primeiros os professores foram temerosos em relação a adotar essa nova ferramenta que deixa de lado a imagem do professor como detentor do saber e desterritorializa a instituição escolar. As novas tecnologias são importantes, pois ampliam o conceito de aula, espaço e tempo e de comunicação audiovisual, estabelecendo novas referências em relação ao presencial e o virtual, tomando o devido cuidado para que o computador não seja considerado apenas mais um aparato de alto custo não proporcionando uma aprendizagem significativa para o aluno. Cabe lembrar que o computador não é a solução para os diversos problemas da educação e sim, um facilitador, um motivador ao aprendizado, uma ferramenta que veio para somar, através de uma linguagem com a qual os estudantes estão familiarizados.</p>
<p style="text-align: justify;">Com o passar dos anos, a visão dos professores em relação ao uso do computador na educação mudou, os professores estão mais abertos a essa nova situação e os alunos estão mais colaborativos. O uso do computador na escola deve vir acompanhado da reflexão a respeito da necessidade de mudança na forma de geração da aprendizagem.</p>
<p style="text-align: justify;">Experiências realizadas em países onde as escolas já oferecem aos seus estudantes a tecnologia como facilitadora do ensino indica que o computador graças à internet, tem uma grande capacidade de formar redes, efeito imprescindível também fora do ambiente escolar. Tudo isso incentiva o aluno a desenvolver rapidez de raciocínio, ser humano multitarefa, tomada de decisão de forma mais eficiente, abrir novas dimensões intelectuais e, principalmente desenvolver o trabalho em equipe tão exigido atualmente fora do ambiente escolar.</p>
<p style="text-align: justify;">Nada como ensinar geografia de forma que o aluno possa “sobrevoar” diversos relevos e vegetações do planeta e executar experiências com substâncias tóxicas sem o perigo de explodir o laboratório. Tudo isso o computador propicia a alunos e professores através dos <em>softwares</em> educacionais.</p>
<p style="text-align: justify;">Podem ser considerados <em>softwares</em> educacionais aqueles que foram projetados com base em uma metodologia que os contextualiza no processo de ensino-aprendizagem. O primeiro indício do uso de um <em>software</em> educativo foi em uma máquina para corrigir testes de múltipla escolha criada por Dr. Sidney Pressey em 1924. Nessa máquina, o módulo era apresentado o conteúdo e no final, o aluno deveria responder uma questão em um espaço em branco ou escolher uma resposta correta entre diversas alternativas apresentadas. Se a resposta estivesse correta o aluno passaria para o próximo módulo, caso contrário, o programa forneceria a resposta correta ou o aluno poderia ser convidado a rever o módulo com o objetivo de remediar o processo de ensino. Empresas no início dos anos 60 investiram muito na produção de softwares educacionais com a ideia de revolucionar a educação. O problema é que os computadores nessa época ainda eram muito caros para que as escolas os adquirissem. A disseminação do software educacional somente aconteceu com a chegada dos microcomputadores.</p>
<p style="text-align: justify;">O <em>software</em> educacional somente poderá contribuir como facilitador do processo de ensino-aprendizagem, se alguns fatores forem obedecidos a rigor como metodologia empregada no <em>software</em>, qualidade, se atendem as necessidades e a faixa etária indicativa. Os testes também são muito importantes, pois não devemos simplesmente escolher um software de qualquer tipo que seja somente pela embalagem. O professor deve também se preocupar com o contexto onde este <em>software </em>será utilizado.</p>
<p style="text-align: justify;">O <em>software</em> educacional pode apresentar várias vantagens como aumentar a interação do aluno com o conteúdo apresentado, permitir a individualização na aprendizagem do aluno, estimular e promove a autoestima no aluno, apresentar lições de modo criativo, atrativo e integrado, proporcionar retroalimentação, controle e avaliação imediatos da aprendizagem.</p>
<p style="text-align: justify;">Como principal e mais problemática desvantagem encontramos o custo para aquisição do <em>software</em> proprietário, que são produtos criados por <a href="http://www.profissionaisti.com.br/category/desenvolvimento/">desenvolvedores</a> ou empresas que detêm os direitos sobre o produto onde a cópia, modificação ou redistribuição são de alguma forma proibida pelo seu desenvolvedor ou distribuidor. Para que os itens citados sejam permitidos, faz-se necessário a aquisição de uma licença de alto custo, principal inviabilizador do uso do <em>software</em> educacional. Todos estes custos com o <em>software</em> proprietário acabam inviabilizando o uso do <em>software</em> educacional. Uma alternativa aos <em>softwares</em> proprietários seriam os <em>softwares</em> livres que tem como principal vantagem o custo quase zero.</p>
<p style="text-align: justify;"><strong> </strong></p>
<p style="text-align: justify;">O <em>Software </em>Livre é todo aquele que oferece ao seu usuário a liberdade de utilizá-lo para seu proveito, executando os programas para quaisquer propósitos, copiando, distribuindo, estudando seu funcionamento, modificando, aperfeiçoando e customizando seu código fonte, sem precisar pedir autorização para outrem, de modo que toda a sociedade se beneficie (LAMAS, 2004).</p>
<p style="text-align: justify;">A maior vantagem do uso do <a href="http://www.profissionaisti.com.br/category/software-livre/"><em>software</em> livre</a> na educação é que se faz desnecessário investir em licenças para sua aquisição, futuras atualizações e customizações. Com o investimento que se faz para montar um laboratório de informática com equipamentos utilizando software proprietário é possível montar dois laboratórios de informática. Na educação, o dinheiro economizado com a não atualização forçada do <em>hardware</em> pode ser aplicado de outra forma como, por exemplo, na capacitação dos professores. Máquinas que seriam consideradas obsoletas para se utilizar <em>software</em> proprietário são usadas por usuários de software livre, pois este tipo de software pode ser customizado para um hardware considerado ultrapassado.</p>
<p style="text-align: justify;">Para Silveira e Cassino (2003), o <em>Software</em> Livre representa uma opção pela criação, pela colaboração e pela independência tecnológica e cultural, uma vez que é baseado no princípio do compartilhamento do conhecimento e na solidariedade praticada pela inteligência coletiva conectada na rede mundial de computadores.</p>
<p style="text-align: justify;">Como exemplos de <em>softwares</em> livres educacionais podemos citar o <strong>Edubuntu</strong>, distribuição Linux desenvolvida pela Canonical Ltda. baseada no sistema operacional Ubuntu especificamente para ambientes escolares, o <strong>Gcompris</strong>, coletânea com 80 atividades muito atraente para as crianças, o <strong>KBruch </strong>que apresenta as operações matemáticas de forma bem colorida, o <strong>TkGeomap </strong>que mostra dados geográficos. A lista é muito variada e com certeza dificilmente deixará o professor na mão. A educação deve favorecer a ética e a formação da cidadania. Independentemente de escola pública ou privada. A educação não é mercadoria e não deve ser tratada como tal.</p>
<p style="text-align: justify;"><strong>Referências</strong></p>
<p style="text-align: justify;">LAMAS, M. Software livre ao seu alcance. Rio de Janeiro: Beto Brito, 2004.<br />
SILVEIRA, S. A.; CASSINO (Org.). Software Livre e Inclusão Digital. São Paulo: Conrad Editora do Brasil, 2003.<br />
SILVEIRA, S. A.; CASSINO (Org.). Software Livre e Inclusão Digital. São Paulo: Conrad Editora do Brasil, 2003.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2011/10/software-livre-na-educacao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plataformas e-commerce &#8211; Um pouco sobre Opensource</title>
		<link>http://www.profissionaisti.com.br/2011/09/plataformas-e-commerce-um-pouco-sobre-opensource/</link>
		<comments>http://www.profissionaisti.com.br/2011/09/plataformas-e-commerce-um-pouco-sobre-opensource/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 16:13:49 +0000</pubDate>
		<dc:creator>Luiz Castro Junior</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Mercado]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=19510</guid>
		<description><![CDATA[Dia 19/09 via Twitter o leitor @andreybenhur entrou em contato com o @profissionaisti e deu uma sugestão para um artigo com tema &#8211; Plataformas OpenSource e-commerce. Então, vamos lá @andreybenhur e os demais leitores que possam fazer bom uso dessas informações. Como o Andrey não deu nenhuma especificação do que ele tem em mente para [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Dia 19/09 via Twitter o leitor @andreybenhur entrou em contato com o @profissionaisti e deu uma sugestão para um artigo com tema &#8211; Plataformas OpenSource e-commerce.</p>
<p style="text-align: justify;">Então, vamos lá @<a href="http://twitter.com/andreybenhur" target="_blank">andreybenhur</a> e os demais leitores que possam fazer bom uso dessas informações. Como o Andrey não deu nenhuma especificação do que ele tem em mente para essa plataforma e-commerce eu vou tentar relacionar as características das plataformas que eu considero boas e também de algumas que ainda estão em uso. Mas fugindo um pouco do comum &#8211; minha escolha sempre varia entre PrestaShop e Magento, podendo também &#8211; dependendo do caso &#8211; utilizar plugins para WordPress.</p>
<p style="text-align: justify;">Primeiro gostaria de falar um pouco sobre <a href="http://www.profissionaisti.com.br/category/seguranca/">segurança</a> para lojas virtuais que estão utilizando plataformas opensource.</p>
<p style="text-align: justify;">Completamente segura nem mesmo plataformas exclusivas, em todas existem falhas de sistema, vulnerabilidades de host e outros. Portanto, logicamente que o fato de plataformas opensource serem de código livre (por isso o nome) facilita o conhecimento da estrutura interna por parte de Crackers e esses por sua vez tendem a agir de má fé, mas isso é risco que todos temos. Quem não lembra da Locaweb que teve alguns servidores fora do ar depois de uma invasão? O meu site que era hospedado lá ficou fora do ar quase 35 horas. Não existe perfeição, o que existe é prevenção, a <a href="http://www.profissionaisti.com.br/category/qualidade/">qualidade</a> de quem vai programar e instalar todo o sistema, como também do host que será escolhido &#8211; estes são pontos muito importantes e podem amenizar os riscos existentes.</p>
<p style="text-align: justify;">Removido o mito de segurança nas plataformas opensource, que alguns tentam espalhar sem base como feito aqui, e exemplificado de forma bem simples sobre o caso Locaweb, quero então falar um pouco a respeito das características de cada uma. Lembrando que usei a Locaweb como exemplo somente pelo fato de ser considerada uma das maiores empresas de hospedagem, o que prova que mesmo com toda a estrutura dessa empresa, nem mesmo ela está livre de problemas de segurança.</p>
<p style="text-align: justify;">Enquanto tivermos pessoas tentando ganhar dinheiro ou fazer um trabalho honesto teremos também pessoas desonestas, isso é a vida e não tem como negar.</p>
<p style="text-align: justify;">Vamos às plataformas.</p>
<h3 style="text-align: justify;">Goodsie &#8211; <a href="http://goodsie.com/" target="_blank">goodsie.com</a></h3>
<p style="text-align: justify;">Uma plataforma simples, baseada na simplicidade e facilidade da gestão. A Goodsie permite que você crie sem experiência em programação uma loja em poucos minutos, com um visual bem interessante por sinal.</p>
<p style="text-align: justify;">Não é free, ela tem um custo mensal de $15.00, portanto, para quem não espera muito de uma plataforma e não quer perder tempo essa pode ser uma opção. Não indico de forma alguma para quem vai ter alguns bons pedidos durante o mês, portanto, para e-commerce&#8217;s pequenos (bem pequenos) é uma boa opção. Talvez um uso indicado seria para profissionais liberais que seus produtos possam ser precificados antecipadamente.</p>
<p style="text-align: justify;">Realmente algo bem interessante, uma proposta estilo &#8220;faça você mesmo&#8221; e com facilidade.</p>
<p style="text-align: justify;">Já vem integrada com Paypal como qualquer outra plataforma, já que esse sistema de pagamento on-line é o mais famoso mundialmente.</p>
<p style="text-align: justify;">Você pode também fazer um teste por um período de 30 dias sem custo - <a href="http://goodsie.com" target="_blank"></a></p>
<h3 style="text-align: justify;">VirtueMart &#8211; <a href="http://www.virtuemart.net/" target="_blank">virtuemart.net</a></h3>
<p style="text-align: justify;">Para quem gosta de trabalhar com Joomla essa é uma ótima opção para tornar o Joomla em um e-commerce.</p>
<p style="text-align: justify;">Instalação fácil e rápido, pois trata-se e uma extensão da plataforma, ou seja um plugin como qualquer outro, porém com o poder de criar uma loja virtual dentro de um sistema opensource de CMS.</p>
<p style="text-align: justify;">Claro, neste caso como trata-se de uma plataforma de desenvolvimento amplo a necessidade de personalizar o sistema em um todo não pode ser descartada, para fazer com que a loja fique do jeito que você deseja é preciso muito conhecimento em PHP, CSS e HTML.</p>
<h3 style="text-align: justify;">PrestaShop &#8211; <a href="http://prestashop.com/" target="_blank"><strong>prestashop</strong>.com</a></h3>
<p style="text-align: justify;">Essa plataforma é a mocinha da vez, apesar de ainda não chegar perto da potência do Magento essa plataforma está conquistando cada vez mais adeptos. Com a PrestaShop é possível ter muita qualidade e flexibilidade, apesar de ainda não ser tão completa como Magento, é uma ótima opção para quem deseja um loja profissional.</p>
<p style="text-align: justify;">Quando falo de completa estou dizendo que pelo pouco tempo em que ela está sendo conhecida mundialmente ainda faltam algumas alternativas de plugins, portanto, assim que mais desenvolvedores se habituarem com ela normalmente essa demanda será suprida. É apenas questão de tempo.</p>
<h3 style="text-align: justify;">Magento &#8211; <a href="http://magentocommerce.com" target="_blank"><strong>magento</strong>commerce.com</a></h3>
<p style="text-align: justify;">A queridinha Magento. Na verdade querida por quem é programador e odiada por quem não quer aperfeiçoar-se em programação, ela exige um tanto de conhecimento em programação e o sistema por ser robusto e muito completo é um tanto pesado necessitando de um host melhor e um bom plano de hospedagem.</p>
<p style="text-align: justify;">Mas a quantidade de plugins profissionais e flexibilidade da plataforma em poder vender desde de produtos completamente digitais como por exemplo apostilas, músicas até o normal que são produtos físicos (roupas,  eletrônicos e outros) faz dela minha preferida. Não que outras não tenham tantos plugins, tanta flexibilidade e até mesmo a venda de itens digitais, na verdade eu a prefiro pelo simples fato de que ela é na verdade a matriz de todas as outras plataformas opensource, ou seja, tudo que é feito hoje em termos de plataforma está direta ou indiretamente ligada ao poder do Magento.</p>
<p style="text-align: justify;">Outro ponto positivo para o Magento é o fato de que esse é um projeto que não será abandonado como outros projetos de plataforma opensource. O Magento recebe investimentos e é uma empresa física bem estruturada que gera valores e se mantém através de cursos de certificação, desenvolvimento de plugins e também com as versões pagas da plataforma, que por sinal não são tão baratas.</p>
<p style="text-align: justify;">Toda a estrutura Magento, tanto da empresa que a desenvolve em comunidade como da própria estrutura da plataforma, fazem dela certamente a melhor opção profissional de plataformas e-commerce.</p>
<h3 style="text-align: justify;">Resumo</h3>
<p style="text-align: justify;">Falar de plataformas é complexo, não sabendo qual o uso que será dado se torna um missão impossível.</p>
<p style="text-align: justify;">Mais aqui vão algumas dicas das quais é necessário prestar bastante atenção no momento da escolha.</p>
<ol style="text-align: justify;">
<li>É fácil encontrar bons desenvolvedores que conheçam essa plataforma?</li>
<li>É possível migrar o banco de dados para outro sistema em caso de troca de plataforma?</li>
<li>O quanto do Host essa plataforma exige para manter o site no ar com número x de visitas?</li>
<li>Existem plugins suficientes e as atualizações são constantes ou o projeto dessa plataforma não está tão atraente para novas atualizações?</li>
<li>Essa plataforma é simples, ou seja, intuitiva para poder ser usada?</li>
<li>Os relatórios gerados são importantes ou somente um monte de números e planilhas que nada agregam?</li>
</ol>
<p style="text-align: justify;">Essas perguntas, após serem respondidas, vão lhe nortear para a melhor escolha. Claro que existem inúmeras outras questões que são mais evidentes em determinados nichos de mercado, portanto, essas 6 perguntas são iguais para todos. Trata-se da qualidade mínima da loja virtual.</p>
<p style="text-align: justify;">Mas, o que importa em uma loja virtual não exatamente a plataforma, sempre costumo dizer que plataforma não vende. Certamente no máximo auxilia no processo de venda, ou seja, te faz receber o pedido, gerir as informações e finalizar as tarefas &#8211; basicamente é isso.</p>
<p style="text-align: justify;">O que eu, como consultor de e-commerce, considero mais importante acima de qual plataforma escolher, seja por nome, por tradição, por custo ou seja lá o que for o importante mesmo é prestar um excelente serviço e só se consegue isso estudando bem as ferramentas e escolhendo entre elas a melhor &#8211; &#8220;melhor&#8221; quer dizer a mais flexível para o seu modelo de negócio.</p>
<p style="text-align: justify;">Sucesso a todos, um grande abraço.</p>
<p style="text-align: justify;"><em>Não foi minha intenção buscar todas as plataformas existentes, na verdade são inúmeras e esse post seria muito longo. Para desenvolvedores a dica que posso dar é que se você for buscar plataformas entre no site oficial e busque a documentação sobre a mesma. Já para quem pretende abrir um e-commerce o ideal é a busca por um profissional para lhe orientar adequadamente, pode ser um consultor, um desenvolvedor que tenha experiência em e-commerce como também algum gestor de e-commerce que você conheça e tenha contato de confiança.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2011/09/plataformas-e-commerce-um-pouco-sobre-opensource/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

