从0开始学习shell脚本
了解Shell和Shell脚本
Shell:Shell是一个命令解释器,用来执行用户输入的命令。常用的Shell包括Bash、Zsh、Ksh等。Linux默认的Shell通常是Bash。
Shell脚本:Shell脚本是由一系列命令组成的文件,脚本可以运行一连串命令,达到自动化目的。
Shell脚本基础语法
创建并执行脚本
# 创建一个脚本文件
touch my_script.sh
chmod +x my_script.sh # 赋予执行权限# 脚本文件内容
#!/bin/bash # 指定脚本解释器为bash
echo "Hello, World!" # 打印字符串# 执行脚本
./my_script.sh
变量和常用运算符
# 定义变量(等号两边不能有空格)
name="Shell Scripting"# 访问变量(前面需要加$)
echo "I am learning $name"# 数字运算(使用expr)
num1=5
num2=3
sum=$(expr $num1 + $num2)
echo "The sum is $sum"
条件判断
# 数值比较
if [ $num1 -gt $num2 ]; thenecho "$num1 is greater than $num2"
fi# 字符串比较
str1="hello"
str2="world"
if [ "$str1" != "$str2" ]; thenecho "$str1 is not equal to $str2"
fi
循环
# for 循环
for i in {1..5}; doecho "Loop $i"
done# while 循环
count=1
while [ $count -le 5 ]; doecho "Count is $count"count=$(expr $count + 1)
done
常用Shell命令
- 文件和目录管理:
ls、cd、mkdir、rm、mv、cp - 文本处理:
cat、echo、grep、sed、awk - 进程管理:
ps、top、kill - 文件权限:
chmod、chown
Shell脚本中的进阶技术
函数
# 定义函数
my_function() {echo "Hello from function"
}# 调用函数
my_function
重定向和管道
# 将输出重定向到文件
echo "Hello" > output.txt # 覆盖写入
echo "World" >> output.txt # 追加写入# 使用管道传递命令输出
cat file.txt | grep "text"
实践小项目
批量重命名文件
#!/bin/bash
# 把目录中的所有txt文件重命名为file_前缀
for file in *.txt; domv "$file" "file_$file"
done
监控磁盘使用情况
#!/bin/bash
# 检测根目录的磁盘使用情况
used=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
if [ $used -gt 80 ]; thenecho "Warning: Disk usage is over 80%"
fi
相关文章:
从0开始学习shell脚本
了解Shell和Shell脚本 Shell:Shell是一个命令解释器,用来执行用户输入的命令。常用的Shell包括Bash、Zsh、Ksh等。Linux默认的Shell通常是Bash。 Shell脚本:Shell脚本是由一系列命令组成的文件,脚本可以运行一连串命令ÿ…...
官方工具重装Windows 11当前版本 /绕过硬件检查/免U盘
官方工具重装Windows 11当前版本 /绕过硬件检查/免U盘 官方工具重装Windows 11当前版本 /绕过硬件检查/免U盘_win11安装跳过检测-CSDN博客...
JavaEE初阶---网络原理/UDP服务器客户端程序
文章目录 1.网络初识2.网络编程2.1TCP/UDP区别介绍2.2UDP的socket api使用2.3UDP协议里面的服务器客户端程序 1.网络初识 网络和计算机类似:都是属于军用》民用; 网络诞生于美苏争霸时期,当时就感觉核战争一触即发,形式非常严峻…...
每天10个vue面试题(六)
1、对Vue设计原则的理解? 渐进式JavaScript框架:与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化…...
Qt:信号和槽
目录 关于信号 connect函数 关于connect connect的使用 自定义信号、自定义槽 自定义槽 第一种方式自定义槽 第二种方式自定义槽 自定义信号 信号槽 带参数的信号槽 参数个数一致的示例 参数个数不一致的示例 Q_OBJECT 信号和槽存在的意义 disconnect函数 使用…...
可以免费商用的字体下载
这里介绍一个开源仓库,收录的可以免费商用的字体,目前中文字体1308款,英文字体980款,共约2288多款字体。 Description Free fonts that can be used commercially.There are currently 1308 Chinese fonts and 980 English font…...
centos7之LVS-TUNNEL模式
介绍 优缺点以及适用场景 优点:能负载更多的Realserver减轻LB的压力。LVS和Realserver可以不再同一网段。 缺点:tun模式的开销比较大(出口流量大),性能不如DR模式。不支持端口转发。后端Realserver系统必须支持tunnel协议。 适用ÿ…...
Linux驱动开发(3):字符设备驱动
上一章节我们了解到什么是内核模块,模块的加载卸载详细过程以及内核模块的使用等内容。 本章,我们将学习驱动相关的概念,理解字符设备驱动程序的基本框架,并从源码上分析字符设备驱动实现和管理。 主要内容有如下五点:…...
刘艳兵-DBA023-控制文件是Oracle 数据库用来查找数据库文件,控制文件包含以下哪些信息:
控制文件是Oracle 数据库用来查找数据库文件,控制文件包含以下哪些信息: A 表空间信息 B 创建数据库的时间戳 C 有关数据文件、 联机重做日志文件、和归档重做日志文件的信息 D 数据库名称和数据库唯一标识符(DBID) E RMAN备份…...
Vue Scoped CSS深度解析:原理、误区与最佳实践
引言 在Vue开发中,Scoped CSS是一个强大而复杂的功能。它允许我们将样式限制在特定组件内,但同时也带来了一些细微的行为,可能导致意外的样式"泄漏"。本文将深入探讨Vue Scoped CSS的工作原理,解释常见的误区ÿ…...
744. 寻找比目标字母大的最小字母
目录 题目解法一解法二如何比较字符串letters.back()*upper_bound为什么要加* 题目 给你一个字符数组 letters,该数组按非递减顺序排序,以及一个字符 target。letters 里至少有两个不同的字符。 返回 letters 中大于 target 的最小的字符。如果不存在这…...
浅谈QT中Tab键的切换逻辑
浅谈QT中Tab键的切换逻辑 无意中发现在输入界面中按下Tab键时,没有按照预想的顺序切换焦点事件,如下图所示 这个现象还是很有趣,仔细观察了下,默认的切换顺序是按照控件拖入顺序,那么知道了这个问题想要解决起来就很简…...
基于MoviNet检测视频中危险暴力行为
项目源码获取方式见文章末尾! 600多个深度学习项目资料,快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【Faster & Mask R-CNN模型实现啤酒瓶瑕疵检测】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生…...
《等保测评:抵御网络威胁的盾牌》
在网络空间的无垠战场上,网络安全威胁如同暗夜之狼,潜伏在每一个角落,随时准备对企业和个人发动致命一击。在这场没有硝烟的战争中,等保测评作为国家网络安全等级保护制度的重要组成部分,犹如坚固的盾牌,为…...
前端必知必会-JavaScript 对象属性
文章目录 JavaScript 对象属性访问 JavaScript 属性添加新属性删除属性嵌套对象 总结 JavaScript 对象属性 对象是无序的属性集合 属性是 JavaScript 对象中最重要的部分。 属性可以更改、添加、删除,有些属性是只读的。 访问 JavaScript 属性 访问对象属性的语…...
双11都有什么值得入手的好物?双十一最建议买的5样东西
双11的脚步逐步渐近,我们点开各大电商平台也可以看到,各个商家已经开始大激烈的促销大战,那么双十一作为一年之中最盛大的购物节,都有什么值得入手的好物呢?今天就给大家建议买的5样东西,从家电好物到生活用…...
Xcode 15.4 运行flutter项目,看不到报错信息详情?
Xcode升级后,遇到了奇怪的事情: 运行flutter项目,左侧栏显示有报错信息,但是点击并没有跳转出具体的error详情。【之前都会自己跳转出来的,升级后真的是无厘头】 方案: 点击左侧导航栏最右边的图标——>…...
AMD开始为基于RDNA的GPU开发自己的神经超采样和去噪技术
NVIDIA 的升级技术已经取得了长足的进步,这些技术解决了现代游戏在开启光线追踪时在苛刻场景中的性能问题。NVIDIA 开始实施各种光线追踪和升级技术后,AMD 和英特尔也紧随其后,推出了自己的 FSR 和 XeSS 升级方法。据报道,AMD 将跟…...
Python中的文件I/O操作
在Python编程中,文件I/O(输入/输出)是一个重要的主题,涉及如何读取和写入文件。无论是处理文本文件还是二进制文件,Python提供了简洁易用的接口。本文将介绍如何在Python中进行文件I/O操作,包括读取、写入和…...
.net framework 3.5sp1开启错误进度条不动如何解决
浏览器地址栏输入www.dnz9.com远程解决netframework问题 在Windows操作系统上安装或启用.NET Framework 3.5 SP1时,如果遇到进度条不动的问题,可能由多种原因引起。以下是一些可能的解决方案: 1. 使用Windows功能对话框 1.打开“控制面板”。…...
终极指南:如何在PC上完美运行PS4游戏?shadPS4模拟器完全解析
终极指南:如何在PC上完美运行PS4游戏?shadPS4模拟器完全解析 【免费下载链接】shadPS4 PS4 emulator for Windows,Linux,MacOS 项目地址: https://gitcode.com/gh_mirrors/shad/shadPS4 想要在个人电脑上重温《血源诅咒》、《如龙》等经典PS4游戏…...
别再用鼠标了!树莓派新手必学的20个命令行操作,5分钟上手
别再用鼠标了!树莓派新手必学的20个命令行操作,5分钟上手 第一次打开树莓派的终端时,那个闪烁的光标是不是让你想起了90年代的黑客电影?别担心,命令行不是程序员的专属工具。就像学骑自行车前总要拆掉辅助轮࿰…...
长期使用Taotoken Token Plan套餐在项目开发中的成本优势体会
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken Token Plan套餐在项目开发中的成本优势体会 在项目开发中,尤其是涉及大模型API调用的场景࿰…...
Gophish钓鱼页面制作指南:从克隆腾讯企业邮箱到数据收集
Gophish钓鱼页面制作实战:从企业邮箱克隆到数据捕获全流程 在企业安全防护体系中,钓鱼攻击模拟演练已成为检验员工安全意识的重要手段。作为开源钓鱼框架的标杆,Gophish以其模块化设计和易用性,成为红队演练的标配工具。本文将深…...
当记忆的碎片遇上密码学:如何用btcrecover找回丢失的比特币钱包访问权
当记忆的碎片遇上密码学:如何用btcrecover找回丢失的比特币钱包访问权 【免费下载链接】btcrecover An open source Bitcoin wallet password and seed recovery tool designed for the case where you already know most of your password/seed, but need assistan…...
Beyond Compare 5密钥生成指南:如何解决评估模式错误并快速激活
Beyond Compare 5密钥生成指南:如何解决评估模式错误并快速激活 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 当Beyond Compare 5的30天评估期结束后,许多用户会遇到&q…...
Triton Ascend 代码生成 Skill
【免费下载链接】cannbot-skills CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。 项目地址: https://gitcode.com/cann/cannbot-skills name: triton-op-coding description: > Triton Ascend 算子代码生…...
5分钟极速上手:B站视频转文字工具bili2text完整指南
5分钟极速上手:B站视频转文字工具bili2text完整指南 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 还在为整理B站视频内容而烦恼吗?每…...
别急着升级Android Studio!手把手教你降级AGP 8.3.0-alpha01到8.1.3,解决版本不兼容报错
别急着升级Android Studio!手把手教你降级AGP 8.3.0-alpha01到8.1.3,解决版本不兼容报错 接手一个Kotlin项目时,最令人头疼的莫过于刚打开就遭遇版本不兼容的红色报错。尤其当错误提示显示"项目使用了不兼容的Android Gradle插件版本(A…...
【实测可用 v 2.7.5】Open Claw 本地环境快速部署搭建攻略
✨ 核心亮点 零代码门槛|全程可视化|无需手动配环境|内置所有依赖 🔗 下载地址 https://xiake.yun/api/download/package/16?promoCodeIV8E496E2F7A 📝 前言 2026 年开源圈热门的「数字员工」OpenClaw(…...
