Linux Shell教程:命令与变量操作详解
需积分: 10 8 浏览量
更新于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系统中的自动化操作能力。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-10-04 上传
2009-06-22 上传
2010-12-29 上传
2023-04-23 上传
2021-10-12 上传
2012-12-20 上传
q375923078
- 粉丝: 11
- 资源: 7
最新资源
- html5:第五科技,分享一些自己做的html5源码!
- 双基地模糊度函数:计算双基地雷达的模糊度函数-matlab开发
- 61IC_S2647,c语言-15的源码,c语言
- perfume-master.zip
- github-project-try:我的学生的简单github测试
- 串口接收试验_单片机C语言实例(纯C语言源代码).zip
- dropwizardapp:玩dropwizard
- 50project50days-blank:Project Starter文件
- code,c语言编写系统源码,c语言
- HTML5-CSS3-Cookbook:HTML5和CSS3实例教程-原始
- 液晶12864并行2_单片机C语言实例(纯C语言源代码).zip
- Django3ByExample
- love-running:基于都柏林的跑步社区的网站
- zlib-1.2.2,c语言网卡驱动源码,c语言
- 体育馆
- JavaPractice:Java实践程序