Linux新手必須掌握的命令


一、強大好用的shell

shell中充當的是人與內核(硬件)之間的翻譯官,用戶把一些命令告訴終端,它就會調用相應的服務區完成某些工作。

許多Linux系統默認使用的終端是Bash(Bourne-Again SHell)解釋器,主要有以下四項優勢

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

二、執行查看幫助命令

Linux系統中已經有了Bash這么好用的“翻譯官”,那么接下來就有必要好好學習下怎么跟它溝通了。要想准確、高效地完成各種任務,僅依賴於命令本身是不夠的,還應該根據實際情況來靈活調整各種命令的參數。比如,我們切壽司時盡管可以用菜刀,但米粒一定會撒得滿地都是,因此壽司刀上設計的用於透氣的圓孔就是為了更好地適應場景而額外增加的參數。當您學完本書並具備一定的工作經驗之后,一定能夠領悟Linux命令的奧秘。常見執行Linux命令的格式是這樣的:

命令名稱 [命令參數] [命令對象]

注意,命令名稱、命令參數、命令對象之間請用空格鍵分隔

 

例如:在命令行終端中輸入man man命令來查看man命令自身的幫助信息

 

在man命令幫助信息的界面中,所包含的常用操作按鍵及其用途如下表

按鍵

用途

空格鍵

向下翻一頁

PaGe down

向下翻一頁

PaGe up

向上翻一頁

home

直接前往首頁

end

直接前往尾頁

/

從上至下搜索某個關鍵詞,如“/linux”

?

從下至上搜索某個關鍵詞,如“?linux”

n

定位到下一個搜索到的關鍵詞

N

定位到上一個搜索到的關鍵詞

q

退出幫助文檔

man命令的幫助信息的結構如下表

結構名稱

代表意義

NAME

命令的名稱

SYNOPSIS

參數的大致使用方法

DESCRIPTION

介紹說明

EXAMPLES

演示(附帶簡單說明)

OVERVIEW

概述

DEFAULTS

默認的功能

OPTIONS

具體的可用選項(帶介紹)

ENVIRONMENT

環境變量

FILES

用到的文件

SEE ALSO

相關的資料

HISTORY

維護歷史與聯系方式

三、常用系統工作命令

1、echo命令

echo命令用於在終端輸出字符串或變量提取后的值,格式為“echo [字符串 | $變量]”。

例如,把指定字符串“Linuxprobe.com”輸出到終端屏幕的命令為:

[root@linuxprobe ~]# echo Linuxprobe.Com

該命令會在終端屏幕上顯示如下信息: 

Linuxprobe.Com

使用$變量的方式提取變量SHELL的值,並將其輸出到屏幕上:

[root@linuxprobe ~]# echo $SHELL

/bin/bash

2、date命令

date命令用於顯示及設置系統的時間或日期,格式為“date [選項] [+指定的格式]”。

date命令中常見的參數格式如下表

參數

作用

%t

跳格[Tab鍵]

%H

小時(00~23)

%I

小時(00~12)

%M

分鍾(00~59)

%S

秒(00~59)

%j

今年中的第幾天

下面舉例說明:

 

3、reboot命令

reboot命令用於重啟系統,其格式為reboot。

由於重啟計算機這種操作會涉及硬件資源的管理權限,因此默認只能使用root管理員來重啟。

4、poweroff命令

poweroff命令用於關閉系統,其格式為poweroff。

該命令與reboot命令相同,都會涉及硬件資源的管理權限,因此默認只有root管理員才可以關閉電腦。

5、wget命令

wget命令用於在終端中下載網絡文件,格式為“wget [參數] 下載地址”。

參數及作用如下表

參數

作用

-b

后台下載模式

-P

下載到指定目錄

-t

最大嘗試次數

-c

斷點續傳

-p

下載頁面內所有資源,包括圖片、視頻等

-r

遞歸下載

6、ps命令

ps命令用於查看系統中的進程狀態,格式為“ps [參數]”。

ps命令的常見參數以及作用如下表

參數

作用

-a

顯示所有進程(包括其他用戶的進程)

-u

用戶以及其他詳細信息

-x

顯示沒有控制終端的進程

Linux系統中時刻運行着許多進程,如果能夠合理地管理它們,則可以優化系統的性能。

在Linux系統中,有5種常見的進程狀態,分別為運行、中斷、不可中斷、僵死與停止,其各自含義如下所示。

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

當執行ps aux命令后通常會看到如下圖所示的進程狀態(太多了只截取部分)

 

7、top命令

top命令用於動態地監視進程活動與系統負載等信息,其格式為top。

