Linux作業系統與實訓 CentOS 7.4 & RHEL 7.4 基本命令
- 一、檔案目錄命令類
- 1、瀏覽目錄類命令
- (1) pwd命令
- (2) cd命令
- (3) 使用ls命令
- 2、瀏覽檔案類命令
- (1) cat命令
- (2) more命令
- (3) less命令
- (4) head命令
- (5) tail命令
- 3、目錄操作類命令
- (1) mkdir命令
- (2) rmdir命令
- 4、熟練使用 cp命令
- (1) cp命令的使用方法
- (2) 使用cp命令的范例
- 5、檔案操作類命令
- (1) mv命令
- (2) rm命令
- (3) touch 命令
- (4) diff命令
- (5) ln命令
- (6) gzip和gunzip命令
- (7) tar命令
- (8) rpm命令
- (9) whereis命令
- (10) whatis命令
- (11) find命令
- (12) locate命令
- (13) grep命令
- (14) dd命令
- 二、系統資訊類命令
- (1) dmesg命令
- (2) free命令
- (3) date命令
- (4) cal命令
- (5) clock命令
- 三、行程管理類命令
- (1) ps命令
- (2) pidof 命令
- (3) kill命令
- (4) killall命令
- (5) nice命令
- (6) renice命令
一、檔案目錄命令類
1、瀏覽目錄類命令
(1) pwd命令
pwd命令用于顯示用戶當前所處的目錄,如果用戶不知道自己當前所處的目錄,就必須使用它,
例如:
[root@server1 etc] #pwd 用于顯示用戶當前所處的目錄,
/etc
(2) cd命令
cd命令用來在不同的目錄中進行切換,
用戶在登錄系統時會處于用戶的家目($HOME)中,該目錄一般以/home開始,后跟用戶名,這個目錄就是用戶的初始登錄目錄(root用戶的家目錄為/root),
如果用戶想切換到其他的目錄中,就可以使用cd命令,后跟想要切換的目錄名,例如:
[root@server1 etc]#cd //改變目錄位置至用戶登錄時的作業目錄
[root@server1 ~ ]#cd dir1 //改變目錄位置至當前目錄下的dirl子目錄
[root@serverl dir1]#cd ~ //改變目錄位置至用戶登錄時的作業目錄(用戶的家目錄)
[rooteserverl ~ ]#cd . . //改變目錄位置至當前目錄的父目錄中
[root@server1 /]#cd //改變目錄位置至用戶登錄時的作業目錄
[root@serverl ~]#cd . . /etc //改變目錄位置至當前目錄的父目錄下的etc 子目錄
[rooteserver1 etc]#cd /dir1/subdir1 //利用絕 對路徑表示改變目錄到/dir1/subdir1目錄下
在Linux系統中,用“ . ”代表當前目錄:用“ . . ”代表當前目錄的父目錄:用“ ~ ”代表用戶的個人家目錄(主目錄),
例如,root用戶的個人主目錄是/root,則不帶任何引數的cd命令相當于“cd~”,即將目錄切換到用戶的家目錄,
(3) 使用ls命令
Ls命令用來列出檔案或目錄資訊,該命令的語法為:
Ls [引數] [目錄或檔案]
Is命令的常用引數選項如下,
-a:顯示所有檔案,包括以“ . ”開頭的隱藏檔案,
-A:顯示指定目錄下所有的子目錄及檔案,包括隱藏檔案,但不顯示“ . ”和“ . . ”
-c:按檔案的修改時間排序,
-C:分成多列顯示各行,
-d:如果引數是目錄,則只顯示其名稱而不顯示其下的各個檔案,往往與“1”選項一起使用,以得到目錄的詳細資訊,
-l:以長格形式顯示檔案的詳細資訊,
-i:在輸出的第一 列顯示檔案的i節點號,
例如:
[root@server1 ~ ]#ls //列出當前目錄下的檔案及目錄
[root@server1 ~ ]#ls -a //列出包括以“,”開始的隱藏檔案在內的所有檔案
[root@serverl ~]#ls -t //依照檔案最后修改時間的順序列出檔案
[root@serverl ~ ]#ls -F /*列出當前目錄下的檔案名及其型別,以 / 結尾表示為目錄名,以 * 結尾表示為可執行檔案,以@結尾表示為符號連接* /
[root@serverl ~]#ls -l //列出當前目錄下所有檔案的權限、所有者、檔案大小、修改時間及名稱
[rooteserver1 ~]#ls -lg //顯示出檔案所有者的作業組名
[root@serverl ~]#ls -R //顯示目錄下以及其所有子目錄的檔案名
2、瀏覽檔案類命令
(1) cat命令
cat命令主要用于滾屏顯示檔案內容或是將多個檔案合并成一個檔案,
該命令的語法為:
cat [引數]檔案名
cat命令的常用引數選項如下,
-b:對輸出內容中的非空行標注行號,
-n:對輸出內容中的所有行標注行號,
通常使用cat命令查看檔案內容,但是cat命令的輸出內容不能夠分頁顯示,要查看超過一屏的檔案內容,需要使用more或less 等其他命令,
如果在cat命令中沒有指定引數,則cat會從標準輸人(鍵盤)中獲取內容,
例如,要查看/soft/filel檔案內容的命令為:
[root@serverl ~ ]#cat /soft/file1
利用cat命令還可以合并多個檔案,
例如,把filel和file2檔案的內容合并為file3,且file2檔案的內容在filel 檔案的內容前面
則命令為:
[rooteserver1 ~]#cat file2 file1>file3
//如果file3檔案存在,此命令的執行結果會覆寫file3檔案中原有內容
[rooteserver1 ~]#cat file2 file1>>fILe
//如果file3檔案存在,此命令的執行結果將把file2和file1檔案的內容附加到file3檔案中原有內容的后面
(2) more命令
在使用cat命令時如果檔案太長,用戶只能看到檔案的最后部分,這時可以使用 more命令一頁一頁的分屏顯示檔案的內容,
More命令通常用于分屏顯示檔案內容,大部分情況下,可以不加任何引數選項來執行more命令查看檔案內容,
執行more命令后進入more狀態,按Enter鍵可以向下移動一行;按Space鍵可以向下移動一頁;按q鍵可以退出more命令,
該命令的語法為:
more [引數] 檔案名
more命令的常用引數選項如下,
-num:這里的num是一個數字,用來指定分頁顯示時每頁的行數,
+ num:指定從檔案的第num行開始顯示,
例如:
[root@serverl ~ ]#more file1 //以分頁方式查看filel檔案的內容
[root@serverl ~ ]#cat file1 | more //以分頁方式查看filel 檔案的內容
more命令經常在管道中被呼叫以實作各種命令輸出內容的分屏顯示,上面的第一個命令就是利用Shell的管道功能分屏顯示file1檔案的內容.
(3) less命令
less命令是more命令的改進版,比more命令的功能強大,more命令只能向下翻頁,而less命令可以向下、向上翻頁,甚至可以前、后左、右移動,
執行less命令后,進入less狀態,
按 Enter鍵可以向下移動一行;按 Space鍵可以向下移動一頁;
按b鍵可以向上移動一頁,也可以用游標鍵向前、后、左、右移動;
按q鍵可以退出less命令
less命令還支持在一個文本檔案中進行快速查找,先按下斜杠鍵/,再輸入要查找的單詞或字符,
less命令會在文本檔案中進行快速查找,并把找到的第一個搜索目標高亮顯示,如果希望繼續查找,就再次按下斜杠鍵/,再按 Enter鍵即可
less命令的用法與more基本相同,下面舉例說明,本例的前提條件是已經安裝了 httpd, httpdh服務,否則需要先安裝httpd服務,安裝httpd服務的步驟如下:
如果能夠連接互聯網,并且有較高網速,可以直接使用系統自帶的yum源檔案,不需要單獨編輯yum源檔案,這時請直接跳到步驟(3),而忽略前兩步,
提示后面在使用yum安裝軟體時也依據此原則,不再贅述,
(1) 掛載ISO安裝鏡像,
[root@server1 ~]#mkdir /iso
[root8server1~] #mount /dev/cdrom /iso
(2) 制作用于安裝的yum源檔案(后面的所有專案的yum源不再贅述)
先洗掉/ete/yum.repos.d/目錄下的所有檔案,編輯生成/etc/yum. repos.d/dvd.repo檔案,
[root@server1~]#cd /ete/yum. repos.d/
[root@server1 yum. repos. d] #rm * . *
[root@server1 yum. repos.d] #vim /etc/yum. repos. d/dvd. repo
源檔案的內容如下,
#/etc/yum. repos.d/dvd.repo
# or for ONLY the media repo, do this:
yum--disablerepo=\*--enablerepo=c6-media [command]
[dvd]
name=dvd
baseurl=file: ///iso
gpgcheck=0
enabled=1
(3) 使用yum命令安裝 httpd軟體包,
[root@server1 yum. repos. d]#cd
[rooteserver1~]#yum clean all /安裝前先清除快取
[rooteserver1~]# yum install httpd-y
(4) 使用less命令
//以分頁方式查看 httpd. conf檔案的內容
[root@serve1~]#less/etc/httpd/cont/httpd.conf
(4) head命令
head命令用于顯示檔案的開頭部分,默認情況下只顯示檔案的前10行內容,
該命令的語法為:
head [引數] 檔案名
head命令的常用引數選項如下,
-n num:顯示指定檔案的前num行,
-c num:顯示指定檔案的前num個字符,
例如:
[root@server1 ~ ] #head -n 20/etc/httpd/conf/httpd. conf//顯示httpd.conf檔案的前20行
(5) tail命令
tail命令用于顯示檔案的末尾部分,默認情況下只顯示檔案的末尾10行內容,
該命令的語法為:
tail [引數] 檔案名
tail命令的常用引數選項如下,
-n num:顯示指定檔案的末尾num行,
-c num:顯示指定檔案的末尾num個字符,
+num:從第num行開始顯示指定檔案的內容,
例如:
[root@serverl~]#tail-n 20 /etc/httpd/ conf/ httpd. conf // 顯示httpd.conf檔案的末尾20行
tail命令最強大的功能是可以持續重繪一個檔案的內容,當想要實時查看最新日志檔案時,該功能特別有用,此時的命令格式為“tail-f檔案名”,
3、目錄操作類命令
(1) mkdir命令
mkdir命令用于創建一個目錄,該命令的語法為:
mkdir [引數] 目錄名
上述目錄名可以為相對路徑,也可以為絕對路徑,錄的父目錄,
mkdir命令的-p引數表示在創建目錄時,果父目錄不存在,則同時創建該目錄及該目
例如:
[root@serverl ~]#mkdir dir1 //在當前目錄下創建dir1子目錄
[root@serverl ~]#mkdir -p dir2/subdir2
//在當前目錄的dir2目錄中 subdir2創建2子目錄,如果dir2目錄不存在,則同時創建
(2) rmdir命令
rmdir命令用于洗掉空目錄,該命令的語法為:
rmdir [引數] 目錄名
上述目錄名可以為相對路徑,也可以為絕對路徑,但所洗掉的目錄必須為空目錄,
rmdir命令的-p引數表示在洗掉目錄時一起洗掉父目錄,但父目錄中必須沒有其他目錄及檔案,
例如:
[root@server1~]# rmdir dir1 //在當前目錄下洗掉dir1空子目錄
[root@server1~] #rmdir-p dir2/subdir2
//洗掉當前目錄中的dir2/subdir22子目錄,洗掉 subdir22目錄時,如果dir2目錄中無其他目錄,則一起被洗掉
4、熟練使用 cp命令
(1) cp命令的使用方法
cp命令主要用于檔案或目錄的復制,該命令的語法為:
cp [引數] 源檔案 目標檔案
cp命令的常用引數選項如下,
-a:盡可能將檔案狀態、權限等屬性按照原狀予以復制,
-f:如果目標檔案或目錄存在,先洗掉它們再進行復制(即覆寫),并且不提示用戶,
-i:如果目標檔案或目錄存在,提示是否覆寫已有的檔案
-r:遞回復制目錄,即包含目錄下的各級子目錄,
(2) 使用cp命令的范例
復制(cp)這個指令是非常重要的,不同身份者執行這個指令會有不同的結果產生,尤其是-a、-p選項,對于不同身份來說差異非常大,
下面的練習中,有的身份為root,有的身份為一般賬號(在這里用bobby這個賬號),練習時請特別注意身份的差別,請觀察下面的復制練習,
[例2-1]
用root身份將家目錄下的. bashre復制到/tmp下,并更名為bashre,
[root@server1 ~ ]#cp ~/ .bashrc /tmp/bashrc
[root@server1 ~]#cp -i~/.bashrc /tmp/bashrc
cp: overwrite /tmp/bashrc ' ? n不覆寫,y為覆寫
//重復做兩次,由于/tmp下已經存在bashrc了,加上-i選項后,則在覆寫前會詢問使用者是否確定,可以按下n或者y進行第二次確認
[例2-2]
變換目錄到/tmp,并將/var/log/wtmp復制到/tmp且觀察屬性,
[root@serverl ~ ]#cd /tmp
[root@serverl tmp]#cp /var/1og/wtmp . //想要復制到當前目錄,最后的“."”不要忘記
[root@server1 tmp]#ls -1 /var/1og/wtmp wtmp
一rw-rw-r--1 root utmp 96384 Sep 24 11:54/var/1og/wtmp
一rw-r--r--1 root root 96384 Sep 24 14:06 wtmp
//注意上面的特殊字體,在不加任何選項復制的情況下,檔案的某些屬性/權限會改變,這是個很重要的特性,連檔案建立的時間也不一樣了,要注意
那如果你想要將檔案的所有特性都一起復制過來該怎 么辦呢?可以加上-a,如下 所示,
[rooteserver1 tmp]#cp -a /var/1og/wtmp wtmp_2
[rootEserver1 tmp]#ls -1 /var/1og/wtmp wtmp_2
-rw-rw-r--1 root utmp 96384 Sep 24 11:54/var/1og/wtmp
-rw-rw-r--1 root root 96384 Sep 24 11:54 wtmp_2
cp的功能很多,由于我們常常會進行一些資料的復制,所以也會常常用到這個指令,
-般來說,如果復制別人的資料(當然,你必須要有read 的權限)時,總是希望復制到的資料最后是自己的,
所以,在預設的條件中,cp的源檔案與目的檔案的權限是不同的,目的檔案的擁有者通常會是指令操作者本身,
舉例來說,例2-2中由于是root的身份,因此復制過來的檔案擁有者與群組就改變成為root所有,
由于具有這個特性,因此在進行備份的時候,某些需要特別注意的特殊權限檔案,
例如密碼檔案(/etc/shadow)以及一些組態檔,就不能直接以cP來復制,而必須要加上-a或-p等屬性,
如果你想要復制檔案給其他使用者,也必須要注意到檔案的權限(包含讀、寫、執行以及檔案擁有者等);否則,其他人還是無法針對你給的檔案進行修改,
[例2-3]
復制/etc/這個目錄 下的所有內容到/tmp里面,
[root@server1 tmp]#cp /etc /tmp
cp:omitting directory' /etc' //如果是目錄,則不能直接復制,要加上-r選項
[root@server1 tmp]#cp -r /etc /tmp
//還是要再次強調:加上-r選項可以復制目錄,但是檔案與目錄的權限可能會被改變,所以也可以利用cp-a/etc/tmp命令,尤其是在備份的情況下
[例2-4]
若~/. bashrc比/tmp/ bashre新,就復制過來,
[rootserver1 tmp]#cp -u ~/ .bashre / tmp/bashrc
//-u的特性是在目標檔案與來源檔案有差異時才會復制, 所以常被用于“備份”的作業當中
思考:你能否使用bobby身份完整地復制/var/log/wtmp檔案到/tmp下面,并更名為bobby_ wtmp呢?
參考答案:
[bobby@server1 ~]$cp -a /var/1og/wtmp / tmp/bobby_ wtmp
[bobby@serverl ~ ]$1s -1 /var/1og/wtmp /tmp/bobby_ wtmp
5、檔案操作類命令
(1) mv命令
mv命令主要用于檔案或目錄的移動或改名,該命令的語法為:
mv [引數] 源檔案或目錄 目標檔案或目錄
mv命令的常用引數選項如下,
-i:如果目標檔案或目錄存在時,提示是否覆寫目標檔案或目錄,
-f: 無論目標檔案或目錄是否存在,直接覆寫目標檔案或目錄,不提示,
例如:
//將當前目錄下的testa檔案移動到/usr/目錄下,檔案名不變
[rooteserverl ~]#mv testa /usr/
//將/usr/testa檔案移動到根目錄下,移動后的檔案名為tt
[root@serverl ~]#mv /usr/testa /tt
(2) rm命令
rm命令主要用于檔案或目錄的洗掉,該命令的語法為:
rm [引數]檔案名或目錄名
rm命令的常用引數選項如下,
-i:洗掉檔案或目錄時提示用戶,
-f:洗掉檔案或目錄時不提示用戶,,落關斑維如間本科文個西立數于限令命ad
-R:遞回洗掉目錄,即包含目錄下的檔案和各級子目錄,
例如:
//洗掉當前目錄下的所有檔案,但不洗掉子目錄和隱藏檔案
[rooteserver1 ~ ] #mkdir /dir1 ; cd /dir1
[rooteserver1 dir1]#touch aa.txt bb. txt; mkdir subdir11;11
[rooteserver1 dir1]#rm *
//下行洗掉當前目錄下的子目錄subdirll,包含其下的所有檔案和子目錄,并且提示用戶確認
[root@server1 dir]#rm- iR subdir11
(3) touch 命令
touch命令用于建立檔案或更新檔案的修改日期,該命令的語法為:
touch [引數] 檔案名或目錄名
touch命令的常用引數選項如下,
-d yyyymmdd:把檔案的存取或修改時間改為yyyy年mm月dd日,
-a:只把檔案的存取時間改為當前時間,
-m:只把檔案的修改時間改為當前時間
例如:
[root@server1 ~ ]#touch aa //如果當前目錄下存在aa檔案,則把aa檔案的存取和修改時間改為當前時間,如果不存在aa檔案,則新建aa檔案
[root@sever1 ~]1#touch -d 20180808 aa //將aa檔案的存取和修改時間改為2018年8月8日
(4) diff命令
Diff命令用于比較兩個檔案內容的不同,該命令的語法為:
Diff [引數] 源檔案目標檔案
diff命令的常用引數選項如下,
將所有的檔案當作文本檔案處理,
-b: 忽略空格造成的不同,
-B:忽略空行造成的不同,
-q:只報告什么地方不同,不報告具體的不同資訊,
-i:忽略大小寫的變化,
例如(aa bb aa.txt bb. txt檔案在root家目錄下使用Vim提前建立好 );
[root@serverl ~ ]#diff aa.txt bb. txt
//比較aa.txt檔案和bb.txt檔案的不同
(5) ln命令
In命令用于建立兩個檔案之間的鏈接關系,該命令的語法為:
ln [引數]源檔案或目錄鏈接名
In命令的常用引數-s用于建立符號鏈接(軟鏈接),不加該引數時建立的鏈接為硬鏈接,兩個檔案之間的鏈接關系有兩種:一種稱為硬鏈接;另一種稱為符號鏈接,
(1)硬鏈接,這時兩個檔案名指向的是硬碟上的同一塊存盤空間,對兩個檔案中的任何一個檔案的內容進行修改都會影響到另一個檔案,它可以由In命令不加任何引數建立,
利用ll命令查看家目錄下aa檔案的情況,
[root@server1 ~]#11 aa
-rw-r--r-- 1 root root 0 1月31 15:06 aa
[root@server1 ~]#cat aa
this is aa
由上面命令的執行結果可以看出a8檔案的鏈接數為1,檔案內容為“this is a”"
使用In命令建立aa檔案的硬鏈接bb,
[root@server1 ~ ]#In aa bb
上述命令產生了bb新檔案,它和aa檔案建立起了硬鏈接關系,
[root@server1 ~ ]#11 aa bb
-rw-r--r-- 2 root root 11 1 月31 15:44 aa
- rw-r--r—2 root root 11 1月31 15:44 bb
[rootoserver1 ~ ]#cat bb
this is aa
可以看出,aa和bb的大小和內容均相同,
再看詳細資訊的第2列,原來aa檔案的鏈接數為1,說明這塊硬碟空間只有aa檔案指向;
而建立起aa和bb的硬鏈接關系后,這塊硬碟空間就有aa和bb兩個檔案同時指向它,所以aa和bb的鏈接數都變為2,
此時,如果修改aa或bb任意-一個 檔案的內容,另外一個檔案的內容也將隨之變化,
如果洗掉其中一個檔案(不管是哪一- 個),就是洗掉了該檔案和硬碟空間的指向關系,該硬碟空間不會釋放,另外一個檔案的內容也不會發生改變,但是該檔案的鏈接數會減少一個,
只能對檔案建立硬鏈接,不能對目錄建立硬鏈接,
(2)符號鏈接,這種鏈接也稱為軟鏈接,是指一個檔案指向另外一個檔案的檔案名,符號鏈接類似于Windows系統中的快捷方式,符號鏈接由ln-s命令建立,
首先查看一下aa檔案的資訊,
[rootaserver1 ~]#11 aa
- rw-r--r-- 1 root root 11 1月31 15:44 aa
創建aa檔案的符號鏈接cc,創建完成后查看aa和cc檔案的鏈接數的變化,
[root@server1 ~ ]#ln -s aa cc
[root@server1 ~]#11 aa cc
-rw-r--r-- 1 root root 1 1月31 15:44 aa
1rwxrwxrwx 1 root root 2 1 月31 16:02 cc -> aa
可以看出cc檔案是指向aa檔案的一個符號鏈接,
而指向存盤aa檔案內容的那塊硬碟空間的檔案仍然只有aa一個檔案,cc檔案只不過是指向了aa檔案名而已,所以aa檔案的鏈接數仍為1,
在利用cat命令查看cc檔案的內容時,發現cc檔案是一個符號鏈接檔案,就根據cc檔案記錄的檔案名找到aa檔案,然后將aa檔案的內容顯示出來,
此時如果洗掉了cc檔案,對aa檔案無任何影響;但如果洗掉了aa檔案,那么ce檔案就因無法找到aa檔案而毫無用處,
(6) gzip和gunzip命令
gzip命令用于對檔案進行壓縮,生成的壓縮檔案以“.gz”"結尾;而gunzip 命令是對以”.gz”結尾的檔案進行解壓縮,這兩個命令的語法為:
gzip -v檔案名
gunzip -v檔案名
其中,-V引數選項表示顯示被壓縮檔案的壓縮比或解壓時的資訊,
例如(在root家目錄下):
[root@server1 ~]#cd
[root@server1 ~]#gzip -v initial- setup- ks.cfg
initial-setup- ks.cfg: 53.4% -- replaced with initial-setup- ks.cfg.gz
[root@server1 ~ ]#gunzip -V initial-setup- ks. cfg.gz
initial-setup-ks.cfg.gz: 53.4% -- replaced with initial-setup- ks.cfg
(7) tar命令
tar是用于檔案打包的命令列工具,tar命令可以把一系列的檔案歸檔到一個大檔案中,也可以把檔案檔案解開以恢復資料,總的來說,tar命令主要用于打包和解包,tar 命令是Linux系統中常用的備份工具之一,該命令的語法為:
tar [引數] 檔案檔案 檔案串列
tar命令的常用引數選項如下,
-c:生成檔案檔案,
-v:列出歸檔、解檔的詳細程序,
-f: 指定檔案檔案名稱,
-r: 將檔案追加到檔案檔案末尾,
-z:以gzip格式壓碩訓解壓縮檔案,
- j:以bzip2格式壓碩訓解壓縮檔案,
-d:比較檔案與當前目錄中的檔案,
-x:解開檔案檔案,
例如(提前用touch 命令在“/”目錄下建立測驗檔案):
[rooteserverl ~]#tar -cvf yy.tar aa tt //將當前目錄 下的aa和tt檔案歸檔為yy.tar
[root@server1 ~ ]#tar -xvf yy. tar //從yy.tar檔案檔案中恢復資料
//將當前目錄下的aa和tt檔案歸檔并壓縮為yy.tar.gz
[rooteserver1 ~ ]#tar -czvf yy.tar.gz aa tt
[root@server1 ~ ]#tar -xzvf yy. tar .gz //將yy.tar.gz檔案解壓縮并恢復資料
[root@server1 ~ ]#tar -czvf etc.tar.gz /etc //把/etc目錄進行打包壓縮
[root@server1 ~ ]#mkdir /root/etc
//將打包后的壓縮包檔案指定解壓到/root/etc
[root@server1 ~]#tar xzvf etc.tar.gz -C /root/etc
(8) rpm命令
rpm命令主要用于對RPM軟體包進行管理,RPM軟體包是Limux的各種發行版本中應用最內廣邁的軟體包格式之.學會使用rpm命令對RPM軟體包進行管理至關重要,
該命令的語法為:
rpm [引數] 軟體包名
rpm命令的常用引數選項如下,
-qa:查詢系統中安裝的所有軟體包,
-q: 查詢指定的軟體包在系統中是否安裝,
-qi: 查詢系統中已安裝軟體包的描述資訊,
-ql: 查詢系統中已安裝軟體包里所包含的檔案串列,
-qf: 查詢系統中指定檔案所屬的軟體包,
-qp: 查詢RPM軟體包檔案中的資訊,通常用于在未安裝軟體包之前了解軟體包中的資訊,
-i:用于安裝指定的RPM軟體包,
-v:顯示較詳細的資訊,
-h:以“#”顯示進度,
-e:洗掉已安裝的RPM軟體包,
-U:升級指定的RPM軟體包,軟體包的版本必須比當前系統中安裝的軟體包的版本高才能正確升級,如果當前系統中并未安裝指定的軟體包,則直接安裝,
-F:更新軟體包,
例如:
[rootQserver1 ~ ]# rpm -qa more //顯示系統安裝的所有軟體包串列
[root@server1 ~ ]# rpm -q selinux- policy //查詢系統是否安裝了selinux-policy
[rootserverl ~ # rpm -qi selinux-policy / /查詢系統已安裝的軟體包的描述資訊
[rooteserverl ~ ]# rpm -ql selinux policy //查 詢系統已安裝的軟體包里所包含的檔案串列
[rooteserver1 ~]#xpm -qf /etc/passwd //查詢passwd檔案所屬的軟體包
[root@server1 ~ ]#cd /iso/Packages
//下面安裝軟體包,并以“#”顯示安裝進度和安裝的詳細資訊
[roottserver1 Packages]#rpm - ivh httpd-2.4.6- 80.e17. centos.x8664. rpm
[root@server1 Packages]#xpm -Uvh httpd-2.4.6- 80.e17.centos .x8664. rpm //升級軟體包
[rooteserverl Packages]#xpm-e httpd-2.4. 6-80.e17.centos.x8664 //卸載httpd軟體包
卸載軟體包時不加擴展名.rpm,如果使用命令rpm -e httpd-2. 4.6-80. el7.centos. x86_ 64- nodeps,則表示不檢查依賴性,
(9) whereis命令
whereis命令用來尋找命令的可執行檔案所在的位置,該命令的語法為:
whereis [引數] 命令名稱
whereis命令的常用引數選項如下,
-b:只查找二進制檔案,
-m:只查找命令的聯機幫助手冊部分,
-s:只查找源代碼檔案,
例如:
//查找命令rpm的位置
[root@serverl ~ ]#whereis rpm
rpm: /bin/rpm /etc/rpm /usr/lib/ rpm /usr/include/ rpm /usr/share/man/man8/rpm.8.gz
(10) whatis命令
whatis命令用于獲取命令簡介,它從某個程式的使用手冊中抽出一行簡單的介紹性檔案,幫助用戶迅速了解這個程式的具體功能,該命令的語法為:
whatis命令名稱
例如:
[root@server1 ~ ]#whatis ls
Ls (1) – list directory contents
(11) find命令
find命令用于檔案查找,它的功能非常強大,該命令的語法為:
find [路徑] [匹配表 達式]
find命令的匹配運算式主要有以下幾種型別,
-name filename: 查找指定名稱的檔案,
-user username: 查找屬于指定用戶的檔案,
-group grpname: 查找屬于指定組的檔案,
-print: 顯示查找結果,
-sizen: 查找大小為n塊的檔案,一一塊為512B.
符號“+n”表示查找大小大于n塊的檔案
符號”一”表示查找大小于n塊的檔案:
符號“e”表示在查找大小為n個字符的檔案,
-inumn: 查找索引節點號為n的檔案,
-type: 在找指定型別的檔案,檔案型別有: b(塊設備檔案).c(字符設備檔案).d目錄)、p(管道檔案)、(符號鏈接檔案)、f(普通檔案),
-atimen: 查找”天前被訪問過的檔案,“+n”表示超過”天前被訪問的檔案;“-n表示未超過”天前被訪問的檔案,
-mtime n: 類似于atime,但檢查的是檔案內容被修改的時間,
-ctimen: 類似于atime,但檢查的是檔案索引節點被改變的時間,
-perm mode: 查找與給定權限匹配的檔案,必須以八進制的形式給出訪問權限,
-newer file: 查找比指定檔案新的檔案,即最后修改時間離現在較近,
-exec command { } \; :對匹配指定條件的檔案執行command命令,
-ok command { } \; :與exec相同,但執行command命令時請求用戶確認,
例如:
//在當前目錄下查找普通檔案,并以長格形式顯示
[root@serverl ~]#find .-type f -exec ls -1 {} \ ;
//在/1ogs目錄中查找修改時間為5天以前的普通檔案并洗掉,應保證/1ogs目錄存在
[root@server1 ~]#find /logs -type f -mtime 5 -exec rm { } \;
//在/etc/目錄下查找檔案名以“.conf”結尾的檔案
[root@server1 ~]#find /etc -name ”* . conf"
//在當前目錄下查找權限為755的普通檔案并顯示
[roottserver1 ~]#find .-type f -perm 755 -exec ls { } \;
(12) locate命令
locate命令是Linux系統中用來查找檔案的命令,就像在Windows中的搜索一樣 ,如果你忘了存盤檔案的位置或它的名字,可以用它來解決,
例如,如果你有一個關于區塊鏈用例的檔案,但是你忘了標題,可以輸人locate -blockchain或者通過用星號( * )分隔單詞來查找blockchain use cases,
例如:locate -i * blockchain * use * cases *
(13) grep命令
grep命令用于查找檔案中包含指定字串的行,該命令的語法為:
grep [引數] 要查找的字串檔案名
grep命令的常用引數選項如下,
-v:列出不匹配的行,
-c:對匹配的行計數,
-l:只顯示包含匹配模式的檔案名,
-h:抑制包含匹配模式的檔案名的顯示,
-n:每個匹配行只按照相對的行號顯示,
-i:對匹配模式不區分大小寫,
在grep命令中,字符“^”表示行的開始,字符“$”表示行的結尾,如果要查找的字串中帶有空格,可以用單引號或雙引號括起來,
例如:
//在檔案passwd中查找包含字串root的行,如果找到,顯示該行及該行前后各2行的內容
[root@server1 ~ ]#grep -2 root /etc/passwd
//在passwd檔案中搜索只包含root這4個字符的行
[root@serverl ~ ]#grep "^root$" /etc/passwd
grep和find命令的差別在于: grep是在檔案中搜索滿足條件的行,而find是在指定目錄下根據檔案的相關資訊查找滿足指定條件的檔案,
(14) dd命令
dd命令用于按照指定大小和個數的資料塊來復制檔案或轉換檔案,該命令的語法格式為:
dd [引數]
dd命令是比較重要而且比較有特色的-個命令,它能夠讓用戶按照指定大小和個數的資料塊來復制檔案的內容,當然如果愿意,還可以在復制程序中轉換其中的資料,
Linux系統中有一個名為/dev/zero的設備檔案,這個檔案不會占用系統存盤空間,但卻可以提供無窮無盡的資料,因此可以使用它作為dd命令的輸人檔案,來生成-個指定大小的檔案,
dd命令的引數及其作用如表2-1所示,
表2-1 dd 命令的引數及其作用
引數 作用 引數 作用
If 輸人的檔案名稱 bs 設定每個“塊”的大小
Of 輸出的檔案名稱 count 設定要復制“塊”的個數
例如,可以用dd命令從/dev/zero設備檔案中取出2個大小為560MB的資料塊,然后保存成名為filel的檔案,
在理解了這個命令后,以后就能隨意創建任意大小的檔案了(做配額測驗時很有用),
[ root@server1 ~]# dd if= /dev/zero of=file1 count=2 bs= 560M
記錄了2+0的讀人
記錄了2+0的寫出
1174405120位元組(1 .2GB)已復制,1.12128s,1.0GB/s
dd命令的功能也絕不僅限于復制檔案這么簡單,
如果你想把光驅設備中的光碟制作成iso格式的鏡像檔案,在Windows系統中需要借助于第三方軟體才能做到,
但在Linux系統中可以直接使用dd命令來壓制出光碟鏡像檔案,將它變成-一個可立即使用的iso鏡像,
[root@serverl ~]#dd if= /dev/cdrom of= RHEL- server-7.0-x8664.iso
7311360+0 records in
7311360+0 records out
3743416320 bytes (3.7GB) copied, 370.758s, 10.1MB/s
二、系統資訊類命令
系統資訊類命令是對系統的各種資訊進行顯示和設定的命令,
(1) dmesg命令
dmesg命令用實體名和物理名稱來標識連到系統上的設備,dmesg命令也顯示系統診斷資訊、作業系統版本號、物理記憶體大小以及其他資訊,例如:
[root@server1 ~ ] # dmesg lmore
系統啟動時,螢屏上會顯示系統CPU、記憶體、網卡等硬體資訊,但通常顯示得比較快,如果用戶沒有來得及看清,可以在系統啟動后用dmesg命令查看,
(2) free命令
free命令主要用來查看系統記憶體、虛擬記憶體的大小及占用情況,例如:
[root@server1 ~ ]#free
Total used free shared buff/cache available
Mem: 1865284 894144 107128 14076 864012 714160
Swap: 4194300 0 4194300
(3) date命令
date命令可以用來查看系統當前的日期和時間,例如:
[rootaserverl ~]#date
2016年01月22日星期五15:13:26 CST
date命令還可以用來設置當前的日期和時間,例如:
[root@server1 ~]#date -d 08/08/2018
2018年08月08日星期一00:00:00 CST
注意:只有root用戶才可以改變系統的日期和時間,
(4) cal命令
cal命令用于顯示指定月份或年份的日歷,可以帶兩個引數,其中年、月份用數字表示;
只有一個引數時表示年份,年份的范圍為1~9999;不帶任何引數的cal 命令顯示當前月份的日歷,例如:
[root@server1 ~]#cal 7 2019
七月2019
日 一 二 三 四 五 六
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
(5) clock命令
clock命令用于從計算機的硬體獲得日期和時間,例如:
[root@server1 ~ ]# clock
2018年05月02日星期三15時16分01秒一0.253886seconds
三、行程管理類命令
行程管理類命令是對行程進行各種顯示和設定的命令,
(1) ps命令
ps命令主要用于查看系統的行程,該命令的語法為:
ps [引數]
ps命令的常用引數選項如下,
-a: 顯示當前控制終端的行程(包含其他用戶的),
-u: 顯示行程的用戶名和啟動時間等資訊,
-w: 寬行輸出,不截取輸出中的命令列,
-l: 按長格形式顯示輸出,
-x: 顯示沒有控制終端的行程,
-e: 顯示所有的行程,
-t n: 顯示第n個終端的行程,
例如:
[root@serverl ~ ]#ps -au
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2459 0.0 0.2 1956 348 tty2 Ss+ 09:00 0:00 /sbin/mingetty tty2
root 2460 0.0 0.2 2260 348 tty3 Ss+ 09:00 0:00 /sbin/mingetty tty3
root 2461 0.0 0.2 3420 348 tty4 Ss+ 09:00 0:00 /sbin/mingetty tty4
root 2462 0.0 0.2 3428 348 tty5 Ss+ 09:00 0:00 /sbin/mingetty tty5
root 2463 0.0 0.2 2028 348 tty6 Ss+ 09:00 0:00 /sbin/mingetty tty6
root 2895 0.0 0.9 6472 1180 ttyl Ss+ 09:09 0:00 bash
ps命令通常和重定向、管道等命令一起使用,用于查找出所需的行程,
輸出內容的第一行的中文解釋(自左向右)是:行程的所有者;行程ID號;
運算器占用率;記憶體占用率;
虛擬記憶體使用量(單位是KB);占用的固定記憶體量(單位是KB);
啟動進行的終端名;所在終端行程狀態;被啟動的時間;
實際使用CPU的時間;命令名稱與引數等,
(2) pidof 命令
pidof命令用于查詢某個指定服務行程的PID值,語法格式為:
pidof [引數] [服務名稱]
每個行程的行程ID號(PID)是唯- - 的,因此可以通過PID來區分不同的行程,例如,可以使用以下命令來查詢本機上sshd服務程式的PID,
[root@l RHEL7-1 ~ ]#pidof sshd
11 61
(3) kill命令
前臺行程在運行時,可以用Ctrl+C組合鍵來終止它,但后臺行程無法使用這種方法終止,此時可以使用kill 命令向行程發送強制終止信號,以達到目的,例如:
[rootQserverl dir1]#kill - 1
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) S IGSEGV 12) SI GUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGCHLD
17) SIGCONT 18) SIGSTOP 19) SIGTSTP 20) SIGTTIN
21) SIGTTou 22) SIGURG 23) S IGXCPU 24) SIGXFSZ
25) SI GVTALRM 26) SIGPROF 27) SIGWINCH 28) SIGIO
29) SIGPWR 30) SIGSYS 31) SIGRTMIN 32) S IGRTMIN+ 1
上述命令用于顯示kill命令所能夠發送的信號種類,每個信號都有一個數值對應,例
SIGKILL信號的值為9,
kill命令的語法格式為:
kill [引數 ]行程1行程2...
引數選項-s一般跟信號的型別,
例如:
[root@serverl ~ ]#ps
PID TTY T IME CMD
1448 pts/1 00:00:00 bash
2394 pts/1 00:00:00 ps
[root@serverl ~ ]#kill -s sigkill 1448 (或者kill -9 1448)/1結束bash行程并關閉終端
(4) killall命令
kilal命令用于終止菜個指定名稱的服務所對應的全部行程,該命令的語法格式為:
killall [引數] [行程名稱]
通常來講,復雜軟體的服務程式會有多個行程協同為用戶提供服務,如果逐個去結束這些行程會比較麻煩,此時可以使用klll命令來批量結束某個服務程式帶有的全部行程,
下面以htpd服務程式為例來結束其全部行程,
由于RHEL 7系統默認沒有安裝httpd服務程式,因此大家此時只須看操作程序和輸出結果即可,等學習了相關內容之后再來實踐,
[root@RHEL7-1 ~ ]#pidof httpd
135811358013579135781357713576
[root@RHEL7-1 ~ ]#kil1a11 -9 httpd
[root@RHEL7-1 ~ ]#pidof httpd
[root@RHEL7-1 ~]#
如果在系統終端中執行一個命令后想立即停止它,可以按下Ctrl+C組合鍵(生產環境中比較常用的一個快捷鍵),這樣將立即終止該命令的行程,
或者,如果有些命令在執行時不斷地在螢屏上輸出資訊,影響到后續命令的輸入,則可以在執行命令時在末尾添加上一個&符號,這樣命令將進入系統后臺來執行,
(5) nice命令
Linux系統有兩個和行程有關的優先級,用“ps -1”命令可以看到兩個域: PRI和NIPRI是行程實際的優先級,它是由作業系統動態計算的,
這個優先級的計算和NI值有關NI值可以被用戶更改,NI值越高,優先級越低,
一般用戶只能加大NI值,只有超級用戶才可以減小NI值,NI值被改變后,會影響PRI,優先級高的行程被優先運行,默認時行程的NI值為0,
nice 命令的用法如下:
nice -n程式名 //以指定的優先級運行程式
其中,n表示NI值,正值代表NI值增加,負值代表NI值減小,
例如:
[root@serverl ~]#nice --2 Ps -1
(6) renice命令
renice命令是根據行程的行程號來改變行程的優先級的,該命令的用法如下:
renice n行程號
其中,n為修改后的NI值,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/277778.html
標籤:其他
