<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Vidul Nikolaev Petrov: Tag administration</title>
    <link>http://www.vidul.com/articles/tag/administration</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>downloader</title>
      <description>&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_perl "&gt;#!/usr/bin/perl

use strict;
use warnings;
use WWW::Mechanize;
use LWP::Simple;
use Data::Dumper;
use Time::HiRes qw( usleep tv_interval gettimeofday );
$|++;
my $url  = shift || die &amp;quot;no url given!\n&amp;quot;;
my $ext  = shift || 'mp3'; #die &amp;quot;no file extention given!\n&amp;quot;;
my $mech = WWW::Mechanize-&amp;gt;new(agent=&amp;gt;&amp;quot;Mozilla/5.0&amp;quot;);
my $ua   = LWP::UserAgent-&amp;gt;new;
my %seen;

$mech-&amp;gt;get($url);
$ua-&amp;gt;timeout(5);

my $links = $mech-&amp;gt;links;

no warnings;
my $c = 0;
for my $link ( @{$links} ) {
        my $url  = $link-&amp;gt;url_abs;
        my $res  = $ua-&amp;gt;head($url);
        my $http_res   = HTTP::Response-&amp;gt;new($res);
        my $abs_name   = $http_res -&amp;gt;{'_rc'}-&amp;gt;{'_previous'}-&amp;gt;{'_headers'}-&amp;gt;{'location'};
        my ($rel_name) = $abs_name =~ /.+\/(.+)$/;
        my $local_name = $rel_name;

        $seen{$local_name}++ and next;

        if( $rel_name =~ /\Q$ext\E$/i ){
                $rel_name =~ s/\%\d+/ /g;
                $rel_name =~ s/(.{35}).+/$1.../;
                print(pack('A45', &amp;quot;[$rel_name]&amp;quot;), &amp;quot;  is being downloaded ... &amp;quot;);
                my $s_time = q{};
                my $e_time = q{};
                my $flag = [];

                for( 1..5 ){
                        local $SIG{ALRM} = sub { die(&amp;quot;timeout&amp;quot;) };
                        eval {
                           alarm(10);
                           $flag = [head($abs_name)];
                           alarm(0);
                        };
                        next if $@ =~ m|timeout|;
                        last if $@ !~ m|timeout|;
                }

                if( $flag-&amp;gt;[0] ){
                        $c++;
                        $s_time = [gettimeofday];
                        getstore($abs_name, $c.&amp;quot;-&amp;quot;.$local_name);
                        $e_time = tv_interval ($s_time, [gettimeofday]);
                }

                $e_time =  $e_time ? $e_time . &amp;quot; seconds&amp;quot; : 'less than 1 milisecond';
                print &amp;quot;timeout failure in $e_time seconds :(\n&amp;quot; and next if $@;
                print &amp;quot;done in $e_time\n&amp;quot;;
        }
}

`ruby -e 'Dir[&amp;quot;*&amp;quot;].each{|f| File.rename f, f.sub(/^\d+-/, &amp;quot;&amp;quot;)}'`;
`ruby -e 'Dir[&amp;quot;*&amp;quot;].each{|f| File.rename f, f.gsub(/%20/, &amp;quot;_&amp;quot;)}'`;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
      <pubDate>Mon, 09 Jun 2008 02:09:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:a51394b9-1530-46c3-aa0f-585324581bb5</guid>
      <author>root</author>
      <link>http://www.vidul.com/articles/2008/06/09/downloader</link>
      <category>Perl</category>
      <category>administration</category>
    </item>
    <item>
      <title>Ruby system administration scripts</title>
      <description>&lt;b&gt;OS users&lt;/b&gt;:
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;users&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;File&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;&lt;span class="punct"&gt;(&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;/etc/passwd&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;).&lt;/span&gt;&lt;span class="ident"&gt;collect&lt;/span&gt;&lt;span class="punct"&gt;{|&lt;/span&gt;&lt;span class="ident"&gt;x&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt; &lt;span class="ident"&gt;x&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;split&lt;/span&gt;&lt;span class="punct"&gt;('&lt;/span&gt;&lt;span class="string"&gt;:&lt;/span&gt;&lt;span class="punct"&gt;')[&lt;/span&gt;&lt;span class="number"&gt;0&lt;/span&gt;&lt;span class="punct"&gt;]}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;b&gt;Number of files in directory&lt;/b&gt;:
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;puts&lt;/span&gt; &lt;span class="punct"&gt;%x{&lt;/span&gt;&lt;span class="string"&gt;ls&lt;/span&gt;&lt;span class="punct"&gt;}.&lt;/span&gt;&lt;span class="ident"&gt;split&lt;/span&gt;&lt;span class="punct"&gt;(/&lt;/span&gt;&lt;span class="regex"&gt;&lt;span class="escape"&gt;\n&lt;/span&gt;&lt;/span&gt;&lt;span class="punct"&gt;/).&lt;/span&gt;&lt;span class="ident"&gt;size&lt;/span&gt;
&lt;span class="ident"&gt;puts&lt;/span&gt; &lt;span class="punct"&gt;%x[&lt;/span&gt;&lt;span class="string"&gt;ls|wc&lt;/span&gt;&lt;span class="punct"&gt;].&lt;/span&gt;&lt;span class="ident"&gt;split&lt;/span&gt;&lt;span class="punct"&gt;(/&lt;/span&gt;&lt;span class="regex"&gt;&lt;span class="escape"&gt;\s&lt;/span&gt;+&lt;/span&gt;&lt;span class="punct"&gt;/)[&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="punct"&gt;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;b&gt;Network interfaces&lt;/b&gt;:
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;inet&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;Hash&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;&lt;span class="punct"&gt;{|&lt;/span&gt;&lt;span class="ident"&gt;h&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt;&lt;span class="ident"&gt;k&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt; &lt;span class="ident"&gt;h&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="ident"&gt;k&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;split&lt;/span&gt;&lt;span class="punct"&gt;(/&lt;/span&gt;&lt;span class="regex"&gt;&lt;span class="escape"&gt;\s&lt;/span&gt;&lt;/span&gt;&lt;span class="punct"&gt;/)[&lt;/span&gt;&lt;span class="number"&gt;0&lt;/span&gt;&lt;span class="punct"&gt;]]&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="ident"&gt;k&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;scan&lt;/span&gt;&lt;span class="punct"&gt;(/&lt;/span&gt;&lt;span class="regex"&gt;addr:(&lt;span class="escape"&gt;\d&lt;/span&gt;+&lt;span class="escape"&gt;\.\d&lt;/span&gt;+&lt;span class="escape"&gt;\.\d&lt;/span&gt;+&lt;span class="escape"&gt;\.\d&lt;/span&gt;+)&lt;/span&gt;&lt;span class="punct"&gt;/)[&lt;/span&gt;&lt;span class="number"&gt;0&lt;/span&gt;&lt;span class="punct"&gt;].&lt;/span&gt;&lt;span class="ident"&gt;to_s&lt;/span&gt;&lt;span class="punct"&gt;}&lt;/span&gt;

&lt;span class="punct"&gt;%x[&lt;/span&gt;&lt;span class="string"&gt;ifconfig&lt;/span&gt;&lt;span class="punct"&gt;].&lt;/span&gt;&lt;span class="ident"&gt;to_s&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;split&lt;/span&gt;&lt;span class="punct"&gt;(&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;&lt;span class="escape"&gt;\n\n&lt;/span&gt;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;).&lt;/span&gt;&lt;span class="ident"&gt;collect&lt;/span&gt;&lt;span class="punct"&gt;{|&lt;/span&gt;&lt;span class="ident"&gt;x&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt; &lt;span class="ident"&gt;inet&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="ident"&gt;x&lt;/span&gt;&lt;span class="punct"&gt;]}&lt;/span&gt;

