Linux与Unix Shell编程学习精华
版权申诉
76 浏览量
更新于2024-07-06
收藏 2.55MB DOC 举报
"Linux unixShells编程学习笔记"
这篇文档主要涵盖了Linux与Unix Shell编程的学习要点,对于想要深入理解操作系统运维和服务器管理的读者来说,是一份宝贵的资料。以下是详细的知识点梳理:
1. **Unix与Linux简介**
Unix是一种多用户、多任务的操作系统,由AT&T贝尔实验室开发。Linux是基于Unix的设计理念,由林纳斯·托瓦兹创建的开源操作系统内核,它具有类似Unix的特性,但并不完全相同。
2. **Shell的概念与功能**
Shell是用户与操作系统内核之间的一个接口,它接收用户输入的命令并执行。用户通过Shell与系统进行交互,同时Shell还负责解释和执行这些命令。
3. **Unix Shell的种类**
- **Bourne Shell (sh)**:最初的Unix Shell,由Steve Bourne开发。
- **C Shell (csh)**:提供了更接近C语言语法的命令行界面。
- **Korn Shell (ksh)**:结合了Bourne Shell和C Shell的特点,增加了许多新的功能。
4. **Linux Shell**
在Linux中,最常用的Shell是**Bourne Again SHell (bash)**,它是Bourne Shell的扩展版,兼容POSIX标准,支持更多的命令行工具和脚本编写功能。
5. **查看系统中的Shell**
可以通过`cat /etc/shells`命令来查看系统中安装的所有可用Shell。
6. **确定当前使用的Shell**
使用`echo $SHELL`命令可以显示当前用户正在使用的Shell。
7. **了解用户与Shell的关联**
`cat /etc/passwd`命令会列出所有用户及其对应的Shell,这有助于理解用户登录时使用的默认Shell。
8. **POSIX(Portable Operating System Interface)**
POSIX是IEEE为统一Unix和类Unix系统制定的一套标准,确保不同系统间程序的可移植性。Bash shell是POSIX兼容的,因此在符合POSIX标准的系统上运行良好。
9. **Shell的历史**
Shell的历史可以从早期的简单命令解释器到现代功能丰富的Bash等Shell的发展历程中看出,它们不断演进以满足用户的需求。
10. **Shell的主要用途**
- **交互式使用**:用户可以直接在命令行输入命令,Shell会即时解释并执行。
- **环境定制**:通过初始化文件(如.bashrc, .bash_profile)定制用户环境变量、别名和函数。
- **编程**:Shell脚本允许用户编写复杂的程序,实现自动化任务。
11. **Shell的责任**
- **读取输入**:接收用户的命令行输入。
- **解析命令行**:分析输入的字符串,识别命令、参数和特殊字符。
- **处理特殊字符**:例如通配符(*,?),重定向(<, >, |),管道(|)等。
- **执行命令**:调用相应的系统调用或程序执行命令。
12. **Shell编程基础**
- **变量**:用于存储数据。
- **控制结构**:包括条件语句(if, case)和循环(for, while)。
- **函数**:封装可重复使用的代码段。
- **脚本执行**:通过`#!/bin/bash`指定解释器并运行脚本。
通过这份笔记,读者将能够深入了解Shell编程,从而更好地管理和自动化Linux或Unix系统。学习Shell编程不仅可以提高日常工作效率,也是成为熟练的系统管理员和开发者的关键技能之一。
2020-10-08 上传
2019-07-01 上传
猫一样的女子245
- 粉丝: 228
- 资源: 2万+
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