第三章 Linux文件系统

news2025/1/7 6:31:21

第三章 Linux文件系统

​ 文件系统是操作系统用于确定磁盘或分区上的文件的方法和数据结构,即文件在磁盘上的组织方法。文件系统由3部分组成:与文件管理有关的软件、被管理的文件以及实施文件管理所需的数据结构。

1.Ubuntu的文件系统

​ 文件系统负责为用户建立、保存、读出、修改、转储文件,控制文件的读取,当用户不再使用时删除文件等。磁盘或分区和它所包含的文件系统的种类有很大关系。少数程序基于特定文件系统进行操作,在其他类型的文件系统中不能工作。一个分区或磁盘作为文件系统使用前,需要进行初始化,并将记录数据结构写到磁盘上,这个过程就称为文件系统的建立。下面介绍几种常见的文件系统类型:

  • FAT文件系统

    FAT,全称File Allocation Table,即文件分配表,最早于1982年开始应用于MS-DOS中。FAT可允许Windows3-9x、MS-DOS等操作系统访问。FAT文件系统也是一种最初用于小型磁盘和简单文件夹结构的简单文件系统,用文件分配表映射和管理磁盘空间。它专门为单用户操作系统开发的,不保存文件的权限信息,除了隐藏、只读等公共属性以外,不具备高级别安全防护措施。FAT最大只支持2GB,FAT32可达到2047GB.

  • NTFS文件系统

    NTFS,全称New Techanology File System,新技术文件系统,最早用于Windows NT/2000操作系统的文件系统。它支持文件系统故障恢复,尤其是大存储量的媒体和长文件名。NTFS是一个高度可靠、可恢复的文件系统,提供了FAT文件系统所没有的安全性、可靠性和兼容性。它提供了加密功能,大大提高了信息的安全性,可以赋予单个文件和文件夹访问权限,在NTFS分区上,可以为共享资源、文件夹以及文件设置访问权限。

    NTFS相较于FAT能更有效的利用磁盘空间,虽然NTFS文件可以读取FAT文件系统和HPFS(High Performance File System,高性能文件系统)文件系统的文件,但是不能被它们所读取,因此兼容性较差。

​ Linux操作系统采用的文件系统一般为Ext2、Ext3、Ext4等。Ext是Extended File System的缩写,意为扩展的文件系统。Linux作为开源的操作系统,其也可以支持FAT32和NTFS,如果用户想在Linux操作系统中使用非Linux文件系统,就必须在操作系统中挂载这些文件系统到Linux内核中

​ Linux文件系统各分层之间的功能:

  • 设备驱动程序:文件系统利用存储设备存储文件,因此,存储设备是文件系统的物质基础。Linux系统中各设备驱动程序都通过统一的接口与文件系统连接,文件系统向用户提供使用文件系统的接口,设备驱动程序则控制设备实现具体的文件I/O操作。
  • **实际文件系统:**实际文件系统是以磁盘分区来划分的,每个磁盘分区由一个具体的文件系统管理,不同磁盘分区的文件系统可以不同。Linux默认的文件系统是Ext2、Ext3、Ext4.
  • **虚拟文件系统:**Linux为了屏蔽各文件系统之间的差别,为用户提供访问文件的统一接口,在具体的文件系统之上增加了一个称为虚拟文件系统(Virtual File System,VFS)的抽象层。VFS是Linux对外接口,任何要使用文件系统的程序都必须经由这个接口来使用它。VFS是一个异构文件系统之上的软件粘合层。

​ VFS的原理示意图:

​ 有了VFS,用户察觉不到文件系统之间的差异,可以使用同样的命令和系统调用来操作系统不同的文件系统,并可以在它们之间自由的复制文件。VFS的作用就是采用标准的Linux系统调用读写位于不同物理介质上的不同文件系统中的文件

  • **缓存机制:**文件系统和存储设备进行数据传输时,采用缓存机制来提高存储设备的访问效率。缓存区实在内存中划分的特定区域,每次从外部设备读取的数据都暂时存放在这里。下次读取时首先搜索缓存区。如果缓存区没有,则再启动存储设备,读取相应的数据。写入的数据也要先存放在缓存区,然后再分批写入磁盘中。

1.1.Ext2文件系统

