国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux基礎(chǔ)命令 - 文件及目錄操作, 打印輸出, 查找命令, 用戶及權(quán)限管理, vi的使用等

這篇具有很好參考價(jià)值的文章主要介紹了Linux基礎(chǔ)命令 - 文件及目錄操作, 打印輸出, 查找命令, 用戶及權(quán)限管理, vi的使用等。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Linux基礎(chǔ)指令

綜合知識

vi - 純文本編輯器

vi命令 是UNIX操作系統(tǒng)和類UNIX操作系統(tǒng)中最通用的全屏幕純文本編輯器。Linux中的vi編輯器叫vim,它是vi的增強(qiáng)版(vi Improved),與vi編輯器完全兼容,而且實(shí)現(xiàn)了很多增強(qiáng)功能。

vi編輯器支持編輯模式命令模式,編輯模式下可以完成文本的編輯功能,命令模式下可以完成對文件的操作命令,要正確使用vi編輯器就必須熟練掌握著兩種模式的切換。默認(rèn)情況下,打開vi編輯器后自動(dòng)進(jìn)入命令模式。從編輯模式切換到命令模式使用**“esc”鍵**,從命令模式切換到編輯模式使用“A”、“a”、“O”、“o”、“I”、“i”鍵。

**語法格式:**vi [參數(shù)] 文件
參數(shù) 參數(shù)作用
-s 靜默模式, 不顯示指令的任何錯(cuò)誤信息
– -cmd<命令> 加載任何vimrc文件之前執(zhí)行指定命令
-R 只讀模式
-v Vi模式
-e Ex模式
-y 簡易模式
-c<命令> 加載第一個(gè)文件之后執(zhí)行指定命令
-s<腳本輸入文件> 從指定腳本輸入文件閱讀普通模式命令
-w<腳本輸出文件> 追加所有類型的命令寫入腳本輸出文件
-W<腳本輸出文件> 寫入所有類型的命令到指定腳本輸出文件
+<行數(shù)> 從指定行開始
– -noplugin 不要加載插件腳本
-p<數(shù)量> 打開指定數(shù)量的標(biāo)簽頁(帶文件名)
-r<文件名> 恢復(fù)崩潰的會(huì)話
-L 等同于-r
-r 列出交換文件并退出
-u 熟用指定vimrc,而不是.vimrc
-T<終端> 設(shè)置使用指定終端
-o<數(shù)量> 打開指定數(shù)量的窗口
-n 不使用交換文件,只用內(nèi)存
-Z 受限模式
-m 不允許修改(寫入)
-b 二進(jìn)制模式
-M 在文本中不允許修改

實(shí)例文章來源地址http://www.zghlxwxcb.cn/news/detail-456376.html

# 打開已有文件后編輯
vi test.txt
# 先編輯后保存到新建文件, 如果已存在需要:wq!強(qiáng)制覆蓋
vi
~~~
:wq test.txt
# 打開某個(gè)已存在的文件,從第6行開始編寫
vi +6 xianlin.txt
# 打開某個(gè)已存在的文件,以只讀模式進(jìn)入
vi +R xianlin.txt
命令模式

直接用命令(vi 文件名)打開一個(gè)文件的話,默認(rèn)是在命令模式下。

vi xianlin.txt
---
~
~
~
"xianlin.txt" 行數(shù), 大小

命令模式下常用命令

Ctrl+u # 向文件首翻半屏;
Ctrl+d #向文件尾翻半屏;
Ctrl+f / PgUp #向文件尾翻一屏;
Ctrl+b / PgDn #向文件首翻一屏;
k # 向上移動(dòng)光標(biāo)
j # 向下移動(dòng)光標(biāo)
h # 向左移動(dòng)光標(biāo)
l # 向右移動(dòng)光標(biāo)
gg # 光標(biāo)跳轉(zhuǎn)到文本第一行
G # 光標(biāo)跳轉(zhuǎn)到文本最后一行
Shift+^ (Shift+6) # 把光標(biāo)跳轉(zhuǎn)到所在行首
Shift+$ (Shift+4) # 把光標(biāo)跳轉(zhuǎn)到所在行尾
ZZ # 保存文件并退出, 可以打開大寫鎖定或者按住shift
x / X # 刪除一個(gè)字符, x小寫刪除光標(biāo)后, X大寫刪除光標(biāo)前
D # 刪除從當(dāng)前光標(biāo)到行尾的字符
dd # 刪除光標(biāo)所在的當(dāng)前行
p / P # 粘貼緩存區(qū)內(nèi)容, p小寫為粘貼到光標(biāo)前, P大寫為粘貼到光標(biāo)后
r / R # 替換字符, r小寫為只替換一個(gè)字符, R大寫為一直替換輸入
u # 撤銷上一步操作

# 進(jìn)入插入模式
a #在當(dāng)前字符后添加文本
A #在行末添加文本
i #在當(dāng)前字符前插入文本
I #在行首插入文本
o #在當(dāng)前行后面插入一空行
O #在當(dāng)前行前面插入一空行
插入模式

在命令模式下輸入a、A、i、I、o、O中任何一個(gè)字符即可進(jìn)入插入模式,在此模式下才可以對文件進(jìn)行編輯,輸入內(nèi)容。在此模式下按 ESC鍵 退出到命令模式

底行模式

在命令模式下,通過輸入 :(英文冒號)即可切換到底行模式,底行模式下可以做一些保存,字符替換等操作,底行模式下命令以回車結(jié)束,退出或者返回命令模式,或者雙擊Esc返回命令模式。

底行模式常用命令

:set nu # 顯示行號
:set nonu # 關(guān)閉顯示行號
:q # 不保存退出
:wq #保存退出
:q! #強(qiáng)制退出
:wq! #強(qiáng)制保存退出
:/string # 查找字符串所在行, 并把光標(biāo)跳轉(zhuǎn)到所在行
:%s/old/new # 將全部old替換成new
:n # 定位到n行(n代指數(shù)字)
:$ # 將光標(biāo)跳轉(zhuǎn)到最后一行首
:f # 顯示當(dāng)前文件名, 是否已修改, 光標(biāo)所在行, 當(dāng)前顯示比例

重定向符號

重定向就是將標(biāo)準(zhǔn)輸出(本身也是一個(gè)文件/dev/stdout)導(dǎo)向一個(gè)文件或者追加到一個(gè)文件中。在linux中,使用>符號來表示導(dǎo)向到一個(gè)文件,使用>>符號來表示追加到一個(gè)文件。

符號 描述
> 符號左邊輸出作為右邊輸入(標(biāo)準(zhǔn)輸出)
>> 符號左邊輸出追加右邊輸入
< 符號右邊輸出作為左邊輸入(標(biāo)準(zhǔn)輸入)
<< 符號右邊輸出追加左邊輸入
& 重定向綁定符號

實(shí)例

# 覆蓋文件的內(nèi)容
echo "hello" > file.txt
# 追加到文件結(jié)尾并另起一行
echo "hi" >> file.txt

通配符

Linux命令中, 大部分命令支持通配符, 尤其是批量創(chuàng)建, 刪除操作中

命令行通配符

符號 含義
* 表示匹配任意長度的任意字符
? 表示匹配任意一個(gè)字符
[ ] 表示匹配[ test ]內(nèi)的任意單個(gè)字符
[^test] 表示匹配[ test ]外的任意單個(gè)字符

具體用法

test* , 表示任何以test為開頭的內(nèi)容
*test,表示任何以test結(jié)尾的內(nèi)容
*test*,表示任何包含test的內(nèi)容

[a-z],[0-9],[A-Z],[a-z0-9]

? [[:upper:]]-------------所有大寫字母

? [[:lower:]]-------------所有小寫字母

? [[:alpha:]]-------------所有字母

? [[:dight:]]--------------所有數(shù)字

? [[:alnum:]]------------所有字母和數(shù)字

? [[:space:]]------------所有空白字符

? [[:punct:]]-------------所有標(biāo)點(diǎn)符號

? [^[:upper:]]-----------所有大寫字母以外

? [^0-9]-----------------所有數(shù)字以外

? [^[:alnum:]]----------所有數(shù)字和字母以外

管道符

管道符:|

作用:管道是一種通信機(jī)制,通常用于進(jìn)程間的通信。它表現(xiàn)出來的形式將前面每一個(gè)進(jìn)程的輸出(stdout)直接作為下一個(gè)進(jìn)程的輸入(stdin)。

實(shí)例:

# 查找一個(gè)文件夾, 并以ls -l的格式打印出來
ls -l /usr/bin | grep xzm
# 結(jié)果
-rwxr-xr-x 1 root root        2162  48  2022 xzmore
# 查找一個(gè)文件夾下的文件數(shù)量
ls -l /usr/bin | wc -l
#結(jié)果
1495

文件及目錄操作命令

ls – 顯示目錄下的文件信息

語法格式: ls [參數(shù)] [文件]

參數(shù) 參數(shù)作用
-a 顯示所有文件及目錄 (包括以“.”開頭的隱藏文件)
-l 使用長格式列表模式列出文件及目錄的詳細(xì)信息
-r 將文件以相反次序顯示(默認(rèn)依英文字母次序)
-t 根據(jù)最后的修改時(shí)間排序
-h 需要和-選項(xiàng)搭配使用,以更加人性化的方式顯示文件的大小單位
-A 同 -a ,但不列出 “.” (當(dāng)前目錄) 及 “…” (父目錄)
-S 根據(jù)文件大小排序
-R 遞歸列出所有子目錄
-d 查看目錄的信息,而不是里面子文件的信息
-i 輸出文件的inode節(jié)點(diǎn)信息
-m 水平列出文件,以逗號間隔
-X 文件擴(kuò)展名排序
–color 輸出信息中帶有著色效果

cd – 切換目錄

cd命令來自于英文詞組”change directory“的縮寫,其功能是用于更改當(dāng)前所處的工作目錄,路徑可以是絕對路徑,也可以是相對路徑,若省略不寫則會(huì)跳轉(zhuǎn)至當(dāng)前使用者的家目錄。

**語法格式:**cd [參數(shù)] [目錄名]

參數(shù) 參數(shù)作用
缺省 如果直接使用cd , 則會(huì)直接回到home目錄
-P 如果切換的目標(biāo)目錄是一個(gè)符號鏈接,則直接切換到符號鏈接指向的目標(biāo)目錄
-L 如果切換的目標(biāo)目錄是一個(gè)符號鏈接,則直接切換到符號鏈接名所在的目錄
僅使用”-“選項(xiàng)時(shí),當(dāng)前目錄將被切換到環(huán)境變量”O(jiān)LDPWD”對應(yīng)值的目錄
~ 表示當(dāng)前用戶目錄
表示上一級目錄
. 表示當(dāng)前目錄

pwd – 顯示當(dāng)前工作目錄的路徑

pwd命令來自于英文詞組”print working directory“(打印工作目錄)的縮寫,其功能是用于顯示當(dāng)前工作目錄的路徑,即顯示所在位置的絕對路徑。

語法格式:pwd

實(shí)例查看當(dāng)前工作目錄路徑:

[root@linuxcool ~]# pwd 
/root

mkdir – 創(chuàng)建目錄文件

語法格式 : mkdir [參數(shù)] (目錄)

參數(shù) 參數(shù)作用
-p 遞歸創(chuàng)建多級目錄
-m 建立目錄的同時(shí)設(shè)置目錄的權(quán)限
-z 設(shè)置安全上下文
-v 顯示目錄的創(chuàng)建過程

touch – 創(chuàng)建空文件與修改時(shí)間戳

**語法格式:**touch [參數(shù)] 文件

參數(shù) 參數(shù)作用
-a 改變檔案的讀取時(shí)間記錄
-m 改變檔案的修改時(shí)間記錄
-r 使用參考檔的時(shí)間記錄,與 --file 的效果一樣
-c 不創(chuàng)建新文件
-d 設(shè)定時(shí)間與日期,可以使用各種不同的格式
-t 設(shè)定檔案的時(shí)間記錄,格式與 date 命令相同
–no-create 不創(chuàng)建新文件
–help 顯示幫助信息
–version 列出版本訊息

創(chuàng)建文件:

touch test.txt

修改時(shí)間詳細(xì)命令: Linux命令總結(jié)–touch命令

stat – 顯示文件的狀態(tài)信息

stat命令來自于英文單詞status的縮寫,其功能是用于顯示文件的狀態(tài)信息。Linux系統(tǒng)中每個(gè)文件都有三個(gè)“歷史時(shí)間”——最后訪問時(shí)間(ATIME)、最后修改時(shí)間(MTIME)、最后更改時(shí)間(CTIME),用戶可以使用stat命令查看到它們,進(jìn)而判別有沒有其他人修改過文件內(nèi)容。

*使用touch命令可以輕易修改文件的ATIME和MTIME,因此請勿單純以文件歷史時(shí)間作為判別系統(tǒng)有無被他人入侵的唯一標(biāo)準(zhǔn)。

**語法格式:**stat [參數(shù)] 文件名

參數(shù) 支持符號鏈接
缺省 列出文件基本狀態(tài)操作時(shí)間
-f 顯示文件系統(tǒng)的信息
-t 簡潔的方式輸出

cp – 復(fù)制文件或目錄

**語法格式:**cp [參數(shù)] (源文件) (目標(biāo)文件)

參數(shù) 參數(shù)作用
-f 若目標(biāo)文件已存在,則會(huì)直接覆蓋原文件
-i 若目標(biāo)文件已存在,則會(huì)詢問是否覆蓋
-p 保留源文件或目錄的所有屬性
-r 遞歸復(fù)制文件和目錄
-d 當(dāng)復(fù)制符號連接時(shí),把目標(biāo)文件或目錄也建立為符號連接,并指向與源文件或目錄連接的原始文件或目錄
-l 對源文件建立硬連接,而非復(fù)制文件
-s 對源文件建立符號連接,而非復(fù)制文件
-b 覆蓋已存在的文件目標(biāo)前將目標(biāo)文件備份
-v 詳細(xì)顯示cp命令執(zhí)行的操作過程
-a 等價(jià)于“pdr”選項(xiàng)

