Bash 脚本常用命令

ops/2024/10/20 0:37:32/

一、基础命令

  1. echo:输出内容到屏幕或文件。

示例:输出“Hello, World!”到屏幕。

echo "Hello, World!"
  1. pwd:显示当前工作目录。

示例:查看当前目录路径。

pwd
  1. cd:改变当前工作目录。

示例:切换到用户主目录。

cd ~
  1. ls:列出目录内容。

示例:列出当前目录所有文件和文件夹。

ls

二、文件操作

  1. cat:查看文件内容。

示例:查看文件example.txt的内容。

cat example.txt
  1. grep:在文件中搜索指定内容。

示例:在example.txt中搜索包含“error”的行。

grep "error" example.txt
  1. awk:处理文本,读取文件字段。

示例:读取data.txt文件的第一列(默认以空格或制表符分隔)。

awk '{print $1}' data.txt
  1. sed:流编辑器,用于对输入流(文件或管道)进行基本的文本转换。

示例:将example.txt中所有的“apple”替换为“orange”。

sed 's/apple/orange/g' example.txt
  1. 读取文件示例

在 Bash 脚本中,你可以使用 grepawk 或者 sed 来读取 gradle.properties 文件的某个字段内容。这里是一个使用 grepawk 的示例:

假设你有一个 gradle.properties 文件,内容如下:

versionName=1.0.0
versionCode=1
someOtherProperty=value

如果你想读取 versionName 字段的值,你可以使用以下 Bash 脚本:

#!/bin/bash# 指定gradle.properties文件的路径
GRADLE_PROPERTIES_FILE="path/to/your/gradle.properties"# 使用grep和awk读取versionName字段的值
VERSION_NAME=$(grep "versionName" "$GRADLE_PROPERTIES_FILE" | awk -F'=' '{print $2}')# 打印读取到的值
echo "versionName: $VERSION_NAME"

在这个脚本中:

  • grep "versionName" "$GRADLE_PROPERTIES_FILE" 会搜索包含 versionName 的行。
  • awk -F'=' '{print $2}' 会以 = 作为字段分隔符,并打印出第二个字段的值,也就是 versionName 对应的值。

三、字段操作示例

假设我们有一个名为data.txt的文件,内容如下:

John 25 Engineer
Jane 30 Doctor
Bob 28 Lawyer
  1. 读取某个文件的字段

读取data.txt中每个人的名字(第一列):

awk '{print $1}' data.txt
  1. 改写某个文件的字段

data.txt中每个人的年龄(第二列)增加 5 岁:

awk '{$2 += 5; print}' data.txt > modified_data.txt

这里使用了awk的算术运算功能,$2 += 5表示将第二列的值增加 5,然后print输出整行内容到modified_data.txt

四、条件判断和循环

Bash 脚本中也经常用到条件判断和循环结构。

  1. if:条件判断。

示例:检查文件是否存在。

if [ -f example.txt ]; thenecho "File exists."
elseecho "File does not exist."
fi
  1. for:循环遍历。

示例:遍历当前目录下的所有文件。

for file in *; doecho "$file"
done
  1. while:当条件为真时循环。

示例:从 1 数到 5。

count=1
while [ $count -le 5 ]; doecho "$count"count=$((count + 1))
done

五、其他常用命令

  1. touch:创建空文件或更新文件时间戳。

示例:创建一个新文件newfile.txt

touch newfile.txt
  1. rm:删除文件或目录。

示例:删除文件example.txt

rm example.txt
  1. cp:复制文件或目录。

示例:将file1.txt复制到file2.txt

cp file1.txt file2.txt
  1. mv:移动或重命名文件或目录。

示例:将file1.txt重命名为file2.txt

mv file1.txt file2.txt

http://www.ppmy.cn/ops/15557.html

相关文章

ruoyi-nbcio-plus基于vue3的flowable的websocket消息组件的升级修改(一)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a…

MySQL—MySQL的存储引擎之InnoDB

MySQL—MySQL的存储引擎之InnoDB 存储引擎及种类 存储引擎说明MyISAM高速引擎,拥有较高的插入,查询速度,但不支持事务InnoDB5.5版本后MySQL的默认数据库存储引擎,支持事务和行级锁,比MyISAM处理速度稍慢ISAMMyISAM的…

Mysql个人总结

前言 又来水字数啦,这次主要讲一下MySQL的常用概念,难点的就必须上项目讲解了,而且比较基础面试基本都会问一些,用的话,不少优化都从这里入手 操作数据库 1、创建数据库 CREATE DATABASE [IF NOT EXISTS] 数据库名;…

安信可 ESP_01SWIFI模块的使用 (电脑通过usb转tll模块连接wifi模块进行调试)

一:需要用到的模块 (1)安信可的ESP_01wifi模块 ESP-01是深圳安信可科技基于ESP8266芯片开发的串口wifi模块,模组集成了透传功能,即买即用,支持串口指令集,用户通过串口即可实现网络访问…

爬虫抓取网站数据

Fiddler 配置fiddler工具结合浏览器插件 配置fiddler Tools--Options 抓包技巧 谷歌浏览器开启无痕浏览,使用SwitchyOmega配置好代理端口 Ctrl x 清理所有请求记录,可以删除指定不需要日志方便观察 设置按请求顺序 观察cookie,观察请求hesder cookie和row返回结果 Swit…

Spring-基于xml自动装配

版本 Spring Framework 6.0.9​ 1. 定义 Spring IoC容器在无需显式定义每个依赖关系的情况下,根据指定的策略,自动为指定的bean中所依赖的类类型或接口类型属性赋值。 2. 关键配置元素 BeanDefinitionParserDelegate类定义了autowire属性的属性值&…

Python-面向对象(类的组成,特殊方法和参数,私有化)

面向对象,强调的是对象(实体)面向对象是一种思想,更加符合人的思维习惯面向对象使复杂的问题简单化了面向对象的出现,让曾经在过程的执行者,变成了对象的指挥者 一.类的组成 类可以描述世间万物,类都需要有类名&#…

python之schedule

在Python中,可以使用schedule模块来执行定时任务。这个模块提供了简单易用的API,可以让你按照指定的时间间隔或特定时间点执行函数或任务。 首先,需要使用pip安装schedule模块: pip install schedule下面是一个简单的例子&#…