Linux基础 | 青训营笔记

198 阅读6分钟

一、计算机硬件

五大基本单元

1.控制器

协调和指挥计算机中其他部件进行工作

2.运算器

进行算数和逻辑运算 控制器与运算器共同组成了一个CPU单元

3.存储器单元

内存 外存 磁盘、光驱...

4.输入单元

鼠标、键盘...

5.输出单元

显示器、音箱...

image.png

二、计算机操作系统

操作系统: 管理和控制计算机系统中的硬件和软件资源,用于在用户和系统硬件之间传递信息

作用

1.管理计算机资源

处理器管理、存储器管理、设备管理、文件管理

2.提供用户接口

命令接口、图形用户接口、程序接口

计算机启动流程

image.png 两种途径:BIOS和UEFI (固化在主板上的一段程序,开机时就能执行和解析这段程序,进行初始化) BIOS--优化升级-->UEFI

三、Linux系统概览

Linux版本

内核版本 发行版本 Linux内核+常用软件=Linux发行版本

查看Linux系统内核版本

方法1:

uname -a

方法2:

cat /proc/version

查看发行版本

cat /etc/os-release

四、Linux基本组成

(一)4个主要部分

1. 内核

提供操作系统的底层能力(内存管理、进程管理、文件系统管理、硬件资源的管理)

2. shell

命令解释器,实现交互

3. 文件系统

4. 应用程序

(二)Linux体系结构

image.png 应用程序发起请求,从底层GNU C Library发起了一次系统调用,程序从用户态切换到了内核态,由内核代表程序运行于内核空间,程序拥有了与硬件设备通信的能力,任务完成后,程序从内核态切回用户态。

  1. 内核是硬件和软件的中间层,实现了两者间的交互
  2. 两个进程间允许通信
  3. 进程可以直接访问文件系统

(三)Linux系统管理

进程管理

  1. 进程是正在执行的一个程序或命令
  2. 进程有自己的地址空间,占用一定的系统资源
  3. 一个CPU核同一时间只能运行一个进程
  4. 进程由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别

image.png

查看进程信息

查看启动的nginx进程

ps -ef | grep nginx

查看某个进程具体信息

top -p 93824//进程号

关闭指定进程

kill 93824//进程号

全部进程动态实时视图

top

进程调度

进程调度是指操作系统按某种策略或规则选择进程占用CPU进行运行的过程

进程状态
  • R:可执行状态
  • S:可中断的睡眠状态
  • D:不可中断的睡眠状态
  • T:暂停状态或跟踪状态
  • Z:退出状态,进程成为僵尸进程
  • X:退出状态,进程即将被销毁
调度原则
  1. 一个CPU核同一时间只能运行一个进程
  2. 每个进程由近乎相等的执行时间
  3. 对于逻辑CPU而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复
  4. 进程执行消耗时间和进程量成正比

(四)Linux系统结构

文件系统

Linux中一切皆文件(文件、目录、设备、套接字...) 保证了操作的统一,接口调用的统一

虚拟文件系统(VFS)

  • 对应用层提供一个标准的文件操作接口
  • 对文件系统提供一个标准的文件接入接口 抹平不同文件间的差异,实现统一

查看文件系统类型

df命令报告文件系统磁盘空间利用率

df -T

mount命令是挂载文件系统用的,不带任何参数运行,会打印包含文件系统类型在内的磁盘分区的信息

mount

文件基本操作

ls //查看文件夹下的内容
mkdir demo //创建文件名
mv demo /home //移动demo文件夹到/home
rm -r demo //删除demo文件夹
touch file.txt //创建空文件
cp file.txt file_bak.txt //复制文件

nginx进程先去用户缓冲区进行寻找,查看是否有数据缓存,有直接读取返回,没有的话,发起一次系统调用(系统io),从用户态转到内核态,接着到内核缓冲区中读取,有则读取返回,没有则通过DMA向磁盘发送文件读取请求,DMA将相关数据拷贝到内核缓冲区--...-->用户缓冲区--CPU拷贝-->Socket缓冲区--DMA--网卡-->用户

用户权限

用户账户
  • 普通用户账户:在系统中进行普通作用
  • 超级用户账户:在系统中对普通用户和整个系统进行管理
组账户
  • 标准组:可以容纳多个用户
  • 私有组:只有用户自己

查看用户信息

查看当前登录用户信息

w

查看当前用户所属的组

groups

查看用户的uid信息

id ××××//用户名

文件权限

  • 所有者:文件的所有者
  • 所在组:文件的所有者所在的组
  • 其他人:除文件的所有者及所在组外的其他人

image.png

用户权限操作

//在根目录创建一个文件夹,查看当前用户拥有文件夹的权限
cd / && mkdir demo && ls -ld demo
sudo useradd ceshi //创建一个用户,并赋予可写操作
sudo passwd ceshi //设置用户密码
su ceshi //切换ceshi用户登录
cd demo //进入demo文件夹 
touch index.js //创建index.js文件,提示无权限,需要给ceshi用户demo文件夹的权限
sudo chown -R ceshi:ceshi ./demo //demo文件夹写权限赋子其他人
su ceshi //切换ceshi用户登录
cd demo //进入demo文件夹
touch index.js //创建index.js文件成功

五、软件包管理

  • 软件包 通常指一个应用程序(GUI应用程序、命令行工具或其他软件程序需要的软件库)
  • 软件包管理
  1. 底层工具:主要用来处理安装和删除软件包文件等任务,DPKG、RPM...
  2. 上层工具:主要用于数据的搜索任务和依赖解析任务,APT、YUM、DNF...

image.png

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
  • 列出所有已安装的包: apt list --installed