Linux 基础知识完整笔记
都是很碎的知识点,之后再做整理XD
一、Linux 基础概述
1. 什么是 Linux?
- 定义:Linux 是一种开源的、类 Unix 操作系统,由 Linus Torvalds 于 1991 年创建。
- 组成:以内核(Kernel)为核心,结合用户空间工具和应用程序构成完整系统。
- 特点:
- 开源免费:源代码公开,可自由使用、修改和分发。
- 稳定可靠:全球开发者社区维护,广泛用于服务器和嵌入式设备。
- 安全:强大的权限管理和安全机制。
- 高效灵活:资源管理高效,可高度定制。
- 发行版:Linux 内核搭配不同软件形成完整系统,常见发行版包括 Ubuntu、Debian、Fedora、CentOS、Red Hat Enterprise Linux (RHEL)、openSUSE 等。
2. 进程与程序
- 程序:静态的磁盘文件,可执行但未运行,是指令序列和数据。
- 进程:程序在内存中运行的动态实例,拥有独立地址空间和资源。
- 进程类型:
- 前台进程:与用户交互,直接在终端运行。
- 后台进程(守护进程,daemon):在后台运行,独立于终端,通常为系统服务(如 Web 服务器、数据库服务),常以“d”结尾,如
sshd(SSH服务)、crond(定时任务)。
二、进程管理
1. 进程基础
- 进程标识符:
- PID(Process ID):每个进程的唯一数字标识。
- PPID(Parent Process ID):父进程的 PID。
- init 进程:PID 为 1,所有进程的祖先,由内核创建,负责启动系统服务。
- 查看进程:
ps aux:显示所有进程的详细信息。ps -ef:显示所有进程,包括父进程信息。top:动态显示进程状态,类似任务管理器。htop:top的增强版,提供更友好的界面,显示CPU和内存使用。
2. 进程状态
- 常见状态:
- Running (R):运行或等待运行。
- Sleeping (S):等待事件(如 I/O),分为可中断(Interruptible)和不可中断(Uninterruptible,D)。
- Stopped (T):暂停(如 Ctrl+Z)。
- Zombie (Z):进程已终止但未被父进程回收,可用
ps aux查看‘Z’标记。 - Ready:等待 CPU 资源。
- 状态转换:
- Running -> Sleeping:等待事件。
- Sleeping -> Running:事件触发。
3. 进程控制
- 常用命令:
kill -9 PID:强制终止进程(SIGKILL),慎用以避免数据丢失。kill -15 PID:正常终止进程(SIGTERM)。pgrep name:按名称查找 PID。pkill name:按名称终止进程。jobs:查看当前 shell 的后台作业。bg:将作业置于后台。fg:将作业置于前台。nohup command &:后台运行命令,终端关闭不中断。
- 进程优先级:
- nice 值:范围 -20(高)到 19(低),默认 0。
nice -n 10 command:以 nice 值 10 启动命令。renice 5 PID:修改运行中进程的 nice 值。
4. 进程间通信 (IPC)
- 定义:进程间交换数据或信息的机制。
- 常见方式:
- 管道 (Pipe):单向通信,常用于父子进程(如
ls | grep pattern)。 - 命名管道 (Named Pipe/FIFO):无亲缘进程通信,创建:
mkfifo mypipe,写入:echo "Hello" > mypipe,读取:cat < mypipe,检查:ls -l mypipe(显示类型为‘p’)。 - 其他方式:共享内存(速度快但需同步)和消息队列(适合传递小数据)。
- 管道 (Pipe):单向通信,常用于父子进程(如
三、系统启动与服务管理
1. 启动流程
- 步骤:
- BIOS/UEFI 自检:硬件检测。
- 引导加载程序(如 GRUB):加载内核。
- 内核初始化:初始化硬件,创建 init 进程。
- init 进程启动:启动服务和用户登录。
- 运行级别:
- 0:关机
- 1:单用户模式
- 3:多用户文本模式
- 5:多用户图形模式
- 6:重启
- 查看:
runlevel
2. systemd 服务管理
- 定义:现代 Linux 服务管理器,替代 SysVinit。
- 常用命令:
systemctl start service:启动服务。systemctl stop service:停止服务。systemctl restart service:重启服务。systemctl status service:查看服务状态。systemctl enable service:设置服务开机自启动。systemctl disable service:取消服务开机自启动。
四、网络基础
1. 网络协议
- TCP/IP:四层模型(应用、传输、网络、数据链路)。
- 常见协议:
- TCP(Transmission Control Protocol):可靠、面向连接,通过三次握手建立连接,确保数据顺序到达,适用于文件传输(如HTTP下载)。
- UDP(User Datagram Protocol):无连接、不可靠,适用于实时性要求高、可靠性要求低的场景(如实时视频流)。
- 端口示例:
- HTTP:TCP 80
- DNS:UDP 53
2. 网络配置
- IP 地址:如 192.168.1.1,用于标识网络中的主机。
- 子网掩码:区分网络地址和主机地址。
- 网关:连接不同网络的设备(如路由器)。
- DNS 服务器:域名解析为 IP 地址。
- 常用命令:
ip addr:查看或配置网络接口的 IP 地址。ping www.google.com:测试网络连通性,返回延迟时间。traceroute www.google.com:追踪数据包的路由路径。ss -tuln:查看开放的 TCP/UDP 端口。
3. 防火墙
- iptables:规则管理网络流量。
- firewalld:动态管理,提供区域和服务配置。
- ufw:简单易用的防火墙工具。
五、文件系统(简要补充,基于原始笔记逻辑)
1. 文件系统类型
- ext4:常见、可靠。
- XFS:高性能,大容量。
- Btrfs:支持快照。
- FAT32/NTFS:兼容 Windows。
2. 目录结构
- 根目录:
/ - 常见目录:
/bin:常用命令。/etc:配置文件。/home:用户家目录。/var:变化数据(如日志)。/tmp:临时文件。
3. 文件操作
- 常用命令:
ls -l:列目录详情。cd /path:切换目录。mkdir dir:创建目录。rm -r file:删除文件/目录。cp src dest:复制。mv src dest:移动/重命名。touch file:创建空文件。
4. 磁盘管理
- 分区:
fdisk /dev/sda - 格式化:
mkfs.ext4 /dev/sda1 - 挂载:
mount /dev/sda1 /mnt - 常用命令:
df -h:磁盘空间。du -sh dir:目录大小。
六、Shell 编程(简要补充,基于原始笔记逻辑)
1. 什么是 Shell?
- 定义:命令行解释器,用户与内核交互。
- 类型:bash(常用)、sh、zsh。
2. Shell 脚本
- 特点:自动化任务。
- 示例:以
#!/bin/bash开头,chmod +x script.sh,运行./script.sh。
3. 基本语法
- 变量:
var=value,使用$var。 - 条件:
if [ -e file ]; then ... fi。 - 循环:
for i in 1 2 3; do ... done。