Linux 基础
1、学习Linux 的价值(为什么学习Linux ?)
- Linux 是现代应用程序交付的首选平台,无论是部署在裸机、虚拟化还是容器化环境
- 一些公司内部服务(TCE、FaaS、SCM)统一使用Debian Linux 系统
- 熟悉Linux基础指令,能够熟练运维前端常用服务(Nginx,Node.js)
- 有利于加深对操作系统概念和实现的理解
2、计算机硬件
五大基本单元
- 控制器
- 运算器
- 存储器单元
- 输入单元
- 输出单元
3、计算机操作系统
操作系统(Operating System , OS)
管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息。
操作系统启动流程
4、 Linux 发展简史与版本
发展简史
-
1969年,Unix 诞生于贝尔实验室
-
1984年,贝尔实验室将Unix 商业化
-
1984年,Tanenbaum 开发Minix 操作系统用于教学并开放源码
-
1984年 Richard M.Stallman 发起自由软件(FSF)与GNU项目,起草GPL(通用公共许可)协议
-
1991年,Linus Torvalds 受Minix 影响实现初版的Linux 内核
-
1992 年,Linux 内核以GPL 协议发行 V1.0
Linux 版本
内核版本 与发行版本
- Linux 内核的主要组件有
- 系统调用接口
- 进程管理
- 内存管理
- 虚拟文件管理
- 网络堆栈
- 设备驱动程序
- 硬件架构的相关代码
- 发行版本 可以简单理解为
- linux 内核 + 常用软件 = linux 发行版本
- 常见的发行版本:Debian 系列、RedHad 系列、Slackware 系列、国产系列
- 查看linux 系统内核版本的命令:
uname -acat /proc/versioncat /etc/os-release查看发行版本
Linux 系统应用领域
- IT 服务器(操作系统、虚拟化和云计算)
- 嵌入式和智能设备
- 个人办公桌面
- 学术研究与软件研发
5、Linux 系统结构
(1)基本组成
- 内核
- 负责管理系统的进程、内存、设备驱动程序、文件系统和网络系统,决定着系统的性能和稳定性
- 主要由以下几部分组成:
- 内存管理
- 进程管理
- 设备驱动程序
- 文件系统
- 网络管理
- 用户与内核之间的交互通过 系统调用接口完成
- shell
- shell 是系统的用户界面,提供了用户与内核进行交互操作的接口,它接收用户输入的命令并将它送到内核去执行
- 目前大部分GNU操作系统上默认的就是bash shell
- 文件系统
- 应用程序
(2)体系结构
- 用户空间
- 应用程序
- GNU C Library (glibc)
- 内核空间
- 系统调用
- 内核
- 内核硬件与软件之间的中间层
- 内核是一个资源管理程序
- 内核提供一组面向系统的命令
- 平台架构相关的代码
(3)进程管理
特点: - 进程是正在执行的一个程序或命令 - 进程有自己的地址空间,占用一定的系统资源 - 一个CPU核同一时间只能运行一个进程 - 进程由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别
查看进程命令:
ps -ef | grep 应用
例如: ps -ef | grep java
查看某个进程:
top -p 进程ID
全部进程动态实时视图:
top
关闭指定进程:
kill 进程ID
(4)进程调度
进程调度是指操作系统按某种策略或规则选择进程占用CPU进行运行的过程
进程调度原则: - 一个CPU核同一时间只能运行一个进程 - 每个进程有近乎相等的执行时间 - 对于逻辑CPU 而言,进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复 - 进程执行消耗时间和进程量成正比
(5) 文件系统
Linux 文件系统是采用树状的目录结构,最上层是 /(根目录)
虚拟文件系统(VFS) - 对应用层提供一个标准的文件操作接口 - 对文件系统提供一个标准的文件接入接口
查看文件系统类型:
- df 命令报告文件系统磁盘空间利用率
- mount 命令挂载文件系统用的,不带任何参数运行,会打印包含文件系统类型在内的磁盘 分区的信息
文件基本操作:
- ls 查看文件夹下内容
- mkdir demo 创建文件夹
- mv demo / home 移动demo 文件夹到 /home
- rm- r demo 删除 demo 文件夹
- touch file.txt 创建空文件
- cp file.txt file_bak.txt 复制文件
文件读取流程
(6) 用户权限
用户账户:
- 普通用户账户:在系统中进行普通作业
- 超级用户账户:在系统中对普通用户和整个系统进行管理
用户组:
- 标准组:可以容纳多个用户
- 私有组:只有用户自己
文件权限关于用户有三个概念:
- 所有者:文件的所有者
- 所在组:文件的所有者所在的组
- 其他人:除文件所有者及所在组外的其他人
- 每个用户对于文件都有不同权限,包括读(R)、写(W)、执行(X)
查看用户信息:
- W 查看当前登陆用户信息
- groups 查看当前用户所属的组
- id xxxx(user) 查看用户的uid 信息
用户权限操作:
sudo useradd 用户名 # 创建一个用户
sudo passwd 密码 # 设置用户密码
su 用户 # 切换指定用户登陆
sudo chown -R 用户名: 用户名 ./权限 # 将指定给用户
6、软件包
软件包:通常指的是一个应用程序,它可以是一个GUI 应用程序、命令行工具或(其它软件程序需要的)软件库
软件包管理: - 底层工具:主要用来处理安装和删除软件包文件等任务,DPKG,RPM - 上层工具:主要用于数据的搜索任务和依赖解析任务,APT,YUM,DNF