mv – 移動(dòng)或改名文件

這是一個(gè)高頻使用的文件管理命令,我們需要留意它與復(fù)制命令的區(qū)別。cp命令是用于文件的復(fù)制操作,文件個(gè)數(shù)是增加的,而mv則為剪切操作,也就是對文件進(jìn)行移動(dòng)(搬家)操作,文件位置發(fā)生變化,但總個(gè)數(shù)并無增加。

同一個(gè)目錄內(nèi)對文件進(jìn)行剪切的操作,實(shí)際應(yīng)理解成重命名操作

**語法格式:**mv [參數(shù)] 源文件 目標(biāo)文件

參數(shù) 參數(shù)作用
-i 若存在同名文件,則向用戶詢問是否覆蓋
-f 覆蓋已有文件時(shí),不進(jìn)行任何提示
-b 當(dāng)文件存在時(shí),覆蓋前為其創(chuàng)建一個(gè)備份
-u 當(dāng)源文件比目標(biāo)文件新,或者目標(biāo)文件不存在時(shí),才執(zhí)行移動(dòng)此操作

rm – 刪除文件或目錄

rm命令來自于英文單詞remove的縮寫,其功能是用于刪除文件或目錄,一次可以刪除多個(gè)文件,或遞歸刪除目錄及其內(nèi)的所有子文件。

rm也是一個(gè)很危險(xiǎn)的命令,使用的時(shí)候要特別當(dāng)心,尤其對于新手更要格外注意,如執(zhí)行rm -rf /命令則會(huì)清空系統(tǒng)中所有的文件,甚至無法恢復(fù)回來*。所以我們在執(zhí)行之前一定要再次確認(rèn)下在哪個(gè)目錄中,到底要?jiǎng)h除什么文件,考慮好后再敲擊回車,時(shí)刻保持清醒的頭腦。

**語法格式:**rm [參數(shù)] 文件

參數(shù) 參數(shù)作用
-f 強(qiáng)制刪除(不二次詢問)
-i 刪除前會(huì)詢問用戶是否操作
-r/R 遞歸刪除(刪除文件夾)
-v 顯示指令的詳細(xì)執(zhí)行過程

rm指令支持通配符


打印輸出命令

echo命令 – 輸出字符串或提取后的變量值

echo是用于在終端設(shè)備上輸出指定字符串變量提取后值的命令,能夠給用戶一些簡單的提醒信息,也可以將輸出的指定字符串內(nèi)容同管道符一起傳遞給后續(xù)命令作為標(biāo)準(zhǔn)輸入信息再來進(jìn)行二次處理,又或者同輸出重定向符一起操作,將信息直接寫入到文件中。

如需提取變量值,需在變量名稱前加入**$符號做提取,變量名稱一般均為大寫形式**。

語法格式: echo [參數(shù)] 字符串/變量

參數(shù)

  • -n 不加換行符。

  • -e 啟用對后續(xù)反斜杠轉(zhuǎn)義

  • -E 明確禁止反斜杠轉(zhuǎn)義。

轉(zhuǎn)義符 轉(zhuǎn)義符作用
\a 響鈴。
\b 退格。
\c 取消后續(xù)輸出。
\e 向右刪除一個(gè)字符。
\E 向右刪除一個(gè)字符。
\f 換頁。
\n 換行。
\r 回車。
\t 水平制表。
\v 垂直制表。
\ 反斜杠。
\0nnn 八進(jìn)制數(shù) nnn 所代表的 ASCII 碼字符。
\xHH 十六進(jìn)制 HH 對應(yīng)的8位字符。HH 可以是一到兩位。
\uHHHH 十六進(jìn)制 HHHH 對應(yīng)的 Unicode 字符。HHHH 一到四位。
\UHHHHHHHH 十六進(jìn)制 HHHHHHHH 對應(yīng)的 Unicode 字符。HHHHHHHH 一到八位。

實(shí)例代碼

# 打印test字符串
echo "Test" / echo Test
# 打印水平制表符
echo -e "\t"
# 打印\t
echo -E "\t"
# 使用pwd命令打印出當(dāng)前目錄, 此命令不受-E限制
echo `pwd` 

cat – 顯示文本文件全部內(nèi)容

cat命令來自于英文單詞concatenate的縮寫,其功能是用于查看文件內(nèi)容。在Linux系統(tǒng)中有很多用于查看文件內(nèi)容的命令,例如more、tail、head……等等,每個(gè)命令都有各自的特點(diǎn)。cat命令適合查看內(nèi)容較少的、純文本的文件。

對于內(nèi)容較多的文件,使用cat命令查看后會(huì)在屏幕上快速滾屏,用戶往往看不清所顯示的具體內(nèi)容,只好按Ctrl+c鍵中斷命令的執(zhí)行,所以對于大文件,干脆用more命令吧~

**語法格式:**cat [參數(shù)] 文件

參數(shù) 參數(shù)作用
-n 顯示行數(shù)(空行也編號)
-s 顯示行數(shù)(多個(gè)空行算一個(gè)編號)
-b 顯示行數(shù)(空行不編號)
-E 每行結(jié)束處顯示$符號
-T TAB字符顯示為 ^I符號
-v 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
-e 等價(jià)于”-vE”組合
-t 等價(jià)于”-vT”組合
-A 等價(jià)于 -vET組合

more – 分頁顯示文本文件內(nèi)容

more命令的功能是用于分頁顯示文本文件內(nèi)容。如果文本文件中的內(nèi)容較多較長,使用cat命令讀取后則很難看清,這時(shí)使用more命令進(jìn)行分頁查看就更加合適了,可以把文本內(nèi)容一頁一頁的顯示在終端界面上,用戶每按一次回車即向下一行每按一次空格即向下一頁,直至看完為止。

**語法格式:**more [參數(shù)] 文件

參數(shù) 參數(shù)作用
-num 指定每屏顯示的行數(shù)
-l more在通常情況下把 ^L 當(dāng)作特殊字符, 遇到這個(gè)字符就會(huì)暫停,-l選項(xiàng)可以阻止這種特性
-f 計(jì)算實(shí)際的行數(shù),而非自動(dòng)換行的行數(shù)
-p 清除屏幕再顯示文本文件的剩余內(nèi)容
-c 與-p相似,不滾屏,先顯示內(nèi)容清除舊內(nèi)容
-s 多個(gè)空行壓縮成一行顯示
-u 禁止下劃線
+/pattern 在每個(gè)文檔顯示前搜尋該字(pattern),然后從該字串之后開始顯示
+num 從第 num 行開始顯示

tail – 查看文件尾部內(nèi)容

tail命令的功能是用于查看文件尾部內(nèi)容,例如默認(rèn)會(huì)在終端界面上顯示出指定文件的末尾十行,如果指定了多個(gè)文件,則會(huì)在顯示的每個(gè)文件內(nèi)容前面加上文件名來加以區(qū)分。

高階玩法的-f參數(shù)作用是持續(xù)顯示文件的尾部最新內(nèi)容,類似于機(jī)場候機(jī)廳的大屏幕,總會(huì)把最新的消息展示給用戶,對閱讀日志文件尤為適合,而不需要手動(dòng)刷新。

**語法格式:**tail [參數(shù)] 文件

參數(shù) 參數(shù)作用
-c 輸出文件尾部的N(N為整數(shù))個(gè)字節(jié)內(nèi)容
-f 持續(xù)顯示文件最新追加的內(nèi)容
-F <N> 與選項(xiàng)“-follow=name”和“–retry”連用時(shí)功能相同
-n <N> 輸出文件的尾部N(N位數(shù)字)行內(nèi)容
–retry 即是在tail命令啟動(dòng)時(shí),文件不可訪問或者文件稍后變得不可訪問,都始終嘗試打開文件。
–pid=<進(jìn)程號> 與“-f”選項(xiàng)連用,當(dāng)指定的進(jìn)程號的進(jìn)程終止后,自動(dòng)退出tail命令

實(shí)例

tail file #(顯示文件file的最后10行)
tail -n +20 file #(顯示文件file的內(nèi)容,從第20行至文件末尾)
tail -c 10 file #(顯示文件file的最后10個(gè)字節(jié))

tail -25 mail.log # 顯示 mail.log 最后的 25 行
tail -f mail.log # 等同于--follow=descriptor,根據(jù)文件描述符進(jìn)行追蹤,當(dāng)文件改名或被刪除,追蹤停止
tail -F mail.log # 等同于--follow=name --retry,根據(jù)文件名進(jìn)行追蹤,并保持重試,即該文件被刪除或改名后,如果再次創(chuàng)建相同的文件名,會(huì)繼續(xù)追蹤

查找命令

grep – 文本搜索工具

grep來自于英文詞組“global search regular expression and print out the line”的縮寫,意思是用于全面搜索的正則表達(dá)式,并將結(jié)果輸出。人們通常會(huì)將grep命令與正則表達(dá)式搭配使用,參數(shù)作為搜索過程中的補(bǔ)充或?qū)敵鼋Y(jié)果的篩選,命令模式十分靈活。

與之容易混淆的是egrep命令和fgrep命令。如果把grep命令當(dāng)作是標(biāo)準(zhǔn)搜索命令,那么egrep則是擴(kuò)展搜索命令,等價(jià)于“grep -E”命令,支持?jǐn)U展的正則表達(dá)式。而fgrep則是快速搜索命令,等價(jià)于“grep -F”命令,不支持正則表達(dá)式,直接按照字符串內(nèi)容進(jìn)行匹配。

語法格式: grep *[參數(shù)] *文件

參數(shù) 參數(shù)作用
-i 忽略大小寫
-c 只輸出匹配行的數(shù)量
-l 只列出符合匹配的文件名,不列出具體的匹配行
-n 列出所有的匹配行,顯示行號
-h 查詢多文件時(shí)不顯示文件名
-s 不顯示不存在、沒有匹配文本的錯(cuò)誤信息
-v 顯示不包含匹配文本的所有行
-w 匹配整詞
-x 匹配整行
-r 遞歸搜索
-q 禁止輸出任何結(jié)果,已退出狀態(tài)表示搜索是否成功
-b 打印匹配行距文件頭部的偏移量,以字節(jié)為單位
-o 與-b結(jié)合使用,打印匹配的詞據(jù)文件頭部的偏移量,以字節(jié)為單位
-F 匹配固定字符串的內(nèi)容
-E 支持?jǐn)U展的正則表達(dá)式

grep完全支持管道符

wc – 統(tǒng)計(jì)文件的字節(jié)數(shù)、單詞數(shù)、行數(shù)

wc命令來自于英文詞組“Word count”的縮寫,其功能是用于統(tǒng)計(jì)文件的字節(jié)數(shù)、單詞數(shù)、行數(shù)等信息,并將統(tǒng)計(jì)結(jié)果輸出到終端界面。利用wc命令可以很快的計(jì)算出準(zhǔn)確的單詞數(shù)及行數(shù),評估出文本的內(nèi)容長度,要想了解一個(gè)文件,不妨先wc一下吧~

**語法格式:**wc [參數(shù)] *文件

參數(shù) 參數(shù)作用
-w 統(tǒng)計(jì)單詞數(shù)
-c 統(tǒng)計(jì)字節(jié)數(shù)
-l 統(tǒng)計(jì)行數(shù)
-m 統(tǒng)計(jì)字符數(shù)
-L 顯示最長行的長度

實(shí)例

xianlin@xianlin-ubuntu:~/test$ wc test.txt
 23  30 172 test.txt
 行數(shù) 單詞數(shù) 字節(jié)數(shù) 文件名 

which – 查找命令文件

which命令的功能是用于查找命令文件,能夠快速搜索二進(jìn)制程序所對應(yīng)的位置。如果我們既不關(guān)心同名文件(find與locate),也不關(guān)心命令所對應(yīng)的源代碼和幫助文件(whereis),僅僅是想找到命令本身所在的路徑,那么這個(gè)which命令就太合適了。

參考實(shí)例

#查找某個(gè)指定命令文件所在位置
which reboot
# 結(jié)果
/usr/sbin/reboot
#查找多個(gè)指定命令文件所在位置
which shutdown poweroff
# 結(jié)果
/usr/sbin/shutdown
/usr/sbin/poweroff

find – 根據(jù)路徑和條件搜索指定文件

find命令的功能是根據(jù)給定的路徑和條件查找相關(guān)文件或目錄,可以使用的參數(shù)很多,并且支持正則表達(dá)式,結(jié)合管道符后能夠?qū)崿F(xiàn)更加復(fù)雜的功能,是系統(tǒng)管理員和普通用戶日常工作必須掌握的命令之一。

find命令通常進(jìn)行的是從根目錄(/)開始的全盤搜索,有別于whereis、which、locate……等等的有條件或部分文件的搜索。對于服務(wù)器負(fù)載較高的情況,建議不要在高峰時(shí)期使用find命令的模糊搜索,會(huì)相對消耗較多的系統(tǒng)資源。

語法格式:find [路徑] [參數(shù)]

常用參數(shù)

參數(shù) 參數(shù)作用
-name 匹配名稱
-perm 匹配權(quán)限(mode為完全匹配,-mode為包含即可)
-user 匹配所有者
-group 匹配所有組
-mtime -n +n 匹配修改內(nèi)容的時(shí)間(-n指n天以內(nèi),+n指n天以前)
-atime -n +n 匹配訪問文件的時(shí)間(-n指n天以內(nèi),+n指n天以前)
-ctime -n +n 匹配修改文件權(quán)限的時(shí)間(-n指n天以內(nèi),+n指n天以前)
-nouser 匹配無所有者的文件
-nogroup 匹配無所有組的文件
-newer f1 !f2 匹配比文件f1新但比f2舊的文件
-type b/d/c/p/l/f 匹配文件類型(后面的字幕字母依次表示塊設(shè)備、目錄、字符設(shè)備、管道、鏈接文件、文本文件)
-size 匹配文件的大小(+50KB為查找超過50KB的文件,而-50KB為查找小于50KB的文件)
-prune 忽略某個(gè)目錄
-exec …… {}; 后面可跟用于進(jìn)一步處理搜索結(jié)果的命令

參考實(shí)例

# 全盤搜索系統(tǒng)中所有以.conf結(jié)尾的文件
find / -name *.conf
/run/tmpfiles.d/kmod.conf
/etc/resolv.conf
/etc/dnf/dnf.conf
/etc/dnf/plugins/copr.conf
/etc/dnf/plugins/debuginfo-install.conf
/etc/dnf/plugins/product-id.conf
/etc/dnf/plugins/subscription-manager.conf
………………省略部分輸出信息………………
#在/etc目錄中搜索所有大于1M大小的文件
find /etc -size +1M
/etc/selinux/targeted/policy/policy.31
/etc/udev/hwdb.bin
#在/etc目錄中搜索所有小于1M大小的文件
find /etc -size -1M
#在/home目錄中搜索所有屬于指定用戶的文件
find /home -user xianlin
/home/xianlin
/home/xianlin/info.txt

用戶及權(quán)限管理

Linux中的三種用戶

  • 管理用戶:即root,由系統(tǒng)自動(dòng)創(chuàng)建,具有Linux所有權(quán)限

    • UID為0,具有一切權(quán)限,可以操作系統(tǒng)中的所有資源。
  • 一般用戶:即我們自己創(chuàng)建的用戶,無法修改配置文件

    • UID 從 1000開始, 是由管理員創(chuàng)建的用于日常工作的用戶,能夠使用Linux的大部分資源,一些特定的權(quán)限受到控制。用戶只對自己的目錄有寫權(quán)限,讀寫權(quán)限受一定的限制,有效保證了系統(tǒng)安全性。
  • 系統(tǒng)用戶:用于apache、郵件、打印服務(wù)等系統(tǒng)服務(wù)

    • UID 為 1~999, Linux系統(tǒng)為了避免因某個(gè)服務(wù)程序出現(xiàn)漏洞而被黑客提權(quán)至整臺服務(wù)器,默認(rèn)服務(wù)程序會(huì)有獨(dú)立的系統(tǒng)用戶負(fù)責(zé)運(yùn)行,進(jìn)而有效控制被破壞圍。

一般我們使用LINUX時(shí),使用普通用戶進(jìn)行登錄查看,需要修改Linux,切換成root用戶或者使用root權(quán)限。

su – 切換用戶身份

su命令來自于英文單詞“switch user”的縮寫,其功能是用于切換用戶身份。管理員切換至任意用戶身份而無需密碼驗(yàn)證,而普通用戶切換至任意用戶身份均需密碼驗(yàn)證。另外添加單個(gè)減號(-)參數(shù)為完全的身份變更,不保留任何之前用戶的環(huán)境變量信息。

語法格式: su [參數(shù)] 用戶名

參數(shù) 參數(shù)作用
單個(gè)減號(-) 完全身份變更(加載切換用戶的環(huán)境變量)
-c 執(zhí)行完指定的指令后,即恢復(fù)原來的身份
-f 適用于csh與tsch,使shell不用去讀取啟動(dòng)文件
-l 改變身份時(shí),也同時(shí)變更工作目錄
-m 變更身份時(shí),不要變更環(huán)境變量
-s 指定要執(zhí)行的shell

實(shí)例

# 切換到指定用戶, 并且使用被指定用戶的環(huán)境變量
su - xianlin

# 切換到xianlin用戶的工作目錄中執(zhí)行指定命令后即刻返回到切換前用戶
root$ su -l -c ls xianlin
公共的  視頻  文檔  音樂  docker        package       snap
模板    圖片  下載  桌面  IdeaProjects  sharedFolder  test
root$

# 從普通用戶切換到root用戶(因?yàn)橐袚Q到root, 需要使用sudo獲取權(quán)限)
xianlin$ sudo su -
root$

sudo - 以其他身份來執(zhí)行命令

sudo命令 用來以其他身份來執(zhí)行命令,預(yù)設(shè)的身份為root。在/etc/sudoers中設(shè)置了可執(zhí)行sudo指令的用戶。若其未經(jīng)授權(quán)的用戶企圖使用sudo,則會(huì)發(fā)出警告的郵件給管理員。用戶使用sudo時(shí),必須先輸入密碼,之后有5分鐘的有效期限,超過期限則必須重新輸入密碼。

使用sudo服務(wù)可以授權(quán)某個(gè)指定的用戶去執(zhí)行某些指定的命令,在滿足工作需求的前提下盡可能少的放權(quán),保證服務(wù)器的安全。配置sudo服務(wù)可以直接編輯配置文件/etc/sudoers,亦可以執(zhí)行visudo命令進(jìn)行設(shè)置,一切妥當(dāng)后普通用戶便能夠使用sudo命令進(jìn)行操作了。

**語法格式:**sudo [參數(shù)] 命令

參數(shù) 參數(shù)作用
-v 延長密碼有效期限5分鐘
-k 結(jié)束密碼的有效期限,也就是下次再執(zhí)行sudo時(shí)便需要輸入密碼
-l 列出目前用戶可執(zhí)行無法執(zhí)行的指令
-b 將要執(zhí)行的指令放在后臺執(zhí)行
-E 繼承當(dāng)前環(huán)境變量
-H HOME環(huán)境變量設(shè)為新身份的HOME環(huán)境變量
-p 更改需要密碼驗(yàn)證時(shí)的提示語
-s 指定默認(rèn)調(diào)用的SHELL解釋器

實(shí)例

# 切換到root用戶及環(huán)境
xianlin$ sudo -i
# 完全切換到root環(huán)境, 與sudo -i基本無異, 只是會(huì)重新加載配置文件
xianlin$ sudo su -

用戶組管理

每個(gè)用戶都有一個(gè)用戶組,系統(tǒng)可以對一個(gè)用戶組中的所有用戶進(jìn)行集中管理。不同Linux 系統(tǒng)對用戶組的規(guī)定有所不同,如Linux下的用戶默認(rèn)屬于與它同名的用戶組,這個(gè)用戶組在創(chuàng)建用戶時(shí)同時(shí)創(chuàng)建。(如果在創(chuàng)建用戶時(shí),使用 -g 選項(xiàng)設(shè)定主組了,那以選項(xiàng)設(shè)定為主)

用戶組的管理涉及用戶組的添加、刪除和修改。組的增加、刪除和修改實(shí)際上就是對/etc/group文件的更新

查看當(dāng)前系統(tǒng)中的群組getent group

groupadd – 創(chuàng)建新的用戶組

**語法格式:**groupadd [參數(shù)] 用戶組

參數(shù) 參數(shù)作用
-g 指定新建工作組的id
-r 創(chuàng)建系統(tǒng)工作組
-K 覆蓋配置文件“/ect/login.defs”
-o 允許添加組ID號不唯一的工作組

實(shí)例

# 創(chuàng)建一個(gè)新的用戶組
groupadd xianlinGroup
# 創(chuàng)建一個(gè)新的用戶組,并指定GID號碼
groupadd -g 6688 xianlinGroup
# 創(chuàng)建一個(gè)新的用戶組,設(shè)定為系統(tǒng)工作組
groupadd -r xianlinSysGroup
groupdel – 刪除用戶組

groupdel命令用于刪除指定的工作組,本命令要修改的系統(tǒng)文件包括/ect/group和/ect/gshadow。

userdel修改系統(tǒng)賬戶文件,刪除與 GROUP 相關(guān)的所有項(xiàng)目。給出的組名必須存在。若該群組中仍包括某些用戶,則必須先刪除這些用戶后,方能刪除群組。

# 使用groupdel命令刪除xianlinWork工作組
groupdel xianlinWork
# 查看xianlinWork組是否刪除成功, 如果沒有信息就是刪除成功
more /etc/group|grep xianlinWork
groupmod – 更改群組識別碼或名稱

groupmod命令用于更改群組的識別碼或名稱時(shí)。不過大家還是要注意,用戶名不要隨意修改,組名和 GID 也不要隨意修改,因?yàn)榉浅H菀讓?dǎo)致管理員邏輯混亂。如果非要修改用戶名或組名,則建議大家先刪除舊的,再建立新的。

# 更改xianlinmod用戶組為root用戶組
groupmod -n root xianlinmod
# 更改xianlin用戶組的群組識別碼為391314
groupmod - g 391316 xianlin
chgrp - 變更文件或目錄的所屬群組

chgrp命令 用來改變文件或目錄所屬的用戶組。該命令用來改變指定文件所屬的用戶組。其中,組名可以是用戶組的id,也可以是用戶組的組名。文件名可以 是由空格分開的要改變屬組的文件列表,也可以是由通配符描述的文件集合。如果用戶不是該文件的文件主或超級用戶(root),則不能改變該文件的組。

在UNIX系統(tǒng)家族里,文件或目錄權(quán)限的掌控以擁有者及所屬群組來管理。您可以使用chgrp指令去變更文件與目錄的所屬群組,設(shè)置方式采用群組名稱或群組識別碼皆可。

語法格式: chgrp [參數(shù)] [目錄]

參數(shù) 參數(shù)作用
-v 顯示指令執(zhí)行過程
-c 效果類似”-v”參數(shù),但僅回報(bào)更改的部分
-f 不顯示錯(cuò)誤信息
-h 對符號連接的文件作修改,而不更動(dòng)其他任何相關(guān)文件
-R 遞歸處理,將指定目錄下的所有文件及子目錄一并處理
–reference 把指定文件或目錄的所屬群組全部設(shè)成和參考文件或目錄的所屬群組相同

實(shí)例

# 將test目錄改為xianlin用戶組所屬, 并顯示命令執(zhí)行過程
chgrp -v xianlin test
# 將cool目錄下所有文件及子目錄全部改為xianlin用戶組
chgrp -R xianlin cool

用戶管理

Linux 中,用戶保存在 /etc/passwd 中,用戶密碼保存在 /etc/shadow 中,用戶組保存在 /etc/group 中。

列出當(dāng)前現(xiàn)有用戶命令

cat /etc/passwd | cut -d : -f 1

useradd - 創(chuàng)建的新的系統(tǒng)用戶

useradd命令 用于Linux中創(chuàng)建的新的系統(tǒng)用戶。useradd可用來建立用戶帳號。帳號建好之后,再用passwd設(shè)定帳號的密碼.而可用userdel刪除帳號。使用useradd指令所建立的帳號,實(shí)際上是保存在**/etc/passwd**文本文件中。

用戶文件

/etc/passwd # 用戶帳戶信息。
/etc/shadow # 保護(hù)用戶帳戶信息。
/etc/group  # 組帳戶信息。
/etc/gshadow # 保護(hù)組帳戶信息。
/etc/default/useradd # 帳戶創(chuàng)建的默認(rèn)值。
/etc/skel/                                 # 包含默認(rèn)文件的目錄。
/etc/login.defs # 影子密碼套件配置。

注意事項(xiàng)

  • useradd創(chuàng)建用戶時(shí), 默認(rèn)會(huì)創(chuàng)建一個(gè)同名用戶組, 并把用戶添加進(jìn)去; 可使用-g指定用戶組
  • useradd創(chuàng)建用戶時(shí), 默認(rèn)會(huì)在HOME目錄下創(chuàng)建一個(gè)同名文件夾做用戶HOME路徑; 可使用-d指定HOME路徑

**語法格式:**useradd [參數(shù)] 用戶名

參數(shù) 參數(shù)作用
-D 改變新建用戶的預(yù)設(shè)值
-c 添加備注文字
-d 新用戶每次登陸時(shí)所使用的家目錄
-e 用戶終止日期,日期的格式為YYYY-MM-DD
-f 用戶過期幾日后永久停權(quán)。當(dāng)值為0時(shí)用戶立即被停權(quán),而值為-1時(shí)則關(guān)閉此功能,預(yù)設(shè)值為-1
-g 指定用戶對應(yīng)的用戶組
-G 定義此用戶為多個(gè)不同組的成員
-m 用戶目錄不存在時(shí)則自動(dòng)創(chuàng)建
-M 不建立用戶家目錄,優(yōu)先于/etc/login.defs文件設(shè)定; 這樣用戶就無法登陸系統(tǒng)了
-n 取消建立以用戶名稱為名的群組
-r 建立系統(tǒng)帳號
-u 指定用戶id

實(shí)例

# 創(chuàng)建指定的用戶信息, 并自動(dòng)創(chuàng)建添加進(jìn)同名用戶組
useradd xianlin
# 創(chuàng)建指定的用戶信息,并自定義UID值
useradd -u 3966 xianlin
# 創(chuàng)建指定的用戶信息,并追加指定組為該賬戶的擴(kuò)展組, 及包括自己組的多個(gè)組
useradd -G xianlinWork xianlin
# 創(chuàng)建指定的用戶信息,并指定過期時(shí)間
useradd -e "2023/01/01" xianlin
# 創(chuàng)建指定的用戶信息, 并設(shè)置注釋信息
useradd -c "Y_xianlin" xianlin
userdel - 刪除的用戶以及與相關(guān)的文件

userdel命令 用于刪除給定的用戶,以及與用戶相關(guān)的文件。若不加選項(xiàng),則僅刪除用戶帳號,而不刪除相關(guān)文件。

# 刪除用戶但不刪除用戶數(shù)據(jù)
userdel xianlin
# 刪除用戶并刪除用戶數(shù)據(jù), 即刪除HOME目錄
userdel -r xianlin
# 強(qiáng)制刪除用戶
userdel -f xianlin
id - 查詢用戶和所在組的信息

