<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.permlug.org" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>http</title>
 <link>http://www.permlug.org/taxonomy/term/307/</link>
 <description>The taxonomy view with a depth of 0.</description>
 <language>ru</language>
<item>
 <title>Вебсервер одной строкой на Bash</title>
 <link>http://www.permlug.org/node/3920/</link>
 <description>&lt;p&gt;Есть много способов поделится файлами с друзьями, например поднять у себя HTTP сервер, но устанавливать что то желания нет, данный скриптик поможет вам реализовать задуманное за пару секунд. Простой HTTP Сервер написанный на Bash который занимает всего одну строчку…&lt;/p&gt;

&lt;p&gt;Код скрипта приведен ниже:&lt;br /&gt;
Код:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
:;while [ $? -eq 0 ];do nc -vlp 8080 -c&#039;(r=read;e=echo;$r a b c;z=$r;while [ ${#z} -gt 2 ];do $r z;done;f=`$e $b|sed &#039;s/[^a-z0-9_.-]//gi&#039;`;h=&quot;HTTP/1.0&quot;;o=&quot;$h 200 OK\r\n&quot;;c=&quot;Content&quot;;if [ -z $f ];then($e $o;ls|(while $r n;do if [ -f &quot;$n&quot; ]; then $e &quot;&lt;a&gt;`ls -gh $n`&lt;/a&gt;&quot;;fi;done););elif [ -f $f ];then $e &quot;$o$c-Type: `file -ib $f`\n$c-Length: `stat -c%s $f`&quot;;$e;cat $f;else $e -e &quot;$h 404 Not Found\n\n404\n&quot;;fi)&#039;;done&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;После запуска по URL http://ваш_ip:8080/ можно получить доступ ко всем файлам, находящимся в текущим каталоге. Очевидных и прямолинейных способов сменить каталог нет. Протестировано и работает под Linux, bash 3.2.13, и с хоббитовским netcat v1.10 с поддержкой опции -с (запустите netcat -h и посмотрите. Как минимум в Ubuntu, Debian и Fedora Core такая опция есть).&lt;/p&gt;

&lt;p&gt;Источник: &lt;a href=&quot;http://alexey.sveshnikov.ru/blog/2007/08/30/bash-httpd-2/&quot; title=&quot;http://alexey.sveshnikov.ru/blog/2007/08/30/bash-httpd-2/&quot;&gt;http://alexey.sveshnikov.ru/blog/2007/08/30/bash-httpd-2/&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.permlug.org/node/3920/#comments</comments>
 <category domain="http://www.permlug.org/taxonomy/term/152/">bash</category>
 <category domain="http://www.permlug.org/taxonomy/term/307/">http</category>
 <category domain="http://www.permlug.org/taxonomy/term/268/">Server</category>
 <category domain="http://www.permlug.org/taxonomy/term/72/">Прочее</category>
 <pubDate>Sun, 11 May 2008 15:21:28 +0400</pubDate>
 <dc:creator>CORPSE</dc:creator>
 <guid isPermaLink="false">3920 at http://www.permlug.org</guid>
</item>
</channel>
</rss>
