1. 程式人生 > >Linux-學習筆記-02

Linux-學習筆記-02

一、上堂回顧

系統設定:/etc 跟使用者有關的檔案【使用者名稱和密碼】

​ vim

​ su:切換使用者

目錄結構

​ /:根目錄

​ /home:家目錄,儲存的是普通使用者的使用者名稱【目錄】

​ /etc

​ /tmp:存放是程式執行的臨時檔案,系統會定期清理

快捷鍵

常用命令:

​ 1.檢視文件

​ histroy

​ 2.檔案管理

​ ls:列出指定目錄下的所有的內容

​ ls -l:顯示內容的詳細資訊

​ ls -a:顯示隱藏檔案

​ ls -a -l ---->ls -al---->ll【組合命令】

​ pwd:檢視當前工作的目錄

​ cd:切換工作目錄,根據指定的目錄切換

​ cd .

​ cd ..

​ cd 路徑【相對路徑】

一、常用命令

1.檔案管理

1>檢視檔案

cat:檢視完整的檔案內容
    -n  :顯示每一行的行號,包括空行
    -b  :顯示每一行的行號,不包括空行
#直接使用cat檢視檔案,將檔案中的內容輸出到終端
#-n和-b,都會給內容進行編號,但是-b不包含空行
演示命令:
[email protected]:~$ pwd
/home/yangyang
[email protected]
:~$ cd Desktop/ [email protected]:~/Desktop$ ls a1.txt [email protected]:~/Desktop$ cat a1.txt tgjrgjrg jsfehgjf ​ ​ ​ shgbjawrg jgnfgjgn ​ ​ gf ​ hh ​ hfs h ht hhhs ​ ​ [email protected]:~/Desktop$ cat -n a1.txt     1 tgjrgjrg     2 jsfehgjf     3     4     5     6 shgbjawrg     7 jgnfgjgn     8     9    10 gf    11    12 hh    13    14 hfs    15 h    16 ht    17 hhhs    18    19    20    21    22
[email protected]
:~/Desktop$ cat -b a1.txt     1 tgjrgjrg     2 jsfehgjf ​ ​ ​     3 shgbjawrg     4 jgnfgjgn ​ ​     5 gf ​     6 hh ​     7 hfs     8 h     9 ht    10 hhhs ​ head:檢視檔案內容 #檢視檔案中的頭部內容,預設只檢視前10行 #-num,可以手動指定需要檢視的行數 演示命令: [email protected]:~/Desktop$ head a1.txt tgjrgjrg jsfehgjf ​ ​ ​ shgbjawrg jgnfgjgn ​ ​ gf [email protected]:~/Desktop$ head -2 a1.txt tgjrgjrg jsfehgjf ​ ​ tail:檢視檔案內容 #檢視檔案中的尾部內容,預設只檢視後10行 #-num,可以手動指定需要檢視的行數 演示命令: [email protected]:~/Desktop$ tail a1.txt ​ hfs h ht hhhs ​ ​ ​ ​ [email protected]:~/Desktop$ tail -2 a1.txt ​ ​ ​ less:檢視檔案 #按下enter向下翻一行,按下空格鍵向下翻一頁,按上下箭頭鍵可以向上或者向下翻行,按下q退出,類似於man 演示命令: [email protected]:~/Desktop$ less a1.txt ​ more:檢視檔案 #當檔案內容較少的時候,和cat的用法完全相同,將內容輸出到終端;當檔案內容較多的時候,建議使用more,通過空格鍵和enter鍵控制翻頁和翻行 演示命令: [email protected]:~/Desktop$ more a1.txt tgjrgjrg jsfehgjf ​ ​ ​ shgbjawrg jgnfgjgn ​ ​ gf ​ hh ​ hfs h ht hhhs ​ ​ wc:一次顯示檔案行數,位元組數以及檔名資訊 #並不是檢視檔案內容,檢視檔案屬性 演示命令: [email protected]:~/Desktop$ wc a1.txt 22 10 69 a1.txt ​ stat:檢視檔案詳細資訊,可以獲取檔案的檔名、大小、許可權,最近訪問以及最近更改的時間,stat命令的輸出資訊比ls命令還要詳細 #檢視檔案資訊,使用ls更多 演示命令: [email protected]:~/Desktop$ stat a1.txt  檔案:'a1.txt'  大小:69       塊:8          IO 塊:4096   普通檔案 裝置:801h/2049d Inode:525551      硬連結:1 許可權:(0644/-rw-r--r--)  Uid:( 1000/yangyang)   Gid:( 1000/    rock) 最近訪問:2018-09-05 17:20:17.975441550 +0800 最近更改:2018-09-05 17:19:14.987440150 +0800 最近改動:2018-09-05 17:19:14.991440150 +0800 建立時間:- ​ ​ file:檢視檔案的型別 演示命令: [email protected]:~/Desktop$ file a1.txt a1.txt: ASCII text ​ ​ echo:用於在終端輸出字串或變數的值 演示命令: [email protected]:~/Desktop$ echo "hello" hello ​ ​ |:管道 #作用:將一個命令的輸出,作為另一個命令的輸入 #幫助理解:這裡的|分為左右,左端寫內容,右端讀取內容 ​ #【掌握】 重定向 >:輸出重定向,Linux允許將執行結果重定向到一個檔案,本應顯示在終端上的內容儲存到指定檔案中 #如果檔案不存在,則會自動建立;如果檔案存在,則會覆蓋檔案中的內容 #特殊情況:如果檔案不存在,則先建立檔案,然後才重定向 #w 演示命令: [email protected]:~/Desktop$ ls a1.txt [email protected]:~/Desktop$ ls > a2.txt [email protected]:~/Desktop$ ls a1.txt  a2.txt [email protected]:~/Desktop$ cat a2.txt a1.txt a2.txt [email protected]:~/Desktop$ ls -l > a2.txt [email protected]:~/Desktop$ cat a2.txt 總用量 4 -rw-r--r-- 1 yangyang rock 69 9月   5 17:19 a1.txt -rw-r--r-- 1 yangyang rock  0 9月   5 17:43 a2.txt [email protected]:~/Desktop$ cat a1.txt > a3.txt [email protected]:~/Desktop$ cat a1.txt tgjrgjrg jsfehgjf ​ ​ ​ shgbjawrg jgnfgjgn ​ ​ gf ​ hh ​ hfs h ht hhhs ​ ​ ​ ​ ​ [email protected]:~/Desktop$ cat a3.txt tgjrgjrg jsfehgjf ​ ​ ​ shgbjawrg jgnfgjgn ​ ​ gf ​ hh ​ hfs h ht hhhs ​ ​ >>:輸出重定向,Linux允許將執行結果重定向到一個檔案,本應顯示在終端上的內容儲存到指定檔案中 #注意:和>之間的區別:如果檔案不存在,則會自動建立;如果檔案存在,則將重定向的內容追加到檔案中 #a 演示命令: [email protected]:~/Desktop$ ls >> text.txt [email protected]:~/Desktop$ ls a1.txt  a2.txt  a3.txt  text.txt [email protected]:~/Desktop$ cat text.txt a1.txt a2.txt a3.txt text.txt [email protected]:~/Desktop$ cat a2.txt >> text.txt [email protected]:~/Desktop$ cat text.txt a1.txt a2.txt a3.txt text.txt 總用量 4 -rw-r--r-- 1 yangyang rock 69 9月   5 17:19 a1.txt -rw-r--r-- 1 yangyang rock  0 9月   5 17:43 a2.txt ​ ​ #【瞭解】 1>  標準正確輸出,同上 #類似於>的操作,會覆蓋 1>> 標準正確輸出,同上 #類似於>>的操作,會追加 演示命令: [email protected]:~/Desktop$ cat a2.txt 1> a4.txt [email protected]:~/Desktop$ cat a4.txt 總用量 4 -rw-r--r-- 1 yangyang rock 69 9月   5 17:19 a1.txt -rw-r--r-- 1 yangyang rock  0 9月   5 17:43 a2.txt ​ ​ ​ 2> 標準錯誤輸出,同上 #如果使用錯誤輸出的話,則將錯誤資訊寫入到指定檔案中 2>> 標準錯誤輸出,同上 ​ ​ &> 標準正確輸出和標準錯誤輸出,同上 將1和2結合在一起了

