Linux 文件和应用程序是如何组织的?

Linux 文件和应用程序是如何组织的?

我是 Linux(Ubuntu)新手用户,我想知道是否有人可以提供一些建议,比如在哪里安装东西、不要触碰哪些文件夹、每个文件夹的含义等等。

我首先担心的是,是否应该将所有内容放入我的主文件夹中?我已经“手动”安装了 Komodo Edit(它是一个 IDE),并且它已进入我的主文件夹,我真的不喜欢在那里放置应用程序。(在 Windows 中,我曾经将工作文件/图片/下载...分区,然后将所有应用程序放在 OS 分区中)。

那么,有没有什么地方可以安装这个软件?有什么建议可以让我的主文件夹井然有序?也许我应该在主目录中创建一个应用程序文件夹?

提前致谢。 :)

pd:大多数时候我使用 apt 来安装东西,但我总能在那里找到我想要的软件……

答案1

/home/<yourlogin>您的有效“我的文档”是否等同于 Windows。您的桌面、图片等都在那里...

通常你会在那里下载东西,然后从该位置编译/运行 rpm,然后请求超级用户访问权限(提升)并将其应用程序安装到以下位置:

/usr/bin /usr/libETC...

  • /bin包含操作系统全局命令,PATH与 Windows非常相似
  • /sbin包含超级用户的操作系统全局命令(需要提升)
  • /usr/bin包含应用程序
  • /usr/sbin包含需要提升权限的应用程序
  • /dev包含设备(例如:/dev/sda0是 Scsi 驱动器 A、分区 0、/dev/floppy是软盘驱动器等等...
  • /etc是你的系统配置,通常在 .conf 文件中

我想,这就是基本的入门知识。

此外,在文件夹前加上前缀.将使其变为“隐藏”,即:/home/aren/.ssh,您仍然可以访问它,但必须使用才能ls -a使其在查看时显示在列表中。

答案2

维基百科有一篇关于这个的很棒的文章引述该文章中最有用的部分:

在 FHS 中,所有文件和目录都出现在根目录“/”下,即使它们存储在不同的物理设备上。但请注意,这些目录中的某些目录可能存在也可能不存在,这取决于是否安装了某些子系统(例如 X Window 系统)。

这些目录中的大多数存在于所有 UNIX 操作系统中,并且通常以相同的方式使用;但是,这里的描述是专门用于 FHS 的,对于 Linux 以外的平台不具有权威性。

  • / 整个文件系统层次结构的初级层次根和根目录。
  • /bin/ 需要在单用户模式下可用的基本命令二进制文件;适用于所有用户,例如 cat、ls、cp。
  • /boot/ 引导加载程序文件(例如内核、initrd);通常位于单独的分区[8]
  • /dev/ 基本设备,例如 /dev/null。
  • /etc/ 主机特定的系统范围的配置文件(名称来自 et cetera[9])。
  • /etc/opt//opt/ 的配置文件。
  • /etc/X11/X Window 系统版本 11 的配置文件。
  • /etc/sgml/SGML 的配置文件。
  • /etc/xml/XML 的配置文件。
  • /home/ 用户的主目录,包含已保存的文件、个人设置等;通常是一个单独的分区。
  • /lib/ /bin/ 和 /sbin/ 中的二进制文件所必需的库。
  • /media/ 可移动媒体(例如 CD-ROM)的挂载点(出现在 FHS-2.3 中)。
  • /mnt/ 临时挂载的文件系统。
  • /opt/ 可选的应用软件包[10]。
  • /proc/ 虚拟文件系统以文本文件形式记录内核和进程状态,例如正常运行时间、网络。在 Linux 中,对应于 Procfs 挂载。
  • /root/ root 用户的主目录。
  • /sbin/ 基本系统二进制文件,例如 init、ip、mount。
  • /srv/ 系统提供的特定站点数据。
  • /tmp/ 临时文件(另请参阅 /var/tmp)。系统重启后通常不会保留。
  • /usr/ 只读用户数据的二级层次结构;包含大多数(多)用户实用程序和应用程序。[11]
  • /usr/bin/非必要的命令二进制文件(单用户模式下不需要);适用于所有用户。
  • /usr/include/标准包含文件。
  • /usr/lib//usr/bin/ 和 /usr/sbin/ 中的二进制文件的库。
  • /usr/sbin/非必要的系统二进制文件,例如各种网络服务的守护进程。
  • /usr/share/与架构无关的(共享)数据。
  • /usr/src/源代码,例如内核源代码及其头文件。
  • /usr/X11R6/X Window 系统,版本 11,发行版 6。
  • /usr/local/特定于此主机的本地数据的第三层级结构。通常包含进一步的子目录,例如 bin/、lib/、share/。[12]
  • /var/ 可变文件——在系统正常运行期间内容会不断变化(如日志、假脱机文件和临时电子邮件文件)的文件。有时是单独的分区。
  • /var/lib/状态信息。程序运行时修改的持久数据,例如数据库、包装系统元数据等。
  • /var/lock/锁定文件。跟踪当前正在使用的资源的文件。
  • /var/log/日志文件。各种日志。
  • /var/mail/用户的邮箱。
  • /var/run/有关自上次启动以来正在运行的系统的信息,例如当前登录的用户和正在运行的守护进程。
  • /var/spool/等待处理的任务(例如打印队列和未读邮件)的假脱机。
  • /var/spool/mail/已弃用的用户邮箱位置。 /var/tmp/重新启动后将保留临时文件。
  • /var/www/网站文件层次结构(Apache 提供服务的网站的默认位置)。

答案3

在 Linux 下,根文件夹中的目录/按照以下方式排列:文件系统层次标准。通常,人们使用发行版提供的包管理器来安装和卸载软件。还有几个地方存储配置文件(最明显的是/etc/),有时这些文件需要由用户编辑。否则,几乎不需要在主目录之外乱搞。

手动安装软件时,通常不希望安装到系统目录中,如/usr/bin//bin//sbin//usr/sbin/。相反,手动安装的软件应使用 ,/usr/local/以避免与使用包管理器安装的软件发生冲突,并且实际上具有相同的结构/(即手动安装使用/usr/local前缀)

当您在通常的结构之外安装软件时,shell 可能找不到可执行文件,二进制文件可能找不到它所链接的库。在 shell 变量中列出的所有目录中搜索二进制文件,您可以调整该变量。在解析链接依赖项时,保存要搜索库的目录列表的变量$PATH也是如此(请参阅)。$LD_LIBRARY_PATHman ld

(注意:上面有很多“通常”和“习惯”。这是因为没有人强迫你遵循某些(合理的)标准——你可以自由地搬起石头砸自己的脚。)

相关内容