Linux基础 | 青训营笔记

106 阅读3分钟

本节目标

  1. Linux是现代化应用程序交付的首选平台,无论是部署在裸机、虚拟化还是容器化环境
  2. 公司内部服务(TCE、FaaS、SCM)统一使用Debian Linux系统
  3. 熟悉Linux基础指令,熟练运维前端常用服务(Nginx,Node.js)
  4. 加深对操作系统概念和实现的理解,夯实基础知识

插曲

Linux的企鹅logo:代表了Linux的开源属性

因为企鹅是南极洲标志性动物,而根据国际公约,南极洲属于全人类共有,所以Linux用企鹅表示自己是开源的,是全人类共有的

image.png

计算机基本知识

计算机五大基本组成

  • 控制器
  • 运算器
  • 存储器
  • 输入
  • 输出

image.png

操作系统

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

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
  • 文件系统
  • 应用程序

内核漫画

image.png

有趣哇(星星眼*^*)

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和命令行,有过实践。

所以知行合一很重要,学校的课也不是没用的,学还是得认真学。