全文目录
-
- [1 确认当前工作路径](#1 确认当前工作路径)
- [2 导航与目录管理](#2 导航与目录管理)
-
- [2.1 关键命令](#2.1 关键命令)
- [2.2 逻辑衔接](#2.2 逻辑衔接)
- [3 文件基础操作](#3 文件基础操作)
-
- [3.1 创建 → 备份 → 重命名 → 清理](#3.1 创建 → 备份 → 重命名 → 清理)
- [3.2 文件查看和编辑](#3.2 文件查看和编辑)
- [3.3 文件链接](#3.3 文件链接)
- [3.4 文件diff](#3.4 文件diff)
- [4 文件权限与所有权管理](#4 文件权限与所有权管理)
- [5 文件打包与归档](#5 文件打包与归档)
- [6 参考文献](#6 参考文献)
写在前面
shell是一种命令解释器,它提供了用户和操作系统之间的交互接口。shell是面向命令行的,
而 X Window 则是图形界面。你在命令行输入命令,shell进行解释,然后送往操作系统执行。
shell可以执行 Linux 的系统内部命令,也可以执行应用程序。
本文从用户登陆到工作台之后实际对文件的访问流程来阐述,通过实际场景串联命令,展现从文件操作的完整流程,帮助读者理解命令间的逻辑关联。
1 确认当前工作路径
用户初登工作台,默认的工作路径为家目录(/home/username),如下
bash
# 确认当前目录
pwd # 输出:/home/username,定位当前目录,用户明确操作位置
# 查看当前目录内容,列出文件或目录下的文件名
ls -l # 详细列表(文件类型、权限、大小等)

- 语法说明: ls [-atFlgR] [name]
bash
ls # 列出目前目录下的文件名
ls -a # 列出包括以 .开始的隐藏文件的所有文件名
ls -t # 依照文件最后修改时间的顺序列出文件名
ls -F # 列出当前目录下的文件名及其类型。以/结尾表示为目录名,以*结尾表示为可执行文件,以@结尾表示为符号连接
ls -l # 列出目录下所有文件的权限、所有者、文件大小、修改时间及名称
ls -lg # 同上,并显示出文件的所有者工作组名
ls -R # 显示出目录下以及其所有子目录的文件名
2 导航与目录管理
2.1 关键命令
bash
# 切换至工作目录(假设为项目目录)
cd ~/projects
# 创建新目录(用于存放临时文件)
mkdir temp_files
# 确认目录结构
tree -L 2 # 显示2级目录树(需安装 tree 工具)
- 语法说明:cd [name]
bash
name:目录名、路径或目录缩写
cd # 改变目录位置至用户登录时的工作目录
cd dir # 改变目录位置至d i r目录下
cd user # 改变目录位置至用户的工作目录
cd ~ # 返回家目录
cd .. # 改变目录位置至当前目录的父目录(上一级目录)
cd ../user # 改变目录位置至相对路径 user 的目录下
cd /root/etc # 改变目录位置至绝对路径的目录位置下
- 语法说明: mkdir 目录名
bash
mkdir tmp # 建立一新目录 tmp
mkdir [-mp] 目录名称 # 建立一个新目录
rmdir 目录名称 # 删除一个空目录(仅能删除空的目录)
2.2 逻辑衔接
- 创建目录后进行操作,避免文件散落混乱,体现规范性。
3 文件基础操作
3.1 创建 → 备份 → 重命名 → 清理
- 场景模拟:创建 → 备份 → 重命名 → 清理,展现文件的完整生命周期管理
bash
# 1. 创建空文件(准备编辑)
touch report.txt
# 2. 复制文件到备份目录(保留原文件)
cp report.txt temp_files/report_backup.txt -v # -v 显示操作详情
# 3. 重命名文件(更清晰的命名)
mv report.txt sales_report_2023.txt
# 4. 删除临时目录中的旧备份(清理冗余)
rm temp_files/old_backup/*.txt -i # -i 交互式确认删除
- 语法说明:touch name # name:文件名或目录名
bash
touch report.txt #新建一个空文件
- 语法说明: cp [-r] 源地址 目的地址
bash
cp file1 file2 # 将文件 file1 复制成 file2
cp file1 dir1 # 将文件 file1 复制到目录 dir1 下,文件名仍为 file1
cp /tmp/file1 . # 将目录 /tmp 下的文件 file1 复制到当前目录下,文件名仍为 file1
cp /tmp/file1 file2 # 将目录 /tmp 下的文件 file1 复制到当前目录下,文件名为file2
cp -r dir1 dir2 # 复制整个目录
- 语法:mv 源地址 目的地址
bash
mv file1 file2 # 将文件 file1 更名为 file2
mv file1 dir1 # 将文件 file1 移到目录 dir1 下,文件名仍为 file1
mv dir1 dir2 # 将目录 dir1 更名为 dir2
- 语法说明: rm 文件名
bash
rm a.txt # 删除文件a.txt
rm -r a/ # 删除目录a及文件
rm file? # 删除文件名中有五个字符且前四个字符为 file 的所有文件
rm f* # 删除文件名中以 f 为字首的所有文件
rm [-fir] 档案或目录 # 移除档案或目录
- 语法: rmdir 目录名 或 rm 目录名
bash
rmdir dir1 # 删除目录 dir1,但 dir1 下必须没有文件存在,否则无法删除
rm -r dir1 # 删除目录 dir1 及其子目录下所有文件,有文件也可以删
3.2 文件查看和编辑
- 场景模拟:日志分析与数据提取
bash
# 1. 查看文件全部内容(短文件)
cat sales_report_2023.txt
# 2. 分页查看长日志(支持翻页搜索)
less system.log
# 3. 提取关键错误信息(过滤日志)
grep -i "error" system.log --color=auto
# 4. 查看文件尾部实时更新(监控日志)
tail -f system.log
详细文件查看命令可前往查看博文,《Linux日志处理命令完全解构》 和 《 全面理解Linux 系统日志:核心文件与查看方法》进行详细的了解和学习。
- 文件编辑
bash
nano draft.txt # 使用nano简易编辑器
vim notes.md # 使用vim高效编辑(`:wq`保存退出)
提示:初学者可从nano入手,逐步学习vim快捷键。
3.3 文件链接
同一文件,可拥有一个以上的名称,也就是把一个文件进行链接。
- 硬连接
bash
语法说明:ln 老文件名 新文件名
ln source.txt hard_link.txt # 将文件 source.txt 链接至文件 hard_link.txt
核心作用 :
1 、多路径访问 :允许一个文件通过多个路径名访问,删除任一硬链接不影响其他链接对文件数据的访问。2、防误删保护 :通过创建重要文件的硬链接,即使原始路径被删除,仍可通过其他硬链接访问数据。
3、节省磁盘空间 :所有硬链接共享同一 inode 和数据块,不额外占用存储空间。适用场景:
1、需要备份关键文件但避免重复存储。
2、同一文件需在不同目录下高频访问(如日志文件共享)。
- 软链接
bash
语法说明:ln -s 老文件名 新文件名
ln -s file3 file4 # 将文件 file4 链接至文件file3
核心作用:
1、跨文件系统引用 :可指向不同磁盘或分区的文件/目录。
2、快捷访问 :类似 Windows 快捷方式,简化长路径操作(如 /usr/local/bin 下创建常用脚本的软链接)。
3、动态路径映射 :通过修改软链接指向快速切换配置文件版本或环境(如开发/生产环境配置切换)。
4、节省空间与提升可移植性 :避免重复存储大文件,且路径变更后仅需更新软链接指向。适用场景:
1、目录引用(硬链接无法直接链接目录)。
2、动态库版本管理(如 libpython.so → libpython3.9.so)。
3.4 文件diff
有时我们会遇到对比文件的不同diff的情况
- 语法说明:
diff [-r] name1 name2 # name1 name2:可同时为文件名或目录名
bash
diff file1 file2 比较文件 file1 与 file2 内各行的不同之处
diff -r dir1 dir2 比较目录 dir1 与 dir2 内各文件的不同之处
4 文件权限与所有权管理
- 场景模拟:协作与安全控制
bash
# 1. 修改文件权限(禁止组用户写入)
chmod g-w sales2025.txt
# 2. 更改文件所有者(移交管理权)
sudo chown newowner:sales2025.txt
# 3. 设置目录权限(递归生效)
chmod -R 750 tempfiles/ # 所有者:rwx,组:r-x,其他:无权限
- 语法说明:
chmod [-R] mode name # 改变文件或目录的读、写、执行权限
bash
name :文件名或目录名。
mode: 3个8位数字或rwx的组合
r - read (读)、w - write (写)、x - execute (执行)
u - user (当前用户)、g - group(组)、o - other(其他用户)
chmod 755 dir1 # 对于目录dir1,设定成任何使用者皆有读取及执行的权利,但只有所有者可做修改
chmod 700 file1 # 对于文件file1,设定只有所有者可以读、写和执行的权利
chmod u+x file2 # 对于文件file2,增加当前用户可以执行的权利
chmod g+x file3 # 对于文件file3,增加工作组使用者可执行的权利
chmod o-r file4 # 对于文件file4,删除其他使用者可读取的权利
- 语法说明:
chown [-R] 用户名 name # 改变文件或目录的所有权 ,name:文件名或目录名
bash
chown user file1 # 将文件 file1 改为用户 user 所有
chown -R user dir1 # 将目录 dir1 及其子目录下面的所有文件改为用户 user 所有
- 语法说明:
chgrp [-R] 工作组名 name # 改变文件或目录工作组所有权,name:文件名或目录名
bash
groups # 检查自己所属的工作组名称
chgrp lsi file1 # 将文件 file1 的工作组所有权改为 lsi 所有
chgrp -R im dir1 # 将目录dir1 及其子目录下面的所有文件,改为 im 工作组所有
- 安全提示
使用 sudo 需谨慎 ,避免过度授权
chmod 777 是危险操作,应明确业务需求
5 文件打包与归档
- 场景模拟:数据备份与传输
bash
# 1. 打包项目目录(保留权限和子目录)
tar -czvf project_backup.tar.gz ~/projects
# 2. 解压到新目录(校验文件完整性)
tar -xzvf project_backup.tar.gz -C /backup/
# 3. 快速压缩单个文件(节省空间)
gzip sales_report_2023.txt # 生成 .gz 文件
6 参考文献
写在最后
文章整体从文件操作场景入手,带读者进行了文件操作的全流程解析说明,将其中用到的linux命令进行了详细的分析,如有任何问题,请您评论指正,希望对您有所帮助,觉得有用,也欢迎点赞和收藏。我们共同努力,一起进步!