Linux中Shell脚本的常用命令

news2025/6/4 1:29:56

一、设置主机名称

1、通过修改系统文件来修改主机名称

[root@sakura1 桌面]# vim /etc/hostname
sakura
  • /etc/hostname:Linux 系统中存储主机名的配置文件。
  • 修改完文件后,在当前的shell中是不生效的,需要关闭当前shell后重新开启才能看到效果。

2、通过命令来更改主机名称

[root@sakura1 桌面]# hostnamectl hostname sakura
  • 修改后立即生效,无需重启shell

二、简单处理字符

seq的基本语法:

seq [选项] 终止值
seq [选项] 起始值 终止值
seq [选项] 起始值 步长 终止值

seq常用选项详解

选项说明示例输出
无选项默认生成整数序列seq 3

1

2

3

-f, --format=格式指定输出格式(支持 printf 样式)seq -f "%03g" 3

001

002

003

-s, --separator=分隔符指定分隔符(默认是换行符 \nseq -s " " 31 2 3
-w, --equal-width等宽输出(自动补零)seq -w 8 10

08

09

10

指定步长seq 1 2 10

1

3

5

7

9

printf的基本语法:

printf 格式字符串 [参数1 参数2 ...]
  • 格式字符串:包含普通文本和格式化占位符(如 %s%d)。
  • 参数:依次替换格式字符串中的占位符。

1、printf常用格式说明符

说明符含义示例输出
%s字符串printf "%s" "hello"hello
%d十进制整数printf "%d" 255255
%f浮点数printf "%f" 3.143.140000
%x十六进制(小写)printf "%x" 255ff
%X十六进制(大写)printf "%X" 255FF
%o八进制printf "%o" 64100
%c单个字符printf "%c" 65A (ASCII 65)
%%百分号printf "%%"%

2、printf常用修饰符

修饰符功能示例输出
%Ns最小宽度N(不足空格填充)printf "%5s" "hi"hi
%-Ns左对齐字符串,并确保输出宽度至少为 5 个字符。若字符串长度不足,会在右侧补空格;若超过 5 个字符,则完整显示。printf "%-5s" "hi"hi
%0Nd数字补零printf "%05d" 4200042
%.Mf浮点数保留M位小数printf "%.2f" 3.141593.14
%x.yf总宽度x,小数位yprintf "%8.3f" 3.143.140
\n换行printf "Line1\nLine2"两行文本
\t制表符printf "A\tB"A B
\\反斜杠printf "\\"\

echo的基本语法:

echo [选项] [字符串...]
  • 若不指定选项,echo 会将所有参数连接并输出,参数间用空格分隔。

1、echo的常用选项(GNU 扩展版)

选项说明示例输出
-n不输出结尾的换行符echo -n "Hello"; echo " World"Hello World
-e启用反斜杠转义解释echo -e "Line1\nLine2"Line1
Line2
-E禁用反斜杠转义解释(默认)echo -E "Line1\nLine2"Line1\nLine2
--help显示帮助信息echo --help帮助文档
--version显示版本信息echo --version版本信息

2、转义字符(需配合 -e 使用)

转义序列含义示例输出
\n换行echo -e "A\nB"A
B
\t水平制表符echo -e "A\tB"A B
\\反斜杠echo -e "\\"\
\a警报(响铃)echo -e "\a"终端响铃
\b退格echo -e "123\b4"124
\r回车echo -e "Old\rNew"New
\v垂直制表符echo -e "A\vB"A
  B
\c禁止继续输出echo -e "Hello\c World"Hello
\0NNN八进制值字符echo -e "\0101"A (ASCII 65)
\xHH十六进制值字符echo -e "\x41"A

1. 打印连续数字

(1)连续打印3个数字

(2)指定打印格式

(3)设定打印步长

2. 反向打印文件内容

3. 打印字符

(1)使用printf命令

打印字符

指定格式打印字符

打印百分号

打印整数、浮点数

(2)使用echo命令

默认会换行打印字符

不换行打印字符

解析转义字符

4. 使用 sort 命令对内容进行排序

sort 命令常用选项速查表

选项长选项功能描述使用示例
基础排序
-r--reverse逆序排序(降序)sort -r file.txt
-n--numeric-sort按数值大小排序sort -n numbers.txt
-h--human-numeric-sort按人类可读数值排序(2K, 1G)du -h | sort -h
-f--ignore-case忽略大小写sort -f mixed_case.txt
字段处理
-k POS--key=KEYDEF按指定字段/列排序
(POS格式:开始[.字符],结束[.字符]
sort -k 2,2 data.txt
sort -k 3n,3 data.txt
-t SEP--field-separator=SEP指定字段分隔符sort -t',' -k2n data.csv
输出控制
-u--unique排序并去重sort -u duplicates.txt
-o FILE--output=FILE结果输出到文件(支持原地排序)sort file.txt -o file.txt
-c--check检查文件是否已排序sort -c sorted.txt

测试文件:

[root@sakura 桌面]# vim master
 3
 5
 4
 52
 64
 12
 4
 2
 5
 4
 3
 52

按数值大小排序

按数值大小逆序排列

按数值大小逆序排列并且去除重复的

然后修改测试文件成下列代码这样:

 [root@sakura 桌面]# vim master
 3:5
 5:33
 4:5
 52:42
 64:56
 12:24
 4:42
 2:11
 5:09
 4:2
 3:42
 52:11

使用冒号 : 作为字段分隔符,以第 2 个字段作为排序键并且按数值排序 。

5. 使用 uniq 命令对 sort 命令输出的字符冗余部分进行处理

uniq 命令常用选项速查表

选项功能描述使用示例
-c在行首显示重复次数uniq -c file.txt
sort file.txt | uniq -c
-d仅显示重复行(每组重复行显示一次)uniq -d file.txt
-D显示所有重复行uniq -D file.txt
-u仅显示唯一行(不重复的行)uniq -u file.txt

uniq的关键说明:

必需的预处理:uniq只能对有序的文件进行处理,所以uniq通常要与sort一起使用
uniq 只能检测相邻的重复行,通常需要先排序:

sort file.txt | uniq [选项]

测试文件:

 [root@sakura 桌面]# vim tec9 
 2
 4
 5
 2
 42
 56
 5
 6
 1
 24

使用sort按数值排序,uniq起到在行首显示重复次数的作用

仅显示重复的行(每组重复行显示一次)

显示唯一的行

6. 使用 cut 命令对字符进行截取

cut 命令核心选项速查表

选项长选项功能描述使用示例
-d--delimiter指定字段分隔符(默认是TAB)cut -d ',' -f1 file.csv
-f--fields选择指定的字段(列)cut -d':' -f1,3-5 /etc/passwd
-c--characters

选择指定的字符位置(按字符计数)

(数字用法同 -f)

cut -c1-5,10-15 file.txt

如图:/etc/passwd里面的信息被冒号:分割成了7列。

下图 cut 命令详解

-f 1代表第一列。

-f 1,5 代表第一列和第五列。

-f 1-5 代表第一列到第五列

-f 5- 代表从第五列开始到最后一列,因为5-后面没跟数字。

-f -7 代表从第一列开始到第七列。

下图的测试文件以如下代码为准:

[root@sakura 桌面]# vim passwd
passwd

对文件内字符的截取

四、xargs 命令

xargs 命令核心功能

作用:将标准输入(stdin)转换为命令行参数,能够处理管道或者标准输入并将其转换成特定命令

的命令参数 

典型场景:与 findgreprm 等命令结合使用 

xargs的常用选项速查表

选项长选项功能描述使用示例
-n--max-args每次执行命令使用的最大参数数量echo {1..10} | xargs -n 2 echo
-I--replace定义替换字符串,用于参数插入find . -name "*.txt" | xargs -I {} mv {} ~/backup
-p--interactive交互模式,执行前确认ls | xargs -p rm
-t--verbose详细模式,打印要执行的命令find . -name "*.log" | xargs -t rm
-d--delimiter指定自定义输入分隔符(默认是空格/换行)echo "a,b,c" | xargs -d, -n 1 echo
-r--no-run-if-empty输入为空时不执行命令find /tmp -empty | xargs -r rm

1、xargs命令的作用

2、多行输入单行输出

测试文件如下:

[root@sakura media]# vim /media/lcf
a a a a a a
b b b b b b
c c c c c c
d d d d d d
e e e e e e
f f f f f f

3、指定每行输出的个数

4、指定分隔符

5、用字符代替接收值

6、输入为空时不执行命令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2393649.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RabbitMQ项目实战

先参考文章:(必看) 06-MQ基础_mq服务-CSDN博客 07-MQ高级(幂等性)-CSDN博客 https://cloud.iocoder.cn/message-queue/rabbitmq/#_2-0-%E5%BC%95%E5%85%A5%E4%BE%9D%E8%B5%96%E4%B8%8E%E9%85%8D%E7%BD%AE 1、Rabbi…

安卓开发用到的设计模式(3)行为型模式

安卓开发用到的设计模式(3)行为型模式 文章目录 安卓开发用到的设计模式(3)行为型模式1. 命令模式(Command Pattern)2. 策略模式(Strategy Pattern)3. 观察者模式(Observ…

尚硅谷redis7 90-92 redis集群分片之集群扩容

90 redis集群分片之集群扩容 三主三从不够用了,进行扩容变为4主4从 问题:1.新建两个redis实例,怎么加入原有集群?2.原有的槽位分3段,又加进来一个槽位怎么算? 新建6387、6388两个服务实例配置文件新建后启…

离散化算法的二分法应用

我们思考一个问题:其实这里的二分法回归本源也是基于下标映射的原理,只是实现是借助二分的形式。 在排序好的数组中对目标数值进行二分搜索,在 O(logn) 的时间复杂度内找到该数值是整体数据中的第几个。 具体的我们可以如下操作: …

半导体厂房设计建造流程、方案和技术要点-江苏泊苏系统集成有限公司

半导体厂房设计建造流程、方案和技术要点-江苏泊苏系统集成有限公司 半导体厂房的设计建造是一项高度复杂、专业性极强的系统工程,涉及洁净室、微振动控制、电磁屏蔽、特殊气体/化学品管理等关键技术。 一、设计建造流程: 1.需求定义与可行性分析 &a…

一种通用图片红色印章去除的工具设计

朋友今天下午需要处理个事情,问我有没有什么好的办法能够去除,核心问题是要去除图片上的印章。记得以前处理过类似的需求,photoshop操作比较简单,本质是做运算。这种处理方式有很多,比如现在流行的大模型,一…

RapidOCR集成PP-OCRv5_det mobile模型记录

该文章主要摘取记录RapidOCR集成PP-OCRv5_mobile_det记录,涉及模型转换,模型精度测试等步骤。原文请前往官方博客: https://rapidai.github.io/RapidOCRDocs/main/blog/2025/05/26/rapidocr%E9%9B%86%E6%88%90pp-ocrv5_det%E6%A8%A1%E5%9E%8B…

Dify理论+部署+实战

概述 一个功能强大的开源AI应用开发平台,融合后端即服务(Backend as Service)和LLMOps理念,使开发者能够快速搭建生产级的生成式AI应用。 核心优势 直观的用户界面:提供简洁明了的操作界面,使得用户能够…

内网穿透系列五:自建SSH隧道实现内网穿透与端口转发,Docker快速部署

​以下是对这个自建SSH隧道工具的简单介绍: 一款基于OpenSSH构建的内网穿透与端口转发工具,通过SSH隧道技术实现支持所有TCP协议通信,包括SSH、HTTP、HTTPS等各类应用提供灵活部署方式,特别支持Docker容器化快速部署开源工具地址…

桥梁进行3D建模时的数据采集、存储需求及技术参数

桥梁进行3D建模时的数据采集、存储需求及技术参数 1公里桥梁进行3D建模时的数据采集、存储需求及技术参数的详细分析 1. 照片数量估算 关键影响因素 桥梁类型:梁桥/拱桥/斜拉桥(结构复杂度不同) 建模精度:工程级(1-…

Transformer架构技术学习笔记:从理论到实战的完整解析

引言:重新定义序列建模的里程碑 2017年,Vaswani等人在论文《Attention Is All You Need》中提出的Transformer架构,彻底改变了自然语言处理领域的游戏规则。与传统RNN/LSTM相比,Transformer具有三大革命性特征: 全注意…

1、python代码实现与大模型的问答交互

一、基础知识 1.1导入库 torch 是一个深度学习框架,用于处理张量和神经网络。modelscope是由阿里巴巴达摩院推出的开源模型库。 AutoTokenizer 是ModelScope 库的类,分词器应用场景包括自然语言处理(NLP)中的文本分类、信息抽取…

Java开发经验——阿里巴巴编码规范实践解析6

摘要 本文深入解析了阿里巴巴编码规范在数据库设计和Java开发中的实践应用。详细阐述了数据库字段命名、类型选择、索引命名等规范,以及Java POJO类的对应规范。强调了字段命名的重要性,如布尔字段命名规则、表名和字段名的命名禁忌等。同时&#xff0c…

工业自动化实战:基于 VisionPro 与 C# 的机器视觉 PLC 集成方案

一、背景介绍 在智能制造领域,机器视觉检测与 PLC 控制的无缝集成是实现自动化生产线闭环控制的关键。本文将详细介绍如何使用 C# 开发上位机系统,实现 Cognex VisionPro 视觉系统与西门子 S7 PLC 的数据交互,打造高效、稳定的工业检测方案。…

C++ —— B/类与对象(中)

🌈个人主页:慢了半拍 🔥 创作专栏:《史上最强算法分析》 | 《无味生》 |《史上最强C语言讲解》 | 《史上最强C练习解析》|《史上最强C讲解》 🏆我的格言:一切只是时间问题。 ​ 目录 一、类的6个默认成员…

AXI协议乱序传输机制解析:提升SoC性能的关键设计

AXI 协议 Out-of-Order 传输机制 概述 AXI (Advanced eXtensible Interface) 协议支持乱序传输 (Out-of-Order) 机制,这是一种重要的性能优化特性,允许数据传输不按照发起顺序完成,从而提高总线带宽利用率和系统整体性能。 基本原理 通道…

Qt实现csv文件按行读取的方式

Qt实现csv文件按行读取的方式 场景:我有一个保存数据的csv文件,文件内保存的是按照行保存的数据,每行数据是以逗号为分隔符分割的文本数据。如下图所示: 现在,我需要按行把这些数据读取出来。 一、使用QTextStream文本流的方式读取 #include <QFile>void readfil…

进行性核上性麻痹健康护理全指南:从症状管理到生活照护

进行性核上性麻痹&#xff08;PSP&#xff09;是一种罕见的神经退行性疾病&#xff0c;主要影响运动、平衡及眼球运动功能&#xff0c;常表现为步态不稳、吞咽困难、眼球上视受限、情绪改变等。由于目前尚无根治方法&#xff0c;科学的健康护理对延缓病情进展、提升患者生活质量…

openFuyao开源发布,建设多样化算力集群开源软件生态

openFuyao 开源发布 随着 AI 技术的高速发展&#xff0c;算力需求呈爆发式增长&#xff0c;集群已成为主流生产方式。然而&#xff0c;当前集群软件生态发展滞后于硬件系统&#xff0c;面临多样化算力调度困难、超大规模集群软件支撑不足等挑战。这些问题的根源在于集群生产的…

第四十五节:目标检测与跟踪-Meanshift/Camshift 算法

引言 在计算机视觉领域,目标跟踪是实时视频分析、自动驾驶、人机交互等应用的核心技术之一。Meanshift和Camshift算法作为经典的跟踪方法,以其高效性和实用性广受关注。本文将从原理推导、OpenCV实现到实际案例,全面解析这两种算法的核心思想与技术细节。 一、Meanshift算法…