Linux内核
Linux内核是操作系统的核心,负责管理硬件资源、提供系统服务,并为用户程序运行提供基础环境,它由Linus Torvalds于1991年首次发布,采用宏内核架构,但通过模块化设计实现了高度的灵活性,内核的主要功能包括进程调度、内存管理、文件系统、设备驱动和网络协议栈等,进程调度器(如CFS Completely Fair Scheduler)确保CPU资源公平分配;内存管理通过虚拟内存技术实现进程隔离与高效利用;文件系统支持ext4、XFS等多种格式,满足不同场景的数据存储需求;设备驱动则使内核能够与硬件(如显卡、网卡)交互,内核的模块化特性允许动态加载或卸载驱动程序,无需重启系统即可扩展硬件支持。

Shell
Shell是用户与Linux内核之间的命令解释器,既是命令行界面(CLI)的核心,也是脚本编程的语言环境,常见的Shell包括Bash(Bourne Again Shell,大多数Linux发行版的默认Shell)、Zsh(功能丰富的增强版Shell)、Ksh(Korn Shell)等,Shell通过读取用户输入的命令,调用相应的程序或内核功能,并将结果返回给用户,输入ls命令时,Shell会执行ls程序列出当前目录的文件,Shell支持脚本编程,通过变量、循环、条件判断等语法实现自动化任务,如批量文件处理、系统监控等,Bash的通配符(如匹配任意字符)、管道符()和重定向符(>、<)等功能,极大提升了命令行操作的效率。
发行版
Linux发行版是Linux内核与用户空间工具(如Shell、包管理器)的集合,针对不同需求提供定制化的操作系统,主流发行版可分为几类:
- 通用型:如Ubuntu(基于Debian,易用性高,适合新手)、Fedora(社区驱动,集成新技术,适合开发者)、Debian(稳定性和安全性著称,适合服务器)。
- 企业级:如Red Hat Enterprise Linux(RHEL,商业支持,稳定性强)、CentOS(RHEL的社区克隆版,免费)、SUSE Linux Enterprise Server(SLES,企业级解决方案)。
- 轻量级:如Alpine Linux(基于musl libc和BusyBox,资源占用少,适合容器化)、Arch Linux(滚动更新,简洁灵活,适合高级用户)。
发行版的核心差异在于包管理器(如APT、YUM、DNF)和软件源配置,决定了软件的安装、更新方式。
包管理器
包管理器是Linux系统中用于软件安装、更新、卸载和依赖管理的工具,解决了软件编译和依赖冲突的难题,主要分为两类:
- 基于Debian/Ubuntu的APT(Advanced Package Tool):通过
apt-get install安装软件,apt update更新软件列表,apt upgrade升级已安装软件,依赖关系由.deb包文件和软件源列表自动处理。 - 基于RHEL/CentOS的YUM/DNF:YUM(Yellowdog Updater Modified)通过
yum install安装,DNF(Dandified YUM)是YUM的下一代替代品,支持更好的性能和依赖解析,依赖关系由.rpm包和仓库元数据管理。
还有源码包管理器如make和cmake,以及容器化时代的apt、yum在Docker镜像中的应用,确保软件环境的一致性。
文件系统
Linux文件系统是数据的组织结构,采用树形目录结构,所有文件和设备都从根目录()开始,主要目录包括:

- 根目录,所有文件的起点。
/home:普通用户的家目录,存储个人文件和配置。/etc:系统配置文件(如/etc/passwd存储用户信息)。/var:经常变化的文件,如日志(/var/log)、缓存(/var/cache)。/usr:用户安装的软件和程序文件(如/usr/bin存放可执行文件)。
常见文件类型包括普通文件(文本、二进制)、目录文件、设备文件(字符设备如/dev/tty,块设备如/dev/sda)、链接文件(硬链接和软链接)等,文件系统格式如ext4(支持日志功能,提高数据安全性)、XFS(适合大文件和高并发场景)、Btrfs(支持快照和压缩)等,各有优势以满足不同存储需求。
进程管理
进程是程序的一次执行过程,是Linux系统资源分配的基本单位,进程管理涉及进程的创建、调度、通信和终止。
- 进程状态:包括运行(R)、睡眠(S,可中断睡眠;D,不可中断睡眠)、停止(T,暂停执行)、僵尸(Z,进程已终止但父进程未回收)。
- 进程查看:通过
ps命令查看当前进程(如ps aux显示所有进程详细信息),top或htop实时监控进程资源占用(CPU、内存)。 - 进程控制:
kill命令发送信号终止进程(如kill -9强制终止),nice和renice调整进程优先级,nohup使进程在用户退出后继续运行。 - 进程通信:包括管道(匿名管道、命名管道)、信号、共享内存、消息队列等,实现进程间数据交换和同步。
用户与权限
Linux是多用户系统,通过用户、用户组和权限管理实现安全性。
- 用户类型:超级用户(root,UID为0,拥有最高权限)、普通用户(UID≥1000,受限权限)、系统用户(UID<1000,服务专用)。
- 用户管理:
useradd创建用户,passwd设置密码,userdel删除用户;groupadd创建用户组,gpasswd管理组成员。 - 权限管理:文件权限分为读(r)、写(w)、执行(x),分别对应数字4、2、1,权限分为三类:文件所有者(u)、所属用户组(g)、其他用户(o),通过
chmod修改权限(如chmod 755 file设置所有者读写执行,用户组和其他用户读执行),chown修改所有者和用户组,特殊权限如SUID(Set User ID,执行时以文件所有者权限运行)、SGID(Set Group ID)、粘滞位(Sticky Bit,限制目录文件删除)进一步细化权限控制。
服务与守护进程
服务是长期运行的程序,通常在后台提供特定功能(如Web服务、数据库服务),守护进程(Daemon)是服务的一种实现形式。
- 服务管理:传统使用
service命令(如service nginx start),现代系统采用systemd(如systemctl start nginx)。systemd通过.service单元文件定义服务的启动、停止、重启等操作,并支持依赖关系管理(如服务A启动前需确保服务B已运行)。 - 常见守护进程:
sshd(SSH远程登录服务)、nginx(Web服务器)、mysqld(数据库服务)、crond(定时任务服务)。 - 开机自启:通过
systemctl enable设置服务开机自动启动(如systemctl enable nginx),避免手动干预。
网络配置
Linux网络配置涉及IP地址、路由、DNS等参数的设置,支持有线、无线和虚拟网络。

- 网络接口:通过
ip addr或ifconfig查看网络接口(如eth0、wlan0),ip link set启用/禁用接口。 - IP地址配置:静态配置通过编辑
/etc/network/interfaces(Debian)或/etc/sysconfig/network-scripts/(RHEL),动态配置使用DHCP客户端(如dhclient)。 - 网络工具:
ping测试网络连通性,traceroute跟踪路由路径,netstat或ss查看网络连接(如ss -tuln监听端口),iptables或nftables配置防火墙规则。 - DNS配置:通过
/etc/resolv.conf设置DNS服务器(如nameserver 8.8.8.8),systemd-resolved提供本地DNS解析缓存服务。
虚拟化与容器化
虚拟化和容器化是Linux环境下资源隔离和应用部署的关键技术。
- 虚拟化:通过Hypervisor(如KVM、VMware)模拟硬件环境,运行多个虚拟机(VM),每个VM拥有独立的操作系统和资源,KVM是Linux内核原生支持的虚拟化技术,结合
libvirt工具管理虚拟机。 - 容器化:基于Linux内核的Namespaces(隔离进程、网络、文件系统)和Cgroups(限制资源使用)技术,实现轻量级应用隔离,Docker是最主流的容器引擎,通过镜像(Image)打包应用及其依赖,容器(Container)作为镜像的运行实例,容器共享宿主机操作系统内核,启动速度快、资源占用低,适合微服务架构和持续集成/持续部署(CI/CD)。
安全机制
Linux通过多层次安全机制保护系统安全,包括身份认证、访问控制、加密通信等。
- 身份认证:传统密码认证易受暴力破解,推荐使用SSH密钥认证(如
ssh-keygen生成密钥对)或双因素认证(2FA)。 - 访问控制:SELinux(Security-Enhanced Linux)和AppArmor Mandatory Access Control(MAC)机制,通过策略文件限制进程的访问权限(如禁止Web服务器访问敏感目录)。
- 加密通信:OpenSSL提供SSL/TLS协议实现HTTPS加密,SSH协议确保远程登录安全,IPsec用于VPN加密通信。
- 安全审计:通过
auditd服务记录系统日志、文件访问、命令执行等操作,结合grep、awk分析日志,及时发现异常行为。


