&lt;span class="comment"&gt;# dump the structure: puts inet.inspect&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;to be continued&amp;#8230;.&lt;/p&gt;</description>
      <pubDate>Sat, 22 Mar 2008 12:45:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:71d8031a-9b9f-4fac-ae05-049a33622e68</guid>
      <author>root</author>
      <link>http://www.vidul.com/articles/2008/03/22/ruby-system-administration</link>
      <category>Ruby</category>
      <category>scripts</category>
      <category>administration</category>
    </item>
    <item>
      <title>Special characters in file name</title>
      <description>&lt;p&gt;Safely manipulate file with special characters in the name:&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;ruby&lt;/span&gt; &lt;span class="punct"&gt;-&lt;/span&gt;&lt;span class="ident"&gt;rfileutils&lt;/span&gt; &lt;span class="punct"&gt;-&lt;/span&gt;&lt;span class="ident"&gt;e&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;FileUtils.rm_r &amp;quot;~&amp;quot;&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
      <pubDate>Wed, 09 Jan 2008 00:43:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:071c6a34-1f03-4c01-977a-8464ced1ae9f</guid>
      <author>root</author>
      <link>http://www.vidul.com/articles/2008/01/09/special-characters-in-file-name</link>
      <category>Ruby</category>
      <category>administration</category>
    </item>
    <item>
      <title>&amp;quot;Argument list too long&amp;quot;</title>
      <description>&lt;p&gt;Given that &lt;a href="http://www.linuxjournal.com/article/6060"&gt;linuxjournal&lt;/a&gt; has some good points, there is no need for another solution, except in the cases when you operate on different machine. Here is oneliner solution:&lt;/p&gt;


