bash
visual-algorithm@visualalgorithm-NUC13RNGi9:/$ ls
bin boot cdrom dev etc home lib lib32 lib64 libx32 lost+found media mnt opt proc root run sbin snap srv swapfile sys tmp usr var
目录作用:
Linux 根目录核心文件夹对比表(基于你的 NUC 主机环境)
| 目录名称 | 目录类型 | 核心作用 | 权限特性 | 典型存放内容 | 使用建议(视觉算法开发) | 风险等级 |
|---|---|---|---|---|---|---|
/bin |
系统核心 | 存放所有用户可执行的基础系统命令 | 所有用户可执行,仅 root 可修改 | ls/cd/cp/mv/cat 等基础命令 |
直接调用命令,禁止修改/删除文件 | ⚠️ 高风险(损坏致系统崩溃) |
/sbin |
系统核心 | 存放 root 专属的系统管理命令 | 仅 root/sudo 可执行 |
reboot/shutdown/fdisk 等运维命令 |
仅系统配置时使用,普通用户无需操作 | ⚠️ 高风险 |
/boot |
系统核心 | 存放系统启动必需文件 | 仅 root 可修改,所有用户只读 | 内核文件、GRUB 引导程序、初始化镜像 | 绝对禁止修改/删除,开机依赖 | ❗ 极高风险 |
/lib/lib32/lib64/libx32 |
系统核心 | 存放程序运行依赖的共享库(类似 Windows .dll) |
所有用户只读,仅 root 可修改 | 系统命令/应用的底层依赖库 | 自动链接,无需手动操作 | ⚠️ 高风险 |
/lost+found |
系统维护 | 磁盘故障恢复的文件碎片存放处 | 仅 root 可访问 | 断电/磁盘错误后恢复的文件碎片 | 日常无需关注,故障时由管理员处理 | 🟢 无风险 |
/home |
用户核心 | 普通用户专属工作目录根目录 | 每个用户拥有自己子目录的完全读写权限 | 项目代码、模型文件(ONNX/Engine)、conda 环境、数据集、个人配置 | 首选!所有开发工作都放此目录 | 🟢 无风险(误操作仅影响自身文件) |
/root |
管理员专属 | root 超级管理员的家目录 | 仅 root 可访问/修改 | 系统管理脚本、全局配置备份 | ❌ 禁止存放普通项目/模型,仅存运维文件 | ⚠️ 高风险(权限过高易误操作) |
/opt |
第三方应用 | 存放手动安装的大型第三方软件 | 所有用户可读写(需授权) | TensorRT、CUDA、Anaconda、Docker 等 | 推荐!安装第三方工具的规范目录 | 🟢 低风险 |
/usr |
系统软件资源 | 存放系统预装的应用程序/库/文档 | 所有用户可执行,root 可修改 | /usr/bin(python/gcc/git)、/usr/lib(应用库) |
直接调用命令,自定义软件建议装 /usr/local |
⚠️ 中风险 |
/snap |
Ubuntu 专属 | 存放 snap 包管理器安装的软件 | 系统自动管理 | Firefox、VS Code 等 snap 应用 | 按需使用,算法开发很少用到 | 🟢 无风险 |
/dev |
硬件虚拟 | 所有硬件设备抽象为文件的目录(内存虚拟) | root 可读写,普通用户只读 | 硬盘 /dev/sda、显卡 /dev/nvidia0、U盘 /dev/sdb1 |
程序自动识别硬件,无需手动操作 | 🟢 无风险 |
/proc |
运行态虚拟 | 存放系统/进程实时状态信息(内存虚拟) | 所有用户只读 | CPU 信息 /proc/cpuinfo、内存信息 /proc/meminfo |
查看系统状态,无法修改 | 🟢 无风险 |
/sys |
内核虚拟 | 存放硬件/内核底层配置(内存虚拟) | root 可修改,普通用户只读 | 显卡驱动配置、内核参数 | 驱动自动配置,日常无需关注 | ⚠️ 高风险 |
/run |
运行态临时 | 存放系统开机后的临时运行数据(内存虚拟) | root 可读写,普通用户只读 | 进程 PID 文件、服务套接字 | 系统自动管理,无需操作 | 🟢 无风险 |
/mnt |
挂载目录 | 手动挂载外部设备的标准目录 | 所有用户可读写(需授权) | 挂载的U盘、移动硬盘、数据磁盘 | 推荐挂载外接数据集硬盘 | 🟢 无风险 |
/media |
自动挂载 | Ubuntu 自动挂载外部设备的目录 | 所有用户可读写 | 自动挂载的U盘、移动硬盘 | 新手友好,和 /mnt 二选一即可 |
🟢 无风险 |
/tmp |
全局临时 | 存放系统/用户的临时文件 | 所有用户可读写 | 程序编译临时文件、日志缓存 | 存放临时文件,禁止存重要数据(重启清空) | 🟢 无风险 |
/var |
可变数据 | 存放动态变化的文件(日志/缓存/数据库) | root 可修改,普通用户只读 | /var/log(系统/程序日志)、数据库数据 |
排查报错时查看 /var/log,定期清理日志 |
🟡 低风险 |
/cdrom |
复古设备 | 光驱挂载目录 | 所有用户可读写 | 挂载的光盘文件 | 无光驱主机,几乎无用 | 🟢 无风险 |
/srv |
服务器专用 | 存放服务对外提供的静态数据 | root 可修改,普通用户只读 | 网站源码、FTP 下载文件 | 算法开发无需关注 | 🟢 无风险 |
swapfile |
虚拟内存文件 | 物理内存不足时的虚拟内存(非文件夹) | 仅系统可读写 | 内存数据交换的临时文件 | 系统自动管理,无需操作 | 🟢 无风险 |
补充说明
- 内存虚拟目录 :
/dev//proc//sys//run不占用磁盘空间,重启后内容清空; - 开发黄金路径 :视觉算法/TensorRT 开发优先用
/home/用户名,其次是/opt; - 风险等级定义 :
- ❗ 极高风险:修改即导致系统无法启动;
- ⚠️ 高风险:误操作损坏系统功能;
- 🟡 低风险:仅影响部分应用;
- 🟢 无风险:操作不影响系统稳定。
我可以帮你整理一份视觉算法开发专属的目录使用清单 ,标注每个目录的常用操作命令,需要吗?
详细讲解一下以上文件夹和作用
Linux 根目录 / 全文件夹详解(基于你的机器实测目录,零基础秒懂+运维级分类)
你当前的 Linux 系统是标准的 Ubuntu 发行版目录结构 (NUC13 迷你主机环境),严格遵循 FHS(Filesystem Hierarchy Standard,文件系统层级标准) ,所有文件夹各司其职、分工明确。下面按「系统核心、用户数据、硬件/运行、扩展应用 」四大维度,逐个拆解你 ls / 输出的所有目录,标注✅高频使用 、⚠️高危操作 、💡实操贴士,贴合你的算法开发(TensorRT/模型部署/视觉算法)场景,看完彻底吃透 Linux 目录体系。
核心原则:Linux 一切皆文件,所有硬件、程序、配置、数据,最终都映射到这些目录的文件中。
一、🔴 系统核心目录(系统运行的基石,只读/慎改,损坏即崩溃)
这类目录存放操作系统内核、启动文件、核心库、系统命令 ,是 Linux 开机运行的基础,普通用户只读,仅 root 可修改 ,日常开发禁止随意操作/删除。
✅ /bin (Binary) - 系统基础命令目录【高频接触】
- ✅ 作用:存放 所有用户(普通用户+root)都能执行的、最基础的系统命令,是 Linux 最核心的命令仓库。
- ✅ 包含命令:
ls、cd、pwd、cp、mv、rm、cat、mkdir等你每天都用的基础命令; - 💡 特点:命令体积小、无依赖,系统开机后第一个加载的命令目录,任何用户、任何路径下都能直接执行。
✅ /sbin (Super Binary) - 系统管理命令目录【root专属】
- ✅ 作用:存放 仅 root 超级管理员可执行的系统管理/运维命令,用于操作系统级别的配置、启停、维护;
- ✅ 包含命令:
reboot(重启)、shutdown(关机)、ifconfig(网卡配置)、fdisk(磁盘分区)等; - 💡 特点:普通用户执行会提示「权限不足」,必须通过
sudo提权/登录 root 才能使用,是管理员专属工具集。
✅ /boot - 系统启动目录【核心只读】
- ✅ 作用:存放 Linux 开机启动必需的所有文件,是系统启动的「入口」;
- ✅ 包含文件:内核文件(
vmlinuz-xxx)、启动引导程序(GRUB)、初始化镜像(initrd.img)等; - ⚠️ 高危提醒:该目录文件缺失/损坏 → 系统完全无法开机,严禁修改、删除任何文件,大小通常只有几百MB。
✅ /lib / /lib32 / /lib64 / /libx32 - 系统共享库目录【核心依赖】
- ✅ 作用:存放 Linux 程序运行必需的底层共享库文件 (类似 Windows 的
.dll文件),所有系统命令(/bin//sbin)、应用程序都依赖这些库才能运行;/lib:默认兼容库目录,指向对应位数的库文件夹;/lib64:64位系统核心库(你的主机是64位,最核心);/lib32/libx32:兼容32位程序的库文件(适配老旧软件);
- 💡 你的场景关联:编译 TensorRT/ONNX 模型、安装显卡驱动时,会自动链接这些目录下的系统库,无需手动操作。
✅ /lost+found - 磁盘故障恢复目录【自动生成】
- ✅ 作用:Linux 文件系统(ext4)的「数据回收站」,当系统意外断电、磁盘出错、强制关机导致文件损坏/丢失时,恢复的碎片文件会自动存放在这里;
- 💡 特点:默认是空目录,仅磁盘故障时生效,普通用户无权限访问,root 可查看/恢复其中的文件,日常无需关注。
二、🟢 用户与应用核心目录(你的开发主战场,重点掌握,高频操作)
这类目录是算法开发、项目部署、环境配置的核心区域,你99%的工作都会围绕这些目录展开,权限友好、可自由操作,是重点掌握的目录!
✅ /home - 普通用户专属工作目录【你的主力区,重中之重】
✅✅✅ 核心中的核心,你的所有操作都该在这里完成!
- ✅ 作用:Linux 所有普通用户的个人专属家目录根目录 ,系统中每个普通用户(如你的
visual-algorithm),都会在/home下生成同名子目录 →/home/visual-algorithm; - ✅ 可存放内容:你的所有项目文件(ONNX/Engine模型、代码)、conda环境、开发工具、数据集、下载文件、个性化配置;
- ✅ 核心优势:你拥有该目录完全读写权限,无权限报错、误操作仅影响自己文件、不损坏系统,安全无风险;
- 💡 快捷技巧:终端输入
cd ~可一键进入 你的/home/visual-algorithm目录,是最常用的命令之一。
✅ /root - root超级管理员专属家目录【管理员专区,慎放项目】
- ✅ 作用:仅 root 用户的「个人家目录」,功能和普通用户的
/home/用户名一致,但归属 root、权限最高; - ✅ 存放内容:root 用户的系统管理脚本、全局配置备份、运维工具;
- ❌ 强烈建议:你的模型、代码、conda环境绝对不要放在这里!普通用户无权限访问,后续切换用户会出现权限报错,且误操作风险极高。
✅ /opt (Optional) - 第三方软件安装目录【推荐使用】
💡 算法开发/模型部署最推荐的软件安装目录!
- ✅ 作用:存放 用户手动安装的、非系统自带的第三方大型软件/工具包,目录干净整洁,便于管理和卸载;
- ✅ 典型用途:安装 TensorRT、CUDA、cuDNN、Anaconda、Docker、大型开发工具(如CLion)、自定义编译的程序;
- 💡 你的场景适配:建议把 TensorRT 解压到
/opt/TensorRT-8.6.x,CUDA 安装到/opt/cuda-11.8,后续配置环境变量更规范,卸载时直接删除文件夹即可,无残留。
✅ /usr (Unix Software Resource) - 系统软件资源目录【二级核心】
- ✅ 作用:存放 系统预装的、面向所有用户的应用程序、库文件、文档 ,是 Linux 最大的目录之一,相当于 Windows 的
C:\Program Files; - ✅ 核心子目录:
/usr/bin:普通用户可执行的非基础命令 (如python3、gcc、git、vim);/usr/sbin:管理员可执行的非核心运维命令;/usr/lib:应用软件的依赖库;/usr/local:用户手动编译安装软件 的默认目录(如make install会默认装到这里);
- 💡 特点:系统级软件默认安装路径,日常可直接使用其中的命令(如
gcc编译代码),无需额外配置。
✅ /snap - Ubuntu专属软件包目录【系统预装】
- ✅ 作用:存放 Ubuntu 系统的 snap 包管理器安装的软件(Ubuntu 特色),snap 包是「免配置、一键安装」的软件包,自带所有依赖;
- ✅ 包含软件:系统预装的 Firefox、VS Code、微信等(若用
snap install xxx安装软件,会存放在这里); - 💡 特点:占用空间略大,软件版本可能不是最新,算法开发中很少用到,无需关注/修改。
三、🟡 硬件与运行态目录(系统实时数据,动态变化,只读查看)
这类目录不存储磁盘上的静态文件 ,而是 Linux 内核在内存中动态生成 的「虚拟目录」,存放硬件设备、系统运行状态、进程数据,重启后内容全部清空,仅用于查看/临时交互。
✅ /dev (Device) - 硬件设备目录【核心虚拟目录】
- ✅ 核心作用:Linux 中所有硬件设备(磁盘、显卡、网卡、鼠标、U盘)都被抽象为文件 ,统一存放在
/dev下,程序通过操作「设备文件」实现和硬件的交互; - ✅ 常见设备文件:
/dev/sda:你的主机硬盘(sda1、sda2 是硬盘分区);/dev/nvidia0:NVIDIA 显卡设备(你的算法开发核心硬件,TensorRT/推理依赖);/dev/tty:终端设备、/dev/usb:USB设备;
- 💡 你的场景:运行 TensorRT 推理时,程序会自动识别
/dev/nvidia0显卡设备,无需手动操作。
✅ /proc (Process) - 进程与系统状态目录【只读查看】
- ✅ 作用:存放 系统实时运行状态、所有进程的详细信息,是查看系统/进程的「实时监控面板」;
- ✅ 常用查看命令:
cat /proc/cpuinfo:查看CPU型号、核心数;cat /proc/meminfo:查看内存总大小、剩余内存;cat /proc/version:查看Linux内核版本;
- 💡 特点:纯内存虚拟目录,文件大小均为0,仅用于读取信息,无法修改。
✅ /sys (System) - 硬件与内核配置目录【进阶运维】
- ✅ 作用:存放 硬件设备的底层配置、内核参数、驱动信息 ,比
/dev更底层,主要用于内核调试、硬件精细化配置; - 💡 你的场景:安装显卡驱动后,驱动会自动在
/sys下注册显卡信息,无需手动干预,日常开发无需关注。
✅ /run - 系统运行临时文件目录【动态】
- ✅ 作用:存放系统开机后生成的临时运行数据(进程PID文件、服务套接字、临时锁文件),保证系统服务正常运行;
- 💡 特点:内存级目录,重启清空,权限严格,普通用户只读,无需操作。
四、🟠 挂载与临时目录(数据临时存储、外部设备挂载,灵活使用)
这类目录是 Linux 的「数据中转站」,用于挂载外部设备、存放临时文件,灵活性高,是日常开发中高频使用的辅助目录。
✅ /mnt (Mount) - 手动挂载目录【推荐使用】
💡 挂载U盘、移动硬盘、外接磁盘的标准目录!
- ✅ 作用:专门用于手动挂载外部文件系统/设备,是 Linux 约定的「挂载点」,目录默认空;
- ✅ 使用场景:插入U盘后,通过
mount /dev/sdb1 /mnt即可将U盘挂载到/mnt,进入/mnt就能访问U盘数据;用完执行umount /mnt卸载; - 💡 特点:手动挂载、按需使用,不自动挂载,适合临时访问外接设备,你的算法开发中可用于挂载数据硬盘(存放超大数据集)。
✅ /media - 自动挂载目录【系统自动】
- ✅ 作用:存放 系统自动挂载的外部设备 (Ubuntu 特色),当你插入U盘、移动硬盘时,系统会自动识别并挂载到
/media/你的用户名/设备名下; - 💡 特点:无需手动执行
mount命令,插拔设备自动挂载/卸载,对新手友好,和/mnt功能类似,二选一即可。
✅ /tmp (Temporary) - 全局临时文件目录【公共缓存】
- ✅ 作用:存放 系统/所有用户的临时文件,是 Linux 的「公共垃圾桶+缓存区」,所有用户都可读写;
- ✅ 特点:
- 系统重启后
/tmp下所有文件会被自动清空; - 系统会定期清理超过一定时间的临时文件(默认7天);
- 系统重启后
- 💡 你的场景:编译模型、运行程序时产生的临时日志、中间文件,可临时存放在这里,无需手动清理,节省磁盘空间。
✅ /var (Variable) - 可变数据目录【重要】
- ✅ 核心作用:存放 Linux 中内容会动态变化的文件(日志、缓存、数据库、邮件),文件大小随系统运行不断增长;
- ✅ 高频子目录(开发必备):
/var/log:系统所有日志文件的核心目录 (重中之重)!包含系统日志(syslog)、服务日志(nginx.log)、TensorRT/CUDA运行日志、程序报错日志;排查问题时优先看这里;/var/cache:软件缓存文件;/var/lib:数据库、包管理器的核心数据;
- 💡 你的场景:模型转换失败、程序报错时,可到
/var/log下查看详细日志,定位问题根源(如TensorRT编译报错日志)。
五、⚫ 其他特殊目录(独立功能,按需了解)
✅ /cdrom - 光驱挂载目录【复古】
- ✅ 作用:专门用于挂载光盘/光驱设备的目录,早期Linux必备,现在NUC主机无光驱,该目录默认空,几乎用不到,可忽略。
✅ /srv (Service) - 服务数据目录【服务器场景】
- ✅ 作用:存放 系统服务(如Web服务、FTP服务)需要对外提供的静态数据(如网站源码、下载文件);
- 💡 特点:仅服务器场景(如搭建网站)会用到,你的算法开发/模型部署中无需关注。
✅ swapfile - 交换文件(虚拟内存)【系统核心】
❗ 注意:这不是文件夹 ,是文件!补充说明避免混淆。
- ✅ 作用:Linux 的「虚拟内存文件」,当物理内存不足时,系统会把部分数据写入该文件,充当「临时内存」,缓解内存压力;
- ✅ 特点:大小固定(你的机器中是独立文件),相当于 Windows 的「虚拟内存分页文件」,系统自动管理,无需手动操作;若内存充足,该文件几乎不会被使用。
六、✅ 终极总结(3大核心+目录使用准则,贴在桌面备查)
✅ 一、目录分类速记(4类全覆盖)
- 系统核心类 (
/bin//sbin//boot//lib):系统运行基石,只读慎改; - 开发主力类 (
/home//opt//usr/local):你的项目、环境、软件,全放这里; - 硬件运行类 (
/dev//proc//sys):虚拟目录,动态数据,只读查看; - 挂载临时类 (
/mnt//media//tmp//var):数据中转、设备挂载、日志存储。
✅ 二、算法开发「目录使用黄金准则」(必须遵守,避坑100%)
✅ ✅ 推荐存放 → 优先级排序
- 🥇
/home/visual-algorithm:项目代码、模型文件、conda环境、个人配置(首选,最安全); - 🥈
/opt:TensorRT、CUDA、cuDNN、大型工具包(次选,最规范); - 🥉
/usr/local:手动编译的程序(如源码安装的OpenCV)。
❌ ❌ 禁止存放 → 红线不能碰
- ❌
/root:普通项目/模型绝对不放(权限问题+高风险); - ❌
/bin//sbin//boot//lib:任何文件都不放(损坏系统); - ❌
/tmp:重要项目/模型不放(重启清空)。
✅ 三、高频操作快捷口诀(新手秒会)
- 进自己目录:
cd ~(一键到/home/visual-algorithm); - 看系统日志:
cd /var/log; - 装第三方软件:
/opt目录; - 挂外接硬盘:
/mnt目录; - 存临时文件:
/tmp目录。