kooyee ‘s blog

          開源軟件, 眾人努力的結晶, 全人類的共同財富
          posts - 103, comments - 55, trackbacks - 0, articles - 66
             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          【應用】Linux查找文件的相關命令

          Posted on 2007-08-30 17:55 kooyee 閱讀(314) 評論(0)  編輯  收藏 所屬分類: Lniux/Unix
           Linux查找文件的相關命令如表2-7所示。

            表2-7 Linux查找文件的相關命令說明

          簡要中文說明

          程序所在目錄

          more

          分頁顯示一個文件或任何輸出結果

          /bin

          less

          分頁顯示一個文件并且可以回頭

          /usr/bin

          whereis

          尋找文件工具

          /usr/bin

          find

          尋找文件工具

          /usr/bin

          locate

          尋找文件工具

          /usr/bin

          grep

          尋找某字串內容工具

          /bin

          env

          查看環境設置

          /usr/bin

            more [文件名]

            分頁顯示一個文件或任何輸出結果

            其實more不是用來尋找文件的,但是一般人卻十有八九是在找文件時把它派上用場。

            因為 more 主要的作用是把輸出結果顯示在屏幕上,一頁停止一次,所以例如當我們用 ls 命令去找一個 x字母開頭的文件,而下達了 ls x* 卻仍然列出太多文件,一個屏幕看不完時,就可以配合管道符號和 more 命令:

            ls x* | more

            它會一屏停止一下,等待您按空白鍵才繼續往上卷。于是 more 儼然猶如 DOS 的 DIR 命令 /P 選項的地位了。而 more 當主角的時候,是用做一頁一次顯示文章,例如我們想要看 /etc 里面的 XF86Config 文件,可以下如下命令:

            more /etc/XF86Config

            這樣,我們就可以不斷按空白鍵把這個文件慢慢看完。但是,因為more 先天的設計,如果您看完了這頁,想要回頭看上一頁,很抱歉,是不行的,您必須從頭再來!于是大家在使用中就干脆摒棄這個命令,而代之以 vi 或者pico, joe等文書編輯器來看文字文件了!

            pico /etc/XF86Config

            到最后,很少人再用more了。所以more經常配合 ls在找文件的場合出現,每天都可以上場十幾次。

            所以,相信把失去主要舞臺的 more歸類為找尋文件的相關命令雖不合法,但合情合理也合于現狀。

            練習:

            請您用 more 去看一個文字文件,與用 pico 去看一個文字文件相比較,哪一個比較方便?

                   less [文件名]

            分頁顯示一個文件并且可以回頭

            less命令很好笑,取名時就故意與more 命令打對臺,你叫“更多”,我就叫“更少”,就好像你叫黑人牙膏我就叫白人牙膏一樣。事實上與什么“更多”、“更少”都沒有關系。它最主要只是為了改進一點:more 不能回頭看的問題!

            less 的優點就是可以隨時回頭,最簡單的用【PgUp】鍵就可以向上翻。

            可是依我們的孤陋之見,還是用文書編輯器去閱讀文件就好了嘛,更何況 less 本身還有高達 42 個選項,何必那么麻煩!

            所以,為了您好,選項我們也不介紹了。這個命令目前只在 Linux 系統可以使用,其他 UNIX 家族尚無。

            練習:

            (1)請您用 less 去看一個文字文件,與用 pico 去看一個文字文件相比,哪一個比較方便?

            (2)less命令能像more命令一樣配合管道符號,讓ls的列示文件能夠回頭翻看嗎?

            whereis 文件名

            尋找文件工具

            whereis 是一個小巧好用的文件尋找工具,它專門用來尋找可執行的程序、原始程序和使用手冊。

            例如執行命令:

            whereis bzip2

            它就會告訴您,bzip2 放在 /usr/bin 。通常,如果您確定某個東西是程序,而用 whereis 找不到的話,那就表示本系統沒有安裝該程序了,例如:

            whereis cjoe

            表示這套系統中沒有裝 cjoe,否則應該會找到才對。

            練習:

            (1)找找您的系統上有沒有xpaint這個程序?因為這個程序在 KDE 和 GNOME 的默認主菜單上都沒有列出來,但并不表示一定沒有。

            (2)能用 whereis 命令去找到XF86Config設置文件在哪里嗎?為什么 ?

                   find [尋找的目錄] [表示式]

            尋找文件工具

            find 是高級的尋找文件工具,可不像 whereis 那么“陽春白雪”。但也因為它太高級了,復雜到很多人用不熟練。我們盡量只舉簡單的例子。

            最簡單的格式如下:

            find / -name my* -print

            這個意思是請它從最底層的主目錄開始找,找出文件名是 my 開頭的文件,把它顯示出來。-print 選項是顯示,您可把它當做固定要加上的項目。

            但它還可以用時間來找,例如:

            find /usr -atime 3 –print

            會從 /usr 目錄開始往下找,找最近3天之內存取過的文件。

            find /usr -ctime 5 –print

            會從 /usr 目錄開始往下找,找最近5天之內修改過的文件。

            find /doc -user jacky -name 'j*' –print

            會從 /doc 目錄開始往下找,找jacky 的、文件名開頭是 j的文件。

            find /doc \( -name 'ja*' -o- -name 'ma*' \) –print

            會從 /doc 目錄開始往下找,找尋文件名是 ja 開頭或者 ma開頭的文件。

            find /doc -name '*bak' -exec rm {} \;

            會從 /doc 目錄開始往下找,找到凡是文件名結尾為 bak的文件,把它刪除掉。-exec 選項是執行的意思,rm 是刪除命令,{ } 表示文件名,“\;”是規定的命令結尾。

            練習:

            用 find 命令能否找出XF86Config這個文件在哪里

                   locate 文件名

            尋找文件工具

            locate 也是一個尋找文件的工具,但是它不像 whereis 只能找程序文件等幾種文件,也不像find那么復雜,可以算是“中庸之道”!

            中庸之道,往往就是大部分人最佳的選擇,如圖2-32所示。


          圖2-32 3種尋找文件命令的對比

            whereis找不到的文件,find要一大串命令,還花了很久的時間才找到的XF86Config設置文件,而用locate一下子就簡單找到了!

            練習:

            (1)用 locate 找找有沒有一個inittab文件?

            (2)用 locate 找找有哪些 .pcf 字形文件。如果找不到的話,找找看已經壓縮過的字形文件 .pcf.Z 或者 .pcf.gz。

            grep [-選項] [字串] [文件名]

            尋找某字串內容工具

            有些時候,我們存儲文件時隨手亂取了一個文件名,事后自己都忘了那個文件名叫什么,連開頭第一個字母都想不起來。那么,如果您還記得該文件一點特殊的詞語,應該可以用 grep 命令找到。

            例如,我們想在一個目錄的200個文件里面,找出哪一個文件提到“排版”這個詞語:

            grep 排版 *.txt

            找到了兩個文件有此字樣。然后您再自行調出看看到底哪一篇才是您所要的即可。尋找時注意盡量尋找特殊詞語,如果您輸入“然后”、“這樣”、“不是”、“電腦”……這類太普遍的詞語,可能幾百篇文章中都有,那就失去了用 grep 找文件的意義了。

            因為例子中第二篇文章出現了兩次,所以列出了3行,其實只有兩個文件符合。如果您想要讓它凡是符合條件的只出現一次的話,加上 -l 選項就可以了,如圖2-33所示。


          圖2-33 增加-l選項后的grep命令

            其他常用的選項還有:

            -n 同時列出該詞語出現在文章的第幾行。

            -c 計算一下該字串出現的次數。

            -i 比對的時候,不計較大小寫的不同。

            練習:

            當我們要為系統增加一個用戶時,往往擔心添加一個已經存在的用戶名字。如果用 grep 命令,可不可以避免這個問題?如何避免 ?

                   env

            查看環境設置

            env 命令可以設置很多環境變量,例如終端機的類型、使用的瀏覽器、用戶主目錄(Home Directory)的所在等等。

            但是我們現在把焦點集中在其中一項:PATH環境變量。

            因為 PATH 這個環境變量掌管了您下達命令的時候,它會到下面幾個目錄去找您命令的程序:

            /usr/bin

            /sbin

            /usr/sbin

            /usr/X11R6/bin

            /root/bin

            那么您用 env 命令,讓它把所有的環境變量列出來的時候,就可以看到有一行PATH 設置,把上述幾個目錄用分號分開,然后串成一串。這就是它所謂尋找命令的“路徑”。DOS 系統也有一個同名而且意義非常相似的路徑設置。如圖2-34所示。


          圖2-34 執行env命令

            如果您想在它查找命令的路徑上增加一個 /usr/bin/he,而把 /root/bin 去掉,那么您可以重新下達:

            env PATH=/usr/bin;/sbin;/usr/sbin;/usr/X11R6/bin;/usr/bin/he

            當然env 其他的變量也可以這樣改變。但是因為涉及面太廣,我們就只把焦點集中在改變查找路徑上,其他暫時不談。

            練習:

            用env命令改變您默認的瀏覽器

          主站蜘蛛池模板: 抚顺市| 德钦县| 绥化市| 云和县| 东源县| 宜都市| 怀宁县| 开鲁县| 迁安市| 长顺县| 焦作市| 故城县| 和硕县| 遵义县| 柳河县| 二手房| 荥阳市| 岫岩| 莱阳市| 葵青区| 辽中县| 夏河县| 九江县| 平昌县| 南涧| 迁西县| 信丰县| 邓州市| 彭山县| 大姚县| 德钦县| 连南| 江孜县| 石屏县| 翁源县| 泗水县| 拜泉县| 南投市| 绥宁县| 法库县| 施秉县|