​ Ubuntu中使用的是Ext2文件系统,它的特点是存取文件的性能记号,对于中小型的文件更具优势,这主要得益于它的簇快取层的优良设计。其单一文件大小与文件系统本身的容量上限以及簇的大小有关。在x86计算机系统中,簇最大为4KB,则单一文件大小上限为2048GB,而文件系统的容量上限为16384GB。

​ Ext2文件系统采用多重索引结构,用inode中的索引表描述如下图:

Ext2文件系统多重索引结构

​ 索引表中前12个表项是直接指针,直接指向文件的数据块,这些块称为直接块。第13个表项是一个一级间接指针,它指向一个索引块,这个索引块中存放的是间接索引表。索引表的第14和15项提高了一个二次间接指针和一个三次间接指针,可提供对更多的间接块索引。提供多级间接指针的目的是为了表达大型文件的结构

​ Ext2文件系统默认块的大小是1KB,对于12KB以下的小文件,不需要使用间接索引,所有信息均在inode中,因此访问的速度非常快。较大的文件需要用到一个间接索引表,一个间接索引表含有256个间接指针,每个指针占4B,则1KB的块可以容纳256个指针,可以索引256个间接块。因此,大小12~268KB的文件西药依次间接索引,访问速度会有所降低。而对于大型文件,可以使用二次间接指针甚至三次间接指针,得到最大约16GB的文件。

​ Ext2的核心是两个内部数据结构,即超级块(superblock)和inodo

​ 超级块是一个包含文件系统重要信息(如标签、大小、inode的数量等)的表格,它是对文件系统结构的基础性、全局性描述,因此,没有超级块的文件系统将不再可用。由于这个原因,Ext2文件系统中不同位置存放着超级块的多个副本。

​ inode是基本的文件级数据结构,文件系统中的每一个文件都可以在一个inode中找到它的描述。inode描述的文件信息包括文件的创建和修改时间、文件大小、实际存放文件数据的块列表等。对于较大的文件,块列表可能包含附加数据块列表的磁盘位置(即间接块),甚至有可能出现二级或三级间接块列表。文件名字通过目录项关联到inode,目录项由文件名和inode构成。Ext2文件系统的数据结构如下:

​ Ext2文件系统以引导扇区(boot sector)开始,紧接着是块组(block group)。因为inode表和存储用户数据的数据块(data block)可以位于磁盘相邻位置,这样就可以减少寻道时间。为了性能的提升,整个文件系统被分为多个块组:

  • 超级块:存储文件系统信息,必须位于每个块组的顶部。
  • 块组描述符:存储块组的相关信息。
  • 块位图:用于管理未使用的数据块。
  • inode位图:用户管理未使用的inode。
  • inode表:每个文件都有一个相应的inode表,用来保存文件的元数据,例如文件模式、uid、gid、atime、ctime、mtime、dtime和数据块指针。
  • 数据块:存储实际的用户数据。

1.2.Ubuntu的目录结构

​ Linux文件系统采用树状分层结构,且只有一个根节点。每个目录中均包含以句点(.)和双句点(…)命名的两个特殊的目录文件,分别表示当前目录和其父目录。这两个特殊目录把文件系统中的各级目录有机地联系在一起。“.”是当前目录的别名,要访问当前目录中的文件时都可以直接使用".",而不必明确给出当前目录名。“…”是当前目录的父目录的别名,从任何目录位置开始,都可以使用“…”逐层攀升到文件系统层次的最上层

​ 与Windows相同,Linux中的文件也分为相对路径和绝对路径。Ubuntu的目录众多,但所有目录都在根目录下,所以安装时一定要有一个与根目录相对应的磁盘分区才能安装系统。有序的组织结构有助于用户访问、管理和Ubuntu系统。Linux目录结构的描述如下:

