当前位置: 首页 > news >正文

/etc/fstab 文件学习systemd与该文件关系

文章目录

    • 一、文件字段
      • 1.1、设备标识
      • 1.2、挂载点
      • 1.3、文件系统类型
      • 1.4、挂载选项
      • 1.5、dump
      • 1.5、fsck顺序
    • 二、/etc/fstab 与systemd 的关系
      • 2.1、/etc/fstab 与systemd 的关系
      • 2.2、systemd 之前/etc/fstab生效过程
      • 2.3、systemd 时代/etc/fstab生效过程
    • 三、相关知识
      • 3.1、如何更具UUID 确定文件设备名?</u>
      • 3.2、如何生成UUID?
      • 3.3、文件系统格式化
      • 3.4、swap 分区和swap文件的创建
    • 参考文档

/etc/fstab 文件是 Linux 系统中用于定义和管理文件系统的挂载信息的配置文件,决定了系统启动时如何挂载文件系统。这个文件包含了系统中所有需要在启动时 自动挂载的文件系统的条目。如下:

# <文件系统>   <挂载点>    <文件系统类型>   <选项>          <dump>  <fsck顺序>
UUID=123456789 /           ext4            defaults        1       1
/dev/sda2      /boot       ext4            defaults        1       2
/dev/sda3      none        swap            sw              0       0
/dev/sdb1      /var/log    ext4            nosuid          0       0
/dev/sdb2      /var/lib    ext4            defaults        0       0
LABEL=docker   /var/lib/docker  ext4       defaults,noatime,nodiratime,prjquota    0 0  

一、文件字段

字段含义
设备标识(file systems)可以是设备名(如 /dev/sda1)、UUID、LABEL 或者其他标识符。
挂载点(dir)文件系统将被挂载到的目录路径。
文件系统类型(type)如 ext4, xfs, nfs 等。
挂载选项(options)如 defaults, ro (只读), rw (读写) 等。
备份选项(dump)用于 dump 命令的参数,0 表示不备份。
文件系统检查顺序(pass)用于 fsck 命令的参数,0 表示不检查。

1.1、设备标识

  • 可以使用设备文件名、UUID或者标签,也可以是NFS等远程文件系统。
  • 远程文件系统配置方式是<host>:<dir>,与直接使用mount命令挂载远程文件系统是一致的。
  • 使用物理设备名或分区名,如 /dev/sdb1,表示第一个硬盘的第一个分区.
  • UUID和LABEL配置方式是LABEL=<label> 或者 UUID=<uuid>

三种方式优缺点

UUID 是一个 128 位的数字,用于唯一标识文件系统。每个文件系统在格式化时都会生成一个唯一的 UUID。

优点:

  • 唯一性:UUID 是全局唯一的,不会因为设备顺序或名称的变化而改变。
  • 稳定性:即使磁盘顺序或设备文件名发生变化,UUID 也不会改变,因此更稳定。

缺点:

  • 可读性差:UUID 是一串较长的字符串,不容易记忆和识别。
  • 适用场景:适用于需要高稳定性和唯一性的环境,尤其是在多磁盘或多分区的系统中

设备文件名 是指设备在系统中的路径,例如 /dev/sda1 或 /dev/vda1。

优点:

  • 易读性:设备文件名较短且易于理解,方便管理员识别。

缺点:

  • 不稳定性:设备文件名可能会因为磁盘顺序变化、磁盘更换或系统重启等原因而改变。
  • 依赖硬件:如果硬件配置发生变化(如添加或移除磁盘),设备文件名可能会发生变化。
  • 适用场景:适用于单磁盘或简单的系统配置,或者在不需要高度稳定性的环境中。

LABEL 是用户为文件系统指定的一个标签,可以在格式化文件系统时设置。

优点:

  • 可读性好:LABEL 可以是任意的字符串,便于管理员理解和记忆。
  • 灵活性:可以为多个文件系统设置相同的 LABEL,但通常建议每个文件系统的 LABEL 是唯一的。

缺点:

  • 非唯一性:LABEL 不是全局唯一的,如果多个文件系统设置了相同的 LABEL,可能会导致混淆。
  • 依赖用户设置:需要在格式化文件系统时正确设置 LABEL,否则无法使用。
  • 适用场景:适用于需要良好可读性和灵活性的环境,特别是在多磁盘或多分区的系统中,可以通过有意义的 LABEL 来标识文件系统。

1.2、挂载点

