【Linux进阶】Linux目录配置,FHS

        在了解了每个文件的相关种类与属性,以及了解了如何修改文件属性与权限的相关信息后,再来要了解的就是,为什么每个Linux发行版它们的配置文件、执行文件、每个目录内放置的东西,其实都差不多?原来是有一套标准依据,我们下面就来看一看。

1. Linux目录配置的依据——FHS

        因为利用Linux来开发产品或发行版的社区、公司及个人实在太多了,如果每个人都用自己的想法来配置文件放置的目录,那么将可能造成很多管理上的困扰。你能想象,你进入一个企业之后,所接触到的Linux目录配置方法竟然跟你以前学的完全不同吗?很难想象吧!所以,后来就有所谓的Filesystem Hierarchy Standard (FHS)标准的出炉。

        根据FHS的标准文件指出,它们的主要目的是希望让用户可以了解到已安装软件通常放置于哪个目录下,所以它们希望独立的软件开发商、操作系统制作者以及想要维护系统的用户,都能够遵循FHS 的标准。

        也就是说,FHS的重点在于规范每个特定的目录下应该要放置什么样子的数据而已。这样做好处非常多,因为Linux 操作系统就能够在既有的面貌下(目录架构不变)发展出开发者想要的独特风格。

        事实上,FHS是根据过去的经验一直在持续地改版,FHS依据文件系统使用的频繁与否与是否允许用户随意修改,而将目录定义成为四种交互作用的形态,用表格来说有点像下面这样:

可分享(shareable)不可分享(unshareable)
不变(static)/usr(软件存放处)/etc(配置文件)
/opt(第三方辅助软件)/boot(启动与内核文件)
可变动(variable)/var/mail(用户邮箱)/var/run(程序相关)
/var/spool/news(新闻组)/ar/lock(程序相关)

上表中的目录就是一些代表性的目录,该目录下面所放置的数据在下面会谈到,这里先略过不谈。我们要了解的是,那四个类型是什么?

  • 可分享:可以分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据,是
  • 能够分享给网络上其他主机挂载用的目录;
  • 不可分享:自己机器上面运行的设备文件或是与程序有关的socket文件等,由于仅与自身
  • 机器有关,所以当然就不适合分享给其他主机;
  • 不变:有些数据是不会经常变动的,跟随着发行版而不变动。例如函数库、文件说明、系统
  • 管理员所管理的主机服务配置文件等;
  • 可变动:经常修改的数据,例如日志文件、一般用户可自行接收的新闻组等。

事实上,FHS针对目录树架构仅定义出三层目录下面应该放置什么数据而已,分别是下面这三个目录的定义:

  • /(root,根目录):与启动系统有关;
  •  /usr (unix software resource):与软件安装/执行有关;
  • /var (variable):与系统运行过程有关;

        为什么要定义出这三层目录?

        其实是有意义的,每层目录下面应该要放置的目录也都有特定的规定。由于我们尚未介绍完整的Linux系统,所以下面的介绍你可能会看不懂。没关系,先有个概念即可。

这个root在Linux里面的意义很多很多,多到让人搞不懂那是啥玩意儿。

  • 如果以账号的角度来看,所谓的root指的是系统管理员的身份,
  • 如果以目录的角度来看,所谓的root意即指的是根目录,就是/,要特别留意。

2.根目录(/)的意义与内容

        根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来,同时根目录也与启动、还原、系统修复等操作有关。

                由于系统启动时需要特定的启动软件、内核文件、启动所需程序、函数库等文件数据,若系统出现错误时,根目录也必须要包含有能够修复文件系统的程序才行,因为根目录这么重要,所以在FHS的要求方面,它希望根目录不要放在非常大的分区内,因为越大的分区你会放入越多的数据,如此一来根目录所在分区就可能会有较多发生错误的机会。

        因此FHS 标准建议:根目录(1)所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。如此不但性能较佳,根目录所在的文件系统也较不容易发生问题。

        有鉴于上述的说明,因此 FHS 定义出根目录(/)下面应该要有下面这些子目录的存在才好,即使没有物理目录,FHS也希望至少有链接(link)目录存在才好。
 

第一部分:FHS 要求/下必须要存在的目录
目录应放置文件内容
/bin

系统有很多存放执行文件的目录,但/bin比较特殊。

