01-Linux經常使用命令1

1、命令的基本格式

1. 命令的提示符

[root@localhost ~]#
   -  []:這是提示符的分隔符號,沒有特殊含義。
   -  root:顯示的是當前的登陸用戶,使用的是root用戶登陸。
   -  @:分隔符號,沒有特殊含義。
   -  localhost:當前系統的簡寫主機名(完整主機名是localhost.localdomain)。
   -  ~:表明用戶當前所在的目錄,此例中用戶當前所在的目錄是家目錄。
   -  #:命令提示符。超級用戶是#,普通用戶是$
PS1="\[\e[1;36m\][\[\e[1;32m\]\u@\[\e[0m\]\[\e[1;31m\]\h \e[0m\W\[\e[1;36m\]]\[\e[31m\]# \[\e[1;0m\]"

2. 命令的基本格式

[root@localhost ~]# 命令[選項] [參數]

[root@localhost ~]# ls -l
總用量 44
-rw-------. 1  root    root   1207  1月14 18:18     anaconda-ks.cfg
#權限引用計數   全部者    所屬組   大小    文件修改時間     文件名

3. 經常使用快捷鍵

Tab 鍵 命令或文件補全
ctrl + A 把光標移動到命令行開頭。若是咱們輸入的命令過長,想要把光標移 動到命令行開頭時使用。
ctrl + E 把光標移動到命令行結尾。
ctrl + C 強制終止當前的命令
ctrl + L 清屏,至關於 clear 命令。
ctrl + U 刪除或剪切光標以前的命令。我輸入了一行很長的命令,不用使用退 格鍵一個一個字符的刪除,使用這個快捷鍵會更加方便
ctrl + K 刪除或剪切光標以後的命令
ctrl + Y 粘貼 ctrl+U 剪切的內容。
ctrl + F 光標向後移動一個字符
ctrl + B 光標向前移動一個字符
ctrl + H 光標向前刪除一個字符
ctrl + D 光標向後刪除一個字符

2、目錄操做命令

1. ls命令

主要做用是顯示目錄下的內容。html

參數:node

-a: 顯示全部文件
--color=when: 支持顏色輸出,when的值默認是always(總顯示顏色),也能夠是never(從不顯示顏色)和auto(自動)
-d: 顯示目錄信息,而不是目錄下的文件
-h: 人性化顯示,按照咱們習慣的單位顯示文件大小
-i: 顯示文件的i節點號
-l: 長格式顯示

2. cd命令

做用:切換所在目錄python

絕對路徑和相對路徑linux

絕對路徑:以跟目錄爲參照物,從根目錄開始,一級一級進入目錄shell

相對路徑:以當前目錄做爲參照物,進行目錄查找vim

用法:安全

cd 目錄名稱: 切換到你要進入的目錄下服務器

特殊符號 做用
~ 用戶的家目錄
- 上一次所在目錄
. 當前目錄
.. 上級目錄

3. pwd命令

做用:查詢所在工做目錄網絡

[root@localhost ~]# pwd
/root

4. mkdir命令

做用:建立空目錄less

[root@localhost ~]# mkdir Test
  [root@localhost ~]# ls
  Test
  
  [root@localhost ~]# mkdir -p /A/B/C   # -p參數 建立多級目錄

5. rmdir 命令

做用: 刪除空目錄,rmdir命令的做用十分有限,由於只能刪除空目錄,因此一旦目錄中有內容,就會報錯

[root@localhost ~]# rmdir Test
  [root@localhost ~]# ls   # 文件已經刪除

3、文件操做命令

1. touch命令

做用:建立空文件或修改文件時間

[root@localhost ~]# touch test.txt
[root@localhost ~]# ls
-rw-r--r-- 1 root root 0 May 21 18:42 test.txt

2. stat命令

做用:stat是查看文件詳細信息的命令,並且能夠看到文件的三個時間

[root@localhost ~]# stat anaconda-ks.cfg 文件:"anaconda-ks.cfg" 大小:1453 塊:8 IO 塊:4096 普通文件
  設備:803h/2051dInode:33574991 硬連接:1
  權限:(0600/-rw-------) Uid:( 0/ root) Gid:( 0/ root)
  環境:system_u:object_r:admin_home_t:s0
  最近訪問:2018-11-06 23:22:23.409038121 +0800 #訪問文件的時間,cat等
  最近更改:2018-10-24 00:53:08.760018638 +0800 #數據修改時間
  最近改動:2018-10-24 00:53:08.760018638 +0800 #狀態修改時間
  建立時間:-

3. cat命令

做用:查看文件的內容

參數 做用
-A 至關於-vET選項的整合,用於列出全部隱藏符號
-E 列出每行結尾的回車符$
-n 顯示行號
-T 把Tab鍵用^I顯示出來
-v 列出特殊字符

4. more命令

做用:分屏顯示文件內容。

經常使用交互式命

b 向上翻頁。
/字符串 搜索指定的字符串
f 或空格 向下翻頁
q 退出
回車鍵 向下滾動一行

5. less命令

做用:less命令和more命令相似,只是more是分屏顯示命令,而less是分行顯示命令

6. head命令

做用:顯示文件開頭的內容。默認顯示10行

參數 做用
-n 行數 從文件頭開始,顯示指定行數
-v 顯示文件名

7. tail命令

做用:顯示文件結尾的內容。

參數 做用
-n 行數從文件頭開始,顯示指定行數
-f 監聽文件的新增內容

8. ln命令

做用:在文件之間創建連接。

[root@localhost ~]# ln [選項] 源文件目標文件
選項:
-s: 創建軟連接文件。若是不加「-s」選項,則創建硬連接文件
-f: 強制。若是目標文件已經存在,則刪除目標文件後再創建連接文件

硬連接與軟鏈接的特徵
硬連接特徵

  1. 源文件和硬連接文件擁有相同的Inode和Block
  2. 修改任意一個文件,另外一個都改變
  3. 刪除任意一個文件,另外一個都能使用
  4. 硬連接標記不清,很難確認硬連接文件位置,不建議使用
  5. 硬連接不能連接目錄
  6. 硬連接不能跨分區

軟連接特徵

  1. 軟連接和源文件擁有不一樣的Inode和Block
  2. 兩個文件修改任意一個,另外一個都改變
  3. 刪除軟連接,源文件不受影響;刪除源文件,軟連接不能使用
  4. 軟連接沒有實際數據,只保存源文件的Inode,不論源文件多大,軟連接大小不變
  5. 軟連接的權限是最大權限lrwxrwxrwx.,可是因爲沒有實際數據,最終訪問時須要參考源文件權限
  6. 軟連接能夠連接目錄
  7. 軟連接能夠跨分區
  8. 軟連接特徵明顯,建議使用軟鏈接

4、目錄和文件都能操做的命令

1. rm命令

做用: rm是強大的刪除命令,不只能夠刪除文件,也能夠刪除目錄

[root@localhost ~]# rm [選項] 文件或目錄
選項:
	-f: 強制刪除(force)
	-i: 交互刪除,在刪除以前會詢問用戶

2. cp命令

做用:複製文件和目錄

[root@localhost ~]# cp [選項] 源文件目標文件
選項:
    -a: 至關於-dpr選項的集合,這幾個選項咱們一一介紹
    -d: 若是源文件爲軟連接(對硬連接無效),則複製出的目標文件也爲軟連接
    -i: 詢問,若是目標文件已經存在,則會詢問是否覆蓋
    -p: 複製後目標文件保留源文件的屬性(包括全部者、所屬組、權限和時間)
    -r: 遞歸複製,用於複製目錄

3. mv命令

做用:移動文件、目錄或者更名

[root@localhost ~]# mv [選項] 源文件目標文件
選項:
    -f: 強制覆蓋,若是目標文件已經存在,則不詢問,直接強制覆蓋
    -i: 交互移動,若是目標文件已經存在,則詢問用戶是否覆蓋(默認選項)
    -v: 顯示詳細信息

5、基本權限管理

1. 權限的介紹

權限位的含義

[root@localhost ~]# ls -l install.log
-rw-r--r--. 1 root root 24772 1月14 18:17 install.log

第1位表明文件類型。Linux不像Windows使用擴展名錶示文件類型,而是使用權限位的第1位表示文件類型。雖然Linux文件的種類不像Windows中那麼多,可是分類也很多,詳細狀況可使用「info ls」命令查看。常見的文件類型。

- 普通文件。
c 字符設備文件。這也是特殊設備文件,輸入設備通常都是這種文件,如鼠標、鍵盤等。
b 塊設備文件。這是一種特殊設備文件,存儲設備都是這種文件,如分區文件/dev/sda1就是這種文件
d 目錄文件。Linux中一切皆文件,因此目錄也是文件的一種
p 管道符文件。這是一種很是少見的特殊設備文件
l 軟連接文件
s 套接字文件。這也是一種特殊設備文件,一些服務支持Socket訪問,就會產生這樣的文件

第2~4位表明文件全部者的權限。

r 表明read,是讀取權限
w 表明write,是寫權限
x 表明execute,是執行權限

若是有字母,則表明擁有對應的權限;若是是「-」,則表明沒有對應的權限
第5~7位表明文件所屬組的權限,一樣擁有「rwx」權限
第8~10位表明其餘人的權限,一樣擁有「rwx」權限

2. 基本權限chmod命令

做用:修改文件的權限模式

  1. 命令格式:
[root@localhost ~]# chmod [選項] 權限模式文件名
選項:
-R: 遞歸設置權限,也就是給子目錄中的全部文件設定權限
  1. 權限模式
chmod命令的權限模式的格式是「[ugoa][[+-=][perms]]」,也就是「[用戶身份][[賦予方式][權限]]」的格式

用戶身份:

u 表明全部者(user)
a 表明所有身份(all)
g 表明所屬組(group)
o 表明其餘人(other)
  1. 賦予方式:
+ 加入權限
= 設置權限
- 減去權限。

權限:

r 讀取權限(read)
x 執行權限(execute)
w 寫權限(write)。

例子:

# 給test.txt文件全部者添加執行權限
[root@localhost ~]# chmod  u+x test.txt
# 給test.txt文件全部者減去執行權限
[root@localhost ~]# chmod u-x test.txt
  1. 數字權限:
4 表明「r」權限。
2 表明「w」權限。
1 表明「x」權限

例子:

[root@localhost ~]# chmod 755 test.txt
  1. 經常使用權限

644:這是文件的基本權限,表明全部者擁有讀、寫權限,而所屬組和其餘人擁有隻讀權限

755:這是文件的執行權限和目錄的基本權限,表明全部者擁有讀、寫和執行權限,而所屬組和其餘人擁有讀和執行權限

777:這是最大權限。在實際的生產服務器中,要盡力避免給文件或目錄賦予這樣的權限,這會形成必定的安全隱患

3. 基本權限的做用

讀、寫、執行權限對文件和目錄的做用是不一樣的

權限含義的解釋:

  1. 權限對文件的做用
  • 讀(r):對文件有讀(r)權限,表明能夠讀取文件中的數據。若是把權限對應到命令上,那麼一旦對文件有讀(r)權限,就能夠對文件執行cat、more、less、head、tail等文件查看命令。
  • 寫(w):對文件有寫(w)權限,表明能夠修改文件中的數據。若是把權限對應到命令上,那麼一旦對文件有寫(w)權限,就能夠對文件執行vim、echo等修改文件數據的命令。注意:對文件有寫權限,是不能刪除文件自己的,只能修改文件中的數據。若是要想刪除文件,則須要對文件的上級目錄擁有寫權限。
  • 執行(x):對文件有執行(x)權限,表明文件擁有了執行權限,能夠運行。在Linux中,只要文件有執行(x)權限,這個文件就是執行文件了。只是這個文件到底能不能正確執行,不只須要執行(x)權限,還要看文件中的代碼是否是正確的語言代碼。對文件來講,執行(x)權限是最高權限。
  1. 權限對目錄的做用
  • 讀(r):對目錄有讀(r)權限,表明能夠查看目錄下的內容,也就是能夠查看目錄下有哪些子文件和子目錄。若是把權限對應到命令上,那麼一旦對目錄擁有了讀(r)權限,就能夠在目錄下執行ls命令,查看目錄下的內容了。
  • 寫(w):對目錄有寫(r)權限,表明能夠修改目錄下的數據,也就是能夠在目錄中新建、刪除、複製、剪切子文件或子目錄。若是把權限對應到命令上,那麼一旦對目錄擁有了寫(w)權限,就能夠在目錄下執行touch、rm、cp、mv命令。對目錄來講,寫(w)權限是最高權限。
  • 執行(x):目錄是不能運行的,那麼對目錄擁有執行(x)權限,表明能夠進入目錄。若是把權限對應到命令上,那麼一旦對目錄擁有了執行(x)權限,就能夠對目錄執行cd命令,進入目錄

目錄的可用權限

目錄的可用權限其實只有如下幾個。
0:任何權限都不賦予。
5:基本的目錄瀏覽和進入權限。
7:徹底權限。

4.全部者和所屬組命令

4-1. chown命令

做用:修改文件和目錄的全部者和所屬組

[root@localhost ~]# chown [選項] 全部者:所屬組文件或目錄
選項:
-R: 遞歸設置權限,也就是給子目錄中的全部文件設置權限
[root@localhost ~]# ll
-rw-r--r-- 1 root root 342 6月  15 11:37 test.txt
# 改變text.txt文件的全部者和所屬組
[root@localhost ~]# chown python:python test.txt
# 再查看就test.txt文件的全部者和所屬組就變成python
[root@localhost ~]# ll
-rw-r--r-- 1 python python 342 6月  15 11:37 test..txt
## 注意!python用戶要存在

普通用戶不能修改文件的全部者,哪怕本身是這個文件的全部者也不行。
普通用戶能夠修改全部者是本身的文件的權限。

4-2. chgrp命令

做用:修改文件和目錄的所屬組

[root@localhost ~]# ll
-rw-r--r-- 1 python python 342 6月  15 11:37 test.txt
[root@localhost ~]# groupadd test # 建立test組
[root@localhost ~]# chgrp test test.txt
[root@localhost ~]# ll  
-rw-r--r-- 1 python test 342 6月  15 11:37 test.txt
# 文件的所屬組已經變成test

# chown也能夠實現
[root@localhost ~]# chown python.test test.txt
[root@localhost ~]# ll
-rw-r--r-- 1 python test 342 6月  15 11:37 test.txt

5. umask默認權限

  1. 查看系統的umask權限
#用八進制數值顯示umask權限
[root@localhost ~]# umask
0022
  1. 文件和目錄的最大權限

    • 對文件來說,新建文件的默認最大權限是666,沒有執行(x)權限。這是由於執行權限對文件來說比較危險,不能在新建文件的時候默認賦予,而必須經過用戶手工賦予。
    • 對目錄來說,新建目錄的默認最大權限是777。這是由於對目錄而言,執行(x)權限僅僅表明進入目錄,因此即便創建新文件時直接默認賦予,也沒有什麼危險。
  2. umask權限的計算方法

    umask默認權限須要使用二進制進行邏輯與和邏輯非聯合運算才能夠獲得正確的新建文件和目錄的默認權限

    第一種狀況: umask值的每一位爲偶數

    ## 文件的權限計算
    [root@localhost ~]# umask
    0022
    [root@localhost ~]# touch a.txt
    # a.txt的權限=文件的最大權限(666) - umask權限(022)=644
    [root@localhost ~]# ll 
    -rw-r--r-- 1 root   root   0 6月  16 13:51 a.txt
    
    # 改變umask的值
    [root@localhost ~]# umask 044
    [root@localhost ~]# umask 
    0044
    [root@localhost ~]# touch b.txt
    # 此時b.txt的權限爲文件的最大權限(666) - umask權限(044)=622
    -rw--w--w- 1 root   root   0 6月  16 14:00 b.txt
    
    # 總結:umask的值的每一位爲偶數時,新建文件的權限=文件的最大權限 - umask的值, 新建目錄的權限=目錄的最大權限(777) - umask值(022)
    
    ## 目錄的權限計算
    [root@localhost ~]# umask 022
    [root@localhost ~]# umask
    0022
    [root@localhost ~]# mkdir Test
    # 新建目錄的權限=目錄的最大權限(777) - umask值(022) = 755
    [root@localhost ~]# ll
    drwxr-xr-x 2 root   root   6 6月  16 14:10 Test

    第二種狀況: umask值的每一位爲奇數

    ## 文件的權限計算
    [root@localhost ~]# umask 043
    [root@localhost ~]# umask
    0043
    [root@localhost ~]# touch c.txt
    # 此時c.txt的權限爲文件的最大權限(666) - umask權限(043)=623,在結果的奇數位上+1就變成624
    -rw--w--r- 1 root   root   0 6月  16 14:00 c.txt
    #umask的值的每一位爲奇數時,新建文件的權限=文件的最大權限 666減去umask值,而後在結果的基礎上,在umask的奇數位上+1
    
    ## 目錄的權限計算
    [root@localhost ~]# umask 043
    [root@localhost ~]# umask
    0043
    [root@localhost ~]# mkdir Test
    # 新建目錄的權限=目錄的最大權限(777) - umask值(043) = 734
    # 目錄不影響
    [root@localhost ~]# ll
    drwx-wxr-- 2 root   root   6 6月  16 14:14 ABC

6、 幫助命令

1. man命令

man是最多見的幫助命令,顯示命令的幫助手冊

參數:

-f 查看命令擁有哪一個級別的幫助
-k 查看和命令相關的全部幫助

man命令的快捷鍵:

上箭頭 向上移動一行
下箭頭 向下移動一行
PgUp 向上翻一頁
PgDn 向下翻一頁
g 移動到第一頁
G 移動到最後一頁
q 退出
/字符串 從當前頁向下搜索字符串
?字符串 從當前頁向上搜索字符串
n 當搜索字符串時,可使用n鍵找到下一個字符串
N 當搜索字符串時,使用N鍵反向查詢字符串。也就是說,若是使用「/字符串」方式搜索,則N鍵表示向上搜索字符串;若是使用「?字符串」方式搜索,則N鍵表示向下搜索字符串

man命令的幫助級別:

級 別 做 用
1 普通用戶能夠執行的系統命令和可執行文件的幫助
2 內核能夠調用的函數和工具的幫助
3 C語言函數的幫助
4 設備和特殊文件的幫助
5 配置文件的幫助
6 遊戲的幫助(我的版的Linux中是有遊戲的)
7 雜項的幫助
8 超級用戶能夠執行的系統命令的幫助
9 內核的幫助

2. info命令

info命令的幫助信息是一套完整的資料,每一個單獨命令的幫助信息只是這套完整資料中的某一個小章節。

infor命令的快捷鍵:

上箭頭 向上移動一行
下箭頭 向下移動一行
PgUp 向上翻一頁
PgDn 向下翻一頁
Tab 在有「*」符號的節點間進行切換
回車 進入有「*」符號的子頁面,查看詳細幫助信息
u 進入上一層信息(回車是進入下一層信息)
n 進入下一小節信息
p 進入上一小節信息
查看幫助信息
q 退出info信息

3. --help命令

大多數命令均可以使用「--help」選項來查看幫助

[root@localhost ~]# ls --help

7、 搜索命令

1. whereis 命令

做用:查找二進制命令路徑、源文件和幫助文檔的命令

[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

2. which命令

做用:查找到二進制命令路徑的同時,若是這個命令有別名,則能夠找到別名命令

[root@localhost ~]# which pwd
alias grep='grep --color=auto'
        /usr/bin/grep

3. find命令

做用:搜索文件。

按文件名查找文件和目錄:

##  按名稱查找文件
[root@localhost ~]#  find 路徑信息 -type 文件類型 -選項 "文件名"
# -name選項
find 路徑信息 -type f -iname "文件名"	# 按照文件名搜索,不區分文件名大小寫
find 路徑信息 -type f -name "文件名"	# 按照文件名搜索, 精確查找	 
find 路徑信息 -type f -name "*文件名*"	# 按照文件名搜索, 模糊查找	
find 路徑信息 -type f -name "文*件名*"	# 按照文件名搜索, 模糊查找
# 在/data下查找hello.txt文件
[root@localhost ~]# find /data -type f -name "hello.txt"

## 按名稱查找目錄
find 路徑信息 -type d -name "目錄名"	# 按照目錄名搜索
# 在/data下查找Test目錄
[root@localhost ~]# find /data -type d -name "Test"

按文件大小查找文件:

[root@localhost ~]#  find 路徑信息 -type 文件類型 -size [+|-]單位
# -size選項的單位:
	'b':這是默認單位,若是單位爲b或不寫單位,則按照512 Byte搜索
	'c':搜索單位是c,按照字節搜索
	'w':搜索單位是w,按照雙字節(中文)搜索
	'k':按照KB單位搜索,必須是小寫的k
	'M':按照MB單位搜索,必須是大寫的M
	'G':按照GB單位搜索,必須是大寫的G

# 在/data目錄下查找大於50MB的文件
[root@localhost ~]# find /data -type f -size +50M

按文件修改時間查找:

[root@localhost ~]#  find 路徑信息 -type 文件類型   +|-時間   搜索內容
# 修改時間:
	'mtim(modification timee)': 當修改文件的內容數據的時候,就會更新這個時間,而更改權限或者屬性,mtime不會改變,這就是和ctime的區別
	'ctime(status time)':當修改文件的權限或者屬性的時候,就會更新這個時間
	'atime(access time)':訪問文件時如cat,atime早於mtime或者ctime,會修改這個時間
# +-時間的含義:
	-5:表明5天內修改的文件
	+5:表明6天前修改的文件。
	5:表明前5~6天那一天修改的文件。
# 查找/data下7天前建立的文件
[root@localhost ~]# find /data -type f -mtime +6

按文件權限搜索:

# 查找/data下權限爲755的文件
[root@localhost ~]# find /data -type f -perm 755

按照全部者和所屬組搜索:

# 查找/data下用戶名爲root的全部文件
[root@localhost ~]# find /data -type f -user root
-uid 用戶ID: 按照用戶ID查找全部者是指定ID的文件
-gid 組ID: 按照用戶組ID查找所屬組是指定ID的文件
-user 用戶名: 按照用戶名查找全部者是指定用戶的文件
-group 組名: 按照組名查找所屬組是指定用戶組的文件
-nouser: 查找沒有全部者的文件

8、壓縮和解壓縮命令

在 Linux 中能夠識別的常見壓縮格式有十幾種,好比「.zip」「 .gz」「 .bz2」 「.tar」 「.tar.gz」「 .tar.bz2」 等。

1. zip格式

zip壓縮

命令格式:zip [選項] 壓縮包名 源文件或源目錄

選項: -r 壓縮目錄

# 壓縮文件
[root@m01 ~]# zip t1.txt.zip t1.txt 
  adding: t1.txt (deflated 45%)
[root@m01 ~]# ll |grep t1
-rw-r--r--  1 root root 459 Jun 29 13:25 t1.txt
-rw-r--r--  1 root root 415 Jun 29 14:36 t1.txt.zip

# 壓縮目錄
[root@m01 ~]# zip -r linux.zip linux/
[root@m01 ~]# ll |grep linux
drwxr-xr-x  4 root root    39 Jun 26 23:51 linux
-rw-r--r--  1 root root 29255 Jun 29 14:42 linux.zip

unzip解壓縮

命令格式:unzip [選項] 壓縮包名

選項:-d 指定解壓目錄

更多選項

# 把當前目錄下的linux.zip解壓到/tmp下
[root@m01 ~]# unzip -d /tmp linux.zip

2. tar格式

".tar"格式的打包和解打包都使用 tar 命令,區別只是選項不一樣

tar打包

[root@m01 ~]# tar [選項] [-f 壓縮包名] 源文件或目錄 
選項: 
    -c:  打包  
    -f:  指定壓縮包的文件名。壓縮包的擴展名是用來給管理員識別格式的,因此必定要正確指定擴展名  
    -v:  顯示打包文件過程 

# 打包文件
[root@m01 ~]# tar -cvf t1.txt.tar t1.txt
t1.txt
[root@m01 ~]# ll |grep t1.txt
-rw-r--r--  1 root root   459 Jun 29 13:25 t1.txt
-rw-r--r--  1 root root 10240 Jun 29 14:57 t1.txt.tar
# 打包目錄
[root@m01 ~]# tar -cvf linux.tar linux
linux/
......
[root@m01 ~]# ll |grep linux.tar 
-rw-r--r--  1 root root 81920 Jun 29 14:58 linux.tar

更多選項參數

tar解打包

[root@localhost ~]# tar [選項] 壓縮包 
選項:  
    -x:   解打包  
    -f:   指定壓縮包的文件名   
    -v:   顯示解打包文件過程 
    -t:   測試,就是不解打包,只是查看包中有哪些文件 
    -C(大) 目錄: 指定解打包位置
# 解壓到當前目錄下
[root@m01 ~]# tar -xvf linux.tar

# 解壓到指定目錄下 /tmp
[root@m01 ~]# tar tar -xvf linux.tar -C /tmp

3. tar.gz和".tar.bz2"格式

使用 tar 命令直接打包壓縮

[root@localhost ~]# tar [選項] 壓縮包 源文件或目錄 
選項:  
    -z:  壓縮和解壓縮「.tar.gz」格式  
    -j:  壓縮和解壓縮「.tar.bz2」格式 
    
# .tar.gz 」格式
[root@localhost ~]# tar -zcvf tmp.tar.gz /tmp/ 
# 解壓縮與解打包「 .tar.gz 」格式
[root@localhost ~]# tar -zxvf tmp.tar.gz 
 
# .tar.bz2格式 
[root@localhost ~]# tar -jcvf tmp.tar.bz2 /tmp/ 
[root@localhost ~]# tar -jxvf tmp.tar.bz2

9、 關機重啓命令

1. sync數據同步

做用:刷新文件系統緩衝區

2. shutdown命令

做用:關機和重啓

[root@localhost ~]# shutdown [選項] 時間 [警告信息] 
選項:  
    -c:  取消已經執行的shutdown命令  
    -h:  關機  
    -r:  重啓

3. reboot 命令

做用:重啓系統

10、 網絡命令

1. IP地址配置

IP 地址是計算機在互聯網中惟一的地址編碼。每臺計算機若是須要接入網絡和其餘計算機進行數 據通訊,就必須配置惟一的公網 IP 地址

CeotOS 6.x 配置

1. setup工具

2. 手工配置

[root@m01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE:設備名稱
TYPE:網絡類型(以太網等)
ONBOOT:開機時是否自動啓用(yes/no)
HWADDR:MAC地址(物理地址)
BOOTPROTO:網卡獲取配置的方式(dhcp/static/none/其餘)
IPADDR:IP地址
NETMASK:子網掩碼
GATEWAY:網關地址
BROADCAST:廣播地址
DNS:DNS服務器地址
NAME:網卡名稱
USERCTL:普通用戶是否能夠控制(yes/no)

[root@m01 ~]# service network restart 

## 啓動失敗解決
# 刪除MAC地址行
[root@localhost ~]# vi  /etc/sysconfig/network-scripts/ifcfg-eth0  
# 刪除MaC地址和UUID綁定文件 
 [root@localhost ~]# rm  -rf  /etc/udev/rules.d/70-persistent-net.rules 
 #重啓Linux
 [root@localhost ~]# reboot

CeotOS 7.x 配置

1. nmtui工具

沒有就手動安裝:yum install NetworkManager-tui

2. 手動 配置

[root@m01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet # 以太網
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static #配置靜態IP地址
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
NAME=ens33 # 網卡名稱
DEVICE=ens33
ONBOOT=yes # 開機自啓動
IPADDR=192.168.1.61 # IP地址
PREFIX=24 # 子網掩碼
GATEWAY=192.168.1.2 # 網關
DNS1=114.114.114.114  #DNS
DNS2=8.8.8.8 #DNS
# 重啓網絡服務
[root@m01 ~]# systemctl restart network

## 啓動失敗解決
# 刪除MAC地址行和UUID
[root@localhost ~]# vi  /etc/sysconfig/network-scripts/ifcfg-eth0  
#  關閉NetworkManager服務
[root@m01 ~]# systemctl stop NetworkManager
[root@localhost ~]# reboot

CentOS 7.x 修改網卡名爲eth0

2. ifconfig命令

做用:查看 IP 地址的信息

[root@localhost ~]# ifconfig eth0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500   #標誌          最大傳輸單元         inet 192.168.252.20  netmask 255.255.255.0  broadcast 192.168.252.255   #IP地址    子網掩碼     廣播地址         inet6 fe80::546e:994b:30c:e2f7  prefixlen 64  scopeid 0x20<link>   #IPv6地址(目前沒有生效)         ether 00:0c:29:aa:d2:96  txqueuelen 1000  (Ethernet)   #MAC地址         RX packets 3728  bytes 310958 (303.6 KiB)         RX errors 0  dropped 0  overruns 0  frame 0    #接收的數據包狀況         TX packets 3051  bytes 1495119 (1.4 MiB)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0   #發送的數據包狀況 
 lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536 #本地迴環網卡         inet 127.0.0.1  netmask 255.0.0.0         inet6 ::1  prefixlen 128  scopeid 0x10<host>         loop  txqueuelen 1000  (Local Loopback)         RX packets 8  bytes 696 (696.0 B)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 8  bytes 696 (696.0 B)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3. ping命令

做用:經過 ICMP 協議進行網絡探測,測試網絡中主機的通訊狀況

[root@localhost ~]# ping [選項] IP 
選項: 
    -b:   後面加入廣播地址,用於對整個網段進行探測  
    -c 次數: 用於指定ping的次數  
    -s 字節: 指定探測包的大小 
    
[root@localhost ~]#  ping -b -c 3 192.168.103.255 
WARNING: pinging broadcast address 
PING 192.168.103.255 (192.168.103.255) 56(84) bytes of data. 64 bytes from 192.168.103.199: icmp_seq=1 ttl=64 time=1.95 ms 
64 bytes from 192.168.103.168: icmp_seq=1 ttl=64 time=1.97 ms (DUP!) 
64 bytes from 192.168.103.252: icmp_seq=1 ttl=64 time=2.29 ms (DUP!) 
......

4. netstat 命令

做用:

netstat 是網絡狀態查看命令,既能夠查看到本機開啓的端口,也能夠查看有哪些客戶端鏈接

[root@localhost ~]# netstat [選項]  
選項:  
-a:   列出全部網絡狀態,包括Socket程序  
-c 秒數: 指定每隔幾秒刷新一次網絡狀態  
-n:   使用IP地址和端口號顯示,不使用域名與服務名 
-p:   顯示PID和程序名  
-t:   顯示使用TCP協議端口的鏈接情況  
-u:   顯示使用UDP協議端口的鏈接情況  
-l:   僅顯示監聽狀態的鏈接 
-r:   顯示路由表 
# 經常使用組合
[root@localhost ~]# netstat -tulnp

5. write 命令

做用:向其餘用戶發送信息

#向在pts/1(遠程終端 1 )登陸的user1用戶發送信息,使用「 Ctrl+D 」 快捷鍵 保存發送的數據
[root@localhost ~]#write user1 pts/1 
hello 
I will be in 5 minutes to restart, please save your data

6. wall 命令

做用:write 命令用於給指定用戶發送信息,而 wall 命令用於給全部登陸用戶發送信息,包括本身

[root@localhost ~]# wall "I will be in 5 minutes to restart, please save your data"

7. mail 命令

mail 是 Linux 的郵件客戶端命令,能夠利用這個命令給其餘用戶發送郵件

做用:發送和接收電子郵件

本地發送郵件:

[root@localhost ~]# mail user1
Subject: hello     < - 郵件標題
Nice to meet you!  < - 郵件具體內容
.                  <- 使用「.」來結束郵件輸入
#發送郵件給user1用戶

#咱們接收到的郵件都保存在「/var/spool/mail/用戶名」中,每一個用戶都有一個以本身的用戶名命名的郵箱。

查看郵件

[root@localhost ~]# mail
Heirloom Mail version 12.4 7/29/08.Type ?for help.
"/var/spool/mail/root": 1 message 1 new
>N 1 root Mon Dec 5 22:45 68/1777 "test mail"  <-以前收到的郵件
>N 2 root Mon Dec 5 23:08 18/602 "hello"
#未閱讀編號 發件人 時間 標題
&                                              <-等待用戶輸入命令

能夠看到已經接收到的郵件列表,「N」表明未讀郵件,若是是已經閱讀過的郵件,則前面是不會有這個「N」的;以後的數字是郵件的編號,咱們主要經過這個編號來進行郵件的操做。若是咱們想要查看第一封郵件,則只需輸入郵件的編號「1」就能夠了。

在交互命令中執行「?」,能夠查看這個交互界面支持的命令

[root@localhost ~]# mail
Heirloom Mail version 12.4 7/29/08.Type ?for help.
"/var/spool/mail/root": 1 message 1 new
>N 1 root Mon Dec 5 22:45 68/1777 "test mail"  <-以前收到的郵件
>N 2 root Mon Dec 5 23:08 18/602 "hello"
#未閱讀編號 發件人 時間 標題
&  ?   <-輸入"?"查看幫助

mail commands
type<message list> type messages
next goto and type next message
from<message list> give head lines of messages
headers print out active message headers
......
# headers:列出郵件標題列表,直接輸入「h」命令便可。
# delete:刪除指定郵件。好比想要刪除第二封郵件,能夠輸入「d 2」。
# save:保存郵件。能夠把指定郵件保存成文件,如「s 2 /tmp/test.mail」。
# quit:退出,並把已經操做過的郵件進行保存。好比移除已刪除郵件、保存已閱讀郵件等。
# exit:退出,可是不保存任何操做。

給郵箱發送郵件

  1. 安裝郵件服務 yum -y install postfix

  2. 登錄163郵箱,開啓POP3/SMTP郵件服務

  3. 新增受權碼,驗證信息;記錄這個碼,配置的時候用

  4. 編寫配置文件,重啓postfix.service服務,測試

# 在最後添加如下內容
[root@localhost ~]# vim /etc/mail.rc
set from=xxx@163.com   # 郵箱地址
set smtp=smtp.163.com  # 默認就行
set smtp-auth-user=xxx@163.com  # 認證用戶,也是郵件地址
set smtp-auth-password=xxx  # 你開啓SMTP時候的受權碼
set smtp-auth=login

# 重啓服務
[root@localhost ~]# systemctl restart postfix.service
# 測試發送郵件,並能成功接受到郵件消息
[root@localhost ~]# echo "test mail !!!" |mail -s xxx@163.com

11、 系統痕跡命令

系統中有一些重要的痕跡日誌文件,如/var/log/wtmp、/var/run/utmp、/var/log/btmp、/var/log/lastlog等日誌文件,若是你用vim打開這些文件,你會發現這些文件是二進制亂碼。這是因爲這些日誌中保存的是系統的重要登陸痕跡,包括某個用戶什麼時候登陸了系統,什麼時候退出了系統,錯誤登陸等重要的系統信息。這些信息要是能夠經過vim打開,就能編輯,這樣痕跡信息就不許確,因此這些重要的痕跡日誌,只能經過對應的命令來進行查看。

1. w命令

顯示系統中正在登錄的用戶信息的命令,這個命令查看的痕跡日誌是/var/run/utmp

做用: 顯示登錄用戶,查看他正在作什麼操做

[root@m01 ~]# w
 12:56:10 up  3:12,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.1      11:04    2.00s  0.64s  0.01s w
python   pts/1    192.168.1.41     11:15    1:22   0.72s  0.50s vim dead.letter
## 第一行說明:
12:56:10 
up  3:12  # 系統已經開機3小時12分鐘 
2 users   # 當前登錄了兩個用戶
load average: 0.00, 0.01, 0.05  # 系統在以前1分鐘、5分鐘、15分鐘的平均負載。若是CPU是單核的,則這個數值超過1就是高負載;若是CPU是四核的,則這個數值超過4就是高負載

## 第二行說明
USE
TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT

第一行說明:

內容 說明
12:56:10 系統當前時間
up 3:12 系統已經運行3小時12分鐘
2 users 當前登錄了兩個用戶
load average: 0.00, 0.01, 0.05 #系統在以前1分鐘、5分鐘、15分鐘的平均負載。若是CPU是單核的,則這個數值超過1就是高負載;若是CPU是四核的,則這個數值超過4就是高負載(這個平均負載徹底是依據我的經驗來進行判斷的,通常認爲不該該超過服務器CPU的核數)

第二行說明:

內容 說明
USER 當前登錄的用戶
TTY 登錄的終端:tty1-6:
本地字符終端(alt+F1-6切換)
tty7: 本地圖形終端(ctrl+alt+F7切換,必須安裝啓動圖形界面)
pts/0-255: 遠程終端
FROM 登錄的IP地址,若是是本地終端,則是空
LOGIN@ 登錄時間
IDLE 用戶閒置時間
JCPU 全部的進程佔用的CPU時間
PCPU 當前進程佔用的CPU時間
WHAT 用戶正在進行的操做

2. who命令

who命令和w命令相似,用於查看正在登錄的用戶,可是顯示的內容更加簡單,也是查看/var/run/utmp日誌

[root@m01 ~]# who
root     	pts/0     2020-06-30 11:04 (192.168.1.1)
登錄用戶     登錄終端    登錄時間(來源IP)
python      pts/1      2020-06-30 11:15 (192.168.1.41)

3. last命令

last命令是查看系統全部登錄過的用戶信息的,包括正在登錄的用戶和以前登錄的用戶。這個命令查看的是/var/log/wtmp痕跡日誌文件。

[root@localhost ~]# last
root tty1 Mon Nov 12 23:59 still logged in
root pts/2 192.168.252.1 Mon Nov 12 23:42 still logged in
root pts/1 192.168.252.1 Mon Nov 12 23:37 - 23:59 (00:22)
root tty1 Mon Nov 12 19:17 - 23:58 (04:41)
root pts/0 192.168.252.1 Mon Nov 12 18:20 - 23:52 (05:32)
reboot system boot 3.10.0-862.el7.x Mon Nov 12 18:18 - 00:22 (06:03)
#系統重啓信息記錄
root pts/1 192.168.252.1 Mon Nov 12 08:48 - down (01:29)
root    pts/1  192.168.252.1    Thu Nov 8 21:04 - 22:29 (01:25)
#用戶名  終端號  來源IP地址         登錄時間 - 退出時間

4. lastlog命令

lastlog命令是查看系統中全部用戶最後一次的登錄時間的命令,他查看的日誌是/var/log/lastlog文件

[root@localhost ~]# lastlog
Username    Port      From          Latest
root        tty1                    Mon Nov 12 23:59:03 +0800 2020
bin     **Never logged in**
daemon  **Never logged in**
adm     **Never logged in**
lp      **Never logged in**
sync    **Never logged in**
python     pts/1    192.168.1.41   Tue Jun 30 11:15:51 +0800 2020
..........
#用戶名      終端     來源IP         登錄時間

5. lastb命令

lastb命令是查看錯誤登錄的信息的,查看的是/var/log/btmp痕跡日誌

[root@localhost ~]# lastb
(unknown tty1 Mon Nov 12 23:58 - 23:58 (00:00)
root       tty1      Mon Nov 12 23:58 - 23:58 (00:00)
#錯誤登錄   用戶終端      嘗試登錄的時間

12、掛載命令

# 查看磁盤使用和掛載狀況
[root@m01 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        471M     0  471M   0% /dev
tmpfs           487M     0  487M   0% /dev/shm
tmpfs           487M  8.0M  479M   2% /run
tmpfs           487M     0  487M   0% /sys/fs/cgroup
/dev/sda2        14G  8.1G  5.9G  58% /
/dev/sda1       2.8G  272M  2.6G  10% /boot
tmpfs            98M     0   98M   0% /run/user/0
tmpfs            98M     0   98M   0% /run/user/1000

# 查看磁盤分區狀況
[root@m01 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  2.8G  0 part /boot
├─sda2   8:2    0   14G  0 part /
└─sda3   8:3    0  2.8G  0 part [SWAP]
sr0     11:0    1 1024M  0 rom  
# 查看分區UUID
[root@m01 ~]# blkid
/dev/sda1: UUID="45f0e357-2102-419a-9b26-2fbd8795f2ad" TYPE="xfs" 
/dev/sda2: UUID="5788eabe-abdb-41c2-b1be-4b12482553a3" TYPE="xfs"

1. mount命令

linux全部存儲設備都必須掛載使用,包括硬盤

[root@localhost ~]# mount [-t 文件系統] [-L 卷標名] [-o 特殊選項] \
設備文件名 掛載點
#  \表明這一行沒有寫完,換行
選項:
	-t 文件系統: 加入文件系統類型來指定掛載的類型,能夠ext四、xfs等文件系統
	-L 卷標名: 掛載指定卷標的分區,而不是安裝設備文件名掛載
	-o 特殊選項: 能夠指定掛載的額外選項,好比讀寫權限、同步異步等,若是不指定
則默認值生效
# 把/devs/da1磁盤分區掛載到/mnt下
[root@localhost ~]# mount -t xfs /dev/sda1 /mnt

# umount /nmt 取消掛載
[root@localhost ~]#umount  /mnt

-o 特殊選項參數

參數 說明
atime/noatime 更新訪問時間/不更新訪問時間。訪問分區文件時,是否更新文件的訪問時間,默認爲更新
async/sync 異步/同步,默認爲異步
auto/noauto 自動/手動,mount –a命令執行時,是否會自動安裝/etc/fstab文件內容掛載,默認爲自動
defaults 定義默認值,至關於rw,suid,dev,exec,auto,nouser,async這七個選項
exec/noexec 執行/不執行,設定是否容許在文件系統中執行可執行文件,默認是exec容許
remount 從新掛載已經掛載的文件系統,通常用於指定修改特殊權限
rw/ro 讀寫/只讀,文件系統掛載時,是否具備讀寫權限,默認是rw
suid/nosuid 具備/不具備SUID權限,設定文件系統是否具備SUID和SGID的權限,默認是具備
user/nouser 容許/不容許普通用戶掛載,設定文件系統是否容許普通用戶掛載,默認是不容許,只有root能夠掛載分區
usrquota 寫入表明文件系統支持用戶磁盤配額,默認不支持
grpquota 寫入表明文件系統支持組磁盤配額,默認不支持

2. 掛載光盤

不論哪一個系統都有軟鏈接/dev/cdrom,與能夠做爲光盤的設備文件名

[root@localhost ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/
#掛載光盤
[root@localhost ~]# umount /dev/sr0
[root@localhost ~]# umount /mnt/cdrom
#由於設備文件名和掛載點已經鏈接到一塊兒,卸載哪個均可以

3. 掛載U盤

U盤會和硬盤共用設備文件名,因此U盤的設備文件名不是固定的,須要手工查詢

#參看U盤設備名
[root@localhost ~]# fdisk -l

#掛載U盤。由於是Windows分區,因此是vfat文件系統格式
[root@localhost ~]# mount -t vfat /dev/sdb1 /mnt/usb/
#掛載U盤。由於是Windows分區,因此是vfat文件系統格式

#掛載U盤,指定中文編碼格式爲UTF-8
[root@localhost ~]# mount -t vfat -o iocharset=utf8 /dev/sdb1 /mnt/usb/
相關文章
相關標籤/搜索