文件系统挂载的位置,即它在目录树中的路径。挂载点可以是任何一个空目录;如果是swap ,挂载点 通常是 none,因为 swap 不需要实际的挂载点,文件系统类型 是 swap,并且 选项 通常包括 sw(表示启用 swap)。
如下:

# Swap 分区:
/dev/sdb2 none swap sw 0 0# Swap 文件:
/swapfile none swap sw 0 0

1.3、文件系统类型

文件系统类型字段指定了挂载点所使用的文件系统类型,此字段告诉操作系统在挂载时应该使用哪种文件系统驱动来读取和写入数据。常见文件系统类型如下:

文件系统类型说明
ext4第四代扩展文件系统,广泛用于 Linux 系统
xfs高性能的日志文件系统,适用于大容量存储
btrfs具有高级功能(如快照、池化)的现代文件系统
nfs网络文件系统,用于通过网络共享文件
vfat支持 FAT32 文件系统的驱动
ntfs支持 NTFS 文件系统的驱动
tmpfs临时文件系统,存储在内存中
swap交换分区

1.4、挂载选项

挂载选项字段用于指定文件系统在挂载时的行为。这些选项可以控制文件系统的读写权限、日志记录、性能优化等方面。常见挂载选项及其含义如下:

挂载选项含义示例
defaults使用文件系统的默认挂载参数,例如 ext4 的默认参数为:rw, suid, dev, exec, auto, nouser, async/dev/sda1 /mnt/data ext4 defaults 0 2
auto在启动时或键入了 mount -a 命令时自动挂载。(默认)/dev/sda1 /mnt/data ext4 auto 0 2
noauto只在你的命令下被挂载。/dev/sda1 /mnt/data ext4 noauto 0 2
exec允许执行此分区的二进制文件。/dev/sda1 /mnt/data ext4 exec 0 2
noexec不允许执行此文件系统上的二进制文件。/dev/sda1 /mnt/data ext4 noexec 0 2
ro以只读模式挂载文件系统。/dev/sda1 /mnt/data ext4 ro 0 2
rw以读写模式挂载文件系统。/dev/sda1 /mnt/data ext4 rw 0 2
user允许任意用户挂载此文件系统,若无显示定义,隐含启用 noexec, nosuid, nodev 参数。/dev/sda1 /mnt/data ext4 user 0 2
users允许所有 users 组中的用户挂载文件系统./dev/sda1 /mnt/data ext4 users 0 2
nouser只能被 root 挂载。(默认)/dev/sda1 /mnt/data ext4 nouser 0 2
owner允许设备所有者挂载./dev/sda1 /mnt/data ext4 owner 0 2
syncI/O 同步进行。每次写操作都会立即写入磁盘,保证数据完整性但会降低性能。/dev/sda1 /mnt/data ext4 sync 0 2
asyncI/O 异步进行。写操作可能会延迟写入磁盘,提高性能但可能有数据丢失的风险(默认)/dev/sda1 /mnt/data ext4 async 0 2
dev解析文件系统上的块特殊设备。允许将文件系统中的设备文件解释为设备节点(默认)/dev/sda1 /mnt/data ext4 dev 0 2
nodev不解析文件系统上的块特殊设备。/dev/sda1 /mnt/data ext4 nodev 0 2
suid允许 suid 操作和设定 sgid 位。允许设置用户 ID 和组 ID 位(默认),这一参数通常用于一些特殊任务,使一般用户运行程序时临时提升权限。/dev/sda1 /mnt/data ext4 suid 0 2
nosuid禁止 suid 操作和设定 sgid 位。禁止设置用户 ID 和组 ID 位/dev/sda1 /mnt/data ext4 nosuid 0 2
noatime不更新文件系统上 inode 访问记录,可以提升性能。/dev/sda1 /mnt/data ext4 noatime 0 2
nodiratime不更新文件系统上的目录 inode 访问记录,可以提升性能(参见 atime 参数)。/dev/sda1 /mnt/data ext4 nodiratime 0 2
relatime实时更新 inode access 记录。只有在记录中的访问时间早于当前访问才会被更新。(与 noatime 相似,但不会打断如 mutt 或其它程序探测文件在上次访问后是否被修改的进程。),可以提升性能。更新文件的访问时间戳,但只有当文件的修改时间戳或状态时间戳发生变化时才更新访问时间戳。/dev/sda1 /mnt/data ext4 relatime 0 2
flush主要用于 NFS(Network File System)文件系统。这个选项的作用是确保数据在写入时被立即刷新到服务器上,从而提高数据的一致性和可靠性。192.168.1.100:/exports/data /mnt/nfs nfs defaults,flush 0 0
nofail即使设备在启动时不可用,系统仍会继续正常启动,不会中断或进入应急模式。此时,系统只会记录设备挂载失败的错误信息,但不会影响整体启动过程/dev/sda1 /mnt/data ext4 nofail 0 2
x-systemd.automount指定在访问挂载点时自动挂载。文件系统在首次访问时(例如用户尝试访问 /mnt/usb 目录时)才会自动挂载。此选项避免了系统启动时挂载失败的问题,因为它只在需要时挂载/dev/sda1 /mnt/data ext4 x-systemd.automount 0 2
comment忽略此条目,用于注释/dev/sda1 /mnt/data ext4 comment 0 2
loop指定该设备是一个循环设备/path/to/file.img /mnt/loop ext4 loop 0 2
offset指定循环设备的偏移量/path/to/file.img /mnt/loop ext4 loop,offset=1024 0 2
size指定循环设备的大小/path/to/file.img /mnt/loop ext4 loop,size=1024 0 2
discard启用 TRIM 支持,用于 SSD/dev/sda1 /mnt/data ext4 discard 0 2
x-systemd.device-timeout指定等待设备出现的超时时间/dev/sda1 /mnt/data ext4 x-systemd.device-timeout=10 0 2
x-systemd.requires指定挂载前需要启动的服务/dev/sda1 /mnt/data ext4 x-systemd.requires=network-online.target 0 2
x-systemd.idle-timeout指定在没有活动时自动卸载的时间/dev/sda1 /mnt/data ext4 x-systemd.idle-timeout=1min 0 2
bind绑定挂载,将一个目录挂载到另一个目录/path/to/source /path/to/target none bind 0 0
remount重新挂载已经挂载的文件系统/dev/sda1 /mnt/data ext4 remount 0 2
mand强制执行强制锁/dev/sda1 /mnt/data ext4 mand 0 2
nomand禁用强制锁。/dev/sda1 /mnt/data ext4 nomand 0 2
iversion启用 inode 版本号。/dev/sda1 /mnt/data ext4 iversion 0 2
nobarrier禁用屏障支持,提高性能但可能降低数据完整性。/dev/sda1 /mnt/data ext4 nobarrier 0 2
barrier启用屏障支持,提高数据完整性但可能降低性能。/dev/sda1 /mnt/data ext4 barrier 0 2
data控制数据写入方式,如 writeback, ordered, journal。/dev/sda1 /mnt/data ext4 data=writeback 0 2
errors控制文件系统错误处理方式,如 continue, remount-ro, panic。/dev/sda1 /mnt/data ext4 errors=remount-ro 0 2
acl启用访问控制列表。/dev/sda1 /mnt/data ext4 acl 0 2
noacl禁用访问控制列表。/dev/sda1 /mnt/data ext4 noacl 0 2
usrquota启用用户配额。/dev/sda1 /mnt/data ext4 usrquota 0 2
grpquota启用组配额。/dev/sda1 /mnt/data ext4 grpquota 0 2
prjquota启用项目配额。/dev/sda1 /mnt/data ext4 prjquota 0 2
inode64启用 64 位 inode 支持。/dev/sda1 /mnt/data ext4 inode64 0 2
bigalloc启用大块分配。/dev/sda1 /mnt/data ext4 bigalloc 0 2
stripe指定 RAID 条带宽度。/dev/sda1 /mnt/data ext4 stripe=256 0 2
delalloc延迟分配。/dev/sda1 /mnt/data ext4 delalloc 0 2
nodelalloc禁用延迟分配。/dev/sda1 /mnt/data ext4 nodelalloc 0 2
logbufs指定日志缓冲区数量。/dev/sda1 /mnt/data ext4 logbufs=16 0 2
logbsize指定日志块大小。/dev/sda1 /mnt/data ext4 logbsize=256k 0 2

