1. 获取IP:
Linux:
<span class="re2"><span style="color:#007800;">LC_ALL=</span></span>C ifconfig | <span class="kw2"><strong><span style="color:#c20cb9;">grep</span></strong></span> <span class="st0"><span style="color:#ff0000;">'inet addr:'</span></span>| <span class="kw2"><strong><span style="color:#c20cb9;">grep</span></strong></span> -v <span class="st0"><span style="color:#ff0000;">'127.0.0.1'</span></span> | <span class="kw2"><strong><span style="color:#c20cb9;">cut</span></strong></span> -d: -f2 | <span class="kw2"><strong><span style="color:#c20cb9;">awk</span></strong></span> <span class="st0"><span style="color:#ff0000;">'{ print $1}'</span></span>
FreeBSD/OpenBSD:
<span class="re2"><span style="color:#007800;">LC_ALL=</span></span>C ifconfig | <span class="kw2"><strong><span style="color:#c20cb9;">grep</span></strong></span> -E <span class="st0"><span style="color:#ff0000;">'inet.[0-9]'</span></span> | <span class="kw2"><strong><span style="color:#c20cb9;">grep</span></strong></span> -v <span class="st0"><span style="color:#ff0000;">'127.0.0.1'</span></span> | <span class="kw2"><strong><span style="color:#c20cb9;">awk</span></strong></span> <span class="st0"><span style="color:#ff0000;">'{ print $2}'</span></span>
Solaris:
<span class="re2"><span style="color:#007800;">LC_ALL=</span></span>C ifconfig -a | <span class="kw2"><strong><span style="color:#c20cb9;">grep</span></strong></span> inet | <span class="kw2"><strong><span style="color:#c20cb9;">grep</span></strong></span> -v <span class="st0"><span style="color:#ff0000;">'127.0.0.1'</span></span> | <span class="kw2"><strong><span style="color:#c20cb9;">awk</span></strong></span> <span class="st0"><span style="color:#ff0000;">'{ print $2}'</span></span>
#!/bin/sh
# Shell script scripts to read ip address
# -------------------------------------------------------------------------
# Copyright (c) 2005 nixCraft project <http://cyberciti.biz/fb/>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------
# Get OS name
OS=`uname`
IO="" # store IP
case $OS in
Linux) IP=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'`;;
FreeBSD|OpenBSD) IP=`ifconfig | grep -E 'inet.[0-9]' | grep -v '127.0.0.1' | awk '{ print $2}'` ;;
SunOS) IP=`ifconfig -a | grep inet | grep -v '127.0.0.1' | awk '{ print $2} '` ;;
*) IP="Unknown";;
esac
echo "$IP"
2. test substr
str='this is a tree! and that is a car.'
//如果包含this
[[ $str =~ "this" ]] && echo "\$str contains this"
//如果不包含that
[[ $str =~ "that" ]] || echo "\$str does NOT contain that"
3. random:
[chengmo@centos5 shell]$ date +%s
1287764773
#获得时间戳,当前到:1970-01-01 00:00:00 相隔的秒数
#如果用它做随机数,相同一秒的数据是一样的。在做循环处理,多线程里面基本不能满足要求了。
[chengmo@centos5 shell]$ date +%N
738710457
#获得当前时间的纳秒数据,精确到亿分之一秒。
#这个相当精确了,就算在多cpu,大量循环里面,同一秒里面,也很难出现相同结果,不过不同时间里面还会有大量重复碰撞
[chengmo@centos5 shell]$ date +%s%N
1287764807051101270
#这个可以说比较完美了,加入了时间戳,又加上了纳秒
#!/bin/sh
#写个随机函数,调用方法random min max
#在min 与 max直接获得随机整数
#copyright chengmo QQ:8292669
#获得随机数返回值,shell函数里算出随机数后,更新该值
function
random()
{
min=$1;
max=$2-$1;
num=$(
date
+%s+%N);
((retnum=num%max+min));
#进行求余数运算即可
echo
$retnum;
#这里通过echo 打印出来值,然后获得函数的,stdout就可以获得值
#还有一种返回,定义全价变量,然后函数改下内容,外面读取
}
#得到1-10的seq数据项
for
i
in
{1..10};
do
out=$(random 2 10000);
echo
$i,
"2-10000"
,$out;
done
;
echo
$RANDOM
[chengmo@centos5 shell]$
head
-1
/dev/urandom
ãņù…•KTþçanVÕã¹Û&¡õ¾“ô2íùU“ žF¦_ ÿ”†mEðûUráÏ=J¯TŸA•ÌAÚRtÓ
#读一行,怎么是乱码呢?其实它是通过二进制数据保存实时数据的,那么我们怎么样把它变成整型数据呢?
[chengmo@centos5 ~
/shell
]$
head
-200
/dev/urandom
| cksum
1615228479 50333
#由于urandom的数据是非常多,不能直接通过cat读取,这里取前200行,其实整个数据都是变化的,取多少也一样是唯一的。
#cksum 将读取文件内容,生成唯一的表示整型数据,只有文件内容不变,生成结果就不会变化,与php crc函数
[chengmo@centos5 shell]$
head
-200
/dev/urandom
| cksum |
cut
-f1 -d
" "
484750180
#cut 以” “分割,然后得到分割的第一个字段数据
[chengmo@centos5 ~
/shell
]$
cat
/proc/sys/kernel/random/uuid
dff68213-b700-4947-87b1-d9e640334196
[chengmo@centos5 ~
/shell
]$
cat
/proc/sys/kernel/random/uuid
7b57209a-d285-4fd0-88b4-9d3162d2e1bc
#连续2次读取,得到的uuid是不同的
[chengmo@centos5 ~
/shell
]$
cat
/proc/sys/kernel/random/uuid
| cksum |
cut
-f1 -d
" "
2141807556
#同上方法得到随机整数