&lt;b&gt;irb console&lt;/b&gt; #remove Opera cached files
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;too_many_files&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;~/.opera/cache4/&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;

&lt;span class="constant"&gt;Dir&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;too_many_files_dir&lt;/span&gt;&lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;each&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;f&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt;
  &lt;span class="constant"&gt;File&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;file?&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;f&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt; &lt;span class="punct"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="constant"&gt;File&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;unlink&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;f&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
      <pubDate>Tue, 08 Jan 2008 20:08:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:5d7150d6-b1f8-4090-80ec-2187d2f7aa89</guid>
      <author>root</author>
      <link>http://www.vidul.com/articles/2008/01/08/argument-list-too-long</link>
      <category>Ruby</category>
      <category>administration</category>
    </item>
    <item>
      <title>Getting ip addresses from log file</title>
      <description>&lt;p&gt;&lt;b&gt;perl -ne&lt;/b&gt; &lt;strong style="color:gray;"&gt;&amp;#8216;&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_default "&gt;$_{$1}=1 if /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/;eof&amp;amp;&amp;amp;{print join(&amp;quot;\n&amp;quot;, sort keys %_)}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&amp;#8216;&lt;/strong&gt; access.log&lt;/p&gt;</description>
      <pubDate>Tue, 08 Jan 2008 02:10:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:d63b1668-7384-4bdc-bc48-0b3f1662ec11</guid>
      <author>root</author>
      <link>http://www.vidul.com/articles/2008/01/08/getting-ip-addresses-from-log-file</link>
      <category>Perl</category>
      <category>oneliners</category>
      <category>administration</category>
    </item>
    <item>
      <title>Fast ICMP scanner (Perl oneliner)</title>
      <description>&lt;p&gt;&lt;span style="color:#444;"&gt;[localhost]$&lt;/span&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_perl "&gt;time perl -MNet::Ping -e '$p = Net::Ping-&amp;gt;new();
@hosts = qw(
127.0.0.1 
172.16.0.1 
172.16.0.2 
172.16.0.5 
172.16.0.254);
#the significant detail
$p-&amp;gt;{&amp;quot;timeout&amp;quot;} = 0.005; 
for (@hosts) { print &amp;quot;$_ is &amp;quot;.($p-&amp;gt;ping($_) ? &amp;quot;up&amp;quot; : &amp;quot;down&amp;quot;).$/ }'&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;


&lt;div style="color:#333;padding:1px;margin-top:5px;"&gt;
127.0.0.1 is up&lt;br/&gt;
172.16.0.1 is up&lt;br/&gt;
172.16.0.2 is down&lt;br/&gt;
172.16.0.5 is up&lt;br/&gt;
172.16.0.254 is down&lt;br/&gt;
&lt;br/&gt;
real    0m0.062s&lt;br/&gt;
user    0m0.040s&lt;br/&gt;
sys     0m0.000s&lt;br/&gt;
&lt;/div&gt;</description>
      <pubDate>Tue, 08 Jan 2008 01:05:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:81ce35e8-4ee2-4ecc-a218-34cd31a66671</guid>
      <author>root</author>
      <link>http://www.vidul.com/articles/2008/01/08/fast-icmp-scanner-perl-one-liner</link>
      <category>Perl</category>
      <category>administration</category>
      <category>oneliners</category>
    </item>
    <item>
      <title>Simple file hiding</title>
      <description>&lt;b&gt;irb console&lt;/b&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="global"&gt;$/&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;&lt;span class="escape"&gt;\r\n&lt;/span&gt;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;

