day25

第一部分:操作系统概述
1. 操作系统定义
操作系统是一款软件,用于屏蔽底层不同的硬件平台,为上层提供统一的接口,实现通用的软件代码能够在不同硬件上运行。
2. 三大主流PC操作系统
· Unix:世界上第一款操作系统
· Linux:遵循GNU协议,使用C语言编写,广泛用于服务器和嵌入式领域
· Windows:使用C/C++编写
3. Linux内核五大功能
· 内存管理
· 多任务调度
· 文件系统的管理(Linux中一切皆文件)
· 多任务间的通信
· 网络通信
4. Linux内核与系统调用
· Linux内核由系统调用组成,是纯C代码,不允许与用户直接交互。
· 内核功能复杂不易直接调用,通过Shell编写一系列命令来完成内核功能,Shell充当命令解释器。
5. Shell的作用
· 保护内核,防止用户直接操作内核引发安全问题
· 作为命令解释器,将用户输入的命令翻译给内核执行
6. 系统调用与库函数的区别
· 系统调用:Linux内核中的函数接口,仅在Linux系统中可用,功能强大但接口简练
· 库函数:对系统调用的封装,可跨平台移植,具有通用性,能处理更复杂的应用场景
第二部分:Shell基础命令
1. 文件类型识别(ls -l 第一列字符)
· b:块设备文件
· c:字符设备文件
· d:目录文件
· -:普通文件
· l:链接文件
· s:套接字文件
· p:管道文件
2. 基础操作命令
· touch:创建文件
· rm:删除文件
· mkdir:创建文件夹
· rmdir:删除空文件夹
· rm -rf:删除非空文件夹(递归强制删除)
· cp:拷贝文件,拷贝目录需加 -rf 选项
· mv:移动文件
3. 文件查看命令
· cat:查看文件全部内容
· more/less:分页查看文件内容
· head/tail:查看文件开头或结尾的指定行数,通过 -n 选项指定行数
4. 文件查找命令
· find:在当前目录下查找与文件名匹配的文件路径,通过 -name 选项指定文件名
· grep:在文件中打印所有与指定字符串匹配的行
5. 通配符
· *****:匹配任意长度、任意字符的文件名
· ?:匹配一位长度的任意字符
· []:匹配一位长度的指定字符(如 [1,3,5] 匹配1或3或5)
6. 组合命令
· 管道(|):将前面命令的输出作为后续命令的输入
· 重定向:将命令输出写入文件
· >:覆盖重定向,清空文件后写入
· >>:追加重定向,在文件末尾追加
7. 其他常用命令
· echo:输出字符串或变量值
· history:查看历史命令
· du:查看文件或目录大小,-m 以MB为单位,-k 以KB为单位
· od:按指定格式查看文件内容,-c 以字符形式显示
· date:查看系统时间和日期
· uname -a:查看内核版本和平台架构
· ifconfig:查看网卡信息
· ping:测试本机与指定IP地址的网络连通性
8. 软件包管理工具
· dpkg工具集(适用于本地 .deb 包):
· 安装:sudo dpkg -i 软件包名.deb
· 卸载:sudo dpkg -P 软件名
· 查看安装状态:dpkg -l 软件名
· apt-get工具集(适用于在线安装,需联网):
· 需提前设置软件源
· 下载并安装:sudo apt-get install 软件名
· 卸载:sudo apt-get remove 软件名 --purge
第三部分:Shell编程基础
1. 编译型语言与解释型语言对比
· 编译型语言(如C/C++):
· 有丰富的数据类型
· 先编译再执行
· 执行速度快
· 解释型语言(如Shell脚本):
· 所有内容均为字符串
· 边解释边执行
· 执行速度慢
· 开发效率高,适合系统维护和快速开发
2. Shell脚本编写与执行步骤
· 使用编辑器(如vim)创建 .sh 文件并编写代码
· 为脚本添加执行权限
· 执行脚本
3. Shell脚本本质
Shell脚本本质是一系列Shell命令的集合,按顺序执行。
4. Shell中的变量分类
· 环境变量(系统预定义):
· PWD:当前工作目录
· HOME:用户家目录
· PATH:可执行文件的搜索路径
· 位置变量(脚本运行时传入):
· $0:脚本文件名
· $1~$n:传递给脚本的第n个参数
· $#:传入参数的个数
· $$:脚本运行时的进程ID号
· $?:上一条Shell语句的执行结果(0表示成功)
· 自定义变量:由用户自行定义和赋值
5. Shell中的引号
· 双引号:打印时会替换为变量的值(变量展开)
· 单引号:打印时引号中的内容原样不变(不展开变量)
· 倒引号(反引号):将引号内的内容作为命令执行,并替换为命令输出
6. 输入与输出
· echo:输出内容到终端
· read:从终端读取用户输入
7. 分支语句
· if 语句:通过条件判断执行不同分支,以 fi 结尾
· case 语句:根据变量值匹配多个模式,匹配后执行对应语句段,以 esac 结尾
第四部分:关键概念辨析
系统调用 vs 库函数
· 系统调用是内核直接提供的接口,不可移植但功能强大
· 库函数是对系统调用的封装,可移植性好,便于跨平台开发
编译型 vs 解释型语言
· 编译型语言执行效率高,适合性能敏感场景
· 解释型语言开发效率高,适合脚本编程和系统维护
硬链接 vs 软链接(补充概念)
· 硬链接:指向同一个inode,删除原文件不影响链接
· 软链接(符号链接):指向原文件路径,删除原文件则链接失效(ls -l 显示为 l 类型)
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)