Linux就該這麼學【Part two:新手必須掌握的Linux命令】

【2.1強大好用的Shell】

  • 用戶與Linux系統的交互
    在這裏插入圖片描述

Shell的妙處

  • 通過上下方向鍵來調取過往執行過的Linux命令;
  • 命令或參數僅需輸入前幾位就可以用Tab鍵補全;
  • 具有強大的批處理腳本;
  • 具有實用的環境變量功能。

【2.2 執行查看幫助命令】

命令名稱 命令參數 命令對象之間請用空格鍵分隔
長格式 man --help
短格式 man -h

打開終端輸入man man命令來查看man命令自身的幫助信息
在這裏插入圖片描述

在這裏插入圖片描述

  • man命令中常用按鍵以及用途
  1. 空格鍵 :向下翻一頁
  2. PaGe down : 向下翻一頁
  3. PaGe up : 向上翻一頁
  4. home : 直接前往首頁
  5. end : 直接前往尾頁
  6. / :從上至下搜索某個關鍵詞,如“/linux”
  7. ? : 從下至上搜索某個關鍵詞,如“?linux”
  8. n : 定位到下一個搜索到的關鍵詞
  9. N : 定位到上一個搜索到的關鍵詞
  10. q : 退出幫助文檔
  • man命令幫助信息的結構以及意義
  1. NAME :命令的名稱
  2. SYNOPSIS :參數的大致使用方法
  3. DESCRIPTION :介紹說明
  4. EXAMPLES :演示(附帶簡單說明)
  5. OVERVIEW :概述
  6. DEFAULTS :默認的功能
  7. OPTIONS :具體的可用選項(帶介紹)
  8. ENVIRONMENT :環境變量
  9. FILES :用到的文件
  10. SEE ALSO :相關的資料
  11. HISTORY : 維護歷史與聯繫方式

【2.3 常用的系統工作命令】

1 . echo 命令 用於在終端輸出字符串或變量提取後的值

在這裏插入圖片描述

用$變量的方式提取變量SHELL的值 並將其輸出到屏幕上
在這裏插入圖片描述
可見終端爲Bash(Bourne-Again Shell )解釋器

2 . date 命令

%H 小時(00…23)
%I 小時(01…12)
%k 小時(0…23)
%l 小時(1…12)
%M 分(00…59)
%p 顯示出AM或PM
%r 時間(hh:mm:ss AM或PM),12小時
%s 從1970年1月1日00:00:00到目前經歷的秒數
%S 秒(00…59)
%T 時間(24小時制)(hh:mm:ss)
%X 顯示時間的格式(%H:%M:%S)
%Z 時區 日期域
%a 星期幾的簡稱( Sun…Sat)
%A 星期幾的全稱( Sunday…Saturday)
%b 月的簡稱(Jan…Dec)
%B 月的全稱(January…December)
%c 日期和時間( Mon Nov 8 14:12:46 CST 1999)
%d 一個月的第幾天(01…31)
%D 日期(mm/dd/yy)
%h 和%b選項相同
%j 一年的第幾天(001…366)
%m 月(01…12)
%w 一個星期的第幾天(0代表星期天)
%W 一年的第幾個星期(00…53,星期一爲第一天)
%x 顯示日期的格式(mm/dd/yy)
%y 年的最後兩個數字( 1999則是99)
%Y 年(例如:1970,1996等)

默認date命令
在這裏插入圖片描述

按照“年-月-日 小時:分鐘:秒 ”

date "+%Y-%m-%d %H:%M:%S"

在這裏插入圖片描述

將系統的當前時間設置爲某一時間:2017年8月6日3點26分 的date命令:

date -s "20170806 15:26:00"

在這裏插入圖片描述

切換root纔可允許更改操作
在這裏插入圖片描述

改時間成功!!
怎麼改回當前時間呢?

clock -W

在這裏插入圖片描述
在這裏插入圖片描述

3 . reboot命令:用於重啓系統(root管理員可重啓)

# reboot

在這裏插入圖片描述

4 . poweroff 命令:用於關閉系統(root管理員可重啓)

# poweroff

在這裏插入圖片描述

