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的核心技能,为运维、开发或安全领域打下坚实基础。