从0开始学习Linux——文件目录

news2024/11/26 10:00:33

往期目录:

从0开始学习Linux——简介&安装

从0开始学习Linux——搭建属于自己的Linux虚拟机

从0开始学习Linux——文本编辑器

从0开始学习Linux——Yum工具

从0开始学习Linux——远程连接工具

 上期教程我们学习了如何使用远程连接工具去连接Linux系统,这节教程我们将了解Linux系统的文件目录。

在Linux系统中,文件系统的目录结构是层次化的,根目录 (/) 位于最上层,所有其他文件和目录都在其下。Linux的目录结构遵循文件系统层次标准(FHS),这是一个定义标准目录和文件位置的规范。

 上图就是Linux系统的一个文件目录,我们可以发现它和我们的windows这些系统的目录结构是不一样的。在 Linux 中,文件系统不是像 Windows 中那样使用驱动器号(如 C:、D:)。而是所有的文件和设备都被挂载到根目录/下。硬盘分区、外部存储设备等都可以挂载到某个目录下。例如,一个外部硬盘可以挂载到/mnt/data,一个新创建的分区可以挂载到/data。

一、“/”根目录

Linux 是一个类 Unix 系统,它采用层次化的文件系统结构。根目录是整个文件系统的顶级目录,所有其他文件和目录都是从此目录衍生出来的。它是文件系统的起点。

注意:在 Linux 中,整个系统只有一个根目录,即/。所有其他目录(如/home、/usr等)都是根目录下的子目录。

二、“/bin”目录

在 Linux 操作系统中/bin(Binary的缩写)目录是一个非常重要的系统目录,它存放了系统启动和正常运行所必需的基本命令和可执行文件。该目录对于系统的基本操作至关重要,通常是操作系统中最核心的一部分之一。

2.1 /usr/bin目录

在Linux系统中/bin是指向/usr/bin目录的,也就是说/bin目录是/usr/bin目录的一个快捷方式。

也就是说我们打开/usr/bin目录和/bin目录其实是一样的,因为/bin目录是/usr目录的一个快捷方式。

注意:由于系统不一样或者版本不一样,可能对/bin和/usr/bin的处理关系也有所不同。

2.2 bin目录文件结构

/bin目录的主要目的是存放系统的基本命令(文件管理、系统监控、硬件管理、网络配置等常用功能的程序命令),这些命令通常是系统启动和恢复过程中所必需的,或者是单用户模式下使用的命令。它包含了大多数管理员和普通用户日常使用的基本命令。所有存储在该目录中的可执行文件必须是可以在没有其他文件系统或挂载点的情况下运行的,因此 /bin目录中的工具通常都是小巧且高效的。

/bin目录常见命令如下所示:

  • ls:列出目录内容
  • cp:复制文件或目录
  • mv:移动文件或目录
  • rm:删除文件或目录
  • cat:查看文件内容
  • echo:输出文本到终端
  • pwd:显示当前目录路径
  • chmod:更改文件权限
  • chown:更改文件所有者
  • ln:创建文件链接
  • bash:Bash shell 命令解释器
  • tar:打包和解包文件
  • gunzip:解压缩.gz格式的文件
  • ps:查看系统进程
  • kill:终止进程

上述命令我们将在后续教程中陆陆续续的使用到。

对于上述命令我们做一个大致分类:

  • 系统命令:如ls、cv、mp等。
  • Shell 命令:如 bash,sh等。
  • 系统工具:如 kill,ps,mount 等。
  • 程序工具:如 tar,gzip,zip 等。

补充:

在Linux系统中,命令指的是你在终端输入的指令。命令可以是可执行文件、脚本、内置命令或外部程序。命令的作用是执行特定的操作,而可执行文件是实际的二进制文件,包含计算机能够执行的指令。

2.2 /bin目录挂载&重要性

/bin目录通常是 根文件系统的一部分,并且在系统启动时首先挂载。它包含了一些必须能够在根文件系统无法访问其他文件系统时就能运行的程序。因此,/bin 目录中的程序是非常关键的,系统故障恢复时也需要这些命令来进行修复和诊断。

