Linux 根目录

Linux系统顶级目录介绍

/              根目录
├── bin     存放用户二进制文件
├── boot    存放内核引导配置文件
├── dev     存放设备文件
├── etc     存放系统配置文件
├── home    用户主目录
├── lib     动态共享库
├── lost+found  文件系统恢复时的恢复文件
├── media   可卸载存储介质挂载点
├── mnt     文件系统临时挂载点
├── opt     附加的应用程序包
├── proc    系统内存的映射目录,提供内核与进程信息
├── root    root 用户主目录
├── sbin    存放系统二进制文件
├── srv     存放服务相关数据
├── sys     sys 虚拟文件系统挂载点
├── tmp     存放临时文件
├── usr     存放用户应用程序
└── var     存放邮件、系统日志等变化文件

软链接与硬链接

为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。硬链接:

若一个 inode 号对应多个文件名,则称这些文件为硬链接。换言之,硬链接就是同一个文件使用了多个别名。

硬链接可由命令 link 或 ln 创建。语法:

  • link 旧文件名(源文件名) 新文件名(新文件名)
  • ln 旧文件名 新文件名

由于硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:

  • 文件有相同的 inode 及 data block;
  • 只能对已存在的文件进行创建;
  • 不能交叉文件系统进行硬链接的创建;
  • 不能对目录进行创建,只可对文件创建;
  • 删除一个硬链接文件并不影响其他有相同 inode 号的文件。

软链接:

软链接与硬链接不同,若文件用户数据块中存放的内容是另一文件的路径名的指向(也就是说通过内容可以找到源文件的路径),则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块。

软链接创建语法:ln -s 旧文件名(源文件名) 新文件名(新文件名)

软链接的特性:

  • 软链接有自己的文件属性及权限等;
  • 可对不存在的文件或目录创建软链接;
  • 软链接可交叉文件系统;
  • 软链接可对文件或目录创建;
  • 创建软链接时,链接计数 i_nlink 不会增加;
  • 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。

注意:软链接创建时原文件的路径指向使用绝对路径较好。使用相对路径创建的软链接被移动后该软链接文件将成为一个死链接(如下所示的软链接 a 使用了相对路径,因此不宜被移动),因为链接数据块中记录的亦是相对路径指向。

命令 ls 或 stat 可帮助我们区分软链接与其他文件并查看文件 inode 号,但较好的方式还是使用 find 命令,其不仅可查找某文件的软链接,还可以用于查找相同 inode 的所有硬链接。

find语法:find [OPTIONS] [查找起始路径] [查找条件] [处理动作]

OPTIONS参数
    -P、-L、-H:控制软连接的对待方式,用的不多。
查找路径
    就是个目录路径,相对和绝对都可以。
查找条件

  1,根据名称查找

    -name 查找内容

    -iname 查找内容 :不区分名称字母大小写
    -regex 正则表达式:基于正则表达式的模式查找,匹配的是整个路径,而非单个文件名。

  2,根据文件从属关系查找:

    -user USERNAME:查找属主指定用户的所有文件;
    -group GRPNAME:查找属组指定组的所有文件;
     -uid UID:查找属主指定的UID的所有文件;
    -gid GID:查找属组指定的GID的所有文件;
    -nouser:查找没有属主的文件;
    -nogroup:查找没有属组的文件;
  3,根据文件的类型查找:
     -type 文件类型

        f 普通文件
        d 目录文件
        l 符号链接文件
        b 块设备 文件
        c 字符设备文件
        p 管道文件
        s 套接字文件

  4,根据文件大小来查找

    -size [+|-] 大小 

    + 表示:大于指定大小

    -表示:大于等于0小于等于指定大小

    大小格式为:数字+单位(k, M, G)
  5,根据时间戳来查找
  6,根据权限查找

转载于:https://www.cnblogs.com/hf-china/p/9780220.html

