Archive for January, 2008
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 ...
Posted in Linux, Unix | No Comments »
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" | ...
Posted in Linux | No Comments »
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
...
Posted in Oracle | No Comments »