因为/bin放置的是在单人维护模式下还能够被使用的命令。

在/bin下面的命令可以被 root 与一般账号所使用,主要有:cat、chmod、chown、date、mv、mkdir、cp、bash等常用的命令

/boot这个目录主要在放置启动会使用到的文件,包括Linux内核文件以及启动选项与启动所需配置文件等。Linux内核常用的文件名为:vmlinuz,如果使用的是grub2这个启动引导程序,则还会存在/boot/grub2/这个目录
/dev在Linux系统上,任何设备与接口设备都是以文件的形式存在于这个目录当中。你只要通过读写这个目录下面的某个文件,就等于读写某个设备,比较重要的文件有/dev/null、/dev/zero、/dev/tty、/dev/loop*、/devlsd*等
/etc

系统主要的配置文件几乎都放置在这个目录内,例如人员的账号密码文件、各种服务的启动文件等。

一般来说,这个目录下的各文件属性是可以让一般用户查看的,但是只有root有权力修改。

FHS建议不要放置可执行文件(binary)在这个目录中

比较重要的文件有:/etc/modprobe.d/、/etc/passwd、/etc/fstab、letc/issue等。另外FHS 还规范几个重要的目录最好要存在/etc/目录下:

  • letclopt(必要):这个目录在放置第三方辅助软件/opt的相关配置文件;
  • /etc/X11/(建议):与XWindow 有关的各种配置文件都在这里,尤其是xorg.conf这个X Server的配置文件;
  • /etc/sgml/(建议):与SGML格式有关的各项配置文件;
  • /etc/xm/(建议):与XML格式有关的各项配置文件
/lib

系统的函数库非常多,而/lib放置的则是在启动时会用到的函数库,以及在/bin或/sbin 下面的命令会调用的函数库而已。

什么是函数库?

你可以将它想成是外挂,某些命令必须要有这些外挂才能够顺利完成程序的执行之意,另外FSH 还要求下面的目录必须要存在:

  • /ib/modules/:这个目录主要放置可抽换式的内核相关模块(驱动程序)
/media

media 是媒体的英文,顾名思义,这个/media 下面放置的就是可删除的设备,包括软盘、光盘、DVD等设备都暂时挂载于此。

常见的文件名有:/media/floppy、/media/cdrom等

/mnt如果你想要暂时挂载某些额外的设备,一般建议你可以放置到这个目录中。在早些时候,这个目录的用途与/media相同。只是有了/media之后,这个目录就暂时用来挂载
/opt

这个是给第三方辅助软件放置的目录。

什么是第三方辅助软件?

举例来说,KDE这个桌面管理系统是一个独立的软件,不过它可以安装到Linux系统中,因此KDE的软件就建议放置到此目录下。另外,如果你想要自行安装额外的软件(非原本的发行版提供),那么也能够将你的软件安装到这里来。不过,以前的Linux系统中,我们还是习惯放置在/usr/local目录下

/run早期的FHS规定系统启动后所产生的各项信息应该要放置到/var/run目录下,新版的FHS则规范到/run下面,由于/run可以使用内存来模拟,因此性能上会好很多
/sbin

Linux有非常多命令是用来设置系统环境的,这些命令只有root才能够用来设置系统,其他用户最多只能用来查询而已。

放在/sbin 下面的为启动过程中所需要的,里面包括了启动、修复、还原系统所需要的命令。

至于某些服务器软件程序,一般则放置到lusr/sbin/当中。至于本机自行安装的软件所产生的系统执行文件system binary),则放置到usr/local/sbin/当中了。

常见的命令包括:fdisk、fsck、ifconfig、mkfs等

/srv

srv可以视为service的缩写,是一些网络服务启动之后,这些服务所需要使用的数据目录,常见的服务例如WWW、FTP等。

举例来说,WWW服务器需要的网页数据就可以放置在/svIww/里面。不过,系统的服务数据如果尚未要提供给因特网任何人浏览的话,默认还是建议放置到NvarNib下面即可

/tmp这是让一般用户或是正在执行的程序暂时放置文件的地方。这个目录是任何人都能够存取的,所以你需要定期地清理一下。当然,重要数据不可放置在此目录。因为FHS 甚至建议在启动时,应该要将/tmp下的数据都删除
/usr第二层FHS设置,后续介绍
/var第二层FHS设置,主要为放置变动性的数据,后续介绍

 

