第 3 章:文件系统与基本命令
学习目标
- 理解 Linux 文件系统结构
- 掌握文件操作命令
- 学会使用通配符和重定向
3.1 文件系统结构
Linux 采用树形目录结构,根目录为 /。
重要目录
/
├── bin/ # 基本命令
├── etc/ # 配置文件
├── home/ # 用户主目录
├── usr/ # 用户程序
├── var/ # 可变数据
├── tmp/ # 临时文件
└── dev/ # 设备文件
路径概念
绝对路径:从根目录开始
/home/user/project/main.c
相对路径:从当前目录开始
./project/main.c
../other/file.txt
特殊符号:
~:用户主目录.:当前目录..:上级目录
3.2 基本命令
目录操作
# 查看当前目录
pwd
# 切换目录
cd /path/to/dir
cd ~ # 回到主目录
cd - # 回到上一个目录
# 列出文件
ls # 简单列出
ls -l # 详细信息
ls -lh # 人类可读的大小
ls -a # 显示隐藏文件
ls -lah # 组合使用
# 创建目录
mkdir dir
mkdir -p a/b/c # 递归创建
文件操作
# 创建文件
touch file.txt
echo "content" > file.txt
# 查看文件
cat file.txt # 全部内容
less file.txt # 分页查看
head -n 10 file.txt # 前10行
tail -n 10 file.txt # 后10行
tail -f log.txt # 实时查看
# 复制
cp source.txt dest.txt
cp -r dir1/ dir2/ # 递归复制目录
# 移动/重命名
mv old.txt new.txt
mv file.txt /path/to/
# 删除
rm file.txt
rm -r dir/ # 递归删除目录
rm -rf dir/ # 强制删除(危险!)
3.3 通配符
# * 匹配任意字符
ls *.c # 所有.c文件
ls test* # test开头的文件
# ? 匹配单个字符
ls file?.txt # file1.txt, file2.txt
# [] 匹配范围
ls [abc]*.txt # a/b/c开头的txt文件
ls file[0-9].c # file0.c到file9.c
3.4 重定向与管道
重定向
# 输出重定向
echo "hello" > file.txt # 覆盖
echo "world" >> file.txt # 追加
# 输入重定向
wc -l < file.txt
# 错误重定向
command 2> error.log
command &> all.log # 标准输出和错误
管道
# 组合命令
ls -l | grep ".c"
cat file.txt | wc -l
ps aux | grep python | wc -l
实践练习
完成以下任务:
# 1. 创建目录结构
mkdir -p ~/xuptarch/{src,build,docs}
# 2. 创建文件
cd ~/xuptarch/src
touch main.c utils.c utils.h
# 3. 写入内容
echo "#include <stdio.h>" > main.c
echo "int main() { return 0; }" >> main.c
# 4. 查看和统计
ls -lh
find . -name "*.c" | xargs wc -l
# 5. 备份
cp -r ~/xuptarch ~/xuptarch_backup