草庐IT

Linux知识分享|Linux目录结构(最全最详细)

我是沐风晓月 2023-09-05 原文

文章目录


前言

在Linux世界里,一切皆文件。 我们今天一起来看看linux的目录结构


一、文件系统的概念

计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易。

文件系统使用文件和树形目录的抽象逻辑概念,用户使用文件系统来保存数据不必关心数据实际保存在硬盘的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名即可。

二、文件系统的分类

ext2 : 早期linux中常用的文件系统
ext3 : ext2的升级版,带日志功能
ext4 : 基于磁盘(存放根目录分区)
NFS : 网络文件系统,由SUN发明,主要用于远程文件共享
NTFS : Windows NT/XP 操作系统采用的文件系统

XFS : 由SGI开发的先进的日志文件系统,支持超大容量文件
ISO9660 : 大部分光盘所采用的文件系统
SMBFS : Samba 的服务的共享文件系统
tmpfs : 临时文件系统(内存文件系统)

三, 文件系统的目录结构

3.1 windows的目录结构

在WIN系统中,查看文件先进入相应的盘符,然后进入文件目录

3.2 linux目录结构

在 Linux 系统中,所有内容都是以文件的形式保存和管理的,即「一切皆文件」。普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是文件。

linux只有一个根目录,而且文件和目录被组织成一个单根倒置树结构,
此结构最上层是根目录,用“/”表示

根文件系统(rootfs):root filesystem 标准Linux文件系统(如:ext4)

如下图:

有几个特性:

  • 文件名称大小写敏感,例如:MAIL, Mail, mail, mAiL
  • 以 . 开头的文件为隐藏文件
  • 路径的分割用"/"
  • 文件名最长255个字节
  • 包括路径在内文件名称最长4095个字节

3.2.1 使用tree命令查看目录结构

具体的目录结构可以使用tree命令查看:
若无tree命令可以安装

[root@mufenggrow ~]# yum install tree -y

只查看第一层目录:

[root@mufenggrow ~]# tree -L 1 /
/
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var

tree后面不加任何内容,表示 tree . ,也就是当前目录的目录树
只显示目录可以用tree -d

[root@mufenggrow test]# tree -d
.
├── a
├── b
└── c

3 directories

3.2.2 目录作用说明

  • bin 普通用户使用的命令 /bin/ls, /bin/date
  • dev 设备文件 /dev/sda,/dev/tty1,dev/tty2,/dev/pts/1
  • home 普通用户家目录小区
  • lost+found 孤儿文件
  • proc 虚拟的文件系统,反映出来的是内核,进程信息或实时状态
  • sbin 管理员使用的命令
  • usr 系统文件,相当于C:\Windows
    • /usr/local 相当于C:\Program
    • /usr/bin 普通用户使用的应用程序
    • /usr/sbin 管理员使用的应用程序
  • boot 存放的启动相关的文件,例如kernel,grub(引导装载程序)
  • etc 配置文件
  • lib 库文件Glibc
  • lib64 库文件Glibc

设备(主要指存储设备)挂载目录

  • media 移动设备默认的挂载点
  • mnt 手工挂载设备的挂载点
  • misc automount进程挂载
  • net automount进程挂载
  • root root用户的HOME
  • tmp 临时文件(主要是程序产生的临时文件)
  • var 存放的是一些变化文件,比如数据库,日志,邮件…
    • mysql: /var/lib/mysql
    • vsftpd: /var/ftp
    • mail: /var/spool/mail
    • cron: /var/spool/cron
    • log: /var/log
    • 临时文件 /var/tmp (主要是程序产生的临时文件)

总结

关于目录结构,有些比较重要的目录我们要需要记住:

  • /etc/resolv.conf linux系统DNS客户端配置文件,DNS(Domain Name System)在网站的运行中起到了至关重要的作用,其主要负责将网站域名解析为对应的IP地址。
  • /etc/hostname 主机名配置文件
    hostnamectl set-hostname itlaoxin 这个命令会直接修改配置文件
  • /etc/hosts 设定用户IP与名字(或域名)的对应解析表,相当于本地(局域网内)的DNS解析文件
    Linux系统下的这个/etc/hosts类似于C:\WINDOWS\system32\drivers\etc\hosts文件
  • /etc/fstab:配置开机设备自动挂载的文件
  • /etc/inittab:系统启动时设定运行级别等配置的文件
  • ./etc/profile及/etc/bashrc:配置系统的环境变量/别名等的文件
  • /etc/profile.d:用户登录后执行的脚本所在的目录
  • /etc/init.d:软件启动程序所在的目录(centos7之前),centos7之后这个目录已经不用了。
  • /etc/motd:配置用户登录系统之后显示提示内容的文件
  • /etc/redhat-release:查看Red Hat版本号和名称信息的文件
  • /etc/sysctl.conf:Linux内核参数设置文件
  • /var/log:记录系统及软件运行信息文件所在的目录
  • var/log/secure:用户登录信息日志文件
  • /var/log/dmesg:记录硬件信息加载情况的日志文件
  • /proc/cpuinfo 当前cpu相关的信息
  • /proc/meminfo 当前内存信息
  • /proc/loadavg 当前平均负载相关的信息
  • /proc/mounts 当前挂载相关的信息

