Shell 脚本常用命令笔记

发布于:2025-05-31 ⋅ 阅读:(23) ⋅ 点赞:(0)

一、系统配置命令

1. 主机名设置

  • 文件方式
    • 修改文件:vim /etc/hostname,写入新主机名(如czg.easylee.org)。
    • 生效方式:需重新打开 Shell 或重启系统。
  • 命令方式
    • 即时生效命令:hostnamectl set-hostname 新主机名,无需重启 Shell。

2. 网络管理(nmcli)

查看网卡信息

  • 基本信息:nmcli device status(列出所有网卡状态)。
  • 详细信息:nmcli device show [网卡名](如nmcli device show ens160)。
  • 连接配置:nmcli connection show [连接名](查看指定连接配置)。

 

二、字符处理命令

1. 数字与字符打印

  • seq(生成连续数字)
    • 基础用法:seq 起始 结束(如seq 1 3输出1\n2\n3)。
    • 格式控制:seq -f "%03g" 1 3(输出001\n002\n003)。
    • 步长设置:seq 起始 步长 结束(如seq 1 2 10输出1,3,5,7,9)。
  • tac(反向打印文件内容)
    • 用法:tac 文件名(如tac test反向输出文件每一行)。

打印连续数字

指定打印格式:

设定打印步长

2.反向打印文件内容

2. 格式化输出(printf/echo)


printf(精确控制格式)
基础打印:printf "hello world"(不换行)。
转义字符:printf "hello\tworld\n"(制表符 + 换行)。
百分比:printf "3%%\n"(输出3%)。
数值格式化:printf "%.1f\n" 3.1415(输出3.1)。
echo(简易输出)
换行打印:echo "hello world"。
不换行:echo -n "hello world"。
解析转义符:echo -e "hello\tworld"(需加-e参数)。

打印字符

(printf)

打印百分号

打印整数,浮点数

(echo)

不换行打印

解析转义字符

3. 文本处理(sort/uniq/cut)

  • sort(排序)——用于对内容进行排序,默认排序行首第一个字符
    • 纯数字排序:sort -n 文件名
    • 倒序:sort -rn 文件名
    • 去重:sort -un 文件名
    • 按分隔符排序:sort -t ":" -k 2 文件名(按冒号分隔的第二列排序)。
  • uniq(去重)
    • 统计重复行:sort 文件名 | uniq -c
    • 显示重复行:sort 文件名 | uniq -d
    • 显示唯一行:sort 文件名 | uniq -u
  • cut(截取字段)
    • 按分隔符截取:cut -d ":" -f 2 文件名(取冒号分隔的第二列)。
    • 按字符位置截取:cut -c 3-5 文件名(取第 3 到 5 个字符)。

 sort

vim lee

sort -n lee

倒叙

sort -rn lee

 去掉重复

sort -un lee

uniq

-c 合并并统计重复个数

sort -n lee | uniq -c

 

-d 显示重复的行

sort -n lee | uniq -d

 

-u 显示唯一的行

sort -n lee | uniq -u

 

 cut

cut -d ":" -f 2 lee

 

cut -c 3-5 lee

 

 三、管道与参数传递(xargs)

作用:将标准输入转换为命令行参数,解决管道数据与命令参数不兼容问题。

-I :用于指定替换字符串,将输入数据中的特定字符串替换为命令行参数。
-n :用于指定每次执行命令的参数个数。
-t :用于打印执行的命令。
-p :用于提示用户确认是否执行命令。
-r :当标准输入为空时,不执行命令。

基础用法

echo "/mnt/lee{1..3}" | xargs touch  # 批量创建文件  

 

 多行转单行

xargs < 文件路径  # 将文件每行内容合并为一行  

 xargs内容

 

 指定每行参数个数

xargs -n3 < 文件路径  # 每行输出3个参数  

 

 自定义分隔符

echo "ee:lee:lee" | xargs -d:  # 用冒号分隔输入  

 

 

 


网站公告

今日签到

点亮在社区的每一天
去签到