### CentOS 7 中 Shell 脚本的使用与定时任务创建 #### Shell 命令与脚本基础 - **Shell 脚本环境变量**: - **系统环境变量**:位于`/etc/profile`文件中,适用于系统中的所有用户。 - **用户环境变量**:位于用户家目录下的`.bash_profile`文件中,仅适用于特定用户。 - **位置变量**:Bash 预先声明了 9 个位置变量 `$1` 至 `$9`,其中 `$0` 表示脚本名称本身。这些变量在运行脚本时可以通过命令行参数传递。例如,在脚本中,你可以通过如下方式使用这些变量: ```bash #!/bin/bash echo "$0" # 输出脚本名称 echo "$1" # 输出第一个参数 echo "$3" # 输出第三个参数 echo "$2" # 输出第二个参数 ``` 当我们调用这个脚本时,如 `sh demo01.sh aabbccdd`,输出的结果将会是: ``` demo01.sh aa cc bb ``` - **预定义变量**: - `$0`:表示脚本名称。 - `$!`:表示执行该脚本的进程编号(PID)。 - `$$`:表示当前进程号。 - `$#`:表示当前 shell 的参数个数。 - `$*`:显示所有参数内容(整体显示)。 - `$@`:显示所有参数内容(逐个显示)。 - `$?`:判断程序退出状态,如果返回 0 则代表正常退出,返回 1 表示失败。 - **自定义变量**:定义变量的基本语法是 `name=value`,注意等号两边不能有空格,并且在使用变量时需要在其前面加上 `$` 符号。 - **逻辑符号**: - `&&`:逻辑与,只有当 cmd1 成功执行后才执行 cmd2。 - `||`:逻辑或,只有当 cmd1 执行失败时才执行 cmd2。 - `;`:无论 cmd1 是否成功,都会执行 cmd2。 - **运算符号**: - 使用 `$((表达式))` 或 `$[表达式]` 或 `expr 表达式` 进行数学运算。 - 示例:`echo $(($a + $b))` 或 `echo $[$a + $b]` 或 `expr $a \* $b`。 - **内置测试判断**: - `-eq`:等于。 - `-ne`:不等于。 - `-le`:小于等于。 - `-ge`:大于等于。 - `-lt`:小于。 - `-gt`:大于。 - `-z`:字符串长度为空。 - `-n`:字符串长度不为空。 - `-e`:文件名存在。 - `-r`:文件可读。 - `-w`:文件可写。 - `-x`:文件可执行。 - `-s`:文件至少存在一个字符。 - `-d`:文件是目录。 - `-f`:文件是普通文件。 - `-b`:文件是块特殊文件。 - 使用 `!`、`-a` 和 `-o` 作为逻辑运算符进行条件连接。 - **时间操作**: - 使用 `date` 命令进行时间格式化或修改。 - 示例:`date "+%Y%m%d%H%M"` 将输出日期和时间的组合。 - 修改时间:`date -s "2015-05-09 10:20:30"`。 #### Shell 脚本书写规范 - 脚本通常以 `.sh` 结尾。 - 脚本开头需加入 `#!/bin/bash` 表明这是 bash shell 脚本。 - CentOS 默认使用 bash 脚本类型。 #### 循环结构 - **For 循环**: - `for 变量 in 值1 值2 ... 值n; do 命令序列; done` - `for (( 初始化变量; 循环条件判断; 运算 )); do 命令序列; done` - **While 循环**: - `while [ 条件 ]; do 命令序列; done` - `while read -r line; do 命令序列; done` #### 定时任务的创建 在 CentOS 7 中,定时任务的创建主要通过 cron 服务实现。cron 是 Linux 下的标准周期性任务调度工具,能够帮助用户执行重复性的任务,比如定期备份数据、定时发送邮件等。 - **基本概念**: - `crontab` 命令用来编辑定时任务。 - 每个用户都有自己的 crontab 文件,位于 `/var/spool/cron/username`。 - **crontab 文件格式**: - 每行定义一个任务,格式为:`分钟 小时 月份 月份中的哪一天 星期几 命令`。 - 示例:`0 3 * * * /path/to/script.sh` 表示每天凌晨 3 点执行 script.sh。 - **设置定时任务**: - 使用 `crontab -e` 编辑 crontab 文件。 - 在文件中添加任务。 - 保存并退出编辑器。 - **常用选项**: - `crontab -l`:列出当前用户的定时任务。 - `crontab -r`:删除当前用户的定时任务列表。 #### 总结 通过本文的介绍,我们详细了解了 CentOS 7 中 shell 脚本的基础知识、循环结构、以及如何创建定时任务。这些技能对于日常系统管理和自动化运维工作至关重要。无论是简单的文件处理还是复杂的系统管理任务,shell 脚本都能提供强大的支持。同时,掌握定时任务的创建方法,可以帮助我们更高效地管理服务器资源和维护系统的稳定性。
剩余7页未读,继续阅读
- 粉丝: 4
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助