Linux基础入门
都依凡
撰写于 2023年 04月 16 日

1. Linux的学习价值

  • Linux是现代化应用程序交付的首选平台,无论是部署在裸机,虚拟化还是容器化环境
  • 公司内部服务(TCE、Faas、SCM)统一使用Debian Linux系统
  • 熟悉Linux基础指令,就可以熟悉运维前端常用服务,如Nginx,Node.js

2. Linux为什么选择企鹅作为Logo

企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于当今世界的任何一个国家,所以Linux选择企鹅作为标志,其含义也在表明:开源的Linux为全人类共同所有,任何公司无权将其私有,也就是大家可以在任何场合公开使用Linux系统

3. 计算机硬件

1. 计算机由五大基本单元

  • 控制器
控制器的作用:顾名思义就是指挥控制计算器其他部件运行工作的部件
  • 运算器
运算器的作用:主要作用是来进行我们的算数运算和逻辑运算,常规意义下我们会将控制器和运算器组成我们所说的CPU单元
  • 存储单元
存储单元分为外存和内存:
    外存:外存比如我们的磁盘,光驱,都是属于外存
    
    内存:电脑的运行内存
  • 输入单元
输入单元的作用:输入单元如我们的鼠标,键盘,都是输入单元
  • 输出单元
输出单元的作用:输出单元比如显示器,音响,就是输出单元

2. 五大基本单元的工作方式

计算机通过输入设备,输入指令,如键盘 / 鼠标输入,然后计算机会通过控制器、运算器、存储器之间相互配合工作,将我们工作的结果通过输出设备输出显示

4. 操作系统

1. 操作系统介绍

操作系统用于管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息
简单理解:
    操作系统就是一个承上启下的作用,承上就是在我们操作系统之上,可以运行我们的应用程序,启下,就是在我们操作系统之下,可以通过我们的计算机硬件配合去做一些事情

总结来说,计算机操作系统为我们提供了两大能力,管理计算机资源和提供用户接口

  • 管理计算机资源

比如:处理器管理,存储器管理,设备管理,文件管理

  • 提供用户接口

比如:命令接口、图形用户接口、程序接口

我们常见的操作系统,如:MacOs,Linux,Windows,Android,鸿蒙Os

2. 操作系统启动流程

  • 基于BIOS 和 基于UEFI

BIOS启动流程:

  1. BIOS启动
  2. BIOS自检
  3. BootLoader 操作系统引导程序
  4. OS (指的是相应的操作流程)

UEFI启动流程

  1. UEFI启动
  2. BootLoader
  3. OS

现如今主流的启动方式是UEFI启动

  • 操作系统如何做到在电脑通电后进入操作启动流程?
可以简单的理解为BIOS或者UEFI是固化在电脑主板上的一段程序,在电脑通电之后会固定执行响应这一段执行

3.BIOS启动和UEFI启动的区别

可以简单的理解为UEFI启动方式是BIOS启动方式的升级版本,因为BIOS启动的时候会进行一系列的自检,这就会导致我们的运行速度变慢,而UEFI是直接优化了这一段程序,使得启动的速度会更快,还有就是BIOS无法启动2.2T以上容量的磁盘

5. 查询Linux版本

1.查询内核版本

  • 方法一
uname -a

27

  • 方法二
cat /proc/version

28

2. 查询发行版本

cat /etc/os-release

29

3. 发行版本和内核版本的区别

  • 内核版本就是由Linux作者团队来维护的Linux最核心的部分
  • 发行版本就是在内核版本的基础上加上了许多应用程序的版本,如:CentOs,Debian,Ubantu

6. Linux系统应用领域

主要的应用领域

  1. IT服务器(操作系统、虚拟化和云计算)
  2. 嵌入式和智能设备
  3. 个人办公桌面
  4. 学术研究与软件研究

因为Linux是完全开源的,所以在Linux的基础上可以进行开发,和办公

7. Linux基本组成

Linux系统一般有4个主要部分

  1. 内核
