当前位置: 首页 > news >正文

常见的 Bash 命令及简单脚本

常见的 Bash 命令及简单脚本

一、常用 Bash 命令
  1. 文件操作

    • 列出文件:ls(加 -l 显示详情,-a 显示隐藏文件)
    • 切换目录:cd 目录名cd .. 返回上级)
    • 复制文件:cp 源文件 目标路径
    • 移动/重命名:mv 旧文件 新文件
    • 删除文件:rm 文件名-r 删除目录)
  2. 文本处理

    • 查看文件:cat 文件名
    • 搜索文本:grep "关键词" 文件名
    • 编辑文件:nano 文件名vim 文件名
  3. 系统信息

    • 当前路径:pwd
    • 进程查看:ps aux
    • 磁盘空间:df -h
    • 系统监控:top
  4. 权限管理

    • 修改权限:chmod 权限值 文件名(如 chmod +x script.sh 添加执行权)
    • 修改所有者:chown 用户:组 文件名

二、简单 Bash 脚本示例

脚本结构:

  1. 首行声明解释器:#!/bin/bash
  2. 添加注释(# 开头)
  3. 逐行编写命令
  4. 保存为 .sh 文件
  5. 赋予执行权限:chmod +x 脚本名.sh
  6. 运行:./脚本名.sh
示例 1:备份脚本
#!/bin/bash
# 备份指定目录到 /backup
source_dir="/data"
backup_dir="/backup"
timestamp=$(date +"%Y%m%d_%H%M%S")  # 获取时间戳
tar -czf "${backup_dir}/backup_${timestamp}.tar.gz" "$source_dir"
echo "备份完成!保存至 ${backup_dir}"
示例 2:日志清理脚本
#!/bin/bash
# 删除超过 30 天的日志
log_dir="/var/log"
find "$log_dir" -name "*.log" -mtime +30 -exec rm -f {} \;
echo "已清理过期日志"
示例 3:计算器脚本
#!/bin/bash
# 计算两数之和
read -p "输入第一个数: " num1
read -p "输入第二个数: " num2
sum=$((num1 + num2))  # 算术运算
echo "结果: $num1 + $num2 = $sum"

三、脚本编写技巧
  1. 变量使用

    • 定义变量:变量名=值无空格
    • 引用变量:$变量名${变量名}
  2. 条件判断

    if [ 条件 ]; then命令
    elif [ 条件 ]; then命令
    else命令
    fi
    

    常用条件

    • 文件存在:[ -f 文件名 ]
    • 目录存在:[ -d 目录名 ]
    • 数值比较:[ $a -gt $b ](大于)
  3. 循环控制

    for 变量 in 列表; do命令
    done
    
    while [ 条件 ]; do命令
    done
    

提示:使用 set -e 可使脚本遇到错误时自动退出,避免后续错误执行。

http://www.xdnf.cn/news/1325845.html

相关文章:

  • C语言实战:从零开始编写一个通用配置文件解析器
  • SpringAI——向量存储(vector store)
  • 电子电气架构 --- 软件项目成本估算
  • UE5 PCG 笔记(一)
  • 零基础数据结构与算法——第八章 算法面试准备-数组/字符串/链表/树/动态规划/回溯
  • JVM之Java内存区域与内存溢出异常
  • Python + 淘宝 API 开发:自动化采集商品数据的完整流程​
  • 8.19作业
  • 星图云开发者平台新功能速递 | 微服务管理器:无缝整合异构服务,释放云原生开发潜能
  • 部署tomcat应用时注意事项
  • 数据迁移:如何从MySQL数据库高效迁移到Neo4j图形数据库
  • 高性能AI推理与工作站GPU:DigitalOcean L40s、RTX 6000 Ada与A6000全解析
  • UniApp 微信小程序之间跳转指南
  • Leetcode 343. 整数拆分 动态规划
  • 【最新版】CRMEB Pro版v3.4系统源码全开源+PC端+uniapp前端+搭建教程
  • LLM 中 token 简介与 bert 实操解读
  • 大语言模型中的归一化实现解析
  • Vim笔记:缩进
  • AiPPT怎么样?好用吗?
  • Qt密码生成器项目开发教程 - 安全可靠的随机密码生成工具
  • Orbbec---setBoolProperty 快捷配置设备行为
  • Go高效复用对象:sync.Pool详解
  • JavaScript 性能优化:new Map vs Array.find() 查找速度深度对比
  • openldap安装 -添加条目
  • 【什么是非晶合金?非晶电机有什么优点?】
  • RecSys:粗排模型和精排特征体系
  • 图解快速排序C语言实现
  • “道法术器” 思维:解析华为数字化转型
  • Lua学习记录 - 自定义模块管理器
  • 数据库:表和索引结构