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
- 輸入exit命令退出登入
- 選擇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' # 清除螢幕