本节目标
- Linux是现代化应用程序交付的首选平台,无论是部署在裸机、虚拟化还是容器化环境
- 公司内部服务(TCE、FaaS、SCM)统一使用Debian Linux系统
- 熟悉Linux基础指令,熟练运维前端常用服务(Nginx,Node.js)
- 加深对操作系统概念和实现的理解,夯实基础知识
插曲
Linux的企鹅logo:代表了Linux的开源属性
因为企鹅是南极洲标志性动物,而根据国际公约,南极洲属于全人类共有,所以Linux用企鹅表示自己是开源的,是全人类共有的
计算机基本知识
计算机五大基本组成
- 控制器
- 运算器
- 存储器
- 输入
- 输出
操作系统
概念:管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息
Linux概览
Linux版本
- 内核版本
- 发行版本
Linux内核 + 常用软件 = Linux发行版本(如Ubuntu、CnetOS、Debian等)
内心OS:难怪以前听说Ubuntu、CentOS都是Linux很懵,但是现在一解释就豁然开朗了
classDiagram
Linux <|-- Debian
Linux <|-- Red Hat
Linux <|-- Slackware
Linux <|-- 国产系列
class Debian{
Debian
Ubuntu
}
class Red Hat{
CentOS
Fedora
RHEL
}
class Slackware{
SUSE
}
class 国产系列{
龙芯
鲲鹏
飞腾
}
Linux基本组成
- 内核
- shell
- 文件系统
- 应用程序
内核漫画
有趣哇(星星眼*^*)
Linux系统结构——进程管理
- 进程是正在执行的一个程序或命令
- 进程有自己的地址空间,占用一定的系统资源
- 一个CPU核同一时间只能运行一个进程
- 进程由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别
进程调度
- 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而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复
- 进程执行消耗时间和进程量成正比
文件系统
Linux中一切皆文件
如普通文件、目录、设备、套接字等,都可以看成是文件
好处:保证了Linux操作或接口的统一
虚拟文件系统
- 对应用层提供一个标准的文件操作接口
- 对文件系统提供一个标准的文件接入接口
文件基本操作
mkdir demo #创建文件夹
mv demo /home #移动demo文件夹到/home
rm -r demo #删除demo文件夹
touch file.txt #创建空文件
cp file.txt file_bak.txt #复制文件
用户权限
用户权限操作
# 在根目录创建一个文件夹,查看当前用户拥有文件夹的权限
cd / && mkdir demo && ls -ld demo
# 返回为:drwxr-xr-x 2 root root 4096 Nov 28 15:55 demo
Linux软件包管理
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
总结
这节的知识都很熟悉,一方面是自己上过操作系统的课,还有些印象,另一方面就是自己在开发过程中也使用过Linux和命令行,有过实践。
所以知行合一很重要,学校的课也不是没用的,学还是得认真学。