<?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>truques de linha de comando &#8211; Rafael Bernard Araujo</title>
	<atom:link href="https://rafael.bernard-araujo.com/tag/truques-de-linha-de-comando/feed" rel="self" type="application/rss+xml" />
	<link>https://rafael.bernard-araujo.com</link>
	<description>desenvolvendo... while(!success){  try(); }</description>
	<lastBuildDate>Wed, 24 Nov 2010 16:57:24 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
<site xmlns="com-wordpress:feed-additions:1">21941730</site>	<item>
		<title>Oirartnocoa</title>
		<link>https://rafael.bernard-araujo.com/oirartnocoa.php</link>
					<comments>https://rafael.bernard-araujo.com/oirartnocoa.php#comments</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Wed, 24 Nov 2010 16:52:57 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linha de comando]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[música]]></category>
		<category><![CDATA[truques de linha de comando]]></category>
		<guid isPermaLink="false">http://rafael.bernard-araujo.com/?p=625</guid>

					<description><![CDATA[O comando mais comum para ler um arquivo de texto é cat (ou less se você quer ler página a página, mas não é sobre isso que estamos falando). Ele inicia do início e termina no final, o que é totalmente lógico mas não é sempre isso que precisamos. Se você quer ler um arquivo [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>O comando mais comum para ler um arquivo de texto é <code>cat</code> (ou <code>less</code> se você quer ler página a página, mas não é sobre isso que estamos falando). Ele inicia do início e termina no final, o que é totalmente lógico mas não é sempre isso que precisamos. Se você quer ler um arquivo ao contrário (digo, quando precisamos ler um arquivo de log e você precisa da entrada mais recente primeiro), apenas execute <code>cat</code> ao contrário. Isso mesmo: <code>tac</code> faz o mesmo que <code>cat</code> ao contrário.</p>
<p>E caso você não queira uma ordem específica mas quer as linhas da saída aleatoriamente misturadas? Para isso usamos o comando <code>shuf</code>. Agora não será particularmente útil para arquivos de log (OK, é completamente inútil para arquivos de log), mas e se você quer uma lista de arquivos de música para passar ao tocador de músicas? A entrada não precisa ser um arquivo, pode ser uma entrada padrão, então você pode tocar seus arquivos Ogg Vorbis aleatoriamente com:</p>
<pre class="bash" style=""><span style="color: rgb(194, 12, 185); font-weight: bold;">ls</span> <span style="color: rgb(102, 0, 51);">-1</span> ~<span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>music<span style="color: rgb(0, 0, 0); font-weight: bold;">/**/*</span>.ogg <span style="color: rgb(0, 0, 0); font-weight: bold;">|</span> shuff <span style="color: rgb(0, 0, 0); font-weight: bold;">|</span> <span style="color: rgb(194, 12, 185); font-weight: bold;">mplayer</span> <span style="color: rgb(102, 0, 51);">-playlist</span> -</pre>
<p>ou</p>
<pre class="bash" style=""><span style="color: rgb(194, 12, 185); font-weight: bold;">mplayer</span> $<span style="color: rgb(122, 8, 116); font-weight: bold;">(</span><span style="color: rgb(194, 12, 185); font-weight: bold;">ls</span> <span style="color: rgb(102, 0, 51);">-1</span> ~<span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>music<span style="color: rgb(0, 0, 0); font-weight: bold;">/**/*</span>.ogg <span style="color: rgb(0, 0, 0); font-weight: bold;">|</span> shuff<span style="color: rgb(122, 8, 116); font-weight: bold;">)</span></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/oirartnocoa.php/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">625</post-id>	</item>
		<item>
		<title>Janela remota</title>
		<link>https://rafael.bernard-araujo.com/janela-remota.php</link>
					<comments>https://rafael.bernard-araujo.com/janela-remota.php#comments</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Tue, 16 Nov 2010 17:55:24 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[acesso remoto]]></category>
		<category><![CDATA[truques de linha de comando]]></category>
		<guid isPermaLink="false">http://rafael.bernard-araujo.com/?p=612</guid>

					<description><![CDATA[O Sistema de Janelas X usa um modelo cliente-servidor para criar um monitor. Na maioria das vezes você nem percebe, porque o cliente e o servidor são executados na mesma máquina, mas o sistema foi desenvolvido desta maneira para permitir que clientes X remotos se conectem ao servidor X. Você pode pensar em um cliente [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>O Sistema de Janelas X usa um modelo cliente-servidor para criar um monitor. Na maioria das vezes você nem percebe, porque o cliente e o servidor são executados na mesma máquina, mas o sistema foi desenvolvido desta maneira para permitir que clientes X remotos se conectem ao servidor X. Você pode pensar em um <a id="aptureLink_iPpLl36c0s" href="http://pt.wikipedia.org/wiki/Thin%20client">cliente fino</a>, quando o cliente X consiste em apenas um teclado e um monitor conectados ao servidor. O efeito colateral positivo é que esta funcionalidade está apenas disfarçada na fachada da sua máquina Linux.</p>
<p>O SSH encaminha sessões de janela X automaticamente, o que significa que se você iniciar uma aplicação numa máquina remota de um console SSH, a janela da aplicação aparecerá na máquina local. A janela está se comunicando com a máquina remota usando o protocolo X, o motivo de haver um atraso cada vez que você redimensiona a janela ou clica em algum lugar na interface.</p>
<pre class="bash">xterm <span style="color: #660033;">-display</span> :<span style="color: #000000;">0</span> <span style="color: #660033;">-e</span> klamav <span style="color: #000000; font-weight: bold;">&amp;</span></pre>
<p>Se o comando acima é executado de um console SSH conectado a uma máquina remota, seria aberta a janela do Xterm e executado KlamAV na tela remota ao invés de na tela local - você não poderá na sua tela. Isto é útil se você precisa iniciar uma aplicação remotamente, como um cliente de e-mail ou uma varredura de vírus.</p>
<p>A parte importante do comando é o parâmetro de exibição. Aqui usamos <code>:0</code>, que é a primeira tela do sistema remoto. O X usa endereços IP e portas para especificar um destino e nós simplesmente omitimos o endereço, direcionando para a máquina local. Você pode também usar localhost:1 para especificar a segunda tela.</p>
<p>O parâmetro <code>-e</code> que o sucede irá executar a aplicação do Xterm aberto, iniciando KlamAV na mesma tela do console Xterm. Você também pode usar no comando <code>nohup</code> para que ao término da sessão SSH para que a aplicação que está executando remotamente não permaneça.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/janela-remota.php/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">612</post-id>	</item>
		<item>
		<title>Velhos favoritos do bash</title>
		<link>https://rafael.bernard-araujo.com/velhos-favoritos-do-bash.php</link>
					<comments>https://rafael.bernard-araujo.com/velhos-favoritos-do-bash.php#comments</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Mon, 11 Oct 2010 18:30:22 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[truques de linha de comando]]></category>
		<guid isPermaLink="false">http://rafael.bernard-araujo.com/?p=577</guid>

					<description><![CDATA[É sempre válido revisitar comandos esquecidos do bash. Três dos mais úteis que parecem ter sido esquecidos no uso comum são o cut, paste e o comando de tradução, tr. cut e paste fazem exatamente o que você espera, e apesar de soarem banais, surpreende quão poderosos podem ser quando usados na linha de comando [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>É sempre válido revisitar comandos esquecidos do bash. Três dos mais úteis que parecem ter sido esquecidos no uso comum são o <code>cut</code>, <code>paste</code> e o comando de tradução, <code>tr</code>. <code>cut</code> e <code>paste</code> fazem exatamente o que você espera, e apesar de soarem banais, surpreende quão poderosos podem ser quando usados na linha de comando ou em scripts.</p>
<p><code>cut</code> normalmente é um pouco mais útil do que o comando <code>paste</code>. Executar o <code>cut</code> recorta parte de uma linha e a redireciona para a saída padrão. Predeterminadamente, o comando usa tabulação como separador de campos, mas isto pode ser alterado usando <code>-d</code>, e os campos são selecionadas ao usar o indicador <code>-f</code>.</p>
<p><code>paste</code> efetivamente permite que você possa mesclar conteúdos em colunas, como um <code>cat</code> vertical. A melhor maneira de ver como funciona é criando dois arquivos de texto, cada um com três linhas de dados separadas. A saída do <code>paste</code> será o conteúdo do primeiro arquivo numa coluna à esquerda no segundo arquivo.</p>
<p>O comando <code>tr</code> é usado para apagar saídas irrelevantes, como espaços ou tabulações. A opção mais útil é a <code>-s</code>, que remove espaços repetidos em seqüências de um simples caracter. Use a saída de <code>ls -al</code>, que gera uma longa lista de diretórios incluindo o tamanho dos arquivos preenchidos com espaços para melhor visualização. O comando <code>tr</code> pode ser usado para removê-los e colocar um simples caracter de espaço como separação de campos.</p>
<p>Um exemplo de como estes comandos podem trabalhar juntos:</p>
<pre class="bash" style=""><span style="color: rgb(194, 12, 185); font-weight: bold;">ls</span> <span style="color: rgb(102, 0, 51);">-al</span> <span style="color: rgb(102, 0, 51);">--sort</span>=<span style="color: rgb(194, 12, 185); font-weight: bold;">size</span> <span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>usr<span style="color: rgb(0, 0, 0); font-weight: bold;">/</span>bin <span style="color: rgb(0, 0, 0); font-weight: bold;">|</span> <span style="color: rgb(194, 12, 185); font-weight: bold;">tr</span> <span style="color: rgb(102, 0, 51);">-s</span> <span style="color: rgb(255, 0, 0);">' '</span> <span style="color: rgb(0, 0, 0); font-weight: bold;">|</span> <span style="color: rgb(194, 12, 185); font-weight: bold;">cut</span> <span style="color: rgb(102, 0, 51);">-d</span> <span style="color: rgb(255, 0, 0);">' '</span> <span style="color: rgb(102, 0, 51);">-f</span> <span style="color: rgb(0, 0, 0);">5</span>,<span style="color: rgb(0, 0, 0);">8</span></pre>
<p>A longa saída de <code>ls</code> é classificada e então transportada para o comando de tradução. Este remove o preenchimento, deixando os campos separados por um caracter de espaço. Depois o <code>cut</code> usa o caracter de espaço como um delimitador de campo e pega os campos 5 e 6 da saída. O que você tem é uma lista de arquivos, classificadas por tamanho, mostrando apenas o tamanho e o nome do arquivo.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/velhos-favoritos-do-bash.php/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">577</post-id>	</item>
		<item>
		<title>Manipule os codecs</title>
		<link>https://rafael.bernard-araujo.com/manipule-os-codecs.php</link>
					<comments>https://rafael.bernard-araujo.com/manipule-os-codecs.php#comments</comments>
		
		<dc:creator><![CDATA[rafael]]></dc:creator>
		<pubDate>Thu, 02 Sep 2010 18:51:05 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[codec]]></category>
		<category><![CDATA[conversão]]></category>
		<category><![CDATA[mpeg4]]></category>
		<category><![CDATA[truques de linha de comando]]></category>
		<category><![CDATA[vídeo]]></category>
		<guid isPermaLink="false">http://rafael.bernard-araujo.com/?p=554</guid>

					<description><![CDATA[O problema de ter muitos arquivos de vídeos é que eles estão em muitos formatos de arquivo diferentes - e há dúzias de codecs diferentes para codificar streams de áudio e vídeo. Provavelmente você tem familiaridade com o maravilhoso MPlayer, mas o que você talvez não saiba é que é que há um utilitário irmão [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>O problema de ter muitos arquivos de vídeos é que eles estão em muitos formatos de arquivo diferentes - e há dúzias de codecs diferentes para codificar streams de áudio e vídeo.</p>
<p>Provavelmente você tem familiaridade com o maravilhoso MPlayer, mas o que você talvez não saiba é que é que há um utilitário irmão chamado MEncoder. Ele é desenvolvido a partir do mesmo código base do MPlayer e como resultado é capaz de converter para e dos mesmos formatos que seu consumado irmão. MEncoder funciona pela linha de comando e pode não ser tão intuitivo para iniciantes, pois há muitos parâmetros. Verifique na página man do MEncoder!</p>
<p>Basicamente o comando do mencoder usa quatro parâmetros diferentes para converter o arquivo. A primeira parte é a entrada, a segunda é a saída do codec de vídeo, a terceira para a saída do codec de áudio seguida do parâmetro final para a saída do comando. Um comando MEncoder típico parece como isso:</p>
<pre class="bash" style="white-space: pre-wrap;">$ mencoder input.avi <span style="color: rgb(102, 0, 51);">-ovc</span> lavc <span style="color: rgb(102, 0, 51);">-ovc</span> <span style="color: rgb(102, 0, 51);">-lavcopts</span> <span style="color: rgb(0, 120, 0);">vcodec</span>=mpeg4:vhq:<span style="color: rgb(0, 120, 0);">vbitrate</span>=<span style="color: rgb(0, 0, 0);">1200</span> <span style="color: rgb(102, 0, 51);">-oac</span> copy <span style="color: rgb(102, 0, 51);">-o</span> output.avi</pre>
<p>Isso parece complicado, mas na verdade não é tanto. input.avi é o arquivo a ser processado, e <code>-ovc lavc</code> diz ao MEncoder qual é o codec de saída a ser usado. O próximo parâmetro são as opções de codec. Neste caso, especificamos MPEG4 (equivalente ao DivX) com variação de bit-rate de 1200. O <code>-oac copy</code> é aonde o codec de saída de áudio deve estar, mas neste caso estamos simplesmente copiando para arquivo fonte, que é o parâmetro final.</p>
<p>O que é interessante sobre o MEncoder é que ele realmente tira vantagens do sistema Linux. Por exemplo, você pode usar uma entrada de televisão para o arquivo-fonte, ou passar o vídeo através de um filtro. Você pode até remover as barras que você vê em filmes widescreen usando o comando <code>crop</code>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rafael.bernard-araujo.com/manipule-os-codecs.php/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">554</post-id>	</item>
	</channel>
</rss>
