原文地址: http://wiki.100ask.org
001節_Linux進階命令__find命令
我們在Windows中搜索文件,一般查找文件需要傳入兩個條件:
1)在那些目錄中查找;
2)查找的內容;
在Linux中,查找文件的也需要這兩個條件,不同於Windows使用搜索框查找,Linux中使用 find 命令查找文件。
find 命令:
*目的:查找符合條件的文件
*格式: find 目錄名 選項 查找條件
舉例1:
find /work/001_linux_basic/dira/ -name "test1.txt"
說明:
a)/work/001_linux_basic/dira/
指明了查找的路徑
b)-name
表明以名字來查找文件
c)"test1.txt"
就指明查找名為test1.txt的文件
舉例2:
find /work/001_linux_basic/dira/ -name "*.txt"
說明:
a)查找指定目錄下面所以以.txt結尾的文件,其中*是通配符。
舉例3:
find /work/001_linux_basic -name "dira"
說明:
a)查找指定目錄下面是否存在dira這個目錄,dira是目錄名。
注意:
1)如果沒有指定查找目錄,則為當前目錄。
find . -name "*.txt"
其中.
代表當前路徑
find -name "*.txt"
沒加路徑,默認是當前路徑下查找
2)find還有一些高級的用法,如查找最近幾天(幾個小時)之內(之前)有變動的文件
find /home -mtime -2
查找/home目錄下兩天內有變動的文件
002節_Linux進階命令__grep命令
grep 命令:
目的:使用grep命令來查找文件中符合條件的字符串
格式:grep [選項] [查找模式] [文件名]
假設dira目錄的test1.txt 和 dirb目錄的test1.txt都含有如下內容:
aaa
AAAAAA
abc
abcabcabc
cbacbacba
match_pattern
nand->erase
通過查找字符串,希望顯示如下內容:
- 所在的文件名----grep查找時默認已經顯示目標文件名
- 所在的行號------使用-n選項
可以使用以下命令:
grep -rn "字符串" 文件名
r
(recursive):遞歸查找
n
(number):顯示目標位置的行號
字符串:要查找的字符串
文件名:要查找的目標文件,如果是*則表示查找當前目錄下的所有文件和目錄
舉例:
grep -n "abc" test1.txt
在test1.txt中查找字符串abc
grep -rn "abc" *
在當前目錄遞歸查找字符串abc
注意:
1)可以加入-w全字匹配。
003節_Linux進階命令__file命令
file 命令:
- 目的:識別文件類型
- 格式: file 文件名
在Linux中有一個非常重要的觀點:'''Linux下一切皆文件'''。
舉例:
file ~/.bashrc 為ASCII 編碼的text類型
file ~/.vimrc 為UTF-8 Unicode 編碼的text類型
file ~/Pictures/* 如圖形文件JPEG/PNG/BMP格式
file ~/100ask/ 為directory表明這是一個目錄
file /bin/pwd 出現 ELF 64-bit LSB executable,即為ELF格式的可執行文件
file /dev/* 出現character special(字符設備文件)、 block special(塊設備文件)等
004節_Linux進階命令__which命令和whereis命令 #
which 和 whereis 命令:
*目的:查找命令或應用程序的所在位置
*格式:which 命令名/應用程序名
在終端上執行pwd
實際上是去執行了/bin/pwd
舉例:
which pwd 定位到/bin/pwd
which gcc 定位到/usr/bin/gcc
whereis pwd 查找到可執行程序的位置/bin/pwd和手冊頁的位置/usr/share/man/man1/pwd.1.gz
005節_Linux進階命令__gzip命令和bzip2命令
壓縮的概念
-
壓縮的目的:
在網絡傳遞文件時,可以先將文件壓縮,然后傳遞壓縮后的文件,從而減少網絡帶寬。接受者接受文件后,解壓即可。 -
壓縮的類型
有損壓縮、無損壓縮。
a)有損壓縮: 如mp4視頻文件,即使壓縮過程中,減少了很多幀的數據, 對觀看者而言,也沒有影響。當然mp3音樂文件也是有損壓縮。b)無損壓縮:
如普通文件的壓縮,為了保證信息的正確傳遞,
不希望文件經過壓縮或解壓后,出現問題。
后面講解的都是無損壓縮。
Linux下常用的壓縮命令 ##
- 單個文件的壓縮(解壓)使用gzip和bzip2
- 多個文件和目錄使用tar
gzip的常用選項:
-l(list) 列出壓縮文件的內容
-k(keep) 在壓縮或解壓時,保留輸入文件。
-d(decompress) 將壓縮文件進行解壓縮
1)查看
gzip -l 壓縮文件名
比如: <code>gzip -l pwd.1.gz</code>
2)解壓
gzip -kd 壓縮文件名
比如: <code>gzip -kd pwd.1.gz</code>
該壓縮文件是以.gz結尾的單個文件
3)壓縮
gzip -k 源文件名
比如:<code>gzip -k mypwd.1</code> 得到了一個.gz結尾的壓縮文件
注意:
1)如果gzip不加任何選項,此時為壓縮,壓縮完該文件會生成后綴為.gz的壓縮文件,
並刪除原有的文件,所以說,推薦使用gzip -k
來壓縮源文件。
2)相同的文件內容,如果文件名不同,壓縮后的大小也不同。
3)gzip只能壓縮單個文件,不能壓縮目錄。
提示:
man pwd
會解壓/usr/share/man/man1/pwd.1.gz
這個文件,
然后讀取該文件中固定的格式的一些信息,然后顯示到終端中。
- bzip2來壓縮單個文件
bzip2的常用選項:
-k(keep) 在壓縮或解壓時,保留輸入文件。
-d(decompress) 將壓縮文件進行解壓縮
1)壓縮
bzip2 -k 源文件名
比如:<code>bzip2 -k mypwd.1</code>
得到一個.bz2后綴的壓縮文件
2)解壓
bzip2 -kd 壓縮文件名
比如:<code>bzip2 -kd mypwd.1.bz2</code>
注意:
1)如果bzip2不加任何選項,此時為壓縮,壓縮完該文件會生成后綴為.bz2的壓縮文件,
並刪除原有的文件,所以說,推薦使用bzip2 -k
來壓縮源文件。
2)bzip2只能壓縮單個文件,不能壓縮目錄。
*單個文件的壓縮使用gzip或bzip2
壓縮有兩個參數:
1)壓縮時間
2)壓縮比
一般情況下,'''小文件使用gzip來壓縮,大文件使用bzip2來壓縮'''。
比如:
mypwd.1源大小是1477字節,
gzip壓縮后mypwd.1.gz是877字節,
bzip2壓縮后mypwd.1.bz2是939字節。
myls.1源文件大小7664字節,
gzip壓縮后myls.1.gz是3144字節,
bzip2壓縮后myls.1.bz2是3070字節。
gzip、bizp2只能對一個文件進行壓縮,而不能對多個文件和目錄進行壓縮。
所以需要tar來對多個目錄、文件進行打包和壓縮。
tar常用選項
-c(create) 表示創建用來生成文件包
-x:表示提取,從文件包中提取文件
-t可以查看壓縮的文件。 -z使用gzip方式進行處理,它與”c“結合就表示壓縮,與”x“結合就表示解壓縮。
-j使用bzip2方式進行處理,它與”c“結合就表示壓縮,與”x“結合就表示解壓縮。
-v(verbose)詳細報告tar處理的信息
-f(file)表示文件,后面接着一個文件名。
-C <指定目錄> 解壓到指定目錄
1.tar打包、gzip壓縮
1)壓縮
tar -czvf 壓縮文件名 目錄名
如: <code>tar czvf dira.tar.gz dira</code>
注意:tar -czvf
與tar czvf
是一樣的效果,所以說,后面統一取消-。
2)查看
tar tvf 壓縮文件名
如:<code>tar tvf dira.tar.gz</code>
3)解壓
tar xzvf 壓縮文件名
tar xzvf 壓縮文件名 -C 指定目錄
如: <code>tar xzvf dira.tar.gz</code> 解壓到當前目錄
如: <code>tar xzvf dira.tar.gz -C /home/book</code> 解壓到/home/book
2.tar打包、bzip2壓縮
1)壓縮
tar cjvf 壓縮文件名 目錄名
如: <code>tar cjvf dira.tar.bz2 dira</code>
2)查看
tar tvf 壓縮文件名
如: <code>tar tvf dira.tar.bz2</code>
3)解壓
tar xjvf 壓縮文件名
tar xjvf 壓縮文件名 -C 指定目錄
如: <code>tar xjvf dira.tar.bz2</code> 解壓到當前目錄
如: <code>tar xjvf dira.tar.bz2 -C /home/book</code> 解壓到/home/book