Linux 常見命令


常用命令

一、命令的基本格式

1、命令的提示符

1563374872245

  • [] : 這是提示符的分隔符號,沒有特殊含義
  • root: 顯示的是當前的登錄用戶
  • @: 分隔符號,沒有特殊含義
  • localhost: 當前系統的簡寫主機名(完整主機名是 localhost.localdomain), hostname 查看
  • ~: 代表當前所在的目錄的最后一層目錄,
  • # : 命令提示符。超級用戶是#,普通用戶是$

2、命令的基本格式

[root@localhost ~]# 命令 [選項] [參數]
  • 選項:是用於調整命令的功能
  • 參數:是命令的操作對象,如果省略出參數,是因為有默認參數

二、目錄操作命令

1、ls 命令

  • 命令名稱:ls
  • 英語原意: list
  • 所在路徑: /bin/ls
  • 功能描述:顯示目錄下的內容

2、cd 命令

  • 命令名稱:cd
  • 英語原意: change directory
  • 所在路徑: shell 內置命令
  • 執行權限: 所有用戶
  • 功能描述:切換目錄

2.1、cd 命令的簡化用法

符號 作用
~ 家目錄(cd 也直接返回家目錄)
. 當前目錄
.. 上級目錄
- 上次所在目錄

2.2、絕對路徑和相對路徑

  • 絕對路徑:以根目錄為參照物,從根目錄開始,一級一級進入目錄
  • 相對路徑:以當前目錄作為參照物,進行目錄查找

3、mkdir 命令

  • 命令名稱:mkdir
  • 英語原意: make directories
  • 所在路徑: /bin/mkdir
  • 執行權限: 所有用戶
  • 功能描述:創建空目錄

命令格式

mkdir [選項] 目錄名
選項:
	-p: 遞歸創建所需目錄

4、rmdir 命令

  • 命令名稱:rmdir
  • 英語原意: remove empty directories
  • 所在路徑: /bin/rmdir
  • 執行權限: 所有用戶
  • 功能描述:刪除空目錄

命令格式

rmdir [選項] 目錄名
	-p: 遞歸刪除目錄

三、文件操作命令

1、touch 命令

  • 命令名稱:touch
  • 英語原意: change file timestamps
  • 所在路徑: /bin/touch
  • 執行權限: 所有用戶
  • 功能描述:創建空文件或修改文件時間

2、stat 命令

  • 命令名稱:stat
  • 英語原意: display file or file system status
  • 所在路徑: usr/bin/stat
  • 執行權限: 所有用戶
  • 功能描述:顯示文化或文件系統的詳細信息

1563377609428

​ 注意linux沒有創建時間。

  • Access: 最近訪問
  • Modify: 最近更改 # 數據改動
  • Change: 最近改動 # 狀態修改時間

3、cat 命令

  • 命令名稱:cat
  • 英語原意: concatenate files print on the standand output
  • 所在路徑: /bin/cat
  • 執行權限: 所有用戶
  • 功能描述:查看文件並打印輸出到標准設備
cat [選項] 文件名
	-A: 相當於-vET 選項的集合,用於列出所有隱藏符合
	-E: 列出每行結尾的回車符號$
	-n: 顯示行號
	-T: 把Tab鍵用^T顯示出來
	-v: 列出特殊符號

4、more 命令

  • 命令名稱:more
  • 英語原意: file perusal filter for crt viewin
  • 所在路徑: /bin/more
  • 執行權限: 所有用戶
  • 功能描述:分屏文件內容
# more [選項] 文件名
	- 空格鍵: 向下翻頁
	- b: 向上翻頁
	- 回車鍵:向下滾動一行
	- /字符串:搜索指定的字符串
	- q:退出

5、less 命令

​ less 命令和more命令類似,只是more是分屏顯示命令,而less是分行顯示命令

  • 命令名稱:less
  • 英語原意: opposite of more
  • 所在路徑: /bin/less
  • 執行權限: 所有用戶
  • 功能描述:分行顯示文件內容

6、head 命令

  • 命令名稱:head
  • 英語原意: output the first path of files
  • 所在路徑: /bin/head
  • 執行權限: 所有用戶
  • 功能描述:顯示文件頭內容

7、tail 命令

  • 命令名稱:tail
  • 英語原意: output the last path of files
  • 所在路徑: /bin/tail
  • 執行權限: 所有用戶
  • 功能描述:顯示文件結尾內容
# tail [選項] 文件名

	-n 行數: 從文件結尾開始,顯示指定行數
	-f: 監聽文件的新增內容