1.5、dump

dump 字段是用于指定文件系统备份策略的一个字段。这个字段的值是一个数字,通常用于与 dump 命令配合使用,以决定哪些文件系统需要备份以及备份的频率。

  • 这个字段的值是一个整数,范围从 0 到 9。
  • 0: 表示该文件系统不需要被 dump 命令备份。
  • 1-9: 表示该文件系统的备份优先级。数字越小,优先级越高。例如,1 表示高优先级,9 表示低优先级。
UUID=1234-5678 / ext4 defaults 0 1
UUID=8765-4321 /home ext4 defaults 1 2
UUID=abcd-efgh /data xfs noatime,nodiratime 0 0

1.5、fsck顺序

fsck 顺序字段(也称为 pass 字段)用于指定文件系统检查工具 fsck 在系统启动时检查文件系统的顺序。

  • 这个字段的值是一个整数,通常取值为 0、1 或 2。
  • 0: 表示该文件系统不需要在启动时进行 fsck 检查。
  • 1: 表示该文件系统是根文件系统(通常是 /),并且需要在启动时首先进行检查。
  • 2: 表示该文件系统不是根文件系统,但在启动时需要进行检查。这些文件系统会在根文件系统检查之后按顺序进行检查。

二、/etc/fstab 与systemd 的关系

