Linux学习笔记:shell编程要点
一、基础概念 shell:是一种编程语言,基于C语言,具有弱数据类型、无需声明、默认字符串类型等特性。它是Linux内部应用的理想工具,能够解释执行用户命令或程序,接收键盘输入,提供与Linux交互的方式。 shell脚本:是包含程序代码的文件,如命令和循环控制语句。计算机读取并执行文件中的代码,非交互方式运行。 shebang:是文本文件第一行前的字符,用于指定解释器,如#!/bin/sh表示使用bash解释器执行文件。
二、变量 局部变量:在shell脚本中定义的变量。 全局变量:与局部变量相对,如环境变量,在shell脚本外部也有效。 特殊变量:shell内置的、具有特殊功能的变量。
三、特殊参数与状态变量 特殊参数变量:用于传递参数,如$0、$1等。 特殊状态变量:用于查看命令执行的状态。
四、环境变量 定义:环境变量定义了shell的运行环境,如用户、PATH路径等。 配置文件:包含环境变量的配置文件及其使用方法。 检查与设置:检查环境变量的命令,以及撤销与设置只读变量的方法。
五、bash基础内置命令 echo:用于不换行输出,并解析特殊字符。 printf:用于打印格式化输出。 eval:用于执行命令字符串。 export:用于设置环境变量。 read:用于读取用户输入。 shift:用于调整位置参数。
六、shell变量处理 文本处理:涉及文本存储、变量存储以及复杂格式的处理。 for循环:可用于统计字符串长度等。 内置命令:使用内置命令处理变量通常效率更高。
七、案例 批量修改文件名:通过生成空文件、删除特定字符、使用echo和ls获取文件名以及for循环批量替换文件名等步骤实现。 删除过期数据:通过find命令找到过期文件,并使用xargs命令删除这些文件。
八、父子shell 查看层级:可以查看当前shell的父子层级关系。 开子shell:可以通过开子shell来处理耗时操作,以避免阻塞当前shell。 BASH_SUBSHELL变量:用于指示当前的shell层级。
九、内置与外置命令 内置命令:系统启动时加载,执行效率高,如cd、echo等。 外置命令:系统读取文件后加载内存,执行效率较低,如ls、grep等。外置命令通常位于/bin、/usr/bin、/sbin、/usr/sbin等目录下。