8、ln 命令

  • 命令名稱:ln
  • 英語原意: make links between file
  • 所在路徑: /bin/ln
  • 執行權限: 所有用戶
  • 功能描述:在文件之間建立鏈接
8.1、ln命令的基本格式如下
# ln [選項] 源文件 目錄文件
	-s: 創建軟鏈接文件,如果-s不加的話,則創建硬鏈接
	-f: 強制,如果目錄文件已經存在,則刪除目標文件后在創建鏈接文件
8.2、硬鏈接與軟鏈接的特征

硬鏈接特征

  • 源文件和硬鏈接文件擁有相同的 InodeBlock
  • 修改任意一個文件,另一個都改變
  • 刪除任何一個文件,另一個都可以使用
  • 硬鏈接標記不清,很難確定硬鏈接的文件位置,不建議使用
  • 硬鏈接不能鏈接目錄
  • 硬鏈接不能跨分區

軟鏈接特征

  • 軟鏈接和源文件擁有不同的InodeBlock
  • 兩個文件修改任意一個,另一個都改變
  • 刪除軟鏈接,源文件不受影響;刪除源文件,軟鏈接不可用。
  • 軟鏈接沒有實際數據,只保存了源文件的Inode,不論源文件多大,軟鏈接大小不變(9字節)
  • 軟鏈接的權限是最大權限lrwxrwxrwx, 但是由於沒有實際數據,最終訪問還是要參考實際源文件權限
  • 軟鏈接可以鏈接目錄
  • 軟鏈接可以跨分區
  • 軟鏈接一定要寫絕對路徑

四、目錄和文件都可以操作命令

1、rm 命令

  • 命令名稱:rm
  • 英語原意: remove files or directories
  • 所在路徑: /bin/rm
  • 執行權限: 所有用戶
  • 功能描述:刪除文件或目錄
# rm [選項] 文件或目錄
	-f: 強制刪除
	-i: 交互刪除,在刪除之前會進行詢問
	-r: 遞歸刪除,可以刪除目錄

2、cp 命令

  • 命令名稱:cp
  • 英語原意: copy files and directories
  • 所在路徑: /bin/cp
  • 執行權限: 所有用戶
  • 功能描述:復制文件和目錄
# cp [選項] 目標文件
	-a: 相當於 -dpr 選項的集合
	-d: 如果源文件為軟鏈接(對硬鏈接無效),則復制出的目標文件也為軟鏈接
	-i: 詢問,如果目標文件已經存在,是否覆蓋
	-p:復制后目標文件保留源文件屬性(所有者、所屬組、權限、時間)
	-r: 遞歸復制,用於復制目錄
	
cp /int.log /aaa.log # 拷貝加改名	

3、mv 命令

  • 命令名稱:mv
  • 英語原意: move (rename) files
  • 所在路徑: /bin/mv
  • 執行權限: 所有用戶
  • 功能描述:移動文件或改名
# mv [選項] 源文件 目標文件
	-f: 強制覆蓋
	-i: 交互移動
	-v: 顯示詳細信息

五、基本權限管理

1、權限的介紹

​ 權限的位含義

1563893803037

  • 第1位代表文件類型
    • -: 基本文件
    • b: 塊設備文件,一種特殊設備文件,存儲設備都是這種文件,如分區文件/dev/sda1
    • c: 字符設備文件,這也是特殊設備文件,輸入設備一般都是這種文件,如果鼠標、鍵盤
    • d: 目錄文件
    • l: 軟鏈接文件
    • p: 管道文件
    • s: 套接字文件,一些服務支持Socket訪問,就會產生這種文件
  • 第2-4 位代表文件所有者的權限(u)
    • r: read
    • w: write
    • x: excute
    • -: 沒這個權限
  • 第5-7 位代表文件所屬組的權限(g)
  • 第8-10位代表文件其他用戶的權限 (o)

2、基本權限命令

2.1、 修改權限命令 chmod
  • 命令名稱:chmod
  • 英語原意: change file mode bits
  • 所在路徑: /bin/chmod
  • 執行權限: 所有用戶
  • 功能描述:修改文件權限模式
# chmod [選項] 權限模式 文件名
	-R: 遞歸設置權限
2.2、 權限模式

chmod 命令的權限模式的格式是[ugoa][+-=][rwx] 也就是[用戶身份][賦予方式][權限]

  • 用戶身份
    • u
    • g
    • o
    • a
  • 賦予方式
    • +
    • -
    • =
  • 權限
    • r
    • w
    • x
chmod u+x,g-x,o+rw 文件名
2.3、數字權限
  • 4: 讀權限
  • 2: 寫權限
  • 1: 執行權限