2.1、/etc/fstab 与systemd 的关系

  • 兼容性:systemd 完全支持 /etc/fstab 文件,并且会在系统启动时读取并处理其中的条目。这意味着你可以在 /etc/fstab 中定义的文件系统仍然会被 systemd 自动挂载。
  • 动态挂载:systemd 提供了更灵活的挂载机制,例如 systemd-automount 单元,可以在需要时动态挂载文件系统。这些单元可以由用户或系统事件触发,而不是仅在系统启动时挂载。
  • 单位文件:systemd 使用 .mount 和 .automount 单位文件来定义文件系统的挂载行为。这些单位文件可以手动创建,也可以通过 systemd-fstab-generator 从 /etc/fstab 自动生成。
  • 优先级:如果你在 /etc/fstab 和 systemd 单位文件中都定义了相同的挂载点,systemd 会优先使用单位文件中的配置。这允许你覆盖 /etc/fstab 中的设置,以实现更复杂的挂载行为。

2.2、systemd 之前/etc/fstab生效过程

在传统的 init 系统中,/etc/fstab 的处理主要由以下几个步骤完成:

  • 读取和解析 /etc/fstab:
    系统启动时,init 进程会读取并解析 /etc/fstab 文件,获取所有需要挂载的文件系统条目。
  • 执行 mount -a 命令:
    init 进程会调用 mount -a 命令来挂载 /etc/fstab 中定义的所有文件系统。-a 选项表示挂载所有在 /etc/fstab 中定义的文件系统。
  • 处理挂载选项:
    mount 命令会根据 /etc/fstab 中定义的选项来挂载每个文件系统。例如,如果某个文件系统被标记为 noauto,则它不会在启动时自动挂载。
  • 根文件系统挂载:
    根文件系统(通常是 /)会在早期启动阶段由内核或 initrd(初始 RAM 磁盘)进行挂载。/etc/fstab 中定义的其他文件系统会在根文件系统挂载后进行挂载
  • 错误处理:
    如果某个文件系统无法挂载,mount 命令会记录错误信息,并继续尝试挂载其他文件系统。具体的错误处理行为可能会因系统配置而异。

2.3、systemd 时代/etc/fstab生效过程

systemd 通过其内置的生成器和单元文件机制来处理 /etc/fstab 中的条目,确保这些文件系统在系统启动时被正确挂载。以下是 systemd 时代 /etc/fstab 生效的具体过程:

  • systemd-fstab-generator:
    systemd 使用 systemd-fstab-generator 工具来读取 /etc/fstab 文件,并根据其中的条目生成相应的 .mount 和 .automount 单元文件。这些单元文件会被放置在 /run/systemd/generator 目录下。

    • .mount 单元文件:
      定义了文件系统的挂载点、类型和选项。
      例如,对于 /etc/fstab 中的一个条目:
      UUID=1234-5678 /mnt/data ext4 defaults 0 2
      会生成一个类似如下的单元文件 /run/systemd/generator/mnt-data.mount
      [Unit]
      Description=Mount for /mnt/data[Mount]
      What=/dev/disk/by-uuid/1234-5678
      Where=/mnt/data
      Type=ext4
      Options=defaults[Install]
      WantedBy=multi-user.target
      
    • .automount 单元文件:
      如果 /etc/fstab 中的条目包含 x-systemd.automount 选项,systemd 会生成一个 .automount 单元文件,用于延迟挂载(即在访问挂载点时才挂载)。
      例如,对于以下条目:
      UUID=1234-5678 /mnt/data ext4 x-systemd.automount 0 2
      会生成一个类似如下的单元文件 /run/systemd/generator/mnt-data.automount
      [Unit]
      Description=Automount for /mnt/data[Automount]
      Where=/mnt/data[Install]
      WantedBy=multi-user.target
      
  • 单元文件的加载
    生成的 .mount.automount 单元文件会被 systemd 加载并激活。systemd 会在启动过程中根据这些单元文件来挂载或自动挂载文件系统。

  • 挂载过程

    • 自动挂载 (x-systemd.automount):
      如果启用了自动挂载,systemd 会在访问挂载点时才挂载文件系统。例如,当第一次访问 /mnt/data 时,systemd 会触发挂载操作。
      自动挂载可以减少启动时间,因为文件系统不会在启动时立即挂载,而是在需要时才挂载。
    • 立即挂载:
      如果没有启用自动挂载,systemd 会在启动过程中立即挂载文件系统。
      这些挂载点通常由 local-fs.targetmulti-user.target 等目标单元管理。
  • 错误处理
    如果某个文件系统无法挂载,systemd 会记录错误信息,并继续尝试挂载其他文件系统。
    你可以通过 journalctl 查看详细的日志信息,以诊断挂载失败的原因

