Linux系统命令
1. ls
查看某个 目录下 所有文件的大小总和
ls -lR| awk 'BEGIN{size=0;} /^[-l]/{size+=$5;print $0;} END{print "all size:"size/1024/1024 "M"}'
解释:awk的 中间部分 引用了 正则表达式, /^[-l]/{size+=$5;print $0;}
2. 脚本中执行命令:
/usr/local/bin/cmd -d 2>>/tmp/info.txt &
2.1 后台符号 &一定要放在整个命令最后。
2.2 >,>>一定紧跟着重定向文件
2.3 如果是 文件输出 1 stdout,2 stderr 要重定向到别的文件,也是紧跟>,>>符号。
如果 cmd 命令包含参数, 需要与>> 用空格隔开
cmd 2 >>/tmp/info.txt /*这里2 就是cmd的参数*/
2.4 如果想让stderr也跟 stdout一样输出到文件,使用
/usr/local/bin/cmd >file 2>&1
3. tcpdump
抓包:tcpdump -i eth0 -C 5 -w eth0.pcap
-C 5 每个包大小为5M。
4. pmap
查看进程占用内存:
pmap -x pid | grep 'anon' | awk 'BEGIN{}{sum += $2} END {print sum}'
5. find
find . -regextype posix-egrep -regex ".*utm_(uids|extend|event).*"
find查找匹配正则表达式
6. top
top -b -n 1 -d 1 >info.txt
将top命令的第一帧写入 info.txt文件中
-n 1一帧
-d 1间隔1s
-b batch mode 只有这种模式才能写入文件
-d 1是参数,所以 与 >之间要加个空格,否则解析成 1 stdout,-d 就没有option,命令解析错误。
7.sed
sed "s/str1/str2/g" file
将 file文件中每行的 str1替换为str2输出
sqlite 数据库命令
1. 查询命令
每个数据库中都有一个表sqlite_master ,里面表明存在有哪些表,哪些索引?用来判断某个表 是否存在
select * from sqlite_master where (type='table') and (name='table名')
版本管理命令
svn 命令
1. status命令
svn st | grep ^M | awk '{ print $2}' | xargs md5sum
求修改的文件的MD5码,一般比对使用
2. merge命令,
svn merge -r 1:2 URL .
(1,2] 将 URL 指定的版本的 1版本提交后到2版本的改变 合并到当前版本
3. diff命令
svn diff -r N:M
(N,M]显示 版本N到版本M之前的更改