好了,今天就学到这吧。

有关Linux知识分享|Linux目录结构(最全最详细)的更多相关文章

  1. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  2. ruby-on-rails - active_admin 目录中的常量警告重新声明 - 2

    我正在使用active_admin,我在Rails3应用程序的应用程序中有一个目录管理,其中包含模型和页面的声明。时不时地我也有一个类,当那个类有一个常量时,就像这样:classFooBAR="bar"end然后,我在每个必须在我的Rails应用程序中重新加载一些代码的请求中收到此警告:/Users/pupeno/helloworld/app/admin/billing.rb:12:warning:alreadyinitializedconstantBAR知道发生了什么以及如何避免这些警告吗? 最佳答案 在纯Ruby中:classA

  3. ruby - 是否有用于序列化和反序列化各种格式的对象层次结构的模式? - 2

    给定一个复杂的对象层次结构,幸运的是它不包含循环引用,我如何实现支持各种格式的序列化?我不是来讨论实际实现的。相反,我正在寻找可能会派上用场的设计模式提示。更准确地说:我正在使用Ruby,我想解析XML和JSON数据以构建复杂的对象层次结构。此外,应该可以将该层次结构序列化为JSON、XML和可能的HTML。我可以为此使用Builder模式吗?在任何提到的情况下,我都有某种结构化数据-无论是在内存中还是文本中-我想用它来构建其他东西。我认为将序列化逻辑与实际业务逻辑分开会很好,这样我以后就可以轻松支持多种XML格式。 最佳答案 我最

  4. ruby-on-rails - 如何在 Gem 中获取 Rails 应用程序的根目录 - 2

    是否可以在应用程序中包含的gem代码中知道应用程序的Rails文件系统根目录?这是gem来源的示例:moduleMyGemdefself.included(base)putsRails.root#returnnilendendActionController::Base.send:include,MyGem谢谢,抱歉我的英语不好 最佳答案 我发现解决类似问题的解决方案是使用railtie初始化程序包含我的模块。所以,在你的/lib/mygem/railtie.rbmoduleMyGemclassRailtie使用此代码,您的模块将在

  5. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  6. ruby-on-rails - 一般建议和推荐的文件夹结构 - Sinatra - 2

    您将如何构建一个简单的Sinatra应用程序?我正在制作,我希望该应用具有以下功能:“应用程序”更像是一个包含所有信息的管理仪表板。然后另一个应用程序将通过REST访问信息。我还没有创建仪表板,只是从数据库中获取东西session和身份验证(尚未实现)您可以上传图片,其他应用可以显示这些图片我已经使用RSpec创建了一个测试文件通过Prawn生成报告目前的设置是这样的:app.rbtest_app.rb因为我实际上只有应用程序和测试文件。到目前为止,我已经将Datamapper用于ORM,将SQLite用于数据库。这是我的第一个Ruby/Sinatra项目,所以欢迎任何和所有建议-我应

  7. ruby-on-rails - 没有这样的文件或目录 - 用 Mini Magick 识别 - 2

    在我让另一个人重做我的前端UI之前,我的Rails应用程序运行平稳。我已经尝试解决此错误3天了。这是错误:Nosuchfileordirectory-identifyExtractedsource(aroundline#59):575859606162@post=Post.find(params[:id])authorize@postif@post.update_attributes(post_params)flash[:notice]="Postwasupdated."redirect_to[@topic,@post]else{"utf8"=>"✓","_method"=>"patc

  8. ruby - Sinatra 找不到 View 目录 - 2

    我正在尝试以一种更类似于普通RubyGem结构的方式构建我的Sinatra应用程序。我有以下文件树:.├──app.rb├──config.ru├──Gemfile├──Gemfile.lock├──helpers│  ├──dbconfig.rb│  ├──functions.rb│  └──init.rb├──hidden│  └──Rakefile├──lib│  ├──admin.rb│  ├──api.rb│  ├──indexer.rb│  ├──init.rb│  └──magnet.rb├──models│  ├──init.rb│  ├──invite.rb│  ├─

  9. ruby - 如何在 ruby​​ 中复制目录结构,不包括某些文件扩展名 - 2

    我想编写一个ruby​​脚本来递归复制目录结构,但排除某些文件类型。因此,给定以下目录结构:folder1folder2file1.txtfile2.txtfile3.csfile4.htmlfolder2folder3file4.dll我想复制这个结构,但不包含.txt和.cs文件。因此,生成的目录结构应如下所示:folder1folder2file4.htmlfolder2folder3file4.dll 最佳答案 您可以使用查找模块。这是一个代码片段:require"find"ignored_extensions=[".cs"

  10. ruby-on-rails - 在 Rails 中需要整个目录树的好方法是什么? - 2

    我正在使用Rails3.2.2并希望递归加载某个目录中的所有代码。例如:[Railsroot]/lib/my_lib/my_lib.rb[Railsroot]/lib/my_lib/subdir/support_file_00.rb[Railsroot]/lib/my_lib/subdir/support_file_01.rb...基于谷歌搜索,我试过:config.autoload_paths+=["#{Rails.root.to_s}/lib/my_lib/**"]config.autoload_paths+=["#{Rails.root.to_s}/lib/my_lib/**/"

随机推荐