語法格式:id [參數(shù)] 用戶名

實(shí)例

# 查詢當(dāng)前用戶id及組名id
id
# 查詢xianlin用戶id及組名id
id xianlin
# 查詢組id/組名
id -g / id -gn
# 查詢?nèi)拷Mid/組名
id -G / id - Gn
# 查詢有效的用戶id/用戶名
id -u / id -un
usermod – 修改用戶賬號信息

usermod命令 用于修改用戶的基本信息。usermod 命令不允許你改變正在線上的使用者帳號名稱。當(dāng) usermod 命令用來改變user id,必須確認(rèn)這名user沒在電腦上執(zhí)行任何程序。你需手動(dòng)更改使用者的 crontab 檔。也需手動(dòng)更改使用者的 at 工作檔。采用 NIS server 須在server上更動(dòng)相關(guān)的NIS設(shè)定。

**語法格式:**usermod [參數(shù)] 用戶名

參數(shù) 參數(shù)作用
-c<備注> 修改用戶賬號的備注文字
-d<登入目錄> 修改用戶登入時(shí)的HOME目錄
-m<移動(dòng)用戶HOME目錄> 移動(dòng)用戶家目錄到新的位置,不能單獨(dú)使用, 一般與**-d一起使用**
-e<有效期限> 修改賬號的有效期限
-f<緩沖天數(shù)> 修改在密碼過期后多少天即關(guān)閉該賬號
-g<群組> 修改用戶所屬的群組
-G<群組> 修改用戶所屬的附加群組
-l<賬號名稱> 修改用戶賬號名稱
-L 鎖定用戶密碼,使密碼無效
-s 修改用戶登入后所使用的shell
-u 修改用戶ID
-U 解除密碼鎖定

實(shí)例

# 移動(dòng)指定用戶的家目錄路徑, 并修改登錄時(shí)目錄
usermod -md /data/xianlinHome xianlin
# 修改指定用戶的UID號碼
usermod -u 6688 xianlin
# 修改指定用戶的名稱為xianlinNew
usermod -l xianlin xianlinNew
# 鎖定賬號newuser1
usermod -L xianlin
# 解除對newuser1的鎖定
usermod -U xianlin
passwd - 修改用戶的密碼值

passwd命令 用于設(shè)置用戶的認(rèn)證信息,包括用戶密碼、密碼過期時(shí)間等。系統(tǒng)管理者則能用它管理系統(tǒng)用戶的密碼。只有管理者可以指定用戶名稱,一般用戶只能變更自己的密碼。

**常用格式:**passwd [參數(shù)] 用戶名

參數(shù) 參數(shù)作用
-d 刪除已有密碼
-l 鎖定用戶的密碼值,不允許修改
-u 解鎖用戶的密碼值,允許修改
-f 強(qiáng)制執(zhí)行
-e 下次登陸強(qiáng)制修改密碼
-k 用戶在期滿后能仍能使用
-S 查詢密碼狀態(tài)

實(shí)例

# 修改當(dāng)前用戶密碼
xianlin$ passwd
	Changing password for user xianlin.
	New password: <輸入密碼>
	Retype new password: <再次輸入密碼>
	passwd: all authentication tokens updated successfully.
---
# 修改指定用戶的密碼值:
root$ passwd xianlin
	Changing password for user xianlin.
	New password: <輸入密碼>
	Retype new password: <再次輸入密碼>
	passwd: all authentication tokens updated successfully.
---
# 鎖定指定用戶的密碼值, 不允許其進(jìn)行修改
root$ passwd -l xianlin
	Locking password for user xianlin.
	passwd: Success

權(quán)限管理

權(quán)限介紹 | ls-l目錄權(quán)限信息圖片介紹

1, 表示drwx權(quán)限信息; 2, 表示此文件/目錄的所有者; 3, 表示此文件/目錄的所屬組;

drwx權(quán)限介紹

ls -l中的drwx權(quán)限信息, 一共0~9十位

  • 0位, 文件類型, 一般表示文件或目錄
    • d, 表示文件目錄
    • -, 表示文件
    • l, 表示軟鏈接
  • 1~3位, 表示所有者的權(quán)限
  • 4~6位, 表示同用戶組內(nèi)擁有的權(quán)限
  • 7~9位, 表示其他用戶擁有的權(quán)限

rwx權(quán)限詳解

  • rwx對應(yīng)文件的權(quán)限
    • r - 代表可讀, 可以讀取查看
    • w - 代表可寫, 可以修改, 但是不能刪除
    • x - 代表可執(zhí)行
    • - - 表示無此權(quán)限
  • rwx對應(yīng)目錄的權(quán)限
    • r - 代表可讀, 可以讀取, 即可用ls查看目錄內(nèi)容
    • w - 代表可寫, 可以修改, 可在目錄內(nèi)創(chuàng)建, 刪除, 重命名
    • x - 代表可執(zhí)行, 可以進(jìn)入該目錄
    • - - 表示無此權(quán)限
文件類型 所有者權(quán)限 用戶組內(nèi)用戶權(quán)限 其他用戶權(quán)限
0 1 2 3 4 5 6 7 8 9
d r w x r - x r w -
表示目錄 讀 寫 執(zhí)行 讀 不可寫 可執(zhí)行 可讀 可寫 不可執(zhí)行

權(quán)限更改 | chmod - 更改文件或目錄的權(quán)限

設(shè)置權(quán)限時(shí)可以使用數(shù)字法,亦可使用字母表達(dá)式,對于目錄文件建議加入-R參數(shù)進(jìn)行遞歸操作,意味著不僅對于目錄本身,也對目錄內(nèi)的子文件/目錄都進(jìn)行新權(quán)限的設(shè)定。

主要用途及方法參數(shù)介紹

  • 通過八進(jìn)制數(shù)的方式更改目標(biāo)文件或目錄的權(quán)限。
    • 0: - - -
    • 1: - - x
    • 2: - w -
    • 3: - w x
    • 4: r - -
    • 5: r - x
    • 6: r w -
    • 7: r w x
    • r = 4, w = 2, x = 1 無權(quán)限=0;權(quán)限和加起來就可表達(dá)權(quán)限
    • 750; 表示所有者擁有全部權(quán)限, 組內(nèi)擁有讀, 執(zhí)行; 其他用戶沒有權(quán)限
  • 通過參考文件的權(quán)限來更改目標(biāo)文件或目錄的權(quán)限。
  • 通過符號組合的方式更改目標(biāo)文件或目錄的權(quán)限。
    • u符號代表當(dāng)前用戶。
    • g符號代表和當(dāng)前用戶在同一個(gè)組的用戶,以下簡稱組用戶。
    • o符號代表其他用戶。
    • a符號代表所有用戶。
    • r符號代表讀權(quán)限以及八進(jìn)制數(shù)4。
    • w符號代表寫權(quán)限以及八進(jìn)制數(shù)2。
    • x符號代表執(zhí)行權(quán)限以及八進(jìn)制數(shù)1。
    • X符號代表如果目標(biāo)文件是可執(zhí)行文件或目錄,可給其設(shè)置可執(zhí)行權(quán)限。
    • s符號代表設(shè)置權(quán)限suid和sgid,使用權(quán)限組合u+s設(shè)定文件的用戶的ID位,g+s設(shè)置組用戶ID位。
    • t符號代表只有目錄或文件的所有者才可以刪除目錄下的文件。
    • +符號代表添加目標(biāo)用戶相應(yīng)的權(quán)限。
    • -符號代表刪除目標(biāo)用戶相應(yīng)的權(quán)限。
    • =符號代表添加目標(biāo)用戶相應(yīng)的權(quán)限,刪除未提到的權(quán)限。

語法格式: chmod 參數(shù) 文件

參數(shù) 參數(shù)作用
-c 當(dāng)文件的權(quán)限更改時(shí)輸出操作信息
-f 屏蔽錯(cuò)誤信息
-v 顯示所有操作信息
-R 對目前目錄下的所有文件與子目錄進(jìn)行相同的權(quán)限變更(即以遞回的方式逐個(gè)變更)

實(shí)例

# 設(shè)定某個(gè)文件的權(quán)限為755, 則表示, 所有者擁有全部權(quán)限, 組內(nèi)和其他用戶有讀取和執(zhí)行權(quán)限
chmod 755 xianlin.cfg
# 設(shè)定某個(gè)文件讓任何人都可以讀取
chmod a+r xianlin.txt
# 設(shè)置某個(gè)目錄及其目錄下 所有的文件及子目錄 都可以被任何人 寫入和 讀取 但是不可執(zhí)行
chmod -R a=rw xianlin.txt
# 刪除其他用戶的所有權(quán)限
chomod o= xianlin.txt
更改所屬 | chown – 改變文件或目錄的用戶和用戶組
  • 用戶屬于[目錄權(quán)限信息圖片介紹](#權(quán)限介紹 | ls-l目錄權(quán)限信息圖片介紹)中的2, 用戶組屬于3

chown命令 改變某個(gè)文件或目錄的所有者和所屬的組,該命令可以向某個(gè)用戶授權(quán),使該用戶變成指定文件的所有者或者改變文件所屬的組。用戶可以是用戶或者是用戶ID,用戶組可以是組名或組id。文件名可以使由空格分開的文件列表,在文件名中可以包含通配符。

只有文件所有者和超級用戶才可以便用該命令。實(shí)際上只有root超級管理員才能更改為其他用戶;

**語法格式:**chown [參數(shù)] 所屬主:所屬組 文件

參數(shù) 參數(shù)作用
-R 對目前目錄下的所有文件與目錄進(jìn)行相同的變更
-c 顯示所屬信息變更信息
-f 若該文件擁有者無法被更改也不要顯示錯(cuò)誤
-h 只對于鏈接文件進(jìn)行變更,而非真正指向的文件
-v 顯示擁有者變更的詳細(xì)資料

實(shí)例

# 將xianlin.txt所屬用戶修改為root
chown root xianlin.txt
# 將xianlin.txt所屬用戶組修改為root
chown :root xianlin.txt
# 將xianlin.txt所屬用戶改成root, 用戶組改為xianlin
chown root:xianlin xianlin.txt
# 將qanxun目錄及目錄內(nèi)所有文件及子目錄的所屬用戶修改成xianlin
chown -R xianlin qanxun

綜合知識

vi - 純文本編輯器

vi命令 是UNIX操作系統(tǒng)和類UNIX操作系統(tǒng)中最通用的全屏幕純文本編輯器。Linux中的vi編輯器叫vim,它是vi的增強(qiáng)版(vi Improved),與vi編輯器完全兼容,而且實(shí)現(xiàn)了很多增強(qiáng)功能。

vi編輯器支持編輯模式命令模式,編輯模式下可以完成文本的編輯功能,命令模式下可以完成對文件的操作命令,要正確使用vi編輯器就必須熟練掌握著兩種模式的切換。默認(rèn)情況下,打開vi編輯器后自動(dòng)進(jìn)入命令模式。從編輯模式切換到命令模式使用**“esc”鍵**,從命令模式切換到編輯模式使用“A”、“a”、“O”、“o”、“I”、“i”鍵。

**語法格式:**vi [參數(shù)] 文件
參數(shù) 參數(shù)作用
-s 靜默模式, 不顯示指令的任何錯(cuò)誤信息
– -cmd<命令> 加載任何vimrc文件之前執(zhí)行指定命令
-R 只讀模式
-v Vi模式
-e Ex模式
-y 簡易模式
-c<命令> 加載第一個(gè)文件之后執(zhí)行指定命令
-s<腳本輸入文件> 從指定腳本輸入文件閱讀普通模式命令
-w<腳本輸出文件> 追加所有類型的命令寫入腳本輸出文件
-W<腳本輸出文件> 寫入所有類型的命令到指定腳本輸出文件
+<行數(shù)> 從指定行開始
– -noplugin 不要加載插件腳本
-p<數(shù)量> 打開指定數(shù)量的標(biāo)簽頁(帶文件名)
-r<文件名> 恢復(fù)崩潰的會(huì)話
-L 等同于-r
-r 列出交換文件并退出
-u 熟用指定vimrc,而不是.vimrc
-T<終端> 設(shè)置使用指定終端
-o<數(shù)量> 打開指定數(shù)量的窗口
-n 不使用交換文件,只用內(nèi)存
-Z 受限模式
-m 不允許修改(寫入)
-b 二進(jìn)制模式
-M 在文本中不允許修改

實(shí)例

# 打開已有文件后編輯
vi test.txt
# 先編輯后保存到新建文件, 如果已存在需要:wq!強(qiáng)制覆蓋
vi
~~~
:wq test.txt
# 打開某個(gè)已存在的文件,從第6行開始編寫
vi +6 xianlin.txt
# 打開某個(gè)已存在的文件,以只讀模式進(jìn)入
vi +R xianlin.txt

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-jy8ts3iq-1668670501383)(data:image/png;base64,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)]

命令模式

直接用命令(vi 文件名)打開一個(gè)文件的話,默認(rèn)是在命令模式下。

vi xianlin.txt
---
~
~
~
"xianlin.txt" 行數(shù), 大小

命令模式下常用命令

Ctrl+u # 向文件首翻半屏;
Ctrl+d #向文件尾翻半屏;
Ctrl+f / PgUp #向文件尾翻一屏;
Ctrl+b / PgDn #向文件首翻一屏;
k # 向上移動(dòng)光標(biāo)
j # 向下移動(dòng)光標(biāo)
h # 向左移動(dòng)光標(biāo)
l # 向右移動(dòng)光標(biāo)
gg # 光標(biāo)跳轉(zhuǎn)到文本第一行
G # 光標(biāo)跳轉(zhuǎn)到文本最后一行
Shift+^ (Shift+6) # 把光標(biāo)跳轉(zhuǎn)到所在行首
Shift+$ (Shift+4) # 把光標(biāo)跳轉(zhuǎn)到所在行尾
ZZ # 保存文件并退出, 可以打開大寫鎖定或者按住shift
x / X # 刪除一個(gè)字符, x小寫刪除光標(biāo)后, X大寫刪除光標(biāo)前
D # 刪除從當(dāng)前光標(biāo)到行尾的字符
dd # 刪除光標(biāo)所在的當(dāng)前行
p / P # 粘貼緩存區(qū)內(nèi)容, p小寫為粘貼到光標(biāo)前, P大寫為粘貼到光標(biāo)后
r / R # 替換字符, r小寫為只替換一個(gè)字符, R大寫為一直替換輸入
u # 撤銷上一步操作