2>tree 以樹形結構去顯示目錄結構

-d:只顯示目錄
-f:顯示檔案的完整路徑
-L num:只檢視前num級的目錄
  
#注意:和ls的作用類似,只不過tree可以以目錄的層級關係顯示結果

3>mv 移動或者重新命名檔案或者目錄

#move
#格式:mv [選項] 原始檔 [目標路徑|目標檔名]
​
-i:在目標檔案存在的時候會詢問是否需要覆蓋【互動式操作】
-b:當發生衝突的時候,會對原始檔進行備份
  
演示命令:
​

4>cp 複製檔案或者目錄

#copy
#格式:cp  [引數] 原始檔  目標目錄
​
-i:在目標檔案存在的時候會詢問是否需要覆蓋【互動式操作】
    #如果檔案不存在,則不出現任何提示,如果檔案已經存在,則提示是否需要覆蓋,輸入y或者n進行判斷
-a:複製的時候保持原始檔的屬性
-f:對於已經存在的目標檔案不提示
-v:顯示拷貝進度
-r:若給出的原始檔是一個目錄檔案,此時cp將遞迴複製原始檔下的所有的內容,此時目標檔案必須是一個目錄名
    
在Linux下,複製分為三種情況:
    a.如果目標檔案是目錄,則將原檔案複製到該目錄下
    b.如果目標檔案是普通檔案,則需要詢問是否需要覆蓋該檔案
    c.如果目標檔案不存在的,則執行正常的複製操作

