Linux(3):Linux 的文件权限与目录配置

把具有相同的账户放入到一个组里面,这个组就是这两个账户的 群组 。在访问资源(操作系统中计算机的资源)时,可以让这个组里面的所有用户都具有访问权限。
每个账号都可以有多个群组的支持。
在我们Liux 系统当中,默认的情况下,所有的系统上的账号与一般身份使用者,还有那个 root 的相关信息,都是记录在/etc/passwd 这个文件内的。
个人的密码则是记录在/etc/shadow 这个文件下。此外,Linux 所有的组名都纪录在/etc/group 内。

Linux 的每个文件中,可分别给予使用者、群组与其他人三种身份个别的 rwx 权限

Linux 文件权限

ls[list] 的意思,重点在显示文件的文件名与相关属性。
[-al] 则表示列出所有的文件详细的权限与属性 (包含隐藏文件,就是文件名第一个字符为了[.]的文件)。
在这里插入图片描述
在这里插入图片描述
第一栏代表这个文件的类型与权限(permission);
在这里插入图片描述

第一个字符代表这个文件是[目录、文件或链接文件等等]:
当为[d]则是目录,例如上表档名为 [.config] 的那一行;
当为[-]则是文件,例如上表档名为[initial-setup-ks.cfg] 那一行;
若是[1]则表示为连结档(link file);0
若是[b]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);0
若是[c]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为 [rwx] 的三个参数的组合。其中,[r]代表可读(read)、[w]代表可写(write)、[x]代表可执行(execute)。
要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[-]而已。
第一组为[文件拥有者可具备的权限],以 [initial-setup-ks.cfg] 那个文件为例,该文件的拥有者可以读写,但不可执行:
第二组为[加入此群组之账号的权限];
第三组为[非本人且没有加入本群组之其他账号的权限]。

第二栏表示有多少档名连结到此节点(i-node);
第三栏表示这个文件(或目录)的[拥有者账号];
第四栏表示这个文件的所属群组;
第五栏为这个文件的容量大小,默认单位为 bytes;
第六栏为这个文件的建档日期或者是最近的修改日期;
第七栏为这个文件的档名。

改变文件属性和权限

chgrp : 改变文件所属群组;chgrp [-R] dirname/filename
选项与参数:
-R:进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况

chown :改变文件拥有者;chown [-R] 账号名称 文件或目录
选项与参数:
-R:进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都变更

chmod : 改变文件的权限,SUID,SGID、SBIT 等等的特性;chmod [-R] xyz 文件或目录

选项与参数:
xyz:就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R:进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
复制行为(cp)会复制执行者的属性与权限

cp 来源文件 目标文件

权限对文件
r(read): 可读取此一文件的实际内容,如读取文本文件的文字内容等:
w(write): 可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
x(eXecute): 该文件具有可以被系统执行的权限。

权限对目录
r (read contents in directory):表示具有读取目录结构列表的权限,所以当你具有读取ri)一个目录的权限时,表示你可以查询该目录下的文件名数据。
w (modify contents of directory)
这个可写入的权限对目录:
1.建立新的文件与目录;
2.删除已经存在的文件与目录(不论该文件的权限为何)
3.将已存在的文件或目录进行更名;
4.搬移该目录内的文件、目录位置。
x (access directory): 目录的x代表的是用户能否进入该目录成为工作目录的用途。 所谓的工作目录(work directory)就是目前所在的目录。

如果在某目录下不具有x 的权限, 那么你无法切换到该目录下,也就无法执行该目录下的任何指令,即使你具有该目录的rw 的权限。
要开放目录给任何人浏览时,应该至少也要给予,及x的权限,但 w 权限不可随便给

Linux 文件种类与拓展

文件种类