三、相关知识

3.1、如何更具UUID 确定文件设备名?

$ cat /etc/fstab
UUID=f0d8224f-6cba-426a-a091-b70024003f95 /boot   ext4    defaults   1 2$ lsblk -f | grep f0d8224f-6cba-426a-a091-b70024003f95
└─vda1 ext4         f0d8224f-6cba-426a-a091-b70024003f95 /boot
可知 此设备文件名为/dev/vda1

3.2、如何生成UUID?

设备文件的 UUID(Universally Unique Identifier)是在文件系统格式化时生成的。每个文件系统在格式化时都会生成一个唯一的 UUID,以确保其在全球范围内的唯一性。

  • 生成 UUID 的过程–格式化文件系统:
    当你使用 mkfs 命令或其他文件系统工具格式化一个分区或磁盘时,UUID 会自动生成。例如,使用 mkfs.ext4 命令格式化一个分区时,UUID 会自动分配给该文件系统。
  • UUID 生成算法:
    UUID 通常是通过特定的算法生成的,这些算法旨在确保生成的 UUID 在全球范围内是唯一的。常见的 UUID 生成算法包括基于时间戳、随机数和硬件 MAC 地址等。
  • 存储 UUID:
    生成的 UUID 会被存储在文件系统的超级块中,这是一个包含文件系统元数据的区域。你可以使用 blkid 或 lsblk 等命令来查看文件系统的 UUID。

3.3、文件系统格式化

文件系统格式化是一个将磁盘或分区初始化为特定文件系统类型的过程。格式化会创建文件系统的结构,包括超级块、inode 表、数据块等,并分配 UUID 和其他元数据。

格式化过程:

  • 创建超级块:超级块包含文件系统的元数据,如文件系统的大小、状态信息、UUID 等。
  • 创建 inode 表:inode 是文件系统中用于存储文件元数据的数据结构,如文件权限、所有者、时间戳等。
  • 创建数据块:数据块用于存储实际的文件数据。
  • 分配 UUID:生成并分配一个唯一的 UUID 给文件系统。
  • 写入其他元数据:如位图、日志等,用于文件系统的管理和维护。

常见文件系统类型:

  • ext4:Linux 系统常用的文件系统。
  • NTFS:Windows 系统常用的文件系统。
  • FAT32:跨平台兼容性较好的文件系统,但有单文件大小限制。
  • XFS:适用于大文件和高性能需求的文件系统。
  • Btrfs:具有高级功能(如快照、校验和)的现代文件系统。

格式化的时机

  • 首次使用:通常在新磁盘或分区首次使用时进行格式化。
  • 重新格式化:当需要更改文件系统类型或修复严重损坏的文件系统时,可能会重新格式化。
  • 恢复出厂设置:某些情况下,恢复设备到出厂设置时会进行格式化。

机器每次启动都会格式化文件系统吗?

不会。机器每次启动时不会自动进行文件系统格式化。格式化是一个破坏性的操作,会删除磁盘上的所有数据。
检查和修复:在某些情况下,操作系统可能会在启动时检查文件系统的完整性,并在发现错误时尝试修复。例如:

  • fsck (File System Consistency Check):在 Linux 系统中,fsck 工具会在启动时检查和修复文件系统错误。
  • chkdsk (Check Disk):在 Windows 系统中,chkdsk 工具可以检查和修复文件系统错误。

3.4、swap 分区和swap文件的创建

创建 Swap 分区

