bika
TW金牌会员

UID 138192
精华
27
积分 1720
帖子 941
阅读权限 70
注册 2008-7-23
状态 离线
|
|
|
shell 技巧
用自动导入函数的方法,可以在命令行下像执行命令一样快捷,而且速度快,占用资源少.
1c5n/a9R0[3s-}"L(~;R"g1,建立自己的函数库 tech.techweb.com.cn3y$p!l6Z"{4o
mkdir functionlib 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛'n6Q*j0K$e!c
然后将常用的脚本改成函数的语法,如: 4H&N'J3t%x
function filename { command ; } ,u0g&S,Z1}&b(U,}!X6I2g9P
将filename拷贝到functionlib中,
9h#U/^3Y#[%}.|*uTechWeb-技术社区2,修改环境文件,在/etc/profile中添加 -B2r5],o4`
export FPATH=$HOME/functionlib
.J#F!M W&~$CTechWeb-技术社区3,重登录一下 .@4M&C-c6g#s&m,?;_
这样的话,你就可以随时用像ls那样运行你自己的filename"命令"
"W&Y!N(G)L.Z/U2?.BTechWeb-技术社区而不需要用什么dot,sh,来运行你的函数/脚本啦~~
$r#v3G&x6x*x0w4{'P4e;v如果在脚本中运行,可以在脚本顶部用
&l9m,O7@+\1R$M+STechWeb-技术社区#!/bin/sh
1c `7D([9}9X m##
&N%S)B2t-H3{autoload filename //来自动导入函数. TechWeb-技术社区(Z#}1@;?&u6B.[.T9?:a
... TechWeb-技术社区:u-d'E!x%N5@/e
filename //调用函数
#K.h$o#O0M#v程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛...
$]3t"B&N9O4J&V"ITechWeb-技术社区用自动导入函数的方法,可以在命令行下像执行命令一样快捷,而且速度快,占用资源少.
5`)p)r*f;u;?1,建立自己的函数库 #F+Y5s6^-W)\4Q3b8y
mkdir functionlib *f s%],A:B)t%g,?0r3~
然后将常用的脚本改成函数的语法,如:
3k*f2V%L(]程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛function filename { command ; } 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛.D"^3P9B9F M3U,u0}
将filename拷贝到functionlib中, tech.techweb.com.cn+E6a:i/L;C
2,修改环境文件,在/etc/profile中添加 :V:H6L3s"t"P
export FPATH=$HOME/functionlib 4b7C5|9S#V3p-R$t
3,重登录一下
&n8z5F c&P9x"W!B,Vtech.techweb.com.cn这样的话,你就可以随时用像ls那样运行你自己的filename"命令"
4x8`(u3Y5f6{而不需要用什么dot,sh,来运行你的函数/脚本啦~~ 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛0M(k5T:t2F!N
如果在脚本中运行,可以在脚本顶部用
/y(O;p&R6P3kTechWeb-技术社区#!/bin/sh
e+h.Z,X4S W*N##
5^8|8l.u3@#}+P0x程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛autoload filename //来自动导入函数.
-?7c%g,u9t)j-M)\ ~"Z程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛...
(@'H1g#e$u-[2v8y$CTechWeb-技术社区filename //调用函数
3l-Z4\)P/N;jtech.techweb.com.cn...
0p8c.v:L,N1F9Ztech.techweb.com.cn技巧:pkill的妙用
$H0w%q1w2f4O%g"_ ^
'I:L0{,Y6E9W3m5[tech.techweb.com.cn有的时候有很多进程或运行或睡眠或僵死,占用了很多宝贵的内存空间,kill固然可以杀掉某些进程,但更好的方法是用pkill,举例:
8}5|7}3R8t5A7f代码:
!G1b!y2b2w9Mroot//root>ps -A
!R,]0?5\2x0\%J,g1?.jtech.techweb.com.cn PID TTY TIME CMD
%@&c3K5R Y"r"M ...程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛2T7i)z(W5r+_%[!x#G#B2x
1045 ? 00:00:00 kdeinitTechWeb-技术社区6n(V I#s3U3W
1052 ? 00:00:00 kdeinit程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛.o%e:_+F q(C%Y3o
1054 pts/0 00:00:00 xtermtech.techweb.com.cn#F!{(b#t8{"Z0^5j
1056 pts/1 00:00:00 bash!u9V1S.a*|3p:f
1082 pts/0 00:00:00 ps3q&G%n9|5};T3H,~
8E \$p$p4\'s6K3a
root//root>free
&i-w;R3e.O:J'? total used free shared buffers cached
'h'j7?1R6t程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛Mem: 252340 212036 40304 0 5752 103200
1t0|9W1h3M5B-/+ buffers/cache: 103084 149256
!H0W(^0m%F'w*\程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛Swap: 610460 0 610460
/t1i,Q2c#W2n+W$VTechWeb-技术社区
$g;?6j'i-u&l0Z;h&wroot//root>pkill -9 xterm;free.e7I4B,I0y
[1]+ Killed xterm
.l3[:?#p;P#|5z4o/]#z3jtech.techweb.com.cn total used free shared buffers cached
8Q;g'g.C0_.C!ptech.techweb.com.cnMem: 252340 210776 41564 0 5760 103200TechWeb-技术社区$s t:H0b.f/L(B
-/+ buffers/cache: 101816 150524tech.techweb.com.cn#w.n*R1P5n2L9o9i'I"|.t
Swap: 610460 0 610460 |
+d!b,~;V&U8[2?/A5g(~TechWeb-技术社区
&j6E&v6k0F0I0p1v7o在我杀掉了xterm这个进程后,看看你的free内存空间相应增加不少?.
-J F)K;R*D+a3c9sTechWeb-技术社区详细使用方法请: TechWeb-技术社区3t#F2\,f y
man pkill or pkill --help
1i,z)f,D;J+`!m6ftech.techweb.com.cn用stty和dd实现暂停,只须按一个键就可. /g9D*g/N%r%l'L-P
#!/bin/ksh 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛,]'}&` V0X
#
1u/S2L#q+J(`-W)zTechWeb-技术社区function char { !N,R/F/s9p:F/S
settty=$(stty -g) )B7b'h$S:_
stty raw *c.{7c+B:^ q3]
dd if=/dev/tty bs=1 count=1 2> /dev/null
(`#](P/H3m0O程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛stty -raw tech.techweb.com.cn+|'@&r;j/w*?$U
stty $settty TechWeb-技术社区(~*Z"t!R(~6Z'X$I%v
} 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛3d4E+o(d/{%B"@(x(y
print "Press any key to continue..." 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛2Z;a.].Z%e2k*b-X0q1}
input=$(char)
5@"r%r&~(}+N%^&h程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛技巧:如何检查用户的输入?
.B1c8X$K3v:J(mTechWeb-技术社区7i/S7h*e0D#[;j/\
有的时候,我们对用户的输入要作必要的检测,如,限制输入的长度/类型.举例说明: tech.techweb.com.cn)z3^$t#`8p1x-w
代码: tech.techweb.com.cn9l-o+T6Y1W+r
#!/bin/ksh
$m5D'?;G+E6V,Q0V&U#要求用户必须输入四个数字
8f5~)B2m(B7H/iTechWeb-技术社区while true程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛6]7l#N!L;b N
do
#V(m1_$y*z2w!Y1V'~tech.techweb.com.cnecho -n "请输入四个数字:"
&S/T4E'I'},b8e)?0w(~read num程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛'W8f7N i-M"P2`
len=${#num}
&f.s0y3{:F"r!z8\程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛#变量len存放输入的长度
#g(Z9i"a!G-ATechWeb-技术社区if [[ $num != [0-9][0-9][0-9][0-9] || $len != 4 ]] then
!K/N7^(l;f/p:B5@&f%M#进行检测,如果你输入有非数字字符,或者长度不等于四个,便提示错误信息"Q#Z I*p3L:}8L9Q&N
echo "错误! 重新输入"
4}*@1b/z(U)c*pcontinue
1\6`.I.~7V5kelsetech.techweb.com.cn(v;@*I)F$X&Q;s'k*B
echo "输入正确,退出!";exit 0'{4v!l;R&V)r2S-^
fi
%k2@5H.Y&k!B4[$Hdone |
$V-d9?0n+`$m G-w:j3c
4Q't'Y4G z%z6D(i程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛这是个例子,在我们编写脚本中可以借鉴
/w/N0H7D*M2H(f$c Kshell变量传递给sed,awk,grep简单方法 :{)}$g+}!p.f6A5b
:L4P3Q;N1E0C有时候在脚本编写中,需要往诸如awk等工具中传递shell的变量,举个简单的例子,如:%H3M-E9w;|%@%Q O,D
ps -aux|sed -n 1p程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛9s6x-H0z-j5?9i(_'k&G4l
read input?"please field number your want to see:"
9}!|1r,o$k0|9W*W8ptech.techweb.com.cnps -aux|awk '{print $"'${input}'"}'/o%G8]&d0Y!d1^4m7V)T
read enter?"please line number your want to see:"0t*d `*P,R$]#^
ps -aux|sed -n ${enter}p程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛0W'M7`7_3K!n%K!B G3y#A
read user?"please username your want to see:"
8k*q:j7q-P/g6a9Y'BTechWeb-技术社区ps -aux|grep $user
:J9n0K$q+N%`"i%F*@2V注:上述文件无实际意义,只为说明而已.*t+[&e7r5e7Q%P1i
| 开启小键盘数字灯的方法 tech.techweb.com.cn4q:T*w8d9Y(z,Z:t
,f1a6p1u;cTechWeb-技术社区在man setleds的描述中,有一段设置字符控制台数字灯的脚本:程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛,l#o6Z _8L.t3M+w'@7R0a
代码:
:B,p-o)z!G'z5J8aINITTY=/dev/tty[1-8]
'}!d7@'j&D)R(~$Bfor tty in $INITTY(d8u2}.w(N&`;@
do
9K9j-{-w8W(\-psetleds -D +num < $tty
'[&|1l!x,u%}3N&]9g"Zdone | 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛 U3x4H W#y&F*r;l9r w
/C,X9Z8l#PTechWeb-技术社区把它放在/etc/rc.d/rc.local文件中即可! 这样就可以像WIN一样一启动系统,它的小键盘的数字灯总是打开的!
*H8Z'J x&z7X,H d7j在字符模式下,也可以这样:,]5C2?*\-~#e,|"a0w
setleds -D +num/+caps/+scroll程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛6e!b)T1|1R&m0^4D
| 技巧:把输入的密码变成*号的方法 tech.techweb.com.cn7z(S4R*R:g9w
-Z9U6G7r-N*d/P/~注:此贴转自:WWW.CHINAUNIX.NET
'B!|1F)r;r,k代码:
a'@&h+U;z;p(E#!/bin/sh
)q&H1A.E5N(Ggetchar() {
/}/T8i7J%i8U&[&D2U'X stty cbreak -echo
1F*J8x4C:h8_$y*J dd if=/dev/tty bs=1 count=1 2> /dev/null 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛'X1L-J0f0h&M
stty -cbreak echo
1j#c/u/D5`;j$N4K9K7J}
$?!}8K2F*o7Z+S+s%L&V4b']程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛printf "Please input your passwd: "
6P*O&L X*E!cwhile : ; do 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛(h3M)M'Z _!}8q#e(r
ret=`getchar` 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛7f6g1f'f(P.E6v.`1I6t
if [ -z $ret ]; then
'a8B"S Y6N-k.P;R3@+}7F1R程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛 echo tech.techweb.com.cn+Z5Y0_+h"t
break
4N%A.N/\9u+}%^/Otech.techweb.com.cn fi
.s9@1f3}5?TechWeb-技术社区 str="$str$ret" *k&N/m0d9b4n B1\8L%b
printf "*" tech.techweb.com.cn"{.V9G#A$_)o0C/I$m8U
done
"D h4i'h!s ^ b*l%vecho "Your password is: $str" |
#H;s2v1Z0Y'R+b)u$F程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛/J7u5G&m1F*h'H1f
技巧:数值转换
1k9M9y;H&H*N,G0[6_#Z }4v(@2s!O+s8X
代码:
"r%|4T'C8U"K#!/bin/bash$r$C&h)a'e"p3e2^8R
#scriptname:conver0f(v9}9o!]3k5c4b
#在BASH下简单实现十进制到二进制和十六进制的转换程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛 _$c"r.N(v6I%z&E
cat<<info!Z!b:G$`,y'J)^3{6Q
1] 10=>2 2] 10=>16
.o:u.u1Y*m*winfo0w1D!H,A/J1i
read input?"please enter your choice:"
.X5_,S:O%e7w%ncase $input in程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛4z,F9I:N"T)?.[
1) echo -n "please a dec number:";read i1
"l&j;_+H%w'K5b7_+n!~程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛 echo "$i1==$(echo "obase=2;$i1"|bc)" ;;
#\)}9\"T0x4n&j9L4L4j&}:]2) echo -n "please a dec number:";read i2tech.techweb.com.cn+D;L3l9D4I/x
echo "$i2==$(echo "obase=16;$i2"|bc)" ;;
'V%u2D1l5e3U6A程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛*) echo "wrong choice!"8Q1^;{*l-a'h#L6i%x
exit 1 ;;!`-R.L#L+^5J
esac | )o(R5O3C$I7u
3b/]:F'R;n!n)n I
技巧:统计文本中单词数量的方法 tech.techweb.com.cn%z;F0v:X1s
,h1I ~1r3Xtech.techweb.com.cn有些单词在一篇文章中经常会出现很多次,怎么统计这个单词的个数呢?!
1G,O'R3h \*^$j&m如:文件kshfile,统计shell这个单词的个数,
.T*c8F D+z2k$cat kshfileTechWeb-技术社区&J1y1y#i2W'U+g*c*d
ksh(M7b4x"l&_
The "Korn" shell, written by David Korn of AT&T Bell Labs (now Lucent). Written as a major upgrade to "sh", it is compatible with it, but has many more internal commands for the most frequently used functions. It also incorporates most of the same features from tcsh which enhance interactive use (command line history recall etc.). This shell is now available on most systems. It was slow
.~+?9i,q9A.m)[&A%T ~to gain acceptance because earlier versions were encumbered by AT&T licensing.
'h*u T,X4D2m$cat kshfile|tr " " " "|grep -wc shell
5m$a2r%W2z:d+D#C9]"`)k程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛2
)L(H0y:Z8{$|/h(Rtech.techweb.com.cn技巧:显示文本奇数偶数的方法 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛 n'v6c:`2|
;a&f(F8V"C4[/N(}!`TechWeb-技术社区[javalee//home/javalee/myshell]cat tmp5D5Q!m:A-r e
aaaaaaTechWeb-技术社区'x'I!o"k&t
dddddd
;]:b/x0F'V+M5E(y+dkasdkfkk/f,}+a8W!L
djhasdjf
7g;S3u3w9X6zTechWeb-技术社区dfddf
%G;v"N%h%d8I+Stech.techweb.com.cnkjsdfklkls9p3w5L:{'\0Z
asdfjklkas
(t8G+O/M!B程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛#显示文件tmp的奇数行的内容:tech.techweb.com.cn%?"H5a:W&T
[javalee//home/javalee/myshell]sed -n '1,$p;n' tmp
)U7]"y%V2y.y)C+TaaaaaaTechWeb-技术社区1|0[;@8B9T'b#d*o
kasdkfkk
7n/e%?5N&V;q.]2Cdfddf程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛+Y1t:~&G Y
asdfjklkas%G*x!i$h6h0E/_%j%V
#显示文件tmp的偶数行的内容:"_"T x:z6I
[javalee//home/javalee/myshell]sed -n '1,$n;p' tmp
*_9l+r+e.]-Z!J7eddddddTechWeb-技术社区(Z k.i0H)x:x;S'T0H%Y
djhasdjf/b-K t$l#_
kjsdfklkls9e3m'i2U'N
技巧:倒读文本 +c6n0Y5R8Y(N'[ y3L
"K'D(a!X(g5q!R1b7i0]例如文章:
!J%P,C.k/r6c6I)f7E5j$cat -n tmp
0C$x'Q.l8S1 abcdefghtech.techweb.com.cn#r.u-u$b2^8} y(K
2 123234234TechWeb-技术社区(E5^+Z6{/m2n
3 sjdfk23423
#}!}5H1F:UTechWeb-技术社区1,行号倒序:
(~3l.o8Z8|#h'X5^"gtech.techweb.com.cn$cat -n tmp|tac #tac和cat很有趣吧~~程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛-|)Z%}%d3C:w&K
3 sjdfk23423程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛5B6p8m;Z%B3\9j"o
2 123234234TechWeb-技术社区5d(o:B.x5J9y4t5`4V
1 abcdefgh1U8g%F,p&n4p
2,每行倒读:
:j+S7_:~9v1s&Y'rTechWeb-技术社区$cat tmp|rev
7z9H1]9^8i$q,B#E2Q;k,phgfedcba
8d(R'c3F%V'J%D0Q4j2j432432321TechWeb-技术社区%`-X3b;n!Q
32432kfdjs
2w w'h1{8a3,全部倒过来:
4A;L-?;O'o/DTechWeb-技术社区$cat -n tmp|rev|tactech.techweb.com.cn @7h l/d-o6S's
32432kfdjs 3TechWeb-技术社区*{2m1{-~!A$G+V
432432321 2
'J4I6A5]5t$ahgfedcba 1
8F;b%g4t3R4,用sed也可以解决 要求对sed有足够的理解)
6p0}"H'v1Y6z9F$cat -n tmp|sed '/ /!G;s/(.)(.* )/&21/;//D;s/.//'
'y:d9^8E'f/bhgfedcba 1
@&B%]&M8l'I)f432432321 2TechWeb-技术社区$Y"@"[(H$C5_7e
32432kfdjs 3 :l$K'q8c4e2b
`#v3I;O$V5V5v#R$]-]技巧:把汉字转换成十六进制和二进制的方法 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛(v)l;Y/t-P5}
4i*{.?(`!O6m"P命令行下,利用perl的unpack函数,可以将汉字巧妙的变成十六进制和二进制,如:程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛)P-I:W5~"G
[javalee//home/javalee/myshell]perl -le 'print unpack("B*","中");' #把汉字"中"转换成二进制程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛*{(o6_){4| J3M2h
1101011011010000
(d-o(p5}&|/S;C;Q程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛[javalee//home/javalee/myshell]perl -le 'print unpack("H*","国");' #把汉字"国"转换成十六进制$T-x3c-a0[5k
b9fa
,Q%e i+b'^*n5M%E技巧:妙用watch命令实时观察内存变化
4D8W%s5y;d$u6V8n2`tech.techweb.com.cn3C)G3t*N*a
在linux中,有一个很有趣的命令--watch,他的作用很有趣! tech.techweb.com.cn2{&D-X1i*F
他作用是以全屏幕方式重复地执行指定的命令,用户可以通过他了解命令的运行情况.TechWeb-技术社区'S8W5h j1t9k-|
如,我们要观察内存动态的变化,那么就可以:
,A"G*M$Z:s%B9`/Pwatch free
3Y7`3q/\0Wtech.techweb.com.cn这样就可以动态的观察内存中各个指标在指定时间内的变化啦~~,7i*O1Z'B5L+z!l
如要观察虚拟内存的变化,也可以通过打开另外一个终端,而不耽误当前终端的操作!:
9J,r*d;l!B j$hTechWeb-技术社区xterm -e watch -n 1 vmstat &
"F#m(P3k A6Z;c,?(^4?程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛这样就会弹出一个xterm,显示有关虚拟内存的情况.
)N7|$~5r+o详细解释,请:&U'w4u9i!\*T _2j
watch --help
,T7b+I-_*^0c"nTechWeb-技术社区man watch
;g4\'z-~%v.J(W&j |
7{:r.z4F0_(D,O1q9|tech.techweb.com.cn | tech.techweb.com.cn9J#a9L1~;W&}0S
3J;l-O3[7o6T#G2U5b1k
TechWeb-技术社区/]0E;M*p:F5l!|0R6]
1Y7d;Y0_'e-c
|
|
,R%z6F4g)i,~8k |6l$Y)ATechWeb-技术社区
'Y'|0R,a,J9~8\&b
%S$H%\*d!B!?tech.techweb.com.cn8y |$|+X)?'W9W'D:`
技巧: 用 tr 过滤文件[转贴] "p+G3G7^)O
#J3b/D5`1i2\;G"J&b了解文本实用程序 TechWeb-技术社区#w,y.t-J4b7q/}
+x6W"{7@3j:e%gtech.techweb.com.cnJacek Artymiak( jacek@artymiak.com)
4J3|,w$u'I/O2s-t8R程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛自由作家和顾问
/E0f)S9s7P"E4r3D!e2003 年 7 月
)T/q9_5H'r-f-{5\'X程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛
#^"S(M/`&d!S4N&G4x没有人曾说过 sed 很容易 - 它确实不容易!但通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。Jacek Artymiak 向您展示如何去做。
4S;q!q)O"]1c"H程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛;I-\7F,{(Q$S/~!d
您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。
4O*@)b1?'m%W$x7~tech.techweb.com.cn
5H+D#P5w3p9k5P
*N;e't0T%_8]:Z4M那么,为什么要使用 tr,而不使用 sed 呢?当然是为了使事情简单。例如,如果我们希望用字母"z"来替换出现的所有字母"a",则可以用 tr a z,这条命令毫无疑问比 sed -e s/a/z/g 简单,尤其在把它用到脚本中时,其中的引号转义很让人头痛。另外,在使用 tr 时,可以避免写那些让人讨厌的正则表达式。
7L#[2z!Q:i!y,ftech.techweb.com.cn:P9H$r!S0V'`+u'{7N;Q6{;p
)h-^+i7t;D3|5Ntech.techweb.com.cn使用 tr 很简单:使用前面一段中所给出的符号表示法,用一个字符去替换出现的所有另一个字符。当需要替换多个字符时,使用类似于这样的表示法:tr abc xyz,它表示用字母"x"去替换出现的所有字母"a",用字母"y"去替换所有字母"b",用字母"z"去替换所有字母"c"。这两组中所列出的字符的数目不必相等。
-y5O2]*_*U-i
$w+\5U*J#O,Dtech.techweb.com.cn
5J8H8U5w#t,NTechWeb-技术社区您也可以指定字符的范围。例如,tr a-z A-Z 将用对应的大写字母来替换所有的小写字母(例如,它将"no smoking"转换成"NO SMOKING")。当您在 vi 编辑器中想强调正在编辑的文本的某一部分时,使用这一特殊技巧非常方便。只要按一下 Escape 键,然后按 : 键,再输入 2,4!tr 'a-z' 'A-Z',最后按一下 Return 键。现在,从第 2 行到第 4 行的字母就都转换成了大写字母。 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛;~&A-R4T5L/h%?;{:s6k
5?+q f:g/[1e
&J T-J"?7o*f O/F%UTechWeb-技术社区关于 tr 的其它内容
+Y%~6{*B&NGNU 手册上提到,tr 在执行您所选择的操作时,通过将标准输入复制到标准输出,从而实现"转换、压缩和/或删除字符"。在这篇技巧文章中,您将了解到这些选项;当然也可以通过了解 tr 的手册页或信息页,学习到更多关于 tr 的内容。
4?(r:s:d.O+T6q*I#w+^-Ytech.techweb.com.cn
)^&E6Q;]8L.M6L,Ctech.techweb.com.cn打开一个新的终端窗口,输入 man tr 或 info tr - 或者打开一个新的浏览器窗口,并链接到 gnu.org 上的 tr 手册页(关于这个链接,请参阅参考资料)。
$g#r4P'O)x.m,f7G$Q-j"\%m2E
7l*{4k)h1g7T$l6Z
8s,`'M5b:H%^+H:V3}2{*T
另外,当有人给您发送了一个在 Mac OS 或 DOS/Windows 机器上创建的文本文件时,您会发现 tr 非常有用。如果没有将文件保存为使用 UNIX 换行符来表示行结束这种格式,则需要将这样的文件转换成本机 UNIX 格式,否则一些命令实用程序不会正确地处理这些文件。Mac OS 的行尾以回车字符结束,许多文本处理工具将这样的文件作为一行来处理。为了纠正这个问题,可以用下列技巧:
"m/l"g/M b$y/a!I2i!G%G程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛
$P&R'j(R;}Mac -> UNIX:tr ' ' ' ' < macfile > unixfile 9R8k*h%O-Z,V"C3~"M
UNIX -> Mac:tr ' ' ' ' < unixfile > macfile
0x/^&]!D0h%@:D
)G$X$l-X,DMicrosoft DOS/Windows 约定,文本的每行以回车字符并后跟换行符结束。为了纠正这个问题,可以使用下列命令: TechWeb-技术社区;d'N:W7D!f2\*z4Y!d8z
%d)`9L#S9D9n0V3Y.d$f程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛DOS -> UNIX:tr -d ' ' < dosfile > unixfile
8b#y2B%O&n"[!ptech.techweb.com.cnUNIX -> DOS:在这种情况下,需要用 awk,因为 tr 不能插入两个字符来替换一个字符。要使用的 awk 命令为 awk '{ print $0" " }' < unixfile > dosfile tech.techweb.com.cn._*c4X6j#l4}
9Z"Z!J;b&U+U$o;Y#q1_
另外,当您需要对文本文件做一些简单的整理工作(如用 tr -d ' ' 除去制表符,用 tr -s ' ' 除去多余的空格,或者用 tr -d ' ' 将分开的几行合成一行)时,会需要用 tr。同样,可以在 vi 内使用所有这些命令;只要记住:在 tr 命令前要加上您希望处理的行范围和感叹号(!),如 1,$!tr -d ' '(美元符号表示最后一行)中所示。 tech.techweb.com.cn Q8i1Y5H.K,z'Y!T"N
2U8`6Y"p+T&T'o#}+H;N
TechWeb-技术社区7g!e:f1p/t"g9p u;F1J&J
技巧:删除文件中空行的几种方法
w9j#i:E4o!D2k3|TechWeb-技术社区tech.techweb.com.cn;C,a3}0Y*C
1,cat filename|tr -s ' '
1[#?*g*i)U4B,h程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛2,sed '/^$/d' filename tech.techweb.com.cn7p7s-j2a7H:I%D:L
3,awk '{if($0!="")print}' filename
'y;M8H4a!j K0O$e4,用grep也可以,但是比较麻烦
9h1G*t W5atech.techweb.com.cn技巧:如何判断输入的是字符还是数字的三个方法 #U&k,@"Z)c:l(|!A
,T-f+}&t%{!z4r程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛1,用输入的字符串和任意一个数字进行运算,可以判断! 代码:
:s-o$F7~%u&z)x x5~"c程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛#!/bin/ksh TechWeb-技术社区/c9?%o/N"i:u v6[*z0`
#
6f$u+Z(o;_5?var=$(echo "$1*1"|bc)
!r.R3B2y t2?2[:y)[if [[ $var != 0 ]]
7j*g+Z w9Gtech.techweb.com.cnthen 8u0_7D#n-f%^ V4L
echo "$1 is a number" 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛(I*b3i1G0g*C7B:L+U%S3X.E
else
3T9^;H(g;~+t'~:I+T4]TechWeb-技术社区echo "$1 is a charter"
:D&z8j:I$V!@5r3d+H7I0W)Y-I t0Ntech.techweb.com.cnfi |
-k,S"o(a8`TechWeb-技术社区"M.x4E&S.Y E+G
2,用流编辑器sed! 代码:
-Z2R)o7f8c$^:K6B8i9L-Wtech.techweb.com.cnif [ -n "`echo $1|sed -n '/^[0-9][0-9]*$/p'`" ] "z'J,N!u5L8@5j5B&|6w'v
then
;F:|;n6L'Y;cecho "$1 is number!"
3X6R$r8s$c/F"Felse $_3E0f l;a5]
echo "$1 is not number!"
/~ p6C!J$] M(f W;Gtech.techweb.com.cnfi | TechWeb-技术社区,D)p#o(j&l2O)P#n
4o*l2S(I9C1v3,用awk来判断! 代码: #N-w#P)T0_"X(^"b7j
| echo $1|awk '{if($0~/[^0-9]/) {print "'$1' is not number"} else{print "'$1' is number"}}' | 0r7C%J(d4p9x2Z,m(V
技巧:用 uniq 除去重复行[转] 0z:k'a(D6s(a
7G2t4O.e#I程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛作者:Jacek Artymiak( jacek@artymiak.com)自由作家和顾问 2003 年 7 月
$F7M&J'G#P0q2Z程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛TechWeb-技术社区(i(})l.T&t-};O6M5Z.T
重复行通常不会造成问题,但是有时候它们的确会引起问题。此时,不必花上一个下午的时间来为它们编制过滤器,uniq 命令便是唾手可得的好工具。了解一下它是如何节省您的时间和精力的。 ']8N:a {9u
-|%[+`"D5Z0n#?进行排序之后,您会发现有些行是重复的。有时候该重复信息是不需要的,可以将它除去以节省磁盘空间。不必对文本行进行排序,但是您应当记住 uniq 在读取行时会对它们进行比较并将只除去两个或更多的连续行。下面的示例说明了它实际上是如何工作的:
4d)T5T)R9n2y+m"A程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛
5|:V6V8y7f$};}5x/J'_TechWeb-技术社区清单 1. 用 uniq 除去重复行 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛(~;n5E8x'F)h:z7W'k0r#Q
'x$@8D.A(l1b ttech.techweb.com.cn$ cat happybirthday.txt TechWeb-技术社区 {!M9M0B(u#[2W2P
/s8a2m9S"h%m7k4j:~tech.techweb.com.cnHappy Birthday to You! TechWeb-技术社区*~1F-}+L5`"s:O1K
$e6I.^'i3D,[8g程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛Happy Birthday to You!
"{,X/f2j)Atech.techweb.com.cn
&h)e3O9A'E(J'P2j7LHappy Birthday Dear Tux! 1`&P%A-M"S
tech.techweb.com.cn-n0z/X4E%E1F ]8B)e
Happy Birthday to You! (W-I&X1z9T:L3^
程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛2]+k$Y8s$p/f
9M%S!Y,Z(?,G
$ sort happybirthday.txt
&w3V9K2_8s1_TechWeb-技术社区2s&e&A5g/A9|&d*}
Happy Birthday Dear Tux!
!b4q'J4}1b*u7N*[)I程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛
.^3Q/a(`8o8E"xHappy Birthday to You!
Z*g4W,q9Z"P!q*y I%t(^7`0Q程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛
.P.Q-O6a!u$x:[9t"q程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛Happy Birthday to You!
S)u-L2|.A"S1^TechWeb-技术社区&f8],E6\+C3^)p+j
Happy Birthday to You!
!r3].c-]:V;o;g b+t*~$F3l8^1s&l
tech.techweb.com.cn5\1H+Z8q*N)e
$ sort happybirthday.txt | uniq tech.techweb.com.cn:b Z:A%A$E _ Q-x s:R
TechWeb-技术社区$U5B/P(G+F+S-\&i%v&\
Happy Birthday Dear Tux!
9X h-T)M0@&I程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛
%T%S*P%p$T8C1p%ZHappy Birthday to You!
$t4Y1j9S;[6\-w程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛:x!`-U-C#I-u$Y;N5}-p
警告:请不要使用 uniq 或任何其它工具从包含财务或其它重要数据的文件中除去重复行。在这种情况下,重复行几乎总是表示同一金额的另一个交易,将它除去会给会计部造成许多困难。千万别这么干!
(c8G4T&_3Q9i9[)Q/z6j*K
(R/]3D,Z2h有关 uniq 的更多信息
8G,} ^4P5d&b6U+q7k&l本系列文章介绍了文本实用程序,它对在手册页和信息页找到的信息作了补充。如果您打开新的终端窗口并输入 man uniq 或 info uniq,或者打开新的浏览器窗口并查看位于 gnu.org 的 uniq 手册页,那么就可以了解更多的相关信息。
"^7F-I X!j'k(p:MTechWeb-技术社区TechWeb-技术社区:j5n2z*j7Z-Z+~
如果您希望您的工作轻松点,比如只显示唯一的或重复的行,那么该怎么办呢?您可以用 -u(唯一)和 -d(重复)选项来做到这一点,例如: TechWeb-技术社区,Q7x"N7d.j7H$n
(z;D(Y2c2k3p#o l R9^0r+S5U清单 2. 使用 -u 和 -d 选项
,I-t+z#D8R#E9l程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛3A2Z(G9p'T+O+j
$ sort happybirthday.txt | uniq -u
2n4D%i#n$B(|$z9^TechWeb-技术社区&o+I3c7m3r;l7c6E
Happy Birthday Dear Tux!
1B7t6q/H E0o0TTechWeb-技术社区6Q v/B:c-S2d4@1{9t
9V;I7c%^3y0n$ sort happybirthday.txt | uniq -d 5q%a0|4U'J
3_&S!c3|,|8N2b"N0n$k1M9_+V
Happy Birthday to You!
%c,m,[:o0i$Y$B&J'r
$Q:_)o:U.]tech.techweb.com.cn
4V"g:d3K)@.b*p程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛
!j'x)O!K2t!~/k8YTechWeb-技术社区您还可以用 -c 选项从 uniq 中获取一些统计信息:
9h;A#p;a;i&h*s8F程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛/F;p8f6e6L;P1U'n
清单 3. 使用 -c 选项
&K'Q4m*v)I k,\.c U1otech.techweb.com.cn程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛'k9n0C"u0F:D6c5B1@
$ sort happybirthday.txt | uniq -uc tech.techweb.com.cn)c1s-`*m$~2w6b5z)L
程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛%D#Y;F-p2x
1 Happy Birthday Dear Tux! tech.techweb.com.cn2G6@2w*[%q'v1T(T)c/l3B
5C;[2Z.R-h#X-R8v;Y-r
*l4|$J0^!A+U-y$ sort happybirthday.txt | uniq -dc
5Z'q6x3L+?9x'X1J:n程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛
(M#n3h*`#Q-v-~-W;c程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛3 Happy Birthday to You! 0r9L,c+w8r"O
5H(g.C:l6l*l4V8yTechWeb-技术社区-y7d7r4s5x;Z$?
"^(B,A*v'\程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛就算 uniq 对完整的行进行比较,它仍然会很有用,但是那并非该命令的全部功能。特别方便的是:使用 -f 选项,后面跟着要跳过的字段数,它能够跳过给定数目的字段。当您查看系统日志时这非常有用。通常,某些项要被复制许多次,这使得查看日志很难。使用简单的 uniq 无法完成任务,因为每一项都以不同的时间戳记开头。但是如果您告诉它跳过所有的时间字段,您的日志一下子就会变得更加便于管理。试一试 uniq -f 3 /var/log/messages,亲眼看看。 /{"q1_0|1G%T4w*s @#_
tech.techweb.com.cn,o!D5|1t2u4E)O4p8W%m
还有另一个选项 -s,它的功能就像 -f 一样,但是跳过给定数目的字符。您可以一起使用 -f 和 -s。uniq 先跳过字段,再跳过字符。如果您只想使用一些预先设置的字符进行比较,那么该怎么办呢?试试看 -w 选项。
$h._'S2H;f [.NTechWeb-技术社区
,F-C'R'H5e T程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛技巧:限时输入的实现
!|2Y5Y(y"{6r)F0[tech.techweb.com.cn%W!T:m-e2Q2N1o5t"o'E
举例:
8y-l K:c!R)}代码:
1B*o5d9n0d%_([程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛#!/bin/ksh H$P)y,e1p1J6I
stty -icanon min 0 time 100 <=限定时间为10秒
1].p7l&D1o)Q6y;V(}8Zwhile
8`({#|,|%{do3U$`.C1t*|:C
echo "Please input:y/m/d/[ENTER]:" <=输入字母y,m,d或者回车程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛*y"s.L9s3`%X
read input9Y6H'Z1M7P6T
case $input in5_4e2K2L;Y7h
y) date +%Y;break;;
,U/U"q Q.t*h3M-W m) date +%m;break;;
2D5w!L9V"|.O6s-`9Vtech.techweb.com.cn d) date +%d;break;;
)o+|#];T!}%`2v0g "") date +%Y/%m/%d;break;; <=当输入为空(回车)或者10秒钟内没有输入的话,取设定的默认值.
4f(g$k,e"_"z;_)R *) echo "wrong!again!";continue;;tech.techweb.com.cn,X"D!A.o8e/c:p5K1T
esac
+O!q-~"?$y程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛donetech.techweb.com.cn)O8A4j"n*Y%r
stty sane |
"q6c5T9v)V8e/htech.techweb.com.cn&l"P'{$q;X9p$r(C7p
&D9T1q;@;n9J:p/E"a4L8l
TechWeb-技术社区/V6`(G&{$}
1G"C!K8A;? H4o7Gtech.techweb.com.cn(v&`-L3c5D4~7Y&~6L!F$r-F
1t&u m!e;S+Utech.techweb.com.cn技巧:查找特定字符所在行行号的方法 tech.techweb.com.cn/X5a6m;T t
3e;u:k*j2m%\4W"z8c
方法很多,介绍一下3个具有代表性的,TechWeb-技术社区!B5I6o$e&R,F"p
1,grep -n "string" filename
4L7l3w"b!b%A5M-?9G-I-v2,sed -n '/string/=' filename
1V4x a7s2P,x0l9U!Z(b-D程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛3,awk '/string/{print FNR}' filename
+h!^"C*I0\!i(E!^(d.x(T当然,和nl配合使用效果基本一致! TechWeb-技术社区$J'F#G(R/o,e4`2[
|
:G8Y,A;e-F在shell里进行算术运算常用的3种方法 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛-w/[)x(k's+~
&k1[8X4p$@1,expr 2b+R:t9M4l7d*F-n
expr 1 + 2 #注意空格
a2j7r8x0D3F$X6Z%b2@2,(()) ._-i2s5],m$h!c*O
((n=1+2))
;J'k2G$^.O#tTechWeb-技术社区3,bc
/G9h:l6y.\-g1uecho "1+2"|bc #优点可以取小数点的位数 TechWeb-技术社区(~;m4m6T4M8S#@(U.W7o(v
4, 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛*m-l+T;u&X(U1b;~
echo $[1+2] tech.techweb.com.cn"m9U6m:a'V W ^6k-O9M
隐藏回显的另一法
-O"{2D'{6G%A)k4I程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛9~7_(p&[!m/y!l1R:v
除了用stty -echo来禁止显示诸如密码之类的方法外,也可以尝试这样 代码: ,v'}*p#A$Q-J
echo -n "please input password:\033[8m"
7f(l*L2W7e程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛read input
2d&W.K)l3|$Y%G)\$u1b!Lecho -n [url=file://%5c033%5b0m/]\033[0m[/url] |
"P;~&}&H.l(l6Y程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛awk技巧两则
&O r&y!m%Q6s$v
-`3N)d*O-|5kTechWeb-技术社区1,查找一个关键词在整个文件中出现的次数 tech.techweb.com.cn2D!@#R#O/K
代码: 5D3e p%q$]-C)@3g
| awk '/keyword/{count++}END{print count }' filename | 4w/[-a!{,Z
TechWeb-技术社区:Z0L'I+F5~7X0[
2,替换
,D-B5n;z g/p$i%x代码:
;Y7E2|1Z3["F J| awk '{gsub(/oldstr/,"newstr");print}' filename |
2g3N&p3S!p2r N'|技巧:从键盘输入生成文件的若干方法 "^-L6G!r1S/O
8?2^-e%D4Q&m;V/y1,用echo,如: 代码:
5c-S:B$_"\)`8k!~ KTechWeb-技术社区| echo "some strings ">filename | *{,P"D(U2n$f5Y
(D1a#H {#i(r6X-\(K程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛2,用here文档,如: 代码: (f8u/n)a7I
/home/javalee#cat <<! >filename5p0P'S9?%U Q _8f
>some strings&b7l ?0k/o4I
>! | #g7M7g){%S*d-`%n(}-V/U
#CTR+D退出
N7@:v)~0\3,用dd命令,如: 代码:
,c(`:m2g6Q3B$[&L&e程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛| /home/javalee#dd </dev/tty >filename 2>/dev/null | 3~$x ['W*O,w
#CTR+D退出
7q4Q)h;`9I8u4,用while循环,如: 代码:
8y7Y3b,^4u5i| /home/javalee#while read i;do echo $i >>filename;done</dev/tty | (e3W!R8b1D/E#m4C
#CTR+D退出
-\#S1]5R8o/\'r*q5,用read:如: 代码: tech.techweb.com.cn$N/U.i'L q8L(?(I9T
| /home/javalee#while true;do read;echo $REPLY >>filename;[[ -z $REPLY ]]&&break;done |
9B#j&[-?(Vtech.techweb.com.cn技巧:用grep提取网址/链接的方法
7g!Q(N y0u-C*u'e9J+?tech.techweb.com.cn6b8x"v8z8g'Y
代码:
;N!T/o*K'Y7P| grep -o 'http://[a-zA-Z0-9./?=%_~]*' urlfile |
1O)B-X,\&C%E0`*@tech.techweb.com.cn%C6J/J,l!U+p
感兴趣的话大家可以测试一下
*B'P.c9L-Itech.techweb.com.cngrep version:
:o9_/E+?8c ^;Xgrep (GNU grep) 2.5.1
9K8y8f:M7f4W.Q0c/ygrep对-o选项的解释:
"R;T"P+t/^*q:E U*I!Ftech.techweb.com.cn-o, --only-matching show only the part of a line matching PATTERN
|
引用
回复
|
|