一般是操作系统的内核,如线程管理,内存管理
  1. shell
命令解释器,输入一些命令,以至于可以使用Linux内核中的一些资源
  1. 文件系统
负责管理文件管理,将用户的文件存储到磁盘上
  1. 应用程序
应用程序最好理解,比如在Linux所使用的VSCode,就是应用程序

8.查询进程命令

1. 查询某个应用程序的进程

ps -ef | grep <应用名称>
如:要查询nginx进程使用如下命令:
ps -ef | grep nginx

2. 查询某个进程的详细信息

top -p <进程ID>
可以查到CPU占用等信息,查询1432进程的信息:
top -p 1432

3. 关闭指定进程

kill <进程IP>
# 如关闭1432进程
kill 1432

4. 显示所有进程的动态列表

top

30

9. 进程调度

1.系统中运行的程序远远大于CPU的核数,那么Linux系统是如何实现同时运行这么多的程序的?

通过进程调度

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

简单理解为:

CPU会通过某种策略,在一个线程执行多少时间后去执行另外的线程以此切换执行,因速度非常快,所以给人的感觉是同时运行着,当然这种策略远不止像描述的这样简单,这里只是做一个简单的比喻

2. 进程调度的原则

  • 一个CPU核在同一时间,只能运行一个进程
  • 每个进程有近乎相等的执行时间
  • 对于逻辑CPU而言,进程调度使用轮询方式执行,当轮询完成则回到第一个进程反复
  • 进程执行消耗时间和进程量成正比

10.Linux的文件系统

文件系统是操作系统中负责管理持久数据的子系统,负责把用户的文件存到磁盘硬件中,持久化的保存文件

在Linux中,一切皆文件

在Linux中,文件系统是采用树状的目录结构,最上层目录是根目录( / )

31

1. 虚拟文件系统

  • 问题?

    • Linux中有这么多不同的文件系统,如何实现对用户统一调用接口的?
Linux在中间层做了一个接口抽象(VFS 虚拟文件系统)
* 对应层提供一个标准文件操作接口,如读取,写入
* 对文件系统提供一个标准文件接入接口

2. 查询文件系统类型命令

# 可以查看到文件系统磁盘空间利用率
df -T

32

3. 文件的基本操作

  • 查看文件夹下的内容
ls # 可以遍历出文件夹的所有文件列表
  • 创建文件夹
mkdir <文件夹名称>
  • 移动文件
mv <demo> <home> # 将demo 文件/ 文件夹移动到home的位置,home移动时可以修改文件名
  • 删除文件
rm -r <文件名>
  • 创建文件
touch <文件名>
  • 复制文件
cp <demo1> <demo1_bak> # 将demo1文件复制一份并修改名称为demo1_bak

11.Linux用户权限

在Linux中用户包括两部分

  • 用户账户

    • 普通用户账户:在系统中进行普通作业(普通用户账户)
    • 超级用户账户:在系统中对普通用户和整个系统进行管理(root)
  • 组账户

    • 标准组:可以容纳多个用户
    • 私有组:只有用户自己

1. 查看用户信息命令

w # 这个命令可以查看当前登录的用户

33

groups # 查看当前用户所属的组
# 一个用户可以属于多个组

34

查看用户的uid信息
id <用户名>

35

2. 用户文件权限

对于用户文件权限中有三个概念

所有者:文件的所有者,拥有所有权

所在组:文件所有者所在的组

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

每个用户对用文件都有不同权限,包括:R(读-4) W (写-2)X(执行-1)

36

如此图:

​ 文件的类型为:文件夹

​ 所有者拥有:读写执行的权限

​ 所在的组拥有:读和执行的权限

​ 其他人拥有:读和执行的权限

3. 创建用户

sudo useradd <用户名>  # 创建一个用户
sudo passwd <用户密码> # 创建用户登录密码

4. 切换用户

su <用户名>

Linux基础入门