第二部分:FSH建议/可以存在的目录
/home

这是系统默认的用户家目录(home directory )。在你新增一个一般用户账号时,默认的用户家目录都会规范到这里来,比较重要的是家目录有两种代号:

  • ~:代表目前这个用户的家目录;
  • ~dmtsai:则代表dmtsai的家目录
/lib<qual>用来存放与 /lib不同的格式的二进制函数库,例如支持64位的 /lib64函数库等
/root系统管理员(root)的家目录,之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时,该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分区中

看看我的根目录,跟上面对一对吧


事实上FHS针对根目录所定义的标准就仅有上面的东西,不过我们的Linux下面还有许多目录你也需要了解一下。下面是几个在 Linux当中也非常重要的目录:

目录应放置文件内容
/lost+found这个目录是使用标准的ext2、ext3、ext4文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时,将一些遗失的片段放置到这个目录下,不过如果使用的是xfs文件系统的话,就不会存在这个目录
/proc

这个目录本身是一个虚拟文件系统(virtual filesystem),它放置的数据都是在内存当中,例如系统内核、进程信息(process)、外接设备的状态及网络状态等。因为这个目录下的数据都是在内存当中,所以本身不占任何硬盘空间。

比较重要的文件如:/proc/cpuinfo、/proc/dma、/proc/interrupts、/proc/ioports、/proc/net/*等

/sys

这个目录其实跟proc非常类似,也是一个虚拟的文件系统,主要也是记录内核与系统硬件信息相关的内容。

包括目前已加载的内核模块与内核检测到的硬件设备信息等,这个目录同样不占硬盘容量


早期Linux在设计的时候,若发生问题时,恢复模式通常仅挂载根目录而已,因此有五个重要的目录被要求一定要与根目录放置在一起,那就是/etc、/bin、/dev、/lib、/sbin这五个重要目录。

        现在许多的Linux发行版由于已经将许多非必要的文件移出了/usr之外,所以/usr也是越来越精简,同时因为/usr 被建议为“即使挂载成为只读,系统还是可以正常运行”的模样,所以恢复模式也能同时接载/usr。

例如我们的这个CentOS7.x版本在恢复模式的情况下就是这样,因此那个五大目录的限制经被打破了。例如CentOS7.x就已经将/sbin、/bin、/ib通通移动到了/usr下面。
 

3./usr 的意义与内容

        依据FHS的基本定义,/usr 里面放置的数据属于可分享与不可变动(shareable,static),如果你知道如何通过网络进行分区的挂载(例如在服务器篇会谈到的NFS服务器),那么/usr确实可以分享给局域网络内的其他主机来使用。

        很多读者都会误以为/usr为user的缩写,其实usr是UNIX Software Resource的缩写,也就是UNy操作系统软件资源所放置的目录,而不是用户的数据,这点要注意。

        FHS建议所有软件开发者,应该将他们的数据合理地分别放置到这个目录下的子目录,而不要自行建立该软件自己独立的目录。

        因为是所有系统默认的软件(发行版发布者提供的软件)都会放置到/usr下面,因此这个目录有点类似Windows系统“C:\Windowsl(当中的一部分)+C:\Program Files\”这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬盘容量。

        一般来说,/usr的子目录建议有下面这些。

FHS要求必须存在的目录
/usr/bin所有一般用户能够使用的命令都放在这里。目前新的CentOS7已经将全部的用户命令放置于此,而使用链接文件的方式将/bin 链接至此。也就是说,/ust/bin与/bin 是一模一样的。另外,FHS要求在此目录下不应该有子目录
/usr/lib/基本上,与Nlib功能相同,所以/lib就是链接到此目录中的
/usr/local/系统管理员在本机安装自己下载的软件(非发行版默认提供者),建议安装到此目录,这样会比较便于管理。举例来说,你的发行版提供的软件较旧,你想安装较新的软件但又不想删除旧版,此时你可以将新版软件安装于/usr/local/目录下,可与原先的旧版软件有分别。你可以自行到/usr/local去看看,该目录下也是具有bin、etc、sinclude、lib.的子目录
/usr/sbin/非系统正常运行所需要的系统命令,最常见的就是某些网络服务器软件的服务命令(daemon)。不过基本功能与/sbin也差不多,因此目前/sbin就是链接到此目录中的
/usr/share/

主要放置只读的数据文件,当然也包括共享文件,在这个目录下放置的数据几乎是不分硬件架构均
可读取的数据,因为几乎都是文本文件。在此目录下常见的还有这些子目录:

  • /usr/share/man:在线帮助文件;
  • /usr/share/doc:软件的说明文档;
  • /usr/share/zoneinfo:与时区有关的时区文件


 

FHS建议可以存在的目录
/usr/games/与游戏比较相关的数据放置处
/usr/include/c/c++等程序语言的头文件(header)与包含文件(include)放置处,当我们以Tarball方式(*.tar.gz的方式安装软件)安装某些程序时,会使用到里面的许多文件
/usr/libexec/某些不被一般用户常用的执行文件或脚本(script)等,都会放置在此目录中。例如大部分的X窗口下面的操作命令,很多都是放在此目录下
/usr/lib<qual>/与 /lib<qual>/功能相同,因此目前 /lib<qual>就是链接到此目录中
/usr/src/一般源代码建议放置到这里,src有source的意思。至于内核源代码则建议放置到/usr/src/Linux/
目录下


我的系统下面的/usr是这样子的

4./var的意义与内容

        如果说/usr是安装时会占用较大硬盘容量的目录,那么/var就是在系统运行后才会渐渐占用硬盘容量的目录。

        因为/var目录主要针对经常性变动的文件,包括缓存(cache)、日志文件(logfile)以及某些软件运行所产生的文件,包括程序文件(lock file、run file),或例如MySQL数据库的文件等。

常见的子目录有。

FHS 要求必须要存在的目录
/var/cache/应用程序本身运行过程中会产生的一些缓存
/var/lib/程序本身执行的过程中,需要使用到的数据文件放置的目录。在此目录下各自的软件应该要有各自的目录。举例来说,MySQL的数据库放置到/arlib/mysql而 rpm的数据库则放到/ar/ib/rpm中
/var/lock

某些设备或是文件资源一次只能被一个应用程序所使用,如果同时有两个程序使用该设备时,就可能产生一些错误的状况,因此就得要将该设备上锁(lock),以确保该设备只会给单一软件所使用。

举例来说,刻录机正在刻录一张光盘,你想一下会不会有两个人同时在使用一个刻录机刻盘?如果两个人同时刻录,那光盘写入的是谁的数据?所以当第一个人在刻录时刻录机就会被上锁,第二个人就得要该设备被解除锁定(就是前一个人用完了)才能够继续使用,目前此目录也已经挪到/run/lock中

/var/log/重要到不行。这是日志文件放置的目录,里面比较重要的文件有/var/log/messages、/var/log/wtmp
(记录登录信息)等
/var/mail/放置个人电子邮箱的目录,不过这个目录也被放置到/var/spool/mai/目录中,通常这两个目录是互
为链接文件
/var/run/某些程序或是服务启动后,会将它们的PID放置在这个目录下,至于PID的意义我们会在后续章节
提到,与/run相同,这个目录链接到/run目录
/var/spool/这个目录通常放置一些队列数据,所谓的队列就是排队等待其他程序使用的数据,这些数据被使用后通常都会被删除。举例来说,系统收到新邮件会放置到/var/spool/mail/中,但用户收下该邮件后该封信原则上就会被删除,邮件如果暂时寄不出去会被放到/var/spool/mqueue/中,等到被送出后就被删除。如果是计划任务数据(crontab),就会被放置到/var/spool/cron/目录中

我的var目录

 


如果你还想了解更多,建议在你可以挑战FHS官方英文文档(参考本章参考资料),相信会让你对于Linux操作系统的目录有更深入的了解。

5.针对FHS,各家发行版的异同,与CentOS7的变化

        由于FHS仅是定义出最上层(/)及次层(/usr与Nar)的目录内容应该要放置的文件或目录数据,因此,在其他子目录层级内,就可以随开发者自行来配置。举例来说,CentOS 的网络设置数据放在/etc/sysconfig/network-scripts/ 目录下,但是 SUSE 则是将网络放置在 /etc/sysconfig/network/目录下,目录名称是不同的。不过只要记住大致的FHS标准,差异性其实有限。

        此外,CentOS7在目录的排列上与过去的版本不同。本节稍早之前已经介绍过,这里做个汇总。比较大的差异在于将许多原本应该要在根目录(/)里面的目录,将它内部数据全部移到/usr里面去,然后进行链接(link.)设置。包括下面这些:

  •  /bin --> /usr/bin
  • /sbin --> /usr/sbin
  • /lib --> /usr/lib
  • /lib64 --> /usr/lib64
  • /var/lock --> /run/lock
  • /var/run --> /run

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在 Mac 上使用 MLX 微调微软 phi3 模型

微调大语言模型是常见的需求&#xff0c;由于模型参数量大&#xff0c;即使用 Lora/Qlora 进行微调也需要 GPU 显卡&#xff0c;Mac M系是苹果自己的 GPU&#xff0c;目前主流的框架还在建立在 CUDA 的显卡架构&#xff0c;也就是主要的卡还是来自英伟达。如果要用 Mac 来做训练…

pnpm的坑

请问pnpm的两个坑怎么解决&#xff1a; 第一个坑&#xff1a;没有节省磁盘空间 我已经配置了依赖的存储位置&#xff0c; 但我在项目里pnpm install以后&#xff0c;发现依赖包还是很大&#xff0c; 然后发现里面的链接并不是指向先前配置的依赖存储位置&#xff0c;而是指…

中霖教育怎么样?注册会计师可以跨省考试吗?

中霖教育怎么样?注册会计师可以跨省考试吗? 1. 考试地点安排&#xff1a; 注册会计师考试是在全国范围内统一举行的&#xff0c;通常设在各省、自治区和直辖市指定的考区。考生须依据准考证上提供的信息&#xff0c;核实自己的具体考试地点。该考试实行的网上统一报名制度&…

DBeaver连接clickhouse最全教程

环境 clickhouse server 20.3 dbeaver 24.1.1.202406231636在使用 dbeaver 连接 clickhouse 的时候需要&#xff0c;它默认是没有驱动的&#xff0c;然后其默认会安装 clickhouse-jdbc的 latest 版本&#xff0c;比如当前最新的驱动版本为 0.6.2&#xff0c;然后等我去连接的时…

LabVIEW汽车转向器测试系统

绍了一种基于LabVIEW的汽车转向器测试系统。该系统集成了数据采集、控制和分析功能&#xff0c;能够对转向器进行高效、准确的测试。通过LabVIEW平台&#xff0c;实现了对转向器性能参数的实时监测和分析&#xff0c;提升了测试效率和数据精度&#xff0c;为汽车转向器的研发和…

嵌入式Linux系统编程 — 6.6 信号掩码

目录 1 信号掩码介绍 2 sigprocmas函数 3 sigsuspend函数阻塞等待信号 1 信号掩码介绍 信号掩码&#xff08;Signal Mask&#xff09;是操作系统中用于控制进程接收信号的一种机制。每个进程都有一个或多个信号掩码&#xff0c;它们定义了哪些信号在特定时间被阻塞&#xf…

2024年在WordPress中创建销售活动的专家级优惠券方法

2024年在WordPress中创建销售活动的专家级优惠券方法 今天我想和大家分享一些关于如何在WordPress网站上使用专家级优惠券工具来创建销售活动的经验。对于已经在电商领域有一定经验的店主&#xff0c;利用专家级优惠券不仅能吸引顾客&#xff0c;还能显著增加销量。在这篇文章…

地铁车厢火灾3D模拟逃生演习减少了资源损耗和风险

在消防安全领域&#xff0c;为了更好地提升安全实训效果&#xff0c;我们在VR安全培训领域打造了多款消防安全VR模拟实训系统&#xff0c;不仅实现了与现实世界无异的交互操作&#xff0c;更在虚拟空间中超越了现实的限制&#xff0c;模拟出那些现实中难以搭建的复杂场景。 利用…

The Sandbox 创作者的幕后采访: 了解创作者的内心世界

我们采访了一些在 "创作者挑战" 中脱颖而出的顶尖创作者&#xff0c;探讨他们成功的秘诀以及在创造玩家喜爱的体验方面的心得。 The Sandbox 创作者挑战涌现出许多才华横溢的创作者&#xff0c;他们在游戏制作机制上的创新和突破引起了 The Sandbox 社区的广泛关注。…

Java数据结构面试题(一)

目录 一.ArrayList和LinkedList的区别 二.ArrayList和Vector的区别 三.HashMap的底层实现 四.HashMap和ConcurrentHashMap的区别 五.HashMap和HashTable的区别 六.多线程的情况下使用HashMap呢&#xff1f; 七.HashMap的如何扩容呢&#xff1f; 八.哈希冲突 本专栏全是…

Mac/Linux安装JMeter压测工具

Mac安装JMeter压测工具 介绍 Apache JMeter™应用程序是开源软件&#xff0c;是一个100%纯的Java应用程序&#xff0c;旨在加载测试功能行为和衡量性能。它最初是为测试Web应用程序而设计的&#xff0c;但后来扩展到其他测试功能。 我能用它做什么&#xff1f; Apache JMet…

VCL界面组件DevExpress VCL v24.1 - 发布全新的矢量主题

DevExpress VCL是DevExpress公司旗下最老牌的用户界面套包&#xff0c;所包含的控件有&#xff1a;数据录入、图表、数据分析、导航、布局等。该控件能帮助您创建优异的用户体验&#xff0c;提供高影响力的业务解决方案&#xff0c;并利用您现有的VCL技能为未来构建下一代应用程…

起飞,纯本地实时语音转文字!

简介 偶然在 github 上翻到了这个项目 https://github.com/k2-fsa/sherpa-ncnn 在没有互联网连接的情况下使用带有 ncnn 的下一代 Kaldi 进行实时语音识别。支持 iOS、Android、Raspberry Pi、VisionFive2、LicheePi4A等。 也就是说语音转文字可以不再借助网络服务的接口&am…

桂花网蓝牙网关X1000:引领物联网新时代的智能连接

在物联网技术飞速发展的今天&#xff0c;蓝牙网关作为连接蓝牙设备与互联网的关键设备&#xff0c;其性能与稳定性直接影响到物联网系统的整体运行效果。桂花网蓝牙网关X1000凭借其卓越的性能和广泛的应用场景&#xff0c;成为了物联网领域的佼佼者。 一、产品概述 桂花网蓝牙…

fastadmin最新版导出数据时 表格中会有 html标签的解决办法

fastadmin 自带的导出方法, 是一个纯前端的导出, 没有请求后台的接口 当我们使用导出功能时, 有些数据, 我们在设计的时候,配置的是 枚举类型的 但是当我们导出数据的时候, 居然导出的数据中带有 html 的标签 上面的情况我们的解决办法是,在导出的时候,把html 的标签…

mongdb学习与使用

1. 基础概念 MongoDB简介&#xff1a; MongoDB是一个基于文档的NoSQL数据库&#xff0c;具有高性能、高可用性和易扩展性。数据存储在类似JSON的BSON格式中。 基本术语&#xff1a; Database&#xff08;数据库&#xff09;&#xff1a; 集合的容器。Collection&#xff08;集合…

C++必修:深入理解继承与虚继承

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C学习 贝蒂的主页&#xff1a;Betty’s blog 1. 继承的概念与定义 1.1. 继承的概念 继承(inheritance)机制是面向对象程序设计…

每日一题——Python实现PAT乙级1018 锤子剪刀布(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 代码结构与逻辑 时间复杂度分析 空间复杂度分析 代码优化建议 总结 我…

【java计算机毕设】美容院管理系统 项目源代码MySQL springboot vue html maven+文档 前后端可分离也可不分离

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】美容院管理系统 项目源代码MySQL springboot vue html maven文档 前后端可分离也可不分离 2项目介绍 系统功能&#xff1a; 美容院管理系统包括管理员、用户俩种角色。 管理员功能包括个人中心模块用于修改…

“论单元测试方法及应用”精选范文,软考高级论文,系统架构设计师论文

论文真题 1、概要叙述你参与管理和开发的软件项目,以吸你所担的主要工作。 2、结给你参与管理和开发的软件项目&#xff0c;简要叙述单元测试中静态测试和动态测试方法的基本内容。 3、结给你惨与管理和研发的软件项目,体阐述在玩测试过程中,如何确定白盒测试的覆盖标准,及如…