一、正规文件
一般我们在进行存取的类型的文件,在由 ls -al 所显示出来的属性方面,第一个字符为 [-]
依照文件的内容,又大略可以分为:
1.纯文本档(ASCII): 这是 Limux 系统中最多的一种文件类型, 称为纯文本档是因为内容为我们人类可以直接读到的数据,例如数字、字母等等。 几乎只要我们可以用来做为设定的文件都属于这种文件类型。 举例来说,可以下达[ cat ~/bashrc ] 就可以看到该文件的内容。 (cat 是将个文件内容读出来的指令)
2.二进制文件(bimary): 系统仅认识且可以执行二进制文件(binary file),Linux 当中的可执行文件(scripts,文字型批处理文件不算)就是这种格式,举例来说,刚刚下达的指令 cat 就是一个binary file.
3.数据格式文件(data): 有些程序在运作的过程当中会读取某些特定格式的文件,那些特定格式的文件可以被称为数据文件(data ile)。举例来说,Linux 在使用者登入时,都会将登录的数据记录在 /ar/log/wtmp 那个文件内,该文件是一个 data file,他能够透过 last 这个指令读出来! 但是使用 cat 时,会读出乱码,因为它是属于一种特殊格式的文件。

二、目录
第一个属性为[d],例如 [drwxrwxrwx]

三、连接档(link)
类似 Windows 系统底下的快捷方式。第一个属性为[l](英文L的小写),例如[lwxrwxrwx]

四、设备与装置文件(device)
与系统周边及储存等相关的一些文件,通常都集中在/dev 这个目录之下! 通常又分为两种:
1.区块(block)设备档:就是一些储存数据, 以提供系统随机存取的接口设备,举例来说,硬盘与软盘等可以随机的在硬盘的不同区块读写,这种装置就是成组设备。第一个属性为[b]
2.字符(character)设备文件: 亦即是一些串行端口的接口设备, 例如键盘、鼠标等等!这些设备的特色就是[一次性读取]的,不能够截断输出。 !第一个属性为 [c]

五、资料接口文件(sockets)
既然被称为数据接口文件,想当然尔,这种类型的文件通常被用在网络上的数据承接了。可以启动个程序来监听客户端的要求, 而客户端就可以透过这个 socket 来进行数据的沟通了。第一个属性为 [s],最常在/run 或/tmp 这些个目录中看到这种文件类型了。

六、数据输送文件FITFOpipe)
FIFO 也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个文件所造成的错误问题。FIFO 是 first-in-first-out 的缩写。第一个属性为[p]

Linux 文件扩展名

基本上,Linux 的文件是没有所谓的[扩展名]的,一个 Linux 文件能不能被执行,与他的第一栏的十个属性有关, 与文件名根本一点关系也没有。

具有[可执行的权限] 以及[具有可执行的程序代码] 是两回事:在 Linux 底下,可以让一个文本文件具有了可执行的权限 (加入 x 权限即可), 但是这个文件明显的无法执行,因为他不具备可执行的程序代码。而如果将上面提到的 cat 这个可以执行的指令,将他的 x 拿掉那么 cat 将无法被执行!

常用的扩展名:

  1. *.sh :脚本或批处理文件 (scripts),因为批处理文件为使用 shell 写成的,所以扩展名就编成 .sh
  2. *Z.*.tar, *.targz,*.zip,*tgz: 经过打包的压缩文件。这是因为压缩软件分别为 gunzip,tar 等等的,由于不同的压缩软件,而取其相关的扩展名。
  3. *.html,*,php:网页相关文件,分别代表 HTML 语法与 PHP 语法的网页文件。 .html 的文件可使用网页浏览器来直接开启,至于 .php 的文件, 则可以透过 client 端的浏览来 server 端浏览,以得到运算后的网页结果呢。

Linux 文件长度限制
在 Linux 底下,使用传统的 Ext2/Ext3/Ext4 文件系统以及近来被 CentOS 7 当作预设文件系统的 xfs而言,针对文件的档名长度限制为:
单一文件或目录的最大容许文件名为 255bytes,以一个 ASCII 英文占用一个 bytes 来说,则大约可达255个字符长度。若是以每个中文字占用 2bytes 来说, 最大档名就是大约在 128 个中文字之间。