top命令相當強大,能夠動態地查看系統運維狀態,完全將它看作Linux中的“強化版的Windows任務管理器”。

top命令的運行界面如圖

 

8、pidof命令

pidof命令用於查詢某個指定服務進程的PID值,格式為“pidof [參數] [服務名稱]”。

每個進程的進程號碼值(PID)是唯一的,因此可以通過PID來區分不同的進程。

例如,可以使用如下命令來查詢本機上sshd服務程序的PID

 

9、kill命令

kill命令用於終止某個指定PID的服務進程,格式為“kill [參數] [進程PID]”。

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

例如:kill 1593    這種操作的效果等同於強制停止sshd服務

10、killall命令

killall命令用於終止某個指定名稱的服務所對應的全部進程,格式為:“killall [參數] [服務名稱]”。

通常來講,復雜軟件的服務程序會有多個進程協同為用戶提供服務,如果逐個去結束這些進程會比較麻煩,

此時可以使用killall命令來批量結束某個服務程序帶有的全部進程。例如:killall httpd

四、系統狀態檢測命令

1、ifconfig命令

ifconfig命令用於獲取網卡配置與網絡狀態等信息,格式為“ifconfig [網絡設備] [參數]”。

使用ifconfig命令來查看本機當前的網卡配置與網絡狀態等信息時,其實主要查看的就是:

網卡名稱、inet參數后面的IP地址、ether參數后面的網卡物理地址(又稱為MAC地址),

以及RX、TX的接收數據包與發送數據包的個數及累計流量

 

2、uname命令

uname命令用於查看系統內核與系統版本等信息,格式為“uname [-a]”。

在使用uname命令時,一般會固定搭配上-a參數來完整地查看:

當前系統的內核名稱、主機名、內核發行版本、節點名、系統時間、硬件名稱、硬件平台、處理器類型以及操作系統名稱等信息。

 

3、uptime命令

uptime用於查看系統的負載信息,格式為uptime。

uptime命令可以顯示當前系統時間、系統已運行時間、啟用終端數量以及平均負載值等信息。

平均負載值指的是系統在最近1分鍾、5分鍾、15分鍾內的壓力情況(下面加粗的信息部分);

負載值越低越好,盡量不要長期超過1,在生產環境中不要超過5。

 

4、free命令

free用於顯示當前系統中內存的使用量信息,格式為“free [-h]”。

為了保證Linux系統不會因資源耗盡而突然宕機,運維人員需要時刻關注內存的使用量。

在使用free命令時,可以結合使用-h參數以更人性化的方式輸出當前內存的實時使用量信息。

下圖是執行free -h命令之后的輸出信息。

 

5、who命令

who用於查看當前登入主機的用戶終端信息,格式為“who [參數]”。

這三個簡單的字母可以快速顯示出所有正在登錄本機的用戶的名稱以及他們正在開啟的終端信息。

 

6、last命令

last命令用於查看所有系統的登錄記錄,格式為“last [參數]”。

使用last命令可以查看本機的登錄記錄。但是,由於這些信息都是以日志文件的形式保存在系統中,因此黑客可以很容易地對內容進行篡改。

千萬不要單純以該命令的輸出信息而判斷系統有無被惡意入侵!

 

7、history命令

history命令用於顯示歷史執行過的命令,格式為“history [-c]”。

history命令應該是作者最喜歡的命令。執行history命令能顯示出當前用戶在本地計算機中執行過的最近1000條命令記錄。

如果覺得1000不夠用,還可以自定義/etc/profile文件中的HISTSIZE變量值。

在使用history命令時,如果使用-c參數則會清空所有的命令歷史記錄。

 

還可以使用“!編碼數字”的方式來重復執行某一次的命令。例如想執行第242條命令,只需輸入!242

8、sosreport命令

sosreport命令用於收集系統配置及架構信息並輸出診斷文檔,格式為sosreport。

 

 

五、工作目錄切換命令

1、pwd命令

pwd命令用於顯示用戶當前所處的工作目錄,格式為“pwd [選項]”。

2、cd命令

cd命令用於切換工作路徑,格式為“cd [目錄名稱]”。

可以通過cd命令迅速、靈活地切換到不同的工作目錄。

除了常見的切換目錄方式,還可以使用“cd -”命令返回到上一次所處的目錄;

使用“cd..”命令進入上級目錄,以及使用“cd ~”命令切換到當前用戶的家目錄;

亦或使用“cd ~username”切換到其他用戶的家目錄。

3、ls命令

ls命令用於顯示目錄中的文件信息,格式為“ls [選項] [文件] ”。

所處的工作目錄不同,當前工作目錄下的文件肯定也不同。

