[命令] Linux 命令 eval (执行变量里的命令或实现指针)

内容一:eval 命令的作用

对将要执行的命令进行 2 次扫描,第 1 次扫描时把扫描的内容替换成命令,第 2 次扫描时执行扫描到的命令

内容二:eval 直接执行命令的案例

2.1 设置变量

# url=eternalcenter.com

(补充:这里以将内容 eternalcenter.com 赋值给变量 url 为例)

2.2 显示变量里内容

# echo $url
eternalcenter.com

或者:

# eval echo $url
eternalcenter.com

(补充:这里以显示变量 url 里的内容 eternalcenter.com 为例)

内容三:eval 将变量转换成命令后执行的案例

3.1 将命令设置成变量

# command=pwd

(补充:这里以将命令 pwd 赋值给变量 command 为例)

3.2 显示变量里的命令

# echo $command
pwd

(补充:这里以显示变量 command 里的 pwd 命令为例)

3.3 执行变量里的命令

# eval $command
/root

(补充:这里以执行变量 command 里的 pwd 命令为例)

内容四:eval 显示脚本里最后 1 个位置变量的内容

4.1 创建显示最后 1 个位置变量的脚本

# vim test.sh

创建以下内容:

#!/bin/bash
eval echo \$$#

(补充:这里创建名为 test.sh 的脚本为例)

4.2 带位置变量执行脚本

# . test.txt a b c d e
e

(补充:这里执行名为 test.sh 的脚本并附带 a b c d e 5 个位置变量为例)

内容五:eval 实现指针

5.1 设置变量

# url=eternalcenter.com

(补充:这里以将内容 eternalcenter.com 赋值给变量 url 为例)

5.2 设置指针

# pointer=url

(补充:这里以让指针 pointer 指向 url 变量为例)

5.3 显示指针指向的变量

# echo $pointer
url

(补充:这里以显示指针 pointer 指向的变量 url 为例)

5.4 显示指针最终指向的内容

# eval echo \$$pointer
eternalcenter.com

(补充:这里以显示指针 pointer 指向的最终内容 eternalcenter.com 为例)

[命令] Linux 命令 mtr (检测网络联通状态)

案例一:一直检测某 1 个 IP 地址的联通状态并边检测边显示状况

# mtr -n 8.8.8.8

或者:

# mtr --no-dns 8.8.8.8


补充:
1) 这里以检测 8.8.8.8 IP 地址为例
2) -n 或者 –no-dns 参数代表不使用 DNS 解析主机名

案例二:检测某 1 个 IP 地址 100 次的联通状态并边检测边显示状况

2.1 检测某 1 个 IP 地址 100 次的联通状态并边检测边显示状况 (TCP 加 UDP 版)

# mtr -nc 100 8.8.8.8

或者:

# mtr --no-dns --report-cycles 100 8.8.8.8


补充:
1) 这里以检测 8.8.8.8 IP 地址为例
2) -n 或者 –no-dns 参数代表不使用 DNS 解析主机名
3) -c 或者 –report-cycles 参数代表指定次数

2.2 检测某 1 个 IP 地址 100 次的联通状态并边检测边显示状况 (TCP 版)

# mtr -nTc 100 8.8.8.8

或者:

# mtr --no-dns --tcp --report-cycles 100 8.8.8.8


补充:
1) 这里以检测 8.8.8.8 IP 地址为例
2) -n 或者 –no-dns 不使用 DNS 解析主机名
3) -T 或者 –tcp 指定 TCP 端口
4) -c 或者 –report-cycles 指定次数

2.3 检测某 1 个 IP 地址 100 次的联通状态并边检测边显示状况 (UDP 版)

# mtr -nuc 100 8.8.8.8

或者:

# mtr --no-dns --udp --report-cycles 100 8.8.8.8


补充:
1) 这里以检测 8.8.8.8 IP 地址为例
2) -u 或者 —udp 指定 UDP 端口
3) -n 或者 –no-dns 参数代表不使用 DNS 解析主机名
4) -c 或者 –report-cycles 参数代表指定次数

案例三:检测某 1 个域名 100 次的联通状态并显示最终报告

# mtr -nrc 100 eternalcenter.com

或者:

# mtr --no-dns --report --report-cycles 100 eternalcenter.com


补充:
1) 这里以检测 eternalcenter.com 域名为例
2) -n 或者 –no-dns 参数代表不使用 DNS 解析主机名
3) -r 或者 –report 参数代表生成最终报告
4) -c 或者 –report-cycles 参数代表指定次数

案例四:检测某 1 个域名 TCP 443 端口 100 次的联通状态并显示最终报告

# mtr -TP 443 -nrc 100 eternalcenter.com

或者:

