- 1.
(原文链接 http://ddbiz.com/?p=223)今天服务器突然连不上了,ip地址也Ping不到。只好联系机房,请其查找原因。几分钟后,服务器恢复了正常,赶紧登上去看看刚才是机房出了问题还是自己的机器出了问题。由此想到,linux的常用命令总是记不大住,一些简短的命令就此列表,以备查阅。
#查看开机运行时间
uptime
09:44:45 up 67 days, 23:32, ...
:-) ,看来刚才确实是网段的问题,我的机器还是67天前开机的。
#系统资源使用情况
vmstat 1 -S m
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 233 199 778 0 0 4 25 1 1 3 0 96 0 0
0 0 0 233 199 778 0 0 0 0 1029 856 13 1 86 0 0
这个还是专门分一片文章来描述吧
- 2. 批量替换文件
今天使用svn进行系统迁移,结果发现最初的路径写错了,导致无法访问源服务器,查看 .svn/entries 大致了解了一下里面的内容。重新迁移时间太久了,还是直接把文件替换掉吧
for f in $(find ./ -type f -name 'entries')
do
sed -i "s/202/.68/.134/.18/202/.68/.134/.34/g" $f
done
sed 简单说明:
sed "s/sourcestring/newstring/g" $f
把 $f 文件中的 sourcestring 换成 newstring,输出到终端。s 表示搜索替换,/g表示全局。
sed -i $f
表示直接在 $f 中修改。
sed -iback $f
表示修改后的文件另存为 $fback
sed 中所有正则表达式都必须使用严格的转义符 / 来限定
sed 的正则比较严格: " / / ! 都需要分别用 /" // // /! 转义。
/n 表示换行
- 3. shell 变量 字符串操作
mono 跑在linux下时,apache+mod_mono有时候需要加载的 Assembly 必须配置在 GAC 中,下面是一个脚本完成此功能
cd bin
for f in $(find ./ -name "*.dll")
do
gacutil -i $f
done
如果要从 GAC 中批量卸载这些 Assembly, 可以如下
for f in $(ls *.dll)
do
gacutil -u ${f%%.dll}
done
其中就用到了字符串变量的替换, ${f%%.dll}
${f%%.dll} 的意义为 删除 $f 变量 .dll 及之后的所有内容
相关的变量操作还有:
${f##.} 等,后面再补充
(原文链接 http://ddbiz.com/?p=223)