在某些特殊的 Linux 系统配置中,可能会使用一个单独的、仅包含/bin 和最必要的命令的"紧急"根文件系统。这样,系统就可以在某个严重错误时最小化恢复到一个工作状态。

三、”/sbin“目录

/sbin(sbin 是 "System Binary"(系统二进制)的缩写)目录是一个非常重要的系统目录,用于存放系统管理命令的目录即专门用于存放系统管理和修复等高级任务所需的二进制可执行文件。这些文件通常用于系统的启动、维护和修复,不同于普通的用户程序,它们通常是由系统管理员 (root 用户) 执行的,也就是说普通用户通常不需要访问这个目录中的命令,除非他们有足够的权限(如 root 权限)。

注意:与/bin 目录类似,/sbin 也存放的是二进制可执行文件(如ls、cp、mv 等基本命令)。这些文件通常是静态链接的,这意味着它们不依赖于共享库,能够在最基础的环境下运行。

3.1 关机&重启

  • shutdown:关机命令,用于安全地关闭系统。
  • reboot:重启系统。
  • halt:停止系统的所有进程,并使其进入停止状态。
  • poweroff:关闭电源,关闭系统。

3.2 系统修复&维护

  • fsck:文件系统一致性检查工具,用于检查和修复损坏的文件系统。
  • mount:挂载文件系统。
  • umount:卸载文件系统。

3.3 网络

  • ifconfig:用于查看或配置网络接口(如果该命令执行不了就说明没有安装工具,可以先安装sudo yum install net-tools,然后再去执行)。
  • ip:用于网络配置的现代工具,取代了 ifconfig。
  • route:显示或修改路由表。
  • netstat:显示网络连接、路由表、接口统计等。

3.4 磁盘管理

  • parted:磁盘分区管理工具。
  • fdisk:用于管理磁盘分区的工具。
  • mkfs:格式化磁盘并创建文件系统。

3.5 系统进程

  • init:初始化进程,用于启动和管理系统的运行级别(runlevel)。
  • systemctl:用于管理 systemd 服务,启动、停止、重启服务等。
  • service:传统的服务管理命令(在使用 systemd 后,systemctl 是更推荐的工具)。

3.6 /usr/sbin

在Centos7这里/sbin还是指向的是/usr/sbin里面的。

四、”/boot“目录

/boot目录包含启动操作系统所需的文件,如Linux内核文件和启动引导程序(如GRUB)。

五、”/dev“目录

该目录用于存放设备文件,这些文件表示系统中的硬件设备(例如磁盘、终端、打印机等)。

六、”/etc“目录

/etc目录是一个非常重要的系统目录,主要用于存储系统和应用程序的配置文件。这个目录包含了操作系统、服务、用户和系统配置等方面的所有配置文件,管理员通过编辑这些文件来管理和定制系统行为。

6.1 常见文件&目录

6.1.1 /etc/hostname

该文件存储系统的主机名(hostname),即机器在网络中的名称,当系统启动时,操作系统会从这个文件读取主机名。

6.1.2 /etc/fstab

该文件用于存储文件系统的挂载信息也就是定义在系统启动时应该自动挂载的磁盘分区、网络共享等。比如,它会列出硬盘分区、挂载点、文件系统类型、挂载选项等信息。

6.1.3 /etc/hosts

该文件用于存储静态的IP地址与主机名映射。系统会首先检查这个文件来解析域名,如果无法通过DNS解析域名,就会通过/etc/hosts文件查找。

 6.1.4 /etc/passwd

该文件用于存储系统用户账户的基本信息。每个用户的相关信息(如用户名、UID、GID、家目录、默认shell等)都记录在这个文件中。此文件可以让你查看或编辑用户的基本信息。

 6.1.5 /etc/group

该文件用于存储用户组的信息。每个用户组的基本信息(如组名、GID、组成员)都记录在此文件中。

 6.1.6 /etc/sudoers

该文件用于配置sudo权限文件,定义哪些用户可以执行特定的命令,以及是否需要提供密码等。通过visudo命令进行编辑,因为它会进行语法检查以避免配置错误。

6.1.7 /etc/sysconfig/

此目录包含了 CentOS 系统的许多配置信息,包括各类系统服务和程序的配置文件,如网络配置、系统安全、主机名、语言设置等。

例如:/etc/sysconfig/network存储网络配置,/etc/sysconfig/network-sctripts 目录包含了网络接口的配置文件。

6.1.8 /etc/selinux/

此目录包含 SELinux(Security-Enhanced Linux)相关的配置文件。

6.1.9 /etc/init.d/

该目录下的脚本用于管理系统服务,主要用于传统的 SysVinit 服务管理,在 CentOS 7 中已经被systemd 所取代,但这些脚本仍然存在以保证向后兼容。

6.1.10 /etc/systemd/

该目录包含了 systemd 服务单元配置文件。systemd 是 CentOS 7 中的初始化系统和服务管理器,管理着系统的启动、服务的状态、依赖关系等。

6.1.11 /etc/crontab

系统级的 cron 定时任务配置文件。

6.1.12 /etc/ssh/

该目录存放 SSH 服务的配置文件,例如sshd_config(SSH 守护进程的配置文件),该文件控制 SSH 服务的行为和安全设置。

6.1.13 /etc/logrotate.conf/etc/logrotate.d/

控制日志文件的轮转策略,定期删除或压缩旧日志文件,避免日志文件占用过多磁盘空间。

6.1.14 /etc/yum.repos.d/

存放 YUM 仓库的配置文件,定义了从哪些镜像站点安装和更新软件包。

6.1.15 /etc/ssl/

该目录用于存放 SSL 证书、密钥以及配置文件。

6.1.16 /etc/nsswitch.conf

该文件配置 DNS、NIS、LDAP 等数据库查找顺序。

七、”/home“目录

该目录用于存放所有用户的个人文件和配置文件,每个用户通常都有一个与用户名同名的目录。

例如我创建了一个admin用户,那么在该/home目录下就会有一个admin文件夹。

八、”/lib“目录

该目录用于存放系统和程序运行所需的共享库文件,类似Windows中的DLL文件,包括包括必要的动态链接库(如lbc.o)、内核模块等。

九、”/media“目录

该目录通常用于挂载可移动设备(如USB驱动器、CD/DVD等)。

插当入USB设备、光盘或其他外部存储设备时,Linux会自动将它们挂载到/media 下的某个子目录中。

十、”/mnt“目录

该目录用于临时挂载文件系统。管理员可以在此目录中挂载文件系统,以便进行维护或调试。

十一、”/opt“目录

/opt目录是一个用于存放附加应用程序的标准目录,它遵循 Linux 文件系统层次结构标准(Filesystem Hierarchy Standard, FHS)。这个目录通常包含了那些不是操作系统一部分的、由第三方提供的、独立安装的应用程序和软件包。

该目录的主要作用是用来存放那些由系统管理员或用户手动安装的、附加的软件包。这些软件包通常不属于操作系统的标准软件仓库,而是由第三方提供的独立应用程序、商业软件、或大规模的应用程序套件。

/opt目录的设计思想是将由第三方提供的应用程序与操作系统本身的文件隔离开来。这意味着,应用程序的安装文件和配置文件不会干扰到系统核心文件或其他软件的文件。因此,如果要卸载某个软件,只需要删除 /opt 目录下对应的子目录即可,而不必担心影响到系统其他部分。

注意:/opt目录的权限通常较为宽松,允许系统管理员安装第三方软件。然而,普通用户通常没有权限在/opt目录下创建或修改文件,只有管理员(root 用户)才有权限操作此目录。

十二、”/proc“目录

这是一个虚拟文件系统,不是存储在磁盘上的实际文件。它提供了内核和进程的信息。

十三、”/root“目录

这是超级用户(root)的个人目录,类似普通用户的/home/用户名,它可以存放root用户的个人配置文件、脚本等。/root 目录一般具有更高的权限。