假设你已经有一个未使用的分区 /dev/sdb2,你可以将其设置为 swap 分区:

sudo mkswap /dev/sdb2
sudo swapon /dev/sdb2

然后在 /etc/fstab 中添加以下条目:

/dev/sdb2 none swap sw 0 0

创建 Swap 文件

假设你想创建一个 2GB 的 swap 文件 /swapfile,你可以按以下步骤操作:

  • 创建空文件:sudo fallocate -l 2G /swapfile
  • 设置适当的权限:sudo chmod 600 /swapfile
  • 将文件设置为 swap:sudo mkswap /swapfile
  • 启用 swap 文件:sudo swapon /swapfile
  • 在 /etc/fstab 中添加条目:/swapfile none swap sw 0 0
  • 验证 Swap 配置: sudo swapon --show

参考文档

1、https://juejin.cn/post/7259354549165178941

2、https://blog.csdn.net/peng2hui1314/article/details/142675349

3、https://www.ctyun.cn/zhishi/p-216081

4、https://blog.csdn.net/szembed/article/details/126933883

相关文章:

/etc/fstab 文件学习systemd与该文件关系

文章目录 一、文件字段1.1、设备标识1.2、挂载点1.3、文件系统类型1.4、挂载选项1.5、dump1.5、fsck顺序 二、/etc/fstab 与systemd 的关系2.1、/etc/fstab 与systemd 的关系2.2、systemd 之前/etc/fstab生效过程2.3、systemd 时代/etc/fstab生效过程 三、相关知识3.1、如何更具…...

从源码分析swift GCD_DispatchGroup

前言&#xff1a; 最近在写需求的时候用到了DispatchGroup&#xff0c;一直没有深入去学习&#xff0c;既然遇到了那么就总结下吧。。。。 基本介绍&#xff1a; 任务组&#xff08;DispatchGroup&#xff09; DispatchGroup 可以将多个任务组合在一起并且监听它们的完成状态。…...

25计软新增考研院校!或可捡漏上岸!

C哥专业提供——计软考研院校选择分析专业课备考指南规划 新增的计算机与软件工程考研院校为考研同学带来了多方面的机遇&#xff0c;这些机遇不仅体现在过国家线后可能面临的更低竞争压力&#xff0c;还包括更多元化的教育选择和更广阔的就业前景&#xff1a; 一、降低竞争压…...

C# 线程安全集合

文章目录 引言一、ConcurrentBag<T>二、ConcurrentQueue<T>三、ConcurrentStack<T>四、ConcurrentDictionary<TKey, TValue>五、总结引言 在多线程编程环境中,多个线程可能同时访问和操作集合数据。如果使用普通集合,很容易引发数据不一致、错误结果…...

箱包发霉怎么处理 箱包发霉处理修复方法

箱包发霉怎么处理&#xff1f;箱包不仅是我们出行的必需品&#xff0c;更是承载着个人风格与品味的时尚配饰。然而箱包工厂生产的箱包&#xff0c;在潮湿多变的环境中&#xff0c;箱包很容易成为霉菌滋生的温床&#xff0c;尤其是那些长时间储存的箱包&#xff0c;更是霉菌的“…...

【每日学点鸿蒙知识】Charles抓包、lock文件处理、WebView组件、NFC相关、CallMethod失败等

1、HarmonyOS系统中如何使用Charles抓包&#xff1f; 在HarmonyOS操作系统中&#xff0c;使用Charles进行抓包的步骤如下&#xff1a; 在Charles中设置代理。 首先&#xff0c;在Charles的菜单栏上选择“Proxy”→“Proxy Settings”&#xff0c;然后填入代理端口&#xff0…...

【异常】GL-SFT1200路由器中继模式,TL-CPE1300D无法搜寻5G网问题分析

【异常】GL-SFT1200路由器中继模式,TL-CPE1300D无法搜寻5G网问题 情况实验结论情况 在用GL-SFT1200路由器切换中继模式时,由于web密码忘却,需要重置,但根据官网使用手册,或者对应的中文版手册,重置失败。通过跟商家联系,进行uboot刷机,提供了指导文档,尝试后刷机成功…...

LINUX--shell

函数 格式&#xff1a; func() { command } function 关键字可写&#xff0c;也可不写。 示例 1&#xff1a; #!/bin/bash func() { #定义函数 echo "Hello $1" } func world #执行主文件 # bash test.sh Hello world 数组 数组是相…...

TCP常见问题

