大家好,Linux 是后端开发、运维、数据科学等领域不可或缺的操作系统。无论是部署项目、管理服务器,还是日常开发调试,掌握 Linux 基础指令都是必备技能。本文将系统性地讲解 Linux 中文件与目录管理 、文件操作 、文本查看与处理等核心命令,帮助你快速上手。
一、目录与路径操作
1.1 查看当前路径:pwd
pwd用于显示当前所在的目录路径。
pwd
# /home/username/projects
1.2 查看目录内容:ls
ls(List)用于列出目录中的文件和文件夹。
| 常用选项 | 说明 |
|---|---|
-l |
以列表形式展示详细信息 |
-a |
显示所有文件(包括以 . 开头的隐藏文件) |
-h |
以人类可读的方式显示文件大小(KB、MB、GB) |
-alh |
组合使用:显示所有文件的详细信息,大小人性化显示 |
bash
ls # 显示当前目录的文件和文件夹
ls -l # 列表形式展示详细信息
ls -a # 显示所有文件(包括隐藏文件)
ls -lh # 列表展示,大小人性化显示
ls -alh # 显示所有文件的详细信息
# 列表信息说明
# drwxr-xr-x 第一个字母:d 代表文件夹,- 代表文件
# -rw-r--r-- 文件权限信息
1.3 切换目录:cd
cd(Change Directory)用于切换当前工作目录。
| 命令 | 说明 |
|---|---|
cd / |
进入根目录 |
cd ~ |
回到家目录 |
cd .. |
进入父级目录(上级目录) |
cd - |
回到上次所在的路径 |
cd 目录名 |
进入指定目录 |
cd / # 进入根目录
cd /home # 进入 /home 目录
cd .. # 回到上一级目录
cd ../.. # 回到上两级目录
cd ~ # 回到家目录
cd - # 回到上次所在的路径
cd projects/ # 进入当前目录下的 projects 文件夹
二、文件和目录的创建与删除
2.1 创建目录:mkdir
mkdir用于创建新目录。
| 选项 | 说明 |
|---|---|
-p |
递归创建多级目录 |
mkdir my_folder # 创建单个文件夹
mkdir -p a/b/c # 创建多级目录(如果父目录不存在则自动创建)
mkdir dir1 dir2 dir3 # 同时创建多个目录
2.2 创建文件:touch
touch 用于创建空文件,或更新已有文件的时间戳。
touch file.txt # 创建空文件
touch file1.txt file2.txt # 同时创建多个文件
touch existing_file.txt # 更新文件的时间戳(如果文件已存在)
2.3 删除目录:rmdir 与 rm -rf
| 命令 | 说明 |
|---|---|
rmdir 目录名 |
删除空目录 |
rm -rf 目录名 |
强制删除非空目录(谨慎使用) |
rm 文件名 |
删除文件 |
rmdir empty_folder # 删除空文件夹
rm -rf my_folder # 强制删除文件夹(含所有子文件)
rm file.txt # 删除文件
rm -f file.txt # 强制删除文件(不提示确认)
⚠️ 警告 :rm -rf 是非常强大的命令,使用不当可能导致数据丢失,请务必确认删除的对象。
三、文件复制、移动与链接
3.1 复制文件:cp
cp用于复制文件或目录。
# 基本用法
cp 源文件 目标路径/
# 复制到目录(保持原名)
cp file.txt /home/user/backup/
# 复制并重命名
cp file.txt /home/user/backup/new_name.txt
# 复制目录(需要 -r 选项)
cp -r source_folder/ target_folder/
| 常用选项 | 说明 |
|---|---|
-r |
递归复制(复制目录时使用) |
-i |
覆盖前提示确认 |
3.2 移动/重命名:mv
mv用于移动文件或目录,也可用于重命名。
# 移动文件到目录
mv file.txt /home/user/documents/
# 移动并重命名
mv file.txt /home/user/documents/new_name.txt
# 重命名(在同一目录下)
mv old_name.txt new_name.txt
# 移动目录
mv my_folder/ /home/user/backup/
3.3 硬链接与软链接
硬链接 和软链接都是文件系统中的链接方式,但行为不同。
| 特性 | 硬链接 | 软链接 |
|---|---|---|
| 命令 | ln 源文件 链接名 |
ln -s 源文件 链接名 |
| 能否链接目录 | ❌ 不能 | ✅ 可以 |
| 文件大小 | 与源文件一致 | 非常小(类似快捷方式) |
| 修改同步 | 修改任一文件,另一个同步更新 | 修改任一文件,另一个同步更新 |
| 删除源文件 | 链接文件仍然可用 | 链接文件失效 |
| 本质 | 同一份数据的多个入口 | 指向源文件的指针 |
# 硬链接
ln file.txt hard_link.txt
# 修改 hard_link.txt,file.txt 也会变化
# 删除 file.txt,hard_link.txt 仍然可用
# 软链接
ln -s file.txt soft_link.txt
# 修改 soft_link.txt,file.txt 也会变化
# 删除 file.txt,soft_link.txt 失效
四、查看文件内容
4.1 查看整个文件:cat
cat 一次性显示文件的全部内容。
cat file.txt # 查看文件全部内容
cat file1.txt file2.txt # 同时查看多个文件
4.2 查看文件开头:head
head 显示文件的前 N 行(默认 10 行)。
head file.txt # 显示前 10 行
head -n 5 file.txt # 显示前 5 行
head -n 20 file.txt # 显示前 20 行
4.3 查看文件末尾:tail
tail 显示文件的末尾 N 行(默认 10 行)。
tail file.txt # 显示末尾 10 行
tail -n 5 file.txt # 显示末尾 5 行
tail -f log.txt # 实时追踪文件新增内容(常用于查看日志)
4.4 分页查看:less / more
当文件内容很多时,使用分页查看更方便。
less file.txt # 分页查看(按 q 退出)
more file.txt # 分页查看(按 q 退出)
| 快捷键 | 说明 |
|---|---|
空格键 |
向下翻一页 |
Enter |
向下翻一行 |
b |
向上翻一页 |
q |
退出 |
/关键词 |
搜索关键词 |
n |
查找下一个匹配 |
五、统计与文本处理
5.1 统计:wc
wc(Word Count)用于统计文件的行数、单词数和字符数。
| 选项 | 说明 |
|---|---|
-l |
统计行数(line) |
-w |
统计单词数(word) |
-m |
统计字符数(character) |
wc file.txt # 显示行数、单词数、字符数
wc -l file.txt # 仅显示行数
wc -w file.txt # 仅显示单词数
wc -m file.txt # 仅显示字符数
5.2 过滤:grep
grep 用于在文件中搜索匹配的文本行。
# 基本用法
grep "关键词" file.txt
# 常用选项
grep -n "error" log.txt # 显示匹配行及其行号
grep -i "error" log.txt # 忽略大小写
grep -v "debug" log.txt # 排除匹配的行(反向匹配)
# 在多个文件中搜索
grep "TODO" *.py # 搜索所有 Python 文件
# 递归搜索目录
grep -r "function" . # 在当前目录及子目录中搜索
5.3 重定向:> 与 >>
| 操作符 | 说明 |
|---|---|
> |
覆盖写入(如果文件已存在,会覆盖原内容) |
>> |
追加写入(在原文件末尾追加内容) |
# 将命令输出保存到文件(覆盖)
ls -alh / > info.txt
# 将命令输出追加到文件末尾
ls -alh / >> info.txt
# 将多个命令结果合并
date > log.txt
echo "操作完成" >> log.txt
5.4 管道:|
管道 | 将左侧命令的输出作为右侧命令的输入,实现命令的组合。
# 查看当前目录内容并分页
ls -alh | less
# 查找包含 "error" 的行并显示行号
cat log.txt | grep -n "error"
# 统计当前目录下文件数量
ls -l | grep "^-" | wc -l
# 查看系统进程并筛选
ps aux | grep python
六、常用命令速查表
| 命令 | 说明 |
|---|---|
pwd |
显示当前路径 |
ls -alh |
列出目录内容(含隐藏文件,详细信息,人性化大小) |
cd / |
进入根目录 |
cd .. |
进入父级目录 |
cd ~ |
回到家目录 |
mkdir 文件夹名 |
创建文件夹 |
mkdir -p a/b/c |
创建多级目录 |
touch 文件名 |
创建文件 |
rm 文件名 |
删除文件 |
rm -rf 文件夹名 |
强制删除文件夹 |
cp 源 目标 |
复制文件 |
mv 源 目标 |
移动/重命名文件 |
ln -s 源 链接名 |
创建软链接 |
cat 文件名 |
查看整个文件 |
head -n 10 文件名 |
查看前10行 |
tail -n 10 文件名 |
查看末尾10行 |
tail -f 文件名 |
实时追踪文件变化 |
less 文件名 |
分页查看 |
wc -l 文件名 |
统计行数 |
grep "关键词" 文件名 |
搜索文本 |
grep -n "关键词" 文件名 |
搜索并显示行号 |
命令 > 文件 |
重定向输出(覆盖) |
命令 >> 文件 |
重定向输出(追加) |
| `命令1 | 命令2` |
七、总结
| 分类 | 核心命令 |
|---|---|
| 目录操作 | pwd、ls、cd |
| 创建与删除 | mkdir、touch、rmdir、rm -rf |
| 复制与移动 | cp、mv |
| 链接 | ln、ln -s |
| 文件查看 | cat、head、tail、less |
| 文本处理 | wc、grep |
| 重定向与管道 | >、>>、` |
Linux 指令的学习重在实践。建议在日常开发中多使用终端操作,逐步形成肌肉记忆。这些基础命令是后续学习 Shell 脚本、服务器运维和自动化部署的重要基础。
如果觉得这篇内容对你有帮助,欢迎收藏备用。