2008年7月28日 星期一

指令 ls

ls是在terminal下最基本的指令,像是DOS下的dir,但功能卻強大多了

主要是因為Linux下的內部指令多半都可使用類似的引數(argument)產生選擇性的結果
可利用這個指令去學不同引數,得到想要的結果
厲害的話,使用"正規表示法(Regular Expression)"可以產生想要的結果,甚至可用來運算得到更準確、替代一堆shell script才能得到的結果

比如可學習grep, awk, sed等正規表示法,利用ls之後的管線(pipe) "|"得到不錯的結果
或是搭配其他Linux的指令與管線的作用,亦可完成更簡潔的工作

舉例來說:
簡單使用argument的範例:
ls -l :產生詳細的檔案列表結果
ls -la : 將隱藏的檔案也顯示出來
ls -lt : 以時間排序 
ls -ltr : 多個reverse 時間排序相反

加入管線功能:
ls -lt | tail : 顯示最後10行  (tail -f filename 可以監控特定檔案的變化,如看到log檔的即時變化)ls -lt | head : 顯示前10行ls -l | grep ab : 顯示檔案名稱有"ab"的結果ls -l | wc -l : 顯示ls結果中的行數,也差不多是該目錄下的檔案數目,wc是word count,"-l"是算行數ls -l | grep ^-|wc -l : 是顯示更準確的檔案數目,這有利用多個管線功能

利用正規表示式的範例:
ls -l | awk '{print $1 "\t" $9}'  
藉這行指令可以過濾掉不想要顯示的內容,比如只想看到各檔案的權限,本來ls -l不易看清,但是經過只顯示第1欄與第9欄的指令,就像下面的結果
total
drwxr-xr-x aogca
drwxr-xr-x avaya
-rwxr-xr-x backup.1.sh
drwxrwxr-x backup_enpan
-rwxr-xr-x backup.ogg.sh
drwxrwxr-x bash

這些簡單的顯示卻可以發展地博大精深,恐怕不是業餘的我可以深入,請多googling...

Ron

沒有留言: