shell编程(1)——shell介绍
1、shell编程
- shell是操作系统的终端命令行,可以理解为人机交互的一种方式,软件系统提供给用户操作的命令行界面,解释执行用户输入的命令或程序。程序员常见的就是命令行终端,通过命令来和操作系统交互。
- shell脚本:是一个文件,文件里是程序代码,执行这个文件可以自动完成一些特定的功能。脚本文件里的代码比较特殊,不像C、C++语言一样里面是一些编程语言的基础语法构成,而是操作系统支持的命令加上一些逻辑控制语句构成。比如:脚本里可以调用ls、cd、pwd等操作系统支持的命令,其实ls、cd、pwd本身也是一个独立的程序。
- shell编程总结:shell脚本就是调用操作系统支持的命令(比如:ls、cd等)来自动化的完成一些功能。
2、解释运行和编译运行
- 解释运行:
- 定义:解释器将源代码逐行翻译为机器码并立即执行,无需生成独立的目标文件。每次执行都要重新解释才能运行
- 特点:
- 每次运行时都需要进行翻译,翻译过程和执行过程交织在一起
- 跨平台性强,只需提供解释器即可,因为无需生成特定平台的目标代码
- 编译运行:
- 定义:编译器将源代码编译成二进制文件, 以后就运行生成的二进制文件
- 特点:
- 编译只发生一次,生成的目标代码可以直接运行
- 运行时速度快,因为无需再次翻译
- 依赖于编译平台,目标代码可能需要为不同的硬件或操作系统重新编译
- shell编程属于解释运行,所以在编写shell脚本时需要指定解释器
3、命令解释器分类
- bash(Bourne Again Shell):linux平台常用的命令解释器
- dash:也是linux平台的命令解释器
- bash和dash的区别
- bash 是功能更强大、更灵活的 shell,适用于各种场景,特别是需要交互性和脚本编写的任务
- dash更适合于需要更快速和轻量化的环境,用于执行命令、管理文件系统和编写脚本
- 总结:一般都是用bash
- 其他解释器:学习linux平台学习bash即可,其他的命令解释器没有接触过
4、查看当前操作系统默认的解释器
daizhixin@:~$ which sh
/usr/bin/sh
daizhixin@:~$ ls -al /usr/bin/sh
lrwxrwxrwx 1 root root 4 1月 1 2023 /usr/bin/sh -> bash
sh指向的就是系统默认的命令解释器
5、指定命令解释器
#!/bin/bash
- 在脚本的开头添加一个特殊的注释,称为 “shebang” 或 “hashbang” 行,指定要用于执行脚本的 命令解释器
6、嵌入式开发中shell编程的使用场景
- 学习shell编程的程序员大致分为两类:
- 系统运维人员:
- 需要精通shell编程
- 编写复杂的shell脚本,比如监控系统状态、设置ip、重启系统的脚本
- 非系统运维人员(嵌入式软件开发):
- 熟练使用shell编程,知道shell编程的基本规则,能看懂shell脚本,编写一些简单功能的脚本
- 比如:
- 在编译代码库的时候,除了使用Makefile,还需要使用shell脚本
- 某些需要频繁重复的操作由多条命令构成,可以将这些命令写成一个shell脚本,每次执行这个脚本即可,可以节省大量时间
- 在linux系统启动的时候,调用的profile、rcS文件都是shell脚本,需要能够看懂
- 系统运维人员: