Linux Shell基础实操小结
2026/7/10 7:14:00 网站建设 项目流程

一、前言

本次实操围绕Shell脚本入门核心知识点完成命令落地验证,覆盖.sh脚本编写、Shell变量用法、wc文本统计、四类数学运算、命令退出状态码五大模块。本文梳理相关概念、各命令参数用法与实操运行结果,搭建系统化的Shell入门知识框架,所有操作均在Xshell中完整实操并留存运行截图。

二、分模块知识点解析与实操演示

2.1 Shell脚本(.sh文件)基础

概念理解

Shell脚本统一使用 .sh 作为文件后缀,本质是批量存储Linux命令的文本文件。借助bash解释器,脚本可以自上而下自动批量执行多条指令,省去终端手动逐条输入命令的重复操作。脚本首行 #!/bin/bash 被称为shebang声明,作用是指定bash作为脚本的解析程序。

完整实操流程

  1. 在终端创建专属工作目录,切换至该目录:

bash

mkdir -p ~/zz/sh_script && cd ~/zz/sh_script

  1. 使用vim编辑器新建退出码测试脚本exit_test.sh,输入命令 vim exit_test.sh ;按下i进入编辑模式,写入完整脚本代码:

bash

#!/bin/bash

定义变量var赋值5

var=5
echo “The answer is $var”
exit $var

  1. 编辑完成后按下Esc,输入 :wq 保存文件并退出vim编辑器。
  2. 执行脚本命令 bash exit_test.sh ,脚本运行完毕后输入 echo $? ,读取脚本自定义的退出状态码。

实际应用场景

常用于服务器定时任务、批量运维操作、重复性工作自动化,是Linux运维最基础的自动化工具。

2.2 Shell变量与$取值语法

概念理解

Shell中包含两类变量:一是自定义变量,由使用者自行定义赋值,用于存储临时数据;二是系统环境变量,由系统预先配置、全局可用,例如PATH变量用于指定系统检索可执行程序的目录。符号 $ 是Shell固定的变量取值标识符,通过 $变量名 的格式读取变量存储的数据,可单独打印,也能嵌入字符串拼接输出。

实操代码与运行效果

bash

自定义变量赋值

name=“shell作业测试”
age=20

使用$读取变量并输出

echo “名称:name,数值:name,数值:name,数值:age”

查看系统环境变量PATH

echo $PATH

语法硬性规范

变量赋值时,等号 = 左右不能添加空格;若字符串内容包含空格、特殊符号,必须使用双引号包裹完整内容。

2.3 wc文本统计命令

概念理解

wc全称word count,专门用于对文本文件进行行数、单词、字符字节的量化统计,是日志排查、批量文本统计工作中高频使用的命令,核心参数整理如下:

参数名 核心使用用途
-l(最常用) 统计目标文件包含的文本总行数
-w 以空格为分隔,统计文件内单词总数
-c 统计文件整体字节(字符)占用数量

实操演示

创建包含3行测试内容的demo.txt文本,分别使用三类参数执行统计命令:

bash

创建测试文本

cat > demo.txt << EOF
第一行shell文本
第二行测试内容
第三行收尾文字
EOF

统计文件行数

wc -l demo.txt

统计文件单词数量

wc -w demo.txt

统计文件字符字节数

wc -c demo.txt

典型使用场景

统计日志文件总行数、批量统计文本条目数量。

2.4 Shell四类数学运算工具(expr、[]、(( ))、bc)

概念与适用边界区分

  1. expr:Shell早期整数运算工具,运算符左右必须添加空格,乘法符号 * 需要使用反斜杠 \ 转义,语法繁琐,仅老旧脚本中较为常见。
  2. $[] :轻量化整数运算写法,无需转义特殊符号,代码简洁,但部分低版本Shell兼容性一般。
  3. $(( )) :整数运算兼容性最强,全版本Shell均可正常运行,是日常整数运算的首选写法。
  4. bc:唯一支持浮点(小数)高精度计算的工具,搭配 scale=数值 可自定义小数保留位数,适配小数计算需求;expr、[]、(( ))仅支持整数运算。

分工具实操代码

bash

1.expr整数运算

expr 10 + 3
expr 10 * 3
expr 10 - 3
expr 10 / 3

2.$[]整数运算

echo $[10+3]
echo $[10*3]

3.$(( ))整数运算

echo $((10+3))
echo $((10*3))

4.bc浮点小数运算

echo “scale=2;10/3” | bc
echo “3.14*2” | bc

选型建议

日常整数运算优先使用 $(( )) ;涉及小数、高精度数值计算统一选用bc;维护老旧脚本时可使用expr。

2.5 内置变量$?(命令退出状态码)

概念理解

Linux系统为每一条执行完毕的终端命令、Shell脚本自动分配退出状态码,状态码存储在系统内置只读变量 $? 中,通用判定规则:

  1. 返回值=0:上一条命令/脚本无报错,正常执行完毕
  2. 返回值≠0:程序出现异常,例如文件不存在、权限不足、语法错误等故障
    在Shell脚本中可以使用 exit [自定义数字] 语法,手动设定脚本结束后的退出码,供上层程序判断脚本运行是否成功,本次课件示例手动指定退出码为5。

分层实操验证

  1. 执行正常无报错指令 ls ,输入 echo $? ,输出结果为0;执行访问不存在文件的报错指令 ls notexist.txt ,再次输入 echo $? ,输出非0异常数字。

  2. 复用前文编写的exit_test.sh脚本,校验手动自定义退出码等于5的运行效果。

落地场景

Shell脚本分支逻辑判断、定时任务失败告警,依靠$?读取上一步任务运行状态。

三、整体Shell入门知识框架汇总

  1. 脚本层:后缀为.sh的脚本文件批量封装多条命令,依靠bash解释执行,实现运维自动化。
  2. 数据存储层:分为自定义变量与系统环境变量存储数据,使用 $ 语法完成变量取值引用。
  3. 文本分析层:wc命令通过-l、-w、-c三类参数,从行数、单词、字节维度批量统计文本数据。
  4. 数值计算层:整数运算优先选择 $(( )) ,小数浮点计算使用bc,老旧脚本兼容场景可选用expr。
  5. 异常判断层:通过内置变量$?读取命令退出码,exit关键字可手动自定义脚本退出标识,实现脚本运行状态监控与故障判定。

四、实操踩坑总结

  1. 使用expr运算时,乘法符号未添加转义符 \ 、运算符两侧缺少空格,会直接触发语法报错。
  2. Shell变量赋值时,等号 = 两侧误输入空格,系统会判定为非法指令,运行失败。
  3. 使用bc做除法运算时,未配置scale参数,小数部分会被直接截断,丢失浮点精度。
  4. 脚本自定义退出码不建议设置128及以上数值,该区间为系统预留信号码,容易造成状态判定混淆。

五、全文小结

本次实操完整完成课件全部知识点的Xshell落地操作,厘清了不同Shell语法的适用场景与选型边界。简单自动化工作可编写.sh脚本封装指令;动态数据存储与读取依托变量实现;文本批量统计场景优先使用wc;根据整数、浮点计算需求区分运算工具;依靠退出状态码完成脚本运行成败监控,搭建起一套完整、清晰的Shell基础入门知识体系。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询