1. Linux的学习价值

  • Linux是现代化应用程序交付的首选平台,无论是部署在裸机,虚拟化还是容器化环境
  • 公司内部服务(TCE、Faas、SCM)统一使用Debian Linux系统
  • 熟悉Linux基础指令,就可以熟悉运维前端常用服务,如Nginx,Node.js

2. Linux为什么选择企鹅作为Logo

企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于当今世界的任何一个国家,所以Linux选择企鹅作为标志,其含义也在表明:开源的Linux为全人类共同所有,任何公司无权将其私有,也就是大家可以在任何场合公开使用Linux系统

3. 计算机硬件

1. 计算机由五大基本单元

  • 控制器
控制器的作用:顾名思义就是指挥控制计算器其他部件运行工作的部件
  • 运算器
运算器的作用:主要作用是来进行我们的算数运算和逻辑运算,常规意义下我们会将控制器和运算器组成我们所说的CPU单元
  • 存储单元
存储单元分为外存和内存:
    外存:外存比如我们的磁盘,光驱,都是属于外存
    
    内存:电脑的运行内存
  • 输入单元
输入单元的作用:输入单元如我们的鼠标,键盘,都是输入单元
  • 输出单元
输出单元的作用:输出单元比如显示器,音响,就是输出单元

2. 五大基本单元的工作方式

计算机通过输入设备,输入指令,如键盘 / 鼠标输入,然后计算机会通过控制器、运算器、存储器之间相互配合工作,将我们工作的结果通过输出设备输出显示

4. 操作系统

1. 操作系统介绍

操作系统用于管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息
简单理解:
    操作系统就是一个承上启下的作用,承上就是在我们操作系统之上,可以运行我们的应用程序,启下,就是在我们操作系统之下,可以通过我们的计算机硬件配合去做一些事情

总结来说,计算机操作系统为我们提供了两大能力,管理计算机资源和提供用户接口

  • 管理计算机资源

比如:处理器管理,存储器管理,设备管理,文件管理

  • 提供用户接口

比如:命令接口、图形用户接口、程序接口

我们常见的操作系统,如:MacOs,Linux,Windows,Android,鸿蒙Os

2. 操作系统启动流程

  • 基于BIOS 和 基于UEFI

BIOS启动流程:

  1. BIOS启动
  2. BIOS自检
  3. BootLoader 操作系统引导程序
  4. OS (指的是相应的操作流程)

UEFI启动流程

  1. UEFI启动
  2. BootLoader
  3. OS

现如今主流的启动方式是UEFI启动

  • 操作系统如何做到在电脑通电后进入操作启动流程?
可以简单的理解为BIOS或者UEFI是固化在电脑主板上的一段程序,在电脑通电之后会固定执行响应这一段执行

3.BIOS启动和UEFI启动的区别

可以简单的理解为UEFI启动方式是BIOS启动方式的升级版本,因为BIOS启动的时候会进行一系列的自检,这就会导致我们的运行速度变慢,而UEFI是直接优化了这一段程序,使得启动的速度会更快,还有就是BIOS无法启动2.2T以上容量的磁盘

5. 查询Linux版本

1.查询内核版本

  • 方法一
uname -a

27

  • 方法二
cat /proc/version

28

2. 查询发行版本

cat /etc/os-release

29

3. 发行版本和内核版本的区别

  • 内核版本就是由Linux作者团队来维护的Linux最核心的部分
  • 发行版本就是在内核版本的基础上加上了许多应用程序的版本,如:CentOs,Debian,Ubantu

6. Linux系统应用领域

主要的应用领域

  1. IT服务器(操作系统、虚拟化和云计算)
  2. 嵌入式和智能设备
  3. 个人办公桌面
  4. 学术研究与软件研究

因为Linux是完全开源的,所以在Linux的基础上可以进行开发,和办公

7. Linux基本组成

Linux系统一般有4个主要部分

  1. 内核
一般是操作系统的内核,如线程管理,内存管理
  1. shell
命令解释器,输入一些命令,以至于可以使用Linux内核中的一些资源
  1. 文件系统