十四、”/run“目录

该目录用于存放系统启动后运行时的临时数据,通常包括PID文件、锁文件、缓存等,包含系统运行时生成的状态信息,如 /run/utmp(当前登录用户的信息)等。

十五、”/srv“目录

该目录用于存放某些服务的特定数据。例如,Web服务器或FTP服务器的文件可以存放在这里。

例如/srv/www可能包含网站的文件,/run/ftp可能包含FTP服务的数据。

十六、”/sys“目录

该目录类似于 /proc,但是专注于系统硬件和内核信息,包含了关于设备驱动程序和内核模块的详细信息。通过 /proc,用户可以访问系统的内核结构,查看或修改硬件设备的状态。

十七、”/tmp“目录

该目录用于存放临时文件,通常由应用程序生成,在重启系统后这些文件会被删除,比如应用程序生成的临时缓存文件、日志文件等。

十八、”/usr“目录

/usr是 Unix 系统中用于存放用户级程序和数据的一个目录。最初,/usr被用来存储可选的、非必需的程序和库文件,而 /bin和 /lib 用来存放系统的核心文件。随着时间的发展,/usr逐渐成为了一个系统重要组成部分,其中包含了大多数用户需要的程序、库、文档等。

18.1 常见子目录

  • /usr/bin:这个目录是用户可执行程序的主要存放地。
  • /usr/sbin:这个目录存放的是系统管理员(root 用户)执行的程序,通常用于系统管理、维护任务等。虽然普通用户不能执行这些命令(除非具有管理员权限),但这些命令通常对系统的管理和配置非常重要。
  • /usr/lib:这个目录包含了系统和应用程序的共享库文件。共享库是动态链接库(DLL),它们为程序提供运行时支持,例如提供各种系统功能、图形界面、网络功能等。不同于静态库,动态库在程序运行时被加载。
  • /usr/share:该目录主要存放系统中不依赖于架构的共享数据文件。这些文件通常是静态的、与平台无关的内容,比如文档、帮助文件、应用程序的共享资源等。
  • /usr/include:该目录包含了系统中各类开发头文件(.h 文件)。这些文件定义了程序的接口,例如系统调用、库函数、数据结构等。开发人员在编写程序时,通常会包含这些头文件来使用操作系统提供的功能。
  • /usr/local:该目录是用于存放手动安装的软件的地方。与 /usr 中的系统文件不同,/usr/local 主要用于存放管理员手动安装的程序、库和数据文件。通常,管理员会将自编译的应用程序安装到此目录,而不是系统自带的 /usr/bin或/usr/lib 中。
  • /usr/src:该目录存放的是源代码文件,通常包括操作系统内核源码和其他程序的源代码。管理员可以在这个目录中编译内核或者其他软件包。
  • /usr/liexec:这个目录存放的是一些系统服务和守护进程的可执行文件。它们并不直接供用户使用,而是为系统其他程序或服务提供支持。通常,这些文件会被系统自动调用。

补充:如果你安装的软件是由你自己编译的,或者是一些需要手动管理的程序,推荐将其安装到 /usr/local,如果你安装的是第三方的商业软件或一些需要隔离的应用,推荐使用 /opt。

十九、”/var“目录

该目录用于存放经常变化的文件,如日志文件、邮件、缓存等。

二十、绝对路径和相对路径

20.1 绝对路径

绝对路径是从文件系统的根目录”/“开始,完整地描述了文件或目录的定位方式。根目录是 Linux 系统中的最上层目录,所有其他文件和目录都在这个根目录下或其子目录中。

特点:

  • / 开头。
  • 指定了文件或目录的完整位置,不依赖于当前工作目录。
  • 在系统中,绝对路径唯一地标识了文件或目录。

例如:/var/log/syslog,这是另一个绝对路径,指向系统日志文件。

20.2 相对路径

相对路径是相对于当前工作目录(即当前所在的目录)而言的路径。当你使用相对路径时,它不以 / 开头,而是根据当前目录的位置来定位目标文件或目录。