Linux 文件名的限制
由于 Linux 在文字接口下的一些指令操作关系,一般来说,在设定 Linux 底下的文件名时,最好可以避免一些特殊字符比较好。例如底下这些

* ? > < ; & ! [ ] | \ ' " `  ( ) { }

Linux 目录配置

Linux 目录配置的依据–FHS

(FHS): Filesystem Hierarchy Standard
FHS 的重点在于规范每个特定的目录下应该要放置什么样子的数据。
FHS 依据文件系统使用的频繁与否与是否允许使用者随意更动, 而将目录定义成为四种交互作用的形态:
在这里插入图片描述

可分享的: 可以分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据,是能够分享给网络上其他主机挂载用的目录;
不可分享的: 自己机器上面运作的装置文件或者是与程序有关的 socket 文件等, 仅与自身机器有关。
不变的: 有些数据是不会经常变动的,跟随着 distribution 而不变动。 例如函式库、文件说明文件、系统管理员所管理的主机服务配置文件等等:
可变动的: 经常改变的数据,例如登录文件、一般用户可自行收受的新闻组等。

事实上,FHS 针对目录树架构仅定义出三层目录底下应该放置什么数据而已,分别是底下这三个目录的定义:
/(root,根目录): 与开机系统有关:
/usr (unix software resource): 与软件安装/执行有关
/var (variable): 与系统运作过程有关。

根目录
FHS 标准建议: 根目录(/)所在分区槽应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分区槽内,保持根目录越小越好。如此不但效能较佳,根目录所在的文件系统也较不容易发生问题。
第一部份: FHS 要求必须要存在的目录
1./bin : 放置的是在单人维护模式下还能够被操作的指令。在/bin底下的指令可以被root与一般账号所使用。主要有:cat, chmod, chown, date, my, mkdir, cp, bash 等等常用的指令。

2./boot: 主要在放置开机会使用到的文件,包括 Linux 核心文件以及开机选单与开机所需配置文件等等。Linux kernel 常用的档名为: vmlinuz

3./dev:任何装置与接口设备都是以文件的型态存在于这个目录当中。比要重要的文件有/dev/null, /dev/zero, /dev/tty,/dev/loop*,/dev/sd*等等

4./etc:系统主要的配置文件几乎都放置在这个目录内。这个目录下的各文件属性是可以让一般使用者查阅的, 但是只有 root 有权力修改。FHS建议不要放置可执行文件(binary)在这个目录中 。比较重要的文件有: /etc/modprobe.d/, /etc/passwd, /etc/fstab, /etc/issue 等等。
另外 FHS 还规范几个重要的目录最好要存在 /etc/ 目录下:
a./etc/opt(必要): 这个目录在放置第三方协力软件 /opt 的相关配置文件
b./etc/X11/(建议): 与 X Window 有关的各种配置文件都在这里,尤其是 xorg.conf 这 X Server的配置文件。
c./etc/sgml/(建议): 与 SGML 格式有关的各项配置文件;
d./etc/xml/(建议): 与 XML 格式有关的各项配置文件。

5./lib:放置的是在开机时会用到的函式库, 以及在/bin 或/sbin 底下的指令会呼叫的函式库。
某些指令必须要有这些函式库才能够顺利完成程序的执行之意。 另外 FSH 还要求 /lib/modules/必须要存在: 这个目录主要放置可抽换式的核心相关模块(驱动程序)。

6./media:放置的是可移除的装置。 包括软盘、光盘DVD 等等装置都暂时挂载于此。常见的档名有: /media/floppy, /media/cdrom 等等

7./mnt:暂时挂载某些设备。

8./opt:给第三方协力软件放置的目录。以前的 Linux 系统中,习惯放置在/usr/local 目录下。