文章目录 一、两种状态图二、常见问题1、MSL是什么 3、为何等待2MSL3、为何三次握手&#xff0c;不握手、握手一次、两次行吗4、为何四次挥手&#xff0c;三次行吗&#xff0c;两次行吗 一、两种状态图 四次挥手 二、常见问题 1、MSL是什么 MSL是Maximum Segment Lifetime的英…...

OpenCV学习——图像融合

import cv2 as cv import cv2 as cvbg cv.imread("test_images/background.jpg", cv.IMREAD_COLOR) fg cv.imread("test_images/forground.png", cv.IMREAD_COLOR)# 打印图片尺寸 print(bg.shape) print(fg.shape)resize_size (1200, 800)bg cv.resize…...

网速、续航双在线!2024随身WiFi品牌精选推荐!格行按键切三网值得买吗?

随身wifi这个东西大家用的还是蛮多的&#xff0c;特别是一些户外工作的人员&#xff0c;往往都需要配备一个随身wifi&#xff0c;这样户外工作的时候才有网络&#xff0c;工作才会比较方便一些。今天就来盘点2024年热门随身wifi哪个牌子的好用&#xff1f; 1.华为&#xff1a;通…...

ubuntu18.04连接不上网络问题

现象&#xff1a;右上角的网络图标消失&#xff0c;仅剩输入法、音量和开关图标&#xff0c;ifconfig只显示本地回环 原因&#xff1a;网络适配器未开启 解决&#xff1a; 1. 查看网络状态&#xff1a;cat /var/lib/NetworkManager/NetworkManager.state 这里显示是false&a…...

访谈积鼎科技总经理:国产CFD软件发展与未来趋势展望

傅彦国&#xff0c;上海积鼎信息科技有限公司创始人 记者&#xff1a;请傅总介绍下我国流体仿真行业的发展现状是怎样的&#xff1f; 傅彦国&#xff1a;自2018年政府加大了对核心技术自主研发的支持力度&#xff0c;国产CFD软件逐渐步入发展正轨。 首先&#xff0c;从市场规…...

【Linux知识】exec命令行详解

文章目录 概述主要用途和 bash 有什么区别&#xff1f; 概述 在 Linux 系统中&#xff0c;exec 命令用于执行一个可执行文件&#xff0c;替换当前进程的映像。也就是说&#xff0c;当你在终端中使用 exec 命令后&#xff0c;当前的 shell 会被替换为 exec 指定的程序&#xff…...

【学术小白的学习之路】基于情感词典的中文句子情感分析(代码词典获取在结尾)

【学术小白的学习之路】基于情感词典的情感分析 1.基础函数1.1 判断情感词的否定词数量1.2 导入情感词典1.3 切分句子1.3.1为什么划分1.3.2 划分代码 1.4 完整代码 2.导入词典3.中文情感分析算法思路4.1情感词获取思路4.2 计算情感分值4.3 得分的归一化处理 4.实证5.总结 本文的…...

Linux 中 grep、sed、awk 命令

1. awk&#xff1a;强大的文本分析工具 awk&#xff0c;全称“Awk语言”&#xff0c;是一种专门用于处理文本文件的语言。它不仅能够根据关键字匹配某一行&#xff0c;还能进行复杂的文本分析和处理。awk的语法简洁明了&#xff0c;功能强大&#xff0c;是文本处理领域的佼佼者…...

一起考高项啊--现代化基础设施(工业互联网)

1、工业互联网的内涵和外延 工业互联网不是互联网在工作的简单应用&#xff0c;是具有更为丰富的内涵和外延。 它既是工业数字化、网络化、智能化转型的基础设施&#xff0c;也是互联网、大数据、人工智能与实体经济深度融合的应用模式&#xff0c;同时也是一种新业态、新产业…...

python学opencv|读取图像(二十)使用cv2.circle()绘制圆形进阶

【1】引言 前序已经掌握了使用cv2.circle()绘制圆形的基本操作&#xff0c;相关链接为&#xff1a; python学opencv|读取图像&#xff08;二十&#xff09;使用cv2.circle()绘制圆形-CSDN博客 由于圆形本身绘制起来比较简单&#xff0c;因此可以自由操作的空间也就大&#x…...

期权懂|如何减小个股期权交易中的风险?

锦鲤三三每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 如何减小个股期权交易中的风险&#xff1f; 一、选择合适的期权合约 &#xff08;1&#xff09;选择活跃的期权合约&#xff1a;投资者应优先选择交易活跃的期权合约。交易活跃的…...