特点

  • 不以 / 开头,而是根据当前工作目录来指定路径。
  • 使用相对路径时,路径的解析依赖于你当前所在的目录。
  • 相对路径通常比绝对路径简短,适合在特定环境中使用。

假设当前的工作目录是/home/admin:

  • documents/file.txt:这是一个相对路径,指的是位于当前目录下 documents子目录中的 file.txt 文件即/home/admin/documents/file.txt。
  • ../file.txt:../ 表示上一级目录, ../file.txt指的是/home/admin/file.txt 文件。
  • ./file.txt:./表示当前目录,通常用来指定当前目录下的文件或程序,这里指的是当前目录下的file.txt文件即/home/admin/file.txt。
  • file.txt:指的当前目录下file.txt即/home/admin/file.txt。

20.3 目录跳转

在linux中目录跳转可以使用cd命令完成。

我们可以使用绝对路径进行跳转,例如:cd /opt/xx/yy

当然我们也可以使用相对路径,假设我们现在在/opt/xx目录下,cd ../或者cd ..表示跳转到/opt/xx的父级目录即/opt,而./或者.则表示当前目录下。

补充:

cd ~命令是 Linux 系统中一个非常常用的命令,~是一个特殊的符号,代表当前用户的 家目录(Home Directory),当然我们也可以跳转到其它用户的家目录,例如cd ~root。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2235102.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++入门基础知识140—【关于C++ 类构造函数 析构函数】

成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于C 类构造函数 & 析构函数的相关内容…

MSC“名实之辩”:精准鉴定只为精准治疗

前 言 MSC是一群来源广泛、能够体外增殖分化的异质性细胞。MSC具有免疫调节、促进组织修复等作用,应用于多种疾病的治疗。由于科学进程、习惯等原因,MSC具有多种名称。自先秦以来,就有“名实之辩”,今日我们就讲一讲MSC的名称与…

零基础 Vue 入门:个人主页完整示例教程” “Vue 实战:构建简洁美观的个人主页界面” “从零开始使用 Vue 构建个人主页,包含详细代码解析”

效果图 博客教程:使用 Vue 构建简易个人主页界面 目录 前言项目结构和准备HTML 与 CSS 布局Vue 数据绑定和渲染功能实现总结 前言 本教程将带你逐步使用 Vue.js 创建一个简易的“个人主页”界面。通过学习该项目,你将掌握 Vue 的基本数据绑定、指令的…

(二)基于Bayes方法的道路分割

一、实验目的 1、实验目标 学习掌握Bayes定理(Bayes Theorem)的基本原理及推导过程,以及公式中的先验概率、条件概率、后验概率、相似度等概念。在MATLAB的概率分布函数基础上,通过编写程序,实现图像块内结果统计和序…

从新手到专家:7款电脑平面设计软件评测

平面设计在时尚、广告等多个领域扮演着重要角色,而创作出独特且富有创意的设计作品则需要依赖优秀的电脑平面设计软件。市场上的电脑平面设计软件众多,每款软件都有其独到之处。本文将为你推荐几款值得关注的电脑平面设计软件,并分析它们的特…

Django安装

在终端创建django项目 1.查看自己的python版本 输入对应自己本机python的版本,列如我的是3.11.8 先再全局安装django依赖包 2.在控制窗口输入安装命令: pip3.11 install django 看到Successflully 说明我们就安装成功了 python的Scripts文件用于存…

elementui中的新增弹窗在新增数据成功后再新增 发现数据无法清除解决方法

elementui中的新增弹窗在新增数据成功后再新增 发现数据无法清除解决方法 试过网上其他方法,发现表单清空数据还是有问题,索性用下面方法解决: // 给弹框里面添加 v-ifvisible测试无问题,暂时先这样解决,如果有其他方法&#x…

计算机网络——路由器构成

算路由表是分布式去算——你算你的,我算我的 输出队列非先来先传 调度发生在哪里 缓存队列一般是应对——来数据方向的速度过快问题

PMP–一、二、三模、冲刺–分类–7.成本管理–技巧–挣值分析