# 進(jìn)入插入模式
a #在當(dāng)前字符后添加文本
A #在行末添加文本
i #在當(dāng)前字符前插入文本
I #在行首插入文本
o #在當(dāng)前行后面插入一空行
O #在當(dāng)前行前面插入一空行
插入模式

在命令模式下輸入a、A、i、I、o、O中任何一個(gè)字符即可進(jìn)入插入模式,在此模式下才可以對文件進(jìn)行編輯,輸入內(nèi)容。在此模式下按 ESC鍵 退出到命令模式

底行模式

在命令模式下,通過輸入 :(英文冒號)即可切換到底行模式,底行模式下可以做一些保存,字符替換等操作,底行模式下命令以回車結(jié)束,退出或者返回命令模式,或者雙擊Esc返回命令模式。

底行模式常用命令

:set nu # 顯示行號
:set nonu # 關(guān)閉顯示行號
:q # 不保存退出
:wq #保存退出
:q! #強(qiáng)制退出
:wq! #強(qiáng)制保存退出
:/string # 查找字符串所在行, 并把光標(biāo)跳轉(zhuǎn)到所在行
:%s/old/new # 將全部old替換成new
:n # 定位到n行(n代指數(shù)字)
:$ # 將光標(biāo)跳轉(zhuǎn)到最后一行首
:f # 顯示當(dāng)前文件名, 是否已修改, 光標(biāo)所在行, 當(dāng)前顯示比例

重定向符號

重定向就是將標(biāo)準(zhǔn)輸出(本身也是一個(gè)文件/dev/stdout)導(dǎo)向一個(gè)文件或者追加到一個(gè)文件中。在linux中,使用>符號來表示導(dǎo)向到一個(gè)文件,使用>>符號來表示追加到一個(gè)文件。

符號 描述
> 符號左邊輸出作為右邊輸入(標(biāo)準(zhǔn)輸出)
>> 符號左邊輸出追加右邊輸入
< 符號右邊輸出作為左邊輸入(標(biāo)準(zhǔn)輸入)
<< 符號右邊輸出追加左邊輸入
& 重定向綁定符號

實(shí)例

# 覆蓋文件的內(nèi)容
echo "hello" > file.txt
# 追加到文件結(jié)尾并另起一行
echo "hi" >> file.txt

通配符

Linux命令中, 大部分命令支持通配符, 尤其是批量創(chuàng)建, 刪除操作中

命令行通配符

符號 含義
* 表示匹配任意長度的任意字符
? 表示匹配任意一個(gè)字符
[ ] 表示匹配[ test ]內(nèi)的任意單個(gè)字符
[^test] 表示匹配[ test ]外的任意單個(gè)字符

具體用法

test* , 表示任何以test為開頭的內(nèi)容
*test,表示任何以test結(jié)尾的內(nèi)容
*test*,表示任何包含test的內(nèi)容

[a-z],[0-9],[A-Z],[a-z0-9]

? [[:upper:]]-------------所有大寫字母

? [[:lower:]]-------------所有小寫字母

? [[:alpha:]]-------------所有字母

? [[:dight:]]--------------所有數(shù)字

? [[:alnum:]]------------所有字母和數(shù)字

? [[:space:]]------------所有空白字符

? [[:punct:]]-------------所有標(biāo)點(diǎn)符號

? [^[:upper:]]-----------所有大寫字母以外

? [^0-9]-----------------所有數(shù)字以外

? [^[:alnum:]]----------所有數(shù)字和字母以外

管道符

管道符:|

作用:管道是一種通信機(jī)制,通常用于進(jìn)程間的通信。它表現(xiàn)出來的形式將前面每一個(gè)進(jìn)程的輸出(stdout)直接作為下一個(gè)進(jìn)程的輸入(stdin)。

實(shí)例:

# 查找一個(gè)文件夾, 并以ls -l的格式打印出來
ls -l /usr/bin | grep xzm
# 結(jié)果
-rwxr-xr-x 1 root root        2162  48  2022 xzmore
# 查找一個(gè)文件夾下的文件數(shù)量
ls -l /usr/bin | wc -l
#結(jié)果
1495

文件及目錄操作命令

ls – 顯示目錄下的文件信息

語法格式: ls [參數(shù)] [文件]

參數(shù) 參數(shù)作用
-a 顯示所有文件及目錄 (包括以“.”開頭的隱藏文件)
-l 使用長格式列表模式列出文件及目錄的詳細(xì)信息
-r 將文件以相反次序顯示(默認(rèn)依英文字母次序)
-t 根據(jù)最后的修改時(shí)間排序
-h 需要和-選項(xiàng)搭配使用,以更加人性化的方式顯示文件的大小單位
-A 同 -a ,但不列出 “.” (當(dāng)前目錄) 及 “…” (父目錄)
-S 根據(jù)文件大小排序
-R 遞歸列出所有子目錄
-d 查看目錄的信息,而不是里面子文件的信息
-i 輸出文件的inode節(jié)點(diǎn)信息
-m 水平列出文件,以逗號間隔
-X 文件擴(kuò)展名排序
–color 輸出信息中帶有著色效果

cd – 切換目錄

cd命令來自于英文詞組”change directory“的縮寫,其功能是用于更改當(dāng)前所處的工作目錄,路徑可以是絕對路徑,也可以是相對路徑,若省略不寫則會(huì)跳轉(zhuǎn)至當(dāng)前使用者的家目錄。

**語法格式:**cd [參數(shù)] [目錄名]

參數(shù) 參數(shù)作用
缺省 如果直接使用cd , 則會(huì)直接回到home目錄
-P 如果切換的目標(biāo)目錄是一個(gè)符號鏈接,則直接切換到符號鏈接指向的目標(biāo)目錄
-L 如果切換的目標(biāo)目錄是一個(gè)符號鏈接,則直接切換到符號鏈接名所在的目錄
僅使用”-“選項(xiàng)時(shí),當(dāng)前目錄將被切換到環(huán)境變量”O(jiān)LDPWD”對應(yīng)值的目錄
~ 表示當(dāng)前用戶目錄
表示上一級目錄
. 表示當(dāng)前目錄

pwd – 顯示當(dāng)前工作目錄的路徑

pwd命令來自于英文詞組”print working directory“(打印工作目錄)的縮寫,其功能是用于顯示當(dāng)前工作目錄的路徑,即顯示所在位置的絕對路徑。

語法格式:pwd

實(shí)例查看當(dāng)前工作目錄路徑:

[root@linuxcool ~]# pwd 
/root

mkdir – 創(chuàng)建目錄文件

語法格式 : mkdir [參數(shù)] (目錄)

參數(shù) 參數(shù)作用
-p 遞歸創(chuàng)建多級目錄
-m 建立目錄的同時(shí)設(shè)置目錄的權(quán)限
-z 設(shè)置安全上下文
-v 顯示目錄的創(chuàng)建過程

touch – 創(chuàng)建空文件與修改時(shí)間戳

**語法格式:**touch [參數(shù)] 文件

參數(shù) 參數(shù)作用
-a 改變檔案的讀取時(shí)間記錄
-m 改變檔案的修改時(shí)間記錄
-r 使用參考檔的時(shí)間記錄,與 --file 的效果一樣
-c 不創(chuàng)建新文件
-d 設(shè)定時(shí)間與日期,可以使用各種不同的格式
-t 設(shè)定檔案的時(shí)間記錄,格式與 date 命令相同
–no-create 不創(chuàng)建新文件
–help 顯示幫助信息
–version 列出版本訊息

創(chuàng)建文件:

touch test.txt

修改時(shí)間詳細(xì)命令: Linux命令總結(jié)–touch命令

stat – 顯示文件的狀態(tài)信息

stat命令來自于英文單詞status的縮寫,其功能是用于顯示文件的狀態(tài)信息。Linux系統(tǒng)中每個(gè)文件都有三個(gè)“歷史時(shí)間”——最后訪問時(shí)間(ATIME)、最后修改時(shí)間(MTIME)、最后更改時(shí)間(CTIME),用戶可以使用stat命令查看到它們,進(jìn)而判別有沒有其他人修改過文件內(nèi)容。

*使用touch命令可以輕易修改文件的ATIME和MTIME,因此請勿單純以文件歷史時(shí)間作為判別系統(tǒng)有無被他人入侵的唯一標(biāo)準(zhǔn)。

**語法格式:**stat [參數(shù)] 文件名

參數(shù) 支持符號鏈接
缺省 列出文件基本狀態(tài)操作時(shí)間
-f 顯示文件系統(tǒng)的信息
-t 簡潔的方式輸出

cp – 復(fù)制文件或目錄

**語法格式:**cp [參數(shù)] (源文件) (目標(biāo)文件)

參數(shù) 參數(shù)作用
-f 若目標(biāo)文件已存在,則會(huì)直接覆蓋原文件
-i 若目標(biāo)文件已存在,則會(huì)詢問是否覆蓋
-p 保留源文件或目錄的所有屬性
-r 遞歸復(fù)制文件和目錄
-d 當(dāng)復(fù)制符號連接時(shí),把目標(biāo)文件或目錄也建立為符號連接,并指向與源文件或目錄連接的原始文件或目錄
-l 對源文件建立硬連接,而非復(fù)制文件
-s 對源文件建立符號連接,而非復(fù)制文件
-b 覆蓋已存在的文件目標(biāo)前將目標(biāo)文件備份
-v 詳細(xì)顯示cp命令執(zhí)行的操作過程
-a 等價(jià)于“pdr”選項(xiàng)

mv – 移動(dòng)或改名文件

這是一個(gè)高頻使用的文件管理命令,我們需要留意它與復(fù)制命令的區(qū)別。cp命令是用于文件的復(fù)制操作,文件個(gè)數(shù)是增加的,而mv則為剪切操作也就是對文件進(jìn)行移動(dòng)(搬家)操作,文件位置發(fā)生變化,但總個(gè)數(shù)并無增加。

同一個(gè)目錄內(nèi)對文件進(jìn)行剪切的操作,實(shí)際應(yīng)理解成重命名操作

**語法格式:**mv [參數(shù)] 源文件 目標(biāo)文件

參數(shù) 參數(shù)作用
-i 若存在同名文件,則向用戶詢問是否覆蓋
-f 覆蓋已有文件時(shí),不進(jìn)行任何提示
-b 當(dāng)文件存在時(shí),覆蓋前為其創(chuàng)建一個(gè)備份
-u 當(dāng)源文件比目標(biāo)文件新,或者目標(biāo)文件不存在時(shí),才執(zhí)行移動(dòng)此操作

rm – 刪除文件或目錄

rm命令來自于英文單詞remove的縮寫,其功能是用于刪除文件或目錄,一次可以刪除多個(gè)文件,或遞歸刪除目錄及其內(nèi)的所有子文件。

rm也是一個(gè)很危險(xiǎn)的命令,使用的時(shí)候要特別當(dāng)心,尤其對于新手更要格外注意,如執(zhí)行rm -rf /命令則會(huì)清空系統(tǒng)中所有的文件,甚至無法恢復(fù)回來*。所以我們在執(zhí)行之前一定要再次確認(rèn)下在哪個(gè)目錄中,到底要?jiǎng)h除什么文件,考慮好后再敲擊回車,時(shí)刻保持清醒的頭腦。

**語法格式:**rm [參數(shù)] 文件

參數(shù) 參數(shù)作用
-f 強(qiáng)制刪除(不二次詢問)
-i 刪除前會(huì)詢問用戶是否操作
-r/R 遞歸刪除(刪除文件夾)
-v 顯示指令的詳細(xì)執(zhí)行過程

rm指令支持通配符


打印輸出命令

echo命令 – 輸出字符串或提取后的變量值

echo是用于在終端設(shè)備上輸出指定字符串變量提取后值的命令,能夠給用戶一些簡單的提醒信息,也可以將輸出的指定字符串內(nèi)容同管道符一起傳遞給后續(xù)命令作為標(biāo)準(zhǔn)輸入信息再來進(jìn)行二次處理,又或者同輸出重定向符一起操作,將信息直接寫入到文件中。

如需提取變量值,需在變量名稱前加入**$符號做提取,變量名稱一般均為大寫形式**。

語法格式: echo [參數(shù)] 字符串/變量

參數(shù)

  • -n 不加換行符。

  • -e 啟用對后續(xù)反斜杠轉(zhuǎn)義。

  • -E 明確禁止反斜杠轉(zhuǎn)義

轉(zhuǎn)義符 轉(zhuǎn)義符作用
\a 響鈴。
\b 退格。
\c 取消后續(xù)輸出。
\e 向右刪除一個(gè)字符。
\E 向右刪除一個(gè)字符。
\f 換頁。
\n 換行。
\r 回車。
\t 水平制表。
\v 垂直制表。
\ 反斜杠。
\0nnn 八進(jìn)制數(shù) nnn 所代表的 ASCII 碼字符。
\xHH 十六進(jìn)制 HH 對應(yīng)的8位字符。HH 可以是一到兩位。
\uHHHH 十六進(jìn)制 HHHH 對應(yīng)的 Unicode 字符。HHHH 一到四位。
\UHHHHHHHH 十六進(jìn)制 HHHHHHHH 對應(yīng)的 Unicode 字符。HHHHHHHH 一到八位。

實(shí)例代碼

