4/18/2008

gentoo 技巧

使用 gentoo 一段时间了, 一些比较有用的命令总结在这里:

ufed - 修改 USE
qlist - 列出包中文件
equery - 查询已安装的包或包中包含的文件等
eix - 可代替 emerge 更新查询,速度快
euse - 命令行式的 USE 编辑器
emerge -fuDv world - 更新整个系统安装的包,但仅下载不编译
emerge -avuDN world - 更新整个系统安装的包,下载并编译
emerge -p --depclean - 删除未列入 world 中的包或垃圾文件
revdep-rebuild - 重新编译依赖
eselect profile list - 列出系统中所有的 profile 文件
eselect profile set * - 设定系统 profile

xdpyinfo | grep dimensions
1024 x 768
xdpyinfo | grep resolution
116 x 116 ?

history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10
- 列出系统当前用户曾使用的命令及百分比

4/14/2008

辞职了

在这家公司待了两年多了,现在的公司已经物是人非,是该离开的时候了。辞职申请已经交上去了,已经得到上面的答复,也已经找我谈话了,但去意已决。这周应该是我在这家公司待了最后一周了,这段时间比较轻松了,我正整理着电脑里面的有用的和没用的资料,有些文件好久都没动过了,都“长毛”了吧 :P
昨天是周末,我去医院做了入职体检,能够当场得到结果的检查都正常,周二去拿另外两项检查结果,应该也没问题。
下周就要去新公司上班了,好好努力,希望自己能更上一层楼!

3/06/2008

curl 实现表单提交

curl -D "/client/GK.txt" -d "spcode=608511&sppassword=sohu332416" "lu.blog.com:80/sp/login.do"

-D 将JSESSIONID 等值放入 GK.txt 文件中

curl -b "JSESSIONID=EC0AE12D30BA57B10AB68E558067B765;" -d "tonetype=0.5" "http://lu.blog.com/sp/UploadServlet?tonetype=0.5"

-b 带入JSESSIONID
-d 以POST方式提交

curl -b "JSESSIONID=AAB5E9FBA659044518C09A18B2310271;" -F file1/childring_file/7/1/爱神厄洛斯的漫游.asf" "lu.blog.com/sp/UploadServlet"

-F 上传文件

把产生的cookie保存在fee.cookie文件里
curl -d "user=test&pass=111111&ip=192.168.1.1&type=2&type=1&action=%C1%AC%BD%D3%CD%F8%C2%E7" --cookie-jar fee.cookie 192.168.252.4/login.jsp

读取上一步产生的session cookie即fee.cookie文件。共享上一步操作的session cookie值
curl --cookie fee.cookie --referer -d "http://192.168.252.4/user/network/connect_action.jsp?ip=192.168.1.1&type=2"

2/25/2008

关于 subversion(svn)

简单讲一下 svn 从创建 repository 到 checkout 的步骤:

1) svnadmin create /home/dev/work/repository

2)修改 repository/conf 下配置文件
passwd 文件:
[users]
dev = dev

svnserve.conf 文件:
[general]
anon-access = read
auth-access = write
password-db = passwd

3)启动服务
svnserve -d -r /home/dev/work/repository

4)导入工作拷贝
import . svn://localhost/mytest --username=dev --password=dev -m"Init mytest directory"

5) 后续工作

svn checkout svn://localhost/mytest

svn add

svn commit -m""

svn ls svn://localhost

2/17/2008

拯救被删的文件

Linux 下误删文件后,怎么恢复呢?可以参考以下步骤:
  1. 第一时间将要拯救的 ext2 分区 (比如我的是挂到 /mnt/entertain 的 /dev/hda9) 挂载为只读模式:

    # umount /mnt/entertain
    # mount /dev/hda9 /mnt/entertain -o ro

  2. 运行 debugfs 里的 lsdel 获取最近被删的文件列表 (lsdel 命令运行会需要一点时间, 请耐心等等):

    # debugfs /dev/hda9
    debugfs 1.35 (28-Feb-2004)
    debugfs: lsdel

  3. 根据 lsdel 给出的列表中的时间, 想想自己是在什么时候删的, 这样可以找到相应的被删文件的 inode, 例如我是在昨晚 (01 月 22 日) 8 点多删的那个电影, 于是在 lsdel 列表里找到对应的这几个记录:

    311298 1000 100644 1136 1/ 1 Sat Jan 22 20:24:50 2005
    311299 1000 100644 62 1/ 1 Sat Jan 22 20:24:51 2005
    311300 1000 100644 730628096 178552/178552 Sat Jan 22 20:24:51 2005
    311297 1000 40755 0 1/ 1 Sat Jan 22 20:24:52 2005

  4. 使用 dump 命令恢复数据到另一分区. 很明显, 这几项记录就是被我删掉的那个电影 (包括它的文件夹, 它的两个文本信息文件, 它自己 (第三行, 大小为 730628096 那个)). 我只需要电影本身, 于是查到它的 inode 值 (第一列) 为 311300, 接着在 debugfs 的提示符里使用 dump 命令将它拯救到另一个分区里 (比如我的 /mnt/share/dump)

    # debugfs /dev/hda9
    debugfs 1.35 (28-Feb-2004)
    debugfs: lsdel
    debugfs: dump <311300> /mnt/share/dump/movie.avi

    留心括起 inode 值 311300 的那俩尖括号 <>, 这是必须的, 否则 debugfs 会告诉你找不到文件.
  5. 重复 dump /path/to/file 命令一个个恢复你还想拯救的文件

11/05/2007

搬家

周末搬家,一个字“累”。
前天下午开始收拾东西,看着堆满客厅的箱子、包,还有卧室里好几个棉被、两衣柜的衣服,还有厨房一大堆。。。头大!经常收拾一会儿就不由自主的停下来发呆,折腾到晚上1点支撑不住了就休息了。第二天早上9点多就起床了,吃了一点面包然后接着干,终于卧室的东西收拾差不多了,看看时间快12点了,于是出去吃午饭,接着马不停蹄地出去找车。
中间的辛苦就不提了。给我搬家的车是一辆小面包车,我觉得这车应该没问题,东西能装下,结果等车厢快塞满时,才意识到错了,房间里面还有一大堆东西咧,只好让司机再跑一趟,当然运费也要加咯。第二趟仍然是满满地一车,可见东西之多啊!最后一趟搬过去的时候已经快8点了,司机的家人打来好几个电话,估计这么晚不放心,我让司机先回去了,看着卸下来的一大堆的东西,再次头大(因为这次只能我一人搬了),没办法,挽起袖子搬呗。。。到后来我干脆把毛衣脱了,穿着一件秋衣,可依旧大汗淋漓。。。
在这里要感谢房东,还有那位司机,耽误司机不少时间,另外他也帮着搬上搬下的。
本来三个房间(厨房、客厅、卧室)的东西挤到了一个房间,可以想象是多么“壮观”,好了,别发愣了,埋头收拾。。。
什么时候才能有自己的家。。。

11/01/2007

AIX 下使用 netstat 命令查进程,同事试出来的

AIX 下 netstat -na 可以看到其他机器和本系统建立的连接情况,但是我想知道和本系统的那个进程建立的连接,如何看?在 linux 下可以用 netstat -nap 能看到,但是 AIX 不支持。
1.netstat -Ana grep 地址,记住第一列的值(例如71daa608)
2.rmsock 71daa608 tcpcb,会显示进程号
3.ps -efgrep 进程号