文章目录 技巧一模7.成本管理--4.控制成本--数据分析--挣值分析--进度绩效指数(SPI)是测量进度效率的一种指标,表示为挣值与计划价值之比,反映了项目团队完成工作的效率。 当 SPI小于 1.0 时,说明已完成的工作量未达到…

CentOS 7 更换软件仓库

CentOS 7 于2024年6月30日停止维护,官方仓库已经没有软件了,想要继续使用 ,需要更换软件仓库,这里更换到阿里云的软件仓库 https://developer.aliyun.com/mirror/ 查看目前可用的软件数量 yum repolist 更换软件仓库&#xff1a…

Dermaseptin;抗菌肽;皮抑菌肽;ALWKTMLKKLGTMALHAGKAALGAAADTISQGTQ;136212-91-4

【Dermaseptin 简介】 Dermaseptin,也被称为皮抑菌肽,是一类由蛙类皮肤分泌的多阳离子抗菌肽,主要存在于树蛙科(Hylid frogs)的蛙类,特别是 Agalychnis 和 Phyllomedusa 属的蛙类。它具有显著的抗菌活性&a…

在培训班学网络安全有用吗

在当今数字化时代,网络安全问题日益凸显,成为了企业和个人关注的焦点。随着对网络安全人才需求的不断增长,各种网络安全培训班也如雨后春笋般涌现。然而,在培训班学网络安全真的有用吗? 一、网络安全的重要性与挑战 1. 信息时代的…

微积分复习笔记 Calculus Volume 1 - 4.7 Applied Optimization Problems

4.7 Applied Optimization Problems - Calculus Volume 1 | OpenStax

绿色能源发展关键:优化风电运维体系

根据QYResearch调研团队最新发布的《全球风电运维市场报告2023-2029》显示,预计到2029年,全球风电运维市场的规模将攀升至307.8亿美元,并且在接下来的几年里,其年复合增长率(CAGR)将达到12.5%。 上述图表及…

软件工程笔记一

目录 软件的概念、特性和分类 软件与程序 软件的特性 软件的分类 软件危机与软件工程 软件危机 如何摆脱软件危机? 软件工程概念的提出 什么是软件工程? 软件工程的若干定义 系统工程的目标 软件工程的基本原理 软件工程的目标 软件的质量特性 软件生存…

【数据结构】线性表——顺序表

文章目录 一、线性表二、顺序表2.1概念及结构2.2、顺序表接口实现2.2.1、顺序表的动态存储2.2.2、顺序表初始化2.2.3、检查空间判断进行增容2.2.4、顺序表尾插、尾删2.2.5、顺序表头插、头删2.2.6、顺序表查找2.2.7、顺序表在pos位置插入x2.2.8、顺序表删除pos位置的值2.2.9、顺…

stable diffusion 大模型

本节内容,给大家带来的是stable diffusion的基础模型课程。基础模型,我们有时候也称之为大模型。在之前的课程中,我们已经多次探讨过大模型,并且也见识过一些大模型绘制图片的独特风格,相信大家对stable diffusion大模…

ChatPaper.ai:研究生文献阅读的AI助手利器

为什么选择 ChatPaper.ai? 作为研究生,我们每天都面临着大量文献阅读的挑战。一篇关键论文往往需要反复阅读数小时,还要做笔记、提取要点、理解创新点,这个过程既耗时又费力。ChatPaper.ai(ChatPaper.ai - Chat with …

python-docx -- 读取word图片

文章目录 概念介绍形状对象读取图片自定义图形 概念介绍 从概念上来讲,word文档分为两层,一个文本层,一个绘画层; 文本层,从上到下,从左到右,流式排版,本页填满则开启新页面&#…

Python邮差:如何用代码精确投递商品快递费用的密信

目录 一、准备工作 二、编写API请求脚本 三、解析与处理快递费用数据 四、案例应用:模拟电商平台的快递费用计算 五、自动化邮件通知 六、总结 在电子商务的广阔天地里,精确计算并快速传递商品快递费用是一项至关重要的任务。作为Python邮差&#…