<?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>mysyslog.ru &#187; unix</title>
	<atom:link href="http://mysyslog.ru/posts/tag/unix/feed" rel="self" type="application/rss+xml" />
	<link>http://mysyslog.ru</link>
	<description>Всякая IT всячина</description>
	<lastBuildDate>Sat, 17 Mar 2012 17:39:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>jot и seq или как упростить себе работы с циклами</title>
		<link>http://mysyslog.ru/posts/280</link>
		<comments>http://mysyslog.ru/posts/280#comments</comments>
		<pubDate>Mon, 01 Mar 2010 10:17:57 +0000</pubDate>
		<dc:creator>constantine.malov</dc:creator>
				<category><![CDATA[Советы]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://mysyslog.ru/?p=280</guid>
		<description><![CDATA[jot (FreeBSD)
seq (Linux)
две простые утилиты для работы с последовательностями, прекрасная альтернатива замены for в shell скриптах.

Работать с ними очень просто:

SEQ=`jot 10 1 10`
for i in $SEQ
 echo $i
done

Получим

1
2
3
4
5
6
7
8
9
10

А если вот так, то

SEQ=`jot 10 10 1`


10
9
8
7
6
5
4
3
2
1

Первая[10] цифра, это число цифр, которые нужно напечатать, вторая[1] &#8211; первый элемент, третья[10] &#8211; последний элемент. Т.е. jot сам построит последовательность [...]]]></description>
			<content:encoded><![CDATA[<p>jot (FreeBSD)<br />
seq (Linux)<br />
две простые утилиты для работы с последовательностями, прекрасная альтернатива замены for в shell скриптах.<br />
<span id="more-280"></span><br />
Работать с ними очень просто:</p>
<pre class="brush: bash; light: false;">
SEQ=`jot 10 1 10`
for i in $SEQ
 echo $i
done
</pre>
<p>Получим</p>
<pre class="brush: bash; light: true;">
1
2
3
4
5
6
7
8
9
10
</pre>
<p>А если вот так, то</p>
<pre class="brush: bash; light: false;">
SEQ=`jot 10 10 1`
</pre>
<pre class="brush: bash; light: true;">
10
9
8
7
6
5
4
3
2
1
</pre>
<p>Первая[10] цифра, это число цифр, которые нужно напечатать, вторая[1] &#8211; первый элемент, третья[10] &#8211; последний элемент. Т.е. jot сам построит последовательность из 10 цифр с равным шагом, чтобы пройтись от 1 до 10.</p>
<p>seq в Linux несколько проще, </p>
<pre class="brush: bash; light: false;">
seq FIRST INCREMENT LAST
</pre>
]]></content:encoded>
			<wfw:commentRss>http://mysyslog.ru/posts/280/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>xinetd для сетевой службы на perl</title>
		<link>http://mysyslog.ru/posts/43</link>
		<comments>http://mysyslog.ru/posts/43#comments</comments>
		<pubDate>Sun, 28 Dec 2008 17:43:10 +0000</pubDate>
		<dc:creator>constantine.malov</dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://mysyslog.ru/?p=43</guid>
		<description><![CDATA[Вообще говоря в статье про tcp сервер на perl мы занимались изобретением велосипеда. Потому что все уже сделано за нас и мы могли спокойно сосредоточиться на логике приложения, не думаю о fork(), сокетах и т.п.

Напишам небольшую сетевую службу, которая будет принимать сообщение от пользователя и отвечать на него принятой строкой. Если в строчке, полученной от [...]]]></description>
			<content:encoded><![CDATA[<p>Вообще говоря в <a href="http://mysyslog.ru/?p=3">статье про tcp сервер на perl</a> мы занимались изобретением велосипеда. Потому что все уже сделано за нас и мы могли спокойно сосредоточиться на логике приложения, не думаю о fork(), сокетах и т.п.</p>
<p><span id="more-43"></span></p>
<p>Напишам небольшую сетевую службу, которая будет принимать сообщение от пользователя и отвечать на него принятой строкой. Если в строчке, полученной от пользователя будет только одна точка, то службы завершит свою работу.</p>
<pre lang="perl">#!/usr/bin/perl -w
use strict;

$| = 1;
while( my $line = <STDIN> )
{
    $line =~ s/\r?\n$//;
    if ($line =~ /^\.$/)
    {
    die "shutting down\n";
    }
    print "You send to me: $line\n";
}</pre>
<p>Из интересного здесь $| = 1 , эта специальная переменная, которая управляет сбросом буферов вывода на диск. Если она установлена в 0, то интерактивной работы у нас не получится.<br />
Теперь нужно настроить xinetd. Я не стал с ним разбираться, взял настройки от ftp. Создаем файл /etc/xinet.d/my-service</p>
<pre lang="perl">service my-server
{
        disable = no
        flags = REUSE
        socket_type = stream
        instances = 5
        wait = no
        user = root
        server = /root/my-service.pl
}</pre>
<p>Далее прописываем в /etc/services строчку:</p>
<pre lang="perl">my-server       3333/tcp</pre>
<p>Дальше достаточно перезапустить xinetd. </p>
]]></content:encoded>
			<wfw:commentRss>http://mysyslog.ru/posts/43/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

