2026/4/17 2:09:02
网站建设
项目流程
兰州网站开发,宣传片制作要求说明,网站运营与建设作业,网站服务器在哪Shell 核心概念
#xff08;1#xff09;定义与定位
Shell 是用户与 Linux 操作系统之间的命令行接口#xff0c;本质是 “对 Linux 命令的逻辑化处理”#xff0c;可接收并执行用户输入的命令#xff0c;支持批处理#xff0c;占用资源少、效率高。它与 GUI 并列…Shell 核心概念1定义与定位Shell 是用户与 Linux 操作系统之间的命令行接口本质是 “对 Linux 命令的逻辑化处理”可接收并执行用户输入的命令支持批处理占用资源少、效率高。它与 GUI 并列是操作系统的重要交互方式主流版本为 Bash Shell。2学习意义提升工作效率适用于服务监控、部署、日志分析、数据备份等运维场景实现自动化操作求职需求多数互联网公司后端开发岗位要求掌握 Shell 脚本语言互补性与 Python 搭配Shell 适合简单自动化任务Python 适合复杂业务逻辑开发。Shell 入门Hello World1核心步骤新建脚本文件touch helloworld.sh扩展名.sh仅为标识不影响执行添加执行权限chmod x helloworld.sh编写脚本通过vim编辑文件首行#!/bin/bash指定 Shell 类型echo为输出命令bash运行#!/bin/bash echo helloworld! # # 开头为注释运行脚本./helloworld.sh需加./表示当前目录避免系统在 PATH 中查找。Shell 变量1变量分类自定义变量用户自行定义仅当前 Shell 实例有效命名规则字母 / 数字 / 下划线组成首字符不能为数字无标点和空格不使用 Bash 关键字环境变量Linux 预定义如PATH、HOME、SHELL用env命令查看直接通过$变量名使用如echo $HOMEShell 变量Shell 程序自带的变量部分为环境变量部分为局部变量保障 Shell 正常运行。2变量使用定义变量名值如nameSnailClimb引用$变量名如echo $name。Shell 字符串操作字符串是 Shell 核心数据类型支持单引号、双引号包裹操作灵活1单双引号区别单引号特殊符号如$、反引号无特殊含义原样输出双引号支持$变量引用、反引号命令执行、\转义其他符号原样输出。2常用操作拼接双引号中直接拼接hello, $name单引号需拼接变量hello, $name长度${#字符串}如echo ${#name}或expr length $字符串截取${字符串:起始索引:长度}如(${str:0:10}截取前 10 字符或通过#/##/%/%%按匹配规则截取如${var##*/}截取路径中文件名。Shell 数组Bash 仅支持一维数组无大小限制创建数组名(元素1 元素2 ...)如array(1 2 3 4 5)长度${#数组名[]}或${#数组名[*]}访问${数组名[索引]}索引从 0 开始如echo ${array[2]}操作unset 数组名[索引]删除指定元素unset 数组名删除整个数组遍历for i in ${数组名[]}; do echo $i; done。Shell 基本运算符Shell 支持 6 类运算符需通过特定格式使用1算术运算符常用加、-减、*乘需转义\*、/除、%取余用法通过expr命令如valexpr $a 或((表达式))如$((a*b))。2关系运算符仅支持数字常用-eq等于、-ne不等于、-gt大于、-lt小于、-ge大于等于、-le小于等于用法if [ $a -eq $b ]; then ... fi。3其他运算符逻辑运算符与、||或需用[[ ]]包裹如[[ $a -lt 100 $b -gt 50 ]]字符串运算符相等、!不等、-z长度为 0、-n长度非 0文件运算符-f普通文件、-d目录、-r可读、-w可写、-x可执行、-e存在如if [ -f $file ]; then ... fi。Shell 流程控制1if-elif-else 条件语句bash运行if [ 条件1 ]; then 执行语句1 elif [ 条件2 ]; then 执行语句2 else 执行语句3 fi注意条件表达式需用[ ]包裹运算符与变量间需空格。2for 循环语句列表循环for 变量 in 列表; do 执行语句; done如for loop in 1 2 3; do echo $loop; done数值循环for((i1; i5; i)); do 执行语句; done。3while 循环语句基本循环while(( 条件 )); do 执行语句; done如while(( $int5 )); do echo $int; let int; done无限循环while true; do 执行语句; done读取键盘while read 变量; do 执行语句; done需按CTRL-D退出。Shell 函数1无参数无返回值函数bash运行函数名(){ 执行语句 } # 调用 函数名2有返回值函数返回值通过return指定仅支持数字通过$?获取bash运行funWithReturn(){ return $((ab)) } funWithReturn echo 结果$?3带参数函数参数获取$1-$n第 1 到第 n 个参数、$#参数个数、$*所有参数拼接为字符串示例bash运行funWithParam(){ echo 第一个参数$1 echo 参数总数$# } funWithParam 1 2 3 # 调用时传入参数