5>建立檔案或者目錄

#1.mkdir    建立一個新的目錄
make directory
-p:創建出具有巢狀關係的目錄
​
#2.touch    建立一個新的檔案,空白檔案、
名詞解釋:
    atime:最後一次訪問檔案或者目錄的時間【access  time】
    mtime:最後一次修改內容的時間【modify time】
    ctime:最後一次修改屬性的時間【change time】
 -a:修改atime
 -m:修改mtime
 -c:修改ctime
 -d:同時修改atime和mtime
 -t:同時修改atime和mtime【格式:{YYYYMMDDhhmmss}】
演示命令:
​
​
​

6>刪除檔案或者目錄

#1.rmdir:刪除指定的目錄,注意:只能刪除空目錄
#remove
​
#2.rm:刪除檔案或者目錄,可以刪除一個目錄中的一個或者多個檔案以及目錄,
    -r:刪除目錄,rm預設只能刪除檔案
    -ri:互動刪除,每次刪除都會 進行詢問,如果是一個目錄,則依次進入每個子目錄進行詢問
    -rf:不管目錄下有沒有內容,強制刪除目錄或者檔案

7>ln 建立連結檔案

注意:Linux下面的連結檔案相當於Windows下的快捷方式
​
分類:
    硬連結:只能連結普通檔案,不能連結目錄
    軟連結:不佔用磁碟空間,原始檔刪除則軟連結隨著失效
    
軟連結:ln  -s  原始檔  連結檔案
硬連結:ln 原始檔  連結檔案
​
【總結】
對於軟連結而言,如果軟連結檔案和原始檔不在同一個目錄下,則原始檔最好使用絕對路徑
對於硬連結而言,兩個檔案佔用相同大小的磁碟空間,即使刪除了原始檔,連結檔案仍然正常使用
所以,軟連結是更常用的形態

8>grep 文字搜尋

文字搜尋工具,允許對文字檔案進行模式查詢,如果匹配到指定的模式,則在終端中顯示匹配到的內容
注意:搜尋內容可以是正則表示式
-c:僅僅顯示找到的行數
-i:忽略大小寫
-n:顯示匹配的行以及行號
-v:反向選擇,列出沒有關鍵字的行【求反】

9>which 查詢其他命令所在的位置

#注意:獲取的是指定的linux存在的位置,一般情況下存放於/bin

10>type 尋找命令所在的位置,包括命令別名

-a:可以找到所有,包括別名
  
#type和which之間的區別,type優先列出指定命令的別名,如果命令沒有別名,則列出指定命令所在的位置

11>find 按照指定條件來查詢檔案

#格式:find 【查詢路徑】  【查詢方式】  【查詢條件】
​
-name:匹配名稱,預設是精確匹配
-size:匹配檔案大小
-empty:匹配是否為空的檔案
​
#注意:以後如果在眾多的檔案中需要篩選指定的檔案,優先選用find

12>locate 查詢資料

-i:忽略大小寫
-c:不輸出查詢的結果,僅輸出找到的檔案的數量
-l:僅輸出指定的行 ,格式:-l num ,輸出num行
​
#說明:locate是在資料庫中進行查詢資料的,如果資料沒有則在資料庫中查詢不到
touch aa.txt
locate aa.txt---->沒有查詢到結果
資料庫沒有更新

13>sort 給檔案內容排序