9./run:早期的 FHS 规定系统开机后所产生的各项信息应该要放置到 var/run 目录下,新版的 FHS 则规范到 /run 底下。 由于 /run 可以使用内存来仿真,因此效能上会好很多。

10./sbin:开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。某些服务器软件程序,一般则放置到/usr/sbin/当中。至于本机自行安装的软件所产生的系统执行文件(system binary), 则放置到/usr/local/sbin/当中了。常见的指令包括: fdisk, fsckifconfig, mkfs 等等。

11./srv:srv 可以视为 [service] 的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录。 常见的服务例如 www,FTP 等等。举例来说,www 服务器需要的网页资料就可以放置在/srv/www/里面。不过,系统的服务数据如果尚未要提供给因特网任何人浏览的话,预设还是建议放置到 /var/lib 底下即可。

第二部份: FHS 建议可以存在的目录
\home:这是系统默认的用户家目录(home directory)。在你新增一个一般使用者账号时,默认的用户家目录都会规范到这里来。比较重要的是,家目录有两种代号:
~:代表目前这个用户的家目录
~feng: 则代表 feng 的家目录!
/lib<qual>:用来存放与 /lib 不同的格式的二进制函式库,例如支持 64 位的 /lib64 函式库等。
/root :系统管理员(root)的家目录。之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时,送目录就能够拥有 root 的家目录,所以会希望 root 的家目录与根目录放置在同一个分区槽中。

