?1、命令格式;
?????????如果用戶要使用Linux,可通過CLI方式執(zhí)行命令。在Linux中,一般命令的通用語法格式如下:
? ? ? ? ?COMMAND [OPTIONGS...] [ARGUMENTS...]
? ? ? ? 中括號表示可以省略,每個部分之間有一個或多個空格。
?每個部分詳細說明:
? ? ? ? 1)COMMAND:命令,表示可執(zhí)行命令,常見的命令有二進制格式文件,或者腳本程序文件(本身是一定格式的文本文件,但需要由解釋器解釋才能運行),如:ls
? ? ? ? 2)OPTIONS:選項,可以用來調整命令的運行特征;
? ? ? ? 3)[]中括號中的內容表示可以省略,一般命令都支持一個或多個選項,選項分為三種風格:
? ? ? ? ? ? ? ? I、UNIX風格選項:用一個短橫線(dash)開始,后面跟一個字母,又稱短選項,支持多個選項進行組合,
? ? ? ? ? ? ? ? ? ? ?如:-a,-lh
? ? ? ? ? ? ? ? II、GNU風格選項:用兩個短橫線開始,后面跟一個單詞,一般不支持多個選項組合,又稱長選項,如:
? ? ? ? ? ? ? ? ? ? ? --all,--verbose
? ? ? ? ? ? ? ? III、BSD風格選項:一個字母,但前面不加短橫線,支持多個選項組合,支持此風格的命令對上面兩種風格來說不太多。如:a,aux
? ? ? ? 4)ARGUMENT:參數(shù),表示命令的作用對象,比如文件名,用戶名,網(wǎng)卡名等,有的命令支持有多個參數(shù),參數(shù)健使用空白字符分隔。
? ? ? ? 2、常用命令;
? ? ? ? ? ? 1)ls — List :顯示目標列表,在Linux中是使用率較高的命令。ls命令的輸出信息可以進行彩色加亮顯示,以分區(qū)不同類型的文件。
語法
ls(選項)(參數(shù))
選項
-a:顯示所有檔案及目錄(ls內定將檔案名或目錄名稱為“.”的視為影藏,不會列出);
-A:顯示除影藏文件“.”和“..”以外的所有文件列表;
-C:多列顯示輸出結果。這是默認選項;
-l:與“-C”選項功能相反,所有輸出信息用單列格式輸出,不輸出為多列;
-F:在每個輸出項后追加文件的類型標識符,具體含義:“*”表示具有可執(zhí)行權限的普通文件,“/”表示目錄,“@”表示符號鏈接,“|”表示命令管道FIFO,“=”表示sockets套接字。當文件為普通文件時,不輸出任何標識符;
-b:將文件中的不可輸出的字符以反斜線“”加字符編碼的方式輸出;
-c:與“-lt”選項連用時,按照文件狀態(tài)時間排序輸出目錄內容,排序的依據(jù)是文件的索引節(jié)點中的ctime字段。與“-l”選項連用時,則排序的一句是文件的狀態(tài)改變時間;
-d:僅顯示目錄名,而不顯示目錄下的內容列表。顯示符號鏈接文件本身,而不顯示其所指向的目錄列表;
-f:此參數(shù)的效果和同時指定“aU”參數(shù)相同,并關閉“l(fā)st”參數(shù)的效果;
-i:顯示文件索引節(jié)點號(inode)。一個索引節(jié)點代表一個文件;
--file-type:與“-F”選項的功能相同,但是不顯示“*”;
-k:以KB(千字節(jié))為單位顯示文件大小;
-l:以長格式顯示目錄下的內容列表。輸出的信息從左到右依次包括文件名,文件類型、權限模式、硬連接數(shù)、所有者、組、文件大小和文件的最后修改時間等;
-m:用“,”號區(qū)隔每個文件和目錄的名稱;
-n:以用戶識別碼和群組識別碼替代其名稱;
-r:以文件名反序排列并輸出目錄內容列表;
-s:顯示文件和目錄的大小,以區(qū)塊為單位;
-t:用文件和目錄的更改時間排序;
-L:如果遇到性質為符號鏈接的文件或目錄,直接列出該鏈接所指向的原始文件或目錄;
-R:遞歸處理,將指定目錄下的所有文件及子目錄一并處理;
--full-time列出完整的日期與時間;
--color[=WHEN]:使用不同的顏色高亮顯示不同類型的。
參數(shù)
目錄:指定要顯示列表的目錄,也可以是具體的文件。
實例
顯示當前目錄下非影藏文件與目錄
[root@localhost ~]# ls?
anaconda-ks.cfg
顯示當前目錄下包括影藏文件在內的所有文件列表
[root@localhost ~]# ls -a
.? ..? anaconda-ks.cfg? .bash_history? .bash_logout? .bash_profile? .bashrc? .cshrc? .pki? .tcshrc? .viminfo
輸出長格式列表
[root@localhost ~]# ls -l
總用量 4
-rw-------. 1 root root 1241 5月? 22 19:36 anaconda-ks.cfg
顯示文件的inode信息
索引節(jié)點(index inode簡稱為“inode”)是Linux中一個特殊的概念,具有相同的索引節(jié)點號的兩個文本本質上是同一個文件(除文件名不同外)。
[root@localhost ~]# ls -i -l anaconda-ks.cfg
33574979 -rw-------. 1 root root 1241 5月? 22 19:36 anaconda-ks.cfg
水平輸出文件列表
[root@localhost /]# ls -m
bin, boot, data, dev, etc, home, lib, lost+found, media, misc, mnt, opt, proc, root, sbin, selinux, srv, sys, tmp, usr, var
修改最后一次編輯的文件
最近修改的文件顯示在最上面。
[root@localhost /]# ls -t
boot? tmp? run? etc? dev? sys? proc? root? var? usr? sbin? lib64? lib? bin? home? media? mnt? opt? srv
顯示遞歸文件
[root@localhost ~]# ls -R
.:
anaconda-ks.cfg
打印文件的UID和GID
[root@localhost /]# ls -n
總用量 16
lrwxrwxrwx.? 1 0 0? ? 7 5月? 22 19:28 bin -> usr/bin
dr-xr-xr-x.? 5 0 0 4096 5月? 27 18:55 boot
drwxr-xr-x? ? 2 0 0? 47 5月? 24 21:37 data
drwxr-xr-x? 20 0 0 3200 6月? 10 19:42 dev
drwxr-xr-x.? 76 0 0 8192 6月? 10 19:42 etc
drwxr-xr-x.? 2 0 0? ? 6 4月? 11 2018 home
lrwxrwxrwx.? 1 0 0? ? 7 5月? 22 19:28 lib -> usr/lib
lrwxrwxrwx.? 1 0 0? ? 9 5月? 22 19:28 lib64 -> usr/lib64
drwxr-xr-x.? 2 0 0? ? 6 4月? 11 2018 media
drwxr-xr-x.? 2 0 0? ? 6 4月? 11 2018 mnt
drwxr-xr-x.? 2 0 0? ? 6 4月? 11 2018 opt
dr-xr-xr-x? 131 0 0? ? 0 6月? 10 19:42 proc
dr-xr-x---.? 3 0 0? 163 6月? 9 21:00 root
drwxr-xr-x? 23 0 0? 660 6月? 10 19:43 run
lrwxrwxrwx.? 1 0 0? ? 8 5月? 22 19:28 sbin -> usr/sbin
drwxr-xr-x.? 2 0 0? ? 6 4月? 11 2018 srv
dr-xr-xr-x? 13 0 0? ? 0 6月? 10 19:42 sys
drwxrwxrwt.? 8 0 0? 172 6月? 10 20:29 tmp
drwxr-xr-x.? 13 0 0? 155 5月? 22 19:28 usr
drwxr-xr-x.? 19 0 0? 267 5月? 22 19:37 var
列出文件和文件夾的詳細信息
[root@localhost /]# ls -l
總用量 16
lrwxrwxrwx.? 1 root root? ? 7 5月? 22 19:28 bin -> usr/bin
dr-xr-xr-x.? 5 root root 4096 5月? 27 18:55 boot
drwxr-xr-x? ? 2 root root? 47 5月? 24 21:37 data
drwxr-xr-x? 20 root root 3200 6月? 10 19:42 dev
drwxr-xr-x.? 76 root root 8192 6月? 10 19:42 etc
drwxr-xr-x.? 2 root root? ? 6 4月? 11 2018 home
lrwxrwxrwx.? 1 root root? ? 7 5月? 22 19:28 lib -> usr/lib
lrwxrwxrwx.? 1 root root? ? 9 5月? 22 19:28 lib64 -> usr/lib64
drwxr-xr-x.? 2 root root? ? 6 4月? 11 2018 media
drwxr-xr-x.? 2 root root? ? 6 4月? 11 2018 mnt
drwxr-xr-x.? 2 root root? ? 6 4月? 11 2018 opt
dr-xr-xr-x? 131 root root? ? 0 6月? 10 19:42 proc
dr-xr-x---.? 3 root root? 163 6月? 9 21:00 root
drwxr-xr-x? 23 root root? 660 6月? 10 19:43 run
lrwxrwxrwx.? 1 root root? ? 8 5月? 22 19:28 sbin -> usr/sbin
drwxr-xr-x.? 2 root root? ? 6 4月? 11 2018 srv
dr-xr-xr-x? 13 root root? ? 0 6月? 10 20:50 sys
drwxrwxrwt.? 8 root root? 172 6月? 10 20:29 tmp
drwxr-xr-x.? 13 root root? 155 5月? 22 19:28 usr
drwxr-xr-x.? 19 root root? 267 5月? 22 19:37 var
列出可讀文件和文件夾詳細信息
[root@localhost /]# ls -lH
總用量 16
lrwxrwxrwx.? 1 root root? ? 7 5月? 22 19:28 bin -> usr/bin
dr-xr-xr-x.? 5 root root 4096 5月? 27 18:55 boot
drwxr-xr-x? ? 2 root root? 47 5月? 24 21:37 data
drwxr-xr-x? 20 root root 3200 6月? 10 19:42 dev
drwxr-xr-x.? 76 root root 8192 6月? 10 19:42 etc
drwxr-xr-x.? 2 root root? ? 6 4月? 11 2018 home
lrwxrwxrwx.? 1 root root? ? 7 5月? 22 19:28 lib -> usr/lib
lrwxrwxrwx.? 1 root root? ? 9 5月? 22 19:28 lib64 -> usr/lib64
drwxr-xr-x.? 2 root root? ? 6 4月? 11 2018 media
drwxr-xr-x.? 2 root root? ? 6 4月? 11 2018 mnt
drwxr-xr-x.? 2 root root? ? 6 4月? 11 2018 opt
dr-xr-xr-x? 131 root root? ? 0 6月? 10 19:42 proc
dr-xr-x---.? 3 root root? 163 6月? 9 21:00 root
drwxr-xr-x? 23 root root? 660 6月? 10 19:43 run
lrwxrwxrwx.? 1 root root? ? 8 5月? 22 19:28 sbin -> usr/sbin
drwxr-xr-x.? 2 root root? ? 6 4月? 11 2018 srv
dr-xr-xr-x? 13 root root? ? 0 6月? 10 20:50 sys
drwxrwxrwt.? 8 root root? 172 6月? 10 20:29 tmp
drwxr-xr-x.? 13 root root? 155 5月? 22 19:28 usr
drwxr-xr-x.? 19 root root? 267 5月? 22 19:37 var
顯示文件夾信息
[root@localhost /]# ls -ld
dr-xr-xr-x. 18 root root 236 5月? 24 21:37 .
按時間列出文件和文件夾詳細信息
[root@localhost /]# ls -ltr
總用量 16
drwxr-xr-x.? 2 root root? ? 6 4月? 11 2018 srv
drwxr-xr-x.? 2 root root? ? 6 4月? 11 2018 opt
drwxr-xr-x.? 2 root root? ? 6 4月? 11 2018 mnt
drwxr-xr-x.? 2 root root? ? 6 4月? 11 2018 media
drwxr-xr-x.? 2 root root? ? 6 4月? 11 2018 home
lrwxrwxrwx.? 1 root root? ? 7 5月? 22 19:28 bin -> usr/bin
lrwxrwxrwx.? 1 root root? ? 7 5月? 22 19:28 lib -> usr/lib
lrwxrwxrwx.? 1 root root? ? 9 5月? 22 19:28 lib64 -> usr/lib64
lrwxrwxrwx.? 1 root root? ? 8 5月? 22 19:28 sbin -> usr/sbin
drwxr-xr-x.? 13 root root? 155 5月? 22 19:28 usr
drwxr-xr-x.? 19 root root? 267 5月? 22 19:37 var
drwxr-xr-x? ? 2 root root? 47 5月? 24 21:37 data
dr-xr-xr-x.? 5 root root 4096 5月? 27 18:55 boot
dr-xr-x---.? 3 root root? 163 6月? 9 21:00 root
dr-xr-xr-x? 130 root root? ? 0 6月? 10 19:42 proc
drwxr-xr-x? 20 root root 3200 6月? 10 19:42 dev
drwxr-xr-x.? 76 root root 8192 6月? 10 19:42 etc
drwxr-xr-x? 23 root root? 660 6月? 10 19:43 run
drwxrwxrwt.? 8 root root? 172 6月? 10 20:29 tmp
dr-xr-xr-x? 13 root root? ? 0 6月? 10 20:50 sys
? ? ? ? 2)mkdir — Make Directory:用來創(chuàng)建目錄。該命令創(chuàng)建由dirname命名的目錄。如果在目錄名的前面沒有加任何路徑名,則在當前目錄下創(chuàng)建由dirname指定的目錄;如果給出了一個已經存在的路徑,將會在該目錄下創(chuàng)建一個指定的目錄。在創(chuàng)建目錄時,應保證新建的目錄與它所在目錄下的文件沒有重名。
注意:在創(chuàng)建文件時,不要把所有的文件都存放在主目錄中,可以創(chuàng)建子目錄,通過它們來更有效地組織文件。最好采用前后一致的命名方式來區(qū)分文件和目錄。例如,目錄名可以以大寫字母開頭,這樣,在目錄列表中目錄名就出現(xiàn)在前面。
????????????在一個子目錄中應包含類型相似或用途相近的文件。例如,應建立一個子目錄,它包含所有的數(shù)據(jù)庫文件,另有一個子目錄應包含電子表格文件,還有一個子目錄應包含文字處理文檔,等等。目錄也是文件,它們和普通文件一樣遵循相同的命名規(guī)則,并且利用全路徑可以唯一地指定一個目錄。
語法
mkdir????(選項)????(參數(shù))
選項
-Z:設置安全上下文,當使用SELinux時有效;
-m<目標屬性>或--mode<目標屬性>建立目錄的同時設置目錄的權限;
-p或--parents 若所要建立目錄的上層目錄目前尚未建立,則會一并建立上層目錄;
--version 顯示版本信息。
參數(shù)
目錄:指定要創(chuàng)建的目錄列表,多個目錄之間用空格隔開。
實例
在目錄/usr下建立子目錄test,并且只有文件主有讀、寫和執(zhí)行權限,其他人無權訪問
mkdir -m 700 /usr/test
在當前目錄中建立bin和bin下的os_1目錄,權限設置為文件主可讀、寫、執(zhí)行,同組用戶可讀和執(zhí)行,其他用戶無權訪問
mkdir -p -m 750 bin/os_1
3)pwd — Print Working Directory:以絕對路徑的方式顯示用戶當前工作目錄。命令將當前目錄的全路徑名稱(從根目錄)寫入標準輸出。全部目錄使用/分隔。第一個/表示根目錄,最后一個目錄是當前目錄。執(zhí)行pwd命令可立刻得知您目前所在的工作目錄的絕對路徑名稱。
? ? ? ? ? ? #絕對路徑永遠都是相對于根文件夾的。它們的標志就是第一個字符永遠都是“/”。
? ? ? ? ? ? #相對路徑永遠都是相對于我們所處的文件夾位置。它們的第一個字符沒有“/”。
語法
pwd(選項)
選項
--help:顯示幫助信息;
--version:顯示版本信息。
實例
[root@localhost ~]# pwd
/root
4)cd — Change Directory:用來切換工作目錄至dirname。 其中dirname表示法可為絕對路徑或相對路徑。若目錄名稱省略,則變換至使用者的home directory(也就是剛login時所在的目錄)。另外,~也表示為home directory的意思,.則是表示目前所在的目錄,..則表示目前目錄位置的上一層目錄。
語法
cd????(選項)????(參數(shù))
選項
-p 如果要切換到的目標目錄是一個符號連接,直接切換到符號連接指向的目標目錄
-L 如果要切換的目標目錄是一個符號的連接,直接切換到字符連接名代表的目錄,而非符號連接所指向的目標目錄。
- 當僅實用"-"一個選項時,當前工作目錄將被切換到環(huán)境變量"OLDPWD"所表示的目錄。
實例
cd? ? 進入用戶主目錄;
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@localhost network-scripts]# cd
[root@localhost ~]# pwd
/root
cd ~? 進入用戶主目錄;
[root@localhost ~]# cd ~
[root@localhost ~]# pwd
/root
cd -? 返回進入此目錄之前所在的目錄;
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@localhost network-scripts]# cd
[root@localhost ~]# cd -
/etc/sysconfig/network-scripts
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts
cd ..? 返回上級目錄(若當前目錄為“/“,則執(zhí)行完后還在“/";".."為上級目錄的意思);
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@localhost network-scripts]# cd ..
[root@localhost sysconfig]# pwd
/etc/sysconfig
cd ../..? 返回上兩級目錄;
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@localhost network-scripts]# cd ../..
[root@localhost etc]# pwd
/etc
cd !$? 把上個命令的參數(shù)作為cd參數(shù)使用。
[root@localhost ~]# ll /usr/test
總用量 0
drwxr-xr-x 3 root root 18 6月? 12 11:01 bin
[root@localhost ~]# cd !$
cd /usr/test
[root@localhost test]# pwd
/usr/test
? ? ? ? 5)rmdir— Remove Directory:用來刪除空目錄。當目錄不再被使用時,或者磁盤空間已到達使用限定值,就需要刪除失去使用價值的目錄。利用rmdir命令可以從一個目錄中刪除一個或多個空的子目錄。該命令從一個目錄中刪除一個或多個子目錄,其中dirname佬表示目錄名。如果dirname中沒有指定路徑,則刪除當前目錄下由dirname指定的目錄;如dirname中包含路徑,則刪除指定位置的目錄。刪除目錄時,必須具有對其父目錄的寫權限。
注意:子目錄被刪除之前應該是空目錄。就是說,該目錄中的所有文件必須用rm命令全部,另外,當前工作目錄必須在被刪除目錄之上,不能是被刪除目錄本身,也不能是被刪除目錄的子目錄。
????????雖然還可以用帶有-r選項的rm命令遞歸刪除一個目錄中的所有文件和該目錄本身,但是這樣做存在很大的危險性。
語法
rmdir????(選項)????(參數(shù))
選項
-p或--parents:刪除指定目錄后,若該目錄的上層目錄已變成空目錄,則將其一并刪除;
--ignore-fail-on-non-empty:此選項使rmdir命令忽略由于刪除非空目錄時導致的錯誤信息;
-v或-verboes:顯示命令的詳細執(zhí)行過程;
--help:顯示命令的幫助信息;
--version:顯示命令的版本信息。
參數(shù)
目錄列表:要刪除的空目錄列表。當刪除多個空目錄時,目錄名之間使用空格隔開。
實例
刪除子目錄os_1和其父目錄bin
[root@localhost test]# cd /usr/test
[root@localhost test]# ls
bin
[root@localhost test]# rmdir -p bin/os_1/
[root@localhost test]# ls
????????6)rm— Remove:可以刪除一個目錄中的一個或多個文件或目錄,也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉。對于鏈接文件,只是刪除整個鏈接文件,而原有文件保持不變。
????????注意:使用rm命令要格外小心。因為一旦刪除了一個文件,就無法再恢復它。所以,在刪除文件之前,最好再看一下文件的內容,確定是否真要刪除。rm命令可以用-i選項,這個選項在使用文件擴展名字符刪除多個文件時特別有用。使用這個選項,系統(tǒng)會要求你逐一確定是否要刪除。這時,必須輸入y并按Enter鍵,才能刪除文件。如果僅按Enter鍵或其他字符,文件不會被刪除。
語法
rm????(選項)????(參數(shù))
選項
-d:直接把欲刪除的目錄的硬連接數(shù)據(jù)刪除成0,刪除該目錄;
-f:強制刪除文件或目錄;
-i:刪除已有文件或目錄之前先詢問用戶;
-r或-R:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
--preserve-root:不對根目錄進行遞歸操作;
-v:顯示指令的詳細執(zhí)行過程。
參數(shù)
文件:指定被刪除的文件列表,如果參數(shù)中含有目錄,則必須加上-r或者-R選項。
實例
交互式刪除當前目錄下的文件example
[root@localhost test]# ll
總用量 0
-rw-r--r-- 1 root root 0 6月? 12 11:07 example
-rw-r--r-- 1 root root 0 6月? 12 11:07 test
[root@localhost test]# rm -i example
rm:是否刪除普通空文件 "example"?y
刪除當前目錄下除隱含文件外的所有文件和子目錄
[root@localhost test]# ls
1.txt? 2.txt? 3.txt? 4.txt? 5.txt? 6.txt? 7.txt? test
[root@localhost test]# rm -rf *
[root@localhost test]# ls
應注意,這樣做是非常危險的!
????????7)cp— Copy:用來將一個或多個源文件或者目錄復制到指定的目的文件或目錄。它可以將單個源文件復制成一個指定文件名的具體的文件或一個已經存在的目錄下。cp命令還支持同時復制多個文件,當一次復制多個文件時,目標文件參數(shù)必須是一個已經存在的目錄,否則將出現(xiàn)錯誤。
語法
cp????(選項)????(參數(shù))
選項
-a:此參數(shù)的效果和同時指定"-dpR"參數(shù)相同;
-d:當復制符號連接時,把目標文件或目錄也建立為符號連接,并指向與源文件或目錄連接的原始文件或目錄;
-f:強行復制文件或目錄,不論目標文件或目錄是否已存在;
-i:覆蓋既有文件之前先詢問用戶;
-l:對源文件建立硬連接,而非復制文件;
-p:保留源文件或目錄的屬性;
-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
-s:對源文件建立符號連接,而非復制文件;
-u:使用這項參數(shù)后只會在源文件的更改時間較目標文件更新時或是名稱相互對應的目標文件并不存在時,才復制文件;
-S:在備份文件時,用指定的后綴“SUFFIX”代替文件的默認后綴;
-b:覆蓋已存在的文件目標前將目標文件備份;
-v:詳細顯示命令執(zhí)行的操作。
參數(shù)
源文件:制定源文件列表。默認情況下,cp命令不能復制目錄,如果要復制目錄,則必須使用-R選項;
目標文件:指定目標文件。當“源文件”為多個文件時,要求“目標文件”為指定的目錄。
實例
如果把一個文件復制到一個目標文件中,而目標文件已經存在,那么,該目標文件的內容將被破壞。此命令中所有參數(shù)既可以是絕對路徑名,也可以是相對路徑名。通常會用到點.或點點..的形式。例如,下面的命令將指定文件復制到當前目錄下:
[root@localhost test]# ls
[root@localhost test]# pwd
/usr/test
[root@localhost test]# cp ../lib/sendmail.postfix .
[root@localhost test]# ls
sendmail.postfix
[root@localhost test]# pwd
/usr/test
所有目標文件指定的目錄必須是己經存在的,cp命令不能創(chuàng)建目錄。如果沒有文件復制的權限,則系統(tǒng)會顯示出錯信息。
將文件file復制到目錄/usr/test/下,并改名為file1
[root@localhost ~]# touch file
[root@localhost ~]# ls
anaconda-ks.cfg? file
[root@localhost ~]# cp file /usr/test/file1
[root@localhost ~]# ll /usr/test/
總用量 244
-rw-r--r-- 1 root root? ? ? 0 6月? 12 11:15 file1
-rwxr-xr-x 1 root root 247960 6月? 12 11:12 sendmail.postfix
將目錄/var/log下的所有文件及其子目錄復制到目錄/etc中
[root@localhost ~]#?cp -r /var/log /etc
[root@localhost ~]# ls /etc/log
anaconda? boot.log? chrony? dmesg? ? ? firewalld? ? ? ? ? lastlog? messages? secure? tallylog? wtmp
audit? ? btmp? ? ? cron? ? dmesg.old? grubby_prune_debug? maillog? rhsm? ? ? spooler? tuned? ? yum.log
交互式地將目錄/tmp中的以m打頭的所有.sh文件復制到目錄/usr/test中
[root@localhost tmp]# touch {1..5}.sh
[root@localhost tmp]# ls
1.sh? 2.sh? 3.sh? 4.sh? 5.sh? systemd-private-101798cbac63427e90dc28dd320e68bf-chronyd.service-a6h4On
[root@localhost tmp]# cp -i *.sh /usr/test
[root@localhost tmp]# ls /usr/test/
1.sh? 2.sh? 3.sh? 4.sh? 5.sh? file1? sendmail.postfix
????????8)mv— Move:用來對文件或目錄重新命名,或者將文件從一個目錄移到另一個目錄中。source表示源文件或目錄,target表示目標文件或目錄。如果將一個文件移到一個已經存在的目標文件中,則目標文件的內容將被覆蓋。
????????mv命令可以用來將源文件移至一個目標文件中,或將一組文件移至一個目標目錄中。源文件被移至目標文件有兩種不同的結果:
????????如果目標文件是到某一目錄文件的路徑,源文件會被移到此目錄下,且文件名不變。
????????如果目標文件不是目錄文件,則源文件名(只能有一個)會變?yōu)榇四繕宋募?,并覆蓋己存在的同名文件。如果源文件和目標文件在同一個目錄下,mv的作用就是改文件名。當目標文件是目錄文件時,源文件或目錄參數(shù)可以有多個,則所有的源文件都會被移至目標文件中。所有移到該目錄下的文件都將保留以前的文件名。
????????注意事項:mv與cp的結果不同,mv好像文件“搬家”,文件個數(shù)并未增加。而cp對文件進行復制,文件個數(shù)增加了。
語法
mv????(選項)????(參數(shù))
選項
--backup=<備份模式>:若需覆蓋文件,則覆蓋前先行備份;
-b:當文件存在時,覆蓋前,為其創(chuàng)建一個備份;
-f:若目標文件或目錄與現(xiàn)有的文件或目錄重復,則直接覆蓋現(xiàn)有的文件或目錄;
-i:交互式操作,覆蓋前先行詢問用戶,如果源文件與目標文件或目標目錄中的文件同名,則詢問用戶是否覆蓋目標文件。用戶輸入”y”,表示將覆蓋目標文件;輸入”n”,表示取消對源文件的移動。這樣可以避免誤將文件覆蓋。
--strip-trailing-slashes:刪除源文件中的斜杠“/”;
-S<后綴>:為備份文件指定后綴,而不使用默認的后綴;
--target-directory=<目錄>:指定源文件要移動到目標目錄;
-u:當源文件比目標文件新或者目標文件不存在時,才執(zhí)行移動操作。
參數(shù)
源文件:源文件列表。
目標文件:如果“目標文件”是文件名則在移動文件的同時,將其改名為“目標文件”;如果“目標文件”是目錄名則將源文件移動到“目標文件”下。
實例
將文件name改名為newname
[root@localhost data]# touch name
[root@localhost data]# ls
name
[root@localhost data]# mv name newname
[root@localhost data]# ls
newname
將目錄/var/log中的所有文件移到當前目錄(用.表示)中:
[root@localhost data]# mv /var/log .
[root@localhost data]# ls
log? newname????
mv /usr/men/* .
????????9)cat— concatenate and print files:連接文件并打印到標準輸出設備上,cat經常用來顯示文件的內容,類似于下的type命令。
????????注意:當文件較大時,文本在屏幕上迅速閃過(滾屏),用戶往往看不清所顯示的內容。因此,一般用more等命令分屏顯示。為了控制滾屏,可以按Ctrl+S鍵,停止?jié)L屏;按Ctrl+Q鍵可以恢復滾屏。按Ctrl+C(中斷)鍵可以終止該命令的執(zhí)行,并且返回Shell提示符狀態(tài)。
語法
cat????(選項)????(參數(shù))
選項
-n或-number:有1開始對所有輸出的行數(shù)編號;
-b或--number-nonblank:和-n相似,只不過對于空白行不編號;
-s或--squeeze-blank:當遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行;
-A:顯示不可打印字符,行尾顯示“$”;
-e:等價于"-vE"選項;
-t:等價于"-vT"選項;
參數(shù)
文件列表:指定要連接的文件列表。
實例
設ml和m2是當前目錄下的兩個文件
cat m1 (在屏幕上顯示文件ml的內容)
[root@localhost data]# cat m1
aaa
cat m1 m2 (同時顯示文件ml和m2的內容)
[root@localhost data]# cat m1 m2
aaa
bbb
cat m1 m2 >m3(將文件ml和m2合并后放入文件m3中)
[root@localhost data]# cat m1 m2 > m3
[root@localhost data]# cat m3
aaa
bbb
????????10)tail — print TAIL(from last):用于輸入文件中的尾部內容。tail命令默認在屏幕上顯示指定文件的末尾10行。如果給定的文件不止一個,則在顯示的每個文件前面加一個文件名標題。如果沒有指定文件或者文件名為“-”,則讀取標準輸入。
????????注意:如果表示字節(jié)或行數(shù)的N值之前有一個”+”號,則從文件開頭的第N項開始顯示,而不是顯示文件的最后N項。N值后面可以有后綴:b表示512,k表示1024,m表示1 048576(1M)。
語法
tail????(選項)????(參數(shù))
選項
--retry:即是在tail命令啟動時,文件不可訪問或者文件稍后變得不可訪問,都始終嘗試打開文件。使用此選項時需要與選項“——follow=name”連用;
-c或——bytes=:輸出文件尾部的N(N為整數(shù))個字節(jié)內容;
-f或;--follow:顯示文件最新追加的內容?!皀ame”表示以文件名的方式監(jiān)視文件的變化?!?f”與“-fdescriptor”等效;
-F:與選項“-follow=name”和“--retry"連用時功能相同;
-n或——line=:輸出文件的尾部N(N位數(shù)字)行內容;
--pid=<進程號>:與“-f”選項連用,當指定的進程號的進程終止后,自動退出tail命令;
-q或——quiet或——silent:當有多個文件參數(shù)時,不輸出各個文件名;
-s<秒數(shù)>或——sleep-interal=<秒數(shù)>:與“-f”選項連用,指定監(jiān)視文件變化時間隔的秒數(shù);
-v或——verbose:當有多個文件參數(shù)時,總是輸出各個文件名;
--help:顯示指令的幫助信息;
--version:顯示指令的版本信息。
參數(shù)
文件列表:指定要顯示尾部內容的文件列表。
實例
tail?/var/log/messages(顯示文件?/var/log/messages的最后10行)
[root@localhost data]# tail /var/log/messages
Jun 12 10:52:57 localhost dracut: *** Creating initramfs image file '/boot/initramfs-3.10.0-957.el7.x86_64kdump.img' done ***
Jun 12 10:52:58 localhost kdumpctl: kexec: loaded kdump kernel
Jun 12 10:52:58 localhost kdumpctl: Starting kdump: [OK]
Jun 12 10:52:58 localhost systemd: Started Crash recovery kernel arming.
Jun 12 10:52:58 localhost systemd: Startup finished in 2.061s (kernel) + 4.895s (initrd) + 45.567s (userspace) = 52.525s.
Jun 12 11:01:01 localhost systemd: Started Session 3 of user root.
Jun 12 11:04:15 localhost chronyd[6190]: Received KoD RATE from 136.243.7.20
Jun 12 11:07:21 localhost systemd: Starting Cleanup of Temporary Directories...
Jun 12 11:07:21 localhost systemd: Started Cleanup of Temporary Directories.
Jun 12 11:28:54 localhost chronyd[6190]: Source 144.172.126.201 replaced with 212.25.15.129
tail? +20??/var/log/messages?(顯示文件?/var/log/messages的內容,從第20行至文件末尾)
[root@localhost data]# tail +20 /var/log/messages
tail: 無法打開"+20" 讀取數(shù)據(jù): 沒有那個文件或目錄
==> /var/log/messages <==
Jun 12 10:52:57 localhost dracut: *** Creating initramfs image file '/boot/initramfs-3.10.0-957.el7.x86_64kdump.img' done ***
Jun 12 10:52:58 localhost kdumpctl: kexec: loaded kdump kernel
Jun 12 10:52:58 localhost kdumpctl: Starting kdump: [OK]
Jun 12 10:52:58 localhost systemd: Started Crash recovery kernel arming.
Jun 12 10:52:58 localhost systemd: Startup finished in 2.061s (kernel) + 4.895s (initrd) + 45.567s (userspace) = 52.525s.
Jun 12 11:01:01 localhost systemd: Started Session 3 of user root.
Jun 12 11:04:15 localhost chronyd[6190]: Received KoD RATE from 136.243.7.20
Jun 12 11:07:21 localhost systemd: Starting Cleanup of Temporary Directories...
Jun 12 11:07:21 localhost systemd: Started Cleanup of Temporary Directories.
Jun 12 11:28:54 localhost chronyd[6190]: Source 144.172.126.201 replaced with 212.25.15.129
tail -c 10?/var/log/messages(顯示文件?/var/log/messages的最后10個字符)
[root@localhost data]# tail -c 10 /var/log/messages
25.15.129
? ? ? ? 11)less — print LESS:作用與more十分相似,都可以用來瀏覽文字檔案的內容,不同的是less命令允許用戶向前或向后瀏覽文件,而more命令只能向前瀏覽。用less命令顯示文件時,用PageUp鍵向上翻頁,用PageDown鍵向下翻頁。要退出less程序,應按Q鍵。
語法
less????(選項)????(參數(shù))
選項
-e:文件內容顯示完畢后,自動退出;
-f:強制顯示文件;
-g:不加亮顯示搜索到的所有關鍵詞,僅顯示當前顯示的關鍵字,以提高顯示速度;
-l:搜索時忽略大小寫的差異;
-N:每一行行首顯示行號;
-s:將連續(xù)多個空行壓縮成一行顯示;
-S:在單行顯示較長的內容,而不換行顯示;
-x<數(shù)字>:將TAB字符顯示為指定個數(shù)的空格字符。
參數(shù)
文件:指定要分屏顯示內容的文件。
less??/var/log/messages
????????12)tar:可以為linux的文件和目錄創(chuàng)建檔案。利用tar,可以為某一特定文件創(chuàng)建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。tar最初被用來在磁帶上創(chuàng)建檔案,現(xiàn)在,用戶可以在任何設備上創(chuàng)建檔案。利用tar命令,可以把一大堆的文件和目錄全部打包成一個文件,這對于備份文件或將幾個文件組合成為一個文件以便于網(wǎng)絡傳輸是非常有用的。
????????首先要弄清兩個概念:打包和壓縮。打包是指將一大堆文件或目錄變成一個總的文件;壓縮則是將一個大的文件通過一些壓縮算法變成一個小文件。
為什么要區(qū)分這兩個概念呢?這源于Linux中很多壓縮程序只能針對一個文件進行壓縮,這樣當你想要壓縮一大堆文件時,你得先將這一大堆文件先打成一個包(tar命令),然后再用壓縮程序進行壓縮(gzipbzib2命令)。
語法
tar????(選項)????(參數(shù))
選項
-A或--catenate:新增文件到以存在的備份文件;
-B:設置區(qū)塊大?。?c或--create:建立新的備份文件;
-C <目錄>:這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項;
-d:記錄文件的差別;
-x或--extract或--get:從備份文件中還原文件;
-t或--list:列出備份文件的內容;
-z或--gzip或--ungzip:通過gzip指令處理備份文件;
-Z或--compress或--uncompress:通過compress指令處理備份文件;
-f<備份文件>或--file=<備份文件>:指定備份文件;-v或--verbose:顯示指令執(zhí)行過程;
-r:添加文件到已經壓縮的文件;
-u:添加改變了和現(xiàn)有的文件到已經存在的壓縮文件;
-j:支持bzip2解壓文件;
-v:顯示操作過程;
-l:文件系統(tǒng)邊界設置;
-k:保留原有文件不覆蓋;
-m:保留文件不被覆蓋;
-w:確認壓縮文件的正確性;
-p或--same-permissions:用原來的文件權限還原文件;
-P或--absolute-names:文件名使用絕對名稱,不移除文件名稱前的“/”號;
-N <日期格式> 或 --newer=<日期時間>:只將較指定日期更新的文件保存到備份文件里;
--exclude=<范本樣式>:排除符合范本樣式的文件。
參數(shù)
文件或目錄:指定要打包的文件或目錄列表。
實例
將文件全部打包成tar包:
tar -cvf log.tar log2012.log? ? 僅打包,不壓縮!
tar -zcvf log.tar.gz log2012.log? 打包后,以 gzip 壓縮
tar -jcvf log.tar.bz2 log2012.log? 打包后,以 bzip2 壓縮
????????在選項f之后的文件檔名是自己取的,我們習慣上都用?.tar?來作為辨識。?如果加z選項,則以.tar.gz或.tgz來代表gzip壓縮過的tar包;如果加j選項,則以.tar.bz2來作為tar包名。
查閱上述tar包內有哪些文件:
tar -ztvf log.tar.gz
由于我們使用?gzip?壓縮的log.tar.gz,所以要查閱log.tar.gz包內的文件時,就得要加上z這個選項了。
將tar包解壓縮:
tar -zxvf /opt/soft/test/log.tar.gz
在預設的情況下,我們可以將壓縮檔在任何地方解開的
只將tar內的部分文件解壓出來:
tar -zxvf /opt/soft/test/log30.tar.gz log2013.log
我可以透過tar?-ztvf來查閱?tar?包內的文件名稱,如果單只要一個文件,就可以透過這個方式來解壓部分文件!
文件備份下來,并且保存其權限:
tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log
這個-p的屬性是很重要的,尤其是當您要保留原本文件的屬性時。
在文件夾當中,比某個日期新的文件才備份:
tar -N "2012/11/13" -zcvf log17.tar.gz test
備份文件夾內容是排除部分文件:
tar --exclude scf/service-zcvf scf.tar.gz scf/*
其實最簡單的使用 tar 就只要記憶底下的方式即可:
壓 縮:tar -jcv -f filename.tar.bz2 要被壓縮的文件或目錄名稱
查 詢:tar -jtv -f filename.tar.bz2
解壓縮:tar -jxv -f filename.tar.bz2 -C 欲解壓縮的目錄
????????13)help:用于顯示shell內部命令的幫助信息。help命令只能顯示shell內部的命令幫助信息。而對于外部命令的幫助信息只能使用man或者info命令查看。
語法
help(選項)(參數(shù))
選項
-s:輸出短格式的幫助信息。僅包括命令格式。
參數(shù)
內部命令:指定需要顯示幫助信息的shell內部命令。
實例
使用help命令顯示shell內部echo命令的幫助信息,輸入如下命令:
[root@localhost data]# help echo
echo: echo [-neE] [參數(shù) ...]
? ? 將參數(shù)寫到標準輸出。
? ? 在標準輸出上顯示 ARG 參數(shù)后跟一個換行。
? ? 選項:
? ? ? -n? ? ? ? 不要追加換行
? ? ? -e? ? ? ? 啟用下列反斜杠轉義的解釋
? ? ? -E? ? ? ? 顯式地抑制對于反斜杠轉義的解釋
? ? `echo' 對下列反斜杠字符進行轉義:
? ? ? \a? ? ? ? 警告(響鈴)
? ? ? \b? ? ? ? 退格
? ? ? \c? ? ? ? 抑制更多的輸出
? ? ? \e? ? ? ? 轉義字符
? ? ? \f? ? ? ? 格式提供
? ? ? \n? ? ? ? 換行
? ? ? \r? ? ? ? 回車
? ? ? \t? ? ? ? 橫向制表符
? ? ? \v? ? ? ? 縱向制表符
? ? ? \\? ? ? ? 反斜杠
? ? ? \0nnn? ? 以 NNN (八進制)為 ASCII 碼的字符。 NNN 可以是
? ? ? ? 0到3個八進制數(shù)字
? ? ? \xHH? ? ? 以 HH (十六進制)為值的八比特字符。HH可以是
? ? ? ? 一個或兩個十六進制數(shù)字
? ? 退出狀態(tài):
? ? 返回成功除非有寫錯誤發(fā)生。
????????14)who — Who Is logged in:是顯示目前登錄系統(tǒng)的用戶信息。執(zhí)行who命令可得知目前有那些用戶登入系統(tǒng),單獨執(zhí)行who命令會列出登入帳號,使用的終端機,登入時間以及從何處登入或正在使用哪個X顯示器。
語法
who????(選項)????(參數(shù))
選項
-H或--heading:顯示各欄位的標題信息列;
-i或-u或--idle:顯示閑置時間,若該用戶在前一分鐘之內有進行任何動作,將標示成"."號,如果該用戶已超過24小時沒有任何動作,則標示出"old"字符串;
-m:此參數(shù)的效果和指定"am i"字符串相同;
-q或--count:只顯示登入系統(tǒng)的帳號名稱和總人數(shù);
-s:此參數(shù)將忽略不予處理,僅負責解決who指令其他版本的兼容性問題;
-w或-T或--mesg或--message或--writable:顯示用戶的信息狀態(tài)欄;
--help:在線幫助;
--version:顯示版本信息。
參數(shù)
文件:指定查詢文件。
實例
[root@localhost ~]# who
root? ? pts/0? ? ? ? 2020-06-10 19:50 (192.168.1.102)
????????15)su — Switch User:用于切換當前用戶身份到其他用戶身份,變更時須輸入所要變更的用戶帳號與密碼。
語法
su????(選項)????(參數(shù))
選項
-c<指令>或--command=<指令>:執(zhí)行完指定的指令后,即恢復原來的身份;
-f或——fast:適用于csh與tsch,使shell不用去讀取啟動文件;
-l或——login:改變身份時,也同時變更工作目錄,以及HOME,SHELL,USER,logname。此外,也會變更PATH變量;
-m,-p或--preserve-environment:變更身份時,不要變更環(huán)境變量;
-s或--shell=:指定要執(zhí)行的shell;
--help:顯示幫助;
--version;顯示版本信息。
參數(shù)
用戶:指定要切換身份的目標用戶。
實例
變更帳號為root并在執(zhí)行ls指令后退出變回原使用者:
su -c ls root
變更帳號為root并傳入-f選項給新執(zhí)行的shell:
su root -f
變更帳號為test并改變工作目錄至test的家目錄:
su -test
????????16)df — Disk space Free:用于顯示磁盤分區(qū)上的可使用的磁盤空間。默認顯示單位為KB。可以利用該命令來獲取硬盤被占用了多少空間,目前還剩下多少空間等信息。
語法
df????(選項)????(參數(shù))
選項
-a或--all:包含全部的文件系統(tǒng);
--block-size=<區(qū)塊大小>:以指定的區(qū)塊大小來顯示區(qū)塊數(shù)目;
-h或--human-readable:以可讀性較高的方式來顯示信息;
-H或--si:與-h參數(shù)相同,但在計算時是以1000 Bytes為換算單位而非1024 Bytes;
-i或--inodes:顯示inode的信息;
-k或--kilobytes:指定區(qū)塊大小為1024字節(jié);
-l或--local:僅顯示本地端的文件系統(tǒng);
-m或--megabytes:指定區(qū)塊大小為1048576字節(jié);
--no-sync:在取得磁盤使用信息前,不要執(zhí)行sync指令,此為預設值;
-P或--portability:使用POSIX的輸出格式;
--sync:在取得磁盤使用信息前,先執(zhí)行sync指令;
-t<文件系統(tǒng)類型>或--type=<文件系統(tǒng)類型>:僅顯示指定文件系統(tǒng)類型的磁盤信息;
-T或--print-type:顯示文件系統(tǒng)的類型;
-x<文件系統(tǒng)類型>或--exclude-type=<文件系統(tǒng)類型>:不要顯示指定文件系統(tǒng)類型的磁盤信息;
--help:顯示幫助;
--version:顯示版本信息。
參數(shù)
文件:指定文件系統(tǒng)上的文件。
實例
查看系統(tǒng)磁盤設備,默認是KB為單位:
[root@localhost data]# df /dev/sda1
文件系統(tǒng)? ? ? ? 1K-塊? 已用? 可用 已用% 掛載點
/dev/sda1? ? ? 1038336 148728 889608? 15% /boot
使用-h選項以KB以上的單位來顯示,可讀性高:
[root@localhost data]# df -h /dev/sda1
文件系統(tǒng)? ? ? ? 容量? 已用? 可用 已用% 掛載點
/dev/sda1? ? ? 1014M? 146M? 869M? 15% /boot
查看全部文件系統(tǒng):
[root@localhost data]# df -a /dev/sda1
文件系統(tǒng)? ? ? ? 1K-塊? 已用? 可用 已用% 掛載點
/dev/sda1? ? ? 1038336 148728 889608? 15% /boot
????????19)ps — ProcesseS:用于報告當前系統(tǒng)的進程狀態(tài)??梢源钆鋕ill指令隨時中斷、刪除不必要的程序。ps命令是最基本同時也是非常強大的進程查看命令,使用該命令可以確定有哪些進程正在運行和運行的狀態(tài)、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等等,總之大部分信息都是可以通過執(zhí)行該命令得到的。
語法
ps(選項)
選項
-a:顯示所有終端機下執(zhí)行的程序,除了階段作業(yè)領導者之外。
a:顯示現(xiàn)行終端機下的所有程序,包括其他用戶的程序。
-A:顯示所有程序。
-c:顯示CLS和PRI欄位。
c:列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,選項或常駐服務的標示。
-C<指令名稱>:指定執(zhí)行指令的名稱,并列出該指令的程序的狀況。
-d:顯示所有程序,但不包括階段作業(yè)領導者的程序。
-e:此選項的效果和指定"A"選項相同。
e:列出程序時,顯示每個程序所使用的環(huán)境變量。
-f:顯示UID,PPIP,C與STIME欄位。
f:用ASCII字符顯示樹狀結構,表達程序間的相互關系。
-g<群組名稱>:此選項的效果和指定"-G"選項相同,當亦能使用階段作業(yè)領導者的名稱來指定。
g:顯示現(xiàn)行終端機下的所有程序,包括群組領導者的程序。-G<群組識別碼>:列出屬于該群組的程序的狀況,也可使用群組名稱來指定。
h:不顯示標題列。
-H:顯示樹狀結構,表示程序間的相互關系。-j或j:采用工作控制的格式顯示程序狀況。-l或l:采用詳細的格式來顯示程序狀況。
L:列出欄位的相關信息。
-m或m:顯示所有的執(zhí)行緒。
n:以數(shù)字來表示USER和WCHAN欄位。
-N:顯示所有的程序,除了執(zhí)行ps指令終端機下的程序之外。-
p<程序識別碼>:指定程序識別碼,并列出該程序的狀況。
p<程序識別碼>:此選項的效果和指定"-p"選項相同,只在列表格式方面稍有差異。
r:只列出現(xiàn)行終端機正在執(zhí)行中的程序。-s<階段作業(yè)>:指定階段作業(yè)的程序識別碼,并列出隸屬該階段作業(yè)的程序的狀況。
s:采用程序信號的格式顯示程序狀況。
S:列出程序時,包括已中斷的子程序資料。
-t<終端機編號>:指定終端機編號,并列出屬于該終端機的程序的狀況。
t<終端機編號>:此選項的效果和指定"-t"選項相同,只在列表格式方面稍有差異。
-T:顯示現(xiàn)行終端機下的所有程序。
-u<用戶識別碼>:此選項的效果和指定"-U"選項相同。
u:以用戶為主的格式來顯示程序狀況。
-U<用戶識別碼>:列出屬于該用戶的程序的狀況,也可使用用戶名稱來指定。
U<用戶名稱>:列出屬于該用戶的程序的狀況。
v:采用虛擬內存的格式顯示程序狀況。
-V或V:顯示版本信息。
-w或w:采用寬闊的格式來顯示程序狀況。
x:顯示所有程序,不以終端機來區(qū)分。
X:采用舊式的Linux i386登陸格式顯示程序狀況。-y:配合選項"-l"使用時,不顯示F(flag)欄位,并以RSS欄位取代ADDR欄位 。-<程序識別碼>:此選項的效果和指定"p"選項相同。
--cols<每列字符數(shù)>:設置每列的最大字符數(shù)。
--columns<每列字符數(shù)>:此選項的效果和指定"--cols"選項相同。
--cumulative:此選項的效果和指定"S"選項相同。
--deselect:此選項的效果和指定"-N"選項相同。
--forest:此選項的效果和指定"f"選項相同。
--headers:重復顯示標題列。
--help:在線幫助。
--info:顯示排錯信息。
--lines<顯示列數(shù)>:設置顯示畫面的列數(shù)。
--no-headers:此選項的效果和指定"h"選項相同,只在列表格式方面稍有差異。
--group<群組名稱>:此選項的效果和指定"-G"選項相同。
--Group<群組識別碼>:此選項的效果和指定"-G"選項相同。
--pid<程序識別碼>:此選項的效果和指定"-p"選項相同。
--rows<顯示列數(shù)>:此選項的效果和指定"--lines"選項相同。
--sid<階段作業(yè)>:此選項的效果和指定"-s"選項相同。
--tty<終端機編號>:此選項的效果和指定"-t"選項相同。
--user<用戶名稱>:此選項的效果和指定"-U"選項相同。
-User<用戶識別碼>:此選項的效果和指定"-U"選項相同。
--version:此選項的效果和指定"-V"選項相同。
--widty<每列字符數(shù)>:此選項的效果和指定"-cols"選項相同。
? ? 常用組合:ps aux 或ps -ef
[root@localhost ~]# ps aux
USER? ? ? ? PID %CPU %MEM? ? VSZ? RSS TTY? ? ? STAT START? TIME COMMAND
root? ? ? ? ? 1? 1.6? 0.2 190820? 3760 ?? ? ? ? Ss? 12:18? 0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root? ? ? ? ? 2? 0.0? 0.0? ? ? 0? ? 0 ?? ? ? ? S? ? 12:18? 0:00 [kthreadd]
root? ? ? ? ? 3? 0.0? 0.0? ? ? 0? ? 0 ?? ? ? ? S? ? 12:18? 0:00 [ksoftirqd/0]
root? ? ? ? ? 4? 0.0? 0.0? ? ? 0? ? 0 ?? ? ? ? S? ? 12:18? 0:00 [kworker/0:0]
root? ? ? ? ? 5? 0.0? 0.0? ? ? 0? ? 0 ?? ? ? ? S<? 12:18? 0:00 [kworker/0:0H]
root? ? ? ? ? 6? 0.0? 0.0? ? ? 0? ? 0 ?? ? ? ? S? ? 12:18? 0:00 [kworker/u256:0]
[root@localhost ~]# ps -ef
UID? ? ? ? PID? PPID? C STIME TTY? ? ? ? ? TIME CMD
root? ? ? ? ? 1? ? ? 0? 1 12:18 ?? ? ? ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root? ? ? ? ? 2? ? ? 0? 0 12:18 ?? ? ? ? 00:00:00 [kthreadd]
root? ? ? ? ? 3? ? ? 2? 0 12:18 ?? ? ? ? 00:00:00 [ksoftirqd/0]
root? ? ? ? ? 4? ? ? 2? 0 12:18 ?? ? ? ? 00:00:00 [kworker/0:0]
root? ? ? ? ? 5? ? ? 2? 0 12:18 ?? ? ? ? 00:00:00 [kworker/0:0H]
root? ? ? ? ? 6? ? ? 2? 0 12:18 ?? ? ? ? 00:00:00 [kworker/u256:0]
root? ? ? ? ? 7? ? ? 2? 0 12:18 ?? ? ? ? 00:00:00 [migration/0]
18)top — Top processes:可以實時動態(tài)地查看系統(tǒng)的整體運行情況,是一個綜合了多方信息監(jiān)測系統(tǒng)性能和運行信息的實用工具。通過top命令所提供的互動式界面,用熱鍵可以管理。
語法
top(選項)
選項
-b:以批處理模式操作;
-c:顯示完整的治命令;
-d:屏幕刷新間隔時間;
-I:忽略失效過程;
-s:保密模式;
-S:累積模式;
-i<時間>:設置間隔時間;
-u<用戶名>:指定用戶名;
-p<進程號>:指定進程;
-n<次數(shù)>:循環(huán)顯示的次數(shù)。
top交互命令
在top命令執(zhí)行過程中可以使用的一些交互命令。這些命令都是單字母的,如果在命令行中使用了-s選項,?其中一些命令可能會被屏蔽。
h:顯示幫助畫面,給出一些簡短的命令總結說明;
k:終止一個進程;
i:忽略閑置和僵死進程,這是一個開關式命令;
q:退出程序;
r:重新安排一個進程的優(yōu)先級別;
S:切換到累計模式;
s:改變兩次刷新之間的延遲時間(單位為s),如果有小數(shù),就換算成ms。輸入0值則系統(tǒng)將不斷刷新,默認值是5s;
f或者F:從當前顯示中添加或者刪除項目;
o或者O:改變顯示項目的順序;
:切換顯示平均負載和啟動時間信息;
m:切換顯示內存信息;
t:切換顯示進程和CPU狀態(tài)信息;
c:切換顯示命令名稱和完整命令行;
M:根據(jù)駐留內存大小進行排序;
P:根據(jù)CPU使用百分比大小進行排序;
T:根據(jù)時間/累計時間進行排序;
w:將當前設置寫入~/.toprc文件中。
實例
top - 11:50:59 up 58 min, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 119 total,? 1 running, 118 sleeping,? 0 stopped,? 0 zombie
%Cpu(s):? 0.1 us,? 0.1 sy,? 0.0 ni, 99.8 id,? 0.0 wa,? 0.0 hi,? 0.0 si,? 0.0 st
KiB Mem :? 1863252 total,? 1538192 free,? ? 99012 used,? 226048 buff/cache
KiB Swap:? 2097148 total,? 2097148 free,? ? ? ? 0 used.? 1580640 avail Mem
? PID USER? ? ? PR? NI? ? VIRT? ? RES? ? SHR S? %CPU %MEM? ? TIME+ COMMAND
? ? 9 root? ? ? 20? 0? ? ? 0? ? ? 0? ? ? 0 S? 0.3? 0.0? 0:01.26 rcu_sched
? ? 61 root? ? ? 20? 0? ? ? 0? ? ? 0? ? ? 0 S? 0.3? 0.0? 0:04.91 kworker/0:1
? 6548 root? ? ? 20? 0? 216408? 4808? 3480 S? 0.3? 0.3? 0:00.77 rsyslogd
12403 root? ? ? 20? 0? 161692? 6696? 5152 S? 0.3? 0.4? 0:01.14 sshd
26079 root? ? ? 20? 0? 162008? 2248? 1572 R? 0.3? 0.1? 0:00.02 top
? ? 1 root? ? ? 20? 0? 125300? 3780? 2564 S? 0.0? 0.2? 0:02.66 systemd
? ? 2 root? ? ? 20? 0? ? ? 0? ? ? 0? ? ? 0 S? 0.0? 0.0? 0:00.01 kthreadd
? ? 3 root? ? ? 20? 0? ? ? 0? ? ? 0? ? ? 0 S? 0.0? 0.0? 0:00.05 ksoftirqd/0
? ? 4 root? ? ? 20? 0? ? ? 0? ? ? 0? ? ? 0 S? 0.0? 0.0? 0:00.00 kworker/0:0
? ? 5 root? ? ? 0 -20? ? ? 0? ? ? 0? ? ? 0 S? 0.0? 0.0? 0:00.00 kworker/0:0H
? ? 6 root? ? ? 20? 0? ? ? 0? ? ? 0? ? ? 0 S? 0.0? 0.0? 0:00.02 kworker/u256:0
? ? 7 root? ? ? rt? 0? ? ? 0? ? ? 0? ? ? 0 S? 0.0? 0.0? 0:00.06 migration/0
解釋:
top - 11:50:59[當前系統(tǒng)時間],
up 58 min[系統(tǒng)已經運行了68分鐘],
1 user[個用戶當前登錄],
load average: 0.00, 0.01, 0.05[系統(tǒng)負載1分鐘,5分鐘,15分鐘,即任務隊列的平均長度]
Tasks: 119 total[總進程數(shù)],
2 running[正在運行的進程數(shù)],
118 sleeping[睡眠的進程數(shù)],
0 stopped[停止的進程數(shù)],
0 zombie[凍結進程數(shù)],
Cpu(s):?
0.1us[用戶空間占用CPU百分比],
0.1%sy[內核空間占用CPU百分比],
0.0%ni[用戶進程空間內改變過優(yōu)先級的進程占用CPU百分比],
99.8%id[空閑CPU百分比], 0.0%wa[等待輸入輸出的CPU時間百分比],
0.0%hi[],
0.0%st[],
KiB Mem :??
1863252 total[物理內存總量],
1538192 free[使用的物理內存總量],
99012 used[空閑內存總量],
226048 buff/cache[用作內核緩存的內存量]
KiB Swap:??
2097148 total[交換區(qū)總量],
0 used[使用的交換區(qū)總量],
2097148 free[空閑交換區(qū)總量],
1580640 avail Mem[緩沖的交換區(qū)總量],
????????19)shutdown:用來系統(tǒng)關機命令。shutdown指令可以關閉所有程序,并依用戶的需要,進行重新開機或關機的動作。
語法
shutdown????(選項)????(參數(shù))
選項
-c:當執(zhí)行“shutdown -h 11:50”指令時,只要按+鍵就可以中斷關機的指令;
-f:重新啟動時不執(zhí)行fsck;
-F:重新啟動時執(zhí)行fsck;
-h:將系統(tǒng)關機;
-k:只是送出信息給所有用戶,但不會實際關機;
-n:不調用init程序進行關機,而由shutdown自己進行;
-r:shutdown之后重新啟動;
-t<秒數(shù)>:送出警告信息和刪除信息之間要延遲多少秒。
參數(shù)
[時間]:設置多久時間后執(zhí)行shutdown指令;
[警告信息]:要傳送給所有登入用戶的信息。
實例
指定現(xiàn)在立即關機:
shutdown -h now
指定5分鐘后關機,同時送出警告信息給登入用戶:
shutdown +5 "System will shutdown after 5 minutes"
20)du:也是查看使用空間的,但是與df命令不同的是Linux du命令是對文件和目錄磁盤使用的空間的查看,還是和df命令有一些區(qū)別的。
語法
du????[選項]????[文件]
選項
-a或-all 顯示目錄中個別文件的大小。
-b或-bytes 顯示目錄或文件大小時,以byte為單位。
-c或--total 除了顯示個別目錄或文件的大小外,同時也顯示所有目錄或文件的總和。
-k或--kilobytes 以KB(1024bytes)為單位輸出。
-m或--megabytes 以MB為單位輸出。
-s或--summarize 僅顯示總計,只列出最后加總的值。
-h或--human-readable 以K,M,G為單位,提高信息的可讀性。
-x或--one-file-xystem 以一開始處理時的文件系統(tǒng)為準,若遇上其它不同的文件系統(tǒng)目錄則略過。
-L<符號鏈接>或--dereference<符號鏈接> 顯示選項中所指定符號鏈接的源文件大小。
-S或--separate-dirs顯示個別目錄的大小時,并不含其子目錄的大小。
-X<文件>或--exclude-from=<文件> 在<文件>指定目錄或文件。
--exclude=<目錄或文件> 略過指定的目錄或文件。
-D或--dereference-args 顯示指定符號鏈接的源文件大小。
-H或--si 與-h參數(shù)相同,但是K,M,G是以1000為換算單位。
-l或--count-links 重復計算硬件鏈接的文件。
實例
顯示目錄或者文件所占空間:
[root@localhost data]# du -h /data
16K? ? /data
只顯示當前目錄下面的子目錄的目錄大小和當前目錄的總的大小,最下面的1288為當前目錄的總大小
顯示指定文件所占空間:
[root@localhost data]# du -h /var/log/messages
436K? ? /var/log/messages
????????21)echo:用于在shell中打印shell變量的值,或者直接輸出指定的字符串。linux的echo命令,在shell編程中極為常用, 在終端下打印變量value的時候也是常常用到的,因此有必要了解下echo的用法echo命令的功能是在顯示器上顯示一段文字,一般起到一個提示的作用。
語法
echo????(選項)????(參數(shù))
選項
-e:激活轉義字符。
使用-e選項時,若字符串中出現(xiàn)以下字符,則特別加以處理,而不會將它當成一般文字輸出:
\a 發(fā)出警告聲;
\b 刪除前一個字符;
\c 最后不加上換行符號;
\f 換行但光標仍舊停留在原來的位置;
\n 換行且光標移至行首;
\r 光標移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\\ 插入\字符;
\nnn 插入nnn(八進制)所代表的ASCII字符;
參數(shù)
變量:指定要打印的變量。
實例
用echo命令打印帶有色彩的文字:
文字色:
echo -e "\e[1;31mThis is red text\e[0m"This is red text

\e[1;31m?將顏色設置為紅色
\e[0m?將顏色重新置回
顏色碼:重置=0,黑色=30,紅色=31,綠色=32,黃色=33,藍色=34,洋紅=35,青色=36,白色=37
背景色:
echo -e "\e[1;42mGreed Background\e[0m"Greed Background

顏色碼:重置=0,黑色=40,紅色=41,綠色=42,黃色=43,藍色=44,洋紅=45,青色=46,白色=47
文字閃動:
echo -e "\033[37;31;5mMySQL Server Stop...\033[39;49;0m"


紅色數(shù)字處還有其他數(shù)字參數(shù):0 關閉所有屬性、1 設置高亮度(加粗)、4 下劃線、5 閃爍、7 反顯、8 消隱
????????22)date:顯示或設置系統(tǒng)時間與日期。
????????很多shell腳本里面需要打印不同格式的時間或日期,以及要根據(jù)時間和日期執(zhí)行操作。延時通常用于腳本執(zhí)行過程中提供一段等待的時間。日期可以以多種格式去打印,也可以使用命令設置固定的格式。在類UNIX系統(tǒng)中,日期被存儲為一個整數(shù),其大小為自世界標準時間(UTC)1970年1月1日0時0分0秒起流逝的秒數(shù)。
語法
date????(選項)????(參數(shù))
選項
-d<字符串>:顯示字符串所指的日期與時間。字符串前后必須加上雙引號;
-s<字符串>:根據(jù)字符串來設置日期與時間。字符串前后必須加上雙引號;
-u:顯示GMT;
--help:在線幫助;
--version:顯示版本信息。
參數(shù)
<+時間日期格式>:指定顯示時使用的日期時間格式。
日期格式字符串列表
時間方面 :?
% : 印出?
% %n : 下一行?
%t : 跳格?
%H : 小時(00..23)?
%I : 小時(01..12)?
%k : 小時(0..23)?
%l : 小時(1..12)?
%M : 分鐘(00..59)?
%p : 顯示本地 AM 或 PM?
%r : 直接顯示時間 (12 小時制,格式為 hh:mm:ss [AP]M)?
%s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數(shù) %S : 秒(00..61)?
%T : 直接顯示時間 (24 小時制)?
%X : 相當于 %H:%M:%S?
%Z : 顯示時區(qū)?
日期方面 :?
%a : 星期幾 (Sun..Sat)?
%A : 星期幾 (Sunday..Saturday)?
%b : 月份 (Jan..Dec)?
%B : 月份 (January..December)?
%c : 直接顯示日期和時間?
%d : 日 (01..31)?
%D : 直接顯示日期 (mm/dd/yy)?
%h : 同 %b?
%j : 一年中的第幾天 (001..366)?
%m : 月份 (01..12)?
%U : 一年中的第幾周 (00..53) (以 Sunday 為一周的第一天的情形)?
%w : 一周中的第幾天 (0..6)?
%W : 一年中的第幾周 (00..53) (以 Monday 為一周的第一天的情形)?
%x : 直接顯示日期 (mm/dd/yy)?
%y : 年份的最后兩位數(shù)字 (00.99)?
%Y : 完整年份 (0000..9999)?
若是不以加號作為開頭,則表示要設定時間,而時間格式為 MMDDhhmm[[CC]YY][.ss],?
其中 MM 為月份,?
DD 為日,?
hh 為小時,?
mm 為分鐘,?
CC 為年份前兩位數(shù)字,?
YY 為年份后兩位數(shù)字,?
ss 為秒數(shù)?
實例
格式化輸出:
[root@localhost ~]# date +"%Y-%m-%d"
2020-06-10
輸出昨天日期:
[root@localhost ~]# date -d "1 day ago" +"%Y-%m-%d"
2020-06-09
2秒后輸出:
[root@localhost ~]# date -d "2 second" +"%Y-%m-%d %H:%M.%S"
2020-06-10 20:42.00
傳說中的 1234567890 秒:
[root@localhost ~]# date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S"
2009-02-13 23:02:30
普通轉格式:
[root@localhost ~]# date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S"
2009/12/12 00:00.00
apache格式轉換:
[root@localhost ~]# date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S"
2009-12-05 00:00.37
格式轉換后時間游走:
[root@localhost ~]# date -d "Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"
2007-12-05 00:00.37
加減操作:
date +%Y%m%d? ? ? ? ? ? ? ? ? //顯示前天年月日
date -d "+1 day" +%Y%m%d? ? ? //顯示前一天的日期
date -d "-1 day" +%Y%m%d? ? ? //顯示后一天的日期
date -d "-1 month" +%Y%m%d? ? //顯示上一月的日期
date -d "+1 month" +%Y%m%d? ? //顯示下一月的日期
date -d "-1 year" +%Y%m%d? ? ? //顯示前一年的日期
date -d "+1 year" +%Y%m%d? ? ? //顯示下一年的日期
設定時間:
date -s? ? ? ? ? ? ? ? ? ? ? ? //設置當前時間,只有root權限才能設置,其他只能查看
date -s 20120523? ? ? ? ? ? ? //設置成20120523,這樣會把具體時間設置成空00:00:00
date -s 01:01:01? ? ? ? ? ? ? //設置具體時間,不會對日期做更改
date -s "01:01:01 2012-05-23"? //這樣可以設置全部時間
date -s "01:01:01 20120523"? ? //這樣可以設置全部時間
date -s "2012-05-23 01:01:01"? //這樣可以設置全部時間
date -s "20120523 01:01:01"? ? //這樣可以設置全部時間
????????23)ifconfig:用于配置和顯示Linux內核中網(wǎng)絡接口的網(wǎng)絡參數(shù)。用ifconfig命令配置的網(wǎng)卡信息,在網(wǎng)卡重啟后機器重啟后,配置就不存在。要想將上述的配置信息永遠的存的電腦里,那就要修改網(wǎng)卡的配置文件了。
語法
ifconfig????(參數(shù))
參數(shù)
add<地址>:設置網(wǎng)絡設備IPv6的ip地址;
del<地址>:刪除網(wǎng)絡設備IPv6的IP地址;
down:關閉指定的網(wǎng)絡設備;
<硬件地址>:設置網(wǎng)絡設備的類型與硬件地址;
io_addr:設置網(wǎng)絡設備的I/O地址;
irq:設置網(wǎng)絡設備的IRQ;
media<網(wǎng)絡媒介類型>:設置網(wǎng)絡設備的媒介類型;
mem_start<內存地址>:設置網(wǎng)絡設備在主內存所占用的起始地址;
metric<數(shù)目>:指定在計算數(shù)據(jù)包的轉送次數(shù)時,所要加上的數(shù)目;
mtu<字節(jié)>:設置網(wǎng)絡設備的MTU;
netmask<子網(wǎng)掩碼>:設置網(wǎng)絡設備的子網(wǎng)掩碼;
tunnel<地址>:建立IPv4與IPv6之間的隧道通信地址;
up:啟動指定的網(wǎng)絡設備;
-broadcast<地址>:將要送往指定地址的數(shù)據(jù)包當成廣播數(shù)據(jù)包來處理;
-pointopoint<地址>:與指定地址的網(wǎng)絡設備建立直接連線,此模式具有保密功能;
-promisc:關閉或啟動指定網(wǎng)絡設備的promiscuous模式;
IP地址:指定網(wǎng)絡設備的IP地址;網(wǎng)絡設備:指定網(wǎng)絡設備的名稱。
實例
顯示網(wǎng)絡設備信息(激活狀態(tài)的):
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>? mtu 1500
? ? ? ? inet 192.168.1.111? netmask 255.255.255.0? broadcast 192.168.1.255
? ? ? ? inet6 fe80::3f7e:d4c4:9d7f:18c4? prefixlen 64? scopeid 0x20<link>
? ? ? ? ether 00:0c:29:e6:1f:72? txqueuelen 1000? (Ethernet)
? ? ? ? RX packets 3276? bytes 259205 (253.1 KiB)
? ? ? ? RX errors 0? dropped 0? overruns 0? frame 0
? ? ? ? TX packets 418? bytes 48056 (46.9 KiB)
? ? ? ? TX errors 0? dropped 0 overruns 0? carrier 0? collisions 0
說明:
ens33表示第一塊網(wǎng)卡,其中HWaddr表示網(wǎng)卡的物理地址,可以看到目前這個網(wǎng)卡的物理地址(MAC地址)是00:0c:29:e6:1f:72。
inet addr用來表示網(wǎng)卡的IP地址,此網(wǎng)卡的IP地址是?192.168.1.111,廣播地址Bcast:?192.168.1.255,掩碼地址Mask:255.255.255.0。
lo是表示主機的回環(huán)地址,這個一般是用來測試一個網(wǎng)絡程序,但又不想讓局域網(wǎng)或外網(wǎng)的用戶能夠查看,只能在此臺主機上運行和查看所用的網(wǎng)絡接口。比如把 htttpd服務器的指定到回環(huán)地址,在瀏覽器輸入127.0.0.1就能看到你所架WEB網(wǎng)站了。但只是您能看得到,局域網(wǎng)的其它主機或用戶無從知道。
第一行:連接類型:Ethernet(以太網(wǎng))HWaddr(硬件mac地址)。
第二行:網(wǎng)卡的IP地址、子網(wǎng)、掩碼。
第三行:UP(代表網(wǎng)卡開啟狀態(tài))RUNNING(代表網(wǎng)卡的網(wǎng)線被接上)MULTICAST(支持組播)MTU:1500(最大傳輸單元):1500字節(jié)。
第四、五行:接收、發(fā)送數(shù)據(jù)包情況統(tǒng)計。
第七行:接收、發(fā)送數(shù)據(jù)字節(jié)數(shù)統(tǒng)計信息。
啟動關閉指定網(wǎng)卡:
ifconfig eth0 up
ifconfig eth0 down
ifconfig eth0 up為啟動網(wǎng)卡eth0,ifconfig eth0 down為關閉網(wǎng)卡eth0。ssh登陸linux服務器操作要小心,關閉了就不能開啟了,除非你有多網(wǎng)卡。
為網(wǎng)卡配置和刪除IPv6地址:
ifconfig ens33 add 33ffe:3240:800:1005::2/64#為網(wǎng)卡eth0配置IPv6地址ifconfig eth0 del 33ffe:3240:800:1005::2/64#為網(wǎng)卡eth0刪除IPv6地址
用ifconfig修改MAC地址:
ifconfig ens33 hw ether 00:AA:BB:CC:dd:EE
配置IP地址:
[root@localhost ~]# ifconfig ens33 192.168.2.10

[root@localhost ~]# ifconfig ens33 192.168.2.10 netmask 255.255.255.0
[root@localhost ~]# ifconfig ens33 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255
啟用和關閉arp協(xié)議:
ifconfig eth0 arp#開啟網(wǎng)卡eth0 的arp協(xié)議ifconfig eth0 -arp#關閉網(wǎng)卡eth0 的arp協(xié)議
設置最大傳輸單元:
ifconfig eth0 mtu 1500#設置能通過的最大數(shù)據(jù)包大小為 1500 bytes