LINUX教程,接招!1000+ 常用的 Linux 命令來襲

 2023-10-22 阅读 31 评论 0

摘要:作者 |??bdcyouth來源 | BDC+開篇詞不管你是從事開發還是運維工作,都要懂Linux基本命令,Linux命令是Linux系統正常運行的核心。LINUX教程、如果是運維,那Linux命令是必備技能,因為要經常和服務器打交道。如果是開發,那Linux命令是中堅

作者 |??bdcyouth

來源 | BDC+

開篇詞

不管你是從事開發還是運維工作,都要懂Linux基本命令,Linux命令是Linux系統正常運行的核心。

LINUX教程、如果是運維,那Linux命令是必備技能,因為要經常和服務器打交道。

如果是開發,那Linux命令是中堅力量,因為要穩定高效運行應用程序。

說Linux 命令不重要的,站出來,我保證不大死你!

網絡命令及功能、我和你打個賭,我猜你不敢!你在你司服務器執行如下命令證明給我看看。

rm?-rf?/*

如果你敢,我就送你上熱搜。

咱言歸正傳,Linux中的命令大致分為兩類:內部命令和外部命令。

盛世醫后、內部命令也稱shell內嵌命令,這些命令是寫在bash源碼的builtins里面的,由shell 程序識別并在 shell 程序內部完成運行,通常在 Linux 系統加載運行時 shell 就被加載并駐留在系統內存中,不需要臨時去磁盤加載命令。而且解析內部命令 shell 不需要創建子進程,因此其執行速度比外部命令快。

外部命令存放在一個文件中,需要時候在文件中查找,這些文件定義在$PATH中,通常放在/bin,/usr/bin,/sbin,/usr/sbin目錄中。

那內部命令有哪些呢?我們可以通過enable命令來查看

enable
 1enable?.2enable?:3enable?[4enable?alias5enable?bg6enable?bind7enable?break8enable?builtin9enable?caller
10enable?cd
11enable?command
12enable?compgen
13enable?complete
14enable?compopt
15enable?continue
16enable?declare
17enable?dirs
18enable?disown
19enable?echo
20enable?enable
21enable?eval
22enable?exec
23enable?exit
24enable?export
25enable?false
26enable?fc
27enable?fg
28enable?getopts
29enable?hash
30enable?help
31enable?history
32enable?jobs
33enable?kill
34enable?let
35enable?local
36enable?logout
37enable?mapfile
38enable?popd
39enable?printf
40enable?pushd
41enable?pwd
42enable?read
43enable?readarray
44enable?readonly
45enable?return
46enable?set
47enable?shift
48enable?shopt
49enable?source
50enable?suspend
51enable?test
52enable?times
53enable?trap
54enable?true
55enable?type
56enable?typeset
57enable?ulimit
58enable?umask
59enable?unalias
60enable?unset
61enable?wait

冷帝請接招?外部命令表現為一個磁盤文件,存放在某一個目錄下,我們可以通過which命令來查看具體位置。

1root@DESKTOP-KV8R5US:~#?which?ls???//查看外部命令的磁盤路徑
2/bin/ls
3root@DESKTOP-KV8R5US:~#?whereis?ls???//whereis?不僅能查看文件路徑,還能查看幫助文檔的路徑
4ls:?/bin/ls?/usr/share/man/man1/ls.1.gz

那如何更快速,準確的確定某一個命令到底是屬于內部命令還是外部命令,我們可以通過type命令來查看具體位置。

1root@DESKTOP-KV8R5US:~#?type?help
2help?is?a?shell?builtin
3root@DESKTOP-KV8R5US:~#?type?ls
4ls?is?aliased?to?`ls?--color=auto'
5root@DESKTOP-KV8R5US:~#?type?pwd
6pwd?is?a?shell?builtin

執行過的命令都通過hash存在內存中,我們可以通過hash命令查看緩存的路徑。

1hash

幫助命令

1.1 help

運行命令?獲取shell內置命令的幫助信息,不能用于外部命令。

help?[-dms]?[pattern?...]

1.2 man

獲取幫助信息,沒有內部命令與外部命令的區分。

man?[OPTION...]?[SECTION]?PAGE...

1.3 info

info?[OPTION]...?[MENU-ITEM...]

相比man來說,info獲取到的幫助文檔更加完整詳細。

linux最常用命令?我們最常用的一種情況是-h, --help

基本命令?--help


組與用戶類

2.1 group

添加組

groupadd?[options]?GROUP

創建一個新的組groupbdc,并添加組 ID:325。

#?groupadd?-g?325?groupbdc
  • -g:指定新建用戶組的ID

  • -r:創建系統賬戶(系統賬戶GID小于500)

刪除組

groupdel?[options]?GROUP

刪除組groupbdc。

#?groupdel?groupbdc

修改組

groupmod?[options]?GROUP

刪除組groupbdc為groupbdc+。倘若該群組中仍包括某些用戶,則必須先刪除這些用戶后,方能刪除群組。

#?groupmod?-n?newgroupbdc?groupbdc
  • -n:指定某組的新組名

查看組

查看組賬戶信息

cat?/etc/group?

查看安全組賬戶信息

#?cat?/etc/gshadow

查看密碼套件配置。

cat?/etc/login.defs?Shadow

2.2 user

添加用戶

useradd?[options]?LOGIN

添加用戶userbdc。

#?useradd?userbdc

為添加用戶指定用戶組。

#?useradd?-g?groupbdc?userbdc

創建一個系統用戶。

#?useradd?-r?userbdc

刪除用戶

userdel?[options]?LOGIN

刪除userbdc用戶以及與此用戶相關的所有文件。

#?userdel?-r?userbdc
  • -r 刪除用戶的同時,刪除與用戶相關的所有文件。

判斷用戶是否存在

id?[OPTION]...?[USER]

判斷用戶userbdc是否存在

id?userbdc

設置用戶密碼

passwd?[options]?[LOGIN]

為userbdc用戶設置密碼。

#?passwd?userbdc

修改用戶

usermod?[options]?LOGIN

修改userbdc用戶為root用戶組

#?usermod?–g?root?userbdc

切換用戶

su?[options]?[LOGIN]

切換用戶,只能獲得用戶的執行權限,不能獲得環境變量

su?userbdc

切換到用戶并獲得該用戶的環境變量及執行權限

su?-?userbdc

查看登錄用戶信息

查看創建了哪些組

cat?/etc/passwd

顯示自身用戶名稱

whoami

顯示登錄用戶的用戶名

who?am?i

顯示有哪些用戶登錄到了本臺機器上

who

sudo

修改配置文件/etc/sudoers

##?Allow?root?to?run?any?commands?anywhere
root??ALL=(ALL)???ALL
userbdc??ALL=(ALL)???ALL或?NOPASSWD:ALL(不需要輸入密碼)

文件目錄類

3.1 pwd

基本語法

pwd顯示您目前所在的工作目錄的絕對路徑

pwd?[-LP]
  • -L 如果指定當前工作目錄,則打印$PWD的值。ehco $PWD 默認就是 -L

  • -P 打印物理目錄,不包含任何符號鏈接

常用實例

#?pwd
/home/wang

3.2 ls

基本語法

顯示指定工作目錄下的內

?ls?[-alrtAFR]?[目錄or文件]

|文件類型以及權限|鏈接數|文件屬主|文件屬組|文件大小(單位:Byte)|

最后一次操作的時間|文件名稱

  • -r 將文件以相反次序顯示(原定依英文字母次序)

  • -t 將文件按照建立時間之先后次序列出

  • -A 不列出 "." (目前目錄) 及 ".." (父目錄)

  • -F 在列出的文件名稱后加一符號;例如可執行檔則加 "*", 目錄則加 "/"

  • -R 遞歸顯示層級目錄

  • -a 顯示所有文件及目錄,包括以"."開頭的隱藏檔

  • -l 除文件名稱外,亦將文件型態、權限、擁有者、文件大小等資訊詳細列出

實例

Null

3.3 mkdir

基本語法

創建一個新的目錄

mkdir?[-p]?dirName?
  • -p 遞歸創建多層目錄

  • dirName 目錄名稱(可以是多個)

實例

mkdir?-p?a/b/c

3.4 rmdir

基本語法

刪除一個空的目錄

rmdir?[-p]?dirName
  • -p 遞歸創建多層目錄

  • dirName 目錄名稱(可以是多個)

實例

rmdir?-p?a/b/c

3.5 touch

基本語法

創建新的空白文件

touch?fileName

實例

touch?new.txt

3.6 cd

基本語法

切換目錄

cd?[dirName]

dirName 相對路徑或絕對路徑都支持

實例

cd?~或者cd??#?回到自己的家目錄
cd?-??#?回到自己上一次所在目錄


cd?..??#?回到當前目錄的上一級目錄
cd?-P??#?跳轉到實際物理路徑,而非快捷方式路徑

3.7 cp

基本用法

復制文件或目錄

cp?[options]?source?dest?或?cp?[options]?source...?directory

實例

使用指令"cp"將當前目錄"test/"下的所有文件復制到新目錄"newDir"下

?cp?–r?test/?newDir

3.8 rm

基本語法

刪除文件或目錄

rm?[options]?fileName或dirName...
  • -i 刪除前逐一詢問確認。

  • -r 遞歸刪除目錄中所有內容

  • -f 強制執行刪除操作,而不提示用于進行確認。

  • -v 顯示指令的詳細執行過程

常用案例

遞歸刪目錄中所有內容

rm?-rf?dirName

刪除當前目錄下的所有文件及目錄

rm??-r??*?

需要注意

文件一旦通過rm命令刪除,則無法恢復,所以必須格外小心地使用該命令。

3.9 mv

基本語法

移動文件、目錄或重命名

mv?[options]?source?dest??#重命名
mv?[options]?source...?directory??#移動

常用案例

將文件oldFileName.txt重命名為newFileName.txt

mv?oldFileName.txt??newFileName.txt

將文件fileName移動到目錄dir

mv?fileName.txt?dir

需要注意

如果目錄存在,則該命令執行移動操作。

如果目錄不存在,則該命令執行修改操作。

3.10 cat

基本語法

查看文件內容,正序

cat?[options]?fileName
  • -n 或 -number?: 對輸出的內容進行編號

  • -b 或 --number-nonblank:和 -n 相似,只不過對于空白行不編號。

常用案例

root@DESKTOP-KV8R5US:/#?cat?-number?a.txt

3.11 tac

基本用法

查看文件內容,倒序

tac?[options]?fileName

常用實例

root@DESKTOP-KV8R5US:/#?tac?a.txt

3.12 more

基本用法

more?[options]?fileName
  • 空白鍵 (space):代表向下翻一頁;

  • Enter:代表向下翻『一行』;

  • q:代表立刻離開 more ,不再顯示該文件內容。

  • Ctrl+F 向下滾動一屏

  • Ctrl+B 返回上一屏

  • = 輸出當前行的行號

  • :f 輸出文件名和當前行的行號

常用實例

root@DESKTOP-KV8R5US:/#?more?a.txt

3.13 less

基本用法

less 的作用與 more 十分相似,都可以用來瀏覽文字檔案的內容,不同的是 less 允許使用[pageup] [pagedown]往回滾動。

less?[options]?fileName
  • 空白鍵 :向下翻動一頁;

  • [pagedown]:向下翻動一頁;

  • [pageup] :向上翻動一頁;

  • /字串 :向下搜尋『字串』的功能;n:向下查找;N:向上查找;

  • ?字串 :向上搜尋『字串』的功能;n:向上查找;N:向下查找;

  • q :離開 less 這個程序;

常用實例

root@DESKTOP-KV8R5US:/#?less?a.txt

3.14 head

基本用法

head?[options]?fileName
  • -n x 查看文件頭x行內容

常用實例

root@DESKTOP-KV8R5US:/#?head?-n?1?a.txt
total?580

3.15 tail

基本用法

tail?[options]?fileName
  • -f 實時追蹤該文檔的所有更新

  • -n x 查看文件末尾x行內容

常用實例

root@DESKTOP-KV8R5US:/#?tail?-n?1?a.txt
drwxr-xr-x??1?root?root????512?Mar??5?00:02?var

3.16 echo

基本用法

顯示一行文本,用于字符串的輸出。

echo?[SHORT-OPTION]...?[STRING]...
echo?LONG-OPTION

常用案例

顯示普通字符串

root@DESKTOP-KV8R5US:/#?echo?"hello?bdc+"
hello?bdc+

顯示轉義字符

root@DESKTOP-KV8R5US:/#?echo?"\"It?is?echo\""
"It?is?echo"

顯示變量

root@DESKTOP-KV8R5US:/#?echo?$PWD
/

顯示換行

root@DESKTOP-KV8R5US:/#?echo?-e?"OK!?\n"
OK!

輸出結構到文件

root@DESKTOP-KV8R5US:/#?echo?"It?is?echo"?>?myfile
root@DESKTOP-KV8R5US:/#?cat?myfile
It?is?echo?

顯示命令內容

root@DESKTOP-KV8R5US:/#?echo?`date`
Tue?Jun?23?10:44:48?CST?2020???

3.17 >>

基本語法

重定向

>?列表的內容寫入文件中(覆蓋寫)
>>?列表的內容追加到文件末尾

常用案例

root@DESKTOP-KV8R5US:/#?ls?-l?>?a.txt
root@DESKTOP-KV8R5US:/#?ls?-l?>>?a.txt

3.18 ln

基本用法

Linux ln命令是一個非常重要命令,它的功能是為某一個文件在另外一個位置建立一個同步的鏈接。

當我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在某個固定的目錄,放上該文件,然后在 其它的目錄下用ln命令鏈接(link)它就可以,不必重復的占用磁盤空間。

Linux文件系統中,有所謂的鏈接(link),我們可以將其視為檔案的別名,而鏈接又可分為兩種 : 硬鏈接(hard link)與軟鏈接(symbolic link),硬鏈接的意思是一個檔案可以有多個名稱,而軟鏈接的方式則是產生一個特殊的檔案,該檔案的內容是指向另一個檔案的位置。硬鏈接是存在同一個文件系統中,而軟鏈接卻可以跨越不同的文件系統。

不論是硬鏈接或軟鏈接都不會將原本的檔案復制一份,只會占用非常少量的磁碟空間。

軟鏈接,以路徑的形式存在。類似于Windows操作系統中的快捷方式

軟鏈接可以 跨文件系統 ,硬鏈接不可以

軟鏈接可以對一個不存在的文件名進行鏈接

軟鏈接可以對目錄進行鏈接

硬鏈接,以文件副本的形式存在。但不占用實際空間。

不允許給目錄創建硬鏈接

硬鏈接只有在同一個文件系統中才能創建

ln?[options]?[source/dir]?[dest/dir]
  • -s 軟鏈接(符號鏈接)

  • -b 刪除,覆蓋以前建立的鏈接

  • -d 允許超級用戶制作目錄的硬鏈接

  • -f 強制執行

  • -i 交互模式,文件存在則提示用戶是否覆蓋

  • -n 把符號鏈接視為一般目錄

  • -v 顯示詳細的處理過程

常用實例

給hadoop目錄創建軟鏈接/ln/hadoop,如果hadoop丟失,/ln/hadoop將失效:

ln?-s?hadoop?/ln/hadoop

cd不加參數進入是軟鏈接的地址

cd?hadoop

cd加參數進入是實際的物理地址

cd?-P?hadoop

3.19 history

基本用法

顯示所操作歷史記錄列表。

history?[-c]?[-d?offset]?[n]?or?history?-anrw?[filename]?or?history?-ps?arg?[arg...]

常用案例

history


文件權限類


4.1 文件屬性

Linux系統是一種典型的多用戶系統,不同的用戶處于不同的地位,擁有不同的權限。為了保護系統的安全性,Linux系統對不同的用戶訪問同一文件(包括目錄文件)的權限做了不同的規定。在Linux中我們可以使用ll或者ls –l命令來顯示一個文件的屬性以及文件所屬的用戶和組。

文件類型屬主權限屬組權限其他用戶權限
01 2 34 5 67 8 9
dR w xR - xR - x
目錄文件讀 寫 執行讀 寫 執行讀 寫 執行

0首位表示類型

在Linux中第一個字符代表這個文件是目錄、文件或鏈接文件等等

  • - 代表文件

  • d 代表目錄

  • c 字符流,裝置文件里面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)

  • s socket

  • p 管道

  • l 鏈接文檔(link file);

  • b 設備文件,裝置文件里面的可供儲存的接口設備(可隨機存取裝置)

第1-3位確定屬主(該文件的所有者)擁有該文件的權限。---User

第4-6位確定屬組(所有者的同組用戶)擁有該文件的權限,---Group

第7-9位確定其他用戶擁有該文件的權限 ---Other

rxw作用文件和目錄的不同解釋

作用到文件:

  • [ r ]代表可讀(read): 可以讀取,查看

  • [ w ]代表可寫(write): 可以修改,但是不代表可以刪除該文件,刪除一個文件的前提條件是對該文件所在的目錄有寫權限,才能刪除該文件.

  • [ x ]代表可執行(execute):可以被系統執行

作用到目錄:

  • [ r ]代表可讀(read): 可以讀取,ls查看目錄內容

  • [ w ]代表可寫(write): 可以修改,目錄內創建+刪除+重命名目錄

  • [ x ]代表可執行(execute):可以進入該目錄

4.2 chmod改變權限

基本用法

文件類型屬主權限 u屬組權限 g其他用戶權限 o
01 2 34 5 67 8 9
dR w xR - xR - x
目錄文件讀 寫 執行讀 寫 執行讀 寫 執行
u:所有者 g:所有組 o:其他人 a:所有人(u、g、o的總和)

chmod?[{ugoa}{+-=}{rwx}]?[文件或目錄]?[mode=421?]?[文件或目錄]?
chmod?[mode=421?]?[文件或目錄]

功能描述

改變文件或者目錄權限

文件: r-查看;w-修改;x-執行文件

目錄: r-列出目錄內容;w-在目錄中創建和刪除;x-進入目錄

刪除一個文件的前提條件:該文件所在的目錄有寫權限,你才能刪除該文件。

4.3 chown改變所有者

基本語法

chown?[最終用戶]?[文件或目錄]?????(功能描述:改變文件或者目錄的所有者)
  • -R 遞歸操作

4.4 chgrp改變所屬組

基本語法

chgrp?[最終用戶組]?[文件或目錄]???(功能描述:改變文件或者目錄的所屬組)

時間日期類

5.1 date顯示當前時間

data 顯示當前時間

Tue?Jun?16?20:03:43?CST?2020

date +%Y 顯示當前年份 (Y是4位的年/y是2位的年)

2020

date +%m 顯示當前月份

06

date +%Y%m%d date +%Y-%m-%d date +%Y/%m/%d 顯示當前年月日各種格式

20200616????2020-06-16????2020/06/16

date "+%Y-%m-%d %H:%M:%S" 顯示年月日時分秒

2020-06-16?20:10:08

5.2 date 顯示非當前時間

date -d yesterday +%Y%m%d 或 date -d '1 days ago' 顯示昨天當下時間

20200615?或?Tue?Jun?15?20:12:55?CST?2020

date -d next-day +%Y%m%d 或 date -d 'next monday' 顯示明天當下時間

20200617?或?Tue?Jun?17?20:15:15?CST?2020

5.3 date 設置系統時間

date -s 字符串時間

date?-s?"xxxx-xx-xx?xx:xx:xx"

在設置完時間之后我們可以將其寫入到BIOS,避免重啟失效

hwclock?-w????強制把系統時間寫入CMOS

在計算機領域,CMOS常指保存計算機基本啟動信息(如日期、時間、啟動設置等)的芯片。有時人們會把CMOS和BIOS混稱,其實CMOS是主板上的一塊可讀寫的并行或串行FLASH芯片,是用來保存BIOS的硬件配置和用戶對某些參數的設定。

5.4 cal 查看日歷

cal 顯示本月日歷

June?2020
Su?Mo?Tu?We?Th?Fr?Sa1??2??3??4??5??67??8??9?10?11?12?13
14?15?16?17?18?19?20
21?22?23?24?25?26?27
28?29?30

cal 2000 顯示某年(2000)日歷

2000January???????????????February???????????????March
Su?Mo?Tu?We?Th?Fr?Sa??Su?Mo?Tu?We?Th?Fr?Sa??Su?Mo?Tu?We?Th?Fr?Sa1?????????1??2??3??4??5????????????1??2??3??42??3??4??5??6??7??8???6??7??8??9?10?11?12???5??6??7??8??9?10?119?10?11?12?13?14?15??13?14?15?16?17?18?19??12?13?14?15?16?17?18
16?17?18?19?20?21?22??20?21?22?23?24?25?26??19?20?21?22?23?24?25
23?24?25?26?27?28?29??27?28?29??????????????26?27?28?29?30?31
30?31April??????????????????May???????????????????June
Su?Mo?Tu?We?Th?Fr?Sa??Su?Mo?Tu?We?Th?Fr?Sa??Su?Mo?Tu?We?Th?Fr?Sa1??????1??2??3??4??5??6???????????????1??2??32??3??4??5??6??7??8???7??8??9?10?11?12?13???4??5??6??7??8??9?109?10?11?12?13?14?15??14?15?16?17?18?19?20??11?12?13?14?15?16?17
16?17?18?19?20?21?22??21?22?23?24?25?26?27??18?19?20?21?22?23?24
23?24?25?26?27?28?29??28?29?30?31???????????25?26?27?28?29?30
30July?????????????????August??????????????September
Su?Mo?Tu?We?Th?Fr?Sa??Su?Mo?Tu?We?Th?Fr?Sa??Su?Mo?Tu?We?Th?Fr?Sa1?????????1??2??3??4??5??????????????????1??22??3??4??5??6??7??8???6??7??8??9?10?11?12???3??4??5??6??7??8??99?10?11?12?13?14?15??13?14?15?16?17?18?19??10?11?12?13?14?15?16
16?17?18?19?20?21?22??20?21?22?23?24?25?26??17?18?19?20?21?22?23
23?24?25?26?27?28?29??27?28?29?30?31????????24?25?26?27?28?29?30
30?31October???????????????November??????????????December
Su?Mo?Tu?We?Th?Fr?Sa??Su?Mo?Tu?We?Th?Fr?Sa??Su?Mo?Tu?We?Th?Fr?Sa1??2??3??4??5??6??7????????????1??2??3??4??????????????????1??28??9?10?11?12?13?14???5??6??7??8??9?10?11???3??4??5??6??7??8??9
15?16?17?18?19?20?21??12?13?14?15?16?17?18??10?11?12?13?14?15?16
22?23?24?25?26?27?28??19?20?21?22?23?24?25??17?18?19?20?21?22?23
29?30?31??????????????26?27?28?29?30????????24?25?26?27?28?29?3031

cal -3 顯示系統前一個月,當前月,下一個月的日歷

May?2020?????????????June?2020?????????????July?2020
Su?Mo?Tu?We?Th?Fr?Sa??Su?Mo?Tu?We?Th?Fr?Sa??Su?Mo?Tu?We?Th?Fr?Sa1??2??????1??2??3??4??5??6????????????1??2??3??43??4??5??6??7??8??9???7??8??9?10?11?12?13???5??6??7??8??9?10?11
10?11?12?13?14?15?16??14?15?16?17?18?19?20??12?13?14?15?16?17?18
17?18?19?20?21?22?23??21?22?23?24?25?26?27??19?20?21?22?23?24?25
24?25?26?27?28?29?30??28?29?30??????????????26?27?28?29?30?31
31??

搜索查找類

6.1 find

基本語法

find 查找文件或者目錄

find指令將從指定目錄向下遞歸地遍歷其各個子目錄,將滿足條件的文件顯示在終端。

find?[搜索范圍]?[匹配條件]

選項功能
-name<查詢方式>按照指定的文件名查找模式查找文件
-user<用戶名>查找屬于指定用戶名所有文件

常用實例

按文件名:根據名稱查找/opt目錄下的filename.txt文件。

find?/opt/?-name?filename.txt

按擁有者:查找/opt目錄下,用戶名稱為userbdc的文件。

find?/opt/?-user?userbdc

按文件大小:在/home目錄下查找大于200m的文件(+n 大于 -n小于 n等于)。

find?/home?–size?+204800

6.2 grep

基本語法

grep 在文件內搜索字符串匹配的行并輸出

管道符,“|”,表示將前一個命令的處理結果輸出傳遞給后面的命令處理

grep+參數+查找內容+源文件
  • -c:只輸出匹配行的計數。

  • -I:不區分大小寫(只適用于單字符)。

  • -h:查詢多文件時不顯示文件名。

  • -l:查詢多文件時只輸出包含匹配字符的文件名。

  • -n:顯示匹配行及行號。

  • -s:不顯示不存在或無匹配文本的錯誤信息。

  • -v:顯示不包含匹配文本的所有行。

6.3 which

基本用法

文件搜索命令

搜索命令所在目錄及別名信息

which?+?命令

進程線程類

進程是正在執行的一個程序或命令,每一個進程都是一個運行的實體,都有自己的地址空間,并占用一定的系統資源。

7.1 ps

基本語法

ps 即 process status 進程狀態縮寫

查看系統中所有進程

ps?–aux|grep?xxx

查看父子進程之間的關系

ps?-ef|grep?xxx
  • -a 選擇所有進程

  • -u 顯示所有用戶的所有進程

  • -x 顯示沒有終端的進程

特點

如果想查看進程的CPU****占用率和內存占用率,可以使用aux;

如果想查看進程的父進程****ID可以使用ef;

常用實例

ps?–aux

USER:該進程是由哪個用戶產生的

PID:進程的ID號

%CPU:該進程占用CPU資源的百分比,占用越高,進程越耗費資源;

%MEM:該進程占用物理內存的百分比,占用越高,進程越耗費資源;

VSZ:該進程占用虛擬內存的大小,單位KB;

RSS:該進程占用實際物理內存的大小,單位KB;

TTY:該進程是在哪個終端中運行的。其中tty1-tty7代表本地控制臺終端,tty1-tty6是本地的字符界面終端,tty7是圖形終端。pts/0-255代表虛擬終端。

STAT:進程狀態。常見的狀態有:R:運行、S:睡眠、T:停止狀態、s:包含子進程、+:位于后臺

START:該進程的啟動時間

TIME:該進程占用CPU的運算時間,注意不是系統時間

COMMAND:產生此進程的命令名

ps?-ef

UID:用戶ID

PID:進程ID

PPID:父進程ID

C:CPU用于計算執行優先級的因子。數值越大,表明進程是CPU密集型運算,執行優先級會降低;數值越小,表明進程是I/O密集型運算,執行優先級會提高

STIME:進程啟動的時間

TTY:完整的終端名稱

TIME:CPU時間

CMD:啟動進程所用的命令和參數

7.2 top

基本語法

查看系統基本狀態

top?-hv?|?-bcHiOSs?-d?secs?-n?max?-u|U?user?-p?pid(s)?-o?field?-w?[cols]
  • -d 秒數:指定top命令每隔幾秒更新。默認是3秒在top命令的交互模式當中可以執行的命令:

  • -i:使top不顯示任何閑置或者僵死進程。

  • -p:通過指定監控進程ID來僅僅監控某個進程的狀態。

  • -s :使top命令在安全模式中運行。這將去除交互命令所帶來的潛在危險。

操作選項

  • P:以CPU使用率排序,默認就是此項

  • M:以內存的使用率排序

  • N:以PID排序

  • q:退出top

查詢結果字段解釋

第一行信息為任務隊列信息

內容說明
12:26:46系統當前時間
up 1 day, 13:32系統的運行時間,本機已經運行1天 13小時32分鐘
2 users當前登錄了兩個用戶
load average: 0.00, 0.00, 0.00系統在之前1分鐘,5分鐘,15分鐘的平均負載。一般認為小于1時,負載較小。如果大于1,系統已經超出負荷。

第二行為進程信息

Tasks: 95 total系統中的進程總數
1 running正在運行的進程數
94 sleeping睡眠的進程
0 stopped正在停止的進程
0 zombie僵尸進程。如果不是0,需要手工檢 查僵尸進程

第三行為CPU信息

Cpu(s): 0.1%us用戶模式占用的CPU百分比
0.1%sy系統模式占用的CPU百分比
0.0%ni改變過優先級的用戶進程占用的CPU百分比
99.7%id空閑CPU的CPU百分比
0.1%wa等待輸入/輸出的進程的占用CPU百分比
0.0%hi硬中斷請求服務占用的CPU百分比
0.1%si軟中斷請求服務占用的CPU百分比
0.0%stst(Steal time)虛擬時間百分比。就是當有虛擬機時,虛擬CPU等待實際CPU的時間百分比。

第四行為物理內存信息

Mem: 625344k total物理內存的總量,單位KB
571504k used已經使用的物理內存數量
53840k free空閑的物理內存數量,我們使用的是虛擬機,總共只分配了628MB內存,所以只有53MB的空閑內存了
65800k buffers作為緩沖的內存數量

第五行為交換分區(swap)信息

Swap: 524280k total交換分區(虛擬內存)的總大小
0k used已經使用的交互分區的大小
524280k free空閑交換分區的大小
409280k cached作為緩存的交互分區的大小

7.3 pstree

基本語法

pstree?[-a]?[-c]?[-h|-Hpid]?[-l]?[-n]?[-p]?[-u]?[-G|-U]?[pid|user]
  • -p 顯示進程的PID

  • -u 顯示進程的所屬用戶

常用實例

pstree?-u
pstree?-p

7.4 kill

基本用法

終止進程

強迫進程立即停止執行

kill?-9?pid進程號

常用案例

根據進程號

kill?-9??xxxxx

根據進程名稱

killall?firefox

7.5 netstat

基本語法

查看該進程網絡信息&查看端口號占用情況

netstat?–anp|grep?端口號??
(功能描述:此命令用來顯示整個系統目前的網絡情況。例如目前的連接、數據包傳遞數據、或是路由表內容)
netstat?-nlp??|?grep?端口號????
(功能描述:查看網絡端口號占用情況)
  • -an 按一定順序排列輸出

  • -p 表示顯示哪個進程在調用

  • nltp 查看tcp協議進程端口號

常用實例

netstat?-anp?|?grep?50070

打包壓縮類

8.1 gzip/gunzip

基本語法

壓縮文件,只能將文件壓縮為*.gz文件

gzip?file

解壓縮文件命令

gunzip??file.zip

特點

只能壓縮文件不能壓縮目錄

不保留原來的文件

8.2 zip/unzip

基本語法

zip?+?參數?+?XXX.zip?+?將要壓縮的文件或目錄
  • -r 壓縮目錄

特點

  • 文件和目錄皆可壓縮

  • window/linux通用且可以壓縮目錄且保留源文件

8.3 tar

基本語法

tar?+?參數?+?XXX.tar.gz?+?將要打包進去的內容
  • -c 產生.tar打包文件

  • -v 顯示詳細信息

  • -f 指定壓縮后的文件名

  • -z 打包同時壓縮

  • -x 解包.tar文件

常用實例

解壓

tar?-zxvf?test.tar.gz?–C?/dir

壓縮

?tar?-zcvf?test

軟件包類

9.1 rpm

概述

RPM(RedHat Package Manager),Rethat軟件包管理工具,類似windows里面的setup.exe是Linux這系列操作系統里面的打包安裝工具,它雖然是RedHat的標志,但理念是通用的。

RPM包的名稱格式

  • Apache-1.3.23-11.i386.rpm

  • “apache” 軟件名稱

  • “1.3.23-11”軟件的版本號,主版本和此版本

  • “i386”是軟件所運行的硬件平臺

  • “rpm”文件擴展名,代表RPM包

查詢命令

查詢所安裝的所有rpm軟件包

rpm?–qa

由于軟件包比較多,一般都會采取過濾

rpm?–qa?|?grep?rpm軟件包

安裝命令

rpm?–ivh?RPM包全名
  • -i=install,安裝

  • -v=verbose,顯示詳細信息

  • -h=hash,進度條

  • --nodeps,不檢測依賴進度

卸載命令

一般常規卸載

rpm?-e?RPM軟件包

如果該RPM包的安裝依賴其它包,即使其它包沒裝,也強迫安裝。

?rpm?-e?--nodeps?rpm軟件包?

9.2 yum

概述

在Linux上使用源碼的方式安裝軟件非常麻煩,使用yum可以簡化安裝的過程

基本語法

yum?[options]?[command]?[package?...]

選項功能
-y對所有提問都回答“yes”
參數功能
install安裝rpm軟件包
update更新rpm軟件包
check-update檢查是否有可用的更新rpm軟件包
remove刪除指定的rpm軟件包
list顯示軟件包信息
clean清理yum過期的緩存
deplist顯示yum軟件包的所有依賴關系

常用實例

安裝指定軟件并確認安裝

yum?install?-y?<package_name>

刪除指定軟件并確認刪除

yum?remove??-y?<package_name>

列出所有可安裝的軟件清單命令

yum?list

列出一個包所有依賴的包

yum?deplist?httpd

列出所有可更新的軟件清單命令

yum?check-update

更新所有軟件命令

yum?update

僅更新指定的軟件命令

yum?update?<package_name>

查找軟件包 命令

yum?search?<keyword>

清除緩存目錄下的軟件包及舊的headers

yum?clean

寫在最后


選擇不對努力白費,選擇若對事半功倍。

正確使用一些快捷鍵可以讓你更高效的完成任務。

  • ctrl + c:停止進程

  • ctrl+l:清屏

  • ctrl + q:退出

  • ctrl +alt:linux和Windows之間切換

  • 上下鍵:查找執行過的命令

  • tab鍵:自動補全

【END】

更多精彩推薦
?滴滴上線自動駕駛服務;微軟宣布將永久關閉實體店;.NET 5.0 Preview 6 發布 | 極客頭條
?Python 爬取 201865 條《隱秘的角落》彈幕,發現看劇不如爬山?
?零基礎編程小白如何拿 Offer?八年經驗面試官萬字肺腑之言
?無代碼開發到底是不是偽需求?
?沒了Macbook的英特爾還好嗎?
?Spring 從入門到入土——AOP 就這么簡單!| 原力計劃
?硬核!國外開發者用 25 美元做了個區塊鏈警佩相機!
你點的每個“在看”,我都認真當成了喜歡

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/161398.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息