负责管理文件管理,将用户的文件存储到磁盘上
  1. 应用程序
应用程序最好理解,比如在Linux所使用的VSCode,就是应用程序

8.查询进程命令

1. 查询某个应用程序的进程

ps -ef | grep <应用名称>
如:要查询nginx进程使用如下命令:
ps -ef | grep nginx

2. 查询某个进程的详细信息

top -p <进程ID>
可以查到CPU占用等信息,查询1432进程的信息:
top -p 1432

3. 关闭指定进程

kill <进程IP>
# 如关闭1432进程
kill 1432

4. 显示所有进程的动态列表

top

30

9. 进程调度

1.系统中运行的程序远远大于CPU的核数,那么Linux系统是如何实现同时运行这么多的程序的?

通过进程调度

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

简单理解为:

CPU会通过某种策略,在一个线程执行多少时间后去执行另外的线程以此切换执行,因速度非常快,所以给人的感觉是同时运行着,当然这种策略远不止像描述的这样简单,这里只是做一个简单的比喻

2. 进程调度的原则

  • 一个CPU核在同一时间,只能运行一个进程
  • 每个进程有近乎相等的执行时间
  • 对于逻辑CPU而言,进程调度使用轮询方式执行,当轮询完成则回到第一个进程反复
  • 进程执行消耗时间和进程量成正比

10.Linux的文件系统

文件系统是操作系统中负责管理持久数据的子系统,负责把用户的文件存到磁盘硬件中,持久化的保存文件

在Linux中,一切皆文件

在Linux中,文件系统是采用树状的目录结构,最上层目录是根目录( / )

31

1. 虚拟文件系统

  • 问题?

    • Linux中有这么多不同的文件系统,如何实现对用户统一调用接口的?
Linux在中间层做了一个接口抽象(VFS 虚拟文件系统)
* 对应层提供一个标准文件操作接口,如读取,写入
* 对文件系统提供一个标准文件接入接口

2. 查询文件系统类型命令

# 可以查看到文件系统磁盘空间利用率
df -T

32

3. 文件的基本操作

  • 查看文件夹下的内容
ls # 可以遍历出文件夹的所有文件列表
  • 创建文件夹
mkdir <文件夹名称>
  • 移动文件
mv <demo> <home> # 将demo 文件/ 文件夹移动到home的位置,home移动时可以修改文件名
  • 删除文件
rm -r <文件名>
  • 创建文件
touch <文件名>
  • 复制文件
cp <demo1> <demo1_bak> # 将demo1文件复制一份并修改名称为demo1_bak

11.Linux用户权限

在Linux中用户包括两部分

  • 用户账户

    • 普通用户账户:在系统中进行普通作业(普通用户账户)
    • 超级用户账户:在系统中对普通用户和整个系统进行管理(root)
  • 组账户

    • 标准组:可以容纳多个用户
    • 私有组:只有用户自己

1. 查看用户信息命令

w # 这个命令可以查看当前登录的用户

33

groups # 查看当前用户所属的组
# 一个用户可以属于多个组

34

查看用户的uid信息
id <用户名>

35

2. 用户文件权限

对于用户文件权限中有三个概念

所有者:文件的所有者,拥有所有权

所在组:文件所有者所在的组

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

每个用户对用文件都有不同权限,包括:R(读-4) W (写-2)X(执行-1)

36

如此图:

​ 文件的类型为:文件夹

​ 所有者拥有:读写执行的权限

​ 所在的组拥有:读和执行的权限

​ 其他人拥有:读和执行的权限

3. 创建用户

sudo useradd <用户名>  # 创建一个用户
sudo passwd <用户密码> # 创建用户登录密码

4. 切换用户

su <用户名>

版权属于:都依凡 所有,采用《知识共享署名许可协议》进行许可,转载请注明文章来源。

本文链接: http://blog.anlucky.cn/index.php/programming/linux/17

上一篇
网络安全
赞 (4)

评论区(暂无评论)

啊哦,评论功能已关闭~