学习目标

  • 理解 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

下一步

第 4 章:Shell 编程基础

更新时间: