首頁 > 軟體

新手入門Linux命令集錦

2020-06-16 16:44:20

一、常用系統工作命令

1、wget 命令

作用:用於在終端中下載網路檔案。

格式:wget [引數] 下載地址

引數及作用:

-b : 後台下載模式

-d:顯示偵錯資訊

-N:該引數指定wget只下載更新的檔案

-S:顯示伺服器響應

-P:下載到指定目錄

-t:最大嘗試次數

-c:斷點續傳

-p:下載頁面內所有資源,包括圖片、視訊等

-r:遞回下載

-T timeout:超時時間設定(單位秒)

-w time:重試延時(單位秒)

-Q quota=number :重試次數

-nc:不覆蓋已有的檔案

-nd:不下載目錄結構,把從伺服器所有指定目錄下載的檔案都堆到當前目錄裡

-nH:不建立以目標主機域名為目錄名的目錄,將目標主機的目錄結構直接下到當前目錄下

-np:只下載目標站點指定目錄及其子目錄的內容

-l [depth]:下載遠端伺服器目錄結構的深度

 

2、RPM(紅帽軟體包管理器)

RPM 有點像 Windows 系統中的控制面板,會建立統一的資料庫檔案,詳細記錄軟體資訊並能夠自動分析依賴關係。目前 RPM 的優勢已經被公眾所認可,使用範圍也已不侷限在紅帽系統中了。

常見的RPM軟體包命令

rpm -ivh filename.rpm  #安裝軟體的命令格式

rpm -Uvh filename.rpm  #升級軟體的命令格式

rpm -e filename.rpm  #解除安裝軟體的命令格式

rpm -qpi filename.rpm  #查詢軟體描述資訊的命令格式

rpm -qpl filename.rpm  #列出軟體檔案資訊的命令格式

rpm -qf filename.rpm  #查詢檔案屬於哪個RPM的命令格式

 

3、yum命令

yum repolist all  #列出所有倉庫

yum list all  #列出倉庫中所有軟體包

yum info 軟體包名稱  #檢視軟體包資訊

yum install 軟體包名稱  #安裝軟體包

yum reinstall 軟體包名稱  #重新安裝軟體包

yum update 軟體包名稱  #升級軟體包

yum remove 軟體包  #移除軟體包

yum clean all  #清除所有倉庫快取

yum check-update  #檢查課更新的軟體包

yum grouplist  #檢視系統中已經安裝的軟體包組

yum groupinstall 軟體包組  #安裝指定的軟體包組

yum groupremove 軟體包組  #移除指定的軟體包組

yum groupinfo 軟體包組  #查詢指定的軟體包組資訊

 

4、ps 命令

PS命令用於檢視系統中的進程狀態,格式為 ps [引數]。

-a:顯示所有進程(包括其他使用者的進程)

-u:使用者以及其他詳細資訊

-x:顯示沒有控制終端的進程

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

R(執行):進程正在執行或在執行佇列中等待。

S(中斷):進程處於休眠中,當某個條件形成後或者收到信號時,則脫離該狀態。

D(不可中斷):進程不響應系統非同步信號,即使用kill命令也不能將其中斷。

Z(僵死):進程已經終止,但進程描述符依然存在,直到父進程呼叫wait4()系統函數後將進程釋放。

T(停止):進程收到停止信號後停止執行。

5、top 命令

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

top命令相當強大,能夠動態地檢視系統運維狀態,完全可將它看作Linux中的“強化版的Windows工作管理員”。top命令的執行介面如下圖示:

上圖中,top命令執行結果的前5行為系統整體的統計資訊,其代表的含義如下:

第1行:系統時間、執行時間、登入終端數、系統負載(三個數值分別為1分鐘、5分鐘、15分鐘內的平均值,數值越小意味著負載越低)。

第2行:進程總數、執行中的進程數、睡眠中的進程數、停止的進程數、僵死的進程數。

第3行:使用者占用資源百分比、系統核心佔用資源百分比、改變過優先順序的進程資源百分比、空閒的資源百分比等。

第4行:物流記憶體總數、記憶體使用量、記憶體空閒量、作為核心快取的 記憶體量。