-f:忽略大小寫的差異,A和a被認為是相同的編碼
-b:忽略文字最前面的空格部分
-n:使用純數字進行排序
-r:反向排序
-u:唯一的,相同的資料中,僅出現一行代表
-t:tab,分隔符,預設使用tab鍵分隔
-k:以哪個指定的區間進行排序
​
演示命令:
[email protected]:~/Desktop$ cat a1.txt 
hello
abc
good
html
linux
fhjhgjadhgjhgja
gafejfghanhjghh
    gjafghjahgj
fjfgnjf
[email protected]:~/Desktop$ sort a1.txt 
abc
fhjhgjadhgjhgja
fjfgnjf
gafejfghanhjghh
    gjafghjahgj
good
hello
html
linux
[email protected]:~/Desktop$ cat a1.txt 
hello
abc
good
html
linux
fhjhgjadhgjhgja
gafejfghanhjghh
    gjafghjahgj
fjfgnjf
[email protected]:~/Desktop$ ls
a1.txt  A1.txt  aa  aa.txt  b.txt
[email protected]:~/Desktop$ cat b.txt 
43434:fhshfh:64756745
96976:ghsjghj:fhsfhg
12010:eyye474:574875fhdjhvhj
[email protected]:~/Desktop$ sort -t b.txt 
sort: 多字元標籤"b.txt"
[email protected]:~/Desktop$ sort -t ":" b.txt 
12010:eyye474:574875fhdjhvhj
43434:fhshfh:64756745
96976:ghsjghj:fhsfhg
[email protected]:~/Desktop$ sort -t ":" -k 2 b.txt 
12010:eyye474:574875fhdjhvhj
43434:fhshfh:64756745
96976:ghsjghj:fhsfhg
[email protected]:~/Desktop$ sort -t ":" -k 3 b.txt 
12010:eyye474:574875fhdjhvhj
43434:fhshfh:64756745
96976:ghsjghj:fhsfhg
[email protected]:~/Desktop$ cat a1.txt 
hello
abc
good
html
linux
fhjhgjadhgjhgja
gafejfghanhjghh
    gjafghjahgj
fjfgnjf
Fghjfgh
Abc
[email protected]:~/Desktop$ sort -f a1.txt 
abc
Abc
Fghjfgh
fhjhgjadhgjhgja
fjfgnjf
gafejfghanhjghh
    gjafghjahgj
good
hello
html
linux
​

14>cut 可以從一個文字檔案或者文字流中提取文字列

-d:後面接分隔符。與-f一起使用
-f:依據-d的分隔符將一段資訊分隔成數段,用-f表示提取出第幾段的意思
-c:以字元為單位取出固定字元區間【-:連線,取的是和的意思,1-3表示1,2,3,但是,1,3表示1和3】
​
演示命令:
[email protected]:~/Desktop$ touch aa.txt
[email protected]:~/Desktop$ locate aa.txt 
[email protected]:~/Desktop$ 
​
[email protected]:~/Desktop$ cat a1.txt 
hello
abc
good
html
linux
fhjhgjadhgjhgja
gafejfghanhjghh
    gjafghjahgj
fjfgnjf
Fghjfgh
Abc
[email protected]:~/Desktop$ cut -d "f" -f 1 a1.txt 
hello
abc
good
html
linux
​
ga
    gja
​
Fghj
Abc
[email protected]:~/Desktop$ cut -c 1 a1.txt 
h
a
g
h
l
f
g
 
f
F
A
[email protected]:~/Desktop$ cut -c 1,3 a1.txt 
hl
ac
go
hm
ln
fj
gf
  
ff
Fh
Ac
[email protected]:~/Desktop$ cat a1.txt 
hello
abc
good
html
linux
fhjhgjadhgjhgja
gafejfghanhjghh
    gjafghjahgj
fjfgnjf
Fghjfgh
Abc
[email protected]:~/Desktop$ cut -c 1-3 a1.txt 
hel
abc
goo
htm
lin
fhj
gaf
   
fjf
Fgh
Abc

15>tee 讀取標準輸入的資料,並將其內容輸出成檔案

-a:讀取原始檔內容,並追加新的內容,如果不設定該選項,則新的內容直接覆蓋掉舊的內容
  