目录描述
/Linux文件系统的根目录
/bin存放系统中最常用的可执行文件(二进制文件)。系统所需要的基本命令位于此目录下,也是最小系统所需要的命令,如ls、cp、mkdir等。/usr/bin目录中的文件是普通用户可以使用的命令
/boot存放Linux内核和系统启动文件,包括grud、lilo启动程序
/dev存放所有设备文件,包括硬盘分区、键盘、鼠标、USB、tty等
/etc存放系统所有配置文件,例如,passwd存放用户账户信息,hostname存放主机名。/etc/fstab用户开机自动挂载一些分区,在里面写入一些分区的信息,就能实现开机挂载分区
/home用户主目录的默认位置
/initrd存放启动时挂载initrd.img映像文件以及所需设备模块的目录
/lib存放共享的库文件,包含许多被/bin和/sbin中的程序使用的库文件
/lost+found在Ext2或Ext3文件系统中,当系统意外崩溃或意外关机时产生的一些文件碎片放在这里。在系统启动的过程中,fsck工具会检查这里,并修复已经损坏的文件系统。有时系统发生问题,很多文件被移到这个目录中,可以用手工的方式修复文件或将其移到原来的位置上
/media在这个目录下自动创建即插即用型存储设备的挂载点。例如U盘系统自动挂载后,会在这个目录下产生一个目录;CD-ROM/DVD-ROM自动挂载后,也会在这个目录下创建一个目录,存放临时读入的文件
/mnt通常用于作为被挂载的文件系统的挂载点
/opt作为可选文件和程序的存放目录,有些自定义软件包也会被安装在这里,用户自己编译的软件包也可以安装在这个目录中
/proc存放所有标识为文件的进程,它们通过进程号或其他的系统动态信息进行标识。例如CPU、硬盘分区、内存信息等就存放在这里。
/root根用户的主目录
/sbin存放涉及系统的管理命令,也就是root用户可执行的命令。这个目录和/usr/bin、/usr/X11R6/sbin、/usr/local/sbin目录是相似的
/srv存放系统所提供的服务数据
/sys用于将系统设备组织成层次结构,并向用户提供详细的核心数据信息
/tmp临时文件目录。/var/tmp目录与之相似
/usr用于存放与系统用户直接有关的文件和目录,如应用程序及支持系统的库文件。其主要的子目录如下:

/usr/X11R6:X Windows系统

/usr/bin:用户管理员的标准命令

/usr/include:C/C++等开发工具语言环境的标准include文件

/usr/lib:应用程序及程序包的链接库

/usr/local:系统管理员安装的应用程序

/usr/local/share:系统管理员安装的共享文件

/usr/sbin:用户和管理员的标准命令

/usr/share:使用手册等共享文件

/usr/share/dict:词表的

/usr/share/man:系统使用手册

/usr/share/misc:一般数据

/usr/share/sgml:SGML数据

/usr/share/xml:XML数据
/var通常用于存放长度可变的文件,例如日志文件和打印机文件。其主要子目录如下:

/var/cache:应用程序缓存目录

/var/crash:系统错误信息

/var/games:游戏数据

/var/lib:各种状态数据

/var/lock:文件锁定记录

/var/log:日志记录

/var/mail:电子邮件

/var/opt:/opt目录的变量数据

/var/run:进程的标识数据

/var/spool:存放电子邮件、打印任务等的队列

/var/tmp:临时文件目录

​ **注意:**与Windows不同,在Ubuntu中是严格区分大小写的。并且在Windows中,后缀名用来表示这个文件的文件类型,而在Linux中,后缀名和文件类型没有直接关系,Linux中一切皆为文件

2.创建、挂载与卸载文件系统

2.1.创建文件系统

​ 在安装Linux操作系统时,系统会要求用户进行分区,在磁盘等存储设备分区后即可着手创建文件系统。创建文件系统时主要有两种方法:

  • **mkfs命令:**在选定的磁盘分区中创建指定的文件系统;
  • **利用各种特定工具:**如mke2fs、mkfs.ext2等,在选定的磁盘分区上直接创建特定类型的文件系统。

​ 创建文件系统时,最基本的方法就是使用mkfs命令。在Linux中,mkfs命令实际上只是各种文件系统创建程序的一个总控程序,根据指定的文件系统类型,mkfs将会调用特定文件系统的创建程序mkfs.fs,其中fs可以时ext2、ext3或vfat等。因此在创建一个具体的文件系统时,可以使用特定的文件系统创建命令。例如,在创建一个具体的文件系统时,可以使用特定的文件系统创建命令,也可以使用等价的mke2fs命令。对于Ext2、Ext3文件系统而言,mke2fs民老公是最基本的工具。

​ 用于创建Ext2/Ext3文件系统的mkfs与mke3fs命令的语法格式如下:

  • mkfs:
mkfs [-V] [-t fstype] [fs-option] device [size]
  • mke2fs:
mke2fs [-c|-l filename] [-b block-size] [-f fragment-size]
	            [-i bytes-per-inode] [-I inode-size] [-J journal-options]
	            [-G meta group size] [-N number-of-inodes]
	            [-m reserved-blocks-percentage] [-o creator-os]
	            [-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]
	            [-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]
	            [-T fs-type] [-U UUID] [-jnqvFSV] device [blocks-count]

​ 其中主要选项说明如下:

  • -b:指定块大小,单位为字节
  • -c:检查是否有损坏的块
  • -f:指定不连续段的大小,单位为字节
  • -i:指定没多少字节创建一个inode
  • -N:指定要创建的inode数目
  • -L:设置文件系统的标签名称
  • -m:指定给管理员保留的块的比例,默认值是5%
  • -M:记录最后一次挂入的目录
  • -r:指定要建立的Ext2文件系统版本
  • -V:显示命令的版本号

​ 要明白mkfs命令的执行过程,我们先在虚拟机中添加一块20GB的未分区硬盘,添加完毕后重启系统生效。

  • 设置中点击添加,选择硬盘点击下一步,然后选择硬盘接口类型SCSI:

  • 创建一个新的虚拟磁盘:

  • 磁盘大小选择20GB,并将虚拟机磁盘存储为单个文件:

  • 重启生效。

​ 此时,我们使用fdisk -l命令查看新增硬盘的信息。其中Disk/dev/sdb即为新增的硬盘,因为没有床架那文件系统,所以没有包含任何有效的分区表。

image-20230828113233572

​ 接下来,我们使用mkfs -t ext2 /dev/sdb命令对其进行创建文件系统的操作:

image-20230828113415045

​ 最后要说明的是,在使用mkfs命令创建文件系统时,如果未使用-L选项指定文件系统的卷标,在创建文件系统后,也可以使用e2label命令指定文件系统的卷标。e2label命令的主要功能就是显示和命名未安装文件系统的卷标,其语法格式如下:

e2label device [newlabel]

​ 其中device为磁盘分区的设备名称,例如/dev/sda6;newlabel表示文件系统的卷标。如果未指定newlabel,e2label命令将输出文件系统的卷标。需要指出的是,卷标不能超过16个字符。下面将刚才创建的文件系统的卷标命名为datal:

image-20230828114248108

**注:**卷标是一个磁盘的一个标识,不唯一。由格式化自动生成或人为设定。仅仅是一个区别于其他磁盘的标识而已。

2.2.挂载文件系统

​ 在Ubuntu系统中,对于一个文件系统或分区而言,如果想要使用它,必须先对其进行挂载操作。挂载就是把新建的文件系统安装到Linux文件系统目录层次结构的某个挂载点上,然后才能使用新建的文件系统。也就是说,挂载点必须是目录,可以将挂载看成一个链接动作。

​ 例如,如果想使用/dev/sdb分区,需要对该分区进行读写数据的操作,但是不能直接对其进行操作,需要建立一个目录,使用挂载操作建立它与分区的对应关系。而这个目录就代表了/dev/sdb分区,挂载后对于目录的数据读写操作本质上就是对/dev/sdb分区的读写操作。与之对应,卸载就是断开目录与/dev/sdb分区之间的对应关系,但并不删除目录,/dev/sdb分区也继续存在,如果要读写数据,需要再次进行挂载擦操作。

1.挂载文件分区的命令是mount,其语法格式如下:

mount [-t vfstype] [-o 选项] device dir

​ 各选项说明如下:

  • -t:vfstype指定文件系统类型。通常不必执行,mount命令会自动选择正确的类型。常用的类型如下:
vfstype中的各选项作用
iso9660光盘或光盘镜像
msdosDOS FAT16文件系统
vfatWindows 9x FAT32文件系统
ntfsWindows NT NTFS文件系统
smbfsMount Windows文件网络共享
nfsUNIX(Linux)文件网络共享
  • -o:用来描述设备或文档的挂载方式。常用的选项参数如下:
-o选项作用
loop用来把一个文件当成硬盘分区挂载在系统上
ro采用只读方式挂载设备
rw采用读写的方式挂载设备
iocharset指定访问文件系统所用的字符集
device要挂载的设备
dir设备在系统上的挂载点

​ **挂载点的目录必须是事先已经存在的目录。**需要注意的是:如果挂载点是一个有文件或目录的目录,那么里面的数据会自动转移到分区中。