几个在 Linux 当中也是非常重要的目录:
1./lost+found:这个目录是使用标准的 ext2/ext3/ext4 文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时, 将一些遗失的片段放置到这个目录下。如果使用的是 xfs 文件系统的话,就不会存在这个目录了。
2./proc:这个目录本身是一个[虚拟文件系统(virtualfilesystem)]。他放置的数据都是在内存当中, 例如系统核心、行程信息(process)、周边装置的状态及网络状态等等。因为这个目录下的数据都是在内存当中,所以本身不占任何硬盘空间。比较重要的文件例如: /proc/cpuinfo,/proc/dma,/proc/interrupts./proc/ioports,/proc/net/* 等等。
3./sys :这个目录其实跟/proc 非常类似,也是一个虚拟的文件系统,主要也是记录核心与系统硬件信息较相关的信息。 包括目前已加载的核心模块与核心侦测到的硬件装置信息等等。这个目录同样不占硬盘容量

依据FHS 的基本定义,/usr 里面放置的数据属于可分享的与不可变动的(shareable,static), usr 是 Unix Software Resource 的缩写, 也就是 Unix 操作系统软件资源所放置的目录,而不是用户的数据。应该将数据合理的分别放置到这个目录下的次目录,而不要自行建立该软件自己独立的目录。

/var:如果/usr 是安装时会占用较大硬盘容量的目录,那么/var 就是在系统运作后才渐渐占用硬盘容量的目录。 因为/var 目录主要针对常态性变动的文件,包括快取(cache)、登录档(log file)以及某些软件运作所产生的文件,包括程序文件(lock file,run file),或者例如 MySOL 数据库的文件等等。

目录树

在 Linux 底下,所有的文件与目录都是由根目录开始的!那是所有目录与文件的源头~ 然后再一个一个的分支下来。因此,也称这种目录配置方式为:目录树(directorytree)

1.目录树的启始点为根目录 (/,root);
2.每一个目录不止能使用本地端的 patition 的文件系统,也可以使用网络上的 filesystem 。举例来说,以利用 Network File System(NFS) 服务器挂载某特定目录等。
3.每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的。

绝对路径与相对路径

绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/feng/.bashrc
相对路径:相对于目前路径的文件名写法。 例如 ./home/feng../../home/feng/ 等等。反正开头不是 / 就属于相对路径的写法。

cd ./

. :代表当前的目录,也可以使用 ./ 来表示;
..:代表上一层目录,也可以 ../ 来代表。

《鸟哥的Linux私房菜-基础篇》学习笔记

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

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

相关文章

kibana8.10.4简单使用

1.创建discovery里的日志项目 点击stack management 选择kibana里的数据视图&#xff0c;右上角创建数据视图&#xff0c;输入名称。索引范围。例子 example-* ,匹配以example-开头的所有index。 然后点击 保存数据视图到kibana&#xff0c; 2.Kibana多用户创建及角色权限控…

macOS下如何使用Flask进行开发

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是全栈工…

力扣栈与队列--总结篇

前言 八道题&#xff0c;没想到用了五天。当然需要时间的沉淀&#xff0c;但是一天不能啥也不干啊&#xff01; 内容 首先得熟悉特点和基本操作。 栈与队列在计算机底层中非常重要&#xff0c;这就是为什么要学好数据结构。 可视化的软件例如APP、网站之类的&#xff0c;都…

Word中NoteExpress不显示的问题

首先确认我们以及安装了word插件 我们打开word却没有。此时我们打开&#xff1a;文件->选项->加载项 我们发现被禁用了 选择【禁用项目】&#xff08;如果没有&#xff0c;试一试【缓慢且禁用的加载项】&#xff09;&#xff0c;点击转到 选择启用 如果没有禁用且没有出…

工具推荐-卸载小助手GeekUninstaller

一.简介 1.1 GeekUninstalers是一款高效、快速、小巧、免费的软件卸载与清理工具&#xff0c;旨在帮助用户删除系统上安装的程序。 1.2 不同于其他的卸载程序&#xff0c;GeekUninstaller执行深入扫描进程&#xff0c;并清除软件卸载后留下的垃圾。 1.3 它是一款绿色软件&…

有关编译器的科普

Clang和GCC的主要区别如下所示&#xff1a; Clang比GCC编译用的时间更短&#xff0c;包括预处理、语法分析、解析、语义分析、抽象语法树生成的时间。Clang比GCC的内存占用更小。Clang生成的中间产物比GCC更小。Clang的错误提示比GCC更加友好。Clang有静态分析&#xff0c;GCC…

合璧之光,共创辉煌|明道云伙伴大会2023圆满结束

2023年11月3日至11月4日&#xff0c;“合璧之光明道云伙伴大会2023”在上海星河湾酒店顺利举行&#xff0c;报名参会人数超过1800人。大会邀请到明道云标杆客户及合作伙伴分享组织落地零代码的经验及各行业领域解决方案&#xff0c;包括越秀集团、豫园股份、远大医药&#xff0…

Springboot+vue的应急物资管理系统(有报告),Javaee项目,springboot vue前后端分离项目

演示视频&#xff1a; Springbootvue的应急物资管理系统&#xff08;有报告&#xff09;&#xff0c;Javaee项目&#xff0c;springboot vue前后端分离项目 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。…

极光笔记 | EngageLab Push的多数据中心接入指南

01背景 作为一个面向全球的消息推送服务平台&#xff0c;我们一直致力于给全球用户提供安全、可靠、高效的消息推送服务&#xff0c;因此我们意识到在不同洲建立数据中心的重要性。这样做将有助于提高我们的服务可用性、降低延迟并保护用户数据的安全性。 第一&#xff0c;通过…

redis数据结构

1 string&#xff08;字符串&#xff09;->opsForValue 介绍 一个 string 类型的键最大可以存储 512 MB 的数据 应用场景 1 缓存数据&#xff0c;提高访问速度和降低数据库压力。 2 计数器&#xff0c;利用 incr 和 decr 命令实现原子性的加减操作。 3 分布式锁&#xff0c…

Oracle 存储过程数据插入临时表慢以及SQL语句查询慢

/*parallel*/ 解释: 一般表数据量比较大&#xff08;超过100万&#xff09;时&#xff0c;可以使用parallel强制启动并行度来提升查询速度 用法&#xff1a;/*parallel(table_short_name,cash_number)*/ 可以加到insert、delete、update、select的后面来使用 比如&#xff…

