1. Find in files:
grep -r "str" dir ; 不過我沒這麼用過
一般用:
find <dir> | xargs grep "str" ; 相容性比較好
2. List files:
ls -lrt
3. Delete files:
rm -rv[f]
find . -name "\.test.*" | xargs rm -rf ; 刪除目前的目錄下邊以.test開頭的所有檔案
4. Archive files:
如果支援z功能,tar zcf * a.tar.gz && echo 0
如果不支援,
tar -cvf - dir1 dir2 dir3 | gzip > a.tar.gz
tar -cvf - dir1 dir2 dir3 | bzip2 > a.tar.bz2
5. vim設定檔:
~/.vimrc, 效果:使用4個空格替代tab鍵,支援文法
:syntax enable
set backspace=2
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
set cindent
set ai
6. 簡單分區及mount:
cfdisk
mkswap /dev/sda1
mkfs.xfs /dev/sda2 ; xfs檔案格式
mke2fs -v /dev/sda2; ext2檔案格式
mount /dev/sda2 /data/sda2
7. 編輯簡單的檔案:
cat > test.cpp << "EOF"; 以EOF來控制檔案結束,缺∫証C來結束
8. 環境變數匯入
. ./env
source ./env
9. 擷取NPTL的版本
getconf GNU_LIBPTHREAD_VERSION
10. 查詢安裝包是否安裝
rpm -qa | grep glibc
11. 作業系統環境
uname -a
12. 反安裝lilo
用DOS啟動,執行FDISK /MBR就可以重寫主引導記錄,覆蓋LILO。
在Linux下執行 lilo –u /dev/hda (其中/dev/hda 是lilo安裝的位置)
13. 配置XServer支援遠端桌面
1 修改/etc/X11/xdm/Xaccess 檔案,找到下面的行,去掉注釋號。
# * #any host can get a login windows"
2 /etc/X11/xdm/xdm-config 檔案,在下面行上加註釋
"Display Manager .Requestport 0"
3 /etc/X11/gdm/gdm.conf檔案,在[xdmcp]部分,
把enable的狀態改為true
去掉#Port=177前的#
4 /etc/kde/kdm/kdmrc檔案,在[xdmcp]部分,
把enable 狀態設定成true
5 /etc/inittab裡面預設運行層級是5
6 關閉防火牆。
14. lsof
lsof -p PID
lsof -i :9000
cat /proc/14633/status
lsof -i tcp | grep LISTEN
15. vsftpd
# cd /home/xuchen/vsftpd-2.0.3 //進入vsftpd-2.0.3的原始碼目錄
# make clean //清除編譯環境
# vi builddefs.h \\繼續編輯builddefs.h 檔案,檔案內容如下:
#ifndef VSF_BUILDDEFS_H
#define VSF_BUILDDEFS_H
#define VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#define VSF_BUILD_SSL
#endif /* VSF_BUILDDEFS_H */
將以上define VSF_BUILD_PAM行的define改為undef,支援tcp_wrappers,
不支援PAM認證方式,支援SSL,如果支援了PAM認證方式,你本機使用者是不能登陸的。
16. 利用Find命令改變所有權
想要改變目前的目錄下所有檔案的所有權,可以這樣:
find . -exec chown OWNER.[GROUP] {} \; (Solaris)
find . -exec chown -R OWNER.[GROUP] {} \; (Linux)
17. 取消^M字元
一些DOS檔案傳到unix下時,你經常會看見每行檔案後面有個討厭的^M 字元,
有兩個簡單的方法可以取消它。用"vi"開啟此檔案,在Command mode下敲入:
:%s/^V^M//g ,或者,在UNIX SHELL下敲入:
sed 's/^V^M//g' foo > foo.new
不過,我也經常使用dos2unix foo>foo
18. 刪除環境變數
unsetenv NAME
19. gdb速查
man gdb
詳情:
http://www.gnu.org/software/gdb/documentation/
下載:http://sources.redhat.com/gdb/current/onlinedocs/: http://sources.redhat.com/gdb/current/onlinedocs/gdb.pdf.gz
.ps: http://sources.redhat.com/gdb/current/onlinedocs/gdb.ps.gz
.html: http://sources.redhat.com/gdb/current/onlinedocs/gdb.html.tar.gz
遇到出現SIGSEGV錯誤,怎麼查?
gcc -g 編譯
ulimit -c 20000
之後運行程式,等core dump
最後
gdb -c core <exec file>
來查調用棧
在常見的x86平台上如何gdb調試fork或者exec出來的子進程
.pdf 1. 在fork語句上設定斷點,修改fork返回的值。這種做法並沒有真正去
觸動已經存在的子進程,而是強迫夫進程去走子進程的流程。對付簡單
情況都非常有效。
2. 修改原始碼,在fork後面,父進程和子進程中都加上while(debug_lock) sleep(1);
這樣的語句。fork後父進程detach,兩者就都可以attatch了,attatch後
set debug_lock = 0使得程式流程正常繼續。這種做法可以調試子進程,
但是需要修改原始碼。
3. 如果你使用的gdb版本>= 6.0,考慮使用
(gdb) set follow-fork-mode
ask child parent