2024-10-23 03:22:54
Linux学习笔记(二十一):shell编程
一、基础概念
1. 什么是shell? shell是种编程语言,虽古老,但强大,基于C语言,特性包括弱数据类型、无需声明、默认字符串类型。Shell是Linux内部应用的理想工具,底层命令支持shell语句,结合grep、sed、awk进行高级用法。其作用为:解释执行用户命令或程序,接收键盘输入,提供与Linux交互的方式。
2. 什么是shell脚本?shell脚本是文件,包含程序代码,如命令和循环控制语句。计算机读取并执行文件中的代码,非交互方式运行,若存在问题,可能导致执行中断。
3. shebang shebang是文本文件第一行前的字符,指定解释器,如#!/bin/sh表示使用bash解释器执行文件。
4. 示例示例代码展示shell编程基本应用。
5. 变量规则定义变量规则,如无空格、非关键字、非数字开头等。
6. 变量类型说明变量类型,如age=18等。
7. 引号规则单引号、双引号、反引号及无引号的特性。
8. 变量作用域说明本地与全局变量,及特殊变量的用途。
9. 执行方式讨论不同shell环境。
10. 多命令执行shell脚本中的多命令执行。
二、shell的3种变量
1. 局部变量:shell脚本中定义的变量。
2. 全局变量:与局部变量相对,如环境变量。
3. 特殊变量:shell内置的、具有特殊功能的变量。
三、特殊参数与状态变量
特殊参数变量用于传递参数。
特殊状态变量用于查看命令状态。
常用特殊参数变量如$0、$1等。
四、环境变量详解
环境变量定义shell运行环境,如用户、PATH路径。
环境变量配置文件和使用方法。
检查环境变量命令。
撤销与设置只读变量。
查看环境变量关键字。
五、bash基础内置命令
echo:不换行输出,解析特殊字符。
printf:打印命令。
eval:执行命令。
exac:不创建子进程。
export、read、shift:命令功能。
六、shell变量处理
文本处理:文本存储、变量存储、复杂格式。
for循环统计字符串长度。
使用内置命令效率最高。
七、案例:批量修改文件名
生成空文件。
删除_finished字符。
使用echo `ls` 获取文件名。
for循环批量替换文件名。
八、案例:删除过期数据
删除7天以上的日志文件。
find命令找到文件。
xargs命令删除文件。
九、父子shell
查看父子shell层级。
开子shell处理耗时操作。
BASH_SUBSHELL变量指示shell层级。
嵌套子shell。
十、内置与外置命令
内置命令:系统启动时加载,执行效率高。
外置命令:系统读取文件,加载内存,执行效率较低。
外置命令路径:/bin、/usr/bin、/sbin、/usr/sbin。
待续...