-
基础概念与系统架构
-
Linux 的起源与发展
- Linux 起源于 Linus Torvalds 在 1991 年发布的 Linux 内核。它是一种类 Unix 操作系统,遵循开源软件的原则,众多开发者和社区围绕内核开发了各种发行版。
- 其发展得益于互联网的协作模式,如 Debian、Red Hat 等发行版的不断演进,推动了 Linux 在服务器、桌面、移动设备和嵌入式系统等领域的广泛应用。
-
Linux 系统架构
- 内核(Kernel):是 Linux 操作系统的核心,负责管理系统的硬件资源,包括 CPU、内存、磁盘 I/O 和网络设备等。例如,通过进程调度算法来分配 CPU 时间,使用内存管理模块管理物理内存和虚拟内存。
- 系统库(System Libraries):提供了一系列的函数和接口,供应用程序调用以实现各种功能,如文件操作、网络通信、图形界面等。常见的有 glibc(GNU C Library),它提供了标准 C 库函数。
- 系统工具(System Utilities):是一些用于系统管理和维护的工具程序,如文件系统管理工具(mkfs、fsck)、进程管理工具(ps、kill)、网络工具(ifconfig、ping)等。
- 应用程序(Applications):包括各种用户级别的软件,如文本编辑器(vi、nano)、办公软件(LibreOffice)、浏览器(Firefox)等。
-
-
文件系统与存储管理
-
文件系统类型
- ext 系列(ext2、ext3、ext4):ext2 是早期的 Linux 标准文件系统,具有简单高效的特点;ext3 在 ext2 基础上增加了日志功能,提高了文件系统的可靠性;ext4 进一步扩展了文件系统的功能,支持更大的文件和分区、更高的性能。
- XFS:一种高性能的日志文件系统,常用于大型服务器和高性能计算环境,能够处理大型文件和高并发的磁盘 I/O 操作。
- Btrfs:具有先进的功能,如数据和元数据校验和、快照、透明压缩等,适合用于数据存储和备份。
-
文件系统结构与目录布局
- 以根目录(/)为起点,重要目录包括 /bin(基本命令二进制文件)、/boot(系统启动文件)、/dev(设备文件)、/etc(系统配置文件)、/home(用户主目录)、/lib(共享库文件)、/media 和 /mnt(挂载外部设备)、/opt(可选软件安装目录)、/proc(虚拟文件系统,提供进程和内核信息)、/root(超级用户主目录)、/sbin(系统管理命令)、/sys(系统设备和驱动信息)、/tmp(临时文件)、/usr(用户应用程序和文件)、/var(可变数据文件,如日志)。
-
文件和目录管理命令
- 文件属性查看(ls -l):显示文件的详细信息,包括权限、所有者、所属组、大小、修改日期等。例如,“-rw - r - - r - -” 表示文件所有者有读写权限,所属组和其他用户只有读权限。
- 文件权限管理(chmod):可以使用字符模式(如 “u + rwx,g + rx,o + r”)或数字模式(如 “754”)来改变文件或目录的权限。
- 文件和目录操作(cp、mv、rm、mkdir):cp 用于复制文件或目录,mv 用于移动或重命名,rm 用于删除,mkdir 用于创建新目录。
-
-
用户与权限管理
-
用户账户管理(useradd、userdel、passwd)
- useradd 用于添加新用户,如 “useradd john”;userdel 用于删除用户,“userdel -r john”(-r 选项删除用户主目录);passwd 用于设置或修改用户密码,“passwd john”。
-
用户组管理(groupadd、groupdel、usermod)
- groupadd 用于添加新组,如 “groupadd developers”;groupdel 用于删除组,“groupadd developers”;usermod 用于修改用户所属组等信息,“usermod -g developers john” 将用户 john 所属组改为 developers。
-
权限模型与访问控制(ACL)
- 基本权限分为读(r)、写(w)、执行(x),分别对应数字 4、2、1。可以通过设置用户(user)、组(group)和其他用户(others)的权限来控制文件和目录的访问。另外,ACL(访问控制列表)可以提供更精细的权限控制,能够为特定用户或组单独设置权限。
-
-
软件包管理与安装
-
包管理系统介绍(RPM、DEB)
- RPM(Red Hat Package Manager):主要用于 Red Hat 系列发行版,如 CentOS、Fedora 等。RPM 包包含了软件的二进制文件、配置文件、文档等,通过 rpm 命令可以进行安装、卸载、升级等操作。
- DEB(Debian Package):用于 Debian 和 Ubuntu 等发行版。DEB 包的管理工具主要是 dpkg 和 apt,dpkg 用于底层的包操作,apt 提供了更高级的功能,如自动解决依赖关系。
-
软件包安装与升级(yum、apt - get/apt)
- yum(用于 RPM - based 系统):通过 “yum install package_name” 安装软件包,“yum update” 升级所有软件包。
- apt - get/apt(用于 DEB - based 系统):apt - get 是旧版的工具,apt 是更新的版本。通过 “apt - get install package_name” 或 “apt install package_name” 安装软件,“apt - get update” 或 “apt update” 更新软件包列表,“apt - get upgrade” 或 “apt upgrade” 升级软件包。
-
-
进程管理与系统监控
-
进程概念与状态(ps、top)
- 进程是正在执行的程序实例,有运行(R)、睡眠(S)、停止(T)等状态。ps 命令用于查看当前进程状态,如 “ps -ef” 显示所有进程的详细信息;top 命令动态显示系统进程资源占用情况,包括 CPU、内存等的使用率。
-
进程控制(kill、nice、renice)
- kill 命令用于终止进程,如 “kill PID”(PID 为进程标识符);nice 和 renice 用于调整进程的优先级,改变进程获取 CPU 时间的先后顺序。
-
系统性能监控(vmstat、iostat)
- vmstat 用于监控系统的虚拟内存、CPU 等使用情况,例如查看内存交换(swapping)频率来判断内存是否不足;iostat 用于监控磁盘 I/O 性能,如磁盘读写速度、I/O 等待时间等。
-
-
网络配置与管理
-
网络接口与 IP 地址配置(ifconfig/ip、nm - cli)
- ifconfig(旧版)和 ip(新版):ifconfig 用于查看和配置网络接口的 IP 地址、子网掩码等信息,如 “ifconfig eth0 192.168.1.100 netmask 255.255.255.0”;ip 命令功能更强大,如 “ip addr add 192.168.1.100/24 dev eth0” 用于添加 IP 地址。
- nm - cli(NetworkManager 命令行工具):用于管理网络连接,在支持 NetworkManager 的系统中,可以通过它来配置有线、无线和虚拟网络连接等。
-
网络服务与应用(SSH、NFS、Samba)
- SSH(Secure Shell):用于安全的远程登录和文件传输,通过 “ssh user@host” 可以远程登录到指定主机。
- NFS(Network File System):实现网络上的文件共享,通过在服务器端配置共享目录,客户端可以挂载并访问共享文件。
- Samba:用于在 Linux 和 Windows 系统之间共享文件和打印机,使得 Windows 用户能够访问 Linux 共享的资源,反之亦然。
-