&lt;span class="comment"&gt;# addition of .mp3 file to .gif file&lt;/span&gt;
&lt;span class="constant"&gt;File&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;open&lt;/span&gt;&lt;span class="punct"&gt;('&lt;/span&gt;&lt;span class="string"&gt;test.gif&lt;/span&gt;&lt;span class="punct"&gt;',&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;a&lt;/span&gt;&lt;span class="punct"&gt;')&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;fh&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt; 
  &lt;span class="ident"&gt;fh&lt;/span&gt; &lt;span class="punct"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;&lt;span class="escape"&gt;\r\n&lt;/span&gt;&lt;span class="expr"&gt;#{File.readlines('test.mp3')}&lt;/span&gt;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;

&lt;span class="comment"&gt;# extraction of the .mp3 content&lt;/span&gt;
&lt;span class="constant"&gt;File&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;open&lt;/span&gt;&lt;span class="punct"&gt;('&lt;/span&gt;&lt;span class="string"&gt;extracted.mp3&lt;/span&gt;&lt;span class="punct"&gt;',&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;w&lt;/span&gt;&lt;span class="punct"&gt;')&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;fh&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt; 
  &lt;span class="ident"&gt;fh&lt;/span&gt; &lt;span class="punct"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="constant"&gt;File&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;readlines&lt;/span&gt;&lt;span class="punct"&gt;('&lt;/span&gt;&lt;span class="string"&gt;test.gif&lt;/span&gt;&lt;span class="punct"&gt;')[&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="punct"&gt;..-&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="punct"&gt;]&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
      <pubDate>Tue, 08 Jan 2008 00:45:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:6f5e718c-9b03-4ae1-bb95-38a8092dfcf3</guid>
      <author>root</author>
      <link>http://www.vidul.com/articles/2008/01/08/simple-file-hiding</link>
      <category>Ruby</category>
      <category>administration</category>
    </item>
    <item>
      <title>getting root acccess without sudo</title>
      <description>&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_C "&gt;#include &amp;lt;sys/types.h&amp;gt;
#include &amp;lt;unistd.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;

int main(int argc, char** argv)
{
    int root_id = 0;
    char *command = argv[1];

    if(!command)
        command = &amp;quot;/bin/bash&amp;quot;;

    setuid(root_id);
    system(command);
    exit(0);
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;strong&gt;root#&lt;/strong&gt; gcc -o temproot temproot.c&lt;br/&gt;
&lt;strong&gt;root#&lt;/strong&gt; chmod +s temproot&lt;br/&gt;
&lt;strong&gt;nobody$&lt;/strong&gt; alias root=&amp;#8217;temproot &amp;#8220;su &amp;#8211; root&amp;#8221;&amp;#8217;&lt;br/&gt;
&lt;strong&gt;nobody$&lt;/strong&gt; root</description>
      <pubDate>Sat, 29 Dec 2007 08:31:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:488cc02b-d10e-4a33-bff6-bed3be3dee86</guid>
      <author>root</author>
      <link>http://www.vidul.com/articles/2007/12/29/getting-root-acccess-without-sudo</link>
      <category>programming</category>
      <category>administration</category>
    </item>
    <item>
      <title>Everyday UNIX Commands</title>
      <description>&lt;p&gt;&lt;BR&gt;
&lt;B&gt;find&lt;/B&gt;&lt;BR&gt;
Recursively find and print all files, having 'txt' extention:&lt;BR&gt;
&lt;FONT color="brown"&gt;&lt;STRONG&gt;find&lt;/STRONG&gt; ./ -type f -name "*.txt"&lt;/FONT&gt;&lt;BR&gt;
&lt;BR&gt;
The same but case insensititve:&lt;BR&gt;
&lt;FONT color="brown"&gt;&lt;STRONG&gt;find&lt;/STRONG&gt; ./ -type f -iname "*.txt"&lt;/FONT&gt;&lt;BR&gt;
&lt;BR&gt;
&lt;code&gt;cat&lt;/code&gt; all found 'txt' files:&lt;BR&gt;
&lt;FONT color="brown"&gt;&lt;STRONG&gt;find&lt;/STRONG&gt; ./ -type f -name "*.txt" -exec cat '{}' \;&lt;/FONT&gt;&lt;BR&gt;
&lt;BR&gt;
&lt;code&gt;rm&lt;/code&gt; all found 'txt' files, starting with capital letter:&lt;BR&gt;
&lt;FONT color="brown"&gt;&lt;STRONG&gt;find&lt;/STRONG&gt; ./ -type f -name "[A-Z]*.txt" -exec rm '{}' \;&lt;/FONT&gt;&lt;BR&gt;
&lt;BR&gt;
&lt;code&gt;rm&lt;/code&gt; all except 'txt' files:&lt;BR&gt;
&lt;FONT color="brown"&gt;&lt;STRONG&gt;find&lt;/STRONG&gt; ./ -type f ! -name "*.txt" -exec rm '{}' \;&lt;/FONT&gt;&lt;BR&gt;
&lt;BR&gt;&lt;BR&gt;
&lt;B&gt;grep&lt;/B&gt;&lt;BR&gt;
Find and print all lines in all files, containing  'tester':&lt;BR&gt;
&lt;FONT color="brown"&gt;&lt;STRONG&gt;grep&lt;/STRONG&gt; tester *&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;
Find and print all lines in all files, which do not contain  'tester':&lt;BR&gt;
&lt;FONT color="brown"&gt;&lt;STRONG&gt;grep -v&lt;/STRONG&gt; tester *&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;
The same but recursively:&lt;BR&gt;
&lt;FONT color="brown"&gt;&lt;STRONG&gt;grep -r -v&lt;/STRONG&gt; tester *&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;
The same but case insensitive:&lt;BR&gt;
&lt;FONT color="brown"&gt;&lt;STRONG&gt;grep -i -v&lt;/STRONG&gt; tester *&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;B&gt;processes&lt;/B&gt;&lt;BR&gt;
simple Perl daemon:&lt;BR&gt;
&lt;FONT color="brown"&gt;perl -e 'use POSIX qw(setsid); fork; setsid; sleep 1, print $c++,$/ while 1'&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;
checking the process existance: &lt;FONT color="brown"&gt;&lt;STRONG&gt;ps x&lt;/STRONG&gt; perl&lt;/FONT&gt;&lt;BR&gt;
another way to find the process id: &lt;FONT color="brown"&gt;&lt;STRONG&gt;pgrep&lt;/STRONG&gt; perl&lt;/FONT&gt;&lt;BR&gt;
kill all processes, related to perl interpreter: &lt;FONT color="brown"&gt;&lt;STRONG&gt;pkill&lt;/STRONG&gt; perl&lt;/FONT&gt;&lt;BR&gt;
&lt;BR&gt;&lt;BR&gt;
&lt;B&gt;archive&lt;/B&gt;&lt;BR&gt;
Archive directory and all files and sub-directories:&lt;BR&gt;
&lt;FONT color="brown"&gt;&lt;STRONG&gt;tar cvf&lt;/STRONG&gt; home.tar /home&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;
The same but gzip compresses:&lt;BR&gt;
&lt;FONT color="brown"&gt;&lt;STRONG&gt;tar zcvf&lt;/STRONG&gt; home.tar.gz /home&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;
The same but bzip2 compressed:&lt;BR&gt;
&lt;FONT color="brown"&gt;&lt;STRONG&gt;tar jcvf &lt;/STRONG&gt;home.tar.bz2 /home&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;
"untar" gzip compressed archive:&lt;BR&gt;
&lt;FONT color="brown"&gt;&lt;STRONG&gt;tar zxvf&lt;/STRONG&gt; home.tar.gz&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;
"untar" bzip2 compressed archive:&lt;BR&gt;
&lt;FONT color="brown"&gt;&lt;STRONG&gt;tar jxvf&lt;/STRONG&gt; home.tar.gz&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;B&gt;column extraction&lt;/B&gt;&lt;BR&gt;
Let's assume that we need all user names from "/etc/passwd", which is the 1st column (the columns delimiter is &lt;B&gt;:&lt;/B&gt; ):&lt;BR&gt;&lt;BR&gt;
&lt;B&gt;cut&lt;/B&gt; command&lt;BR&gt;
&lt;FONT color="brown"&gt;cat /etc/passwd | &lt;STRONG&gt;cut -f1 -d:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;BR&gt;
&lt;B&gt;awk&lt;/B&gt; script&lt;BR&gt;
&lt;FONT color="brown"&gt;cat /etc/passwd | &lt;STRONG&gt;awk -F':' '{print $1}'&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;BR&gt;
&lt;B&gt;Perl&lt;/B&gt; source code&lt;BR&gt;
&lt;FONT color="brown"&gt;perl -ne '&lt;STRONG&gt;/(\w+)/ &amp;amp;&amp;amp; print $1,$/&lt;/STRONG&gt;' /etc/passwd&lt;/FONT&gt;&lt;BR&gt;
&lt;BR&gt;
&lt;B&gt;Ruby&lt;/B&gt; source code&lt;BR&gt;
&lt;FONT color="brown"&gt;ruby -ne '&lt;STRONG&gt;puts $1 if /(\w+)/&lt;/STRONG&gt;' /etc/passwd&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;B&gt;ISO image manipulation&lt;/B&gt;&lt;BR&gt;
ISO image creation:&lt;BR&gt;
&lt;FONT color="brown"&gt;&lt;STRONG&gt;dd&lt;/STRONG&gt; if=/dev/cdrom of=/tmp/cdr.iso&lt;/FONT&gt;&lt;BR&gt;
&lt;FONT color="brown"&gt;&lt;STRONG&gt;mkisofs -rJTV&lt;/STRONG&gt; "books label" /home/books &gt; /tmp/books.iso&lt;/FONT&gt;&lt;BR&gt;
&lt;BR&gt;
ISO image reading:&lt;BR&gt;
&lt;FONT color="brown"&gt;&lt;STRONG&gt;mount -o loop -t iso9660&lt;/STRONG&gt; /tmp/books.iso /mnt/isoimage&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 23 Aug 2007 09:23:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:7a785cc5-ff26-4885-a460-cf13fe3c9942</guid>
      <author>root</author>
      <link>http://www.vidul.com/articles/2007/08/23/everyday-unix-commands</link>
      <category>scripts</category>
      <category>administration</category>
      <category>UNIX</category>
    </item>
    <item>
      <title>compare the ip address of different hostnames</title>
      <description>&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;
&lt;span class="ident"&gt;require&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;socket&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;

&lt;span class="keyword"&gt;unless&lt;/span&gt; &lt;span class="constant"&gt;ARGV&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;size&lt;/span&gt; &lt;span class="punct"&gt;==&lt;/span&gt; &lt;span class="number"&gt;2&lt;/span&gt;
 &lt;span class="keyword"&gt;raise&lt;/span&gt; &lt;span class="constant"&gt;ArgumentError&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt;
   &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;Expected two hostnames, got &lt;span class="expr"&gt;#{ARGV.size}&lt;/span&gt;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;

&lt;span class="ident"&gt;h1&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt;&lt;span class="ident"&gt;h2&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;ARGV&lt;/span&gt;

&lt;span class="keyword"&gt;begin&lt;/span&gt;
  &lt;span class="ident"&gt;h1&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt;&lt;span class="ident"&gt;h2&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;Socket&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="ident"&gt;getaddrinfo&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;h1&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="number"&gt;7&lt;/span&gt;&lt;span class="punct"&gt;)[&lt;/span&gt;&lt;span class="number"&gt;0&lt;/span&gt;&lt;span class="punct"&gt;][&lt;/span&gt;&lt;span class="number"&gt;3&lt;/span&gt;&lt;span class="punct"&gt;],&lt;/span&gt; &lt;span class="constant"&gt;Socket&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="ident"&gt;getaddrinfo&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;h2&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="number"&gt;7&lt;/span&gt;&lt;span class="punct"&gt;)[&lt;/span&gt;&lt;span class="number"&gt;0&lt;/span&gt;&lt;span class="punct"&gt;][&lt;/span&gt;&lt;span class="number"&gt;3&lt;/span&gt;&lt;span class="punct"&gt;]&lt;/span&gt;
&lt;span class="keyword"&gt;rescue&lt;/span&gt;
  &lt;span class="ident"&gt;print&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;&lt;span class="expr"&gt;#{$!}&lt;/span&gt;...&lt;span class="escape"&gt;\t&lt;/span&gt;exiting&lt;span class="escape"&gt;\n&lt;/span&gt;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;
  &lt;span class="ident"&gt;exit&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;

&lt;span class="keyword"&gt;if&lt;/span&gt; &lt;span class="ident"&gt;h1&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;eql?&lt;/span&gt; &lt;span class="ident"&gt;h2&lt;/span&gt;
  &lt;span class="ident"&gt;puts&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;hosts have the same ip address: &lt;span class="expr"&gt;#{h1}&lt;/span&gt;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="keyword"&gt;else&lt;/span&gt;
  &lt;span class="ident"&gt;puts&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;hosts differ: &lt;span class="expr"&gt;#{h1}&lt;/span&gt; &lt;span class="expr"&gt;#{h2}&lt;/span&gt;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 20 Jul 2007 04:38:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:b2eb1510-42a8-4087-b33c-69fba974cbdf</guid>
      <author>root</author>
      <link>http://www.vidul.com/articles/2007/07/20/compare-the-ip-address-of-different-hostnames</link>
      <category>scripts</category>
      <category>administration</category>
      <category>scripts</category>
    </item>
  </channel>
</rss>
