shell脚本中的常用命令
Linux 主机名配置方法详解
主机名是系统在网络中的标识符,其配置允许字母、数字及短横线
一、文件配置法
配置文件路径
主文件:/etc/hostname
(存储永久主机名)
辅助文件:/etc/hosts
vim /etc/hostname
gu.easylee.org
生效时间:需重启系统或执行 hostnamectl set-hostname
同步
二、命令配置法
1.hostnamectl 命令
hostnamectl hostname gu.easylee.org
生效时间:即时生效,无需重启
Linux 网络管理(基于 nmcli
)
nmcli
是 NetworkManager 的命令行工具,提供对网络配置的全生命周期管理
一、网络接口诊断与监控
1. 接口状态查询
命令 | 功能解析 |
nmcli device status | 显示所有网络设备的连接状态 |
nmcli device show ens160 | 查看指定接口的详细配置 |
nmcli connection show [id ens160] | 显示连接配置档案(Profile)参数 |
二、网络配置管理
1. 初始配置
DHCP 模式
nmcli con add \con-name "ens160-dhcp" \ # 配置名称ifname ens160 \ # 接口名type ethernet \ # 连接类型ipv4.method auto \ # 启用 DHCPipv4.route-metric 100 \ # 路由优先级ipv6.method disabled # 禁用 IPv6
静态 IP 模式
nmcli con add \con-name "ens160-static" \ifname ens160 \type ethernet \ipv4.method manual \ipv4.addresses 172.25.254.100/24 \ipv4.gateway IP \ # 需更正为有效网关ipv4.dns " " \ipv4.dns-search "example.com" \
2. 动态修改配置
# 修改 IP 地址并生效
nmcli con mod "ens160-static" \ipv4.addresses IP# 重载配置并激活(无需重启服务)
nmcli con reload # 重载所有配置
nmcli con down "ens160-static" && \
nmcli con up "ens160-static" # 重启连接
VLAN 配置
nmcli con add type vlan \con-name "vlan10" \dev ens160 \id 10 \ipv4.method manual \ipv4.addresses IP
故障解决
问题类型 | 诊断命令 |
DNS 解析失败 | nmcli dev show |
路由异常 | ip route show table all |
Linux 字符处理
本文从工程化角度解析常用字符处理工具的核心功能与进阶用法,涵盖数字序列生成、文本反转、格式化输出及结构化排序等场景
一、序列生成器 (seq
)
1.基础数值序列
$ seq 1 3 # 生成连续整数
1
2
3
2. 格式化输出控制
参数 | 功能 |
-f | 格式字符串 |
-s | 自定义分隔符 |
3. 序列生成
$ seq 1 2 10 # 步长为2的等差数列
1
3
5
7
9$ seq -w 8 12 # 等宽填充 (08 09 10 11 12)
二、文本反转 (tac
)
1. 基础反转
$ seq 1 5 > input.txt
$ tac input.txt # 按行逆序输出
5
4
3
2
1
三、格式化输出工具
1. printf
控制
格式符 | 功能 |
%s | 字符串 |
%d | 整数 |
%.2f | 浮点数 |
%% | 转义百分号 |
2. echo
快捷输出
参数 | 功能 |
-e | 启用转义 |
-n | 抑制换行 |
四、排序工具 (sort
)
1. 排序模式
参数组合 | 功能 |
-n | 数值排序 |
-r | 逆序输出 |
-u | 去重处理 |
-k N | 按列排序 |
uniq
命令
uniq
是处理 相邻重复行 的核心工具,需配合 sort
预处理以实现全局去重。以下从基础到高阶全面解析其功能与应用场景。
一、基础操作流程
1. 数据处理(排序)
# 生成无序测试数据
cat <<EOF > data.txt
3
4
3
2
1
5
7
9
6
8
12
8
6
30
8
EOF# 必须排序使重复行相邻
sort -n data.txt > sorted_data.txt
2. 核心功能参数
参数 | 功能 |
无参数 | 删除相邻重复行 |
-c | 统计重复次数 |
-d | 仅显示重复行 |
-u | 仅显示唯一行 |
2. 跨行比对控制
参数 | 功能 |
-f N | 跳过前N列 |
-s N | 跳过前N字符 |
-w N | 仅比对前N字符 |
cut命令
命令 | 作用 |
-d | 分隔符 |
-f | 指定显示的列 |
-c | 指定截取的字符 |
Linux xargs
命令技术详解与工程实践
xargs
是 UNIX/Linux 系统中处理标准输入与命令行参数转换的核心工具,尤其擅长解决 参数列表过长问题,支持高效批量操作。
一、核心功能与基础操作
1. 输入转参数
# 正确:通过 xargs 将输入拆分为多个参数
echo /mnt/file{1..1000} | xargs touch
技术原理:
xargs
默认以空白字符(空格、制表符、换行)分割输入流,生成参数列表并传递给目标命令
2.输入多行,输出单行
[root@gu ~]# vim /mnt/gu
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
[root@gu ~]# xargs < /mnt/gu
1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6
二、参数控制
1. 限制每行参数数量
# 每行最多传递3个参数
xargs -n 3 < input.txt
a1 a2 a3 a4 a5 a6
# 输出:
# a1 a2 a3
# a4 a5 a6
2. 自定义分隔符
# 处理冒号分隔的输入
echo "file1:file2:file3" | xargs -d: rm
# 等效于:rm file1 file2 file3
关键参数:
-d
指定输入分隔符
三、优化参数
参数 | 作用 |
-s | 设置单个命令最大参数长度 |
-x | 超出 -s 限制时报错终止 |