第5行:虛擬記憶體總量、虛擬記憶體使用量、虛擬記憶體空閒量、已被提前載入的記憶體量。

6、pidof 命令

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

1 [root@rhel_10 ~]# pidof sshd
2 36764 1588
3
4 [root@rhel_10 ~]# ps -aux | grep sshd
5 root 1588 0.0 0.1 82956 3600 ? Ss 14:10 0:00 /usr/sbin/sshd -D
6 root 36764 0.0 0.2 136012 5376 ? Ss 17:36 0:02 sshd: root@pts/2
7 root 40539 0.0 0.0 112640 976 pts/2 R+ 22:31 0:00 grep --color=auto sshd

7、kill命令

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

8、killall命令

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

二、系統狀態檢測命令

接下來逐個講解與網絡卡網路、系統核心、系統負載、記憶體使用情況、當前啟用終端數量、歷史登入記錄、命令執行記錄以及救援診斷等相關命令的使用方法,這些命令都超級實用。

1、ifconfig命令

ifconfig命令用於獲取網絡卡設定與網路狀態等資訊,格式為“ifconfig [網路裝置] [引數]”。

使用ifconfig命令其實主要是檢視網絡卡名稱、inet引數後的IP地址、ether引數後面的網絡卡實體地址(又稱MAC地址)以及RX、TX的接收封包與傳送封包的個數及累計流量:

 1 [root@CentOS110 ~]# ifconfig
 2 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
 3        inet 192.168.1.110  netmask 255.255.255.0  broadcast 192.168.1.255
 4        inet6 fe80::20c:29ff:fe5f:b39f  prefixlen 64  scopeid 0x20<link>
 5        ether 00:0c:29:5f:b3:9f  txqueuelen 1000  (Ethernet)
 6        RX packets 4183  bytes 415355 (405.6 KiB)
 7        RX errors 0  dropped 0  overruns 0  frame 0
 8        TX packets 941  bytes 81789 (79.8 KiB)
 9        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
10
11 lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
12        inet 127.0.0.1  netmask 255.0.0.0
13        inet6 ::1  prefixlen 128  scopeid 0x10<host>
14        loop  txqueuelen 1000  (Local Loopback)
15        RX packets 72  bytes 8088 (7.8 KiB)
16        RX errors 0  dropped 0  overruns 0  frame 0
17        TX packets 72  bytes 8088 (7.8 KiB)
18        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 2、uname命令

uname命令用於檢視系統核心與系統版本等資訊,格式為“uname [-a]”。

在使用uname命令時,一般會固定搭配上 -a 引數來完整地檢視當前系統的核心名稱、主機名、核心發行版本、節點名、系統時間、硬體名稱、硬體平台、處理器型別以及作業系統名稱等資訊。

1 [root@centos110 ~]# uname -a
2 Linux centos110 3.10.0-862.14.4.el7.x86_64 #1 SMP Wed Sep 26 15:12:11 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

檢視當前系統版本的詳細資訊,需要檢視RedHat-release檔案,命令及相應的結果如下:

1 [root@centos110 ~]# cat /etc/redhat-release
2 CentOS Linux release 7.5.1804 (Core)

3、uptime命令

???用:檢視系統的負載資訊,格式為uptime。

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

平均負載值指的是系統在最近1分鐘、5分鐘、15分鐘內的壓力情況;

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

1 [root@centos110 ~]# uptime
2  14:04:46 up  4:35,  2 users,  load average: 0.00, 0.01, 0.05

4、free命令

作用:顯示當前系統中記憶體的使用量資訊,格式為“free [-h]”。

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

1 [root@centos110 ~]# free -h
                記憶體總量      已用量      可用量    進程共用的  硬碟快取的  可用記憶體量
                                                    記憶體量    記憶體量     
2              total        used        free      shared  buff/cache  available
3 Mem:          1.9G        742M        755M        10M        484M        1.0G
4 Swap:          2.0G          0B        2.0G

5、who命令

作用:檢視當前登入主機的使用者終端資訊,格式為“who [引數]”。

