Linux中Shell脚本的常用命令

article/2025/7/28 0:43:52

一、设置主机名称

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 master3545264124254352

按数值大小排序

按数值大小逆序排列

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

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

 [root@sakura 桌面]# vim master3:55:334:552:4264:5612:244:422:115:094:23:4252: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 2452425656124

使用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.hkcw.cn/article/yXLOmFHKCT.shtml

相关文章

Redisson学习专栏(二):核心功能深入学习(分布式锁,分布式集合,原子操作与计数器,事件与监听)

本文是“Redisson学习专栏”第二篇,聚焦其核心分布式功能实现原理与最佳实践 文章目录 前言:分布式系统核心能力实践一、分布式锁:高并发下的守卫者1.1 可重入锁 (Reentrant Lock)1.2 公平锁 (Fair Lock)1.3 联锁 (MultiLock)1.4 红锁 (RedLo…

学习路之PHP--easyswoole_panel安装使用

学习路之PHP--easyswoole_panel安装使用 一、新建文件夹二、安装三、改配置地址四、访问 IP:Port 自动进入index.html页面 一、新建文件夹 /www/wwwroot/easyswoole_panel 及配置ftp 解压easyswoole_panel源码 https://github.com/easyswoole-panel/easyswoole_panel 二、安…

基于分布式状态机的集装箱智能道口软件架构方法

集装箱码头对进出场道口的通过能力始终是要求最高的,衡量道口的直接指标为道口通行效率,道口通行效率直接体现了集装箱码头的作业效率以及对外服务水平,进而直接影响到码头的综合能力。所以,码头普遍使用智能道口实现24小时无人值…

2014药柜设计问题

1 题目描述 D题 储药柜的设计 储药柜的结构类似于书橱,通常由若干个横向隔板和竖向隔板将储药柜分割成若干个储药槽(如图1所示)。为保证药品分拣的准确率,防止发药错误,一个储药槽内只能摆放同一种药品。药品在储药槽中的排列方式如图2所示。…

c# 获取电脑 分辨率 及 DPI 设置

using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Runtime.InteropServices;/// <summary> /// 这个可以 /// </summary> class Program {static void Main(){//设置DPI感知try{SetProcessDpiAwareness(…

2025年渗透测试面试题总结-匿名[校招]红队攻防工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 匿名[校招]红队攻防工程师 1. 00截断的原理 2. Java回显通用思路及JDK差异 3. Redis利用姿势及环境差异 …

高级数据结构与算法期末考试速成记录

高级数据结构与算法期末考试速成记录 0.分治中的一些知识点 Master公式&#xff08;又称主定理&#xff0c;Master Theorem&#xff09;是一种用于快速求解分治递归算法时间复杂度 的数学工具&#xff0c;适用于递归式形如以下形式的算法&#xff1a; T ( n ) a T ( n b ) …

Telerik生态整合:Kendo UI for Angular组件在WinForms应用中的深度嵌入(一)

Telerik DevCraft包含一个完整的产品栈来构建您下一个Web、移动和桌面应用程序。它使用HTML和每个.NET平台的UI库&#xff0c;加快开发速度。Telerik DevCraft提供完整的工具箱&#xff0c;用于构建现代和面向未来的业务应用程序&#xff0c;目前提供UI for ASP.NET MVC、Kendo…

深入浅出程序设计竞赛(洛谷基础篇) 第十四章 搜索

文章目录 前言例14-1 四阶数独前置知识&#xff1a; 例14-2八皇后例14-3 kkksc03考前临时抱佛脚例14-4 马的遍历前置知识 例14-5 奇怪的电梯例14-6 Meteor Shower S习题14-1.1 选数例14-1 四阶数独前置知识&#xff1a; 例14-2八皇后例14-3 kkksc03考前临时抱佛脚例14-4 马的遍…

图书管理系统的设计与实现

湖南软件职业技术大学 本科毕业设计(论文) 设计(论文)题目 图书管理系统的设计与实现 学生姓名 学生学号 所在学院 专业班级 毕业设计(论文)真实性承诺及声明 学生对毕业设计(论文)真实性承诺 本人郑重声明:所提交的毕业设计(论文)作品是本人在指导教师的指导下,独…

【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤

在Java开发的世界里&#xff0c;选择一个强大的集成开发环境&#xff08;IDE&#xff09;是迈向高效编程的第一步。而IntelliJ IDEA无疑是Java开发者中最受欢迎的选择之一。它以其强大的功能、智能的代码辅助和简洁的用户界面&#xff0c;帮助无数开发者快速构建和部署Java项目…

医疗IT系统绝缘监测及故障定位,绝缘监测技术在医院关键区域的应用

医院作为重要的公共设施&#xff0c;其供配电系统的可靠性和安全性直接关系到患者的生命安全。为确保医院电力系统的稳定&#xff0c;GB/T 16895.24《建筑物电气装置》对医疗场所按用电的安全等级进行了细致的分类&#xff0c;并针对不同的类别推荐相应的电力系统配置。其中&am…

进程间通信及管道(理论)

目录 进程间通信介绍 进程间通信目的 进程间通信发展 进程间通信分类 管道 什么是管道 匿名管道 实例代码 用fork来共享管道原理 管道读写规则 管道特点 命名管道 创建一个命名管道 匿名管道与命名管道的区别 命名管道的打开规则 进程间通信介绍 进程间通信目的 数据传输&#…

如何安全地清洁 Windows10/11PC上的SSD驱动器

“我在 Windows 10 电脑上安装了新的 SSD&#xff0c;我要删除旧的 SSD 驱动器。但我不知道如何清洁电脑上的 SSD 驱动器。我想清除其中的所有内容。” 那么&#xff0c;您想知道如何在 Windows 10/11 PC 上清洁 SSD 驱动器吗&#xff1f;也许您只是想释放宝贵的空间并提高性能…

换ip是换网络的意思吗?怎么换ip地址

在数字化时代&#xff0c;IP地址作为我们在网络世界的"身份证"&#xff0c;其重要性不言而喻。许多人常将"换IP"与"换网络"混为一谈&#xff0c;实际上两者虽有联系却存在本质区别。本文将澄清这一概念误区&#xff0c;并详细介绍多种更换IP地址…

智能化能源管理系统在“双碳”背景下的新价值

安科瑞刘鸿鹏 摘要 2022年已并网的储能项目中,用户侧并网占比为8.36%,其中工商业储能规模为占比为98.6%。随着各省市的峰 谷价差拉大,部分省市可实现两充两放,工商业储能会更 加具有经济性,加上限电政策的影响,工商业储能将在 2023-2025年逐渐发展成主要的增长点&#xff…

带sdf 的post sim 小结

1.SDF文件主要内容 Delays&#xff08;module&#xff0c;device&#xff0c;interconnect&#xff0c;port&#xff09; Timing checks&#xff08;setup&#xff0c;hold&#xff0c;setuphold&#xff0c;recovery&#xff0c;removal&#xff0c;recrem&#xff09; Timing…

《JavaScript高级程序设计》读书笔记 34 - 代理基础

感谢点赞、关注和收藏! 上一篇类,这一篇进入书的第 9 章 - 代理与反射,首先是代理基础。 代理基础 代理是目标对象的抽象。从很多方面看,代理类似 C++指针,因为它可以用作目标对象的替身,但又完全独立于目标对象。目标对象既可以直接被操作,也可以通过代理来操…

《计算机仿真》——引领计算机仿真领域的学术前沿

期刊名称&#xff1a;计算机仿真 (Computer Simulation) 主办单位&#xff1a;中国航天科工集团公司第十七研究所 出版周期&#xff1a;月刊 出版地&#xff1a;北京市 语种&#xff1a;中文 开本&#xff1a;大16开 ISSN&#xff1a;1006-9348 CN&#xff1a;11-3724/TP 邮发代…

java-文件IO

文件IO 操作系统有一个专门的模块-文件系统&#xff0c;来管理文件。并提供了 api 供我们使用。 文件系统 使用 N叉树 来组织文件。 操作系统使用 “路径” 来描述文件的位置。路径的表示又分为 绝对路径 和 相对路径 绝对路径 &#xff1a;从树的的根节点&#xff08;Wind…