mkdir /data								# 创建/date目录
mount /dev/sdb /data					# 将/date作为/dev/sdb1的挂载点
df
-----------
ls /home								# 查看/home里的数据
mount /dev/sdb /home					# 将/dev/sdb5挂载到/home下
ls /home								# 此时/home下没有数据
umount /home							# 取消挂载,恢复数据
df 
ls /home 

2.查看当前系统挂载的设备用命令df命令。

df

​

3.卸载一个文件系统,它的使用权限是超级用户或/etc/fstab中允许的用户,使用umount命令,它的使用方式和参数和mount是一样的

4.du命令:用于查看当前目录下所有文件及目录信息。

du [选项]
选项作用
-a列出所有文件及目录大小
-h以GB或MB为单位显示文件或目录的大小
-b显示目录和文件的大小,以B为单位
-c最后加上总计
-s只列出个文件大小的综合
-x只计算属于同一个文件系统的文件

5.fsck命令:硬盘 检测,该命令只能由root用户执行。

fsck 分区名

image-20230828144938054

2.3.自动挂载

​ 我们使用mount命令实现挂载可以立即生效,但是无法永久生效。一旦将系统挂机或重启功能就失效了,而如果通过修改配置文件的方式来实现该功能就可以实现永久有效,但是无法立即生效。

​ 修改/etc/fstab文件实现自动挂载。

blkid /dev/sdb								# 查看sdb的UUID及文件系统类型

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

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

相关文章

AI是风口还是泡沫?

KlipC报道:狂热的人工智能追捧潮有所冷静,投资者在“上头”的追涨之后,开始回归到对基本面的关注。 KlipC的合伙人Andi D表示:“近日,有关英伟达二季度“破纪录”财报涉嫌造假的话题正在社交媒体和投资者论坛中甚嚣尘上…

【转存】从 JMM 透析 volatile 与 synchronized 原理

在面试、并发编程、一些开源框架中总是会遇到 volatile 与 synchronized 。synchronized 如何保证并发安全?volatile 语义的内存可见性指的是什么?这其中又跟 JMM 有什么关系,在并发编程中 JMM 的作用是什么,为什么需要 JMM&#…

java spring cloud 企业电子招标采购系统源码:营造全面规范安全的电子招投标环境,促进招投标市场健康可持续发展

项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及审…

肖sir__项目管理工具之禅道__013

项目管理工具之禅道 一、项目管理工具介绍 1、禅道是一个项目管理软件,它是易软天创公司,为了解决众多企业在管理中出现混乱,无序的现象,开发出来的 它是基于产品管理,项目管理,测试管理于一身&#xff0c…

同城线下约玩陪玩系统线下达人系统源码

结构:TINKPHP框架公众号H5;系统开源,方便二次开发 编译:前端使用UNIAPP开发,可快速编译成APP及微信小程序和公众号H5组件:ICONFONT-UI,基于阿里图库团队UI库,用户体验棒 终端:前后端分离开发模式,开发更清晰分工更明确、提升开发效率、前端使用UNIAPP可快速编译各类…

[Linux 基础] linux基础指令(1)

文章目录 1、Linux下基本指令1.ls指令2.pwd指令3.cd指令4.touch指令5.mkdir指令6.rmdir指令 && rm指令7.man指令8.cp指令9.mv指令10.cat指令11.more指令12.less指令 Linux学习笔记从今天开始不断更新了。第一篇我们从基础指令开始学起。 1、Linux下基本指令 好多人都说…

Swift页面添加水印

本文主要讨论的是给图片或者视图添加全屏水印。比较常见的是添加单个水印,这个比较好处理,网络上也有很多参考的方法。本文实现的是铺满的全屏水印,具体参考效果如下: 实现思路: 1、根据水印文本以及相应样式生成水印图片,水印图大小根据文本计算而来 2、生成需要铺满水…

TortoiseSVN 详细操作指南

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 热爱技术的小郑 1、引言 考虑以下几种情况: 你是否在一个…

高压放大器在静电喷涂技术中的应用

高压放大器静电喷涂作为一种表面处理技术,在工业生产和制造领域中得到了广泛应用。然而,在实际的生产应用过程中,高压放大器静电喷涂也面临着生产效率不高、成本过高等问题。因此,如何提高生产效率和降低成本已经成为行业内关注的…

如何在Windows 10/11中重置网络,以及重置后的注意事项有哪些

