【linux】:目录解析

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/binpython/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 虚拟内存文件 物理内存不足时的虚拟内存(非文件夹) 仅系统可读写 内存数据交换的临时文件 系统自动管理,无需操作 🟢 无风险

补充说明

  1. 内存虚拟目录/dev//proc//sys//run 不占用磁盘空间,重启后内容清空;
  2. 开发黄金路径 :视觉算法/TensorRT 开发优先用 /home/用户名,其次是 /opt
  3. 风险等级定义
    • ❗ 极高风险:修改即导致系统无法启动;
    • ⚠️ 高风险:误操作损坏系统功能;
    • 🟡 低风险:仅影响部分应用;
    • 🟢 无风险:操作不影响系统稳定。

我可以帮你整理一份视觉算法开发专属的目录使用清单 ,标注每个目录的常用操作命令,需要吗?

详细讲解一下以上文件夹和作用

Linux 根目录 / 全文件夹详解(基于你的机器实测目录,零基础秒懂+运维级分类)

你当前的 Linux 系统是标准的 Ubuntu 发行版目录结构 (NUC13 迷你主机环境),严格遵循 FHS(Filesystem Hierarchy Standard,文件系统层级标准) ,所有文件夹各司其职、分工明确。下面按「系统核心、用户数据、硬件/运行、扩展应用 」四大维度,逐个拆解你 ls / 输出的所有目录,标注✅高频使用 、⚠️高危操作 、💡实操贴士,贴合你的算法开发(TensorRT/模型部署/视觉算法)场景,看完彻底吃透 Linux 目录体系。

核心原则:Linux 一切皆文件,所有硬件、程序、配置、数据,最终都映射到这些目录的文件中。

一、🔴 系统核心目录(系统运行的基石,只读/慎改,损坏即崩溃)

这类目录存放操作系统内核、启动文件、核心库、系统命令 ,是 Linux 开机运行的基础,普通用户只读,仅 root 可修改 ,日常开发禁止随意操作/删除

/bin (Binary) - 系统基础命令目录【高频接触】

  • ✅ 作用:存放 所有用户(普通用户+root)都能执行的、最基础的系统命令,是 Linux 最核心的命令仓库。
  • ✅ 包含命令:lscdpwdcpmvrmcatmkdir 等你每天都用的基础命令;
  • 💡 特点:命令体积小、无依赖,系统开机后第一个加载的命令目录,任何用户、任何路径下都能直接执行

/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:普通用户可执行的非基础命令 (如 python3gccgitvim);
    • /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 的「公共垃圾桶+缓存区」,所有用户都可读写;
  • ✅ 特点:
    1. 系统重启后 /tmp 下所有文件会被自动清空
    2. 系统会定期清理超过一定时间的临时文件(默认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类全覆盖)

  1. 系统核心类/bin//sbin//boot//lib):系统运行基石,只读慎改;
  2. 开发主力类/home//opt//usr/local):你的项目、环境、软件,全放这里;
  3. 硬件运行类/dev//proc//sys):虚拟目录,动态数据,只读查看;
  4. 挂载临时类/mnt//media//tmp//var):数据中转、设备挂载、日志存储。

✅ 二、算法开发「目录使用黄金准则」(必须遵守,避坑100%)

✅ ✅ 推荐存放 → 优先级排序
  1. 🥇 /home/visual-algorithm:项目代码、模型文件、conda环境、个人配置(首选,最安全);
  2. 🥈 /opt:TensorRT、CUDA、cuDNN、大型工具包(次选,最规范);
  3. 🥉 /usr/local:手动编译的程序(如源码安装的OpenCV)。
❌ ❌ 禁止存放 → 红线不能碰
  1. /root:普通项目/模型绝对不放(权限问题+高风险);
  2. /bin//sbin//boot//lib:任何文件都不放(损坏系统);
  3. /tmp:重要项目/模型不放(重启清空)。

✅ 三、高频操作快捷口诀(新手秒会)

  1. 进自己目录:cd ~(一键到 /home/visual-algorithm);
  2. 看系统日志:cd /var/log
  3. 装第三方软件:/opt 目录;
  4. 挂外接硬盘:/mnt 目录;
  5. 存临时文件:/tmp 目录。
相关推荐
2501_945837432 小时前
云服务器运维实战:从环境搭建到安全加固全流程
服务器
qq_317620312 小时前
001:Linux 命令速查手册
linux·运维·服务器
Element_南笙2 小时前
BUG:ModuleNotFoundError: No module named ‘milvus_lite‘
java·服务器·数据库
落笔映浮华丶2 小时前
linux中vim常用命令
linux
Coder_Boy_2 小时前
分布式系统设计经验总结:金融vs电商的核心差异与决策思路
java·运维·微服务·金融·电商
彷徨而立2 小时前
【SDL】多线程中,SDL_Init() 接口被两个线程同时调用了,会有啥问题?
linux·sdl
铅笔侠_小龙虾2 小时前
Ubuntu 搭建前端环境&Vue实战
linux·前端·ubuntu·vue
世转神风-2 小时前
linux-嵌入式开发基础-网线直连-局域网传输文件-快速完成文件替换
linux·嵌入式
biubiubiu07062 小时前
Ansible自动化
运维·自动化·ansible