# 打印test字符串
echo "Test" / echo Test
# 打印水平制表符
echo -e "\t"
# 打印\t
echo -E "\t"
# 使用pwd命令打印出當(dāng)前目錄, 此命令不受-E限制
echo `pwd` 

cat – 顯示文本文件全部內(nèi)容

cat命令來自于英文單詞concatenate的縮寫,其功能是用于查看文件內(nèi)容。在Linux系統(tǒng)中有很多用于查看文件內(nèi)容的命令,例如more、tail、head……等等,每個(gè)命令都有各自的特點(diǎn)。cat命令適合查看內(nèi)容較少的、純文本的文件。

對于內(nèi)容較多的文件,使用cat命令查看后會(huì)在屏幕上快速滾屏,用戶往往看不清所顯示的具體內(nèi)容,只好按Ctrl+c鍵中斷命令的執(zhí)行,所以對于大文件,干脆用more命令吧~

**語法格式:**cat [參數(shù)] 文件

參數(shù) 參數(shù)作用
-n 顯示行數(shù)(空行也編號)
-s 顯示行數(shù)(多個(gè)空行算一個(gè)編號)
-b 顯示行數(shù)(空行不編號)
-E 每行結(jié)束處顯示$符號
-T TAB字符顯示為 ^I符號
-v 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
-e 等價(jià)于”-vE”組合
-t 等價(jià)于”-vT”組合
-A 等價(jià)于 -vET組合

more – 分頁顯示文本文件內(nèi)容

more命令的功能是用于分頁顯示文本文件內(nèi)容。如果文本文件中的內(nèi)容較多較長,使用cat命令讀取后則很難看清,這時(shí)使用more命令進(jìn)行分頁查看就更加合適了,可以把文本內(nèi)容一頁一頁的顯示在終端界面上,用戶每按一次回車即向下一行,每按一次空格即向下一頁,直至看完為止。

**語法格式:**more [參數(shù)] 文件

參數(shù) 參數(shù)作用
-num 指定每屏顯示的行數(shù)
-l more在通常情況下把 ^L 當(dāng)作特殊字符, 遇到這個(gè)字符就會(huì)暫停,-l選項(xiàng)可以阻止這種特性
-f 計(jì)算實(shí)際的行數(shù),而非自動(dòng)換行的行數(shù)
-p 清除屏幕再顯示文本文件的剩余內(nèi)容
-c 與-p相似,不滾屏先顯示內(nèi)容清除舊內(nèi)容
-s 多個(gè)空行壓縮成一行顯示
-u 禁止下劃線
+/pattern 在每個(gè)文檔顯示前搜尋該字(pattern),然后從該字串之后開始顯示
+num 從第 num 行開始顯示

tail – 查看文件尾部內(nèi)容

tail命令的功能是用于查看文件尾部內(nèi)容,例如默認(rèn)會(huì)在終端界面上顯示出指定文件的末尾十行,如果指定了多個(gè)文件,則會(huì)在顯示的每個(gè)文件內(nèi)容前面加上文件名來加以區(qū)分。

高階玩法的-f參數(shù)作用是持續(xù)顯示文件的尾部最新內(nèi)容,類似于機(jī)場候機(jī)廳的大屏幕,總會(huì)把最新的消息展示給用戶,對閱讀日志文件尤為適合,而不需要手動(dòng)刷新。

**語法格式:**tail [參數(shù)] 文件

參數(shù) 參數(shù)作用
-c 輸出文件尾部的N(N為整數(shù))個(gè)字節(jié)內(nèi)容
-f 持續(xù)顯示文件最新追加的內(nèi)容
-F <N> 與選項(xiàng)“-follow=name”和“–retry”連用時(shí)功能相同
-n <N> 輸出文件的尾部N(N位數(shù)字)行內(nèi)容
–retry 即是在tail命令啟動(dòng)時(shí),文件不可訪問或者文件稍后變得不可訪問,都始終嘗試打開文件。
–pid=<進(jìn)程號> 與“-f”選項(xiàng)連用,當(dāng)指定的進(jìn)程號的進(jìn)程終止后,自動(dòng)退出tail命令

實(shí)例

tail file #(顯示文件file的最后10行)
tail -n +20 file #(顯示文件file的內(nèi)容,從第20行至文件末尾)
tail -c 10 file #(顯示文件file的最后10個(gè)字節(jié))

tail -25 mail.log # 顯示 mail.log 最后的 25 行
tail -f mail.log # 等同于--follow=descriptor,根據(jù)文件描述符進(jìn)行追蹤,當(dāng)文件改名或被刪除,追蹤停止
tail -F mail.log # 等同于--follow=name --retry,根據(jù)文件名進(jìn)行追蹤,并保持重試,即該文件被刪除或改名后,如果再次創(chuàng)建相同的文件名,會(huì)繼續(xù)追蹤

查找命令

grep – 文本搜索工具

grep來自于英文詞組“global search regular expression and print out the line”的縮寫,意思是用于全面搜索的正則表達(dá)式,并將結(jié)果輸出。人們通常會(huì)將grep命令與正則表達(dá)式搭配使用,參數(shù)作為搜索過程中的補(bǔ)充或?qū)敵鼋Y(jié)果的篩選,命令模式十分靈活。

與之容易混淆的是egrep命令和fgrep命令。如果把grep命令當(dāng)作是標(biāo)準(zhǔn)搜索命令,那么egrep則是擴(kuò)展搜索命令,等價(jià)于“grep -E”命令,支持?jǐn)U展的正則表達(dá)式。而fgrep則是快速搜索命令,等價(jià)于“grep -F”命令,不支持正則表達(dá)式,直接按照字符串內(nèi)容進(jìn)行匹配。

語法格式: grep *[參數(shù)] *文件

參數(shù) 參數(shù)作用
-i 忽略大小寫
-c 只輸出匹配行的數(shù)量
-l 只列出符合匹配的文件名,不列出具體的匹配行
-n 列出所有的匹配行,顯示行號
-h 查詢多文件時(shí)不顯示文件名
-s 不顯示不存在、沒有匹配文本的錯(cuò)誤信息
-v 顯示不包含匹配文本的所有行
-w 匹配整詞
-x 匹配整行
-r 遞歸搜索
-q 禁止輸出任何結(jié)果,已退出狀態(tài)表示搜索是否成功
-b 打印匹配行距文件頭部的偏移量,以字節(jié)為單位
-o 與-b結(jié)合使用,打印匹配的詞據(jù)文件頭部的偏移量,以字節(jié)為單位
-F 匹配固定字符串的內(nèi)容
-E 支持?jǐn)U展的正則表達(dá)式

grep完全支持管道符

wc – 統(tǒng)計(jì)文件的字節(jié)數(shù)、單詞數(shù)、行數(shù)

wc命令來自于英文詞組“Word count”的縮寫,其功能是用于統(tǒng)計(jì)文件的字節(jié)數(shù)、單詞數(shù)、行數(shù)等信息,并將統(tǒng)計(jì)結(jié)果輸出到終端界面。利用wc命令可以很快的計(jì)算出準(zhǔn)確的單詞數(shù)及行數(shù),評估出文本的內(nèi)容長度,要想了解一個(gè)文件,不妨先wc一下吧~

**語法格式:**wc [參數(shù)] *文件

參數(shù) 參數(shù)作用
-w 統(tǒng)計(jì)單詞數(shù)
-c 統(tǒng)計(jì)字節(jié)數(shù)
-l 統(tǒng)計(jì)行數(shù)
-m 統(tǒng)計(jì)字符數(shù)
-L 顯示最長行的長度

實(shí)例

xianlin@xianlin-ubuntu:~/test$ wc test.txt
 23  30 172 test.txt
 行數(shù) 單詞數(shù) 字節(jié)數(shù) 文件名 

which – 查找命令文件

which命令的功能是用于查找命令文件,能夠快速搜索二進(jìn)制程序所對應(yīng)的位置。如果我們既不關(guān)心同名文件(find與locate),也不關(guān)心命令所對應(yīng)的源代碼和幫助文件(whereis),僅僅是想找到命令本身所在的路徑,那么這個(gè)which命令就太合適了。

參考實(shí)例

#查找某個(gè)指定命令文件所在位置
which reboot
# 結(jié)果
/usr/sbin/reboot
#查找多個(gè)指定命令文件所在位置
which shutdown poweroff
# 結(jié)果
/usr/sbin/shutdown
/usr/sbin/poweroff

find – 根據(jù)路徑和條件搜索指定文件

find命令的功能是根據(jù)給定的路徑和條件查找相關(guān)文件或目錄,可以使用的參數(shù)很多,并且支持正則表達(dá)式,結(jié)合管道符后能夠?qū)崿F(xiàn)更加復(fù)雜的功能,是系統(tǒng)管理員和普通用戶日常工作必須掌握的命令之一。

find命令通常進(jìn)行的是從根目錄(/)開始的全盤搜索,有別于whereis、which、locate……等等的有條件或部分文件的搜索。對于服務(wù)器負(fù)載較高的情況,建議不要在高峰時(shí)期使用find命令的模糊搜索,會(huì)相對消耗較多的系統(tǒng)資源。

語法格式:find [路徑] [參數(shù)]

常用參數(shù)

參數(shù) 參數(shù)作用
-name 匹配名稱
-perm 匹配權(quán)限(mode為完全匹配,-mode為包含即可)
-user 匹配所有者
-group 匹配所有組
-mtime -n +n 匹配修改內(nèi)容的時(shí)間(-n指n天以內(nèi),+n指n天以前)
-atime -n +n 匹配訪問文件的時(shí)間(-n指n天以內(nèi),+n指n天以前)
-ctime -n +n 匹配修改文件權(quán)限的時(shí)間(-n指n天以內(nèi),+n指n天以前)
-nouser 匹配無所有者的文件
-nogroup 匹配無所有組的文件
-newer f1 !f2 匹配比文件f1新但比f2舊的文件
-type b/d/c/p/l/f 匹配文件類型(后面的字幕字母依次表示塊設(shè)備、目錄、字符設(shè)備、管道、鏈接文件、文本文件)
-size 匹配文件的大小(+50KB為查找超過50KB的文件,而-50KB為查找小于50KB的文件)
-prune 忽略某個(gè)目錄
-exec …… {}; 后面可跟用于進(jìn)一步處理搜索結(jié)果的命令

參考實(shí)例

# 全盤搜索系統(tǒng)中所有以.conf結(jié)尾的文件
find / -name *.conf
/run/tmpfiles.d/kmod.conf
/etc/resolv.conf
/etc/dnf/dnf.conf
/etc/dnf/plugins/copr.conf
/etc/dnf/plugins/debuginfo-install.conf
/etc/dnf/plugins/product-id.conf
/etc/dnf/plugins/subscription-manager.conf
………………省略部分輸出信息………………
#在/etc目錄中搜索所有大于1M大小的文件
find /etc -size +1M
/etc/selinux/targeted/policy/policy.31
/etc/udev/hwdb.bin
#在/etc目錄中搜索所有小于1M大小的文件
find /etc -size -1M
#在/home目錄中搜索所有屬于指定用戶的文件
find /home -user xianlin
/home/xianlin
/home/xianlin/info.txt

用戶及權(quán)限管理

Linux中的三種用戶

  • 管理用戶:即root,由系統(tǒng)自動(dòng)創(chuàng)建,具有Linux所有權(quán)限

    • UID為0,具有一切權(quán)限,可以操作系統(tǒng)中的所有資源。
  • 一般用戶:即我們自己創(chuàng)建的用戶,無法修改配置文件

    • UID 從 1000開始, 是由管理員創(chuàng)建的用于日常工作的用戶,能夠使用Linux的大部分資源,一些特定的權(quán)限受到控制。用戶只對自己的目錄有寫權(quán)限,讀寫權(quán)限受一定的限制,有效保證了系統(tǒng)安全性。
  • 系統(tǒng)用戶:用于apache、郵件、打印服務(wù)等系統(tǒng)服務(wù)

    • UID 為 1~999, Linux系統(tǒng)為了避免因某個(gè)服務(wù)程序出現(xiàn)漏洞而被黑客提權(quán)至整臺服務(wù)器,默認(rèn)服務(wù)程序會(huì)有獨(dú)立的系統(tǒng)用戶負(fù)責(zé)運(yùn)行,進(jìn)而有效控制被破壞圍。

一般我們使用LINUX時(shí),使用普通用戶進(jìn)行登錄查看,需要修改Linux,切換成root用戶或者使用root權(quán)限。

su – 切換用戶身份

su命令來自于英文單詞“switch user”的縮寫,其功能是用于切換用戶身份。管理員切換至任意用戶身份而無需密碼驗(yàn)證,而普通用戶切換至任意用戶身份均需密碼驗(yàn)證。另外添加單個(gè)減號(-)參數(shù)為完全的身份變更,不保留任何之前用戶的環(huán)境變量信息。

語法格式: su [參數(shù)] 用戶名

參數(shù) 參數(shù)作用
單個(gè)減號(-) 完全身份變更(加載切換用戶的環(huán)境變量)
-c 執(zhí)行完指定的指令后,即恢復(fù)原來的身份
-f 適用于csh與tsch,使shell不用去讀取啟動(dòng)文件
-l 改變身份時(shí),也同時(shí)變更工作目錄
-m 變更身份時(shí),不要變更環(huán)境變量
-s 指定要執(zhí)行的shell

實(shí)例

# 切換到指定用戶, 并且使用被指定用戶的環(huán)境變量
su - xianlin

# 切換到xianlin用戶的工作目錄中執(zhí)行指定命令后即刻返回到切換前用戶
root$ su -l -c ls xianlin
公共的  視頻  文檔  音樂  docker        package       snap
模板    圖片  下載  桌面  IdeaProjects  sharedFolder  test
root$

# 從普通用戶切換到root用戶(因?yàn)橐袚Q到root, 需要使用sudo獲取權(quán)限)
xianlin$ sudo su -
root$

