一、系統(tǒng)管理命令
1.1、systemctl命令:用于向系統(tǒng)發(fā)出查詢或者管理命令。
systemctl list-unit-files //通過如下命令查看我們可管理的服務(wù)列表
systemctl管理防火墻示例,systemctl作為AnolisOS 8常用命令,可以設(shè)置開機(jī)啟動(dòng)、停止、重啟、查看狀態(tài)等。
systemctl start firewalld.service //示例,啟動(dòng)防火墻,.service可以省略
systemctl stop firewalld //示例,停止防火墻
systemctl restart firewalld //示例,重啟防火墻
systemctl status firewalld //示例,查看防火墻狀態(tài)
systemctl enable firewalld //示例,設(shè)置開機(jī)啟動(dòng)防火墻
systemctl disable firewalld //示例,取消開機(jī)啟動(dòng)防火墻
1.2、date命令:顯示或設(shè)定系統(tǒng)的日期與時(shí)間
其中參數(shù) -d <字符串> ,顯示字符串所指的日期與時(shí)間,字符串前后必須加上雙引號(hào)。
date +%Y%m%d //顯示今天的日期
[root@anolis8 data]# date +%Y%m%d
20221004
date +%Y%m%d --date="+1 day" //顯示明天的日期
[root@anolis8 data]# date +%Y%m%d --date="+1 day"
20221005
date -d "nov 22" //-d 參數(shù)使用 顯示當(dāng)前年份的 11月22日
[root@anolis8 data]# date -d "nov 22"
2022年 11月 22日 星期二 00:00:00 CST
1.3、free命令:用于顯示系統(tǒng)內(nèi)存使用情況,包括物理內(nèi)存、交互區(qū)內(nèi)存(swap)和內(nèi)核緩沖區(qū)內(nèi)存
其中參數(shù) -b 以 Byte 為單位顯示內(nèi)存使用情況,-k 以KB為單位來顯示內(nèi)存的信息,-m 以MB為單位來顯示內(nèi)存的信息,-g 以GB為單位來顯示內(nèi)存的信息,-h 人性化顯示。返回參數(shù)詳細(xì)解析如下。
[root@anolis8 ~]# free -h
total used free shared buff/cache available
Mem: 3.6Gi 203Mi 3.0Gi 8.0Mi 465Mi 3.2Gi
Swap: 3.9Gi 0B 3.9Gi
total: 內(nèi)存總數(shù);
used: 已經(jīng)使用內(nèi)存數(shù);
free: 完全空閑內(nèi)存;
shared: 多個(gè)進(jìn)程共享的內(nèi)存;
buffers: 用于塊設(shè)備數(shù)據(jù)緩沖,記錄文件系統(tǒng)metadata(目錄,權(quán)限,屬性等);
cached: 用于文件內(nèi)容的緩沖;
available:真正剩余的可被程序應(yīng)用的內(nèi)存數(shù)。
free //顯示內(nèi)存
free -t //以總和的形式顯示全部?jī)?nèi)存的使用信息
free -h //使用易讀的人性化方式顯示
1.4、kill命令:用于刪除執(zhí)行中的程序或工作
參數(shù) -l 信號(hào),列出全部的信號(hào)名稱。一般使用 ps 命令可以查看進(jìn)程號(hào),然后使用 kill 命令進(jìn)行相關(guān)操作。
ps -ef | grep firewalld //查看 firewalld 的進(jìn)程號(hào),例如防火墻的進(jìn)程返回1147
kill 1147 //停止進(jìn)程1147
kill -9 1147 //強(qiáng)制徹底干掉進(jìn)程
kill -l //顯示所有的信號(hào),其中 參數(shù) -9 代表的是SIGKILL
1.5、ps命令:用來查看當(dāng)前運(yùn)行的進(jìn)程狀態(tài),英文為 process status
了解 ps 命令前,首先了解下 AnolisOS 8 的五種進(jìn)程狀態(tài):
運(yùn)行(正在運(yùn)行或在運(yùn)行隊(duì)列中等待);
中斷(休眠中, 受阻, 在等待某個(gè)條件的形成或接受到信號(hào));
不可中斷(收到信號(hào)不喚醒和不可運(yùn)行, 進(jìn)程必須等待直到有中斷發(fā)生);
僵死(進(jìn)程已終止, 但進(jìn)程描述符存在, 直到父進(jìn)程調(diào)用wait4()系統(tǒng)調(diào)用后釋放);
停止(進(jìn)程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號(hào)后停止運(yùn)行運(yùn)行)。
ps -ef //顯示當(dāng)前所有進(jìn)程環(huán)境變量及進(jìn)程間關(guān)系
ps -A //顯示當(dāng)前所有進(jìn)程
ps -ef | grep firewalld //配合 grep 命令查找某個(gè)進(jìn)程
1.6、rpm命令:用于管理套件
其中參數(shù) -i 顯示套件的相關(guān)信息,-v 顯示指令執(zhí)行過程,-h列出標(biāo)記。
rpm -hvi xxx.noarch.rpm //安裝軟件包,并顯示安裝進(jìn)度
rpm -Uvh xxx.noarch.rpm //升級(jí)軟件包
rpm -qpl xxx.noarch.rpm //列出RPM軟件包內(nèi)的文件信息
rpm -Va xxx.noarch.rpm //校驗(yàn)所有的RPM軟件包,查找丟失的文件
rpm -e xxx.noarch.rpm //刪除包
1.7、top命令:顯示當(dāng)前系統(tǒng)正在執(zhí)行的進(jìn)程的相關(guān)信息,包括進(jìn)程 ID、內(nèi)存占用率、CPU 占用率等
其中常用的參數(shù) -c 顯示完整的進(jìn)程命令。返回結(jié)果詳細(xì)解析。
[root@anolis8 ~]# top
top - 17:34:31 up 2 days, 23:44, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 213 total, 1 running, 212 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.1 us, 0.1 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.1 hi, 0.1 si, 0.0 st
MiB Mem : 3736.3 total, 3066.0 free, 204.3 used, 466.1 buff/cache
MiB Swap: 4044.0 total, 4044.0 free, 0.0 used. 3301.9 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
998 root 20 0 278960 13616 9664 S 0.3 0.4 3:31.19 vmtoolsd
5397 root 20 0 65764 4932 4020 R 0.3 0.1 0:00.04 top
1 root 20 0 251620 12040 8756 S 0.0 0.3 0:05.89 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.23 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-events_highpri
9 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
第一行,任務(wù)隊(duì)列
17:34:31 #當(dāng)前系統(tǒng)時(shí)間;
up 2 days, 23:44, #系統(tǒng)已經(jīng)連續(xù)運(yùn)行了2天23小時(shí)44分鐘;
1 users #當(dāng)前有1個(gè)用戶登錄系統(tǒng);
load average: 0.00, 0.00, 0.00 #后面的三個(gè)數(shù)分別是1分鐘、5分鐘、15分鐘的負(fù)載情況。load average 數(shù)據(jù)是每隔5秒鐘檢查一次活躍的進(jìn)程數(shù),如果這個(gè)數(shù)除邏輯CPU的數(shù)量后結(jié)果高于5的時(shí)候就表明系統(tǒng)在超負(fù)荷運(yùn)轉(zhuǎn)了。
第二行,進(jìn)程信息
返回結(jié)果:
Tasks: 213 total, 1 running, 212 sleeping, 0 stopped, 0 zombie
一共213個(gè)進(jìn)程,其中處于運(yùn)行中的有1個(gè),212個(gè)在休眠(sleep),stoped狀態(tài)的有0個(gè),zombie狀態(tài)(僵尸進(jìn)程)的有0個(gè)。
第三行,CPU信息
返回結(jié)果:
%Cpu(s): 0.1 us, 0.1 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.1 hi, 0.1 si, 0.0 st。
us 用戶空間占用CPU百分比;
sy 內(nèi)核空間占用CPU百分比;
ni 用戶進(jìn)程空間內(nèi)改變過優(yōu)先級(jí)的進(jìn)程占用CPU百分比;
id 空閑CPU百分比;
wa 等待輸入輸出的CPU時(shí)間百分比;
hi 硬件中斷;
si 軟件中斷 ;
st: 實(shí)時(shí)。
第四行,內(nèi)存信息
返回結(jié)果:
MiB Mem : 3736.3 total, 3066.0 free, 204.3 used, 466.1 buff/cache
第五行,交換分區(qū)
返回結(jié)果:
MiB Swap: 4044.0 total, 4044.0 free, 0.0 used. 3301.9 avail Mem
第六行,空行用于分割,第七行和以下行,進(jìn)程狀態(tài)
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
998 root 20 0 278960 13616 9664 S 0.3 0.4 3:31.19 vmtoolsd
PR:進(jìn)程優(yōu)先級(jí);
NI:負(fù)值表示高優(yōu)先級(jí),正值表示低優(yōu)先級(jí);
VIRT:Virtual memory usage 虛擬內(nèi)存;
RES:Resident memory usage 常駐內(nèi)存;
SHR:Shared memory 共享內(nèi)存;
S : Process status 進(jìn)程狀態(tài)。 D=不可中斷的睡眠狀態(tài) R=運(yùn)行 S=睡眠 T=跟蹤/停止 Z=僵尸進(jìn)程;
%CPU:上次更新到現(xiàn)在的CPU時(shí)間占用百分比;
%MEM:進(jìn)程使用的物理內(nèi)存百分比;
TIME+:進(jìn)程使用的CPU時(shí)間總計(jì),單位1/100秒;
COMMAN:進(jìn)程名稱(命令名/命令行)。
1.8、dnf命令:用于CentOS8發(fā)行版軟件包的管理
dnf install xxx //安裝軟件xxx
dnf update xxx //升級(jí)軟件xxx
dnf remove xxx //卸載軟件xxx
二、文件管理命令
2.1、cat命令:用于連接文件并打印到標(biāo)準(zhǔn)輸出設(shè)備上
cat /try8/test.log //示例,try8 為根目錄下的文件夾,此處打印一個(gè)文件
cat > /try8/test.log //示例,創(chuàng)建一個(gè)文件,不能編輯
cat -n /try8/test1.log /try8/test.log //示例,合并多個(gè)文件,中間用空格隔開,例如將 test1.log 合并到 test.log 中,并自動(dòng)添加行號(hào)
2.2、chmod命令:用于改變 linux 系統(tǒng)文件或目錄的訪問權(quán)限
chmod -R 777 /try8 //示例,為文件夾 try8 設(shè)置權(quán)限 777
2.3、chown命令:將指定文件的擁有者改為指定的用戶或組
如果加上參數(shù) -c 顯示更改的部分信息,-R 遞歸子目錄。
chown -cR test:test /try8
2.4、cp命令:將源文件復(fù)制至目標(biāo)文件,或?qū)⒍鄠€(gè)源文件復(fù)制至目標(biāo)目錄
如果加上參數(shù),-a 是遞歸拷貝, -i 系統(tǒng)提醒,下面展示復(fù)制到 data 文件夾。
cp -ai try8/test.log /data
2.5、find命令:于在文件樹中查找文件,并作出相應(yīng)的處理
格式為:find pathname -options [-name -print -exec -ok ...]。pathname 是 find命令所查找的目錄路徑。例如用.來表示當(dāng)前目錄,用/來表示系統(tǒng)根目錄。-name 按照文件名查找文件。-exec 后面跟的是 command 命令,它的終止是以 ; 為結(jié)束標(biāo)志,這句命令后面的分號(hào)是不可缺少的,考慮到各個(gè)系統(tǒng)中分號(hào)會(huì)有不同的意義,所以前面加反斜杠。{} 花括號(hào)代表前面 find 查找出來的文件名。
find ./ -name '*.log' //在當(dāng)前目錄查找 以 .log 結(jié)尾的文件
find /try8 -perm 755 //查看 try8 目錄下為 755 權(quán)限的文件
find ./ -type f -size +100M -exec ls -lh {} \; | awk '{ print $9 ":" $5 }'; //查找當(dāng)前目錄下大于100M的文件
2.6、head命令:用來顯示輸出檔案的開頭,默認(rèn) head 命令打印文件的前十行
格式為:head -n 行數(shù),其中參數(shù) -n 后面緊跟行數(shù),如果行數(shù)為負(fù)數(shù)表示從最后向前數(shù)。
head /try8/test.log -n 10 //輸出顯示 test.log 文件的前十行
head -n -10 /try8/test.log //輸出顯示 test.log 文件的后十行
2.7、tail命令:用于顯示指定文件末尾內(nèi)容,不指定文件時(shí),作為輸入信息進(jìn)行處理,常用查看日志文件
參數(shù) -f 循環(huán)讀取,常用于查看遞增的日志文件。
tail -f /try8/test.log
2.8、less命令:用來隨意瀏覽文件,less在查看之前不會(huì)加載整個(gè)文件
切換多個(gè)文件時(shí),先輸入冒號(hào)等待命令,然后使用 n 鍵來查看下一個(gè),使用 p 鍵查看前一個(gè),按鍵 q 退出。
less /try8/test.log //查看一個(gè)文件
less /try8/test.log test1.log //查看多個(gè)文件
2.9、more命令:分頁(yè)顯示
方便使用者逐頁(yè)閱讀,最基本的指令就是按空白鍵(space)就往下一頁(yè)顯示,按 b 鍵就會(huì)往回(back)一頁(yè)顯示,參數(shù) +n 從笫 n 行開始顯示。
more +2 /try8/test.log //顯示輸出文件,從第二行開始
2.10、ln命令:是為了創(chuàng)建軟件鏈接及硬鏈接
ln 功能是為文件在另外一個(gè)位置建立一個(gè)同步的鏈接,當(dāng)在不同目錄需要時(shí),就不需要為每一個(gè)目錄創(chuàng)建同樣的文件,通過 ln 創(chuàng)建的鏈接(link)減少磁盤占用量。ln的鏈接又分軟鏈接和硬鏈接兩種,軟鏈接格式為:ln –s 源文件 目標(biāo)文件,它只會(huì)在你選定的位置上生成一個(gè)文件的鏡像,不會(huì)占用磁盤空間,硬鏈接格式為:ln 源文件 目標(biāo)文件,沒有參數(shù) -s, 它會(huì)在你選定的位置上生成一個(gè)和源文件大小相同的文件,硬鏈接不支持給目錄創(chuàng)建,無論是軟鏈接還是硬鏈接,文件都保持同步變化,其中參數(shù) -b 刪除,覆蓋以前建立的鏈接,參數(shù) -v 顯示操作信息。
- 給文件創(chuàng)建軟鏈接,新增的文件 test.link.log 相當(dāng)于 windows 里面的快捷方式,并不會(huì)實(shí)際占用磁盤空間
ln -sv /try8/test.log /try8/test.link.log
ln -v /try8/test.log /try8/test.link.log //給文件創(chuàng)建硬鏈接,并顯示詳細(xì)信息
ln -sv /try8/test /try8/test_link //給目錄創(chuàng)建軟鏈接,并顯示詳細(xì)信息
2.11、mv命令:是移動(dòng)文件或修改文件名
根據(jù)第二參數(shù)類型,如果是目錄則移動(dòng)文件,如果為文件則重命令該文件。
mv /try8/test.log /try8/test.txt //將文件 test.log 重命名為 test.txt
mv /try8/test.log /try8/test.txt /try8/test //將文件 test.log,test.txt 移動(dòng)到 test 目錄中
mv * ../ //移動(dòng)當(dāng)前文件夾下的所有文件到上一級(jí)目錄
2.12、rm命令:刪除一個(gè)目錄中的一個(gè)或多個(gè)文件或目錄
如果沒有使用 -r 選項(xiàng),則 rm 不會(huì)刪除目錄。如果使用 rm 來刪除文件,通常仍可以將該文件恢復(fù)原狀。
rm -i /try8/*.log //刪除所有以 .log結(jié)尾的文件,刪除前系統(tǒng)會(huì)逐一詢問確認(rèn)該操作
rm -rf /try8/test //直接刪除 test 子目錄及子目錄中所有文件刪除,不用挨個(gè)確認(rèn)
2.13、 touch命令:用于修改文件或者目錄的時(shí)間屬性,包括存取時(shí)間和更改時(shí)間
若文件不存在,系統(tǒng)會(huì)建立一個(gè)新的空白文件。
touch /try8/test.log //創(chuàng)建一個(gè)名為“file”的新的空白文件
2.14、whereis命令:只能用于程序名的搜索
參數(shù) -b 只搜索二進(jìn)制文件、參數(shù) -m 只搜索man說明文件、參數(shù) -s 搜索源代碼文件,如果省略參數(shù),則返回所有信息。
whereis locate //查找 locate 程序相關(guān)文件
whereis -s locate //查找 locate 的源碼文件
whereis -m locate //查找 lcoate 的幫助文件
2.15、which命令:用于查找文件
which 是在 PATH 指定的路徑中,搜索系統(tǒng)命令的位置,并返回第一個(gè)搜索結(jié)果。使用 which 命令,就可以看到某個(gè)系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個(gè)位置的命令。
which which //查看 which 命令本身
三、文檔編輯命令
3.1、grep命令:是文本搜索命令
grep(Global Regular Expression Print) 全局正則表達(dá)式搜索。
ps -ef | grep firewalld //查找指定的進(jìn)程
ps -ef | grep firewalld -c //查找指定進(jìn)程個(gè)數(shù)
grep -E 'insert|update' /try8/test.log //在 test.log 中顯示包含 insert 或者 update 字符的內(nèi)容行
3.2、wc命令:統(tǒng)計(jì)指定的文件中字節(jié)數(shù)、字?jǐn)?shù)、行數(shù),并將統(tǒng)計(jì)結(jié)果輸出
格式為:wc [option] file..,參數(shù) -c 統(tǒng)計(jì)字節(jié)數(shù)。
wc /try8/test.log //查找文件的 行數(shù) 單詞數(shù) 字節(jié)數(shù) 文件名
四、磁盤管理命令
4.1、cd命令:用于切換目錄
cd / //進(jìn)入根目錄
cd ~ //進(jìn)入 home 目錄
cd - //進(jìn)入上一個(gè)目錄
cd cd !$ //把上個(gè)命令的參數(shù)作為cd參數(shù)使用
4.2、df命令:用于顯示磁盤使用情況
-a 全部文件系統(tǒng)列表。
df -l //顯示磁盤使用
df -hT //人性化顯示
4.3、du命令:是對(duì)文件和目錄磁盤使用的空間的查看
格式為:du [選項(xiàng)] [文件],其中參數(shù) -a 顯示目錄中所有文件的大小。
du -h /try8 //以易讀方式顯示文件夾內(nèi)及子文件夾大小
du -ah /try8 //以易讀方式顯示文件夾內(nèi)及所有子文件夾大小
du -hc /data /try8 //顯示幾個(gè)文件或目錄各自占用磁盤空間的大小,還統(tǒng)計(jì)它們的總和
du -hc --max-depth=1 /try8 //輸出 try8 目錄下各個(gè)子目錄所使用的空間
4.4、 ls命令:list的縮寫,查看 linux 文件夾包含的文件、文件權(quán)限、目錄信息等
ls -a //列出目錄所有文件,包含以.開始的隱藏文件
ls -lrS //按大小反序顯示文件詳細(xì)信息
ls -lhrt //按易讀方式按時(shí)間反序排序,并顯示文件詳細(xì)信息
ls -l try8* //列出當(dāng)前目錄中所有以 try8 開頭的目錄的詳細(xì)內(nèi)容
4.5、mkdir命令:用于創(chuàng)建文件夾
參數(shù) -m::對(duì)新建目錄設(shè)置存取權(quán)限。 -p: 可以是一個(gè)路徑名稱,此時(shí)若路徑中的某些目錄尚不存在,加上此選項(xiàng)后,系統(tǒng)將自動(dòng)建立好那些尚不在的目錄,即一次可以建立多個(gè)目錄。
mkdir try8.cn //在根目錄下創(chuàng)建名為 try8.cn 的文件夾。
mkdir -p try8.cn/test //在 try8.cn 目錄下創(chuàng)建路徑為 try8.cn/test/ 的目錄,若不存在,則創(chuàng)建。
4.6、pwd命令:用于查看當(dāng)前工作目錄路徑
pwd //查看當(dāng)前路徑
pwd -P //查看軟鏈接的實(shí)際路徑
4.7、rmdir命令:從一個(gè)目錄中刪除一個(gè)或多個(gè)子目錄項(xiàng)
不能刪除非空目錄,刪除某目錄時(shí)也必須具有對(duì)其父目錄的寫權(quán)限。
rmdir -p try8.cn/test //try8.cn 子目錄 test 被刪除后使它也成為空目錄的話,則一并刪除