计算机硬件
计算机由五大基本单元构成
- 控制器
- 运算器
- 存储器
- 输入单元
- 输出单元
计算机操作系统
启动流程
Linux系统结构
4个主要部分
- 内核
- shell
- 文件系统
- 应用程序
体系结构
- 内核是硬件与软件之间的中间层
- 内核是一个资源管理程序
- 内核提供一组面向系统的命令
进程管理
- 进程是正在执行的一个程序或命令
- 进程有自己的地址空间,占用一定的系统资源
- 一个 CPU 核同一时间只能运行一个进程
- 进程由它的进程ID (PID) 和它进程的进程ID (PPID) 唯一识别
查看进程消息
进程调度
讲程调度是指操作系统按某种策略或规则选择进程占用CPU进行运行的过程
- R(TASK RUNNING),可执行状态
- S(TASK INTERRUPTIBLE),可中断的睡眠状态
- D(TASK UNINTERRUPTIBLE),不可中断的睡眠状态
- T(TASK STOPPED or TASK TRACED),暂停状态或跟踪状态
- Z(TASK DEAD - EXIT ZOMBIE),退出状态,进程成为僵尸进程
- X(TASK DEAD - EXIT DEAD),退出状态,进程即将被销毁
原则
- 一个 CPU 核同一时间只能运行一个进程
- 每个进程有近乎相等的执行时间
- 对于逻辑 CPU 而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复
- 进程执行消耗时间和进程量成正比
进程的系统调用
- 内核空间 (Kernal Space) : 系统内核运行的空间
- 用户空间 (User Space) :应用程序运行的空间
文件系统
文件系统负责管理持久化数据的子系统,负责把用户的文件存到磁盘硬件中 Linux 文件系统是采用树状的目录结构最上层是/(根)目录
问:Linux 有这么多不同的文件系统,如何实现对用户提供统一调用接口的?
虚拟文件系统
- 对应用层提供一个标准的文件操作接口。
- 对文件系统提供一个标准的文件接入接口。
查看文件系统类型
文件基本操作
文件读取流程
用户权限
- 用户账户
- 普通用户账户: 在系统中进行普通作业
- 超级用户账户:在系统中对普通用户和整个系统进行管理。
- 用户组
- 标准组:可以容纳多个用户
- 私有组:只有用户自己
文件权限
文件权限关于用户有三个概念
- 所有者: 文件的所有者
- 所在组:文件的所有者所在的组
- 其他人: 除文件所有者及所在组外的其他人 每个用户对于文件都有不同权限,包括读 (R)、写 (W) 、执行 (X)
查看用户信息
用户权限操作
软件包管理
- 软件包
- 通常指的是一个应用程序,它可以是一个 GUI 应用程序、命令行工具或(其他软件程序需要的)软件库
- 软件包管理
- 底层工具: 主要用来处理安装和删除软件包文件等任务,DPKG,RPM
- 上层工具: 主要用于数据的博索任务和依赖解析任务,APT,YUM,DNF
软件包管理工具
- RPM (Red Hat Package Manager) ,为 Red hat 操作系统的包管理系统
- DPKG (Debian package) ,为 Debian 操作系统的包管理系统
Debian APT 常用命令
- 列出所有可更新的软件清单命令:
apt update - 安装指定的软件命令:
apt install <package name> - 安装多个软件包:
apt install <package 1> <package 2> <package 3> - 更新指定的软件命令:
apt update <package name> - 删除软件包命令:
apt remove <package name> - 查找软件包命令:
apt search <keyword> - 列出所有已安装的包:
apt list --installed
Debian 配置软件源
Nginx 安装
更新包缓存
apt update
安装 nginx 包
apt install nginx
查找 nginx 路径,/etc/nginx 配置文件路径,/usr/sbin/nginx 可执行文件
whereis nginx
访问 nginx 部署的默认站点
curl http://localhost:80
关闭 ng
sudo /usr/sbin/nginx -s stop
启动 ng
sudo /usr/sbin/nginx
Nginx 配置修改
进入 nginx 配置文件夹
cd /etc/nginx
打开 nginx 配置文件 nginx.conf,发现默认的站点配置位于 /etc/nginx/sites-enabled
cat nginx.conf
进入 sites-enabled 文件夹,并对 default 文件进行配置,修改 80 端口为 8080
cd sites-enabled && vim default
重启 nginx 服务
sudo /usr/sbin/nginx -s reload
访问 nginx 部署的默认站点
curl http://localhost:8080
总结
相信通过本节课的学习,我应该会对 Linux 有一个更加全面的认识。但是一个对Linux的大概性视频介绍是完全不够的,所以我去掘金上搜索了Linux系统的全面认识,发现不止视频里面讲的内容,发现了还有Vim等编辑器的重要内容
我大概介绍下
Vim是从vi发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。
这也是我知道的一点东西,后面还是继续会去深入学习,下面给出我在掘金上面找到的对Linux系统全面介绍的好文分享
2万字系统总结,带你实现 Linux 命令自由? - 掘金 (juejin.cn)