sudo - 以其他身份來執(zhí)行命令

sudo命令 用來以其他身份來執(zhí)行命令,預(yù)設(shè)的身份為root。在/etc/sudoers中設(shè)置了可執(zhí)行sudo指令的用戶。若其未經(jīng)授權(quán)的用戶企圖使用sudo,則會(huì)發(fā)出警告的郵件給管理員。用戶使用sudo時(shí),必須先輸入密碼,之后有5分鐘的有效期限,超過期限則必須重新輸入密碼。

使用sudo服務(wù)可以授權(quán)某個(gè)指定的用戶去執(zhí)行某些指定的命令,在滿足工作需求的前提下盡可能少的放權(quán),保證服務(wù)器的安全。配置sudo服務(wù)可以直接編輯配置文件/etc/sudoers,亦可以執(zhí)行visudo命令進(jìn)行設(shè)置,一切妥當(dāng)后普通用戶便能夠使用sudo命令進(jìn)行操作了。

**語法格式:**sudo [參數(shù)] 命令

參數(shù) 參數(shù)作用
-v 延長密碼有效期限5分鐘
-k 結(jié)束密碼的有效期限,也就是下次再執(zhí)行sudo時(shí)便需要輸入密碼
-l 列出目前用戶可執(zhí)行無法執(zhí)行的指令
-b 將要執(zhí)行的指令放在后臺執(zhí)行
-E 繼承當(dāng)前環(huán)境變量
-H HOME環(huán)境變量設(shè)為新身份的HOME環(huán)境變量
-p 更改需要密碼驗(yàn)證時(shí)的提示語
-s 指定默認(rèn)調(diào)用的SHELL解釋器

實(shí)例

# 切換到root用戶及環(huán)境
xianlin$ sudo -i
# 完全切換到root環(huán)境, 與sudo -i基本無異, 只是會(huì)重新加載配置文件
xianlin$ sudo su -

用戶組管理

每個(gè)用戶都有一個(gè)用戶組,系統(tǒng)可以對一個(gè)用戶組中的所有用戶進(jìn)行集中管理。不同Linux 系統(tǒng)對用戶組的規(guī)定有所不同,如Linux下的用戶默認(rèn)屬于與它同名的用戶組,這個(gè)用戶組在創(chuàng)建用戶時(shí)同時(shí)創(chuàng)建。(如果在創(chuàng)建用戶時(shí),使用 -g 選項(xiàng)設(shè)定主組了,那以選項(xiàng)設(shè)定為主)

用戶組的管理涉及用戶組的添加、刪除和修改。組的增加、刪除和修改實(shí)際上就是對/etc/group文件的更新。

查看當(dāng)前系統(tǒng)中的群組getent group

groupadd – 創(chuàng)建新的用戶組

**語法格式:**groupadd [參數(shù)] 用戶組

參數(shù) 參數(shù)作用
-g 指定新建工作組的id
-r 創(chuàng)建系統(tǒng)工作組
-K 覆蓋配置文件“/ect/login.defs”
-o 允許添加組ID號不唯一的工作組

實(shí)例

# 創(chuàng)建一個(gè)新的用戶組
groupadd xianlinGroup
# 創(chuàng)建一個(gè)新的用戶組,并指定GID號碼
groupadd -g 6688 xianlinGroup
# 創(chuàng)建一個(gè)新的用戶組,設(shè)定為系統(tǒng)工作組
groupadd -r xianlinSysGroup
groupdel – 刪除用戶組

groupdel命令用于刪除指定的工作組,本命令要修改的系統(tǒng)文件包括/ect/group和/ect/gshadow。

userdel修改系統(tǒng)賬戶文件,刪除與 GROUP 相關(guān)的所有項(xiàng)目。給出的組名必須存在。若該群組中仍包括某些用戶,則必須先刪除這些用戶后,方能刪除群組

# 使用groupdel命令刪除xianlinWork工作組
groupdel xianlinWork
# 查看xianlinWork組是否刪除成功, 如果沒有信息就是刪除成功
more /etc/group|grep xianlinWork
groupmod – 更改群組識別碼或名稱

groupmod命令用于更改群組的識別碼或名稱時(shí)。不過大家還是要注意,用戶名不要隨意修改,組名和 GID 也不要隨意修改,因?yàn)榉浅H菀讓?dǎo)致管理員邏輯混亂。如果非要修改用戶名或組名,則建議大家先刪除舊的,再建立新的。

# 更改xianlinmod用戶組為root用戶組
groupmod -n root xianlinmod
# 更改xianlin用戶組的群組識別碼為391314
groupmod - g 391316 xianlin
chgrp - 變更文件或目錄的所屬群組

chgrp命令 用來改變文件或目錄所屬的用戶組。該命令用來改變指定文件所屬的用戶組。其中,組名可以是用戶組的id,也可以是用戶組的組名。文件名可以 是由空格分開的要改變屬組的文件列表,也可以是由通配符描述的文件集合。如果用戶不是該文件的文件主或超級用戶(root),則不能改變該文件的組。

在UNIX系統(tǒng)家族里,文件或目錄權(quán)限的掌控以擁有者及所屬群組來管理。您可以使用chgrp指令去變更文件與目錄的所屬群組,設(shè)置方式采用群組名稱或群組識別碼皆可。

語法格式: chgrp [參數(shù)] [目錄]

參數(shù) 參數(shù)作用
-v 顯示指令執(zhí)行過程
-c 效果類似”-v”參數(shù),但僅回報(bào)更改的部分
-f 不顯示錯(cuò)誤信息
-h 對符號連接的文件作修改,而不更動(dòng)其他任何相關(guān)文件
-R 遞歸處理,將指定目錄下的所有文件及子目錄一并處理
–reference 把指定文件或目錄的所屬群組全部設(shè)成和參考文件或目錄的所屬群組相同

實(shí)例

# 將test目錄改為xianlin用戶組所屬, 并顯示命令執(zhí)行過程
chgrp -v xianlin test
# 將cool目錄下所有文件及子目錄全部改為xianlin用戶組
chgrp -R xianlin cool

用戶管理

Linux 中,用戶保存在 /etc/passwd 中,用戶密碼保存在 /etc/shadow 中,用戶組保存在 /etc/group 中。

列出當(dāng)前現(xiàn)有用戶命令

cat /etc/passwd | cut -d : -f 1

useradd - 創(chuàng)建的新的系統(tǒng)用戶

useradd命令 用于Linux中創(chuàng)建的新的系統(tǒng)用戶。useradd可用來建立用戶帳號。帳號建好之后,再用passwd設(shè)定帳號的密碼.而可用userdel刪除帳號。使用useradd指令所建立的帳號,實(shí)際上是保存在**/etc/passwd**文本文件中。

用戶文件

/etc/passwd # 用戶帳戶信息。
/etc/shadow # 保護(hù)用戶帳戶信息。
/etc/group  # 組帳戶信息。
/etc/gshadow # 保護(hù)組帳戶信息。
/etc/default/useradd # 帳戶創(chuàng)建的默認(rèn)值。
/etc/skel/                                 # 包含默認(rèn)文件的目錄。
/etc/login.defs # 影子密碼套件配置。

注意事項(xiàng)

  • useradd創(chuàng)建用戶時(shí), 默認(rèn)會(huì)創(chuàng)建一個(gè)同名用戶組, 并把用戶添加進(jìn)去; 可使用-g指定用戶組
  • useradd創(chuàng)建用戶時(shí), 默認(rèn)會(huì)在HOME目錄下創(chuàng)建一個(gè)同名文件夾做用戶HOME路徑; 可使用-d指定HOME路徑

**語法格式:**useradd [參數(shù)] 用戶名

參數(shù) 參數(shù)作用
-D 改變新建用戶的預(yù)設(shè)值
-c 添加備注文字
-d 新用戶每次登陸時(shí)所使用的家目錄
-e 用戶終止日期,日期的格式為YYYY-MM-DD
-f 用戶過期幾日后永久停權(quán)。當(dāng)值為0時(shí)用戶立即被停權(quán),而值為-1時(shí)則關(guān)閉此功能,預(yù)設(shè)值為-1
-g 指定用戶對應(yīng)的用戶組
-G 定義此用戶為多個(gè)不同組的成員
-m 用戶目錄不存在時(shí)則自動(dòng)創(chuàng)建
-M 不建立用戶家目錄,優(yōu)先于/etc/login.defs文件設(shè)定; 這樣用戶就無法登陸系統(tǒng)了
-n 取消建立以用戶名稱為名的群組
-r 建立系統(tǒng)帳號
-u 指定用戶id

實(shí)例

# 創(chuàng)建指定的用戶信息, 并自動(dòng)創(chuàng)建添加進(jìn)同名用戶組
useradd xianlin
# 創(chuàng)建指定的用戶信息,并自定義UID值
useradd -u 3966 xianlin
# 創(chuàng)建指定的用戶信息,并追加指定組為該賬戶的擴(kuò)展組, 及包括自己組的多個(gè)組
useradd -G xianlinWork xianlin
# 創(chuàng)建指定的用戶信息,并指定過期時(shí)間
useradd -e "2023/01/01" xianlin
# 創(chuàng)建指定的用戶信息, 并設(shè)置注釋信息
useradd -c "Y_xianlin" xianlin
userdel - 刪除的用戶以及與相關(guān)的文件

userdel命令 用于刪除給定的用戶,以及與用戶相關(guān)的文件。若不加選項(xiàng),則僅刪除用戶帳號,而不刪除相關(guān)文件。

# 刪除用戶但不刪除用戶數(shù)據(jù)
userdel xianlin
# 刪除用戶并刪除用戶數(shù)據(jù), 即刪除HOME目錄
userdel -r xianlin
# 強(qiáng)制刪除用戶
userdel -f xianlin
id - 查詢用戶和所在組的信息

語法格式:id [參數(shù)] 用戶名

實(shí)例

# 查詢當(dāng)前用戶id及組名id
id
# 查詢xianlin用戶id及組名id
id xianlin
# 查詢組id/組名
id -g / id -gn
# 查詢?nèi)拷Mid/組名
id -G / id - Gn
# 查詢有效的用戶id/用戶名
id -u / id -un
usermod – 修改用戶賬號信息

usermod命令 用于修改用戶的基本信息。usermod 命令不允許你改變正在線上的使用者帳號名稱。當(dāng) usermod 命令用來改變user id,必須確認(rèn)這名user沒在電腦上執(zhí)行任何程序。你需手動(dòng)更改使用者的 crontab 檔。也需手動(dòng)更改使用者的 at 工作檔。采用 NIS server 須在server上更動(dòng)相關(guān)的NIS設(shè)定。

**語法格式:**usermod [參數(shù)] 用戶名

參數(shù) 參數(shù)作用
-c<備注> 修改用戶賬號的備注文字
-d<登入目錄> 修改用戶登入時(shí)的HOME目錄
-m<移動(dòng)用戶HOME目錄> 移動(dòng)用戶家目錄到新的位置,不能單獨(dú)使用, 一般與**-d一起使用**
-e<有效期限> 修改賬號的有效期限
-f<緩沖天數(shù)> 修改在密碼過期后多少天即關(guān)閉該賬號
-g<群組> 修改用戶所屬的群組
-G<群組> 修改用戶所屬的附加群組
-l<賬號名稱> 修改用戶賬號名稱
-L 鎖定用戶密碼,使密碼無效
-s 修改用戶登入后所使用的shell
-u 修改用戶ID
-U 解除密碼鎖定

實(shí)例

# 移動(dòng)指定用戶的家目錄路徑, 并修改登錄時(shí)目錄
usermod -md /data/xianlinHome xianlin
# 修改指定用戶的UID號碼
usermod -u 6688 xianlin
# 修改指定用戶的名稱為xianlinNew
usermod -l xianlin xianlinNew
# 鎖定賬號newuser1
usermod -L xianlin
# 解除對newuser1的鎖定
usermod -U xianlin
passwd - 修改用戶的密碼值

passwd命令 用于設(shè)置用戶的認(rèn)證信息,包括用戶密碼、密碼過期時(shí)間等。系統(tǒng)管理者則能用它管理系統(tǒng)用戶的密碼。只有管理者可以指定用戶名稱,一般用戶只能變更自己的密碼。

**常用格式:**passwd [參數(shù)] 用戶名

參數(shù) 參數(shù)作用
-d 刪除已有密碼
-l 鎖定用戶的密碼值,不允許修改
-u 解鎖用戶的密碼值,允許修改
-f 強(qiáng)制執(zhí)行
-e 下次登陸強(qiáng)制修改密碼
-k 用戶在期滿后能仍能使用
-S 查詢密碼狀態(tài)

實(shí)例

# 修改當(dāng)前用戶密碼
xianlin$ passwd
	Changing password for user xianlin.
	New password: <輸入密碼>
	Retype new password: <再次輸入密碼>
	passwd: all authentication tokens updated successfully.
---
# 修改指定用戶的密碼值:
root$ passwd xianlin
	Changing password for user xianlin.
	New password: <輸入密碼>
	Retype new password: <再次輸入密碼>
	passwd: all authentication tokens updated successfully.
---
# 鎖定指定用戶的密碼值, 不允許其進(jìn)行修改
root$ passwd -l xianlin
	Locking password for user xianlin.
	passwd: Success

權(quán)限管理

權(quán)限介紹 | ls-l目錄權(quán)限信息圖片介紹

1, 表示drwx權(quán)限信息; 2, 表示此文件/目錄的所有者; 3, 表示此文件/目錄的所屬組;

drwx權(quán)限介紹

ls -l中的drwx權(quán)限信息, 一共0~9十位

  • 0位, 文件類型, 一般表示文件或目錄
    • d, 表示文件目錄
    • -, 表示文件
    • l, 表示軟鏈接
  • 1~3位, 表示所有者的權(quán)限
  • 4~6位, 表示同用戶組內(nèi)擁有的權(quán)限
  • 7~9位, 表示其他用戶擁有的權(quán)限