# mtr --tcp --port 443 --no-dns --report --report-cycles 100 eternalcenter.com


补充:
1) 这里以检测 eternalcenter.com 域名的 443 端口为例
2) -n 或者 –no-dns 参数代表不使用 DNS 解析主机名
3) -r 或者 –report 参数代表生成最终报告
4) -c 或者 –report-cycles 参数代表指定次数
5) -T 或者 –tcp 参数代表指定 TCP
6) -P 或者 –port 参数代表指定端口号

[命令] Linux 命令 nc (检查网络端口的联通性)

正文:

案例一:检查某 1 个域名某 1 个 TCP 端口的联通性

# nc -v -z eternalcenter.com 443

或者:

# nc -vz eternalcenter.com 443

(补充:这里以检测 eternalcenter.com 域名的 TCP 443 端口为例)

案例二:检查某 1 个 IP 地址某 1 个 TCP 端口的联通性

# nc -v -z 8.8.8.8 443

或者:

# nc -vz 8.8.8.8 443

(补充:这里以检测 8.8.8.8 IP 地址的 TCP 443 端口为例)

案例三:检查某 1 个域名某 1 个 UDP 端口的联通性

# nc -u -v -z eternalcenter.com 69

或者:

# nc -uvz eternalcenter.com 69

(补充:这里以检测 eternalcenter.com 域名的 UDP 69 端口为例)

案例四:检查某 1 个 IP 地址某 1 个 UDP 端口的联通性

# nc -u -v -z 8.8.8.8 69

或者:

# nc -uvz 8.8.8.8 69

(补充:这里以检测 8.8.8.8 IP 地址的 UDP 69 端口为例)

案例五:人为占用本地系统的 1 个端口

# nc -l -k 443

或者:

# nc -lk 443

(补充:这里以人为占用本地系统的 443 端口为例)