who命令可以快速顯示出所有正在登陸本機的使用者的名稱及他們正在開啟的終端資訊。

1 [root@centos110 ~]# who
登陸使用者名稱  終端裝置      登陸到系統的時間
2 root    :0          2018-10-03 09:56 (:0)
3 root    pts/0        2018-10-03 09:56 (192.168.1.118)

6、last命令

作用:檢視所有系統的登陸記錄,格式為“last [引數]”。

本機的登陸資訊以紀錄檔檔案的形式儲存在系統中,可以很容易進行修改。

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

[root@centos110 ~]# last
root    pts/0        192.168.1.118    Wed Oct  3 09:56  still logged in 
root    :0          :0              Wed Oct  3 09:56  still logged in 
reboot  system boot  3.10.0-862.14.4. Wed Oct  3 09:29 - 14:18  (04:49)   
reboot  system boot  3.10.0-862.el7.x Wed Oct  3 09:14 - 14:18  (05:04)   
root    pts/3        192.168.1.118    Tue Oct  2 17:40 - 00:05  (06:25)   
root    pts/2        :0              Tue Oct  2 17:39 - 09:12  (15:32)   
root    pts/1        192.168.1.118    Tue Oct  2 16:54 - 19:37  (02:42)   
root    pts/0        192.168.1.118    Tue Oct  2 15:38 - 19:34  (03:55)   
root    pts/0        192.168.1.118    Tue Oct  2 12:05 - 15:38  (03:33)   
root    :0          :0              Tue Oct  2 12:04 - 09:12  (21:07)   
reboot  system boot  3.10.0-862.el7.x Tue Oct  2 11:56 - 14:18 (1+02:22) 

7、history命令

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

預設顯示出當前使用者在本地計算機中執行過的最近1000條命令記錄。

如果覺得1000不夠用,可以自定義/etc/profile檔案中的HISTSIZE變數值

引數 -c : 清除所有的命令歷史記錄。

“!編碼數位”:重複執行某一次的命令。

歷史命令會被儲存到使用者家目錄中的 .bash_history 隱藏檔案中,可用cat命令檢視。

8、sosreport 命令(記為sos-report)

作用:收集系統設定及架構資訊並輸出診斷文件,格式為sosreport。

[root@centos110 ~]# sosreport

sosreport (version 3.5)

This command will collect diagnostic and configuration information from
this CentOS Linux system and installed applications.

An archive containing the collected information will be generated in
/var/tmp/sos.cx0Fud and may be provided to a CentOS support
representative.

Any information provided to CentOS will be treated in accordance with
the published support policies at:

  https://wiki.centos.org/

The generated archive may contain data considered sensitive and its
content should be reviewed by the originating organization before being
passed to any third party.

No changes will be made to system configuration.

Press ENTER to continue, or CTRL-C to quit. 此處單擊確認鍵確認收集資訊

Please enter your first initial and last name [centos110]:此處單擊確認鍵確認主機編號
Please enter the case id that you are generating this report for []:此處單擊確認鍵來確認主機編號
  Setting up archive ...
  Setting up plugins ...
  Running plugins. Please wait ...

  Running 97/97: yum...
  Creating compressed archive...

  Your sosreport has been generated and saved in:
  /var/tmp/sosreport-centos110-20181003144212.tar.xz

  The checksum is: fe27be034c15d8a9eba22b3e3e30f0cc

  Please send this file to your support representative.

[root@centos110 sosreport-centos110-20181003144212]# pwd
/var/tmp/sosreport-centos110-20181003144212
[root@centos110 sosreport-centos110-20181003144212]# ls
boot      dmidecode  installed-rpms  lib          lspci    ps      sos_commands  sys    var
chkconfig  etc        ip_addr        lsb-release  mount    pstree  sos_logs      uname  version.txt
date      free      java            lsmod        netstat  root    sos_reports  uptime  vgdisplay
df        hostname  last            lsof        proc    route  sos_strings  usr

三、文字檔案編輯命令 

1、cat命令

用於檢視純文字檔案(內容較少的),格式為“cat [選項] [檔案]”。

