上一篇文章「linux入門系列4--vi/vim編輯器」咱們討論了在linux下如何快速高效對文本文件進行編輯和管理,本文將進一步學習必須掌握的linux命令,掌握這些命令才能讓計算機更懂你。node
就咱們前文已經裝好的centos操做系統而言,咱們操做一般有2種方式:第一種就是經過桌面圖形化操做;另一種則是經過終端輸入命令。linux
針對服務器而言咱們一般是採用遠程鏈接工具鏈接到服務器,而後以命令的方式進行管理。咱們輸入命令後計算機怎麼就知道該作什麼呢?那就得靠命令行工具(也稱終端)進行翻譯解釋,而後調用相應的接口服務完成特定的功能。shell
用戶與linux系統的交互是經過shell終端,下文講先分析shell命令行工具,再講解最基礎的linux命令。數據庫
計算機硬件是由運算器、控制器、存儲器、輸入/輸出設備等共同組成的,而讓各類硬件設備各司其職且又能協同運行的東西就是系統內核。Linux 系統的內核負責完成對硬件資源的分配、調度等管理任務。所以,系統內核對計算機的正常運行相當重要,通常不建議直接去編輯內核中的參數,而是讓用戶經過基於系統調用接口開發出的程序或服務來管理計算機,以知足平常工做的須要。而shell就是這樣一個客戶端命令行工具,充當用戶與系統內核溝通的橋樑。編程
Shell也稱「終端」、「殼」,是一種用c語言寫的命令行工具, 充當人與內核(硬件)之間的翻譯官,用戶把一些命令「告訴」終端,它就會調用相應的程序服務去完成某些工做。vim
如下列舉幾種shell版本windows
如今包括紅帽系統在內的許多主流 Linux 系統默認使用的終端是 Bash(Bourne-Again SHell)解釋器 。 主流 Linux 系統選擇 Bash 解釋器做爲命令行終端主要有如下 4 項優點 :centos
經過上下方向鍵來調取過往執行過的 Linux 命令;緩存
命令或參數僅需輸入前幾位就能夠用 Tab 鍵補全;安全
具備強大的批處理腳本;
具備實用的環境變量功能。
咱們裝好的centos7默認也是採用的bash終端,當採用遠程鏈接工具鏈接到centos7,默認開啓的終端就是bash,能夠經過在終端中輸入命令:echo $SHELL 進行查看,獲得的結果爲:/bin/bash。
經過"echo $SHELL" 命令或經過"evn"終端命令
經過終端命令chsh,如:chsh -s /bin/bash將登陸終端改成bash
shell是一個程序,用於用戶和操做系統進行交互,至關因而一個命令解析器。
做爲用戶和內核交互的接口,既是一種命令語言又是一種程序設計語言。shell命令又分爲內置命令和外部命令。
內置命令
內部命令其實是shell程序的一部分,其中包含的是一些比較簡單的linux系統命令,這些命令由shell程序識別並在shell程序內部完成運行,一般在linux系統加載運行時shell就被加載並駐留在系統內存中。內部命令是寫在bashy源碼裏面的,其執行速度比外部命令快,由於解析內部命令shell不須要建立子進程。好比:exit,history,cd,echo等 。
外部命令
外部命令是linux系統中的實用程序部分,由於實用程序的功能一般都比較強大,因此其包含的程序量也會很大,在系統加載時並不隨系統一塊兒被加載到內存中,而是在須要時纔將其調用內存。一般外部命令的實體並不包含在shell中,可是其命令執行過程是由shell程序控制的。shell程序管理外部命令執行的路徑查找、加載存放,並控制命令的執行。外部命令是在bash以外額外安裝的,一般放在/bin,/usr/bin,/sbin,/usr/sbin......等等。可經過「echo $PATH」命令查看外部命令的存儲路徑,好比:ls、vi等
如何區分是內部命令仍是外部命令?
經過type命令,如:type cd 能夠看到是內部命令;type mkdir能夠看到是外部命令。
經過man命令,如:man cd,會提示是bash的內置命令;man ls,會提示是外部命令。
內部命令和外部命令最大的區別之處就是性能。內部命令因爲構建在shell中而沒必要建立多餘的進程,要比外部命令執行快得多。所以和執行更大的腳本道理同樣,執行包含不少外部命令的腳本會損害腳本的性能。
既然 Linux 系統中已經有了 Bash 這麼好用的「翻譯官」,那麼接下來就有必要好好學習怎麼跟它溝通了。要想準確、高效地完成各類任務,僅依賴於命令自己是不夠的,還應該根 據實際狀況來靈活調整各類命令的參數 。
linux執行命令通常格式:命令名稱 [命令參數] [命令對象]
命令名稱、命令參數、命令對象之間用空格鍵分隔。命令對象通常是指要處理的文件、目錄、用戶等資源 ,命令參數則能夠用長格式(--)或短格式(-)。
長格式:man --help
短格式:man -h
linux命令不少,最重要的是各類參數的搭配使用,新手記住全部參數是不可能的,須要常常經過幫助命令進行查閱。
特別說明:在終端中,有時候顯示的內容不少,能夠經過快捷鍵進行翻看。
shift+PgUp:向上翻頁
shift+PgDn:向下翻頁
幫助命令主要有2個:man、help。平時要多於幫助命令,遇到不清楚的命令就用幫助命令查看,無須死記硬背,熟能生巧。
語法:man [命令或配置文件]
做用:獲取幫助信息
案例:
[root@heimatengyun ~]# man date
好比欲查看date命令的用法,輸入命令man date以後出現下圖信息
因爲幫助信息比較多,須要翻頁才能看完,所以先說明一下本界面可能須要用到按鍵及用途。
按鍵 用途 空格鍵 向下翻頁 PgDn (page down) 向下翻頁 PgUp (page up) 向上翻頁 home 前往首頁 end 前往頁尾 / 從上至下搜索關鍵字,如「/linux」 ? 從下至上搜索關鍵字,如「?linux」 n 定位到下一個搜索到的關鍵詞 N 定位到上一個搜索到的關鍵詞 q 退出幫助文檔
初學者一看,這麼多的幫助信息反而感到困惑了,其實很簡單的,咱們來理一下幫助信息的結構(上圖中圈紅線的部分)。
結構名稱 | 說明 |
---|---|
NAME | 命令的名稱 |
SYNOPSIS | 命令的基本語法格式 |
DESCRIPTION | 詳細說明語法格式對應的選項和參數的用法 |
EXAMPLES | 如何使用命令的示例 |
OVERVIEW | 概述 |
DEFAULTS | 默認功能 |
OPTIONS | 具體的可用選項 |
ENVIRONMENT | 環境變量 |
SEE ALSO | 相關的資料,一般是手冊頁 |
經過這些幫助信息,就能夠輕鬆的掌握各個命令的用法。
語法:help 命令
做用:獲取shell內置命令的幫助信息
案例:
[root@heimatengyun ~]# help cd
在正式進入命令學習以前,再介紹幾個linux經常使用的快捷鍵
快捷鍵 | 做用 |
---|---|
ctrl+l | 清屏 |
ctrl+q | 退出 |
ctrl+c | 中止進程 |
上下鍵 | 查找曾今執行過的命令 |
tab | 命令補全,多用不只提升效率還能防止敲錯 |
既然linux一切皆文件,瞭解萬能的幫助命令後,咱們就從目錄文件命令開始學習。
目錄能夠對文件進行分類管理,所以在講解文件命令以前先講解目錄相關命令。
語法:pwd
功能描述:顯示當前工做目錄的絕對路徑
案例:
[root@heimatengyun ~]# pwd /root
語法:ls [選項] [目錄或文件]
功能描述:列出目錄下的文件
選項:
-a(--all):顯示所有文件,包括隱藏文件(以.開頭的文件)
-d:directory,列出目錄自己
-l:long長數據串列出,包含文件的屬性和權限等。每行列出的信息依次爲:文件類型與權限、連接數、文件屬性、文件屬組、文件大小(byte)、建立或最近修改時間、名字
案例:
[root@heimatengyun test]# ls -al total 12 drwxr-xr-x. 2 root root 37 Nov 24 10:43 . dr-xr-x---. 16 root root 4096 Nov 24 00:02 .. -rw-r--r--. 1 root root 26 Nov 23 20:40 test1.txt -rw-r--r--. 1 root root 66 Nov 23 21:56 test.txt
語法:cd [選項][目錄名稱]
功能描述:切換到指定目錄
案例:
cd 絕對路徑或相對路徑 (跳轉到指定目錄)
cd 或cd ~ (返回當前用戶家目錄)
cd - (返回上一次所在的目錄)
cd .. (返回當前目錄的上一級目錄)
語法:mkdir [選項] 目錄名稱
功能描述:建立指定目錄
選項:
-p :parents,建立多層目錄
案例:
[root@heimatengyun ~]# mkdir test
[root@heimatengyun ~]# mkdir -p test1/test1
語法: rmdir [選項] 目錄名稱
功能描述:刪除空目錄
選項:
-p:刪除多級目錄
案例:
[root@heimatengyun ~]# rmdir test
[root@heimatengyun ~]# rmdir -p test1/test1/ (若是不指定-p參數,則只刪除最後一級不爲空的目錄)
語法:cp 源目錄或文件 目標目錄或文件
功能描述:複製目錄或文件
選項:
-r:recursive,遞歸複製整個文件夾
案例:
將test複製爲test.txt,複製時重命名
[root@heimatengyun ~]# cp test test.txt
將全部test目錄內容複製到test1目錄(自動建立test1目錄)
[root@heimatengyun ~]# cp -r test test1
語法:mv [選項] 源 目標
功能描述:移動文件或重命名文件
案例:
將test文件重命名爲test.txt
[root@heimatengyun test]# mv test test.txt
將test目錄及其裏邊全部內容移動到test2目錄,自動建立test2目錄(能夠理解爲將test文件夾重命名爲test2)
[root@heimatengyun ~]# mv test/ test2
語法:rm [選項] 文件
功能描述:刪除文件及目錄
選項:
-f:force強制執行
-r:recursive遞歸執行
案例:
遞歸刪除目錄及其下全部內容
[root@heimatengyun ~]# rm -rf test2/
linux一切皆文件,在鏈接目錄相關命令後,本節學習文件相關命令。
語法:touch [選項] 文件名
功能描述:建立空文件
案例:
[root@heimatengyun test]# touch test.txt
echo
語法:echo 字符串或變量
功能描述:輸出字符串或變量值,還能夠搭配從定向符將內容存儲到文件
案例:
[root@heimatengyun test]# echo hello hello [root@heimatengyun test]# echo $SHELL /bin/bash [root@heimatengyun test]# echo linux >> test.txt
語法:cat [選項] 文件名
功能描述:查看文件內容,從第一行開始顯示
選項:
-A:列出特殊字符而非空白
-b:列出行號,空白行不算行號
-n:列出行號,空白行也會有行號
-v:列出一些看不出來的特殊字符
案例:
[root@heimatengyun test]# cat test.txt hello who are you where are you from [root@heimatengyun test]# cat -A test.txt hello$ who are you$ $ where are you from$ [root@heimatengyun test]# cat -b test.txt 1 hello 2 who are you 3 where are you from [root@heimatengyun test]# cat -n test.txt 1 hello 2 who are you 3 4 where are you from
語法:more [選項] 文件
功能描述:查看文件內容,一頁一頁的顯示
使用說明:
空格鍵(space):向下翻一頁
enter:向下翻一行
q:退出more,不在顯示文件內容
ctrl+f:向下滾動一屏
ctrl+b:返回上一屏
=:輸出當前行的行號
:f:輸出文件名和當前行號
語法:head [選項] 文件
功能描述:查看文件內容,只看頭幾行
選項:
-n:查看頭n行
案例:
[root@heimatengyun test]# head -n 2 test.txt
語法:tail [選項] 文件
功能描述:查看文件內容,只查看文件末尾幾行
選項:
-n:末尾幾行
-f:follow輸出文件修改的內容,用於追蹤文件修改
案例:
[root@heimatengyun test]# tail -n 2 test.txt
語法:wc [選項] 文本
功能描述:統計指定文本的行數、字數、字節數
選項:
-l:lines顯示行數
-w:顯示單詞數
-c:顯示字節數
案例:
[root@heimatengyun test]# cat test.txt hello who are you where are you form? wellcome hahah test [root@heimatengyun test]# wc -l test.txt 8 test.txt [root@heimatengyun test]# wc -c test.txt 60 test.txt [root@heimatengyun test]# wc -w test.txt 11 test.txt
語法:stat [選項] 文件
功能描述:查看文件的具體存儲信息和時間等信息
案例:
[root@heimatengyun test]# stat test.txt File: ‘test.txt’ Size: 60 Blocks: 8 IO Block: 4096 regular file Device: fd01h/64769d Inode: 2160373 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2019-11-23 18:27:02.153101936 +0800 Modify: 2019-11-23 18:26:56.254259870 +0800 Change: 2019-11-23 18:26:56.254259870 +0800 Birth: -
語法:cut [選項] 文件
功能描述:按列提取文本字符
選項:
-d:delimiter分隔符
-f:fields要提取的列
案例:
查詢系統全部用戶名
[root@heimatengyun test]# cut -d: -f1 /etc/passwd root bin daemon adm lp sync ...省略部份內容
語法:diff [選項] 文件1,文件2
功能描述:比較多個文本的差別
選項:
--brief: 顯示比較文件是否相同
-c:context標記顯示不一樣的內容
語法:dd [參數或選項]
功能描述:按照指定大小或個數的數據庫來複制文件或轉換文件
參數:
if:輸入的文件名稱
of:輸出的文件名稱
count:設置要複製的塊的個數
bs:bytes文件塊大小
案例:
建立指定大小爲10M的文件
[root@heimatengyun test]# dd if=/dev/zero of=10_file count=1 bs=10M 1+0 records in 1+0 records out 10485760 bytes (10 MB) copied, 0.0102506 s, 1.0 GB/s [root@heimatengyun test]# ll total 10248 -rw-r--r--. 1 root root 10485760 Nov 23 21:05 10_file
語法:file 文件名
功能描述:查看文件類型
案例:
[root@heimatengyun test]# file test.txt test.txt: ASCII text
語法:wget [參數] [url地址]
功能:下載網絡文件
參數:
-b:background後臺下載
-P:directory-prefix下載到指定目錄
-t:tries 最大嘗試次數
-c:continue斷點續傳
-p:page-requisites下載頁面全部內容,包括圖片、視頻等
-r:recursive遞歸下載
案例:
下載百度logo圖片
[root@heimatengyun test]# wget https://www.baidu.com/img/bd_logo1.png --2019-11-23 22:29:45-- https://www.baidu.com/img/bd_logo1.png Resolving www.baidu.com (www.baidu.com)... 14.215.177.38, 14.215.177.39 Connecting to www.baidu.com (www.baidu.com)|14.215.177.38|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 7877 (7.7K) [image/png] Saving to: ‘bd_logo1.png’ 100%[======================>] 7,877 --.-K/s in 0.002s 2019-11-23 22:29:45 (4.43 MB/s) - ‘bd_logo1.png’ saved [7877/7877]
有時候須要從大量文件中找出須要的文件或者從指定文件中查找特定內容,這就須要用到查找相關的命令。
語法:find [搜索範圍] [匹配條件]
功能描述:查找文件或目錄
參數說明
-name:按文件名稱查找
-user:按文件擁有者查找
-size:根按文件大小查找文件(+n大於,-n小於,n等於)
案例
在test目錄下查找test1.txt文件
[root@heimatengyun ~]# find test/ -name test1.txt test/test1.txt
查找test目錄下查找用戶root的文件
[root@heimatengyun ~]# find test/ -user root test/ test/test.txt
在test目錄下查找小於100M的文件
[root@heimatengyun ~]# find test/ -size -102400 test/ test/test.txt
語法:grep [參數] 查找內容 源文件
功能描述:在文件內搜索字符串匹配的行並輸出
參數:
-c:count只輸出匹配行的計數
-n:line-number顯示匹配行及行號
案例:
[root@heimatengyun test]# grep -n who test.txt 3:who are you [root@heimatengyun test]# grep -c who test.txt 1
語法:which [選項] 命令
功能描述:搜索命令所在目錄及別名信息
案例:
搜索cd命令所在的目錄
[root@heimatengyun test]# which cd /usr/bin/cd
爲了便於傳輸或節省存儲空間有時候文件是以壓縮包的形式存在,所以就須要瞭解壓縮與解壓相關命令。
語法:tar [參數] 包名.tar.gz 待打包的內容
功能描述:打包目錄,壓縮後的文件格式爲.tar.gz
參數:
-c:create生成.tar打包文件
-x:extract解包.tar文件
-v:verbose顯示詳細信息
-f:file指定壓縮後的文件名
-z:打包同時壓縮
-C:解壓到指定目錄
案例:
壓縮多個文件,將test.txt和test1.txt壓縮爲test.tar.gz
[root@heimatengyun test]# tar -zcvf test.tar.gz test.txt test1.txt test.txt test1.txt [root@heimatengyun test]# ll total 10252 -rw-r--r--. 1 root root 26 Nov 23 20:40 test1.txt -rw-r--r--. 1 root root 210 Nov 23 23:57 test.tar.gz -rw-r--r--. 1 root root 66 Nov 23 21:56 test.txt
壓縮目錄
[root@heimatengyun ~]# tar -zcvf test.tar.gz test/
解壓到當前目錄
[root@heimatengyun test]# tar -zxvf test.tar.gz
語法:
壓縮:zip [參數] 包名.zip 待壓縮內容
解壓:uzip 包名.zip
功能描述:壓縮文件和目錄,windows和linux通用且能夠壓縮目錄並保留源文件
參數:
-r:recurse-paths遞歸壓縮目錄
案例:
壓縮test.txt或test1.txt爲test.zip
[root@heimatengyun test]# zip test.zip test.txt test1.txt adding: test.txt (deflated 15%) adding: test1.txt (stored 0%)
解壓test.zip
[root@heimatengyun test]# unzip test.zip Archive: test.zip inflating: test.txt extracting: test1.txt
語法:
壓縮:gzip [參數] 文件
解壓:gzip [參數] 文件.gz
功能描述:
壓縮:壓縮文件,只能將文件壓縮爲*.gz文件。只能壓縮文件不能壓縮目錄,壓縮解壓後不保留原來的文件。對單個文件壓縮
解壓:解壓文件
案例:
壓縮文件
[root@heimatengyun test]# ll total 8 -rw-r--r--. 1 root root 26 Nov 23 20:40 test1.txt -rw-r--r--. 1 root root 66 Nov 23 21:56 test.txt [root@heimatengyun test]# gzip test1.txt [root@heimatengyun test]# ll total 8 -rw-r--r--. 1 root root 54 Nov 23 20:40 test1.txt.gz -rw-r--r--. 1 root root 66 Nov 23 21:56 test.txt
解壓文件
[root@heimatengyun test]# ll total 8 -rw-r--r--. 1 root root 54 Nov 23 20:40 test1.txt.gz -rw-r--r--. 1 root root 66 Nov 23 21:56 test.txt [root@heimatengyun test]# gunzip test1.txt.gz [root@heimatengyun test]# ll total 8 -rw-r--r--. 1 root root 26 Nov 23 20:40 test1.txt -rw-r--r--. 1 root root 66 Nov 23 21:56 test.txt
日期相關命令用於設置或獲取系統日期。
語法:date [選項] [格式]
功能描述:顯示或設置時間
參數:
-s:set 以字符串格式設置時間
格式:(注意區分大小寫)
+%Y:顯示當前年份
+%m:顯示當前月份
+%d:顯示當前是哪一天
+%H:顯示當前小時
+%M:顯示當前分鐘
+%S:顯示當前秒數
+%Y%m%d:顯示當前年月日
"+%Y-%m-%d %H:%M:%S":顯示當前年月日時分秒 (用引號括起來)
案例:
設置時間
[root@heimatengyun test]# date -s "2019-11-24 11:05:10" Sun Nov 24 11:05:10 CST 2019
顯示時間
[root@heimatengyun test]# date Sun Nov 24 11:02:21 CST 2019 [root@heimatengyun test]# date +%Y%m%d 20191124 [root@heimatengyun test]# date "+%Y-%m-%d %H:%M:%S" 2019-11-24 11:02:55
date查看非當前時間(好比前一天,後一天、取下週週一等等)以及cal查看日曆命令暫時不作討論,之後有機會在討論。
任務都以進程或線程的形式存在,所以須要隨時關注系統的進程,查看是否有異常進程以及各進程佔用系統資源的狀況並使用不一樣的進程管理命令對進程管理和控制。
語法:ps [選項]
功能描述:查看系統中全部進程
參數:
-a:all 顯示現行終端機下的全部程序,包括其餘用戶的程序(好比多克隆幾個會話執行不一樣命令,也會列出來)
-u:userlist 以用戶爲主的格式來顯示程序情況
-x: 顯示全部程序,不以終端機來區分 (前面講過終端有不少類型,不只顯示當前終端)
案例:
[root@heimatengyun test]# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 2966 0.0 0.1 116340 3192 pts/0 Ss Nov22 0:03 -bash ...省略部份內容
每一項內容的解釋
項 | 含義 |
---|---|
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 | 產生此進程的命令名 |
語法:top [選項]
功能描述:查看系統健康狀態
參數:
-d 秒數:Delay-time,指定top命令每隔幾秒更新,默認是3秒。
-i:Idle-process,使top命令不顯示任何閒置或者僵死進程
-p:Monitor-PIDs ,經過指定監控進程ID來僅僅監控某個進程的狀態
-s:Secure-mode,使top在安全模式運行,去除交互命令所帶來的潛在危險
案例:
查看非僵死進程,一秒鐘刷新一次
[root@heimatengyun test]# top -i -d 1 top - 12:39:19 up 1 day, 14:31, 3 users, load average: 0.04, 0.04, 0.05 Tasks: 395 total, 1 running, 391 sleeping, 3 stopped, 0 zombie %Cpu(s): 0.0 us, 1.0 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 1870784 total, 720520 used, 1150264 free, 880 buffers KiB Swap: 2097148 total, 0 used, 2097148 free. 238616 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 29987 root 20 0 123936 1868 1160 R 2.0 0.1 0:08.32 top ...省略部份內容
在此界面能夠經過以下相應按鍵進行排序操做
操做鍵 | 說明 |
---|---|
shift+n | 以PID排序 |
shift+m | 之內存排序 |
shift+p | 以cpu使用率排序,默認選項 |
q | 退出top |
命令結果解釋
第一行:任務隊列信息
內容 | 說明 |
---|---|
12:20:42 | 當前系統時間 |
up 1 day, 14:12 | 系統運行時間 |
3 users | 當前登陸用戶數 |
load average: 0.08,0.01, 0.05 | 系統在以前1分鐘、5分鐘、15分鐘的平均負載,通常認爲小於1時,負載較小,若是大於1說明系統已經超出負載 |
第二行:進程信息
內容 | 說明 |
---|---|
Tasks: 395 total | 系統中的總進程數 |
1 running | 正在運行的進程數 |
391 sleeping | 睡眠的進程 |
3 stopped | 正在中止的進程 |
0 zombie | 殭屍進程,若是不是0,須要手工檢查殭屍進程 |
第三行:cpu信息
內容 | 說明 |
---|---|
%Cpu(s): 0.0 us | 用戶模式佔用的cpu百分比 |
1.0 sy | 系統模式佔用的cpu百分比 |
0.0 ni | 改變過優先級的用戶進程佔用的cpu百分比 |
99.0 id | 空閒cpu的百分比 |
0.0 wa | 等待輸入、輸出的進程佔用cpu的百分比 |
0.0 hi | 硬中斷請求服務佔用的cpu百分比 |
0.0 si | 軟中斷請求服務佔用的cpu百分比 |
0.0 st | steal time虛擬世界百分比,當有虛擬機時,虛擬cpu等待時機cpu的時間百分比 |
ps:若是服務器有多個cpu,將顯示多行
第四行:物理內存信息
內容 | 說明 |
---|---|
KiB Mem: 1870784 total | 物理內存的總量,單位KB |
720520 used | 已使用的物理內存數量 |
1150264 free | 空閒的物理內存數量 |
880 buffers | 做爲緩衝的內存數量 |
第五行:交換分區信息
內存 | 說明 |
---|---|
KiB Swap: 2097148 total | 交換分區(虛擬內存)的總大小 |
0 used | 已經使用的交換分區的大小 |
2097148 free | 空閒交換分區的大小 |
238616 cached Mem | 做爲緩存的交換分區的大小 |
第六行:空行
第七行:表頭信息
內容 | 說明 |
---|---|
PID | 進程id |
USER | 進程全部者 |
PR | 進程優先級 |
NI | 負值表示高優先級,正值表示低優先級 |
VIRT | 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES |
RES | 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA |
SHR | 共享內存大小,單位kb |
S | 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/中止 Z=殭屍進程 |
%CPU | 上次更新到如今的CPU時間佔用百分比 |
%MEM | 進程使用的物理內存百分比 |
TIME+ | 進程使用的CPU時間總計,單位1/100秒 |
COMMAND | 進程名稱(命令名/命令行) |
語法:pidof [參數] 服務名稱
功能描述:查詢某個指定服務進程的pid值
案例:
查看sshd服務的進程id
[root@heimatengyun test]# pidof sshd 2962 2247
語法:pstree [選項]
功能描述:查看進程樹
選項:
-p:顯示進程的PID
案例:
[root@heimatengyun test]# pstree -p systemd(1)─┬─ModemManager(948)─┬─{ModemManager}(1004) │ └─{ModemManager}(1031) ├─NetworkManager(1123)─┬─{NetworkManager}(1284) │ └─{NetworkManager}(1312) ...省略部份內容
語法:kill [選項] 進程id
功能描述:終止某個指定pid的服務進程
選項:
-9:強迫進程當即中止
案例:
[root@heimatengyun test]# kill -9 20385
語法:killall [選項] 服務名
功能描述:終止某個指定名稱的服務對應的全部進程
案例:
終止httpd服務的全部進程
[root@heimatengyun test]# killall httpd
經過相關命令檢查系統狀態以及資源耗用狀況,保證系統健康穩定運行。
語法:ifconfig [網絡設備] [參數]
功能描述:獲取網卡配置和網絡狀態信息
案例:
[root@heimatengyun test]# ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.78.100 netmask 255.255.255.0 broadcast 192.168.78.255 inet6 fe80::20c:29ff:febc:5eef prefixlen 64 scopeid 0x20<link> ether 00:0c:29:bc:5e:ef txqueuelen 1000 (Ethernet) RX packets 143336 bytes 103106029 (98.3 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 92576 bytes 143399144 (136.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
主要查看內容:網卡名稱(eno16777736 )、ip地址(inet以後)物理網卡地址即mac地址(ether)、TX和TX接收和發送數據包的個數和累計流量
語法:netstat [參數]
功能描述:顯示整個系統目前網絡狀況,好比目前的連接、數據包傳遞數據、路由表內容等
案例:
[root@heimatengyun test]# netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 96 192.168.78.100:ssh 192.168.78.1:59688 ESTABLISHED Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ] DGRAM 13149 /run/systemd/shutdownd ...省略部份內容
語法:uname [選項]
功能描述:查看系統內核和系統版本等信息
參數:
-a:all顯示系統完整信息
-s:kernel-name系統內核名稱
-n:nodename節點名稱
-r:kernel-release內核發行版
-v:kernel-version內核版本
-m:machine硬件名稱
-i:hardware-platform硬件平臺
-p:processor處理器類型
-o:operating-system操做系統名稱
案例:
[root@heimatengyun test]# uname Linux [root@heimatengyun test]# uname -a Linux heimatengyun 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
顯示信息依次爲:內核名稱(Linux)、主機名(heimatengyun)、內核發行版(3.10.0-123.el7.x86_64)、內核版本(#1 SMP Mon Jun 30 12:09:22 UTC 2014)、硬件名稱(x86_64)、硬件平臺(x86_64)、處理器類型(x86_64)及操做系統名稱(GNU/Linux)。
若是要查看單籤系統版本的詳細信息,經過查看/etc/redhat-release文件
[root@heimatengyun test]# cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core)
語法:uptime [選項]
功能描述:查看系統的負載信息,能夠顯示當前系統時間、系統已運行時間、啓用終端數量以及平均負載值等信息。平均負載值指系統在最近1分鐘、5分鐘、15分鐘內的壓力狀況,負載值越低越好,儘可能不要長期超過1,生產環境不要超過5.
案例:
[root@heimatengyun test]# uptime 21:30:44 up 1 day, 23:23, 3 users, load average: 0.00, 0.01, 0.05
語法:free [選項]
功能描述:顯示當前系統中內存的使用信息
選項:
-m:megabytes以兆字節顯示
-h:human帶單位輸出
案例:
[root@heimatengyun test]# free -h total used free shared buffers cached Mem: 1.8G 702M 1.1G 8.9M 880K 233M -/+ buffers/cache: 468M 1.3G Swap: 2.0G 0B 2.0G
字段說明:total(內存總量)、used(已用量)、free(可用量)、shared(進程共享的內存量)、buffers(磁盤緩存的內存量)、cached(緩存的內存量)
語法:who [參數]
功能描述:查看當前登入主機的用戶終端信息
案例:
[root@heimatengyun test]# who root pts/0 2019-11-22 22:10 (192.168.78.1) root pts/1 2019-11-23 11:53 (192.168.78.1)
語法:last [參數]
功能描述:查看全部的系統登陸記錄。可是要注意,這些信息是以日誌文件保存的,所以黑客能夠很容易進行修改,因此不能單純以該命令來判斷是否有黑客入侵。
案例:
[root@heimatengyun test]# last root pts/2 192.168.78.1 Sun Nov 24 13:09 - 13:36 (00:26) root pts/1 192.168.78.1 Sat Nov 23 11:53 still logged in ... 省略部份內容
語法:history [參數]
功能描述:顯示歷史執行過的命令
選項:
-c:清除全部歷史記錄,可是.bash_history文件內容不會刪除
案例:
[root@heimatengyun test]# history 1 history 2 ll 3 ls 4 history [root@heimatengyun test]# !2 ll total 8 -rw-r--r--. 1 root root 26 Nov 23 20:40 test1.txt -rw-r--r--. 1 root root 66 Nov 23 21:56 test.txt
能夠用「!編號」執行某一次曾經執行過的命令
默承認以查看1000條歷史記錄,但能夠在/etc/profile中修改HISTSIZE的值
歷史命令保存在一個農戶家目錄的.bash_history文件中(.開頭爲隱藏文件經過ls或ll -a列出),能夠用cat命令查看
linux通常用在服務器上,不多遇到關機的狀況,畢竟關機服務就會中斷,除非特殊狀況不得已纔會關閉。
正確的關機流程:sync>shutdown或reboot或halt
不管重啓仍是關機,都須要先sync將內存數據同步到硬盤中,避免數據丟失
語法:reboot [ 選項]
功能描述:重啓系統,等同於shutdown -r now
案例:
[root@heimatengyun ~]# reboot
語法:poweroff [選項]
功能描述:關閉系統
案例:
[root@heimatengyun ~]# poweroff
語法:halt [選項]
功能描述:關閉系統,等同於shutdown -h now和poweroff
案例:
[root@heimatengyun ~]# halt
語法:shutdown [選項] [關機時間] [提示內容]
功能描述:關機
選項:
-h:關機
-r:重啓
關機時間:
hh:mm:指定24小時制的小時和分鐘後關機
+m:m分鐘後關機(+1:默認值,1分鐘後關機; +0:now,馬上關機)
案例:
1分鐘後關機並提示全部已登陸系統的用戶
[root@heimatengyun ~]# shutdown -h 1 "this server will shutdown after 1min" this server will shutdown after 1min The system is going down for power-off at Sun 2019-11-24 22:25:55 CST!
用戶及文件相關權限命令將在之後的文章中講解,還有不少其餘的命令,因爲篇幅所限不在此討論。下一篇文章文章將分享「linux入門系列6--軟件包管理之rpm和yum倉庫」。