5 . wget 命令:用於在終端中下載網絡文件 “wget [參數] 下載地址”

  • wget命令的參數以及作用
  1. 後臺下載模式 -b
  2. 下載到指定目錄 -P
  3. 最大嘗試次數 -t
  4. 斷點續傳 -c
  5. 下載頁面內所有資源,包括圖片、視頻等-p
  6. 遞歸下載 -r

下載

wget http://www.linuxprobe.com/docs/LinuxProbe.pdf

在這裏插入圖片描述

先解決錯誤wget: unable to resolve host address

更改了「vi /etc/resolv.conf 和 vi /etc/sysconfig/network-scripts/ifcfg-eth0 」
記錄便於以後查錯!!

哭遼 全網搜索後竟然是因爲沒聯網… 對比之前的圖片 wired打開了

在這裏插入圖片描述

使用wget命令遞歸下載www.linuxprobe.com網站內的所有頁面數據以及文件
下載完後會自動保存到當前路徑下一個名爲www.linuxprobe.com的目錄中
wget -r -p https://www.linuxprobe.com

6 .ps命令:用於查看系統中的進程狀態 格式爲“ps [參數]”

顯示所有進程(包括其他用戶的進程)-a
用戶以及其他詳細信息-u
顯示沒有控制終端的進程-x

在這裏插入圖片描述

    R(運行):進程正在運行或在運行隊列中等待。
    S(中斷):進程處於休眠中,當某個條件形成後或者接收到信號時,則脫離該   狀態。
    D(不可中斷):進程不響應系統異步信號,即便用kill命令也不能將其中斷。
    Z(僵死):進程已經終止,但進程描述符依然存在, 直到父進程調用wait4()系統函數後將進程釋放。
    T(停止):進程收到停止信號後停止運行。

在這裏插入圖片描述

在這裏插入圖片描述

**7 . top命令 : 用於動態地監視進程活動與系統負載等信息 **

top

(在這裏提示一下 結束命令 鍵入q即可或按ctrl c)

在這裏插入圖片描述

前5行爲系統整體的統計信息

