访问 Linux 文件可通过终端使用
ls
列目录,
cd
切换路径,
cat/more/less
查看内容;也可用文本编辑器修改;图形界面则通过文件管理器操作,注意权限
在Linux系统中,文件访问是日常操作的核心技能之一,无论是通过命令行还是图形化界面,掌握高效的文件访问方式能显著提升工作效率,以下将从基础概念、核心命令、进阶技巧、权限控制、远程访问五个维度展开详细说明,并附实际操作示例与注意事项。
Linux文件系统核心概念
目录结构特点
层级 |
作用 |
典型示例 |
根目录 |
所有路径起点 |
/home |
普通用户主目录 |
/home/username |
/etc |
系统配置文件存储 |
/etc/passwd |
/var |
可变数据(日志、缓存) |
/var/log/syslog |
/mnt |
临时挂载点 |
U盘/光盘自动挂载至此 |
当前用户家目录快捷表示 |
等同于/home/username |
关键术语解析
- 绝对路径:从根目录开始的完整路径(例:
/usr/local/bin
)
- 相对路径:基于当前工作目录的路径(例:
../documents/report.txt
)
- 通配符:匹配任意字符序列,匹配单个字符,
[...]
匹配括号内任一字符
- 特殊符号:代表当前目录,代表上级目录,代表用户家目录
命令行文件访问实战
基础导航命令
命令 |
功能 |
常用参数 |
示例 |
pwd |
显示当前工作目录 |
无 |
$ pwd → /home/user/projects |
cd |
切换目录 |
返回上层,回家目录 |
$ cd ~/downloads |
ls |
列出目录内容 |
-l 长格式,-a 含隐藏文件 |
$ ls -la |
mkdir |
创建新目录 |
-p 递归创建多级目录 |
$ mkdir -p data/images/raw |
touch |
创建空文件/更新时间戳 |
无 |
$ touch config.ini |
文件查看与编辑
需求 |
推荐命令 |
用法示例 |
特点 |
快速查看文本 |
cat |
cat /etc/os-release |
一次性显示全部内容 |
分页查看长文件 |
less /more |
less /var/log/syslog |
支持上下滚动,q 退出 |
交互式编辑 |
nano /vim /vi |
nano notes.md |
nano适合新手,vim功能强大 |
二进制文件查看 |
hexdump /od |
hexdump -C file.bin |
以十六进制+ASCII形式显示 |
文件操作组合技
# 复制文件并保留属性
cp --preserve=all source.txt destination.txt
# 移动文件至指定目录(本质是重命名)
mv oldname.jpg /pictures/vacation/
# 强制删除只读文件
rm -f readonly.lock
# 批量重命名(将.JPG转为.jpg)
rename 's/.JPG$/.jpg/' .JPG
# 查看文件类型及编码
file --mime-encoding unknown_file
进阶文件管理技巧
通配符高级应用
模式 |
匹配对象 |
示例匹配结果 |
prefix |
以前缀开头的所有文件 |
config.prod , config.dev |
.log |
所有.log扩展名文件 |
error.log , access.log |
img??.png |
名称为img后跟两位数字的PNG |
img01.png , img99.png |
backup.[!0-9] |
backup开头且不含数字的文件 |
backup-alpha , backup-beta |
管道与重定向
操作类型 |
符号 |
用途 |
示例 |
标准输入 |
< |
作为命令输入 |
sort < unsorted.txt |
标准输出 |
> |
覆盖写入文件 |
ls > dir_list.txt |
追加输出 |
>> |
在文件末尾追加内容 |
echo "new line" >> log.txt |
错误输出 |
2> |
将错误信息重定向到文件 |
command 2> error.log |
管道连接 |
前一条命令的输出作为后一条命令输入 |
ps aux | grep httpd |
压缩打包操作
操作 |
命令 |
常用参数 |
示例 |
打包+压缩 |
tar -zcf |
-z gzip, -c 创建, -f 指定文件名 |
tar -zcf archive.tar.gz files/ |
解压 |
tar -xzf |
-x 解压, -z gzip, -f 文件名 |
tar -xzf archive.tar.gz |
ZIP压缩 |
zip |
-r 递归目录 |
zip project.zip src/ |
RAR压缩 |
rar a |
-r 递归, -ep 排除路径 |
rar a backup.rar -ep1 ./ |
权限与安全控制
权限体系详解
每个文件/目录具有三组权限:
- 所有者(owner):文件属主
- 所属组(group):同组用户
- 其他用户(others):剩余用户
权限符号 |
含义 |
rwx对应数值 |
r |
读权限 |
4 |
w |
写权限 |
2 |
x |
执行权限 |
1 |
无权限 |
0 |
权限修改命令
命令 |
功能 |
示例 |
危险操作警告 |
chmod |
修改权限模式 |
chmod 644 secret.txt |
慎用777 ,可能导致安全隐患 |
chown |
修改所有者/所属组 |
chown root:admin system.conf |
仅root可修改系统文件所有者 |
umask |
设置新建文件默认权限掩码 |
umask 0022 (默认0022) |
影响终端新建文件的初始权限 |
特殊权限位
特殊权限 |
符号 |
作用 |
设置方法 |
SUID |
s |
使文件以所有者身份执行而非当前用户 |
chmod u+s program |
SGID |
s |
目录中新建文件继承目录的所属组 |
chmod g+s shared_dir |
Sticky Bit |
t |
允许用户删除自己的文件,管理员可删他人文件 |
chmod +t /tmp |
远程文件访问方案
SSH文件传输
操作类型 |
命令 |
参数说明 |
示例 |
上传文件 |
scp local_file user@remote:/path |
-P 指定非默认端口(22) |
scp id_rsa key.pem user@server:~/.ssh/ |
下载文件 |
scp user@remote:/path/file . |
-i 指定私钥文件 |
scp -i ~/.ssh/id_rsa user@server:/data/ . |
交互式传输 |
sftp user@remote |
类似FTP的交互式操作 |
sftp> get remote_file |
网络文件系统
协议 |
适用场景 |
挂载命令示例 |
特点 |
NFS |
局域网共享 |
mount server:/share /mnt/nfs |
高性能,适合内网 |
SMB/CIFS |
Windows域兼容 |
sudo mount -t cifs //server/share /mnt/smb |
跨平台支持,需认证 |
WebDAV |
HTTP协议的文件管理 |
curl -T local.pdf https://webdav.example.com/remote.pdf |
通过浏览器直接管理 |
常见错误排查
错误现象 |
可能原因 |
解决方案 |
Permission denied |
缺乏执行/读取权限 |
chmod +x script.sh 或 sudo |
No such file or directory |
路径拼写错误或文件不存在 |
ls 检查路径,find 搜索文件 |
Command not found |
未安装软件包或PATH环境变量缺失 |
which command 定位,apt install 安装 |
Read-only file system |
尝试写入只读文件系统(如/boot) |
改用tmpfs 临时文件系统 |
相关问答FAQs
Q1: 我忘记了自己创建的文件放在哪里怎么办?
A: 可通过以下步骤定位:
- 使用
history
命令查看近期操作记录
- 结合
find
命令按名称/修改时间搜索:find ~/ -name ".txt" -mtime -7
- 若记得大致修改时间,可用
ls -lt
按时间排序查看目录内容
- 对于重要文件,建议养成规范命名和分类存放的习惯,推荐建立
~/work/
、~/docs/
等专用目录
Q2: 不小心执行了rm -rf /
怎么办?(高危操作!)
A: 这是灾难性操作,立即执行以下抢救措施:

- 切勿重启系统:保持当前状态以便数据恢复
- 卸载所有已挂载的文件系统:
umount -a
- 使用Live CD启动,挂载原分区为只读模式
- 使用
extundelete
或testdisk
等工具尝试恢复
- 联系专业数据恢复机构(成功率取决于后续写入量)
️ 注意:此操作会导致系统完全瘫痪,日常应定期备份重要数据,生产环境务必禁用root直接登录,普通用户也应避免使用rm -rf
命令。
通过系统学习上述内容,您已掌握Linux文件访问的完整知识体系,建议在实际环境中多练习ls
、cp
、mv
等基础命令,逐步熟悉权限管理和远程操作,遇到复杂需求时,可查阅man
手册或使用`–help