Linux Shell教程:命令与变量操作详解
需积分: 10 52 浏览量
更新于2024-07-16
收藏 937KB PDF 举报
"这是一份关于Linux Shell的讲义,主要涵盖了Shell的基础知识,包括变量、特殊位置参数变量以及各种Shell编程技巧。这份讲义旨在帮助读者理解和掌握Shell常用的基本命令,如awk、sed、read以及正则表达式等。此外,还涉及到环境变量与普通变量的使用,以及如何在不同的Shell进程中引用和操作这些变量。"
**Shell变量**
变量在Shell编程中扮演着重要角色,主要有以下几类:
1. **环境变量(全局变量)**:环境变量在整个Shell会话中都有效,包括父进程和由其启动的所有子进程。这些变量可以通过`export`命令导出,常见的环境变量如`PATH`、`HOME`等。用户可以自定义环境变量,并在配置文件中设定,例如`~/.bash_profile`、`~/.bashrc`、`/etc/profile`和`/etc/profile.d/`下的脚本。
2. **普通变量(局部变量)**:普通变量只在其被定义的Shell会话或函数内部有效,不会传递给子进程。它们在脚本或命令行中定义,生命周期有限。
**变量赋值**
变量赋值通常通过以下方式完成:
```bash
xxx=value
xxx='value'
xxx="value"
```
要注意的是,双引号允许保留变量扩展,而单引号会阻止扩展。
**特殊位置参数变量**
在Shell脚本中,有特殊的位置参数变量,如:
- `$1`、`$4`、`$9`:表示命令行参数的第1个、第4个和第9个值。
- `$#`:返回命令行参数的总数。
- `$0`:当前执行的脚本名。
- `$@` 和 `$*`:都表示所有命令行参数,但当与双引号结合时,`$@` 会保留每个参数的独立性,而 `$*` 则将所有参数作为一个整体。
**Shell进程中的特殊状态变量**
- `$$`:当前Shell进程的ID。
- `echo`, `eval`, `exec`: 这些是Bash内置的命令,分别用于输出、执行命令字符串和替换命令。
- `read`: 用于从标准输入读取数据并赋值给变量。
- `shift`: 移动位置参数,使得`$1`变为`$2`,以此类推。
**字符串操作**
- `${#parameter}`: 获取字符串的长度。
- `${parameter#word}`, `${parameter##word}`, `${parameter%word}`, `${parameter%%word}`: 分别用于去除字符串开头、结尾的特定模式。
- `${parameter/pattern/string}`, `${parameter//pattern/string}`: 字符串替换。
**数值计算**
- `(())`: 整数运算。
- `let`: 进行算术运算的命令。
- `expr`: 用于执行算术表达式。
- `bc`: 提供一个交互式的计算器环境。
- `awk`: 内建数学运算能力。
- `declare/typeset`: 定义整数变量并直接进行计算。
- `$[]`: 用于简单的整数运算。
**总结**
这份Shell讲义详细介绍了Shell编程的基础概念,包括变量的使用、参数处理以及字符串和数值操作,适合初学者和有一定基础的学习者作为参考资料。通过学习,读者能够更好地理解和应用Shell命令,提升在Linux系统中的自动化操作能力。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2020-09-15 上传
2021-10-04 上传
2009-06-22 上传
2010-12-29 上传
2023-04-23 上传
2021-10-12 上传
q375923078
- 粉丝: 11
- 资源: 7
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程