使用ls命令的“-a”參數看到全部文件(包括隱藏文件),使用“-l”參數可以查看文件的屬性、大小等詳細信息。

 

六、文本文件編輯命令

1、cat命令

cat命令用於查看純文本文件(內容較少的),格式為“cat [選項] [文件]”。

如果在查看文本內容時還想順便顯示行號的話,在cat命令后面追加一個-n參數。

例如:cat -n vsftpd.conf

2、more命令

more命令用於查看純文本文件(內容較多的),格式為“more [選項]文件”。

3、head命令

head命令用於查看純文本文檔的前N行,格式為“head [選項] [文件]”。

在閱讀文本內容時,如果只想查看文本中前20行的內容。輸入head -n 20 vsftpd.conf

4、tail命令

tail命令用於查看純文本文檔的后N行或持續刷新內容,格式為“tail [選項] [文件]”。

比如需要查看文本內容的最后20行,只需要執行“tail -n 20 文件名”命令就可以達到這樣的效果。

tail命令最強悍的功能是可以持續刷新一個文件的內容,當想要實時查看最新日志文件時,這特別有用,此時的命令格式為“tail -f 文件名”

5、tr命令

tr命令用於替換文本文件中的字符,格式為“tr [原始字符] [目標字符]”。

在很多時候,我們想要快速地替換文本中的一些詞匯,又或者把整個文本內容都進行替換,

如果進行手工替換,難免工作量太大,尤其是需要處理大批量的內容時,進行手工替換更是不現實。

例如,把某個文本內容中的英文全部替換為大寫

cat anaconda-ks.cfg | tr [a-z] [A-Z]

6、wc命令

wc命令用於統計指定文本的行數、字數、字節數,格式為“wc [參數] 文本”。

wc的參數及作用如下:

參數

作用

-l

只顯示行數

-w

只顯示單詞數

-c

只顯示字節數

7、stat命令

stat命令用於查看文件的具體存儲信息和時間等信息,格式為“stat 文件名稱”。

stat命令可以用於查看文件的存儲信息和時間等信息,命令stat vsftpd.conf會顯示出文件的三種時間狀態。

 

8、cut命令

cut命令用於按“列”提取文本字符,格式為“cut [參數] 文本”。

在Linux系統中,如何准確地提取出最想要的數據,這也是我們應該重點學習的內容。

一般而言,按基於“行”的方式來提取數據是比較簡單的,只需要設置好要搜索的關鍵詞即可。

但是如果按列搜索,不僅要使用-f參數來設置需要看的列數,還需要使用-d參數來設置間隔符號。

passwd在保存用戶數據信息時,用戶信息的每一項值之間是采用冒號來間隔的。

接下來使用下述命令嘗試提取出passwd文件中的用戶名信息,即提取以冒號(:)為間隔符號的第一列內容:

cut -d: -f1 /etc/passwd

 

9、diff命令

diff命令用於比較多個文本文件的差異,格式為“diff [參數] 文件”。

在使用diff命令時,不僅可以使用--brief參數來確認兩個文件是否不同,還可以使用-c參數來詳細比較出多個文件的差異之處。

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

cat diff_A.txt  

cat diff_B.txt

接下來使用diff --brief命令顯示比較后的結果,判斷文件是否相同。

 diff --brief diff_A.txt diff_B.txt

最后使用帶有-c參數的diff命令來描述文件內容具體的不同:

 diff -c diff_A.txt diff_B.txt

七、文件目錄管理命令

1、touch命令

touch命令用於創建空白文件或設置文件的時間,格式為“touch [選項] [文件]”。

在創建空白的文本文件方面,這個touch命令相當簡捷。

比如,touch linuxprobe命令可以創建出一個名為linuxprobe的空白文本文件。

有難度的操作主要是體現在設置文件內容的修改時間(mtime)、文件權限或屬性的更改時間(ctime)與文件的讀取時間(atime)上面。

touch命令的參數及其作用如下:

參數

作用

-a

僅修改“讀取時間”(atime)

-m

僅修改“修改時間”(mtime)

-d

同時修改atime與mtime

 

2、mkdir命令

mkdir命令用於創建空白的目錄,格式為“mkdir [選項] 目錄”。

在Linux系統中,文件夾是最常見的文件類型之一。

除了能創建單個空白目錄外,mkdir命令還可以結合-p參數來遞歸創建出具有嵌套疊層關系的文件目錄。

3、cp命令

cp命令用於復制文件或目錄,格式為“cp [選項] 源文件 目標文件”。

在Linux系統中,復制操作具體分為3種情況:

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

cp命令的參數及其作用如下表所示:

參數

作用

-p

保留原始文件的屬性

-d

若對象為“鏈接文件”,則保留該“鏈接文件”的屬性

-r

遞歸持續復制(用於目錄)

-i

若目標文件存在則詢問是否覆蓋

-a

相當於-pdr(p、d、r為上述參數)

4、mv命令

mv命令用於剪切文件或將文件重命名,格式為“mv [選項] 源文件 [目標路徑|目標文件名]”。

剪切操作不同於復制操作,因為它會默認把源文件刪除掉,只保留剪切后的文件。

如果在同一個目錄中對一個文件進行剪切操作,其實也就是對其進行重命名。

5、rm命令

rm命令用於刪除文件或目錄,格式為“rm [選項] 文件”。

在Linux系統中刪除文件時,系統會默認向您詢問是否要執行刪除操作,如果不想總是看到這種反復的確認信息,可在rm命令后跟上-f參數來強制刪除。

另外,想要刪除一個目錄,需要在rm命令后面一個-r參數才可以,否則刪除不掉。

6、dd命令

dd命令用於按照指定大小和個數的數據塊來復制文件或轉換文件,格式為“dd [參數]”。

dd命令是一個比較重要而且比較有特色的一個命令,它能夠讓用戶按照指定大小和個數的數據塊來復制文件的內容。

Linux系統中有一個名為/dev/zero的設備文件。這個文件不會占用系統存儲空間,但卻可以提供無窮無盡的數據。

因此可以使用它作為dd命令的輸入文件,來生成一個指定大小的文件。

dd命令的參數及其作用如下所示:

參數

作用

if

輸入的文件名稱

of

輸出的文件名稱

bs

設置每個“塊”的大小

count

設置要復制“塊”的個數

例如我們可以用dd命令從/dev/zero設備文件中取出一個大小為560MB的數據塊,然后保存成名為560_file的文件。

dd if=/dev/zero of=560_file count=1 bs=560M

7、file命令

file命令用於查看文件的類型,格式為“file 文件名”。

在Linux系統中,由於文本、目錄、設備等所有這些一切都統稱為文件,不知道具體的文件類型,這時就需要使用file命令來查看文件類型。

 

八、打包壓縮與搜索命令

1、tar命令

tar命令用於對文件進行打包壓縮或解壓,格式為“tar [選項] [文件]”。

在Linux系統中,常見的文件格式比較多,其中主要使用的是.tar或.tar.gz或.tar.bz2格式。

參數及作用如下表:

參數

作用

-c

創建壓縮文件

-x

解開壓縮文件

-t

查看壓縮包內有哪些文件

-z

用Gzip壓縮或解壓

-j

用bzip2壓縮或解壓

-v

顯示壓縮或解壓的過程

-f

目標文件名

-p

保留原始的權限與屬性

-P

使用絕對路徑來壓縮

-C

指定解壓到的目錄

2、grep命令

grep命令用於在文本中執行關鍵詞搜索,並顯示匹配的結果,格式為“grep [選項] [文件]”。

grep命令的參數及其作用如下表所示:

參數

作用

-b

將可執行文件(binary)當作文本文件(text)來搜索

-c

僅顯示找到的行數

-i

忽略大小寫

-n

顯示行號

-v

反向選擇—僅列出沒有“關鍵詞”的行

3、find命令

find命令用於按照指定條件來查找文件,格式為“find [查找路徑] 尋找條件 操作”。

find可以使用不同的文件特性作為尋找條件(如文件名、大小、修改時間、權限等信息),一旦匹配成功則默認將信息顯示出來。

find命令的參數以及作用如下表所示。

參數

作用

-name

匹配名稱

-perm

匹配權限(mode為完全匹配,-mode為包含即可)

-user

匹配所有者

-group

匹配所有組

-mtime -n +n

匹配修改內容的時間(-n指n天以內,+n指n天以前)

-atime -n +n

匹配訪問文件的時間(-n指n天以內,+n指n天以前)

-ctime -n +n

匹配修改文件權限的時間(-n指n天以內,+n指n天以前)

-nouser

匹配無所有者的文件

-nogroup

匹配無所有組的文件

-newer f1 !f2

匹配比文件f1新但比f2舊的文件

--type b/d/c/p/l/f

匹配文件類型(后面的字母參數依次表示塊設備、目錄、字符設備、管道、鏈接文件、文本文件)

-size

匹配文件的大小(+50KB為查找超過50KB的文件,而-50KB為查找小於50KB的文件)

-prune

忽略某個目錄

-exec …… {}\;

后面可跟用於進一步處理搜索結果的命令(下文會有演示)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM