Linux下我經常使用的一些命令及配置

來源:互聯網
上載者:User
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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.