<think>我们正在讨论Linux系统中根目录的位置。据提供的引用内容,我们可以总结以下几点:1.Linux系统的根目录是整个文件系统的起点,所有其他目录都从根目录衍生出来(引用[1])。2.根目录包含系统启动必需的组件,如内核文件、函数库等(引用[1])。3.根目录在分区上的建议:应该位于一个较小的分区,以保持高效和稳定(引用[1])。4.在Windows10的WSL(WindowsSubsystemforLinux)中,Ubuntu子系统的根目录实际上位于Windows文件系统的一个特定路径下(引用[2])。5.修改FTP服务的根目录位置可以通过修改配置文件实现(引用[3])。6.修改项目根目录位置可能涉及PHP的配置(引用[4])。用户的问题很直接:“我想查找Linux系统中根目录的位置”。我们需要区分两种情况:传统Linux系统和在WindowsWSL中运行的Linux子系统。###传统Linux系统在传统Linux系统中,根目录的位置就是`/`。在终端中,你可以直接使用`cd/`进入根目录根目录下的子目录包括`/bin`,`/etc`,`/home`等。###WindowsWSL中的Ubuntu如果你是在Windows10的WSL中运行Ubuntu,那么根目录实际上位于Windows文件系统的一个特定路径据引用[2],我们可以知道Ubuntu子系统的根目录位于:```%LOCALAPPDATA%\Packages\<PackageName>\LocalState\rootfs```其中`<PackageName>`是Ubuntu发行版的包名,例如Ubuntu20.04的包名可能是`CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc`。###如何查看根目录的物理位置(分区)有时候用户可能想知道根目录所在的分区。可以使用`df`命令:```bashdf/```这个命令会显示根目录所在的设备、分区大小、已用空间和挂载点。###修改根目录的位置一般情况下,根目录的位置是固定的(`/`)。但是,在某些情况下,比如在容器中或者使用chroot环境,可以改变进程看到的根目录位置。不过,这不是修改整个系统的根目录,而是针对特定进程的。###总结回答-**传统Linux系统**:根目录的位置是`/`。-**WindowsWSL中的Ubuntu**:根目录位于Windows文件系统的`%LOCALAPPDATA%\Packages\<PackageName>\LocalState\rootfs`。###相关问题用户的问题,生成相关问题:§§相关问题§§1.如何查看Linux系统中根目录所在分区的磁盘使用情况?2.在WindowsWSL中,如何访问Ubuntu子系统的根目录文件?3.Linux中如何挂载一个分区到根目录?4.什么是chroot环境?如何使用?</think>在Linux系统中,根目录的位置和特性如下: ### 根目录的核心特性 1. **绝对路径起点** 根目录用符号`/`表示,是所有目录和文件的绝对路径起点。无论当前工作目录在哪里,执行`cd /`都会跳转到根目录。 2. **物理存储位置** - **传统物理机/虚拟机**:根目录位于独立分区(如`/dev/sda1`),可通过命令查看: ```bash df -h / # 显示根目录所在分区及挂载点 ``` 示例输出: ``` Filesystem Size Used Avail Use% Mounted on /dev/sda1 20G 15G 4.5G 77% / ``` - **Windows WSL子系统**: 根目录位于Windows路径(引用[2]): ``` %LOCALAPPDATA%\Packages\<Ubuntu发行版ID>\LocalState\rootfs ``` 例如:`C:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04_79rhkp1fndgsc\LocalState\rootfs` 3. **关键目录结构** 根目录包含系统核心目录(引用[1]): ``` /bin # 基础命令(如ls, cp) /etc # 配置文件 /boot # 内核与启动文件 /lib # 系统函数库 /sbin # 管理员命令 ``` 4. **分区设计建议**(引用[1]) - 根目录分区应**独立且较小**(通常20-30GB),避免与其他应用混用 - 大容量数据应存于独立分区(如`/home`或`/data`),防止根目录空间不足导致系统崩溃 ### 修改根目录的场景 1. **服务根目录调整** 如FTP服务可通过配置文件修改根目录(引用[3]): ```bash vi /etc/vsftpd.conf # 添加: local_root=/data/ftp # 新根目录路径 anon_root=/data/ftp ``` 2. **开发环境配置** 如PHP项目需调整`open_basedir`(引用[4]): ```ini ; php.ini修改 open_basedir = /srv/webapp:/tmp ``` ### 查看根目录位置的方法 ```bash # 1. 确认当前根目录 pwd -P / # 输出: / # 2. 查看物理分区 lsblk | grep "/" # 显示挂载到根目录的分区 # 3. WSL中定位(Windows) wsl -u root ls / # 通过WSL直接访问 ``` > **关键总结**:根目录`/`是Linux文件系统的逻辑顶点,其物理位置取决于安装方式(物理分区或WSL虚拟层)。保持根目录精简可提升系统稳定性(引用[1])[^1]。 --- ### 相关问题 1. **为什么Linux建议将根目录放在小分区?大分区会引发什么问题?** 2. **在Windows WSL中,如何直接访问Linux根目录下的Windows文件?** 3. **如何将新硬盘挂载为Linux的次级根目录(如`/data`)?** 4. **系统启动时根目录加载失败有哪些修复方法?** [^1]: 根目录分区设计建议 [^2]: WSL中根目录的物理位置 [^3]: 服务根目录修改方法 [^4]: 开发环境根目录配置调整
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值