一、核心知识点概念与实操理解
(一)多命令组合执行
在终端中可以借助符号串联多条命令完成批量操作,分号用于顺序执行多条指令,无论前一条命令运行是否成功,后续命令都会依次执行,常用于一次性查看多项系统信息;管道符负责传递命令输出内容,将前一条指令输出的数据直接作为后一条指令的输入,实现数据流转处理,两条符号都可以直接在 Xshell 终端输入运行,无需写入脚本文件。
(二)Shell 脚本基础理论
Shell 脚本是批量存储 Linux 命令的文本文件,后缀统一使用 sh 方便识别,文件首行必须标注解释器声明语句,用于告知系统调用 bash 程序解析脚本内代码。新建的脚本文件默认不具备执行权限,存在两种运行方式,一种是直接调用解释器运行,不受权限限制;另一种是赋予文件执行权限后,通过文件路径直接启动脚本,两种方式都可在 Xshell 完整实操验证。
(三)echo 输出指令
echo 是终端基础打印工具,能够输出文字、变量内容,核心功能参数为 - n,作用是取消输出末尾自动换行效果,让后续命令输出内容和当前打印文字显示在同一行,优化终端展示排版,实操时可以搭配时间、用户查询命令直观对比换行与不换行的显示差异。
(四)变量相关知识
变量用于存储文本、数字类数据,分为系统预设环境变量和用户自定义变量。系统环境变量由系统自带,存储用户、目录、身份相关信息,可直接调取使用;自定义变量由使用者手动创建,赋值时等号前后不能添加空格,字符串内容建议使用引号包裹。调用变量时需要在变量名称前添加美元符号,若需要原样打印美元符号,要使用反斜杠完成转义。
命令替换是变量的特殊用法,能够将指令运行结果存入变量,存在两种书写格式,更推荐兼容性更强的括号写法,常用来提取系统时间生成自定义日志文件名,实操中可结合文件写入指令完成日志创建。
(五)文件行数统计工具 wc
wc 工具用于统计文件字符、单词、行数信息,最常用参数为 - l,仅单独统计文件总行数,既可以统计单个脚本文件长度,也能批量统计当前目录下全部脚本文件,在 Xshell 输入指令后会直接输出对应统计数字。
(六)数学运算实现方式
系统原生 shell 仅支持简易整数运算,复杂计算需要借助专用工具。整数运算有两种实现形式,一是使用 expr 工具,运算符前后必须留出空格,乘法符号需要额外转义;二是方括号运算语法,书写简洁无需转义符号,是日常更常用的写法。浮点小数运算需要依靠 bc 计算器,通过管道符将运算表达式传入工具,scale 关键字用来控制保留小数位数,该关键字必须写在运算式前方,否则小数设置不会生效。
(七)命令退出状态码
每一条终端指令、每一段脚本运行结束后都会生成状态码,数值范围在 0 至 255 之间,数字 0 代表程序正常执行完毕,非零数字代表运行异常。输入专用查询指令可以查看上一条操作对应的状态码,脚本中能够手动设置退出状态码,自定义数值用来标记脚本运行结果,方便后续区分执行成功或失败。
二、完整知识框架体系(命令用途与参数说明)
- 系统基础查询命令
date 指令主要查看系统当前日期时间,搭配格式字符可以自定义时间输出样式;who 指令查看当前登录系统的全部用户信息,包含账号、登录终端、登录 IP;echo 指令输出自定义内容,核心参数 - n 关闭自动换行,额外参数 - e 支持解析换行、制表符等转义字符;wc 指令统计文件内容,参数 - l 统计行数,参数 - w 统计单词数量,参数 - c 统计文件字节大小。 - 文件与权限操作命令
vim 工具用于新建、编辑脚本文本,进入编辑界面后切换插入模式输入代码,编辑完成保存退出即可生成脚本文件;chmod 指令修改文件操作权限,核心参数 u+x 为文件所有者开放执行权限;bash 指令直接调用解释器运行脚本,不需要提前配置权限;./ 文件路径是赋权后运行脚本的标准方式。 - 运算与程序控制工具
expr 工具完成整数加减乘除运算,运算符前后必须空格,乘法符号需要转义处理;bc 工具处理高精度浮点运算,scale 参数控制小数保留位数,支持交互式计算和脚本内管道计算;exit 放置在脚本末尾,自定义脚本运行结束后的退出状态码,数值限制在 0 到 255。 - 特殊语法与符号含义
分号作为多命令分隔符,实现多条指令顺序执行;管道符传递前后命令的输入输出数据;美元符号搭配变量名调取存储的数据;括号命令替换语法抓取指令运行结果;首行解释器声明语句固定脚本解析程序,是脚本文件必不可少的开头内容;$? 作为特殊内置变量,存储上一步操作生成的退出状态码。
三、Xshell 完整实操流程与运行结果描述 - 多命令组合实操
直接在终端输入分号连接的两条查询指令,回车后终端会先打印当前系统时间,再分行展示所有登录用户信息;输入管道符连接两条指令,终端最终仅输出登录用户信息,直观体现管道传递数据的运行逻辑。 - 基础打印脚本实操
使用 vim 工具创建脚本文件,写入时间和用户查询代码后保存退出,修改文件执行权限,通过路径启动脚本,终端输出内容和分号串联命令的运行效果完全一致。 - 美化输出脚本实操
新建脚本文件,使用带 - n 参数的 echo 指令编写提示文字,搭配时间、用户查询代码,赋权运行后,提示文字和系统时间会在同一行展示,后续登录用户信息单独分行,整体排版更加整洁清晰。 - 变量调用脚本实操
创建脚本调取系统内置环境变量,同时添加转义打印美元符号的语句,运行后依次输出当前登录账号、用户编号、用户家目录,最后一行原样打印 $HOME 文本,区分变量调取和符号转义两种用法。 - 命令替换日志脚本实操
新建脚本通过命令替换提取格式化日期,拼接生成专属日志文件名,借助重定向符号将系统时间、用户信息写入日志文件,打印日志全部内容后,统计当前脚本自身总行数,完整实现自动生成日志、统计文件长度的自动化流程。 - 数学运算脚本实操
整数运算脚本完成括号混合四则运算,运行后输出两组完全一致的整数结果,除法运算仅保留整数部分;浮点运算脚本调用 bc 工具,分别测试 scale 关键字前置和后置两种写法,能观察到仅前置设置小数位时计算结果会保留对应小数,后置设置不会生效,同时可以代入自定义变量完成浮点除法计算。 - 退出状态码脚本实操
编写脚本定义数字变量并打印内容,脚本末尾设置自定义退出码,运行脚本后终端打印预设数字,再输入状态码查询指令,终端输出和脚本自定义数值完全相同,验证自定义退出码功能生效。
四、实操避坑注意事项
所有脚本内的符号必须使用英文半角格式,中文引号、多余空格都会触发语法报错;变量赋值操作中等号两侧不能添加空格,系统会将空格识别为独立指令;expr 工具运算时乘法符号必须转义,方括号运算语法无需额外处理;通过文件路径运行脚本前,必须提前开放执行权限,调用 bash 解释器运行则无需配置权限;bc 工具设置小数位数的关键字必须写在运算表达式之前,否则参数不生效;自定义退出状态码只能填写 0 至 255 区间内的数字,超出范围系统会自动截断数值。