#注意:從終端向指定檔案中寫入內容,和cat的功能相反
​
演示命令:
[email protected]:~$ cd Desktop/
[email protected]:~/Desktop$ cat a1.txt 
[email protected]:~/Desktop$ tee a1.txt 
hello
hello
jfjfgfg
jfjfgfg
hgjfehgjg
hgjfehgjg
^C              #ctrl + c  終止命令
[email protected]:~/Desktop$ cat a1.txt 
hello
jfjfgfg
hgjfehgjg
[email protected]:~/Desktop$ tee -a a1.txt 
467365
467365
54785475
54785475
​
​
^C
[email protected]:~/Desktop$ cat a1.txt 
hello
jfjfgfg
hgjfehgjg
467365
54785475
​
[email protected]:~/Desktop$ cat b.txt 
43434:fhshfh:64756745
96976:ghsjghj:fhsfhg
12010:eyye474:574875fhdjhvhj
[email protected]:~/Desktop$ cat a1.txt b.txt 
hello
jfjfgfg
hgjfehgjg
467365
54785475
​
43434:fhshfh:64756745
96976:ghsjghj:fhsfhg
12010:eyye474:574875fhdjhvhj
[email protected]:~/Desktop$ tee a1.txt b.txt 
gjseg
gjseg
hgjshgj
hgjshgj
hngjhshg
hngjhshg
^C
[email protected]:~/Desktop$ cat a1.txt b.txt 
gjseg
hgjshgj
hngjhshg
gjseg
hgjshgj
hngjhshg

16>gedit 開啟Linux下的文字編輯器

gedit :開啟一個新的空的文件
gedit 指定路徑:開啟指定的文件

17>sed 流編輯器,一次處理一行內容,主要用來自動編輯一個或多個檔案

格式:[-nefr] [動作] [檔案]
​
選項:
-e<script>或--expression=<script>:以選項中的指定的script來處理輸入的文字檔案;
-f<script檔案>或--file=<script檔案>:以選項中指定的script檔案來處理輸入的文字檔案;
-h或--help:顯示幫助;
-n或--quiet或——silent:僅顯示script處理後的結果;
-V或--version:顯示版本資訊。
​
引數:
檔案:指定待處理的文字檔案列表。
​
命令:
a\ 在當前行下面插入文字。
i\ 在當前行上面插入文字。
c\ 把選定的行改為新的文字。
d 刪除,刪除選擇的行。
D 刪除模板塊的第一行。
s 替換指定字元
h 拷貝模板塊的內容到記憶體中的緩衝區。
H 追加模板塊的內容到記憶體中的緩衝區。
g 獲得記憶體緩衝區的內容,並替代當前模板塊中的文字。
G 獲得記憶體緩衝區的內容,並追加到當前模板塊文字的後面。
l 列表不能列印字元的清單。
n 讀取下一個輸入行,用下一個命令處理新的行而不是用第一個命令。
N 追加下一個輸入行到模板塊後面並在二者間嵌入一個新行,改變當前行號碼。
p 列印模板塊的行。
P(大寫) 列印模板塊的第一行。
q 退出Sed。
b lable 分支到指令碼中帶有標記的地方,如果分支不存在則分支到指令碼的末尾。
r file 從file中讀行。
t label if分支,從最後一行開始,條件一旦滿足或者T,t命令,將導致分支到帶有標號的命令處,或者到指令碼的末尾。
T label 錯誤分支,從最後一行開始,一旦發生錯誤或者T,t命令,將導致分支到帶有標號的命令處,或者到指令碼的末尾。
w file 寫並追加模板塊到file末尾。  
W file 寫並追加模板塊的第一行到file末尾。  
! 表示後面的命令對所有沒有被選定的行發生作用。  
= 列印當前行號碼。  
# 把註釋擴充套件到下一個換行符以前。  
​
sed替換標記
g 表示行內全面替換。  
p 表示列印行。  
w 表示把行寫入一個檔案。  
x 表示互換模板塊中的文字和緩衝區中的文字。  
y 表示把一個字元翻譯為另外的字元(但是不用於正則表示式)
\1 子串匹配標記
& 已匹配字串標記
​
sed元字符集
^ 匹配行開始,如:/^sed/匹配所有以sed開頭的行。
$ 匹配行結束,如:/sed$/匹配所有以sed結尾的行。
. 匹配一個非換行符的任意字元,如:/s.d/匹配s後接一個任意字元,最後是d。
* 匹配0個或多個字元,如:/*sed/匹配所有模板是一個或多個空格後緊跟sed的行。
[] 匹配一個指定範圍內的字元,如/[ss]ed/匹配sed和Sed。  
[^] 匹配一個不在指定範圍內的字元,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一個字母開頭,緊跟ed的行。
\(..\) 匹配子串,儲存匹配的字元,如s/\(love\)able/\1rs,loveable被替換成lovers。
& 儲存搜尋字元用來替換其他字元,如s/love/**&**/,love這成**love**。
\< 匹配單詞的開始,如:/\<love/匹配包含以love開頭的單詞的行。
\> 匹配單詞的結束,如/love\>/匹配包含以love結尾的單詞的行。
x\{m\} 重複字元x,m次,如:/0\{5\}/匹配包含5個0的行。
x\{m,\} 重複字元x,至少m次,如:/0\{5,\}/匹配至少有5個0的行。
x\{m,n\} 重複字元x,至少m次,不多於n次,如:/0\{5,10\}/匹配5~10個0的行。
​
#1.a\:追加,a後面可以接字串,新的字串會出現在當前行的下一行
​
#2.i\:插入,i後面可以接字串,新的字串會出現在當前行的上一行
​
#3.s:替換,
​
#4.d:刪除,
​
​
#sed的作用:獲取檔案中的內容,根據指定的條件或者操作進行篩選【增刪改查】