(补充链接:System local ports batch occupation

参考文献:

https://nmap.org

[命令] Linux 目标网站 SSL 证书的显示 (OpenSSL 版)

内容一:查看完整信息

# openssl s_client -connect eternalcenter.com:443
CONNECTED(00000003)
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = eternalcenter.com
verify return:1
---
Certificate chain
 0 s:CN = eternalcenter.com
   i:C = US, O = Let's Encrypt, CN = R3
 1 s:C = US, O = Let's Encrypt, CN = R3
   i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
 2 s:C = US, O = Internet Security Research Group, CN = ISRG Root X1
   i:O = Digital Signature Trust Co., CN = DST Root CA X3
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIFKjCCBBKgAwIBAgISAxDxly99eBiarmHggFEmDJoMMA0GCSqGSIb3DQEBCwUA
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yMTEyMTkxMzA4MzJaFw0yMjAzMTkxMzA4MzFaMBwxGjAYBgNVBAMT
EWV0ZXJuYWxjZW50ZXIuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAtCcCuOqBrWP4eo//VBEXh668EjwrE1eXz2CS4GIN4ddn0rS8LHGFOrB92R8E
OnaYeTKpZjzNM3NA/AG/Gq5mTRZGTpyTasHEb/phwXdhrtJWdbMtQjGFSg8rXSB8
cap5NGP/NxAy8FV0MbXftg5t9VgBoCMGUzioSHZTEjefq+/OZwlP7RzxZN3bwj1D
61gWSw6q1X3bsi8ttwbkkiJfvjXo2KIeGOAnY10X+FPJmVa7jonhOuljrX4CYgnd
SCxmsfgwGMUzRu27VB1rEbKqvSr6tb9KfwFiqsZd5tTi7RW6WMqA0VbDV7BbDqLP
OzcturwRtXfzHjJxssy9zhnrQQIDAQABo4ICTjCCAkowDgYDVR0PAQH/BAQDAgWg
MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0G
A1UdDgQWBBQMGBCfBuZxTAS8VcBI/13ugqc2RDAfBgNVHSMEGDAWgBQULrMXt1hW
y65QCUDmH6+dixTCxjBVBggrBgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6
Ly9yMy5vLmxlbmNyLm9yZzAiBggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iu
b3JnLzAcBgNVHREEFTATghFldGVybmFsY2VudGVyLmNvbTBMBgNVHSAERTBDMAgG
BmeBDAECATA3BgsrBgEEAYLfEwEBATAoMCYGCCsGAQUFBwIBFhpodHRwOi8vY3Bz
LmxldHNlbmNyeXB0Lm9yZzCCAQYGCisGAQQB1nkCBAIEgfcEgfQA8gB3AN+lXqto
gk8fbK3uuF9OPlrqzaISpGpejjsSwCBEXCpzAAABfdMFzUsAAAQDAEgwRgIhAMFF
1orPZPnpCyhzwX2xZAZjJnOmDGmBjAl0tHnX4nEWAiEAqZTUwjrdwZAL+kDAgpzG
Me2RnGMseDBY8Oy2sefUgsAAdwBGpVXrdfqRIDC1oolp9PN9ESxBdL79SbiFq/L8
cP5tRwAAAX3TBc1zAAAEAwBIMEYCIQDLhR0nbVHEIL1uw9hRuv/ZbFjf91W/M4Jp
od7NTMQZbAIhAKEAAfmdu0nVHklyS2At1VValwQ6vNbqd0NQ85giG606MA0GCSqG
SIb3DQEBCwUAA4IBAQB/s+rZEaNrlUyBVnbxv5X9NTBd8buBOkR1qVswlS1R2i8B
pRjeJmgbiMzM2z5Mvx0yTIiCyXXUc3YaqoyxvddaQam9nlLGr0nKX9T5DkE7y0Fh
Qg0/ievRQF86XnDqQBxDR32jj5A1nKEiJrNCqugCWTAABndW3tvzK5DOsF2BfjJC
mcjwiKaSCjFVpf+KzLWS3UEW+DRTKOLBucXpenS7QEcQu4K6ShNSL7+K6UOZEbFu
uCRjOawCJFF7EH5vzRBy696Fu4EmzCV+c4rV8K8EcuCCQQeOTWJ/93Jv6U6kGrmE
P6wlcHFy1tZhTAmXf/qcpE3sGeH58OlNNiVmNJdH
-----END CERTIFICATE-----
subject=CN = eternalcenter.com

issuer=C = US, O = Let's Encrypt, CN = R3

---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 4695 bytes and written 412 bytes
Verification: OK
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: D63BC88824810A4D43ACE901AD4FF2D82073BC6F0D8B2DE71F6310CA1C87707F
    Session-ID-ctx: 
    Master-Key: A6836430C394B96DDD5552867D49802F94AAC8BF5E882100F0D27185CF5CFD6A946B94D87652E44A6684FC9781D16D90
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - bb be 55 e0 4b 6d c3 08-cd bc 45 6e 79 67 fc eb   ..U.Km....Enyg..
    0010 - 30 d5 4c 8a 5a c8 f7 13-42 4b 1d 02 ce 94 c0 b8   0.L.Z...BK......
    0020 - d7 cf f6 f0 ee 9d 49 5b-0a c8 a4 1a 8b dd 8a e0   ......I[........
    0030 - 66 83 52 9b 31 4d da 9e-d5 05 1a 70 ca e9 86 5e   f.R.1M.....p...^
    0040 - f5 09 a1 1c 92 6b 64 90-b7 e1 0e ec 30 e2 26 68   .....kd.....0.&h
    0050 - 49 13 10 9e 3e a5 e0 13-a2 f1 7a 7c c5 ad 99 6c   I...>.....z|...l
    0060 - e9 f6 1d 46 5f cc f6 f9-c5 f6 05 49 53 78 7e ea   ...F_......ISx~.
    0070 - 8c 17 eb 8d 96 c3 3f 92-fe e0 f0 f6 86 59 05 c8   ......?......Y..
    0080 - d2 8c 27 6b 9d 65 38 20-84 d4 23 54 35 70 19 4d   ..'k.e8 ..#T5p.M
    0090 - db 35 6d f4 44 50 d7 6e-a5 87 2b 32 e5 f8 42 88   .5m.DP.n..+2..B.
    00a0 - 28 e2 ab 35 e1 2c 06 71-e5 b2 82 cb 3a 75 cc 72   (..5.,.q....:u.r
    00b0 - ed ae e1 12 ff 82 6c 3a-3a 38 7a 8c 3c 9c f1 10   ......l::8z.<...
    00c0 - 78 b8 37 87 c3 a2 00 76-01 72 8c ef 3b 20 48 28   x.7....v.r..; H(

    Start Time: 1644931899
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: yes
---
closed

(补充:这里以显示 eternalcenter.com 的 443 端口的 SSL 证书为例)

内容二:查看主要信息

# echo | openssl s_client -connect scc.suse.com:443 | head -n 16
CONNECTED(00000003)
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = eternalcenter.com
verify return:1
---
Certificate chain
 0 s:CN = eternalcenter.com
   i:C = US, O = Let's Encrypt, CN = R3
 1 s:C = US, O = Let's Encrypt, CN = R3
   i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
 2 s:C = US, O = Internet Security Research Group, CN = ISRG Root X1
   i:O = Digital Signature Trust Co., CN = DST Root CA X3
---

(补充:这里以显示 eternalcenter.com 的 443 端口的 SSL 证书为例)