chmod 755 文件名
2.4、常用權限
  • 644:文件的基本權限
  • 755: 執行權限和目錄的基本權限
  • 777: 最大權限,盡量避免這樣賦予權限。

3、基本權限的作用

3.1、權限含義的解釋(對root用戶無效)

首先, 讀、寫、執行權限對文件和目錄的作用是不同的。

  • 權限對文件的作用。
    • 讀(r):對文件有讀(r)權限,代表可以讀取文件中的數據。如果把權限對應到命令上,那么一旦對文件有讀(r)權限,就可以對文件執行cat、more、less、head、tail等文件查看命令。
    • 寫(w):對文件有寫(w)權限,代表可以修改文件中的數據。如果把權限對應到命令上,那么一旦對文件有寫(w)權限,就可以對文件執行vim、echo等修改文件數據的命令。注意:對文件有寫權限,是不能刪除文件本身的,只能修改文件中的數據。如果要想刪除文件,則需要對文件的上級目錄擁有寫權限。
    • 執行(x):對文件有執行(x)權限,代表文件擁有了執行權限,可以運行。在Linux中,只要文件有執行(x)權限,這個文件就是執行文件了。只是這個文件到底能不能正確執行,不僅需要執行(x)權限,還要看文件中的代碼是不是正確的語言代碼。對文件來說,執行(x)權限是最高權限。
  • 權限對目錄的作用
    • 讀(r):對目錄有讀(r)權限,代表可以查看目錄下的內容,也就是可以查看目錄下有哪些子文件和子目錄。如果把權限對應到命令上,那么一旦對目錄擁有了讀(r)權限,就可以在目錄下執行ls命令,查看目錄下的內容了。
    • 寫(w):對目錄有寫(r)權限,代表可以修改目錄下的數據,也就是可以在目錄中新建、刪除、復制、剪切子文件或子目錄。如果把權限對應到命令上,那么一旦對目錄擁有了寫(w)權限,就可以在目錄執行touch、rm、cp、mv命令。對目錄來說,寫(w)權限是最高權限。
    • 執行(x):目錄是不能運行的,那么對目錄擁有執行(x)權限,代表可以進入目錄。如果把權限對應到命令上,那么一旦對目錄擁有了執行(x)權限,就可以對目錄執行cd命令,進入目錄。
3.2、目錄的可用權限
  • 0:任何 權限都不賦予。
  • 5:基本的目錄瀏覽和進入權限。
  • 7:完全權限。

4、所有者和所屬組命令

4.1、chown 命令
  • 命令名稱:chown
  • 英語原意: change file owner and group
  • 所在路徑: /bin/chown
  • 執行權限: 所有用戶
  • 功能描述:修改文件和目錄的所有者和所屬組
# chown [選項] 所有者:所屬組 文件或目錄
	-R:遞歸設置
4.2、chgrp命令
  • 命令名稱:chgrp
  • 英語原意: change group ownership
  • 所在路徑: /bin/chgrp
  • 執行權限: 所有用戶
  • 功能描述:修改文件和目錄的所屬組

普通用戶可以修改所有者是自己的文件權限

普通用戶不能修改文件的所有者(哪怕文件時屬於這個普通用的)

5、umask 默認權限

5.1、 查看系統的umask權限
[root@localhost ~]# umask
0022
# 用八進制數值顯示umask權限
[root@localhost ~]# umask -S u=rwx,g=rx,o=rx 
#用字母表示文件和目錄的初始權限
5.2、 umask權限的計算方法

我們需要先了解一下新建文件和目錄的默認最大權限。

  • 對文件來講,新建文件的默認最大權限是666,沒有執行(x)權限。這是因為執行權限對文件來講比較危險,不能在新建文件的時候默認賦予,而必須通過用戶手工賦予。
  • 對目錄來講,新建目錄的默認最大權限是777。這是因為對目錄而言,執行(x)權限僅僅代表進入目錄,所以即使建立新文件時直接默認賦予,也沒有什么危險。

按照官方的標准算法,umask默認權限需要使用二進制進行邏輯與和邏輯非聯合運算才可以得到正確的新建文件和目錄的默認權限。

這種方法既不好計算,也不好理解,超哥並不推薦。我們在這里還是按照權限字母來講解umask權限的計算方法。我們就按照默認的umask值是022來分別計算一下新建文件和目錄的默認權限吧。

  • 文件的默認權限最大只能是666,而umask的值是022
    • “-rw-rw-rw-”減去“-----w--w-”等於“-rw-r--r—”
  • 目錄的默認權限最大可以是777,而umask的值是022
    • “drwxrwxrwx”減去“d----w--w-”等於“drwx-r-xr-x”

