<?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>Кибер-Фанк v2.0 &#187; unix</title>
	<atom:link href="http://www.shatlovsky.ru/category/unix/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.shatlovsky.ru</link>
	<description>Information must be free</description>
	<lastBuildDate>Fri, 12 Aug 2011 09:06:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>vim: внешние фильтры</title>
		<link>http://www.shatlovsky.ru/2010/04/29/vim-vneshnie-filtry/</link>
		<comments>http://www.shatlovsky.ru/2010/04/29/vim-vneshnie-filtry/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 12:40:16 +0000</pubDate>
		<dc:creator>Alex Shatlovsky</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.shatlovsky.ru/?p=186</guid>
		<description><![CDATA[Помимо сортировки, внешние команды можно использовать для любых манипуляций над всем документом или его фрагментом. Выполнение внешней команды на диапазоне: :{диапазон} ! {команда} При этом на STDIN команды подается содержимое диапазона, а затем диапазон заменяется выводом STDOUT команды. Несколько примеров. Форматирование всего исходного текста на perl с помощью perltidy: :% ! perltidy -es=4 -t -st [...]]]></description>
			<content:encoded><![CDATA[<p>Помимо <a href="http://www.shatlovsky.ru/2010/04/20/vim-sortirovka/">сортировки</a>, внешние команды можно использовать для любых манипуляций над всем документом или его фрагментом.</p>
<p>Выполнение внешней команды на диапазоне:</p>
<pre>:{диапазон} ! {команда}</pre>
<p>При этом на STDIN команды подается содержимое диапазона, а затем диапазон заменяется выводом STDOUT команды.</p>
<p>Несколько примеров.</p>
<p>Форматирование всего исходного текста на <code>perl</code> с помощью <code>perltidy</code>:</p>
<pre>:% ! perltidy -es=4 -t -st</pre>
<p>Отфильтровать с помощью команды <code>grep</code> все строки, содержащие символ "#" из строк 14-24:</p>
<pre>:14,24 ! grep -v &quot;\#&quot;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.shatlovsky.ru/2010/04/29/vim-vneshnie-filtry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vim: сортировка</title>
		<link>http://www.shatlovsky.ru/2010/04/20/vim-sortirovka/</link>
		<comments>http://www.shatlovsky.ru/2010/04/20/vim-sortirovka/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 12:09:22 +0000</pubDate>
		<dc:creator>Alex Shatlovsky</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[sort]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.shatlovsky.ru/?p=174</guid>
		<description><![CDATA[Сортировать в vim очень просто: :{диапазон}sort Диапазон подставится автоматически, если в визуальном режиме (V) выделить блок, а затем перейти в командный режим (:): :'&#60;,'&#62; Или для сортировки всего файла: :%sort Сортировка в обратном порядке: :%sort! Сортировка в прямом порядке, удаляя все дубликаты: :%sort -u Также для сортировки можно использовать внешние утилиты, например стандартный юниксовый sort: [...]]]></description>
			<content:encoded><![CDATA[<p>Сортировать в vim очень просто:</p>
<pre>:{диапазон}sort</pre>
<p>Диапазон подставится автоматически, если в визуальном режиме (<code>V</code>) выделить блок, а затем перейти в командный режим (<code>:</code>):</p>
<pre>:'&lt;,'&gt;</pre>
<p>Или для сортировки всего файла:</p>
<pre>:%sort</pre>
<p>Сортировка в обратном порядке:</p>
<pre>:%sort!</pre>
<p>Сортировка в прямом порядке, удаляя все дубликаты:</p>
<pre>:%sort -u</pre>
<p>Также для сортировки можно использовать внешние утилиты, например стандартный юниксовый <code>sort</code>:</p>
<pre>:%!sort --numeric-sort --reverse</pre>
<p>Ну и как обычно, читаем маны:</p>
<pre>:help :sort</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.shatlovsky.ru/2010/04/20/vim-sortirovka/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>firefox: оптимизация внутренних баз данных sqlite</title>
		<link>http://www.shatlovsky.ru/2009/08/26/firefox-optimizaciya-vnutrennix-baz-dannyx-sqlite/</link>
		<comments>http://www.shatlovsky.ru/2009/08/26/firefox-optimizaciya-vnutrennix-baz-dannyx-sqlite/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 07:17:53 +0000</pubDate>
		<dc:creator>Alex Shatlovsky</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[sqlite]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[заметки на полях]]></category>

		<guid isPermaLink="false">http://www.shatlovsky.ru/?p=112</guid>
		<description><![CDATA[$ find .mozilla/firefox -type f -name &#34;*.sqlite&#34; -exec time sqlite3 \&#123;\&#125; &#34;VACUUM&#34; &#34;;&#34; via]]></description>
			<content:encoded><![CDATA[<pre class="bash">$ <span style="color: #c20cb9; font-weight: bold;">find</span> .mozilla/firefox -<span style="color: #7a0874; font-weight: bold;">type</span> f -name <span style="color: #ff0000;">&quot;*.sqlite&quot;</span> -<span style="color: #7a0874; font-weight: bold;">exec</span> <span style="color: #000000; font-weight: bold;">time</span> sqlite3 \<span style="color: #7a0874; font-weight: bold;">&#123;</span>\<span style="color: #7a0874; font-weight: bold;">&#125;</span> <span style="color: #ff0000;">&quot;VACUUM&quot;</span> <span style="color: #ff0000;">&quot;;&quot;</span></pre>
<p><a href="http://jdevelop.livejournal.com/1473676.html?mode=reply">via</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.shatlovsky.ru/2009/08/26/firefox-optimizaciya-vnutrennix-baz-dannyx-sqlite/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>linux: как узнать (проверить) key fingerprint?</title>
		<link>http://www.shatlovsky.ru/2009/06/08/linux-kak-uznat-proverit-key-fingerprint/</link>
		<comments>http://www.shatlovsky.ru/2009/06/08/linux-kak-uznat-proverit-key-fingerprint/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 11:45:59 +0000</pubDate>
		<dc:creator>Alex Shatlovsky</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.shatlovsky.ru/?p=96</guid>
		<description><![CDATA[Узнать fingerprint ключа можно при помощи команды ssh-keygen: # ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key 2048 e2:02:50:2b:d8:1f:ce:d4:18:07:02:7b:22:90:44:25 /etc/ssh/ssh_host_rsa_key.pub &#40;RSA&#41; По-умолчанию команда ищет публичный ключ и печатает для него fingerprint.]]></description>
			<content:encoded><![CDATA[<p>Узнать fingerprint ключа можно при помощи команды ssh-keygen:</p>
<pre class="bash"><span style="color: #808080; font-style: italic;"># <span style="color: #c20cb9; font-weight: bold;">ssh-keygen</span> -l -f /etc/<span style="color: #c20cb9; font-weight: bold;">ssh</span>/ssh_host_rsa_key</span>
<span style="color: #000000;">2048</span> e2:<span style="color: #000000;">02</span>:<span style="color: #000000;">50</span>:2b:d8:1f:ce:d4:<span style="color: #000000;">18</span>:<span style="color: #000000;">07</span>:<span style="color: #000000;">02</span>:7b:<span style="color: #000000;">22</span>:<span style="color: #000000;">90</span>:<span style="color: #000000;">44</span>:<span style="color: #000000;">25</span> /etc/<span style="color: #c20cb9; font-weight: bold;">ssh</span>/ssh_host_rsa_key.pub <span style="color: #7a0874; font-weight: bold;">&#40;</span>RSA<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre>
<p>По-умолчанию команда ищет публичный ключ и печатает для него fingerprint.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shatlovsky.ru/2009/06/08/linux-kak-uznat-proverit-key-fingerprint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>tar: Просмотр содержимого архива (tar.gz, tgz, tar.bzip2)</title>
		<link>http://www.shatlovsky.ru/2008/12/05/list-archive-contents-tar-gz-tgz-bzip/</link>
		<comments>http://www.shatlovsky.ru/2008/12/05/list-archive-contents-tar-gz-tgz-bzip/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 15:18:07 +0000</pubDate>
		<dc:creator>Alex Shatlovsky</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[tar]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.shatlovsky.ru/?p=45</guid>
		<description><![CDATA[Для вывода оглавления tar-архива используется команда -t: ~$ tar -tvf archive.tar -rw-rw-rw- 0 username groupname 45523421 Dec 5 16:17 file1.txt -rw-r--r-- 0 username groupname 13234112 Dec 5 16:17 file2.txt -rw-r--r-- 0 username groupname 75323624 Dec 5 16:17 file3.txt Для tar.gz (tgz; tar+gzip): ~$ tar -ztvf archive.tar.gz ... Для tar.bz2 (tar+bzip2): ~$ tar -jtvf archive.tar.bz2 ... [...]]]></description>
			<content:encoded><![CDATA[<p>Для вывода оглавления tar-архива используется команда <code>-t</code>:</p>
<pre class="bash">~$ <span style="color: #c20cb9; font-weight: bold;">tar</span> -tvf archive.<span style="color: #c20cb9; font-weight: bold;">tar</span>
-rw-rw-rw-  <span style="color: #000000;">0</span> username  groupname <span style="color: #000000;">45523421</span> Dec  <span style="color: #000000;">5</span> <span style="color: #000000;">16</span>:<span style="color: #000000;">17</span> file1.txt
-rw-r--r--  <span style="color: #000000;">0</span> username  groupname <span style="color: #000000;">13234112</span> Dec  <span style="color: #000000;">5</span> <span style="color: #000000;">16</span>:<span style="color: #000000;">17</span> file2.txt
-rw-r--r--  <span style="color: #000000;">0</span> username  groupname <span style="color: #000000;">75323624</span> Dec  <span style="color: #000000;">5</span> <span style="color: #000000;">16</span>:<span style="color: #000000;">17</span> file3.txt</pre>
<p>Для tar.gz (tgz; tar+gzip):</p>
<pre class="bash">~$ <span style="color: #c20cb9; font-weight: bold;">tar</span> -ztvf archive.<span style="color: #c20cb9; font-weight: bold;">tar</span>.gz
...</pre>
<p>Для tar.bz2 (tar+bzip2):</p>
<pre class="bash">~$ <span style="color: #c20cb9; font-weight: bold;">tar</span> -jtvf archive.<span style="color: #c20cb9; font-weight: bold;">tar</span>.bz2
...</pre>
<p>Использованные команды:<br />
<code>-t</code> – печать содержимого архива на <code>stdout</code><br />
<code>-v</code> - подробный вывод, аналог ключа -l утилиты <code>ls</code>. Без этой команды будет выведен краткий спискок файлов без размеров и прав.<br />
<code>-f имя_файла</code> - использовать указанный файл в качестве архива, иначе читать с ленты<br />
<code>-z</code> – <code>gzip</code>-фильтр. В некоторых реализациях использовать необязательно.<br />
<code>-j</code> – <code>bzip2</code>-фильтр. В некоторых реализациях использовать необязательно.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shatlovsky.ru/2008/12/05/list-archive-contents-tar-gz-tgz-bzip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu: x-term в UTF-8, соединение с удаленным хостом в KOI8-R</title>
		<link>http://www.shatlovsky.ru/2008/11/27/ubuntu-x-term-v-utf-8-soedinenie-s-udalennym-xostom-v-koi8-r/</link>
		<comments>http://www.shatlovsky.ru/2008/11/27/ubuntu-x-term-v-utf-8-soedinenie-s-udalennym-xostom-v-koi8-r/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 21:53:54 +0000</pubDate>
		<dc:creator>Alex Shatlovsky</dc:creator>
				<category><![CDATA[config]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[koi8-r]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[locale]]></category>
		<category><![CDATA[luit]]></category>
		<category><![CDATA[slogin]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[utf-8]]></category>
		<category><![CDATA[xorg]]></category>
		<category><![CDATA[xterm]]></category>

		<guid isPermaLink="false">http://shatlovsky.ru/blog/2008/11/27/ubuntu-x-term-v-utf-8-soedinenie-s-udalennym-xostom-v-koi8-r/</guid>
		<description><![CDATA[Дано: X-терминал в Ubuntu настроен на работу в локали ru_RU.UTF-8. Удаленный сервер может адекватно работать только с кодировкой ru_RU.KOI8-R. Что делать? Решение: перекодировать на лету Для этого удобно использовать утилиту luit, входящую в дистрибутив и устанавливаемую по умолчанию в составе пакета x11-utils. $ LANG=ru_RU.KOI8-R luit $ ssh user@koi8.host.tld Если случилось так, что у вас нет [...]]]></description>
			<content:encoded><![CDATA[<p>Дано: X-терминал в Ubuntu настроен на работу в локали ru_RU.UTF-8. Удаленный сервер может адекватно работать только с кодировкой ru_RU.KOI8-R. Что делать?</p>
<p>Решение: перекодировать на лету<br />
Для этого удобно использовать утилиту <code>luit</code>, входящую в дистрибутив и устанавливаемую по умолчанию в составе пакета <code>x11-utils</code>.</p>
<pre class="bash">$ <span style="color: #007800;">LANG=</span>ru_RU.KOI8-R luit
$ <span style="color: #c20cb9; font-weight: bold;">ssh</span> user@koi8.host.tld</pre>
<p>Если случилось так, что у вас нет локали KOI8-R, то придется ее создать:</p>
<pre class="bash">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> locale-gen ru_RU.KOI8-R</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.shatlovsky.ru/2008/11/27/ubuntu-x-term-v-utf-8-soedinenie-s-udalennym-xostom-v-koi8-r/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>цветное приглашение bash prompt</title>
		<link>http://www.shatlovsky.ru/2008/10/15/cvetnoe-priglashenie-bash-prompt/</link>
		<comments>http://www.shatlovsky.ru/2008/10/15/cvetnoe-priglashenie-bash-prompt/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 08:04:14 +0000</pubDate>
		<dc:creator>Alex Shatlovsky</dc:creator>
				<category><![CDATA[bash]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[config]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://shatlovsky.ru/blog/2008/10/15/cvetnoe-priglashenie-bash-prompt/</guid>
		<description><![CDATA[В unix-консоли, а в частности в приглашении bash можно использовать ANSI-последовательности для задания цветового вывода: &#160; PS1='[\\e[01;32m]\\u@\\h[\e[00m]:[\\e[01;34m]\\w[\\e[00m]$ '; export PS1 Цвет задается последовательностью вида \e[ATTR;FG;BGm, где ATTR - необязательный аттрибут, FG - цвет переднего плана, BG - цвет фона. Сброс цвета к значению по умолчанию - \e[0m Краткую таблицу соответствия кодов конкретным цветам опубликовал в [...]]]></description>
			<content:encoded><![CDATA[<p>В unix-консоли, а в частности в приглашении <code>bash</code> можно использовать ANSI-последовательности для задания цветового вывода:</p>
<pre class="bash">&nbsp;
<span style="color: #007800;">PS1=</span><span style="color: #ff0000;">'[<span style="color: #000099; font-weight: bold;">\\</span>e[01;32m]<span style="color: #000099; font-weight: bold;">\\</span>u@<span style="color: #000099; font-weight: bold;">\\</span>h[<span style="color: #000099; font-weight: bold;">\e</span>[00m]:[<span style="color: #000099; font-weight: bold;">\\</span>e[01;34m]<span style="color: #000099; font-weight: bold;">\\</span>w[<span style="color: #000099; font-weight: bold;">\\</span>e[00m]$ '</span>; <span style="color: #7a0874; font-weight: bold;">export</span> PS1</pre>
<p>Цвет задается последовательностью вида <code>\e[<strong>ATTR</strong>;<strong>FG</strong>;<strong>BG</strong>m</code>, где ATTR - необязательный аттрибут, FG - цвет переднего плана, BG - цвет фона.</p>
<p>Сброс цвета к значению по умолчанию - <code>\e[0m</code></p>
<p>Краткую таблицу соответствия кодов конкретным цветам опубликовал в статье <a href="http://www.funtoo.org/en/articles/linux/tips/prompt/">"Prompt Magic"</a> Дэниел Роббинс:</p>
<p><img src="http://shatlovsky.ru/blog/wp-content/colortable.gif" alt="colortable.gif" /></p>
<p>С помощью <code>ATTR</code> можно делать текст полужирным, подчеркнутым, мигающим, и т.п.:</p>
<table border="1" cellpadding="3" cellspacing="3">
<tr>
<td>0</td>
<td>по-умолчанию</td>
</tr>
<tr>
<td>1</td>
<td>жирный</td>
</tr>
<tr>
<td>22</td>
<td>не жирный</td>
</tr>
<tr>
<td>4</td>
<td>подчеркнутый</td>
</tr>
<tr>
<td>24</td>
<td>не подчеркнутый</td>
</tr>
<tr>
<td>5</td>
<td>мигающий</td>
</tr>
<tr>
<td>25</td>
<td>не мигающий</td>
</tr>
<tr>
<td>7</td>
<td>инвертированный</td>
</tr>
<tr>
<td>27</td>
<td>не инвертированный</td>
</tr>
</table>
<p>В качестве примера полезно посмотреть <a href="http://www.linuxfocus.org/common/src2/article335/showansicol.tar.gz">небольшой скрипт</a>, выводящий на консоль таблицу возможных цветовых комбинаций:</p>
<pre class="bash"><span style="color: #808080; font-style: italic;">#!/bin/sh</span>
<span style="color: #808080; font-style: italic;">############################################################</span>
<span style="color: #808080; font-style: italic;"># Nico Golde &amp;lt;nico<span style="color: #7a0874; font-weight: bold;">&#40;</span>at<span style="color: #7a0874; font-weight: bold;">&#41;</span>ngolde.de&amp;gt; Homepage: http://www.ngolde.de</span>
<span style="color: #808080; font-style: italic;"># Last change: Mon Feb <span style="color: #000000;">16</span> <span style="color: #000000;">16</span>:<span style="color: #000000;">24</span>:<span style="color: #000000;">41</span> CET <span style="color: #000000;">2004</span></span>
<span style="color: #808080; font-style: italic;">############################################################</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">for</span> attr <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000;">0</span> <span style="color: #000000;">1</span> <span style="color: #000000;">4</span> <span style="color: #000000;">5</span> <span style="color: #000000;">7</span> ; <span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;----------------------------------------------------------------&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">printf</span> <span style="color: #ff0000;">&quot;ESC[%s;Foreground;Background - <span style="color: #000099; font-weight: bold;">\\</span>n&quot;</span> <span style="color: #007800;">$attr</span>
    <span style="color: #000000; font-weight: bold;">for</span> fore <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000;">30</span> <span style="color: #000000;">31</span> <span style="color: #000000;">32</span> <span style="color: #000000;">33</span> <span style="color: #000000;">34</span> <span style="color: #000000;">35</span> <span style="color: #000000;">36</span> <span style="color: #000000;">37</span>; <span style="color: #000000; font-weight: bold;">do</span>
        <span style="color: #000000; font-weight: bold;">for</span> back <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000;">40</span> <span style="color: #000000;">41</span> <span style="color: #000000;">42</span> <span style="color: #000000;">43</span> <span style="color: #000000;">44</span> <span style="color: #000000;">45</span> <span style="color: #000000;">46</span> <span style="color: #000000;">47</span>; <span style="color: #000000; font-weight: bold;">do</span>
            <span style="color: #7a0874; font-weight: bold;">printf</span> <span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\\</span>033[%s;%s;%sm %02s;%02s  '</span> <span style="color: #007800;">$attr</span> <span style="color: #007800;">$fore</span> <span style="color: #007800;">$back</span> <span style="color: #007800;">$fore</span> <span style="color: #007800;">$back</span>
        <span style="color: #000000; font-weight: bold;">done</span>
    <span style="color: #7a0874; font-weight: bold;">printf</span> <span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\\</span>n'</span>
    <span style="color: #000000; font-weight: bold;">done</span>
    <span style="color: #7a0874; font-weight: bold;">printf</span> <span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\\</span>033[0m'</span>
<span style="color: #000000; font-weight: bold;">done</span>
&nbsp;</pre>
<p>Ссылки по теме:</p>
<ul>
<li><a href="http://www.funtoo.org/en/articles/linux/tips/prompt/">Linux Tips: Prompt Magic</a>, by Daniel Robbins</li>
<li><a href="http://www.linuxfocus.org/English/May2004/article335.shtml">Colorful Shells -- Using ANSI Color Codes</a>, by Nico Golde</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.shatlovsky.ru/2008/10/15/cvetnoe-priglashenie-bash-prompt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Макросы RCS</title>
		<link>http://www.shatlovsky.ru/2008/10/13/makrosy-rcs/</link>
		<comments>http://www.shatlovsky.ru/2008/10/13/makrosy-rcs/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 12:54:00 +0000</pubDate>
		<dc:creator>Alex Shatlovsky</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[keywords]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[macros]]></category>
		<category><![CDATA[rcs]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://shatlovsky.ru/blog/2008/10/13/makrosy-rcs/</guid>
		<description><![CDATA[Ниже приведен список макросов RCS, которые можно использовать внутри любых текстовых файлов. При checkout'е макрос будет развернут в значение. Макросы RCS (RCS Keywords) © http://babbage.cs.qc.edu/courses/cs701/Handouts/rcs_keywords.html © Перевод Алексей Шатловский, 2008, http://shatlovsky.ru/blog/2008/10/13/makrosy-rcs/ $Author$ Имя учетной записи юзера, который внес зарегистрировал (check-in) последнию ревизию $Date$ Дата и время (UTC) последнего check-in. $Header$ Стандартный заголовок, содержащий полное имя [...]]]></description>
			<content:encoded><![CDATA[<p>Ниже приведен список макросов RCS, которые можно использовать внутри любых текстовых файлов. При checkout'е макрос будет развернут в значение.</p>
<h2>Макросы RCS (RCS Keywords)</h2>
<p ALIGN="left">© <a HREF="http://babbage.cs.qc.edu/courses/cs701/Handouts/rcs_keywords.html">http://babbage.cs.qc.edu/courses/cs701/Handouts/rcs_keywords.html</a></p>
<p ALIGN="left"> © Перевод Алексей Шатловский, 2008, <a HREF="http://shatlovsky.ru/blog/2008/10/13/makrosy-rcs/">http://shatlovsky.ru/blog/2008/10/13/makrosy-rcs/</a></p>
<p><strong>$Author$</strong><br />
Имя учетной записи юзера, который внес зарегистрировал (check-in) последнию ревизию</p>
<p><strong>$Date$</strong><br />
Дата и время (UTC) последнего check-in.</p>
<p><strong>$Header$</strong><br />
Стандартный заголовок, содержащий полное имя RCS-файла, номер ревизии, дату (UTC), автора, состояние и имя учетной записи юзера, заблокировавшего ревизию (если заблокировано).</p>
<p><strong>$Id$</strong><br />
То же, что и <strong>$Header$</strong>,  но имя файла без полного пути.</p>
<p><strong>$Locker$</strong><br />
Имя учетной записи юзера, заблокировавшего ревизию (пусто, если не заблокировано).</p>
<p><strong>$Log$</strong><br />
Лог-сообщение, введенное во время checkin, предваренное заголовком, содержащим имя RCS-файла, номер ревизии, автора и дату. Существующие логи замещаются. Вместо этого, новые логи вставляются после $Log:...$. Это полезно для сохранения полной истории изменений исходного файла.</p>
<p><strong>$RCSfile$</strong><br />
Имя RCS-файла без пути.</p>
<p><strong>$Revision$</strong><br />
Номер ревизии.</p>
<p><strong>$Source$</strong><br />
Имя и полный путь к RCS-файлу.</p>
<p><strong>$State$</strong><br />
Состояние, назначенное ревизии опцией <code>-s</code> команд <code>rcs(1)</code> или <code>ci(1)</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shatlovsky.ru/2008/10/13/makrosy-rcs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vim: old-skool h0tkeyz</title>
		<link>http://www.shatlovsky.ru/2008/09/23/vim-old-skool-h0tkeyz/</link>
		<comments>http://www.shatlovsky.ru/2008/09/23/vim-old-skool-h0tkeyz/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 15:12:26 +0000</pubDate>
		<dc:creator>Alex Shatlovsky</dc:creator>
				<category><![CDATA[config]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://shatlovsky.ru/blog/2008/09/23/vim-old-skool-h0tkeyz/</guid>
		<description><![CDATA[&#160; &#34; F2 = Save file map &#60;silent&#62; &#60;f2&#62; :write&#60;cr&#62; imap &#60;silent&#62; &#60;f2&#62; &#60;esc&#62;:write&#60;cr&#62; &#160; &#34; F10 = Exit without save map &#60;silent&#62; &#60;f10&#62; :quit&#60;cr&#62; imap &#60;silent&#62; &#60;f10&#62; &#60;esc&#62;:q&#60;cr&#62; &#160;]]></description>
			<content:encoded><![CDATA[<pre class="text">&nbsp;
&quot; F2 = Save file
map  &lt;silent&gt; &lt;f2&gt;    :write&lt;cr&gt;
imap  &lt;silent&gt; &lt;f2&gt;    &lt;esc&gt;:write&lt;cr&gt;
&nbsp;
&quot; F10 = Exit without save
map   &lt;silent&gt; &lt;f10&gt;    :quit&lt;cr&gt;
imap  &lt;silent&gt; &lt;f10&gt;    &lt;esc&gt;:q&lt;cr&gt;
&nbsp;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.shatlovsky.ru/2008/09/23/vim-old-skool-h0tkeyz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Инструкция по установке Ruby + Gems + Rails на Ubuntu</title>
		<link>http://www.shatlovsky.ru/2008/09/19/instrukciya-po-ustanovke-ruby-gems-rails-na-ubuntu/</link>
		<comments>http://www.shatlovsky.ru/2008/09/19/instrukciya-po-ustanovke-ruby-gems-rails-na-ubuntu/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 09:04:26 +0000</pubDate>
		<dc:creator>Alex Shatlovsky</dc:creator>
				<category><![CDATA[gems]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://shatlovsky.ru/blog/2008/09/19/instrukciya-po-ustanovke-ruby-gems-rails-na-ubuntu/</guid>
		<description><![CDATA[Ставим Ruby через менеджер пакетов apt-get: ~$ sudo apt-get install ruby rdoc irb libyaml-ruby libzlib-ruby ri libopenssl-ruby ruby1.8-dev build-essential Пакеты rdoc и irb не входят в зависимости, хотя и необходимы для Gem и Rails. Ставим RubyGems из исходников. Это позволит в дальнейшем RubyGems спокойно само-обновляться: ~$ wget &#34;http://rubyforge.org/frs/download.php/38646/rubygems-x.x.x.tgz&#34; ~$ tar -xvzf rubygems-x.x.x.tgz ~$ rm rubygems-x.x.x.tgz [...]]]></description>
			<content:encoded><![CDATA[<p>Ставим Ruby через менеджер пакетов apt-get:</p>
<pre class="bash">~$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> apt-get <span style="color: #c20cb9; font-weight: bold;">install</span> ruby rdoc irb libyaml-ruby libzlib-ruby ri libopenssl-ruby ruby1<span style="color: #000000;">.8</span>-dev build-essential</pre>
<p>Пакеты rdoc и irb не входят в зависимости, хотя и необходимы для Gem и Rails.</p>
<p>Ставим <span class="warn">RubyGems из исходников</span>. Это позволит в дальнейшем RubyGems спокойно само-обновляться:</p>
<pre class="bash">~$ <span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #ff0000;">&quot;http://rubyforge.org/frs/download.php/38646/rubygems-x.x.x.tgz&quot;</span>
~$ <span style="color: #c20cb9; font-weight: bold;">tar</span> -xvzf rubygems-x.x.x.tgz
~$ <span style="color: #c20cb9; font-weight: bold;">rm</span> rubygems-x.x.x.tgz
~$ <span style="color: #7a0874; font-weight: bold;">cd</span> rubygems-x.x.x
~$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> ruby setup.rb
~$ <span style="color: #7a0874; font-weight: bold;">cd</span> ..
~$ <span style="color: #c20cb9; font-weight: bold;">rm</span> -r rubygems-x.x.x</pre>
<p>(НЕЛЬЗЯ запускать установку снаружи, типа <code>use sudo ruby rubygemsx.x.x/setup.rb</code>)</p>
<p>Теперь можно обновить RubyGems</p>
<pre class="bash">~$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> gem update --system</pre>
<p>Если эта команда не сработала, то, возможно, нужно создать симлинк /usr/bin/gem1.8 -&gt; /usr/bin/gem</p>
<pre class="bash">~$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> -s /usr/bin/gem1<span style="color: #000000;">.8</span> /usr/bin/gem</pre>
<p>Ставим Rails и mongrel через RubyGems:</p>
<pre class="bash">~$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> gem <span style="color: #c20cb9; font-weight: bold;">install</span> rails mongrel</pre>
<p>Добавляем <code>/var/lib/gems/1.8/bin/</code> в пути, и все готово!</p>
<pre class="bash">~$ <span style="color: #007800;">PATH=</span><span style="color: #007800;">$<span style="color: #7a0874; font-weight: bold;">&#123;</span>PATH<span style="color: #7a0874; font-weight: bold;">&#125;</span></span>:/var/lib/gems/<span style="color: #000000;">1.8</span>/bin/
~$ <span style="color: #7a0874; font-weight: bold;">export</span> PATH</pre>
<p>[<a href="http://wiki.rubyonrails.org/rails/pages/RailsOnUbuntu">источник</a>]</p>
<p><strong>Харитон Мизгирь пишет:</strong> NB! если при установке какого-нибудь gem'а выдается ошибка<br />
"no such file to load — mkmf"<br />
это значит, что не установлен ruby1.8-dev, libsqlite3-dev<br />
или еще какой-нибудь *-dev</p>
<pre class="bash">~$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> apt-get <span style="color: #c20cb9; font-weight: bold;">install</span> ruby1<span style="color: #000000;">.8</span>-dev libsqlite3-dev</pre>
<p>и т.д.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shatlovsky.ru/2008/09/19/instrukciya-po-ustanovke-ruby-gems-rails-na-ubuntu/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

