[排错] 解决 Linux 普通用户执行 ping 命令时报错 “ping: socket: Address family not supported by protocol” 或者 “Error: ping: socket: Operation not permitted”

解决方法一:修改 net.ipv4.ping_group_range 参数

1.1 确认文件功能没有参数

# getcap /usr/bin/ping

(补充:确认没有输出结果)

1.2 修改 net.ipv4.ping_group_range 参数

# sysctl net.ipv4.ping_group_range="0 2147483647"

解决方法二:设置文件功能参数

2.1 设置文件功能参数

# setcap cap_net_raw+eip /usr/bin/ping

2.2 确认文件功能参数已经设置

# getcap /usr/bin/ping
/usr/bin/ping = cap_net_raw+eip

[命令] Linux 命令 timeout (指定命令执行的时间)

内容一:timeout 命令的格式

# timeout <option> <duration> <command>

内容二:timeout 命令的选项和持续时间的单位

2.1 timeout 命令的选项

1) -k 当达到命令结束的时间没有结束时,再经过指定时间后结束命令
2) –foreground 后台执行命令
3) –help 显示帮助信息
4) -s 或者 –signal=,在超时时发送信号,通过 “kill -l” 命令可以显示信号列表
5) –version 显示版本信息

2.2 timeout 命令的持续时间的单位

1) s,秒 (默认)
2) m,分
3) h,时
4) d,天

内容三:timeout 命令的案例

3.1 案例一:执行 10 秒钟 top 命令

# timeout 10 top

3.2 案例二:执行 1 小时 ping 命令,并在结束命令时发送 SIGKILL 信号

# timeout -s SIGKILL 1h ping eternalcenter.com

3.3 案例三:执行 1 分钟 top 命令,如果 1 分钟后命令没有停止,则再过 10 秒后结束命令

# timeout -k 10s 1m top

[内容] Linux 运算

方法一:使用 expr 命令

# a=1
# b=2
# c=`expr $a + $b`
# echo $c
3

或者:

# a=1
# b=2
# c=$(expr $a + $b)
# echo $c
3

或者:

# a=1
# b=2
# c=$[`expr $a + $b`]
# echo $c
3

(补充:这里以 1 加 2 等于 3 为例)

方法二:使用 let 命令

# a=1
# b=2
# let c=b/c
# echo $c
2

(补充:这里以 2 除以 1 等于 2 为例)

方法三:使用双括号 “(())”

# a=1
# b=2
# c=$(($a * $b))
# echo $c
3

(补充:这里以 1 乘以 2 等于 3 为例)

[内容] Linux SSL 证书 KEY 私钥密码的添加 (OpenSSL 版)

内容一:给 SSL 证书 KEY 私钥添加密码

交互式给 SSL 证书 KEY 私钥添加密码

# openssl rsa -des -in eternalcenter.com.key -out one.eternalcenter.com.key

(补充:这里以给 eternalcenter.com.key)

内容二:取消 SSL 证书 KEY 私钥添加密码

2.1 交互式取消 SSL 证书 KEY 私钥添加密码

# openssl rsa -in one.eternalcenter.com.key -out two.eternalcenter.com.key

2.2 非交互式取消 SSL 证书 KEY 私钥添加密码

# openssl rsa -in one.eternalcenter.com.key -passin pass:eternalcenter -out two.eternalcenter.com.key

[命令] Linux 命令 expr (截取字符串、计算字符串长度和数值运算)

案例一:计算字符串长度

# expr length 'eternalcenter.com'
17

(补充:这里以计算字符串 eternalcenter.com 的长度为例)

案例二:截取字符串

# expr substr "eternalcenter.com" 1 13
expr substr "eternalcenter.com" 1 13

(补充:这里以计算字符串 eternalcenter.com 的第 1 个字符到第 13 个字符串为例)

案例三:显示某字符在某字符串中第 1 次出现的位置

# expr index eternalcenter.com r
4

(补充:这里以显示 r 字符在字符串 eternalcenter.com 中第 1 次出现的位置为例)

案例四:数值运算

4.1 案例一:加法

# expr 1 + 1
2

(补充:这里以 1 加 1 等于 2 为例)

4.2 案例二:减法

# expr 2 - 1
1

(补充:这里以 2 减 1 等于 1 为例)

4.3 案例三:乘法

# expr 3 \* 3
9

(补充:这里以 3 乘以 3 等于 9 为例)

(注意:expr 使用乘法时必须要使用反义符号 “\”)

4.4 案例四:除法

# expr 9 / 3 / 3
1

(补充:这里以 9 除以 3 再除以 3 为等于 1 为例)