ubuntu20.04 wget下载--段错误 (核心已转储)

用wget下载时总是在快下载完成时遇到段错误 untu2004-9.1.0_1.0-1_am 99%[> ] 1.63G 3.11MB/s 剩余 1s s段错误 (核心已转储)有以下两种解决方法&#xff1a; 1.手动下载 wget后面就是要下载的资源的链接&#xff0c;直接复制到浏览器中下载即可 如&#xff1a…...

怎么样保持mysql和redis数据一致性

保持 MySQL 和 Redis 数据的一致性是一个常见的挑战,因为 MySQL 是传统的关系型数据库,而 Redis 是内存数据库,通常用于缓存和高性能存储。这两者的数据更新方式不同,特别是当 Redis 用作缓存时,可能会存在缓存和数据库之间的数据不一致问题。为了保持数据一致性,通常可以…...

剑指Offer|LCR 013. 二维区域和检索 - 矩阵不可变

LCR 013. 二维区域和检索 - 矩阵不可变 给定一个二维矩阵 matrix&#xff0c;以下类型的多个请求&#xff1a; 计算其子矩形范围内元素的总和&#xff0c;该子矩阵的左上角为 (row1, col1) &#xff0c;右下角为 (row2, col2) 。 实现 NumMatrix 类&#xff1a; NumMatrix(…...

aosp15 - Activity生命周期切换

本文探查的是&#xff0c;从App冷启动后到MainActivity生命周期切换的系统实现。 调试步骤 在com.android.server.wm.RootWindowContainer#attachApplication 方法下断点&#xff0c;为了attach目标进程在com.android.server.wm.ActivityTaskSupervisor#realStartActivityLock…...

vxe-table 虚拟滚动的动态响应

虚拟滚动主要是在有限范围内渲染想要显示的数据&#xff0c;主要体现在懒加载数据和动态渲染上。如何提高虚拟滚动的操作性呢&#xff1f;请看本章解析 1.什么是虚拟滚动&#xff1f;代码如何实现&#xff1f; VXE-Table提供了一种名为“虚拟滚动”的功能&#xff0c;该功能可…...

quasar dev 命令卡住很久

别以为这是一个瞬间的截图&#xff0c;其实停留在这里很久很久。 折腾挺久&#xff0c;无论npm run dev:proxy还是 quasar dev&#xff0c;都是一样的情况。 最终解决办法&#xff1a; 有语法问题&#xff0c;通过 quasar build 命令暴露出来错误所在的行数。...

黑盒RCE测试 异或测试

前言 了解了漏洞的原理之后就需要知道 他在哪能出现 并且被利用 这个还是很重要的 异或测试 使用异或&#xff08;XOR&#xff09;运算进行加密解密的原理_异或加密-CSDN博客 异或测试是在 白盒内执行的 一个例题看一下 输入什么都是会报错 这种情况就需要使用 异或计…...

kotlin中泛型中in和out的区别

概念含义 in关键字&#xff08;逆变&#xff09; 在Kotlin泛型中&#xff0c;in关键字主要用于定义逆变&#xff08;Contravariance&#xff09;。它表示一个泛型类型参数可以是指定类型或者它的超类型。简单来说&#xff0c;就是对于类型A和B&#xff0c;如果A是B的子类型&…...

c# iis 解决跨域问题

该错误是一个典型的跨域问题&#xff0c;说明从 http://www.fuc.com 发起的请求被目标服务器&#xff08;https://aip.baidubce.com&#xff09;拒绝&#xff0c;原因是目标服务器未返回正确的 AccessControlAllowOrigin 响应头。 解决方法 1. 了解问题的本质 CORS&#xff08…...

MySQL版本对应的mysql-connector-java版本下载地址

MySQL版本mysql-connector-java版本mysql-connector-java下载地址MySQL安装版下载地址MySQL免安装版下载地址5.1.x5.1.xmysql-connector-java 5.1.xMySQL Installer 5.1.xMySQL Community Server 5.1.x5.5.x5.1.x, 5.5.x mysql-connector-java 5.1.x, mysql-connector-java 5.5…...

【读书笔记】《论语别裁》爱与罪

一、内容摘要 《论语别裁》第01章讨论了孔子关于孝悌的思想&#xff0c;以及其在中国文化中的重要性和复杂性。文中引用了有子的观点&#xff0c;强调孝弟是为人之本。然而&#xff0c;随着历史的发展&#xff0c;孔子的思想也被误解或被用作维护专制统治的工具。通过司马迁的…...