Linux读书笔记
Linux概述与核心特性
Linux作为一款开源的类Unix操作系统,以其稳定性、安全性和灵活性著称,与Windows不同,Linux采用内核与用户空间分离的设计,内核负责硬件管理,而用户空间提供应用程序运行环境,其核心特性包括:

- 多用户多任务:支持多个用户同时登录,每个用户可独立运行多个程序。
- 开源免费:遵循GPL协议,源代码公开,可自由修改和分发。
- 强大的命令行工具:通过Shell脚本实现高效自动化操作。
- 高度可定制化:从内核到桌面环境均可按需配置。
Linux文件系统与目录结构
Linux文件系统采用树形结构,根目录为,所有文件和目录均从根目录展开,主要目录及其功能如下表所示:
| 目录名 | 功能描述 |
|---|---|
| 根目录,文件系统的起点 | |
/bin |
存放基本命令(如ls、cp) |
/etc |
系统配置文件(如passwd、fstab) |
/home |
用户主目录 |
/var |
动态数据(日志、邮件等) |
/usr |
用户安装的程序和文档 |
文件类型通过文件名前的标识区分:普通文件()、目录(d)、链接文件(l)、设备文件(b/c)等。
常用命令详解
Linux命令格式为命令选项 参数,以下是高频命令及用法:
文件操作
ls -la:显示所有文件(含隐藏文件)的详细信息。cp -r source_dir/ dest_dir/:递归复制目录。mv old_name new_name:重命名或移动文件。rm -rf dir/:强制递归删除目录(需谨慎使用)。
文本处理
grep "pattern" file.txt:在文件中搜索匹配行。sed 's/old/new/g' file.txt:全局替换文本内容。awk '{print $1}' file.txt:按列提取数据。
系统管理
top:实时查看进程资源占用。df -h:以可读格式显示磁盘空间。ps aux | grep process_name:过滤特定进程信息。
Shell脚本编程基础
Shell脚本通过将命令组合实现自动化任务,以下是一个简单示例:
#!/bin/bash # 计算目录下文件总数 count=$(ls -l | grep "^-" | wc -l) echo "Total files: $count"
关键语法点:

- 变量赋值:
var="value"(无空格)。 - 条件判断:
if [ $var -gt 10 ]; then ... fi。 - 循环:
for file in *; do echo $file; done。
用户与权限管理
Linux通过r(读)、w(写)、x(执行)权限位控制文件访问权限,权限修改命令:
chmod 755 script.sh:设置所有者可读写执行,组和其他用户可读执行。chown user:group file.txt:修改文件所有者和所属组。
sudo命令允许普通用户以管理员权限执行操作,需配置/etc/sudoers文件。
软件包管理
不同发行版采用不同的包管理工具:
| 发行版 | 包管理工具 | 示例命令 |
|---|---|---|
| Debian/Ubuntu | apt | sudo apt install nginx |
| CentOS/RHEL | yum/dnf | sudo dnf install httpd |
| Arch Linux | pacman | sudo pacman -S firefox |
网络配置与工具
Linux网络配置主要通过/etc/network/interfaces(Debian)或nmcli命令实现,常用网络工具:
ifconfig/ip addr:查看网络接口信息。ping 8.8.8.8:测试网络连通性。ssh user@remote_host:安全远程登录。netstat -tuln:监听的网络端口。
进程管理与服务控制
- 前台/后台进程:
command &(后台运行),jobs(查看任务),fg %1(切换前台)。 - 系统服务:
systemctl start nginx(启动服务),systemctl enable nginx(开机自启)。
日志分析与故障排查
Linux日志通常存储在/var/log/下,关键日志包括:

/var/log/syslog:系统日志。/var/log/auth.log:认证日志。/var/log/kern.log:内核日志。
使用journalctl -xe查看系统日志详情,结合grep快速定位问题。
学习建议与资源推荐
- 实践驱动:通过虚拟机(如VirtualBox)搭建实验环境。
- 书籍推荐:
- 《鸟哥的Linux私房菜》
- 《Linux命令行与Shell脚本编程大全》
- 在线资源:
- Linux Documentation(man pages)
- Linux Journey(交互式教程)
通过系统学习和持续实践,逐步掌握Linux的核心技能,为运维、开发或安全领域打下坚实基础。