-n:檢視文字內容時顯示行號。

2、more命令

用於檢視純文字檔案(內容較多的),格式為“more [選項] 檔案”。

3、head命令

用於檢視純文字文件的前n行,格式為“head [選項] [檔案]”。

-n:預設檢視前10行

[root@centos110 ~]# head -n 20 initial-setup-ks.cfg #檢視前20行內容
#version=DEVEL
# X Window System configuration information
xconfig  --startxonboot
# License agreement
eula --agreed
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
# System services
services --disabled="chronyd"
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8 --addsupport=zh_CN.UTF-8

4、tail命令

檢視純文字文件的後N行或持續重新整理內容,格式為“tail [選項] [檔案]”。

[root@centos110 ~]# tail -n 10 initial-setup-ks.cfg  #檢視文件的後10行內容
%end

%addon com_redhat_kdump --disable --reserve-mb=128M
%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

想要實時檢視最新紀錄檔檔案時,使用“tail -f 檔名”。

[root@centos110 ~]# tail -f /var/log/messages
Oct  3 14:45:02 centos110 systemd: Started Session 61 of user root.
Oct  3 14:45:02 centos110 systemd: Starting Session 61 of user root.
Oct  3 14:50:01 centos110 systemd: Started Session 62 of user root.
Oct  3 14:50:01 centos110 systemd: Starting Session 62 of user root.
Oct  3 15:00:01 centos110 systemd: Started Session 64 of user root.
Oct  3 15:00:01 centos110 systemd: Starting Session 64 of user root.
Oct  3 15:00:01 centos110 systemd: Started Session 63 of user root.

5、tr 命令

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

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

[root@centos110 ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z]
#VERSION=DEVEL
# SYSTEM AUTHORIZATION INFORMATION
AUTH --ENABLESHADOW --PASSALGO=SHA512
# USE CDROM INSTALLATION MEDIA
CDROM
# USE GRAPHICAL INSTALL
GRAPHICAL
# RUN THE SETUP AGENT ON FIRST BOOT
FIRSTBOOT --ENABLE
IGNOREDISK --ONLY-USE=SDA
# KEYBOARD LAYOUTS
KEYBOARD --VCKEYMAP=US --XLAYOUTS='US'
# SYSTEM LANGUAGE
LANG EN_US.UTF-8 --ADDSUPPORT=ZH_CN.UTF-8

# NETWORK INFORMATION
NETWORK  --BOOTPROTO=DHCP --DEVICE=ENS33 --IPV6=AUTO --ACTIVATE
NETWORK  --HOSTNAME=LOCALHOST.LOCALDOMAIN

# ROOT PASSWORD
ROOTPW --ISCRYPTED $6$PRYAXLTWB.T81ZGW$DESITA1QMAYTL/TPSMXDP9HESK9PB8VQTBPMSVURB4GP2XPH9CRAN8NRRPWNBMHT4MIH4NT7SCLEXBN2HRI5Y0
# SYSTEM SERVICES
SERVICES --DISABLED="CHRONYD"
# SYSTEM TIMEZONE
TIMEZONE ASIA/SHANGHAI --ISUTC --NONTP
# X WINDOW SYSTEM CONFIGURATION INFORMATION
XCONFIG  --STARTXONBOOT
# SYSTEM BOOTLOADER CONFIGURATION
BOOTLOADER --LOCATION=MBR --BOOT-DRIVE=SDA
# PARTITION CLEARING INFORMATION
CLEARPART --NONE --INITLABEL
# DISK PARTITIONING INFORMATION
PART /BOOT --FSTYPE="XFS" --ONDISK=SDA --SIZE=300
PART SWAP --FSTYPE="SWAP" --ONDISK=SDA --SIZE=2048
PART PV.969 --FSTYPE="LVMPV" --ONDISK=SDA --SIZE=15058
PART /VAR --FSTYPE="XFS" --ONDISK=SDA --SIZE=3072
VOLGROUP CENTOS --PESIZE=4096 PV.969
LOGVOL /  --FSTYPE="XFS" --SIZE=15056 --NAME=ROOT --VGNAME=CENTOS