本文介绍如何在Windows 10和Windows 11中重置网络设置。 如何重置Windows 10网络设置 在Windows10中使用网络重置实用程序相当简单。 一、进入“开始”菜单>“设置”,然后选择“网络和Internet”。 二、在左侧导航窗格中,选择“状态”以确保你正在查看网络状态窗口。然…

PHP调用API接口的方法及实现(内附电商平台商品详情接口案例)

随着互联网、云计算和大数据时代的到来,越来越多的应用程序需要调用第三方的API接口来获取数据,实现数据互通和协同工作。PHP作为一种常用的服务器端语言,也可以通过调用API接口来实现不同系统的数据交互和整合。本文将介绍PHP调用API接口的方…

深入剖析:垃圾回收你真的了解吗?

小熊学Java:https://www.javaxiaobear.cn/ 本文我们重点剖析 JVM 的垃圾回收机制。关于 JVM 垃圾回收机制面试中主要涉及这三个考题: JVM 中有哪些垃圾回收算法?它们各自有什么优劣? CMS 垃圾回收器是怎么工作的?有哪…

2023-9-11 台阶-Nim游戏

题目链接&#xff1a;台阶-Nim游戏 #include <iostream> #include <algorithm>using namespace std;int main() {int n;cin >> n;int res 0;for(int i 1;i < n; i){int x;cin >> x;if(i % 2) res ^ x; }if(res) cout << "Yes" &l…

sql 时间函数

1&#xff0c;前提 今天看同事写的sql里面出现了时间类的函数&#xff0c;平时自己也经常用到&#xff0c;每次都要百度&#xff0c;还不如自己整理记录在一起&#xff0c;方便后续使用。 2&#xff0c;sql时间函数 2.1 获取当前时间&#xff1a; selectNOW() as 当前日期时…

淘宝天猫API接入说明(淘宝天猫商品详情+关键词搜索商品列表)商品详情数据,商品sku数据,商品优惠券数据

业务场景&#xff1a;作为全球最大的 B2C 电子商务平台之一&#xff0c;淘宝天猫平台提供了丰富的商品资源&#xff0c;吸引了大量的全球买家和卖家。为了方便开发者接入淘宝天猫平台&#xff0c;淘宝天猫平台提供了丰富的 API 接口&#xff0c;其中历史价格接口是非常重要的一…

企业资产分散不透明?可能是这个细节没做好!

随着现代社会经济的不断发展&#xff0c;企业资产管理变得愈发重要。资产作为组织的核心资源&#xff0c;包括设备、房产、交通工具、信息技术设备以及其他各种形式的财产&#xff0c;对于保障正常运营和可持续发展至关重要。因此&#xff0c;建立一套高效的资产管理系统成为了…

不会JVM调优,但是领导让你优化一下 JVM 参数,这个工具快速搞定!

出品 | 程序员小奎 转载请联系授权 本文主要分享一款在线虚拟机参数分析工具&#xff0c;内容全文 783 字&#xff0c;预计花 2 分钟读完。 01 介绍 关于 JVM 参数优化配置你是否有以下问题&#xff1a; JVM 参数太多记不住 &#xff1f;导致配置 JVM 参数无从下手。 配置好了…

ps怎么只改变logo的文字颜色,不改变图案颜色

1.首先把图片的psd格式拖进去 2.复制一层 3.使用框选工具选出不需要改的部分 4.选着图层--图层样式--颜色叠加--&#xff08;叠加成你需要的颜色&#xff09; 5.删除框选区域 5&#xff0c;另存为即可 原理就是框选的区域是不受保护的&#xff0c;可以进行操作&#xff0…

多线程使用多场景需要注意的问题

多线程使用多场景需要注意的问题 一.背景 在实际的业务开发中&#xff0c;为了提高效率以及程序的处理能力&#xff0c;经常会出现使用多线程的技术&#xff0c;在使用的过程中有诸多注意点需要关注。二.关注点 1.使用线程池提交多线程任务且指定合理的线程池参数&#xff0c…

SQL优化记录

sql优化主要看执行过程分析看看哪里耗时最多先执行一下计划看看索引用没用用了什么索引只要不是全表扫描&#xff0c;就没事如果没有全表扫描&#xff0c;还慢&#xff0c;就要看索引类型了如果索引类型没问题&#xff0c;就要看是不是查询数据量太大了。这时候就要考虑优化条件…