Linux下ulimit、find命令使用者
一、Linux Shell命令ulimit的用法
ulimit用於shell啟動程式所佔用的資源.
2,類別:
shell內建命令
3,語法格式:
ulimit [-acdfHlmnpsStvw] [size]
4,引數介紹:
-H 設定硬體資源限制.
-S 設定軟體資源限制.
-a 顯示當前所有的資源限制.
-c size:設定core檔案的最大值.單位:blocks
-d size:設定資料段的最大值.單位:kbytes
-f size:設定建立檔案的最大值.單位:blocks
-l size:設定在記憶體中鎖定程式的最大值.單位:kbytes
-m size:設定可以使用的常駐記憶體的最大值.單位:kbytes
-n size:設定核心可以同時開啟的檔案描述符的最大值.單位:n
-p size:設定管道緩衝區的最大值.單位:kbytes
-s size:設定堆疊的最大值.單位:kbytes
-t size:設定CPU使用時間的最大上限.單位:seconds
-v size:設定虛擬記憶體的最大值.單位:kbytes
5.舉例
在Linux下寫程式的時候,如果程式比較大,經常會遇到“段錯誤”(segmentation fault)這樣的問題,這主要就是由於Linux系統初始的堆疊大小(stack size)太小的緣故,一般為10M。我一般把stack size設定成256M,這樣就沒有段錯誤了!命令為:
ulimit -s 262140
如果要系統自動記住這個配置,就編輯/etc/profile檔案,在 “ulimit -S -c 0 > /dev/null 2>&1”行下,新增“ulimit -s 262140”,儲存重啟系統就可以了!
二、 find 用法
由於find具有強大的功能,所以它的選項也很多,其中大部分選項都值得我們花時間來了解一下。即使系統中含有網路檔案系統( NFS),find命令在該檔案系統中同樣有效,只你具有相應的許可權。
在執行一個非常消耗資源的find命令時,很多人都傾向於把它放在後臺執行,因為遍歷一個大的檔案系統可能會花費很長的時間(這裡是指30G位元組以上的檔案系統)。
2.1、find 命令格式
2.1.1、find命令的一般形式為;
find pathname -options [-print -exec -ok ...]
2.2、find命令的引數;
pathname: find命令所查詢的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。
-print: find命令將匹配的檔案輸出到標準輸出。
-exec: find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為'command' { } \;,注意{ }和\;之間的空格。
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓使用者來確定是否執行。
2.3、find命令選項
-name
按照檔名查詢檔案。
-perm
按照檔案許可權來查詢檔案。
-prune
使用這一選項可以使find命令不在當前指定的目錄中查詢,如果同時使用-depth選項,那麼-prune將被find命令忽略。
-user
按照檔案屬主來查詢檔案。
-group
按照檔案所屬的組來查詢檔案。
-mtime -n +n
按照檔案的更改時間來查詢檔案, - n表示檔案更改時間距現在n天以內,+ n表示檔案更改時間距現在n天以前。find命令還有-atime和-ctime 選項,但它們都和-m time選項。
-nogroup
查詢無有效所屬組的檔案,即該檔案所屬的組在/etc/groups中不存在。
-nouser
查詢無有效屬主的檔案,即該檔案的屬主在/etc/passwd中不存在。
-newer file1 ! file2
查詢更改時間比檔案file1新但比檔案file2舊的檔案。
-type
查詢某一型別的檔案,諸如:
b - 塊裝置檔案。
d - 目錄。
c - 字元裝置檔案。
p - 管道檔案。
l - 符號連結檔案。
f - 普通檔案。
-size n:[c] 查詢檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組計。
-depth:在查詢檔案時,首先查詢當前目錄中的檔案,然後再在其子目錄中查詢。
-fstype:查詢位於某一型別檔案系統中的檔案,這些檔案系統型別通常可以在配置檔案/etc/fstab中找到,該配置檔案中包含了本系統中有關檔案系統的資訊。
-mount:在查詢檔案時不跨越檔案系統mount點。
-follow:如果find命令遇到符號連結檔案,就跟蹤至連結所指向的檔案。
-cpio:對匹配的檔案使用cpio命令,將這些檔案備份到磁帶裝置中。
另外,下面三個的區別:
-amin n
查詢系統中最後N分鐘訪問的檔案
-atime n
查詢系統中最後n*24小時訪問的檔案
-cmin n
查詢系統中最後N分鐘被改變檔案狀態的檔案
-ctime n
查詢系統中最後n*24小時被改變檔案狀態的檔案
-mmin n
查詢系統中最後N分鐘被改變檔案資料的檔案
-mtime n
查詢系統中最後n*24小時被改變檔案資料的檔案
2.4、使用exec或ok來執行shell命令
使用find時,只要把想要的操作寫在一個檔案裡,就可以用exec來配合find查詢,很方便的
在有些作業系統中只允許-exec選項執行諸如l s或ls -l這樣的命令。大多數使用者使用這一選項是為了查詢舊檔案並刪除它們。建議在真正執行rm命令刪除檔案之前,最好先用ls命令看一下,確認它們是所要刪除的檔案。
exec選項後面跟隨著所要執行的命令或指令碼,然後是一對兒{ },一個空格和一個\,最後是一個分號。為了使用exec選項,必須要同時使用print選項。如果驗證一下find命令,會發現該命令只輸出從當前路徑起的相對路徑及檔名。
例如:為了用ls -l命令列出所匹配到的檔案,可以把ls -l命令放在find命令的-exec選項中
# find . -type f -exec ls -l { } \;
-rw-r--r-- 1 root root 34928 2003-02-25 ./conf/httpd.conf
-rw-r--r-- 1 root root 12959 2003-02-25 ./conf/magic
-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README
上面的例子中,find命令匹配到了當前目錄下的所有普通檔案,並在-exec選項中使用ls -l命令將它們列出。
在/logs目錄中查詢更改時間在5日以前的檔案並刪除它們:
$ find logs -type f -mtime +5 -exec rm { } \;
記住:在shell中用任何方式刪除檔案之前,應當先檢視相應的檔案,一定要小心!當使用諸如mv或rm命令時,可以使用-exec選項的安全模式。它將在對每個匹配到的檔案進行操作之前提示你。
在下面的例子中, find命令在當前目錄中查詢所有檔名以.LOG結尾、更改時間在5日以上的檔案,並刪除它們,只不過在刪除之前先給出提示。
$ find . -name "*.conf" -mtime +5 -ok rm { } \;
< rm ... ./conf/httpd.conf > ? n
按y鍵刪除檔案,按n鍵不刪除。
任何形式的命令都可以在-exec選項中使用。
在下面的例子中我們使用grep命令。find命令首先匹配所有檔名為“ passwd*”的檔案,例如passwd、passwd.old、passwd.bak,然後執行grep命令看看在這些檔案中是否存在一個sam使用者。
# find /etc -name "passwd*" -exec grep "sam" { } \;
sam:x:501:501::/usr/sam:/bin/bash
find 常用例項:
1、使用name選項
檔名選項是find命令最常用的選項,要麼單獨使用該選項,要麼和其他選項一起使用。
可以使用某種檔名模式來匹配檔案,記住要用引號將檔名模式引起來。
不管當前路徑是什麼,如果想要在自己的根目錄$HOME中查詢檔名符合*.txt的檔案,使用~作為 'pathname'引數,波浪號~代表了你的$HOME目錄。
$ find ~ -name "*.txt" -print
想要在當前目錄及子目錄中查詢所有的‘ *.txt’檔案,可以用:
$ find . -name "*.txt" -print
想要的當前目錄及子目錄中查詢檔名以一個大寫字母開頭的檔案,可以用:
$ find . -name "[A-Z]*" -print
想要在/etc目錄中查詢檔名以host開頭的檔案,可以用:
$ find /etc -name "host*" -print
想要查詢$HOME目錄中的檔案,可以用:
$ find ~ -name "*" -print 或find . -print
要想讓系統高負荷執行,就從根目錄開始查詢所有的檔案。
$ find / -name "*" -print
如果想在當前目錄查詢檔名以兩個小寫字母開頭,跟著是兩個數字,最後是.txt的檔案,下面的命令就能夠返回名為ax37.txt的檔案:
$find . -name "[a-z][a-z][0--9][0--9].txt" -print
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12272958/viewspace-676874/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux下find命令詳解Linux
- Linux下ulimit命令的詳細使用介紹LinuxMIT
- Linux下find命令的用法(轉)Linux
- linux/unix ulimit命令詳解LinuxMIT
- linux find命令Linux
- linux find 命令Linux
- linux find 命令!Linux
- Linux系統下find、locate命令如何使用?Linux
- linux/unix find命令Linux
- linux下find,xargs命令詳解和例項Linux
- linux中file命令和find命令Linux
- Linux find 命令詳解Linux
- Linux find命令詳解Linux
- Linux精講——find命令Linux
- linux每日命令(20):find命令概覽Linux
- Linux ulimit使用LinuxMIT
- Linux 常用基本命令 findLinux
- (轉)Linux find命令詳解Linux
- Linux Find 命令精通指南Linux
- linux下find(檔案查詢)命令的用法總結Linux
- Linux下的五個查詢命令:grep、find、locate、whereis、whichLinux
- linux----ulimit 限制LinuxMIT
- linux ulimit設定LinuxMIT
- Linux/Unix重要find命令詳解Linux
- 在 Linux中find命令使用技巧Linux
- linux 查詢檔案命令 findLinux
- 【LINUX】linux ulimit調優LinuxMIT
- 每天一個linux命令:find命令之xargsLinux
- linux find 命令和 while 命令聯合使用案例LinuxWhile
- find 命令
- find命令
- linux命令之----find用於指定目錄下查詢檔案Linux
- linux下的find 和 grepLinux
- Linux - find命令常用引數與示例Linux
- linux命令終極系列之(find)(轉)Linux
- linux下的find檔案查詢命令與grep檔案內容查詢命令Linux
- linux_ulimit_open filerLinuxMIT
- 每天一個linux命令(1):find命令之execLinux