%PACKAGES
@^GRAPHICAL-SERVER-ENVIRONMENT
@BASE
@CORE
@DESKTOP-DEBUGGING
@DEVELOPMENT
@DIAL-UP
@FONTS
@GNOME-DESKTOP
@GUEST-AGENTS
@GUEST-DESKTOP-AGENTS
@HARDWARE-MONITORING
@INPUT-METHODS
@INTERNET-BROWSER
@MULTIMEDIA
@PRINT-CLIENT
@X11

%END

%ADDON COM_REDHAT_KDUMP --DISABLE --RESERVE-MB='128M'

%END

%ANACONDA
PWPOLICY ROOT --MINLEN=6 --MINQUALITY=1 --NOTSTRICT --NOCHANGES --NOTEMPTY
PWPOLICY USER --MINLEN=6 --MINQUALITY=1 --NOTSTRICT --NOCHANGES --EMPTYOK
PWPOLICY LUKS --MINLEN=6 --MINQUALITY=1 --NOTSTRICT --NOCHANGES --NOTEMPTY
%END

6、wc 命令

用於統計指定文字的行數、字數、位元組數,格式為“wc [引數] 文字”。

wc 引數:
-l:只顯示行數
-w:只顯示單詞數
-c:只顯示位元組數

在Linux系統中,passwd是用來儲存系統賬戶資訊的檔案,要統計當前系統中有多少個使用者,可以使用以下命令進行查詢:

[root@centos110 ~]# wc -l /etc/passwd
42 /etc/passwd 

7、stat 命令

用於檢視檔案的具體儲存資訊和時間等資訊,格式為“stat 檔名稱”。

[root@centos110 ~]# stat anaconda-ks.cfg
  File: ‘anaconda-ks.cfg’
  Size: 1828          Blocks: 8          IO Block: 4096  regular file
Device: fd00h/64768d    Inode: 26145971    Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)  Gid: (    0/    root)
Access: 2018-10-03 14:42:14.819234069 +0800    #讀取時間
Modify: 2018-09-23 15:42:17.364869932 +0800    #修改時間
Change: 2018-09-23 15:42:17.364869932 +0800    #更改時間
 Birth: -

8、cut 命令

用於按“列”提取文字字元,格式為“cut [引數] 文字”。

在Linux系統中,如何準確地提取出最想要的資料,是我們應該重點學習的內容。

按列搜尋,不僅要使用 -f 引數來設定需要看的列數,還需要使用 -d 引數來設定間隔符號:

使用以下命令提取出passwd檔案中的使用者名稱資訊,即提取以冒號(:)為間隔符號的第一列內容:

[root@centos110 ~]# head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

[root@centos110 ~]# cut -d : -f 1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail 

9、diff 命令

用於比較多個文字檔案的差異,格式為“diff [引數] 檔案”。

--brief:判斷兩個檔案是否不同

-c:描述檔案內容具體的不同地方

[root@centos110 ~]# cat diff_A.txt
Welcome to linuxprobe.com
Red Hat certified
Free Linux Lessons
Professional guidance
Linux Course

[root@centos110 ~]# cat diff_B.txt
Welcome tooo linuxprobe.com

Red Hat certified
Free Linux LeSSonS
////////......///////
Professional guideance
Linux Course
[root@centos110 ~]# diff --brief diff_A.txt diff_B.txt    #判斷兩個檔案是否不同
Files diff_A.txt and diff_B.txt differ
[root@centos110 ~]# diff -c diff_A.txt diff_B.txt    #描述檔案內容具體的不同地方
*** diff_A.txt    2018-10-03 15:46:43.434378118 +0800
--- diff_B.txt    2018-10-03 15:48:53.087375053 +0800
***************
*** 1,6 ****
! Welcome to linuxprobe.com
  Red Hat certified
! Free Linux Lessons
! Professional guidance
  Linux Course
-
--- 1,7 ----
! Welcome tooo linuxprobe.com
!
  Red Hat certified
! Free Linux LeSSonS
! ////////......///////
! Professional guideance
  Linux Course


IT145.com E-mail:sddin#qq.com