数字逻辑电路基础-组合逻辑电路之复用器

文章目录 一、复用器简介二、verilog源码三、综合及仿真结果一、复用器简介 本文介绍数字逻辑电路中一种常用的基础组合逻辑电路-两选一复用器,顾名思义,它的功能就是通过一个控制信号来选择两个输入中之一作为输出。 它的逻辑表达式为:out = ~sa + sb 它的逻辑真值表为:…

解析CAD图纸出现乱码的原因及解决方法

解析CAD图纸出现乱码的原因及解决方法 CAD&#xff08;计算机辅助设计&#xff09;是现代工程设计中不可或缺的工具&#xff0c;它能够帮助工程师们高效地完成复杂的设计任务。然而&#xff0c;有时在使用CAD软件过程中&#xff0c;可能会遇到图纸出现乱码的问题&#xff0c;影…

centos7安装keepalived 保证Nginx的高可用

keepalived工作在虚拟路由器冗余协议 VRRP (Virtual Router Redundancy Protocol) 上&#xff0c;它允许一个静态 IP 在两个 Linux 系统之间进行故障转移。 环境准备&#xff1a; 两台虚拟机centos7&#xff0c;IP&#xff1a;192.168.213.4(backup) 192.168.213.6(master) 安…

vscode中vue项目引入的组件的颜色没区分解决办法

vscode中vue项目引入的组件的颜色没区分解决办法 图中引入组件和其他标签颜色一样没有区分&#xff0c;让开发者不易区分&#xff0c;很蓝瘦 这个就很直观&#xff0c;解决办法就是你当前的vscode版本不对&#xff0c;你得去找找其他版本&#xff0c;我的解决办法就是去官网历…

ESP32-0.96寸OLED通过低功耗蓝牙BLE通信显示出ESP32-BME280读取到的温湿度值

ESP32-0.96寸OLED通过低功耗蓝牙BLE通信显示出ESP32-BME280读取到的温湿度值 简介ESP32-BME280作为BLE Server手机作为BLE Client与ESP32-BME280 BLE Server通信ESP32-0.96寸OLED作为BLE Client与ESP32-BME280 BLE Server通信总结 简介 两个ESP32开发板&#xff0c;一个ESP32挂…

Django+vue前后端分离实战--vue后台管理系统--vue环境安装项目创建

Djangovue前后端分离实战--vue后台管理系统 安装nodejsvue clivue-cli创建项目 安装nodejsvue cli 1、下载nodejs并安装 https://nodejs.org/dist/v20.9.0/node-v20.9.0-x64.msi 2、修改npm 默认仓库地址&#xff0c;要修改成taobao的镜像npm 仓库地址 cmd下命令&#xff1a…

20231117在ubuntu20.04下使用ZIP命令压缩文件夹

20231117在ubuntu20.04下使用ZIP命令压缩文件夹 2023/11/17 17:01 百度搜索&#xff1a;Ubuntu zip 压缩 https://blog.51cto.com/u_64214/7641253 Ubuntu压缩文件夹zip命令 原创 chenglei1208 2023-09-28 17:21:58博主文章分类&#xff1a;LINUX 小工具 文章标签命令行压缩包U…

YOLO改进系列之注意力机制(EffectiveSE模型介绍)

模型结构 ESE(Effective Squeeze and Extraction) layer是CenterMask模型中的一个block&#xff0c;基于SE&#xff08;Squeeze and Extraction&#xff09;改进得到。与SE的区别在于&#xff0c;ESE block只有一个fc层&#xff0c;(CenterMask : Real-Time Anchor-Free Insta…

基于JavaWeb+SpringBoot+掌上社区疫苗微信小程序系统的设计和实现

基于JavaWebSpringBoot掌上社区疫苗微信小程序系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种…
最新文章