第1行:系統時間、運行時間、登錄終端數、系統負載(三個數值分別爲1分鐘、5分鐘、15分鐘內的平均值,數值越小意味着負載越低)。
第2行:進程總數、運行中的進程數、睡眠中的進程數、停止的進程數、僵死的進程數。
第3行:用戶佔用資源百分比、系統內核佔用資源百分比、改變過優先級的進程資源百分比、空閒的資源百分比等。其中數據均爲CPU數據並以百分比格式顯示,例如“97.1 id”意味着![有](https://img-blog.csdnimg.cn/20181109154848380.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1NlYW5ZaTE3OA==,size_16,color_FFFFFF,t_70)97.1%的CPU處理器資源處於空閒。
第4行:物理內存總量、內存使用量、內存空閒量、作爲內核緩存的內存量。
第5行:虛擬內存總量、虛擬內存使用量、虛擬內存空閒量、已被提前加載的內存量。

8 . pidof 命令 : 用於查詢某個指定服務進程的PID值 “pidof [參數] [服務名稱]”

每個進程的進程號碼值(PID)是唯一的,因此可以通過PID來區分不同的進程。例如,可以使用如下命令來查詢本機上sshd服務程序的PID:

pidof sshd

在這裏插入圖片描述

**9.kill命令用於終止某個指定PID的服務進程 “kill [參數] [進程PID]” **

使用kill命令把上面用pidof命令查詢到的PID所代表的進程終止掉

kill 1588

這種操作的效果等同於強制停止sshd服務。

在這裏插入圖片描述

10 .killall命令:終止某個指定名稱的服務所對應的全部進程 “killall [參數] [服務名稱]”

killall命令來批量結束某個服務程序帶有的全部進程

在這裏插入圖片描述

【2.4 系統狀態檢測命令】

1.ifconfig命令 :獲取網卡配置與網絡狀態等信息 “ifconfig [網絡設備] [參數]”

ifconfig命令 查看本機當前的網卡配置與網絡狀態等信息

網卡名稱 
inet參數後面的IP地址 
ether參數後面的網卡物理地址(又稱爲MAC地址)  
以及RX、TX的接收數據包與發送數據包的個數及累計流量

在這裏插入圖片描述

2.uname命令:用於查看系統內核與系統版本等信息 “uname [-a]”

-a參數來完整地查看當前系統的內核名稱、主機名、內核發行版本、 節點名、系統時間、硬件名稱、硬件平臺、處理器類型以及操作系統名稱等信息

在這裏插入圖片描述

如果要查看當前系統版本的詳細信息 則需要查看redhat-release文件

cat /etc/redhat-release

在這裏插入圖片描述

3.uptime命令:查看系統的負載信息 uptime

顯示當前系統時間、系統已運行時間、啓用終端數量以及平均負載值等信息

平均負載值指的是系統在最近1分鐘、5分鐘、15分鐘內的壓力情況
負載值越低越好 儘量不要長期超過1 在生產環境中不要超過5
在這裏插入圖片描述

4.free命令: 顯示當前系統中內存的使用量信息 “free [-h]”

-h參數以更人性化的方式輸出當前內存的實時使用量信息

在這裏插入圖片描述

在這裏插入圖片描述

5.who命令: 查看當前登入主機的用戶終端信息 “who [參數]”

顯示出所有正在登錄本機的用戶的名稱以及他們正在開啓的終端信息
在這裏插入圖片描述

在這裏插入圖片描述

6.last命令:查看所有系統的登錄記錄 “last [參數]”

由於這些信息都是以日誌文件的形式保存在系統中
因此黑客可以很容易地對內容進行篡改
千萬不要單純以該命令的輸出信息而判斷系統有無被惡意入侵!

在這裏插入圖片描述

7.history命令:顯示歷史執行過的命令 “history [-c]”

可以自定義/etc/profile文件中的HISTSIZE變量值
在使用history命令時 如果使用-c參數則會清空所有的命令歷史記錄
還可以使用“!編碼數字”的方式來重複執行某一次的命令

歷史命令會被保存到用戶家目錄中的.bash_history文件中

在這裏插入圖片描述

8 .sosreport命令 :收集系統配置及架構信息並輸出診斷文檔 sosreport

當Linux系統出現故障需要聯繫技術支持人員時
大多數時候都要先使用這個命令來簡單收集系統的運行狀態和服務配置信息
以便讓技術支持人員能夠遠程解決一些小問題
亦或讓他們能提前瞭解某些複雜問題
在這裏插入圖片描述

2.5 工作目錄切換命令

1.pwd命令 :顯示用戶當前所處的工作目錄 “pwd [選項]”

pwd

在這裏插入圖片描述

2.cd命令 :用於切換工作路徑 “cd [目錄名稱]”

“cd -”命令返回到上一次所處的目錄
“cd…”命令進入上級目錄
“cd ~”命令切換到當前用戶的home目錄
“cd ~username”切換到其他用戶的home目錄

“cd 路徑”的方式切換進/etc目錄中:

在這裏插入圖片描述

3.ls命令 :目錄中的文件信息 “ls [選項] [文件] ”

ls命令的“-a”參數看到全部文件(包括隱藏文件)
“-l”參數可以查看文件的屬性、大小等詳細信息
兩個參數整合之後,再執行ls命令即可查看當前目錄中的所有文件並輸出這些文件的屬性信息:

在這裏插入圖片描述

如果想要查看目錄屬性信息
則需要額外添加一個-d參數
在這裏插入圖片描述

2.6 文本文件編輯命令

1.cat命令 :查看純文本文件(內容較少的) “cat [選項] [文件]”

【-n 顯示行號】
在這裏插入圖片描述

2.more命令 : 查看純文本文件(內容較多的) “more [選項]文件”

cat命令閱讀長篇的文本內容
信息就會在屏幕上快速翻滾
內容很快翻篇
對於長篇的文本內容:more命令會在最下面使用百分比的形式來提示您已經閱讀了多少內容(使用空格鍵或回車鍵向下翻頁)在這裏插入圖片描述

在這裏插入圖片描述

3.head命令 : 查看純文本文檔的前N行 “head [選項] [文件]”

head -20 initial-setup-ks.cfg
head -n 20 initial-setup-ks.cfg

在這裏插入圖片描述

4.tail命令 : 查看純文本文檔的後N行或持續刷新內容 “tail [選項] [文件]”

在這裏插入圖片描述

tail命令可以持續刷新一個文件的內容
當想要實時查看最新日誌文件時 命令格式爲“tail -f 文件名”

在這裏插入圖片描述

5.tr命令 : 替換文本文件中的字符 “tr [原始字符] [目標字符]”

把某個文本內容中的英文全部替換爲大寫:

在這裏插入圖片描述

6.wc命令 : 統計指定文本的行數、字數、字節數 “wc [參數] 文本”

只顯示行數-l
只顯示單詞數-w
只顯示字節數-c

passwd是用於保存系統賬戶信息的文件
要統計當前系統中有多少個用戶
在這裏插入圖片描述

7.stat命令 : 查看文件的具體存儲信息和時間等信息 “stat 文件名稱”

命令stat anaconda-ks.cfg會顯示出文件的三種時間狀態 :Access、Modify、Change

在這裏插入圖片描述

8.cut命令 : 用於按“列”提取文本字符 “cut [參數] 文本”

按基於“行”的方式來提取數據是比較簡單的 只需要設置好要搜索的關鍵詞即可
如果按列搜索,不僅要使用-f參數來設置需要看的列數,還需要使用-d參數來設置間隔符號

passwd在保存用戶數據信息時,用戶信息的每一項值之間是採用冒號來間隔的,接下來我們使用下述命令嘗試提取出passwd文件中的用戶名信息,即提取以冒號(:)爲間隔符號的第一列內容:

在這裏插入圖片描述

9.diff命令 : 用於比較多個文本文件的差異 “diff [參數] 文件”

–brief參數來確認兩個文件是否不同
-c參數來詳細比較出多個文件的差異之處

使用cat命令分別查看diff_A.txt和diff_B.txt文件的內容,然後進行比較

在這裏插入圖片描述

2.7 文件目錄管理命令

1.touch命令 : 用於創建空白文件或設置文件的時間 “touch [選項] [文件]”

touch linuxprobe命令可以創建出一個名爲linuxprobe的空白文本文件

設置文件內容的修改時間(mtime)
文件權限或屬性的更改時間(ctime)
文件的讀取時間(atime)

僅修改“讀取時間”(atime) -a
僅修改“修改時間”(mtime) -m
同時修改atime與mtime -d

ls命令查看一個文件的修改時間,然後修改這個文件,最後再通過touch命令把修改後的文件時間設置成修改之前的時間

在這裏插入圖片描述

2.mkdir命令 : 用於創建空白的目錄 “mkdir [選項] 目錄”

mkdir命令還可以結合-p參數來遞歸創建出具有嵌套疊層關係的文件目錄

在這裏插入圖片描述

3.cp命令 : 用於複製文件或目錄 “cp [選項] 源文件 目標文件”

如果目標文件是目錄,則會把源文件複製到該目錄中;
如果目標文件也是普通文件,則會詢問是否要覆蓋它;
如果目標文件不存在,則執行正常的複製操作。

保留原始文件的屬性 -p
若對象爲“鏈接文件”,則保留該“鏈接文件”的屬性 -d
遞歸持續複製(用於目錄) -r
若目標文件存在則詢問是否覆蓋 -i
相當於-pdr(p、d、r爲上述參數) -a

touch創建一個名爲install.log的普通空白文件
再將其複製爲一份名爲x.log的備份文件
ls命令查看目錄中的文件:
在這裏插入圖片描述

4.mv命令 : 用於剪切文件或將文件重命名 “mv [選項] 源文件 [目標路徑|目標文件名]”

剪切默認把源文件刪除掉 只保留剪切後的文件
如果在同一個目錄中對一個文件進行剪切操作 其實也就是對其進行重命名

在這裏插入圖片描述

5.rm命令 : 用於刪除文件或目錄 “rm [選項] 文件”

在Linux系統中刪除文件時
系統會默認向您詢問是否要執行刪除操作
如果不想總是看到這種反覆的確認信息
可在rm命令後跟上-f參數來強制刪除
想要刪除一個目錄
需要在rm命令後面一個-r參數纔可以
否則刪除不掉

我們來嘗試刪除前面創建的install.log和linux.log文件:
在這裏插入圖片描述

6.dd命令 : 用於按照指定大小和個數的數據塊來複制文件或轉換文件 “dd [參數]”

dd也可以在複製過程中轉換其中的數據
Linux系統中有一個名爲/dev/zero的設備文件,每次在課堂上解釋它時都充滿哲學理論的色彩。因爲這個文件不會佔用系統存儲空間,但卻可以提供無窮無盡的數據,因此可以使用它作爲dd命令的輸入文件,來生成一個指定大小的文件。

if	輸入的文件名稱
of	輸出的文件名稱
bs	設置每個“塊”的大小
count	設置要複製“塊”的個數

例如我們可以用dd命令從/dev/zero設備文件中取出一個大小爲560MB的數據塊,然後保存成名爲560_file的文件。在理解了這個命令後,以後就能隨意創建任意大小的文件了:

在這裏插入圖片描述

在這裏插入圖片描述

7.file命令 : 用於查看文件的類型 “file 文件名”

在這裏插入圖片描述

2.8 打包壓縮與搜索命令

1.tar命令 : 用於對文件進行打包壓縮或解壓 “tar [選項] [文件]”

創建壓縮文件 -c
解開壓縮文件 -x
查看壓縮包內有哪些文件 -t
用Gzip壓縮或解壓 -z
用bzip2壓縮或解壓 -j
顯示壓縮或解壓的過程 -v (建議使用顯示過程)
目標文件名 -f
保留原始的權限與屬性 -p
使用絕對路徑來壓縮 -P
指定解壓到的目錄 -C

在這裏插入圖片描述

在這裏插入圖片描述

2.grep命令 : 用於在文本中執行關鍵詞搜索 並顯示匹配的結果 “grep [選項] [文件]”

將可執行文件(binary)當作文本文件(text)來搜索 -b
僅顯示找到的行數 -c
忽略大小寫 -i
顯示搜索到信息的行號 -n
參數用於反選信息(即沒有包含關鍵詞的所有信息行) -v

在Linux系統中,/etc/passwd文件是保存着所有的用戶信息,而一旦用戶的登錄終端被設置成/sbin/nologin,則不再允許登錄系統,因此可以使用grep命令來查找出當前系統中不允許登錄系統的所有用戶信息:

在這裏插入圖片描述

3.find命令 : 用於按照指定條件來查找文件 “find [查找路徑] 尋找條件 操作”

匹配名稱 -name
匹配權限(mode爲完全匹配,-mode爲包含即可) -perm
匹配所有者 -user
匹配所有組 -group
匹配修改內容的時間(-n指n天以內,+n指n天以前) -mtime -n +n
匹配訪問文件的時間(-n指n天以內,+n指n天以前)-atime -n +n
匹配修改文件權限的時間(-n指n天以內,+n指n天以前) -ctime -n +n
匹配無所有者的文件 -nouser
匹配無所有組的文件 -nogroup
匹配比文件f1新但比f2舊的文件 -newer f1 !f2
匹配文件類型(後面的字幕字母依次表示塊設備、目錄、字符設備、管道、鏈接文件、文本文件) --type b/d/c/p/l/f
匹配文件的大小(+50KB爲查找超過50KB的文件,而-50KB爲查找小於50KB的文件) -size
忽略某個目錄 -prune

根據文件系統層次標準(Filesystem Hierarchy Standard)協議,Linux系統中的配置文件會保存到/etc目錄中
如果要想獲取到該目錄中所有以host開頭的文件列表,可以執行如下命令:

如果要在整個系統中搜索權限中包括SUID權限的所有文件 只需使用-4000即可:

在這裏插入圖片描述

進階實驗:在整個文件系統中找出所有歸屬於linuxprobe用戶的文件並複製到/root/findresults目錄。

該實驗的重點是“-exec {} ;”參數,其中的{}表示find命令搜索出的每一個文件,並且命令的結尾必須是“;”。完成該實驗的具體命令如下:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章