当前位置: 首页 > 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.lryc.cn/news/625288.html

相关文章:

  • 量子计算和超级计算机将彻底改变技术
  • 记录Webapi Excel 导出
  • 【qml-4】qml与c++交互(类型多例)
  • 【CPP】一个CPP的Library(libXXXcore)和测试程序XXX_main的Demo
  • kkfileview预览Excel文件去掉左上角的跳转HTM预览、打印按钮
  • Spring Boot 全局异常处理
  • JVM参数优化
  • 《算法导论》第 29 章 - 线性规划
  • Matplotlib数据可视化实战:Matplotlib子图布局与管理入门
  • Day10--滑动窗口与双指针--2875. 无限数组的最短子数组,76. 最小覆盖子串,632. 最小区间
  • Hugging Face 核心组件介绍
  • 【牛客刷题】岛屿数量问题:BFS与DFS解法深度解析
  • Git的初步学习
  • 系统架构设计师-操作系统-避免死锁最小资源数原理模拟题
  • git 创用操作
  • [系统架构设计师]云原生架构设计理论与实践(十四)
  • linux系统装google chrome,amd64
  • 2025年5月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(六)
  • 应用缓存不止是Redis!——亿级流量系统架构设计系列
  • [系统架构设计师]信息系统架构设计理论与实践(十二)
  • 监督分类——最小距离分类、最大似然分类、支持向量机
  • 利用图数据库高效解决 Text2sql 任务中表结构复杂时占用过多大模型上下文的问题
  • Apache IoTDB:大数据时代时序数据库选型的技术突围与实践指南
  • 《算法导论》第 31 章 - 数论算法
  • 开源 C++ QT Widget 开发(二)基本控件应用
  • 解决 UniApp 自定义弹框被图片或 Canvas 覆盖的 Bug
  • 【datawhale组队学习】n8n TASK01
  • 软件测试覆盖率:真相与实践
  • Mysql——分库分表后id冲突解决方案(即分布式ID的生成方案)
  • Python 作用域 (scope) 与闭包 (closure)