零基礎學習Linux第四章:文件的常用命令

4.1文本文件查看

查看 more,less,head,tail,cat,以及 grep more 查看文件的內容
用 法 more filename less 作用/用法同 more
[more 最後一屏時自動退出,less 不自動退出,按 q 退出,也可以 ctrl+b 往前翻,ctrl+f 往後翻] head 查看文件的前幾行
用法 head -3 filename (不一定是-3 哦,只是舉個例子,查看前 3 行)
tail 查看文件的後幾行
用法 tail -5 filename (也不一定是-5,只是舉個例子,查看後 5 行)
cat 把文件的內容連接起來打印到終端或者用 > 覆蓋到另一個文件
用法 cat 文件 1 文件 2 …文件 n (直接把 n 個文件的內容連接起來輸出在屏幕上) cat 文件 1 文件 2 …文件 n > 文件 n+1(把 n 個文件連接成一個新文件)
示例 (看一下結果)

echo aa > aa.txt
echo bb > bb.txt
cat aa.txt bb.txt > cc.txt more cc.txt

grep 匹配文件中的行
grep 判斷字 文件
grep adm /etc/passwd ,會把/etc/passwd 文件中含有 adm 的行打印出來
more a.txt|grep china, 把本來要輸出 a.txt 的內容,交給 grep 再匹配,匹配含有 china 的行.

4.2文件打包壓縮

.tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar 是打包,不是壓縮!) 注:如果不想看打包的具體過程,可以用 tar cf filenamt.tar dirname;
.gz 解壓 1:gunzip FileName.gz
解壓 2:gzip -d FileName.gz
壓縮:gzip FileName
壓縮且不刪除源文件: gzip -c FileName > FileName.gz

.tar.gz
解壓:tar zxvf FileName.tar.gz
壓縮:tar zcvf FileName.tar.gz DirName

.bz2
解壓 1:bzip2 -d FileName.bz2
解壓 2:bunzip2 FileName.bz2
壓縮: bzip2 -z FileName
.tar.bz2
解壓:tar jxvf FileName.tar.bz2
壓縮:tar jcvf FileName.tar.bz2 DirName

.bz
解壓 1:bzip2 -d FileName.bz
解壓 2:bunzip2 FileName.bz
壓縮:未知

.tar.bz
解壓:tar jxvf FileName.tar.bz
壓縮:未知

.Z
解壓:uncompress FileName.Z
壓縮:compress FileName .tar.Z
解壓:tar Zxvf FileName.tar.Z
壓縮:tar Zcvf FileName.tar.Z DirName

.tgz
解壓:tar zxvf FileName.tgz
壓縮:未知
.tar.tgz
解壓:tar zxvf FileName.tar.tgz
壓縮:tar zcvf FileName.tar.tgz FileName

.zip
解壓:unzip FileName.zip
壓縮:zip FileName.zip DirName
.rar
解壓:rar a FileName.rar
壓縮:rar e FileName.rar

rar 請到:http://www.rarsoft.com/download.htm 下載!
解壓後請將 rar_static 拷貝到/usr/bin 目錄(其他由$PATH 環境變量指定的目錄也可以)

4.3文件查找

find / -name httpd.conf

這個命令語法看起來很容易就明白了,就是直接在 find 後面寫上 -name,表明要求系統按照文件名查找,最後寫上 httpd.conf 這個目標文件名即可。
稍等一會系統會在計算機屏幕上顯示出查找結果列表: etc/httpd/conf/httpd.conf
這就是 httpd.conf 這個文件在 Linux 系統中的完整路徑。查找成功。
如果輸入以上查找命令後系統並沒有顯示出結果,那麼不要以爲系統沒有執行 find/ -name httpd.conf 命令,而可能是你的系統中沒有安裝 Apache 服務器,這時只要你安裝了 Apache Web 服務器,然後再使用find / -name httpd.conf 就能找到這個配置文件了。
無錯誤查找技巧:

在 Linux 系統中普通用戶戶使用“find”命令來查詢這些文件目錄是,往往會出現"Permissiondenied."
(禁止訪問)字樣。系統將無法查詢到你想要的文件。爲了避免這樣的錯誤,我們可是使用轉移錯誤提示 的方法嘗試着查找文件,輸入

find / -name access_log 2>/dev/null

根據部分文件名查找方法:

這個方法和在 WINDOWS 中查找已知的文件名方法是一樣的。不過在 Linux 中根據部分文件名查找文件的方法要比在 WINDOWS 中的同類查找方法要強大得多。例如我們知道某個文件包含有 srm 這 3 個字母,那麼要找到系統中所有包含有這 3 個字母的文件是可以實現的,輸入:

find /etc -name '*srm*'

這個命令表明了 Linux 系統將在/etc 整個目錄中查找所有的包含有 srm 這 3 個字母的文件,比如absrmyz, tibc.srm 等等符合條件的文件都能顯示出來。如果你還知道這個文件是由 srm 這 3 個字母打頭的,那麼我們還可以省略最前面的星號,命令如下:

find/etc -name 'srm*'

這是隻有像 srmyz 這樣的文件才被查找出來,象 absrmyz 或者 absrm 這樣的文件都不符合要求,不被顯示,這樣查找文件的效率和可靠性就大大增強了。
根據文件的特徵查詢方法:

find / -amin -10 # 查找在系統中最後 10 分鐘訪問的文件
find / -atime -2 # 查找在系統中最後 48 小時訪問的文件
find / -empty # 查找在系統中爲空的文件或者文件夾
find / -group cat # 查找在系統中屬於 groupcat 的文件
find / -mmin -5 # 查找在系統中最後 5 分鐘裏修改過的文件
find / -mtime -1 #查找在系統中最後 24 小時裏修改過的文件
find / -nouser #查找在系統中屬於作廢用戶的文件
find / -user fred #查找在系統中屬於 FRED 這個用戶的文件

下面的列表就是對 find 命令所可以指定文件的特徵進行查找的部分條件。在這裏並沒有列舉所有的查找條件,參考有關 Linux 有關書籍可以知道所有 find 命令的查找函數。
-amin n
查找系統中最後 N 分鐘訪問的文件
-atime n
查找系統中最後 n24 小時訪問的文件
-cmin n
查找系統中最後 N 分鐘被改變狀態的文件
-ctime n
查找系統中最後 n
24 小時被改變狀態的文件
-empty
查找系統中空白的文件,或空白的文件目錄,或目錄中沒有子目錄的文件夾
-false
查找系統中總是錯誤的文件
-fstype type
查找系統中存在於指定文件系統的文件,例如:ext2 .
-gid n
查找系統中文件數字組 ID 爲 n 的文件
-group gname
查找系統中文件屬於 gnam 文件組,並且指定組和 ID 的文件
技巧: find 配合 grep 來查詢含有某個關鍵詞的文件
find /www -name “*.php” |xargs grep ‘mysql_connect’

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章