18>打包和壓縮

打包:將一大堆檔案或者目錄彙總成一個總的檔案或者目錄

壓縮:通過壓縮演算法將大的檔案變成較小的檔案

說明;在Linux中,很多壓縮程式只能針對一個檔案進行壓縮,如果當向壓縮多個檔案時,則可以先將多個檔案打包成一個檔案【tar】,然後再使用壓縮命令將其進行壓縮【gzip或者bzip2】

a.tar 可以把一大堆的檔案和目錄全部打包成一個檔案

-A或--catenate:新增檔案到已存在的備份檔案;
-B:設定區塊大小;-c或--create:建立新的備份檔案;
-C <目錄>:這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項。
-d:記錄檔案的差別;
-x或--extract或--get:從備份檔案中還原檔案;
-z或--gzip或--ungzip:通過gzip指令處理備份檔案;
-Z或--compress或--uncompress:通過compress指令處理備份檔案;
-f<備份檔案>或--file=<備份檔案>:指定備份檔案;
-v或--verbose:顯示指令執行過程;
-r:新增檔案到已經壓縮的檔案;
-u:新增改變了和現有的檔案到已經存在的壓縮檔案;
-j:支援bzip2解壓檔案;
-v:顯示操作過程;
-l:檔案系統邊界設定;
-k:保留原有檔案不覆蓋;
-m:保留檔案不被覆蓋;
-w:確認壓縮檔案的正確性;
-p或--same-permissions:用原來的檔案許可權還原檔案;
-P或--absolute-names:檔名使用絕對名稱,不移除檔名稱前的“/”號;
-N <日期格式> 或 --newer=<日期時間>:只將較指定日期更新的檔案儲存到備份檔案裡;
--exclude=<範本樣式>:排除符合範本樣式的檔案。
​
演示命令:
[email protected]:~/Desktop$ ls
a1.txt  A1.txt  aa  aa.txt  b.txt  text.txt
[email protected]:~/Desktop$ tar -cvf log.tar a1.txt
a1.txt
[email protected]:~/Desktop$ ls
a1.txt  A1.txt  aa  aa.txt  b.txt  log.tar  text.txt
[email protected]:~/Desktop$ rm -rf log.tar 
[email protected]:~/Desktop$ tar -zcvf log.tar.gz a1.txt
a1.txt
[email protected]:~/Desktop$ ls
a1.txt  A1.txt  aa  aa.txt  b.txt  log.tar.gz  text.txt
[email protected]:~/Desktop$ rm -rf log.tar.gz `
> ^C
[email protected]:~/Desktop$ rm -rf log.tar.gz 
[email protected]:~/Desktop$ tar -jcvf log.tar.bz2 a1.txt 
a1.txt
[email protected]:~/Desktop$ ls
a1.txt  A1.txt  aa  aa.txt  b.txt  log.tar.bz2  text.txt
[email protected]:~/Desktop$ tar -xf log.tar.bz2 
[email protected]:~/Desktop$ ls
a1.txt  A1.txt  aa  aa.txt  b.txt  log.tar.bz2  text.txt
[email protected]:~/Desktop$ rm -rf log.tar.bz2 
​
#注意
a.選項-cvf後面的名字是自定義的,習慣上使用.tar結尾,表示是一個已經被打包的檔案【只打包,不壓縮】
b.選項使用-zcvf,則以.tar.gz結尾,代表使用gzip壓縮過的【打包之後使用gzip壓縮】
c.選項使用-jcvf,則以.tar.bz2結尾,代表使用bzip2壓縮過的

b.gzip 對檔案進行壓縮和解壓縮,壓縮之後用“.gz”作為副檔名

​ 還可以和tar命令一起構成Linux作業系統中比較流行的壓縮檔案格式

好處:gzip命令對檔案有60%~70%的壓縮率,減小檔案的好處:減少儲存空間,通過網路傳輸檔案的時候,可以節省時間

-d或--decompress或----uncompress:解開壓縮檔案;
-f或——force:強行壓縮檔案。不理會檔名稱或硬連線是否存在以及該檔案是否為符號連線;
-l或——list:列出壓縮檔案的相關資訊;
-L或——license:顯示版本與版權資訊;
-n或--no-name:壓縮檔案時,不儲存原來的檔名稱及時間戳記;
-N或——name:壓縮檔案時,儲存原來的檔名稱及時間戳記;
-q或——quiet:不顯示警告資訊;
-r或——recursive:遞迴處理,將指定目錄下的所有檔案及子目錄一併處理;
-t或——test:測試壓縮檔案是否正確無誤;
-v或——verbose:顯示指令執行過程;
-V或——version:顯示版本資訊;
​
#-rv:將指定目錄下的檔案遞迴遍歷,並挨個進行壓縮
#-dr;遞迴解壓
​
演示命令:
[email protected]:~/Desktop$ ls
a1.txt  A1.txt  aa  aa.txt  b.txt  text.txt
[email protected]:~/Desktop$ gzip  *
gzip: aa is a directory -- ignored
[email protected]:~/Desktop$ ls
a1.txt.gz  A1.txt.gz  aa  aa.txt.gz  b.txt.gz  text.txt.gz
[email protected]:~/Desktop$ gzip -dv *
a1.txt.gz:    4.3% -- replaced with a1.txt
A1.txt.gz:    0.0% -- replaced with A1.txt
gzip: aa is a directory -- ignored
aa.txt.gz:    0.0% -- replaced with aa.txt
b.txt.gz:     4.3% -- replaced with b.txt
text.txt.gz:      2.4% -- replaced with text.txt
[email protected]:~/Desktop$ ls
a1.txt  A1.txt  aa  aa.txt  b.txt  text.txt
[email protected]:~/Desktop$ gzip -l *
​
gzip: a1.txt: not in gzip format
​
gzip: A1.txt: unexpected end of file
[email protected]:~/Desktop$ gzip *
gzip: aa is a directory -- ignored
[email protected]:~/Desktop$ gzip -l *
         compressed        uncompressed  ratio uncompressed_name
                 47                  23   4.3% a1.txt
                 27                   0   0.0% A1.txt
gzip: aa is a directory -- ignored
                 27                   0   0.0% aa.txt
                 46                  23   4.3% b.txt
                 68                  42   2.4% text.txt
                215                  88 -113.6% (totals)
[email protected]:~/Desktop$ touch file1.txt
[email protected]:~/Desktop$ gzip -r file1.txt 
[email protected]:~/Desktop$ ls
a1.txt.gz  A1.txt.gz  aa  aa.txt.gz  b.txt.gz  file1.txt.gz  text.txt.gz
[email protected]:~/Desktop$ mkdir check
[email protected]:~/Desktop$ cd check/
[email protected]:~/Desktop/check$ touch a.txt
[email protected]:~/Desktop/check$ touch b.txt
[email protected]:~/Desktop/check$ mkdir aa
[email protected]:~/Desktop/check$ ls
aa  a.txt  b.txt
[email protected]:~/Desktop/check$ cd ..
[email protected]:~/Desktop$ gzip -rv check
check/a.txt:      0.0% -- replaced with check/a.txt.gz
check/b.txt:      0.0% -- replaced with check/b.txt.gz
[email protected]:~/Desktop$ gzip -dr check
[email protected]:~/Desktop$ cd check/
[email protected]:~/Desktop/check$ ls
aa  a.txt  b.txt

2.系統管理

1>date:檢視當前時間

2>cal:檢視當前日曆

3>ping;檢測網路的連通性

4>ifconfig:檢視ip地址

演示命令:
[email protected]:~/Desktop/check$ cd ..
[email protected]:~/Desktop$ cd ..
[email protected]:~$ date
2018年 09月 06日 星期四 00:05:17 CST
[email protected]:~$ cal
      九月 2018         
日 一 二 三 四 五 六  
                   1  
 2  3  4  5  6  7  8  
 9 10 11 12 13 14 15  
16 17 18 19 20 21 22  
23 24 25 26 27 28 29  
30                    
[email protected]:~$ cal -y
                            2018
         一月                    二月                    三月           
日 一 二 三 四 五 六  日 一 二 三 四 五 六  日 一 二 三 四 五 六  
    1  2  3  4  5  6               1  2  3               1  2  3  
 7  8  9 10 11 12 13   4  5  6  7  8  9 10   4  5  6  7  8  9 10  
14 15 16 17 18 19 20  11 12 13 14 15 16 17  11 12 13 14 15 16 17  
21 22 23 24 25 26 27  18 19 20 21 22 23 24  18 19 20 21 22 23 24  
28 29 30 31           25 26 27 28           25 26 27 28 29 30 31  
                                                                  
​
         四月                    五月                    六月           
日 一 二 三 四 五 六  日 一 二 三 四 五 六  日 一 二 三 四 五 六  
 1  2  3  4  5  6  7         1  2  3  4  5                  1  2  
 8  9 10 11 12 13 14   6  7  8  9 10 11 12   3  4  5  6  7  8  9  
15 16 17 18 19 20 21  13 14 15 16 17 18 19  10 11 12 13 14 15 16  
22 23 24 25 26 27 28  20 21 22 23 24 25 26  17 18 19 20 21 22 23  
29 30                 27 28 29 30 31        24 25 26 27 28 29 30  
                                                                  
​
         七月                    八月                    九月           
日 一 二 三 四 五 六  日 一 二 三 四 五 六  日 一 二 三 四 五 六  
 1  2  3  4  5  6  7            1  2  3  4                     1  
 8  9 10 11 12 13 14   5  6  7  8  9 10 11   2  3  4  5  6  7  8  
15 16 17 18 19 20 21  12 13 14 15 16 17 18   9 10 11 12 13 14 15  
22 23 24 25 26 27 28  19 20 21 22 23 24 25  16 17 18 19 20 21 22  
29 30 31              26 27 28 29 30 31     23 24 25 26 27 28 29  
                                            30                    
​
         十月                   十一月                   十二月           
日 一 二 三 四 五 六  日 一 二 三 四 五 六  日 一 二 三 四 五 六  
    1  2  3  4  5  6               1  2  3                     1  
 7  8  9 10 11 12 13   4  5  6  7  8  9 10   2  3  4  5  6  7  8  
14 15 16 17 18 19 20  11 12 13 14 15 16 17   9 10 11 12 13 14 15  
21 22 23 24 25 26 27  18 19 20 21 22 23 24  16 17 18 19 20 21 22  
28 29 30 31           25 26 27 28 29 30     23 24 25 26 27 28 29  
                                            30 31                 
[email protected]:~$ ping www.baidu.com
PING www.a.shifen.com (119.75.216.20) 56(84) bytes of data.
64 bytes from 127.0.0.1 (119.75.216.20): icmp_seq=1 ttl=54 time=20.7 ms
64 bytes from 127.0.0.1 (119.75.216.20): icmp_seq=2 ttl=54 time=20.6 ms
64 bytes from 127.0.0.1 (119.75.216.20):  icmp_seq=14 ttl=54 time=20.9 ms
^C
--- www.a.shifen.com ping statistics ---
14 packets transmitted, 14 received, 0% packet loss, time 13027ms
rtt min/avg/max/mdev = 19.443/22.452/37.996/5.723 ms
[email protected]:~$ ifconfig
ens33     Link encap:乙太網  硬體地址 00:0c:29:4d:b0:75  
          inet 地址:10.12.153.25  廣播:10.12.153.255  掩碼:255.255.255.0
          inet6 地址: fe80::7752:3537:1163:101c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  躍點數:1
          接收資料包:325684 錯誤:0 丟棄:0 過載:0 幀數:0
          傳送資料包:1787 錯誤:0 丟棄:0 過載:0 載波:0
          碰撞:0 傳送佇列長度:1000 
          接收位元組:20914292 (20.9 MB)  傳送位元組:138709 (138.7 KB)
​
lo        Link encap:本地環回  
          inet 地址:127.0.0.1  掩碼:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  躍點數:1
          接收資料包:354 錯誤:0 丟棄:0 過載:0 幀數:0
          傳送資料包:354 錯誤:0 丟棄:0 過載:0 載波:0
          碰撞:0 傳送佇列長度:1000 
          接收位元組:37987 (37.9 KB)  傳送位元組:37987 (37.9 KB)
​
[email protected]:~$