[命令] Linux 命令 base64 (将多行内容变成 1 行代码以方便在 1 行命令中使用)

内容一:base64 命令直接使用的案例

1.1 将多行内容变成 1 行代码

1.1.1 创建多行内容
$ cat test.txt
line1: Eternal Center
line2: Mingyu Zhu


补充:这里以创建名为 test.txt 包含以下内容的文件为例

line1: Eternal Center
line2: Mingyu Zhu

1.1.2 将多行内容转换成 1 行代码
$ cat test.txt | base64 -w0
bGluZTE6IEV0ZXJuYWwgQ2VudGVyCmxpbmUyOiBNaW5neXUgWmh1Cg==

(补充:这里以将 test.txt 里的内容转换为 1 行代码为例)

1.2 将 1 行内容还原成多行代码

$ echo bGluZTE6IEV0ZXJuYWwgQ2VudGVyCmxpbmUyOiBNaW5neXUgWmh1Cg== | base64 -d
line1: Eternal Center
line2: Mingyu Zhu

(补充:这里以将 1 行以下代码还原成多行内容为例

bGluZTE6IEV0ZXJuYWwgQ2VudGVyCmxpbmUyOiBNaW5neXUgWmh1Cg==

内容二:base64 命令在脚本中使用的案例

# cat base64.sh

#!/bin/bash
myname=Eternal Ceneter
myurl=eternalcenter.com

YAML_CONTENT=$(cat << EOF
Kind: record
Metadata:
name: $myname
url: $myurl
EOF)

BASE64_YAML=$(echo "$YAML_CONTENT" | base64 -w0)
echo "echo '$BASE64_YAML'" | base64 -d | cat

(注意:这个脚本最后的 cat 命令可以换成任意其他命令,让人只用输入 1 行就可以让此命令处理几行内容的输入)

[命令] Linux 命令 hostname (修改主机名、显示主机名和 IP 地址)

内容一:修改 Linux 主机名

[root@server ~]# hostnamectl set-hostname eternalcenter.com

内容二:显示已经修改的主机名

2.1 显示已经修改的部分主机名

[root@eternalcenter ~]# hostname
eternalcenter

(补充:这里只会显示 “.” 符号前面的内容,“.” 后面的内容不会在这里显示)

2.2 显示已经修改的全部主机名,也就是 FQDN

[root@eternalcenter ~]# hostname -f
eternalcenter.com

内容三:显示 IP 地址

3.1 显示本地最后 1 个 IP 地址

[root@eternalcenter ~]# hostname -i

3.2 显示本地所有 IP 地址

[root@eternalcenter ~]# hostname -I

[命令] Linux 命令 timeout 的使用 (设置在几秒之后结束要执行的命令)

内容一:timeout 命令的格式

# timeout <option> <duration> <command> ......

(补充:这里的 duration 是数字,默认单位是秒。也可以手动指定时间单位,时间单位可以是 s 秒、m 分钟、h 小时、d 天)

内容二:timeout 命令的选项

1) -k, –kill-after=DURATION 当时间到了以后强制杀死命令
2) -p, –preserve-status 当结束时保持命令本身结束时的退出代码

[命令] Linux 命令 colrm (删除所有行某列的字符)

案例一:删除所有行某列字符后的所有字符

# cat test.txt | colrm 3

或者:

# colrm 3 < test.txt

(补充:这里以删除所有行第 3 列及以后的所有字符)

案例二:删除所有行从某列字符到某列字符期间的所有字符

# cat test.txt | colrm 3 6

或者:

# colrm 3 6 < test.txt

(补充:这里以删除所有行第 3 列到第 6 列包括第 3 列和第 6 列的所有字符)