umask默認權限的計算絕不是數字直接相減。

六、幫助命令

1、man命令

  • 命令名稱:man
  • 英語原意: format and display the on-line manual pages
  • 所在路徑: usr/bin/man
  • 執行權限: 所有用戶
  • 功能描述:顯示聯機幫助手冊
# man [選項] 命令
	-f: 查看命令擁有哪個級別的幫助
	-k: 查看和命令相關的所有幫助

1.1、man命令的快捷鍵

快捷鍵 作用
上箭頭 向上移動一行
下箭頭 向下移動一行
PgUp 向上翻一頁
PaDown 向下翻一頁
g 移動到第一頁
G 移動到最后一頁
q 退出
/字符串 從當前頁向下搜索字符串
?字符串 從當前頁向上搜索字符串
n 當搜索字符串時,可以使用n找到下一個字符串
N 當搜索字符串時,使用N鍵反向查詢字符串

1.2、man命令的幫助級別

級別 作用
1 普通用戶可以執行的系統命令和可執行文件的幫助
2 內核可以調用的函數和工具的幫助
3 C語言函數的幫助
4 設備和特殊文件的幫助
5 配置文件的幫助
6 游戲的幫助(個人版的Linux中是有游戲的)
7 雜項的幫助
8 超級用戶可以執行的系統命令的幫助
9 內核的幫助
man -f 或 whatis 

2、info命令

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

快捷鍵 作用
上箭頭 向上移動一行
下箭頭 向下移動一行
PgUp 向上翻一頁
PaDown 向下翻一頁
Tab 在有“*”符 號的節點間進行切
回車 進入有“*”符號的子頁面,查看詳細幫助信息
u 進入上一層信息(回車是進入下一層信息)
n 進入下一小節信息
p 進入上一小節信息
? 查看幫助信息
q 退出info信息

3、help 命令

  • 命令名稱:help
  • 英語原意: help
  • 所在路徑: shell內置命令
  • 執行權限: 所有用戶
  • 功能描述:顯示Shell內置命令的幫助。可以使用type命令來區分內置命令與外部命令shell是Linux的命令解釋

4、--help 選項

​ 絕大多數命令都可以使用“--help”選項來查看幫助,這也是一種獲取幫助的方法。

這種方法非常簡單,輸出的幫助信息基本上是man命令的信息簡要版。

七、搜索命令

1、whereis命令

​ whereis是搜索系統命令的命令(像繞口令一樣),也就是說,whereis命令不能搜索普通文件,而只能搜索系統命令。whereis命令的基本信息如下。

  • 命令名稱:whereis
  • 英語原意: locate the binary, source, and manual page files for a command
  • 所在路徑: /usr/bin/whereis
  • 執行權限: 所有用戶
  • 功能描述:查找二進制命令、源文件和幫助文檔的命令

2、which命令

​ which也是搜索 系統命令的命令。和whereis命令的區別在於:

whereis命令可以 在查找 到二進制命令的同時,查找到幫助文檔的位置。

而which命令在查找到二進制命令的同時,如果這個命令有別名,則還可以找到別名命令。which命令的基本信息如下。

  • 命令名稱:which
  • 英語原意: shows the full path of (shell) commands
  • 所在路徑: /usr/bin/which
  • 執行權限: 所有用戶
  • 功能描述:列出命令的所在路徑

3、locate命令

3.1、基本用法

locate命令才是可以按照文件名搜索普通文件的命令。

優點:按照數據庫搜索,搜索速度快,消耗資源小。數據庫位置/var/lib/mlocate/mlocate.db,可以使用updatedb命令強制更新數據庫。

缺點:只能按照文件名來搜索文件,而不能執行更復雜的搜索,比如按照權限、大小、修改時間等搜索文件。

  • 命令名稱:locate
  • 英語原意: find files by name
  • 所在路徑: /usr/bin/locate
  • 執行權限: 所有用戶
  • 功能描述:按照文件名搜索文件
## 更新數據庫
updatedb

## 配置文件
[root@localhost ~]# vi /etc/updatedb.conf 
#開啟搜索限制,也就是讓這個配置文件生效
PRUNE_BIND_MOUNTS = "yes" 
#在locate執行搜索時,禁止搜索這些文件系統類型
PRUNEFS = "......" 
#在locate執行搜索時,禁止搜索帶有這些擴展名的文件
PRUNENAMES = "......" 
#在locate執行搜索時,禁止搜索這些系統目錄
PRUNEPATHS = "......" 