rwx權(quán)限詳解

  • rwx對應(yīng)文件的權(quán)限
    • r - 代表可讀, 可以讀取查看
    • w - 代表可寫, 可以修改, 但是不能刪除
    • x - 代表可執(zhí)行
    • - - 表示無此權(quán)限
  • rwx對應(yīng)目錄的權(quán)限
    • r - 代表可讀, 可以讀取, 即可用ls查看目錄內(nèi)容
    • w - 代表可寫, 可以修改, 可在目錄內(nèi)創(chuàng)建, 刪除, 重命名
    • x - 代表可執(zhí)行, 可以進(jìn)入該目錄
    • - - 表示無此權(quán)限
文件類型 所有者權(quán)限 用戶組內(nèi)用戶權(quán)限 其他用戶權(quán)限
0 1 2 3 4 5 6 7 8 9
d r w x r - x r w -
表示目錄 讀 寫 執(zhí)行 讀 不可寫 可執(zhí)行 可讀 可寫 不可執(zhí)行

權(quán)限更改 | chmod - 更改文件或目錄的權(quán)限

設(shè)置權(quán)限時(shí)可以使用數(shù)字法,亦可使用字母表達(dá)式,對于目錄文件建議加入-R參數(shù)進(jìn)行遞歸操作,意味著不僅對于目錄本身,也對目錄內(nèi)的子文件/目錄都進(jìn)行新權(quán)限的設(shè)定。

主要用途及方法參數(shù)介紹

  • 通過八進(jìn)制數(shù)的方式更改目標(biāo)文件或目錄的權(quán)限。
    • 0: - - -
    • 1: - - x
    • 2: - w -
    • 3: - w x
    • 4: r - -
    • 5: r - x
    • 6: r w -
    • 7: r w x
    • r = 4, w = 2, x = 1 無權(quán)限=0;權(quán)限和加起來就可表達(dá)權(quán)限
    • 750; 表示所有者擁有全部權(quán)限, 組內(nèi)擁有讀, 執(zhí)行; 其他用戶沒有權(quán)限
  • 通過參考文件的權(quán)限來更改目標(biāo)文件或目錄的權(quán)限。
  • 通過符號組合的方式更改目標(biāo)文件或目錄的權(quán)限。
    • u符號代表當(dāng)前用戶
    • g符號代表和當(dāng)前用戶在同一個(gè)組的用戶,以下簡稱組用戶。
    • o符號代表其他用戶。
    • a符號代表所有用戶。
    • r符號代表讀權(quán)限以及八進(jìn)制數(shù)4。
    • w符號代表寫權(quán)限以及八進(jìn)制數(shù)2。
    • x符號代表執(zhí)行權(quán)限以及八進(jìn)制數(shù)1。
    • X符號代表如果目標(biāo)文件是可執(zhí)行文件或目錄,可給其設(shè)置可執(zhí)行權(quán)限。
    • s符號代表設(shè)置權(quán)限suid和sgid,使用權(quán)限組合u+s設(shè)定文件的用戶的ID位,g+s設(shè)置組用戶ID位。
    • t符號代表只有目錄或文件的所有者才可以刪除目錄下的文件。
    • +符號代表添加目標(biāo)用戶相應(yīng)的權(quán)限。
    • -符號代表刪除目標(biāo)用戶相應(yīng)的權(quán)限。
    • =符號代表添加目標(biāo)用戶相應(yīng)的權(quán)限,刪除未提到的權(quán)限。

語法格式: chmod 參數(shù) 文件

參數(shù) 參數(shù)作用
-c 當(dāng)文件的權(quán)限更改時(shí)輸出操作信息
-f 屏蔽錯(cuò)誤信息
-v 顯示所有操作信息
-R 對目前目錄下的所有文件與子目錄進(jìn)行相同的權(quán)限變更(即以遞回的方式逐個(gè)變更)

實(shí)例

# 設(shè)定某個(gè)文件的權(quán)限為755, 則表示, 所有者擁有全部權(quán)限, 組內(nèi)和其他用戶有讀取和執(zhí)行權(quán)限
chmod 755 xianlin.cfg
# 設(shè)定某個(gè)文件讓任何人都可以讀取
chmod a+r xianlin.txt
# 設(shè)置某個(gè)目錄及其目錄下 所有的文件及子目錄 都可以被任何人 寫入和 讀取 但是不可執(zhí)行
chmod -R a=rw xianlin.txt
# 刪除其他用戶的所有權(quán)限
chomod o= xianlin.txt
更改所屬 | chown – 改變文件或目錄的用戶和用戶組
  • 用戶屬于[目錄權(quán)限信息圖片介紹](#權(quán)限介紹 | ls-l目錄權(quán)限信息圖片介紹)中的2, 用戶組屬于3

chown命令 改變某個(gè)文件或目錄的所有者和所屬的組,該命令可以向某個(gè)用戶授權(quán),使該用戶變成指定文件的所有者或者改變文件所屬的組。用戶可以是用戶或者是用戶ID,用戶組可以是組名或組id。文件名可以使由空格分開的文件列表,在文件名中可以包含通配符。

只有文件所有者和超級用戶才可以便用該命令。實(shí)際上只有root超級管理員才能更改為其他用戶;

**語法格式:**chown [參數(shù)] 所屬主:所屬組 文件

參數(shù) 參數(shù)作用
-R 對目前目錄下的所有文件與目錄進(jìn)行相同的變更
-c 顯示所屬信息變更信息
-f 若該文件擁有者無法被更改也不要顯示錯(cuò)誤
-h 只對于鏈接文件進(jìn)行變更,而非真正指向的文件
-v 顯示擁有者變更的詳細(xì)資料

實(shí)例

# 將xianlin.txt所屬用戶修改為root
chown root xianlin.txt
# 將xianlin.txt所屬用戶組修改為root
chown :root xianlin.txt
# 將xianlin.txt所屬用戶改成root, 用戶組改為xianlin
chown root:xianlin xianlin.txt
# 將qanxun目錄及目錄內(nèi)所有文件及子目錄的所屬用戶修改成xianlin
chown -R xianlin qanxun

到了這里,關(guān)于Linux基礎(chǔ)命令 - 文件及目錄操作, 打印輸出, 查找命令, 用戶及權(quán)限管理, vi的使用等的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 文件目錄操作——Linux命令核心

    文件目錄操作——Linux命令核心

    目錄 相對路徑和絕對路徑 ?查看和切換工作目錄 pwd 顯示當(dāng)前工作目錄的絕對路徑 cd 切換目錄 列出目錄內(nèi)容 ls 列出目錄的內(nèi)容 創(chuàng)建和刪除目錄文件夾 mkdir創(chuàng)建一個(gè)新目錄 rmdir 刪除一個(gè)空的目錄 touch 創(chuàng)建空文件 cp復(fù)制文件或者目錄 rm 刪除文件或目錄 ?mv移動(dòng)文件與目錄或重

    2024年02月01日
    瀏覽(32)
  • Windows基礎(chǔ)命令:目錄和文件操作&文本處理&網(wǎng)絡(luò)相關(guān)操作

    Windows基礎(chǔ)命令:目錄和文件操作&文本處理&網(wǎng)絡(luò)相關(guān)操作

    方法一:打開\\\"運(yùn)行\(zhòng)\\"對話框(Win+R),輸入cmd 也可以通過cmd /c 命令和cmd /k 命令的方式來直接運(yùn)行命令(/c表示執(zhí)行完命令后關(guān)閉cmd窗口;/k表示執(zhí)行完命令后保留cmd窗口) 方法二:在任務(wù)欄直接搜索“cmd” 顯示當(dāng)前目錄或改變當(dāng)前目錄 語法規(guī)則 (1)顯示目錄 顯示當(dāng)前驅(qū)動(dòng)

    2024年02月05日
    瀏覽(16)
  • 快速上手Linux核心命令(三):文件和目錄操作命令

    快速上手Linux核心命令(三):文件和目錄操作命令

    目錄 前言 cd 切換目錄 pwd 顯示當(dāng)前路徑 ls 顯示目錄下內(nèi)容及相關(guān)屬性信息 mkdir 創(chuàng)建目錄 tree 以樹形結(jié)構(gòu)顯示目錄下的內(nèi)容 touch 創(chuàng)建空白文件或改變文件的時(shí)間戳屬性 cp 復(fù)制文件或目錄 mv 移動(dòng)或重命名文件 rm 刪除文件或目錄 chown 改變文件或目錄的用戶用戶組 chmod 改變文件

    2023年04月23日
    瀏覽(28)
  • Linux 終端命令之文件目錄操作,對比Dos相關(guān)命令

    Linux 終端命令之文件目錄操作,對比Dos相關(guān)命令

    目錄 前言 基礎(chǔ)命令(文件目錄相關(guān)的) cd命令 【英文幫助】 【對應(yīng)Dos命令】 pwd命令 【英文幫助】 【對應(yīng)Dos命令】 ls命令 【英文幫助】 【對應(yīng)Dos命令】 tree命令 【英文幫助】 【對應(yīng)Dos命令】 mkdir命令 【英文幫助】 【對應(yīng)Dos命令】 rmdir/rm命令 【英文幫助】 【對應(yīng)Dos命令

    2024年02月11日
    瀏覽(27)
  • Linux基礎(chǔ)筆記10 | 文件查找命令 find 詳解

    用來在指定目錄下查找文件。任何位于參數(shù)之前的字符串都將被視為欲查找的目錄名。如果使用該命令時(shí),不設(shè)置任何參數(shù),則 find 命令將在當(dāng)前目錄下查找子目錄與文件。并且將查找到的子目錄和文件全部進(jìn)行顯示 學(xué)習(xí)參考博文:駿馬金龍 (junmajinlong.com) 最基礎(chǔ)的打印功能

    2024年02月04日
    瀏覽(94)
  • linux修改用戶uid和gid并且修改文件所有權(quán)(所屬用戶及所屬用戶組)(chown命令、chgrp命令)(批量修改查找并修改文件、目錄uid和gid)

    linux修改用戶uid和gid并且修改文件所有權(quán)(所屬用戶及所屬用戶組)(chown命令、chgrp命令)(批量修改查找并修改文件、目錄uid和gid)

    在Linux系統(tǒng)中,每個(gè)用戶和用戶組都有唯一的數(shù)字標(biāo)識符,分別稱為用戶ID(UID)和組ID(GID)。在某些情況下,可能需要修改這些值。例如,當(dāng)將文件從一個(gè)環(huán)境遷移到另一個(gè)環(huán)境時(shí),如果在目標(biāo)環(huán)境中的UID和GID與源環(huán)境不匹配,則需要進(jìn)行修改。此外,還可能需要修改文件

    2024年04月15日
    瀏覽(94)
  • Linux操作系統(tǒng)設(shè)置圖形化界面及目錄和文件管理常用命令

    Linux操作系統(tǒng)設(shè)置圖形化界面及目錄和文件管理常用命令

    目錄 1.安裝圖形化界面 ?2.開機(jī)啟動(dòng)圖形化界面 dos界面與圖形化界面切換快捷鍵 3.Windows與Linux文件系統(tǒng)的差別 ?4.Linux文件系統(tǒng)常用命令 ?5.使用pwd命令顯示工作目錄路徑 6.絕對路徑和相對路徑? 7.使用ls命令列出目錄和文件信息 Linux默認(rèn)情況下是不會(huì)安裝圖形界面的,所以需要

    2024年02月05日
    瀏覽(97)
  • 掌握終端基礎(chǔ)技巧:Linux下的文件和目錄復(fù)制操作

    掌握終端基礎(chǔ)技巧:Linux下的文件和目錄復(fù)制操作

    在Linux系統(tǒng)中,命令行終端是一個(gè)大而高效的工具,讓使用者可以通過簡單的命令完成各種任務(wù)。其中,文件和目錄的復(fù)制操作是日常使用頻率較高的一項(xiàng)操作。本文將介紹Linux下的文件和目錄復(fù)制基礎(chǔ)技巧,幫助您更好地掌握命令行終端的使用。 一、復(fù)制文件: 1.cp命令:

    2024年02月08日
    瀏覽(17)
  • Linux :: 【基礎(chǔ)指令篇 :: 文件及目錄操作:(6)】:: rmidr / rm:刪除空目錄、刪除非空目錄及刪除文件指令

    前言:本篇是 Linux 基本操作篇章的內(nèi)容! 筆者使用的環(huán)境是基于騰訊云服務(wù)器:CentOS 7.6 64bit。 學(xué)習(xí)集: C++ 入門到入土?。。W(xué)習(xí)合集 Linux 從命令到網(wǎng)絡(luò)再到內(nèi)核!學(xué)習(xí)合集 目錄索引: 1. rmdir / rm 基本語法及功能 2. rmdir 基本使用測試 (看操作代碼) - - 2.1 創(chuàng)建一個(gè)空目錄

    2024年02月05日
    瀏覽(25)
  • Linux :: 【基礎(chǔ)指令篇 :: 文件及目錄操作:(4)】:: mkdir :: 創(chuàng)建目錄:指定路徑單個(gè)目錄創(chuàng)建及一次性創(chuàng)建多級目錄

    前言:本篇是 Linux 基本操作篇章的內(nèi)容! 筆者使用的環(huán)境是基于騰訊云服務(wù)器:CentOS 7.6 64bit。 學(xué)習(xí)集: C++ 入門到入土?。?!學(xué)習(xí)合集 Linux 從命令到網(wǎng)絡(luò)再到內(nèi)核!學(xué)習(xí)合集 目錄索引: 1. 基本語法及功能 2. 基本使用示例 - - 2.1 當(dāng)前目錄下創(chuàng)建指定新目錄 - - 2.2 指定目錄下

    2024年02月06日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包