Archive for January, 2008

Shell命令行下如何查找并替换多个文件中的字符

Thursday, January 24th, 2008

如果你在shell命令行下,需要一种能快速查找并替换多个文件里字符的方法, 那么下面这行命令你一定要记住或者收藏起来,它能帮到你的。 find . -name '*.html' -print0 | xargs -0 perl -pi -e 's/SEARCHSTRING/REPLACESTRING/g' 注解: *.html:表示查找所在目录下的所有扩展名为html的文件; SEARCHSTRING:要查找搜索的字符; REPLACESTRING:替换后的字符。 记住:如果替换的字符包括 ()[]/"'!? 等等这样的特殊字符,你必须在字符前加上反斜杠\ 。 使用举例: 1.创建一个新目录: $ mkdir test $ cd test 2.创建1.html,2.html两个文件,并分别输入i like china : [root@localhost test]$ vi 1.html 按i进入输入模式,输入: i like china 按esc键退出输入模式,输入 :wq 退出。 [root@localhost test$] vi 2.html 按i进入输入模式,输入: you like china 按esc键退出输入模式,输入 :wq 退出。 3.运行替换命令,like感情不够强烈,呵呵,我们这里要将2个文件中的字符 like 换为 love : [root@localhost test]$ find . -name '*.html' -print0 | xargs -0 perl -pi -e ...

10个你可能从未使用过的Linux命令

Thursday, January 24th, 2008

一般来说,你可能需要几年甚至上十年来精通Linux shell命令。这里是10个你可能从未听过或者用过的命令。 1.pgrep, 一般如下: # ps -ef | egrep ^root | awk {print $2} 1 2 3 4 5 20 21 38 39 ... 事实上,你可以这样: # pgrep -u root 1 2 3 4 5 20 21 38 39 ... 2.pstree, 以树形格式来列出进程。这个命令对于已经在运行的WebSphere或其它大型任务的应用程序非常有用的。 # pstree init-+-acpid |-atd |-crond |-cups-config-dae |-cupsd |-dbus-daemon-1 |-dhclient |-events/0-+-aio/0 | |-kacpid | |-kauditd | |-kblockd/0 | |-khelper | |-kmirrord | `-2*[pdflush] |-gpm |-hald |-khubd |-2*[kjournald] |-klogd |-kseriod |-ksoftirqd/0 |-kswapd0 |-login---bash |-5*[mingetty] |-portmap |-rpc.idmapd |-rpc.statd |-2*[sendmail] |-smartd |-sshd---sshd---bash---pstree |-syslogd |-udevd |-vsftpd |-xfs `-xinetd 3.bc是一个相当准确的计算器语言。我发现它可以让你用shell脚本来执行平方根操作。而expr 不支持平方根. # ./sqrt Usage: sqrt number # ./sqrt 64 8 # ./sqrt 132112 363 # ./sqrt 1321121321 36347 Here is the script: # cat sqrt #!/bin/bash if [ $# -ne 1 ] then echo Usage: sqrt number exit 1 else echo -e "sqrt($1)\nquit\n" | ...

Oracle数据库性能调优语句之测量缓存命中率

Tuesday, January 22nd, 2008

Oracle数据库性能调优中,我们需要观察缓存命中率(Measure the Buffer Cache Hit Ratio )时,可以使用下面的语句: rem----------------------------------------------------------------------- rem 测量缓存命中率 rem ----------------------------------------------------------------------- -- 获取初始缓存命中率... SELECT ROUND((1-(phy.value / (cur.value + con.value)))*100,2) "Cache Hit Ratio" FROM v$sysstat cur, v$sysstat con, v$sysstat phy WHERE cur.name = 'db block gets' AND con.name = 'consistent gets' AND phy.name = 'physical reads' / -- 我们人为来增加缓存命中率... DECLARE v_dummy dual.dummy%TYPE; BEGIN ...