4、find 命令

  • 命令名稱:find
  • 英語原意: search for files in a directory hierarchy`
  • 所在路徑: /bin/find
  • 執行權限: 所有用戶
  • 功能描述:在目錄中搜索文件

4.1、按照文件名搜索

[root@localhost ~]# find 搜索路徑[選項] 搜索內容選項:   
	-name:按照文件名搜索   
	-iname:按照文件名搜索,不區分文件名大小寫   
	-inum:按照inode號搜索  (可以確定硬鏈接)(ls -i 文件)

4.2、按照文件大小搜索

[root@localhost ~]# find 搜索路徑[選項] 搜索內容選項:   
	-size:  [+|-]大小:按照指定大小搜索文件
	-size: n[cwbkMG]              
			File uses n units of space.  The following suffixes can be used:              'b' # 這是默認單位,如果單位為b或不寫單位,則按照512 Byte搜索  
	 'c' # 搜索單位是c,按照字節搜索 
	 'w' #搜索單位是w,按照雙字節(中文)搜索              
	 'k' #按照KB單位搜索,必須是小寫的k               
	 'M' #按照MB單位搜索,必須是大寫的M               
	 'G' #按照GB單位搜索,必須是大寫的G

這里的“+”的意思是搜索比指定大小還要大的文件,“-”的意思是搜索比指定大小還要小的文件。

4.3、按照修改時間搜索

Linux中的文件有訪問時間(atime)、數據修改時間(mtime)、狀態修改時間(ctime)這三個時間,我們也可以按照時間來搜索文件。

[root@localhost ~]# find 搜索路徑[選項] 搜索內容選項:   
	-atime [+|-]時間:按照文件訪問時間搜索   
	-mtime [+|-]時間:按照文件數據修改時間搜索   
	-ctime [+|-]時間:按照文件狀態修改時間搜索
		

這三個時間的區別我們在stat命令中已經解釋過了,這里用mtime數據修改時間來舉例,重點說說“[+-]”時間的含義。

  • -5:代表5天內修改的文件。
  • 5:代表前5~6天那一天修改的文件。
  • +5:代表6天前修改的文件。

4.4、按照權限搜索

[root@localhost ~]# find 搜索路徑[選項] 搜索內容選項:   
	-perm 權限模式:查找文件權限剛好等於“權限模式”的文件   
	-perm -權限模式:查找文件權限全部包含“權限模式”的文件   
	-perm +權限模式:查找文件權限包含“權限模式”的任意一個權限的文件

4.5、按照所有者和所屬組搜索

[root@localhost ~]# find 搜索路徑[選項] 搜索內容選項:   
	-uid 用戶ID:按照用戶ID查找所有者是指定ID的文件   
	-gid 組ID:按照用戶組ID查找所屬組是指定ID的文件   
	-user 用戶名:按照用戶名查找所有者是指定用戶的文件   
	-group 組名:按照組名查找所屬組是指定用戶組的文件   
	-nouser:查找沒有所有者的文件

​ 按照所有者和所屬組搜索時,“-nouser”選項比較常用,主要用於查找垃圾文件。只有一種情況例外,那就是外來文件。比如光盤和U盤中的文件如果是由Windows復制的,在Linux中查看就是沒有所有者的文件;再比如手工源碼包安裝的文件,也有可能沒有所有者。

4.6、按照文件類型搜索

[root@localhost ~]# find 搜索路徑[選項] 搜索內容選項:   
	-type d:查找目錄   
	-type f:查找普通文件   
	-type l:查找軟鏈接文件

4.7、邏輯運算符

[root@localhost ~]# find 搜索路徑[選項] 搜索內容
	-a:and邏輯與   
	-o:or邏輯或   
	-not:not邏輯非
	
[root@localhost ~]# find . -size +2k -a -type f 
#在當前目錄下搜索大於2KB,並且文件類型是普通文件的文件	

[root@localhost ~]# find . -name cangls -o -name bols
#在當前目錄下搜索文件名要么是cangls的文件,要么是bols的文件

[root@localhost ~]# find . -not -name cangls 
#在當前目錄下搜索文件名不是cangls的文件

4.8、其他選項

4.8.1、 -exec (;)

[root@localhost ~]# find 搜索路徑[選項] 搜索內容 -exec 命令2 {} \;

其次,這個選項的作用其實是把find命令的結果交給由“-exec”調用的命令2來處理。“{}”就代表find命令的查找結果。

4.8.2 -ok

“-ok”選項和“-exec”選項的作用基本一致,區別在於 :“-exec”的命令2會直接處理,而不詢問;

“-ok”的命令2在處理前會先詢問用戶是否這樣處理,在得到確認命令后,才會執行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM