Ez lesz itten az én commandline-fu rovatom.
...vagy ez:
http://www.commandlinefu.com/commands/by/bandie91
- A hozzászóláshoz be kell jelentkezni
elsõ példa: tisztelgés a linuxbox-nak
- A hozzászóláshoz be kell jelentkezni
szambás munkaállomások keresése
Ez a oneliner kilistázza a subnet-ünkben található és NetBIOS névfeloldásra válaszoló gépeket, NetBIOS nevükkel. Ami Windowzok esetében egybeesik a hosztnévvel.
arp-scan -I eth0 -l | perl -ne '/((\d{1,3}\.){3}\d{1,3})/ and $ip=$1 and $_=`nmblookup -A $ip` and /([[:alnum:]-]+)\s+<00>[^<]+<ACTIVE>/m and printf "%15s %s\n",$ip,$1'
szükségünk lesz hozzá arp-scan utility-re. ARP csomagok olyan alacsony szintũek, hogy root jogokkal lehet csak generálni, ezért én tettem rá egy ragadós bitet:
chmod u+s /usr/bin/arp-scan
az nmblookup a samba-common-bin csomag része.
- A hozzászóláshoz be kell jelentkezni
A következõ oneliner
A következõ oneliner elkezdi keresni a jelenlegi könyvtártól számítva a legfrisebb állományt.
find . -printf "%T@ %p\n" | sed -e 1d | while read ts fn; do ts=${ts%.*}; if [ $ts -ge ${gts:-0} ]; then gts=$ts; echo `date -d @$gts` $fn; fi; done
- A hozzászóláshoz be kell jelentkezni
Az alapértelmezett átjáró kiírása
Az alapértelmezett átjáró kiírása. Már ppp kapcsolatoknál is mũködik. Én a [geshifilter-code].bash_profile[/geshifilter-code]-omba írtam.
route -n | perl -ne '$ANY="0.0.0.0"; /^$ANY/ and split /\s+/ and print "Gateway to the World: ",($_[1]!=$ANY)?$_[1]:(`ip address show $_[$#_]`=~/peer ([0-9\.]+)/ and $1),", via $_[$#_].\n"'
- A hozzászóláshoz be kell jelentkezni
Minap kaptam egy egyszerũ
Minap kaptam egy egyszerũ informatikai számítási feladatot, amit automatizálandó egy szkriptet kellett készítenem. Most Ti találjátok ki, mit számol ez a Perl egysoros!
(a stdin-rõl vár bemenetet, de ha helyettesíted a <>-t "szöveg"-re, akkor arra végzi el a mũveletet)
($_,$m)=split/\//,<>;print join".",map{$_&eval"0b".1x$m.$-x(32-$m)."<<8*".$i++.">>24"}split/\./
- A hozzászóláshoz be kell jelentkezni
hm
Hát ezért ezen dolgozni kéne egy keveset h megrághatóvá váljék számomra.
Kicsit szokatlan a formátum nekem. Nem szoktam a map-et használni foreach helyett.
Próbálkoztam pár perc alatt megérteni de nem igazán sikerült.
[geshifilter-code]
0[46.][kecsi@aws]:~/bin> echo "123//izebbb230bcxxx/123545ize0bbbb" | ./ize.pl
1:
2: 1x
3: 04: 00000000000000000000000000000000
5: <<8*
0[47.][kecsi@aws]:~/bin>echo "1/2/3/b0/nemtom/cxxx/123545ize0bbbb" | ./ize.pl
1: 2
2: 1x2
3: 04: 000000000000000000000000000000
5: <<8*
0[48.][kecsi@aws]:~/bin> cat ize.pl
#!/usr/bin/perl
($_,$m)=split/\//,<>;
print "1: $m\n";
print "2: 1x$m\n";
print "3: ".eval"0b"."\n";
print "4: ".$-x(32-$m)."\n";
print "5: "."<<8*"."\n";
print join".",map{$_&eval"0b".1x$m.$-x(32-$m)."<<8*".$i++.">>24"}split/\./
<code>
de nem értem még a darabjait a foreach/map dolognak sem... át kéne alakítsam, ki kéne bontsam és nem akartam vele sok időt elszöszölni....
$i++ ismerős de nem használod sehol... avagy itt egyszerre ki is irja?
ugyanakkor találtam olyan teszt sztringet amitol elfekszik :)
<code>
[50.][kecsi@aws]:~/bin> echo "10b/123/izebbb230bcxxx/123545ize0bbbb" | ./ize.pl
1: 123
2: 1x123
3: 04:
5: <<8*
Integer overflow in binary number at (eval 2) line 1, <> line 1.
<code>[/geshifilter-code]
- A hozzászóláshoz be kell jelentkezni
map-ot használok az
map-ot használok az egyszerũbb ciklusmagokra (mint ez :-)) mert az egybõl vissza is adja a tömböt, nem kell köztes változót használni.
$i csak arra kell hogy legyen egy 0-tól számláló változóm.
a bemenet 2 tagú kell h legyen (egy / jel van benne).
$- -t át lehet írni 0-ra.
sokat segít az obfuszkálásban a perl gyenge tipusossága.
"m" a kezdõbetũje a beadott string $m -ben tárolt része nevének.
& << >> operátorok bitmũveletekrõl árulkodnak.
további jó dekriptelést!
- A hozzászóláshoz be kell jelentkezni
[geshifilter-code]curl -s -D - http://linuxbox.hu/ | awk '/<h2>Friss/,/<\/div/' | html2text -utf8[/geshifilter-code]