1. 程式人生 > 其它 >01.Linux系統核心技術-Linux運維工程師必須掌握的核心命令

01.Linux系統核心技術-Linux運維工程師必須掌握的核心命令

01.Linux系統核心技術-Linux運維工程師必須掌握的核心命令

Linux系統核心技術

檢視計算機硬體系統資訊

伺服器核心硬體就是CPU、記憶體、磁碟和網絡卡,它們配置的好壞會影響程式的執行效率,我們可以使用命令的方式檢視伺服器硬體的配置

檢視CPU資訊

檢視CPU資訊可以使用lscpu命令

從命令的輸出結果可以看得出來CPU的型號是 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz,CPU(s)是4表示同時可以執行四個任務。

[root@centos8-1 ~]# lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  1
Core(s) per socket:  2
Socket(s):           2
NUMA node(s):        1
Vendor ID:           GenuineIntel
BIOS Vendor ID:      GenuineIntel
CPU family:          6
Model:               158
Model name:          Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz
BIOS Model name:     Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz
Stepping:            10
CPU MHz:             2904.005
BogoMIPS:            5808.01
Hypervisor vendor:   VMware
Virtualization type: full
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            12288K
NUMA node0 CPU(s):   0-3
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves arat md_clear flush_l1d arch_capabilities

如果想要同時執行更多的任務,可以在VMware WorkStation中修改,修改完成以後會立即生效。

[root@centos8-1 ~]# lscpu # 再次使用lscpu檢視cpu資訊發現CPU(s)已經變成了8
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              8
On-line CPU(s) list: 0-7
Thread(s) per core:  1
Core(s) per socket:  2
Socket(s):           4
NUMA node(s):        1
Vendor ID:           GenuineIntel
BIOS Vendor ID:      GenuineIntel
CPU family:          6
Model:               158
Model name:          Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz
BIOS Model name:     Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz
Stepping:            10
CPU MHz:             2904.005
BogoMIPS:            5808.01
Hypervisor vendor:   VMware
Virtualization type: full
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            12288K
NUMA node0 CPU(s):   0-7
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves arat md_clear flush_l1d arch_capabilities

除了lscpu以外,還可以使用cat /proc/cpuinfo命令檢視CPU資訊,不過它是以每核分開顯示的。

[root@centos8-1 ~]# cat /proc/cpuinfo

記憶體資訊檢視

使用free或者是cat /proc/meminfo可以檢視當前系統的記憶體資訊,包括總記憶體、已經使用記憶體以及可用記憶體資訊

[root@centos8-1 ~]# free # 檢視記憶體資訊 預設的單位是K
              total        used        free      shared  buff/cache   available
Mem:        3996164      748088     2645976       11108      602100     3006428
Swap:       8388604           0     8388604
[root@centos8-1 ~]# free -h # 以人類可讀的方式 檢視記憶體資訊 
              total        used        free      shared  buff/cache   available
Mem:          3.8Gi       730Mi       2.5Gi        10Mi       588Mi       2.9Gi
Swap:         8.0Gi          0B       8.0Gi

[root@centos8-1 ~]# cat /proc/meminfo
MemTotal:        3996164 kB
MemFree:         2646116 kB
MemAvailable:    3006592 kB
Buffers:            3420 kB
Cached:           547356 kB
SwapCached:            0 kB
Active:            71968 kB
Inactive:         929456 kB
Active(anon):       2544 kB
Inactive(anon):   459208 kB
Active(file):      69424 kB
Inactive(file):   470248 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       8388604 kB
SwapFree:        8388604 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:        446576 kB
Mapped:           206272 kB
Shmem:             11108 kB
KReclaimable:      51348 kB
Slab:             123884 kB
SReclaimable:      51348 kB
SUnreclaim:        72536 kB
KernelStack:        8880 kB
PageTables:        23916 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    10386684 kB
Committed_AS:    2156796 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
Percpu:            95232 kB
HardwareCorrupted:     0 kB
AnonHugePages:    239616 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:      210752 kB
DirectMap2M:     2934784 kB
DirectMap1G:     3145728 kB

Linux和Windows不同的是Linux的圖形介面只是它的一個程式,而不是必備元件。我們之前安裝CentOS8.4選擇的Server With GUI包含GNOME桌面的圖形環境,我們可以使用init 3命令關閉圖形,CentOS8會出現一個字元登入介面。

然後再使用free -h觀察已經使用的記憶體只有334M,相比圖形介面的730M 減少了接近400M記憶體,為了節省記憶體,生產環境一般不會安裝和使用圖形介面。

[root@centos8-1 ~]# init 3
[root@centos8-1 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:          3.8Gi       334Mi       2.9Gi       9.0Mi       586Mi       3.3Gi
Swap:         8.0Gi          0B       8.0Gi

想要再切回圖形介面使用init 5命令即可。

[root@centos8-1 ~]# init 5

還可以使用runlevel命令檢視當前系統執行的模式,其中輸出結果的3表示之前是字元介面,5表示當前系統執行的是圖形介面

[root@centos8-1 ~]# runlevel
3 5

檢視硬碟和分割槽情況

使用lsblk命令可以檢視磁碟資訊,包括有幾塊磁碟以及每塊磁碟的分割槽、容量資訊

通過命令的執行結果可以得知目前CentOS8系統上有三塊磁碟,分別是sda,sdb,sdc,其中sdb和sdc沒有分割槽,
而sda磁碟是在安裝系統時建立了四個分割槽,具體資訊如下表格所示

分割槽名 掛載點 容量 檔案系統
根分割槽 / 100G xfs
boot分割槽 /boot 2G ext4
swap分割槽 swap 8G swap
data分割槽 /data 50G xfs
[root@centos8-1 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    2G  0 part /boot
├─sda2   8:2    0  100G  0 part /
├─sda3   8:3    0   50G  0 part /data
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    8G  0 part [SWAP]
sdb      8:16   0   50G  0 disk 
sdc      8:32   0   50G  0 disk 
sr0     11:0    1  9.3G  0 rom  

除此以外還可以使用 cat /proc/partitions命令檢視磁碟資訊,從命令的執行結果可以看出容量還是以KB為單位。

[root@centos8-1 ~]# cat /proc/partitions 
major minor  #blocks  name

   8       32   52428800 sdc
   8       16   52428800 sdb
   8        0  209715200 sda
   8        1    2097152 sda1
   8        2  104857600 sda2
   8        3   52428800 sda3
   8        4          1 sda4
   8        5    8388608 sda5
  11        0    9696256 sr0

檢視系統資訊

檢視系統架構

通過arch命令可以檢視當前系統架構為x86_64,這也是目前主流的系統架構。

[root@centos8-1 ~]# arch
x86_64

檢視Linux核心版本

不同的Linux發行版使用的Linux核心版本不同,通過uname -r可以檢視Linux系統的核心版本

[root@centos8-1 ~]# uname -r #檢視CentOS8.4的核心版本
4.18.0-305.3.1.el8.x86_64
guanglei@ubuntu1804-1:~$ uname -r #檢視ubuntu1804的核心版本
4.15.0-156-generic
guanglei@ubuntu-server-2004-1:~$ uname -r #檢視ubuntu server 20.04的核心版本
5.4.0-88-generic

檢視作業系統的版本

通過 cat /etc/os-release 命令或者是lsb_release -a命令可以檢視作業系統的版本,後期在開發程式時不同的作業系統版本需要做不同的處理。

檢視Ubuntu Server的版本

guanglei@ubuntu-server-2004-1:~$ cat /etc/os-release  #檢視Ubuntu Server的版本
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.3 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
guanglei@ubuntu1804-1:~$ lsb_release -a # 檢視Ubuntu Server版本
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.6 LTS
Release:        18.04
Codename:       bionic

檢視CentOS8的版本

[root@centos8-1 ~]# cat /etc/os-release #檢視CentOS8的版本
NAME="CentOS Linux"
VERSION="8"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"

CentOS還可以使用 cat /etc/redhat-release版本

[root@centos8-1 ~]# cat /etc/redhat-release 
CentOS Linux release 8.4.2105

日期和時間

系統時間和硬體時間

Linux中的時間有系統時間和硬體時間兩種

  • 系統時間是由Linux核心通過CPU的工作頻率計算出來的,可以使用date命令檢視
  • 硬體時間是主機板內建時鐘的時間,和作業系統無關,可以使用clock命令看
[root@centos8-1 ~]# date #檢視系統時間
Tue Oct  5 13:10:36 CST 2021
[root@centos8-1 ~]# clock #檢視硬體時間
2021-10-05 13:11:00.787437+08:00

date和clock可以使用分號隔開後同時執行看系統時間和硬體時間

[root@centos8-1 ~]# date;clock #同時檢視系統時間和硬體時間
Tue Oct  5 13:11:37 CST 2021
2021-10-05 13:11:55.490189+08:00

目前我的系統時間和硬體時間相差了18秒

如果硬體時間是準確的,那麼就通過命令clock -s以硬體時間為準,同步校正系統時間。

[root@centos8-1 ~]# clock -s # 以硬體時鐘為準,校準系統時間
[root@centos8-1 ~]# date;clock
Tue Oct  5 13:14:54 CST 2021
2021-10-05 13:14:54.197324+08:00

如果系統時間是準確的,那麼通過clock -w命令以系統時間為準,同步校正硬體時間

[root@centos8-1 ~]# clock -w #以系統為準校準硬體時間
[root@centos8-1 ~]# date;clock
Tue Oct  5 13:17:28 CST 2021
2021-10-05 13:17:28.478297+08:00

時區

不同的國家在同一時刻所處的時間是不同的,因為時區不同。

例如中國就是東八區,東八區和格林威治的時區相比相差8個小時(也就是比北京時間慢了8個小時),之前在安裝作業系統的時候設定的時區就是Asia/Shanghai,,通過timedatectl status檢視當前時間狀態,其中 Universal time就是格林威治時間,而Local Time就是系統設定時區(Asia/Shanghai)的時間,它們兩者剛好相差了8個小時。 Time zone: Asia/Shanghai (CST, +0800) 表示當前的時區是亞洲\上海。

[root@centos8-1 ~]# timedatectl status #檢視當前時區狀態
               Local time: Tue 2021-10-05 13:20:53 CST
           Universal time: Tue 2021-10-05 05:20:53 UTC
                 RTC time: Tue 2021-10-05 05:20:53
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
              NTP service: inactive
          RTC in local TZ: no

如果現在你去了法國巴黎,可以通過timectl set-timezone 設定時區為歐洲\巴黎,當修改時區後使用date命令檢視系統時間顯示的就是當前法國的巴黎時間,相比北京時間慢了6個小時。

[root@centos8-1 ~]# timedatectl set-timezone Europe/Paris #設定時區為歐洲/巴黎
[root@centos8-1 ~]# date
Tue Oct  5 07:24:38 CEST 2021

修改時區最終影響的是 /etc/localtime檔案

[root@centos8-1 ~]# ll /etc/localtime 
lrwxrwxrwx. 1 root root 34 Oct  5 07:24 /etc/localtime -> ../usr/share/zoneinfo/Europe/Paris

不過目前我在中國,因此還是改回亞洲上海

[root@centos8-1 ~]# timedatectl set-timezone Asia/Shanghai #將時區設定為亞洲上海
[root@centos8-1 ~]# date
Tue Oct  5 13:35:15 CST 2021

timedatectl list-timezones可以檢視所有時區

[root@centos8-1 ~]# timedatectl list-timezones

日曆

cal命令可以檢視當前月份的日曆,例如今天是2021年10月5號

[root@centos8-1 ~]# cal
    October 2021    
Su Mo Tu We Th Fr Sa
                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 

檢視指定月份的日曆

[root@centos8-1 ~]# cal 12 2021 #檢視2021年12月份的日曆
    December 2021   
Su Mo Tu We Th Fr Sa
          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 

還可以檢視指定年份的日曆

[root@centos8-1 ~]# cal 2022  # 檢視2022年的日曆
                               2022                               

       January               February                 March       
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
                   1          1  2  3  4  5          1  2  3  4  5
 2  3  4  5  6  7  8    6  7  8  9 10 11 12    6  7  8  9 10 11 12
 9 10 11 12 13 14 15   13 14 15 16 17 18 19   13 14 15 16 17 18 19
16 17 18 19 20 21 22   20 21 22 23 24 25 26   20 21 22 23 24 25 26
23 24 25 26 27 28 29   27 28                  27 28 29 30 31      
30 31                                                             
        April                   May                   June        
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
                1  2    1  2  3  4  5  6  7             1  2  3  4
 3  4  5  6  7  8  9    8  9 10 11 12 13 14    5  6  7  8  9 10 11
10 11 12 13 14 15 16   15 16 17 18 19 20 21   12 13 14 15 16 17 18
17 18 19 20 21 22 23   22 23 24 25 26 27 28   19 20 21 22 23 24 25
24 25 26 27 28 29 30   29 30 31               26 27 28 29 30      
                                                                  
        July                  August                September     
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
                1  2       1  2  3  4  5  6                1  2  3
 3  4  5  6  7  8  9    7  8  9 10 11 12 13    4  5  6  7  8  9 10
10 11 12 13 14 15 16   14 15 16 17 18 19 20   11 12 13 14 15 16 17
17 18 19 20 21 22 23   21 22 23 24 25 26 27   18 19 20 21 22 23 24
24 25 26 27 28 29 30   28 29 30 31            25 26 27 28 29 30   
31                                                                
       October               November               December      
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
                   1          1  2  3  4  5                1  2  3
 2  3  4  5  6  7  8    6  7  8  9 10 11 12    4  5  6  7  8  9 10
 9 10 11 12 13 14 15   13 14 15 16 17 18 19   11 12 13 14 15 16 17
16 17 18 19 20 21 22   20 21 22 23 24 25 26   18 19 20 21 22 23 24
23 24 25 26 27 28 29   27 28 29 30            25 26 27 28 29 30 31
30 31

關機和重啟

生產環境不能隨便關機和重啟!!! 因為伺服器基本都是7*24對外提供服務
測試環境或者是本地虛擬機器安裝的Linux伺服器可以按需求關機或者重啟
關機可以使用halt或者poweroff命令

而shutdown可以實現關機或者重啟,shutdown -r表示重啟,即reboot,shutdown -h表示關機,即halt。 -c表示取消關機或重啟。
除此以外shutdown 還可以指定時間來關機或重啟,預設是1分鐘後執行。

關機和重啟命令的常見用法

[root@centos8-1 ~]# poweroff #關機
[root@centos8-1 ~]# reboot #重啟
[root@centos8-1 ~]# shutdown -r  now #重啟
[root@centos8-1 ~]# shutdown -h 17:00 #指定的時間關機
[root@centos8-1 ~]# shutdown -c #取消關機
[root@centos8-1 ~]# shutdown -r +5 #5分鐘後重啟系統

文字編輯器

Linux下有nano和vim等文字編輯器,目前我們先使用nano來編輯文字。
如果系統上沒有安裝nano文字編輯器,那麼在使用之前首先需要使用yum install -y nano命令來安裝nano文字編輯器

[root@centos8-1 ~]# yum install -y nano

在使用nano進行文字編輯時,nano後面跟檔案路徑即可開啟檔案,然後可以直接修改檔案,類似於windows的記事本,修改完成後然後按Ctrl+x退出,接著按y儲存修改,回車後退出nano。

然後使用nano /etc/motd來修改該檔案,motd檔案是使用者登入之後提示的內容

[root@centos8-1 ~]# nano /etc/motd

然後輸入Welcome to my class

之後按Ctrl+x退出nano編輯器,按y儲存到檔案匯中,然後按回車鍵確認修改。

再重新登入CentOS8.4

  1. 輸入exit命令退出登入
  2. 選擇CentOS8.4的會話重新連線

登入成功之後就會看到/etc/motd檔案內容顯示在終端上

我這裡準備了一個motd檔案,首先使用MobaXterm終端上傳到/etc目錄下覆蓋現有的motd檔案,在使用MobaXterm終端登入CentOS8.4-1後,首先將SSH Broswer的路徑切換到/etc目錄下

然後點選上傳檔案的按鈕

選擇提前準備好的motd檔案上傳到/etc目錄下

然後再次重新登入系統就會看到一個大佛

大家可以自行訪問https://www.bootschool.net/ascii-art 線上生成ASCII(圖)藝術字,然後將內容複製到motd檔案即可。


ASCII(圖)藝術字

會話管理

會話與程序

當我們登入Linux開啟一個終端視窗,然後輸入命令,使用者與計算機的這種臨時互動被稱為一次會話(Session)、會話的一個重要的特點就是視窗與其中啟動的程序是連線在一起的,開啟視窗則會話開始,關閉視窗則會話結束,而且會話內部的程序也會隨之而終止,不管有沒有執行完成。

這裡舉一個例子,我們首先使用XShell遠端登入CentOS8.4-1,然後使用ping 10.0.0.103命令檢測是否能夠連線10.0.0.103,也就是Ubuntu Server 20.04.3-1那臺機器

命令執行的結果顯示能夠連線,而且只要你不關閉視窗會一直顯示收到資料以及耗時。

然後我們複製一個會話

然後使用ps aux|grep ping 檢視ping的程序資訊,因為沒有關閉會話視窗所以程序還在

當我們關閉之前開啟的會話視窗之後

再次使用ps aux|grep ping檢視程序會發現ping程序不存在了

為了解決上述的問題,我們就可以將會話與視窗解綁,也就是視窗關閉時會話並不會終止,而是繼續執行,等到以後需要的時候,再讓會話繫結其他視窗。

而終端複用器程式(例如screen,tmux)就是將會話與視窗的解綁工具,將它們徹底分離。

終端複用器-screen

screen的安裝

首次執行screen時會發現Shell提示command not found

[root@centos8-1 ~]# screen
bash: screen: command not found...

我們需要使用yum install -y screen 來安裝screen,但是執行之後發現提示錯誤:: Unable to find a match: screen

[root@centos8-1 ~]# yum install -y screen
Last metadata expiration check: 0:54:04 ago on Wed 06 Oct 2021 09:47:41 AM CST.
No match for argument: screen
Error: Unable to find a match: screen

Centos8安裝screen需要使用epel來安裝,安裝epel後,再安裝screen,解決centos8無法安裝screen的問題

[root@centos8-1 ~]# yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

然後再執行yum install -y screen 便可安裝成功

[root@centos8-1 ~]# yum install -y screen


Screen安裝成功

screen建立會話

在安裝完screen後就可以使用了,首先在終端輸入screen,然後你就會看到螢幕好像是重新整理了一下,本質就是一個會話

[root@centos8-1 ~]# screen

然後再次執行ping 10.0.0.103

[root@centos8-1 ~]# ping 10.0.0.103

由於開啟了screen,即使關閉了所有的會話視窗,你會發現使用ps aux |grep ping 命令檢視ping命令的程序也還在。

[root@centos8-1 ~]# ps aux|grep ping
gdm         1719  0.0  0.1 305932  7752 tty1     Sl+  09:32   0:00 /usr/libexec/gsd-housekeeping
root       57816  0.0  0.0  32448  2456 pts/3    S+   10:55   0:00 ping 10.0.0.103
root       57995  0.0  0.0  12136  1120 pts/1    S+   10:56   0:00 grep --color=auto ping

如果後期在做運維工作,有些命令很耗時又怕誤操作關閉會話導致命令的程序關閉就可以使用screen。

screen實現桌面共享

screen除了建立會話,能讓命令關閉視窗後繼續在後臺執行的功能以外,還能夠實現遠端桌面共享,從而實現遠端協助的功能。

實現該功能必須滿足兩個條件,兩個使用者必須使用同一個賬號登入同一臺機器。

例如這裡小紅和小明同時使用root賬號登入了CentOS8.4,其中左邊的視窗是小紅,右邊的視窗是小明

然後小紅使用screen -S help開啟一個遠端會話,會話的名稱叫help

[root@centos8-1 ~]# screen -S help # 基於screen開啟名為help的會話

然後小明使用screen -x help加入小紅開啟的會話

[root@centos8-1 ~]# screen -x help # 加入小紅開啟的help會話

此時小明可以看到小紅視窗的內容

當小明解決小紅的問題後,可以使用ctrl a,d退出當前會話

如果小明不知道小紅的會話名稱,可以使用screen -ls獲取當前會話

[root@centos8-1 ~]# screen -ls #檢視當前會話
There is a screen on:
        5344.help       (Attached)
1 Socket in /run/screen/S-root.

echo命令的使用

echo就是用於輸出資訊

echo輸出固定字串

[root@centos8-1 ~]# echo hello #輸出hello
hello

[root@centos8-1 ~]# echo "hello world" #輸出hello world
hello world

echo輸出變數值

[root@centos8-1 ~]# echo $PATH #檢視PATH環境變數
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@centos8-1 ~]# echo $PS1 # 檢視PS1變數
[\u@\h \W]\$
[root@centos8-1 ~]# echo $SHELL # 檢視SHELL變數 
/bin/bash

echo輸出轉義字元

  • -e 表示啟用轉義字元的解釋功能,\開頭的就是轉義字元
[root@centos8-1 ~]# echo  -e '\a' # 發聲音 作為通知

echo 預設可以實現換行

  • -n取消換行

[root@centos8-1 ~]# echo #換行

[root@centos8-1 ~]# echo -n #取消換行
[root@centos8-1 ~]# 

echo輸出資訊還可以帶顏色

  • 31m-37m表示字型顏色
  • 41-47表示背景顏色
  • 1表示高亮
[root@centos8-1 ~]# echo -e '\E[1;31mWelcome to my class\E[0m' #輸出代言色的Welcome to my class
Welcome to my class

echo還可以清除螢幕,等價於clear命令或者是快捷鍵Ctrl+l

[root@centos8-1 ~]# echo -e '\033[2J' # 清除螢幕