发完 Wine 安装攻略,有朋友在留言区问了个很典型的问题:
Linux的目录结构是怎么样的,怎么找到换字体的目录和Wine的目录。
在Windows 下 C:\Windows\Fonts 是字体目录,C:\Program Files 是软件目录;但到了 Linux,文件散在各处,半天找不到北。
今天把 Linux 的目录结构拿出来聊一下,知道文件都在哪,后面装软件、找配置、排查问题都会顺很多。
先搞懂一个核心概念:Linux 没有"盘符"
Windows 的思维是按盘符分区:
Linux 的思维完全不同——只有一棵树,所有东西都挂在 /(根目录)下面。不管是系统盘、数据盘、U盘、移动硬盘,全部"挂载"到这棵树的某个分支上。
💡 提示: 刚从 Windows 过来的人,这一步最容易懵。记住:Linux 下没有 C:\D:\E:\,只有 / 和下面的各种目录。
一张表看懂根目录下的所有文件夹
/ 根目录下有一堆文件夹,每个都有固定用途:
| | | |
|---|
/home | | C:\Users | |
/usr | | C:\Program Files | |
/etc | Editable Text Configuration | C:\Windows\System32\config | |
/var | | | |
/tmp | | C:\Windows\Temp | |
/opt | | | |
/root | | C:\Users\Administrator | |
/bin | | | |
/sbin | | | |
/lib | | C:\Windows\System32\*.dll | |
/boot | | | |
/dev | | C:\Windows\System32\DriverStore | |
/proc | | | |
/sys | | | |
/srv | | | |
/lost+found | | | |
⚠️ 注意:/bin、/lib、/sbin 在现代 Ubuntu/Debian 里大多是链接到 /usr/bin、/usr/lib、/usr/sbin 的,不用纠结它们的区别。
~ 家目录——你真正的"主战场"
这是新手最应该先搞懂的概念。
~ 是家目录的缩写,类似于 Windows 的 C:\Users\你的用户名。
以用户名 admi 为例:
~ = /home/admi
~/桌面 = /home/admi/Desktop(中文环境)或 /home/admi/Desktop(英文环境)
~/下载 = /home/admi/Downloads
~/文档 = /home/admi/Documents
家目录里的隐藏文件夹(重点!)
在 Linux 里,以 . 开头的文件或文件夹是隐藏的。Windows 里要勾选"显示隐藏文件"才能看到,Linux 里 ls 命令默认也不显示,要加 -a 参数:
# 查看家目录下所有文件(包括隐藏的)
ls -la ~
这些隐藏文件夹,就是你的个人配置中心:
| | |
|---|
~/.config/ | | ~/.config/google-chrome/ |
~/.local/ | | ~/.local/share/ |
~/.cache/ | | ~/.cache/google-chrome/ |
~/.bashrc | | |
~/.profile | | |
~/.ssh/ | | ~/.ssh/id_rsa |
~/.gitconfig | | |
💡 提示: 字体目录就在 ~/.local/share/fonts/ 下面(用户级)。后面详细讲。
字体到底装在哪?——/usr/share/fonts vs ~/.local/share/fonts
Linux 的字体有两个层级:
系统级字体目录(所有用户都能用)
/usr/share/fonts/
├── truetype/ ← TrueType字体(.ttf)通常在这
│ ├── debian/ ← Debian系自带字体
│ ├── liberation/ ← 开源替代字体
│ └── wqy/ ← 文泉驿字体
└── opentype/ ← OpenType字体(.otf)
安装方法: 把 .ttf 文件复制到对应目录,然后刷新字体缓存:
# 系统级安装(需要sudo)
sudocp ~/下载/我的字体.ttf /usr/share/fonts/truetype/
sudo fc-cache -fv
用户级字体目录(只给自己用,推荐!)
~/.local/share/fonts/ ← 旧版路径(兼容)
~/.fonts/ ← 更旧的路径(不推荐)
安装方法: 直接复制,不需要 sudo,刷新缓存:
# 用户级安装(推荐,不需要sudo)
mkdir -p ~/.local/share/fonts/
cp ~/下载/我的字体.ttf ~/.local/share/fonts/
fc-cache -fv
# 验证字体是否安装成功
fc-list | grep "我的字体"
💡 提示: 优先用用户级安装(~/.local/share/fonts/),不需要 sudo,重装系统也不会丢(家目录单独分区的话)。
| | 用户级 ~/.local/share/fonts/ |
|---|
| | |
| | |
| | |
| | |
Wine 的目录在哪?——~/.wine 和 Bottles 的瓶子
默认 Wine 前缀目录
Wine 创造一个"虚拟 Windows 环境",默认在:
~/.wine/
├── drive_c/ ← 虚拟C盘
│ ├── windows/
│ │ ├── Fonts/ ← ← ← 这就是Wine的字体目录!
│ │ └── system32/
│ ├── Program Files/ ← Windows软件装这
│ └── users/
│ └── 你的用户名/
├── dosdevices/ ← 磁盘映射
└── system.reg ← Wine注册表
Wine 字体目录就是:~/.wine/drive_c/windows/Fonts/
把 Windows 字体(比如 msyh.ttf 微软雅黑)复制进去,Wine 运行的软件就能用上中文字体了:
# 把微软雅黑复制到Wine字体目录
cp ~/下载/msyh.ttf ~/.wine/drive_c/windows/Fonts/
自定义 WINEPREFIX(多个隔离环境)
你可能不想把所有软件都装在一个 ~/.wine 里,可以自定义前缀:
# 创建一个独立的Wine环境
WINEPREFIX=~/.wine-wechat winecfg
# 之后所有操作都针对这个独立环境
WINEPREFIX=~/.wine-wechat wine ~/下载/WeChatSetup.exe
此时字体目录变成:~/.wine-wechat/drive_c/windows/Fonts/
Bottles 的瓶子目录
如果用的是 Bottles(我们上一篇讲的图形化工具),每个"瓶子"是独立目录:
~/.var/app/com.usebottles.Bottles/data/bottles/bottles/
├── my-game/ ← 你创建的某个瓶子
│ └── drive_c/
│ └── windows/
│ └── Fonts/ ← Bottles瓶子的字体目录
└── wechat/
└── drive_c/
└── windows/
└── Fonts/
⚠️ 注意: Flatpak 版 Bottles 的路径在 ~/.var/app/ 下面,这是 Flatpak 的沙箱机制,不是 Bug。
/usr vs /usr/local vs /opt——软件到底装哪了?
这是新手最容易困惑的问题之一。同一个软件,怎么 /usr/bin 里有,/usr/local/bin 里也有?
| | | |
|---|
/usr/bin/ | | sudo apt install | /usr/bin/python3 |
/usr/local/bin/ | | | /usr/local/bin/nginx |
/opt/ | | | /opt/google/chrome/chrome |
~/.local/bin/ | | | ~/.local/bin/code |
简单记忆法:
apt install- 自己
make install 的 → 在 /usr/local/ - 官网下载的
.deb 双击安装的 → 可能在 /opt/ 或 /usr/ - 不需要
sudo 的用户级软件 → 在 ~/.local/
配置文件都藏哪?——/etc/ 和 ~/.config/ 分工明确
Linux 的配置文件有两级,系统级和用户级,互不干扰:
系统级:/etc/
| |
|---|
/etc/apt/sources.list | |
/etc/hostname | |
/etc/hosts | |
/etc/fstab | |
/etc/sudoers | |
/etc/ssh/sshd_config | |
用户级:~/.config/ 和 ~/.软件名rc
| |
|---|
~/.config/ | |
~/.bashrc | |
~/.gitconfig | |
~/.vimrc | |
💡 提示: 改系统级配置需要 sudo,改用户级配置直接编辑家目录下的文件就行。改之前建议先备份!
日志文件在哪?——/var/log/ 排查问题必去
系统或软件出了问题,日志是第一现场:
| |
|---|
/var/log/syslog | |
/var/log/messages | |
/var/log/dmesg | |
/var/log/auth.log | |
/var/log/apt/history.log | |
~/.cache/ | |
实时查看日志尾巴(排错神器):
# 实时查看系统日志(Ctrl+C退出)
sudotail -f /var/log/syslog
# 查看内核日志(查硬件问题)
dmesg | tail -20
实战练习:把目录结构摸熟
按顺序完成以下操作,把本篇内容串起来:
# 1. 查看根目录下有什么
ls /
# 2. 查看家目录(包括隐藏文件)
ls -la ~
# 3. 找到你的字体目录,看看已安装哪些字体
fc-list | head -20
# 4. 查看 Wine 的虚拟C盘结构(如果装了Wine)
ls ~/.wine/drive_c/ 2>/dev/null || echo"Wine未安装或使用了自定义前缀"
# 5. 查看系统级字体目录
ls /usr/share/fonts/truetype/
# 6. 查看用户级配置目录
ls ~/.config/
# 7. 查看系统日志最后20行
tail -20 /var/log/syslog 2>/dev/null || tail -20 /var/log/messages 2>/dev/null || echo"日志路径因发行版而异"
# 8. 找一下 python3 装在哪(熟悉which命令)
which python3
ls -la $(which python3)
# 9. 查看磁盘挂载情况(理解"一棵树"的概念)
df -h
总结:一张表记住核心目录
| |
|---|
| ~/ |
| /usr/bin/ |
| /etc/ |
| ~/.config/ |
| /usr/share/fonts/ |
| ~/.local/share/fonts/ |
| ~/.wine/drive_c/ |
| ~/.wine/drive_c/windows/Fonts/ |
| /var/log/ |
| /opt/ |
💡 这篇文章是因为有朋友留言提到这个问题,我想了一下,这个问题有必要拿出来聊聊。
下一篇预告:**《Linux打印机与扫描仪安装攻略——CUPS/hplip/扫描》。