find 的命令的使用方法。
1. find
find pathname -options [-print -exec -ok]
讓我們來看看該命令的引數:
pathname find命令所查詢的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。
-print find命令將匹配的檔案輸出到標準輸出。
-exec find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為'command' {} \;,注意{}和\;之間的空格,同時兩個{}之間沒有空格,
注意一定有分號結尾。
0) -ok 和-exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓使用者來確定是否執行
find . -name "datafile" -ctime -1 -exec ls -l {} \; 找到檔名為datafile*, 同時建立實際為1天之內的檔案, 然後顯示他們的明細.
find . -name "datafile" -ctime -1 -exec rm -f {} \; 找到檔名為datafile*, 同時建立實際為1天之內的檔案, 然後刪除他們.
find . -name "datafile" -ctime -1 -ok ls -l {} \; 這兩個例子和上面的唯一區別就是-ok會在每個檔案被執行命令時提示使用者, 更加安全.
find . -name "datafile" -ctime -1 -ok rm -f {} \;
1) find . -name 基於檔名查詢,但是檔名的大小寫敏感.
find . -name "datafile*"
2) find . -iname 基於檔名查詢,但是檔名的大小寫不敏感.
find . -iname "datafile*"
3) find . -maxdepth 2 -name fred 找出檔名為fred,其中find搜尋的目錄深度為2(距當前目錄), 其中當前目錄被視為第一層.
4) find . -perm 644 -maxdepth 3 -name "datafile*" (表示許可權為644的, 搜尋的目錄深度為3, 名字為datafile*的檔案)
5) find . -path "./rw" -prune -o -name "datafile*" 列出所有不在./rw及其子目錄下檔名為datafile*的檔案。
find . -path "./dir*" 列出所有符合dir*的目錄及其目錄的檔案.
find . \( -path "./d1" -o -path "./d2" \) -prune -o -name "datafile*" 列出所有不在./d1和d2及其子目錄下檔名為datafile*的檔案。
6) find . -user ydev 找出所有屬主使用者為ydev的檔案。
find . ! -user ydev 找出所有屬主使用者不為ydev的檔案, 注意!和-user之間的空格。
7) find . -nouser 找出所有沒有屬主使用者的檔案,換句話就是,主使用者可能已經被刪除。
8) find . -group ydev 找出所有屬主使用者組為ydev的檔案。
9) find . -nogroup 找出所有沒有屬主使用者組的檔案,換句話就是,主使用者組可能已經被刪除。
10) find . -mtime -3[+3] 找出修改資料時間在3日之內[之外]的檔案。
find . -mmin -3[+3] 找出修改資料時間在3分鐘之內[之外]的檔案。
find . -atime -3[+3] 找出訪問時間在3日之內[之外]的檔案。
find . -amin -3[+3] 找出訪問時間在3分鐘之內[之外]的檔案。
find . -ctime -3[+3] 找出修改狀態時間在3日之內[之外]的檔案。
find . -cmin -3[+3] 找出修改狀態時間在3分鐘之內[之外]的檔案。
11) find . -newer eldest_file ! -newer newest_file 找出檔案的更改時間 between eldest_file and newest_file。
find . -newer file 找出所有比file的更改時間更新的檔案
find . ! -newer file 找出所有比file的更改時間更老的檔案
12) find . -type d 找出檔案型別為目錄的檔案。
find . ! -type d 找出檔案型別為非目錄的檔案。
b - 塊裝置檔案。
d - 目錄。
c - 字元裝置檔案。
p - 管道檔案。
l - 符號連結檔案。
f - 普通檔案。
13) find . -size [+/-]100[c/k/M/G] 表示檔案的長度為等於[大於/小於]100塊[位元組/k/M/G]的檔案。
14) find . -empty 查詢所有的空檔案或者空目錄.
15) find . -type f | xargs grep "ABC"
使用xargs和-exec的區別是, -exec可能會為每個搜尋出的file,啟動一個新的程式執行-exec的操作, 而xargs都是在一個程式內完成, 效率更高.
2. crontab:
檔案格式如下(每個列之間是使用空格分開的):
第1列分鐘1~59
第2列小時1~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~6(0表示星期天)
第6列要執行的命令
分 時 日 月 星期 要執行的命令
30 21* * * /apps/bin/cleanup.sh
上面的例子表示每晚的21:30執行/apps/bin目錄下的cleanup.sh。
45 4 1,10,22 * * /apps/bin/backup.sh
上面的例子表示每月1、10、22日的4:45執行/apps/bin目錄下的backup.sh。
10 1 * * 6,0 /bin/find -name "core" -exec rm {} \;
上面的例子表示每週六、週日的1:10執行一個find命令。
0,30 18-23 * * * /apps/bin/dbcheck.sh
上面的例子表示在每天18:00至23:00之間每隔30分鐘執行/apps/bin目錄下的dbcheck.sh。
0 23 * * 6 /apps/bin/qtrend.sh
上面的例子表示每星期六的11:00pm執行/apps/bin目錄下的qtrend.sh。
-u 使用者名稱。
-e 編輯crontab檔案。
-l 列出crontab檔案中的內容。
-r 刪除crontab檔案。
系統將在/var/spool/cron/目錄下自動儲存名為
cron是定時完成的任務, 在任務啟動時,一般來講都是重新啟動一個新的SHELL, 因此當需要使用登入配置檔案的資訊,特別是環境變數時,是非常麻煩的.
一般這種問題的使用方法如下:
0 2 * * * ( su - USERNAME -c "export LANG=en_US; /home/oracle/yb2.5.1/apps/admin/1.sh"; ) > /tmp/1.log 2>&1
如果打算執行多條語句, 他們之間應使用分號進行分割. 注: 以上語句必須在root的帳戶下執行.
3. nohup:
nohup command &
如果你正在執行一個程式,而且你覺得在退出帳戶時該程式還不會結束,那麼可以使用nohup命令。該命令可以在你退出帳戶之後繼續執行相應的程式。
Nohup就是不掛起的意思(no hang up)。
4. cut:
1) cut一般格式為:cut [options] file1 file2
-c list 指定剪下字元數。
-f field 指定剪下域數。
-d 指定與空格和tab鍵不同的域分隔符。
-c 用來指定剪下範圍,如下所示:
-c1,5-7 剪下第1個字元,然後是第5到第7個字元。
-c2- 剪下第2個到最後一個字元
-c-5 剪下最開始的到第5個字元
-c1-50 剪下前50個字元。
-f 格式與-c相同。
-f1,5 剪下第1域,第5域。
-f1,10-12 剪下第1域,第10域到第12域。
2) 使用方式:
cut -d: -f3 cut_test.txt (基於":"作為分隔符,同時返回field 3中的資料) *field從0開始計算。
cut -d: -f1,3 cut_test.txt (基於":"作為分隔符,同時返回field 1和3中的資料)
cut -d: -c1,5-10 cut_test.txt(返回第1個和第5-10個字元)
5. sort:
1) 對檔案內容進行排序,預設分割符為空格,如果自定義需要使用-t選擇,如-t:
2) 使用分隔符分割後,第一個field為0,awk中為1
3) 具體用法如下:
sort -t: sort_test.txt(預設基於第一個field進行排序,field之間的分隔符為":")
sort -t: -r sort_test.txt(預設基於第一個field進行倒序排序,field之間的分隔符為":")
sort -t: +1 sort_test.txt(基於第二個field進行排序,field之間的分隔符為":")
sort +3n sort_test.txt(基於第三個field進行排序,其中n選項提示是進行"數值型"排序)
sort -u sort_test.txt(去除檔案中重複的行,同時基於整行進行排序)
sort -o output_file -t: +1.2[n] sort_text.txt(基於第二個field,同時從該field的第二個字元開始,這裡n的作用也是"數值型"排序,並將結果輸出到output_file中)
sort -t: -m +0 filename1 filename2(合併兩個檔案之後在基於第一個field排序)
6. pgrep和pkill:
查詢和殺死指定的程式, 他們的選項和引數完全相同, 這裡只是介紹pgrep
/> sleep 100&
1000
/> sleep 100&
1001
/> pgrep sleep
1000
1001
/> pgrep -d: sleep # -d定義多個程式之間的分隔符, 如果不定義則使用newline
1000:1001
/> pgrep -n sleep # -n表示如果該程式有多個程式,查詢最新的.
1001
/> pgrep -o sleep # -o表示如果該程式有多個程式,查詢最老的.
1000
/> pgrep -G root,oracle sleep # -G 表示程式的group id在-G後面的組列表中的程式會被考慮
1000
1001
/> pgrep -u root,oracle sleep # -u 表示程式的effetive user id在-u後面的組列表中的程式會被考慮
1000
1001
/> pgrep -U root,oracle sleep # -U 表示程式的real user id在-u後面的組列表中的程式會被考慮
1000
1001
/> pgrep -x sleep # -x 表示程式的名字必須完全匹配, 以上的例子均可以部分匹配
1000
1001
/> pgrep -x sle
/> pgrep -l sleep # -l 將不僅列印pid,也列印程式名
1000 sleep
1001 sleep
/> pgrep -lf sleep # -f 一般與-l合用, 將列印程式的引數
1000 sleep 100
1001 sleep 100
/> pgrep -f sleep -d, | xargs ps -fp
UID PID PPID C STIME TTY TIME CMD
root 1000 2138 0 06:11 pts/5 00:00:00 sleep 1000
root 1001 2138 0 06:11 pts/5 00:00:00 sleep 1000
7. fuser:
fuser -m /dev # 列出所有和/dev裝置有染的程式pid.
fuser testfile # 列出和testfile有染的程式pid
fuser -u testfile # 列出和testfile有染的程式pid和userid
fuser -k testfile # 殺死和testfile有染的程式pid
8. mount:
如何在unix下面mount一個windows下面的共享目錄
mount -t smbfs -o username=USERNAME,password=PASSWORD //windowsIp/pub_directory /mountpoint
/> mkdir -p /mnt/win32
/> mount -o username=administrator,password=1234 //10.1.4.103/Mine /mnt/win32
/> umount /mnt/win32 # 解除安裝該mount.
9. netstat:
-a 表示顯示所有的狀態
-l 則只是顯示listen狀態的,預設只是顯示connected
-p 顯示應用程式的名字
-n 顯示ip、port和user等資訊
-t 只顯示TCP的連線
/> netstat -apnt
/> netstat -lpnt #如果只是顯示監聽埠的狀態,可以使用該命令
10. tune2fs:
調整ext2/ext3檔案系統特性的工具
-l 檢視檔案系統資訊
/> tune2fs -l /dev/sda1 #將會列出所有和該磁碟分割槽相關的資料資訊,如Inode等。
/> tune2fs -l /dev/sda1 | grep -i "block size" #檢視當前檔案系統的塊兒尺寸
/> tune2fs -l /dev/sdb1 |grep -i "mount count" #檢視 mount count 掛載次數
11. 開啟或關閉Linux(iptables)防火牆
重啟後永久性生效:
/> chkconfig iptables on #開啟
/> chkconfig iptables off #關閉
即時生效,重啟後還原:
/> service iptables start #開啟
/> service iptables stop #關閉
12. tar 分卷壓縮和合並
以每卷500M為例
/>tar cvzpf - somedir | split -d -b 500m #tar分卷壓縮
/>cat x* > mytarfile.tar.gz #tar多卷合併
13. 把man或info的資訊存為文字檔案
/> man tcsh | col -b > tcsh.txt
/> info tcsh -o tcsh.txt -s
14. 檢視正在執行程式的執行緒數
/>ps -eo "args nlwp pid pcpu"
15. 使用md5sum計算檔案的md5
/> md5sum test.c
07af691360175a6808567e2b08a11724 test.c
/> md5sum test.c > hashfile
/> md5sum –c hashfile # 驗證hashfile中包含的md5值和對應的檔案,在執行該命令時是否仍然匹配, 如果此時test.c被修改了,該命令將返回不匹配的警告.
16. 在ps命令中顯示程式的完整的命令列引數
/>ps auwwx
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/235507/viewspace-712719/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sed命令和find命令的結合的使用
- find命令
- find 命令的引數詳解
- find -newer命令
- emc powerpath的powermt命令使用方法
- Linux 命令列:find 的 26 個用法示例Linux命令列
- find 命令入門
- grep、find命令整理
- `find` 命令詳解
- find 命令及其示例
- linux tail命令的使用方法詳解LinuxAI
- linux中file命令和find命令Linux
- linux中查詢find命令的複雜用法Linux
- Linux學習之linux的find命令如何使用?Linux
- Linux find 命令詳解Linux
- linux每日命令(20):find命令概覽Linux
- chown 命令使用方法
- scp命令使用方法
- 通過 find 命令找到你要找的東西
- Find命令查詢最近幾天修改的檔案
- Unix系統中的dot命令的使用方法詳解
- Windows 批處理之DATE命令的使用方法Windows
- linux dig 命令使用方法Linux
- Dreamweaver關於媒體查詢命令的使用方法
- win10系統下BCDEdit命令的使用方法Win10
- Docker映象提交命令commit的工作原理和使用方法DockerMIT
- Linux/Unix重要find命令詳解Linux
- 在 Linux中find命令使用技巧Linux
- linux 查詢檔案命令 findLinux
- Linux下的五個查詢命令:grep、find、locate、whereis、whichLinux
- 5分鐘學會使用Linux的 grep、find、ls、wc 命令Linux
- 每天一個linux命令(1):find命令之execLinux
- Linux運維必知必會的命令列:find 的 26 個用法示例!Linux運維命令列
- [20180302]使用find命令小錯誤.txt
- python檔案查詢之find命令Python
- Linux中的查詢命令:find、locate、whereis、which、type及其區別Linux
- MySQL中的alter table命令的基本使用方法及提速最佳化MySql
- find的合理使用
- 除了find命令,還有這麼多檔案查詢命令!