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

Linux分区、挂载、配额、逻辑卷、RAID、系统综合状态查看

分区与挂载

fdisk
  • fdisk 命令是一个用于磁盘分区管理的命令行工具,可以用来创建、删除、调整分区等操作。常用的 fdisk 命令选项包括:
fdisk -l:列出系统中的所有磁盘分区信息。
fdisk /dev/sdX:打开指定磁盘进行分区操作。
n:创建新分区。
d:删除分区。
p:显示分区表。
w:保存并退出。
mount
  • mount 命令用于将文件系统挂载到指定的挂载点上,使得文件系统中的内容可以被访问。常用的 mount 命令选项包括:
mount /dev/sdX /mnt:将设备 /dev/sdX 挂载到挂载点 /mnt。
mount -t ext4 /dev/sdX /mnt:指定文件系统类型为 ext4 进行挂载。
mount -o remount,rw /mnt:重新挂载为可读写模式。
umount /mnt:卸载挂载点 /mnt。

临时挂载和配置文件挂载

临时挂载

临时挂载是指在当前系统会话中手动挂载文件系统,挂载的效果仅在当前系统重启前有效。临时挂载通常用于临时需要访问某个文件系统或临时调试的情况。以下是临时挂载的步骤:

  1. 创建挂载点:在系统中选择一个目录作为挂载点,例如 /mnt

    sudo mkdir /mnt/mydrive
    
  2. 挂载文件系统:使用 mount 命令将文件系统挂载到指定的挂载点上。

    sudo mount /dev/sdX1 /mnt/mydrive
    
  3. 访问文件系统:挂载完成后,您可以通过挂载点 /mnt/mydrive 访问文件系统中的内容。

配置文件挂载

配置文件挂载是指在系统启动时自动挂载文件系统,通过编辑配置文件实现。配置文件挂载可以确保文件系统在系统启动时自动挂载,提高系统的稳定性和可靠性。以下是配置文件挂载的步骤:

  1. 编辑 /etc/fstab 文件:打开 /etc/fstab 文件,添加需要挂载的文件系统信息。

    sudo nano /etc/fstab
    
  2. 添加挂载信息:在 /etc/fstab 文件中添加需要挂载的文件系统信息,包括设备、挂载点、文件系统类型和挂载选项。

    /dev/sdX1   /mnt/mydrive   ext4   defaults   0   0
    
  3. 重新挂载文件系统:可以手动重新挂载所有在 /etc/fstab 中定义的文件系统,或者重启系统使配置生效。

    sudo mount -a
    

通过配置文件挂载,可以实现系统启动时自动挂载文件系统,避免手动操作,提高系统的自动化程度。

总结

  • 临时挂载:手动挂载文件系统,在当前系统会话中有效。
  • 配置文件挂载:通过编辑 /etc/fstab 文件实现系统启动时自动挂载文件系统。

希望这些信息对您详细介绍了临时挂载和配置文件挂载的过程。如果您有任何其他问题或需要进一步了解,请随时提出。

mkfs 命令 用于格式化分区并创建文件系统。

mkfs 命令用于创建文件系统。它可以将指定的分区格式化为特定类型的文件系统。常用的 mkfs 命令选项包括:

  1. 创建 ext4 文件系统

    mkfs.ext4 /dev/sdX1
    
  2. 创建 xfs 文件系统

    mkfs.xfs /dev/sdX1
    
  3. 创建 FAT32 文件系统

    mkfs.vfat /dev/sdX1
    
  4. 创建其他类型的文件系统:可以使用 mkfs 命令的其他变体(如 mkfs.btrfsmkfs.ntfs 等)来创建不同类型的文件系统。

parted 命令 用于管理磁盘分区,包括创建、删除和调整分区。

parted 命令是一个用于管理磁盘分区的工具,支持更复杂的分区操作。常用的 parted 命令选项包括:

  1. 启动 parted

    parted /dev/sdX
    
  2. 显示分区表

    (parted) print
    
  3. 创建新分区

    (parted) mkpart primary ext4 1MiB 100MiB
    
  4. 删除分区

    (parted) rm 1
    
  5. 调整分区大小

    (parted) resizepart 1 200MiB
    
  6. 设置分区标志

    (parted) set 1 boot on
    

分区和挂载磁盘配额

磁盘配额(Disk Quota)是用于限制用户或用户组在文件系统中使用的磁盘空间的机制。通过设置磁盘配额,可以有效管理磁盘资源,防止某个用户或用户组占用过多的磁盘空间。以下是设置和管理磁盘配额的步骤:

1. 启用配额支持

在挂载文件系统时,需要启用配额支持。可以通过编辑 /etc/fstab 文件来实现。

  • 打开 /etc/fstab 文件:

    sudo nano /etc/fstab
    
  • 在需要启用配额的文件系统挂载选项中添加 usrquota 和/或 grpquota,例如:

    /dev/sdX1   /mnt/mydrive   ext4   defaults,usrquota,grpquota   0   0
    
2. 重新挂载文件系统

修改完 /etc/fstab 后,需要重新挂载文件系统以使配额设置生效:

sudo mount -o remount /mnt/mydrive
3. 创建配额数据库

使用 quotacheck 命令创建配额数据库文件:

sudo quotacheck -cug /mnt/mydrive
  • -c:创建配额文件。
  • -u:检查用户配额。
  • -g:检查组配额。
4. 启用配额

使用 quotaon 命令启用配额:

sudo quotaon /mnt/mydrive
5. 设置配额

使用 edquota 命令为特定用户设置配额:

sudo edquota username

这将打开一个编辑器,您可以在其中设置软限制和硬限制:

  • 软限制:用户可以超过此限制,但会收到警告。
  • 硬限制:用户不能超过此限制。
6. 查看配额

使用 quota 命令查看用户的配额使用情况:

quota -u username
7. 取消配额

如果需要取消配额,可以使用 quotaoff 命令:

sudo quotaoff /mnt/mydrive
例子
xfs_quota -x -c 'report --ugibh' /mnt/disk1

这条命令用于生成指定路径 /mnt/disk1 下的磁盘配额报告。
-x 选项表示以扩展格式显示报告。
-c ‘report --ugibh’ 表示执行 report 命令,并使用 --ugibh 选项指定显示用户(u)、组(g)、inode(i)、块(b)和文件硬链接(h)的配额信息。

xfs_quota -x -c 'limit -u isoft=5 ihard=10 user1' /mnt/disk1

这条命令用于为用户 user1 设置磁盘配额限制。
-x 选项表示以扩展格式显示报告。
-c ‘limit -u isoft=5 ihard=10 user1’ 表示执行 limit 命令,设置用户 user1 的软限制(isoft=5)和硬限制(ihard=10)。
isoft=5 表示软限制为 5 个文件或目录。
ihard=10 表示硬限制为 10 个文件或目录。

扩充swap空间

使用一个分区扩充 Swap 分区:
  1. 创建一个文件用于扩充 Swap 分区

    sudo fallocate -l 1G /path/to/new_swapfile
    
  2. 将文件设置为 Swap 文件

    sudo mkswap /path/to/new_swapfile
    
  3. 启用新的 Swap 文件

    sudo swapon /path/to/new_swapfile
    
  4. 永久配置新的 Swap 文件

    • /etc/fstab 文件中添加以下行:
      /path/to/new_swapfile none swap sw 0 0
      
  5. 重新加载 Swap 配置

    sudo swapon -a
    
使用一个分区扩充 Swap 分区:
  1. 创建一个分区,例如 /dev/sdX2

  2. 将分区设置为 Swap 分区

    sudo mkswap /dev/sdX2
    
  3. 启用新的 Swap 分区

    sudo swapon /dev/sdX2
    
  4. 永久配置新的 Swap 分区

    • /etc/fstab 文件中添加以下行:
      /dev/sdX2 none swap sw 0 0
      
  5. 重新加载 Swap 配置

    sudo swapon -a
    

配置文件中设置 Swap 分区:

  • 编辑 /etc/fstab 文件

    • 打开 /etc/fstab 文件:
      sudo nano /etc/fstab
      
    • 添加 Swap 分区或文件的配置信息,例如:
      /path/to/new_swapfile none swap sw 0 0
      或
      /dev/sdX2 none swap sw 0 0
      
  • 重新加载 Swap 配置

    sudo swapon -a
    

fstab的含义

/etc/fstab 是 Linux 系统中的一个配置文件,用于定义文件系统的挂载信息。在 /etc/fstab 文件中,每一行都描述了一个文件系统的挂载信息,包括设备、挂载点、文件系统类型、挂载选项、备份频率和其他信息。以下是 /etc/fstab 文件中常见字段的含义:

  1. 设备(Device):指定要挂载的设备或分区的路径,可以是设备文件(如 /dev/sda1)或 UUID。

  2. 挂载点(Mount Point):指定文件系统挂载的目标目录,即文件系统将被挂载到哪个位置。

  3. 文件系统类型(File System Type):指定文件系统的类型,如 ext4、xfs、ntfs 等。

  4. 挂载选项(Mount Options):指定文件系统的挂载选项,如读写权限、自动挂载、不允许执行等。

  5. 备份频率(Dump):用于指定文件系统备份工具 dump 的备份频率,通常设置为 0 表示不备份。

  6. 文件系统检查顺序(Fsck Order):用于指定文件系统检查工具 fsck 的检查顺序,通常设置为 0 表示不检查。

一个典型的 /etc/fstab 文件示例可能如下所示:

/dev/sda1   /       ext4    defaults    0   1
/dev/sdb1   /data   xfs     defaults    0   2
UUID=1234-5678   /mnt/external   vfat    defaults    0   0

在这个示例中:

  • /dev/sda1 是设备路径,挂载到根目录 /,文件系统类型为 ext4,使用默认挂载选项。
  • /dev/sdb1 是设备路径,挂载到 /data 目录,文件系统类型为 xfs,使用默认挂载选项,备份频率为 2。
  • UUID=1234-5678 是设备的 UUID,挂载到 /mnt/external 目录,文件系统类型为 vfat,使用默认挂载选项,不进行备份。

RAID

RAID(Redundant Array of Independent Disks)是一种通过将多个磁盘组合在一起来提高数据存储性能、容量和冗余度的技术。RAID 可以提供数据冗余、提高读写性能或同时实现两者的优势。以下是常见的 RAID 级别和其特点:

  1. RAID 0

    • 条带化(Striping):数据被分割成块并分布在多个磁盘上,提高读写性能。
    • 无冗余:没有数据冗余备份,一块磁盘损坏会导致数据丢失。
    • 适用性:适合需要高性能而不需要数据冗余的场景。
  2. RAID 1

    • 镜像(Mirroring):数据被同时写入两个磁盘,提供数据冗余备份。
    • 读性能:读性能较好,写性能略低。
    • 适用性:适合需要数据冗余备份的场景。
  3. RAID 5

    • 条带化和分布式奇偶校验:数据和奇偶校验信息分布在多个磁盘上,提供数据冗余和读写性能。
    • 容错性:可以容忍一块磁盘损坏,数据可恢复。
    • 适用性:适合中等性能要求和数据冗余备份的场景。
  4. RAID 6

    • 双分布式奇偶校验:比 RAID 5 多一个奇偶校验盘,可以容忍两块磁盘损坏。
    • 更高容错性:可以容忍多块磁盘损坏,数据可恢复。
    • 适用性:适合对数据安全性要求较高的场景。
  5. RAID 10(也称为 RAID 1+0):

    • 镜像和条带化:将多组磁盘进行镜像,然后对镜像组进行条带化。
    • 性能和容错性:提供较高的读写性能和数据冗余备份。
    • 适用性:适合对性能和数据冗余都有要求的场景。

使用mdadm命令用软件实现RAID

mdadm 是 Linux 系统中用于管理软件 RAID 的工具。以下是使用 mdadm 命令创建和管理软件 RAID 的基本步骤:

1. 安装 mdadm

在大多数 Linux 发行版中,可以通过包管理器安装 mdadm

# 对于 Debian/Ubuntu
sudo apt-get install mdadm# 对于 CentOS/RHEL
sudo yum install mdadm

2. 创建 RAID

以下是创建不同类型 RAID 的示例命令:

创建 RAID 0
sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda1 /dev/sdb1
创建 RAID 1
sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
创建 RAID 5
sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1
mdadm -D md0  # 可以查看raid磁盘信息
创建 RAID 6
sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

3. 查看 RAID 状态

cat /proc/mdstat

4. 停止 RAID

sudo mdadm --stop /dev/md0

5. 删除 RAID

sudo mdadm --remove /dev/md0

6. 保存 RAID 配置

为了在系统重启时自动加载 RAID,可以将 RAID 配置保存到 /etc/mdadm/mdadm.conf

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

然后更新 initramfs:

sudo update-initramfs -u

7. 创建文件系统

在 RAID 设备上创建文件系统:

sudo mkfs.ext4 /dev/md0

8. 挂载 RAID

创建挂载点并挂载 RAID 设备:

sudo mkdir /mnt/raid
sudo mount /dev/md0 /mnt/raid

9. 在 /etc/fstab 中添加挂载信息

为了在启动时自动挂载 RAID,可以在 /etc/fstab 中添加以下行:

/dev/md0   /mnt/raid   ext4   defaults   0   0
例子
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc1

这条命令的含义是创建一个 RAID 等级为 1(镜像)的软件 RAID 设备 /dev/md0,由两个磁盘组成,分别是 /dev/sdb 和 /dev/sdc1。 RAID 1 提供数据镜像,即数据会同时写入两个磁盘,提供数据冗余备份。

  • 添加到配置文件
    在这里插入图片描述
    这组命令的作用是创建一个 XFS 文件系统的软件 RAID 设备,并将其配置保存到 /etc/mdadm.conf 文件中。以下是每条命令的解释:
  1. dd if=/dev/zero of=/dev/sdc bs=4M count=1

    • 该命令的作用是向 /dev/sdc 磁盘写入一个大小为 4MB 的零填充数据。
    • 这个步骤通常用于清除磁盘上的数据或元数据,以便后续创建 RAID。
  2. echo DEVICE /dev/sd[b,c]1

    • 这条命令输出了 /dev/sdb1/dev/sdc1,指示这两个分区将被用于创建 RAID。
  3. echo DEVICE /dev/sd[b,c]1 >> /etc/mdadm.conf

    • 将上述输出追加到 /etc/mdadm.conf 文件中,用于指定 RAID 设备的配置。
  4. mdadm -Evs >> /etc/mdadm.conf

    • 该命令用于将当前系统中的 RAID 设备信息追加到 /etc/mdadm.conf 文件中,以便在系统重启后重新加载 RAID。
  5. mkfs.xfs /dev/md0

    • 这条命令用于在 /dev/md0 上创建 XFS 文件系统,准备将其用作软件 RAID 设备的文件系统。

逻辑卷LVM

物理卷和逻辑卷

物理卷(Physical Volume)

  • 物理卷是 LVM 中的基本存储单元,通常对应于一个磁盘分区或整个硬盘。
  • 物理卷是通过 LVM 标记和管理的磁盘空间,可以将一个或多个物理卷组合成一个卷组(Volume Group)。
  • 物理卷上的数据是以物理块(Physical Extents)的形式存储的,这些物理块组成了卷组的基本存储单元。

逻辑卷(Logical Volume)

  • 逻辑卷是由卷组中的物理卷分配的虚拟磁盘空间,类似于传统的磁盘分区,但更加灵活和可调整。
  • 逻辑卷可以动态调整大小,而无需重新分区或重新格式化磁盘。
  • 逻辑卷上的数据是以逻辑块(Logical Extents)的形式存储的,逻辑块可以映射到物理卷上的物理块。
简单的介绍

当您使用 LVM 管理存储时,通常会从物理卷开始构建分区、创建文件系统,最后挂载到系统中。以下是一步步的详细说明:

步骤一:创建物理卷(Physical Volume)
  1. 使用 pvcreate 命令将一个磁盘分区或整个硬盘标记为 LVM 可管理的物理卷。
    sudo pvcreate /dev/sdb
    
步骤二:创建卷组(Volume Group)
  1. 使用 vgcreate 命令创建一个新的卷组,并将物理卷添加到该卷组中。
    sudo vgcreate myvg /dev/sdb
    
步骤三:创建逻辑卷(Logical Volume)
  1. 使用 lvcreate 命令在卷组中创建一个逻辑卷,并指定逻辑卷的大小。
    sudo lvcreate -L 10G -n mylv myvg
    
步骤四:创建文件系统
  1. 使用适当的工具(如 mkfs.ext4mkfs.xfs)在逻辑卷上创建文件系统。
    sudo mkfs.ext4 /dev/myvg/mylv
    
步骤五:挂载文件系统
  1. 创建一个目录作为挂载点,然后将文件系统挂载到该目录。
    sudo mkdir /mnt/mydata
    sudo mount /dev/myvg/mylv /mnt/mydata
    
步骤六:自动挂载
  1. 如果需要在系统启动时自动挂载文件系统,可以将其添加到 /etc/fstab 文件中。
    echo "/dev/myvg/mylv /mnt/mydata ext4 defaults 0 0" | sudo tee -a /etc/fstab
    
命令介绍

以下是对在上述例子中使用的 LVM 命令的详细解释:

  1. pvcreate /dev/sdb

    • pvcreate 命令用于创建物理卷,将指定的磁盘分区或整个硬盘标记为 LVM 可管理的物理卷。
    • 在这个例子中,我们将硬盘 /dev/sdb 标记为物理卷,以便将其用于后续的卷组创建。
  2. pvs

    • pvs 命令用于显示系统中所有物理卷的信息,包括物理卷的名称、大小、空闲空间等。
    • 运行此命令后,您将看到有关系统中所有物理卷的详细信息,以便了解它们的状态和使用情况。
  3. vgcreate myvg /dev/sdb

    • vgcreate 命令用于创建一个新的卷组,并将一个或多个物理卷添加到该卷组中。
    • 在这个例子中,我们创建了一个名为 myvg 的卷组,并将物理卷 /dev/sdb 添加到该卷组中。
  4. vgs

    • vgs 命令用于显示系统中所有卷组的信息,包括卷组的名称、物理卷数量、逻辑卷数量等。

扩充逻辑分区

扩展逻辑卷:
  1. 扩展逻辑卷大小

    • 使用 lvextend 命令来扩展逻辑卷的大小。例如,将逻辑卷 mylv 扩展 5GB:
      sudo lvextend -L +5G /dev/myvg/mylv
      
  2. 扩展文件系统

    • 如果您使用的是 ext4 或 xfs 文件系统,需要使用相应的工具来扩展文件系统。例如,对 ext4 文件系统:
      sudo resize2fs /dev/myvg/mylv
      
缩减逻辑卷:
  1. 缩减文件系统

    • 首先,缩减文件系统以释放空间。对于 ext4 文件系统,可以使用以下命令:
      sudo resize2fs /dev/myvg/mylv 10G
      
  2. 缩减逻辑卷大小

    • 使用 lvreduce 命令来缩减逻辑卷的大小。例如,将逻辑卷 mylv 缩减至 10GB:
      sudo lvreduce -L 10G /dev/myvg/mylv
      
文件系统扩大

对逻辑卷进行扩展时,相应的文件系统也需要进行扩展以利用新增的空间。否则df -h命令不会显示分区扩大。

对 ext4 文件系统扩展:

  1. 扩展 ext4 文件系统
    • 使用 resize2fs 命令来扩展 ext4 文件系统。确保在扩展逻辑卷后执行此步骤。
      sudo resize2fs /dev/myvg/mylv
      

对 xfs 文件系统扩展:

  1. 扩展 xfs 文件系统
    • 使用 xfs_growfs 命令来扩展 xfs 文件系统。确保在扩展逻辑卷后执行此步骤。
      sudo xfs_growfs /mnt/mydata
      

系统综合状态查看命令

sar

sar 命令是 System Activity Reporter 的缩写,用于收集、报告和存储系统的性能数据。通过 sar 命令,您可以查看系统的 CPU 使用率、内存使用情况、磁盘活动、网络流量等信息。

基本用法:
  1. 查看系统整体性能

    • 使用 sar 命令可以查看系统的整体性能数据,默认情况下显示当前日期的系统活动摘要。
    • 例如,运行 sar 命令会显示系统的平均负载、CPU 使用率、内存使用情况等信息。
  2. 指定时间间隔和次数

    • 您可以使用 -n 参数指定输出数据的时间间隔(秒)和次数。
    • 例如,sar -n ALL 1 5 表示每秒输出一次系统性能数据,共输出 5 次。
常用选项:
  1. CPU 相关

    • -u:显示 CPU 使用率。
    • -P ALL:显示每个 CPU 的使用率。
  2. 内存相关

    • -r:显示内存使用情况。
  3. 磁盘相关

    • -b:显示磁盘 I/O 统计信息。
  4. 网络相关

    • -n DEV:显示网络接口的统计信息。
高级选项:
  1. 输出到文件

    • 使用 -o 参数将 sar 输出保存到文件中,以便后续分析。
  2. 指定时间范围

    • 使用 -s-e 参数指定开始时间和结束时间,以查看特定时间范围内的系统性能数据。
  3. 查看历史数据

    • 使用 -f 参数指定历史数据文件,可以查看以前收集的 sar 数据。
常用命令

要查询系统的综合状态,您可以使用一系列命令来获取有关系统资源、进程、网络连接等方面的信息。

  1. 查看系统负载

    • 使用 uptime 命令可以查看系统的平均负载以及系统运行时间。
    • 使用 tophtop 命令可以实时查看系统的负载情况、进程信息等。
  2. 查看内存使用情况

    • 使用 free -h 命令可以查看系统的内存使用情况。
    • 使用 tophtop 命令也可以查看内存使用情况。
  3. 查看磁盘空间

    • 使用 df -h 命令可以查看系统的磁盘空间使用情况。
    • 使用 du -h 命令可以查看指定目录的磁盘使用情况。
  4. 查看网络连接

    • 使用 netstat 命令可以查看系统的网络连接情况。
    • 使用 ss 命令也可以查看网络连接信息。
  5. 查看进程信息

    • 使用 ps aux 命令可以查看系统的进程信息。
    • 使用 tophtop 命令可以实时查看系统的进程信息。
  6. 查看日志信息

    • 使用 journalctl 命令可以查看系统日志信息。
    • 使用 dmesg 命令可以查看内核日志信息。

相关文章:

Linux分区、挂载、配额、逻辑卷、RAID、系统综合状态查看

分区与挂载 fdisk fdisk 命令是一个用于磁盘分区管理的命令行工具,可以用来创建、删除、调整分区等操作。常用的 fdisk 命令选项包括: fdisk -l:列出系统中的所有磁盘分区信息。 fdisk /dev/sdX:打开指定磁盘进行分区操作。 n&…...

3D Gaussian Splatting 代码层理解之Part1

2023 年初,来自蔚蓝海岸大学和 马克斯普朗克学会的作者发表了一篇题为“用于实时现场渲染的 3D 高斯泼溅”的论文。该论文提出了实时神经渲染的重大进步,超越了NeRF等以前方法的实用性。高斯泼溅不仅减少了延迟,而且达到或超过了 NeRF 的渲染质量,在神经渲染领域掀起了一场…...

Qt小知识-Q_GLOBAL_STATIC

你还在为创建全局静态对象烦恼嘛,它来了!它来了! qt5提供了两个宏定义Q_GLOBAL_STATIC和Q_GLOBAL_STATIC_WITH_ARGS来实现。可以创建一个全局静态对象,对象在第一次使用时初始化自身,这意味着它不会增加应用程序或库的…...

【SpringBoot】使用过滤器进行XSS防御

在Spring Boot中,我们可以使用注解的方式来进行XSS防御。注解是一种轻量级的防御手段,它可以在方法或字段级别对输入进行校验,从而防止XSS攻击。 而想对全局的请求都进行XSS防御可以使用servlet中的过滤器或者spring mvc中的拦截器&#xff…...

创建vue插件,发布npm

开发步骤:1.创建一个vue项目,2.开发一个组件。 3.注册成插件。 4.vite和package.json配置。5.发布到npm 1.创建一个vue项目 npm create vuelatest 生成了vue项目之后,得到了以下结构。 在src下创建个plugins目录。用于存放开发的…...

【Android Compose原创组件】可拖动滚动条的完美实现

项目背景 我在使用安卓Compose开发自己的【JK管理器】的过程中,很多地方都需要使用滚动条,在Github上也有实现的比较好,但是大多都是基于View(我要的是Compose啊)。 在研究Android 官方示例项目 nowinandroid 中&…...

【模块一】kubernetes容器编排进阶实战之资源管理核心概念

kubernetes 资源管理核心概念 k8s的设计理念—分层架构 CRI-container runtime interface-容器运行接口 CNI-container network interface-容器网络接口 CSI-container storage interface-容器存储接口 k8s的设计理念—API设计原则 https://www.kubernetes.org.cn/kubernete…...

用Python设置PowerPoint幻灯片背景

使用Python自动化处理Office文档,如PowerPoint演示文稿,是提高效率和创造力的重要手段。设置PowerPoint幻灯片背景不仅能够增强演示文稿的视觉吸引力,还能帮助传达特定的情感或信息,使观众更加投入。通过编程方式批量修改幻灯片背…...

Restful API接⼝简介及为什么要进⾏接⼝压测

一、RESTful API简介 在现代Web开发中,RESTful API已经成为一种标准的设计模式,用于构建和交互网络应用程序。本文将详细介绍RESTful API的基本概念、特点以及如何使用它来设计高效的API接口。 1. 基于协议 HTTP 或 HTTPS RESTful API通常使用HTTP&am…...

[pyspark] pyspark中如何修改列名字

使用 .withColumnRenamed 来重命名,直接看demo: from pyspark.sql import SparkSessionspark SparkSession.builder.appName("example").getOrCreate()data [("Alice", 1, 200),("Bob", 2, 300),("Charlie",…...

掌握 Spring Boot 的最佳方法 – 学习路线图

在企业界,人们说“Java 永垂不朽!”。但为什么呢?Java 仍然是开发企业应用程序的主要平台之一。大型公司使用企业应用程序来赚钱。这些应用程序具有高可靠性要求和庞大的代码库。根据Java开发人员生产力报告,62% 的受访开发人员使…...

element-ui】使用el_upload上传文件无法动态修改action

问题:最近在使用el_upload上传文件时,发现无法动态修改action的值,进行提交时,caseId2还是默认值null 原因:el-upload的先执行上传,后执行action里的响应,也就是赋值等操作。 解决方法&#x…...

如何查看电脑支持的最大内存

如何查看电脑支持的最大内存 要查看电脑支持的最大内存容量,可以通过以下几种方法: 一、使用Windows命令查询 打开命令提示符:按下“WinR”键,打开运行窗口,输入“cmd”,然后点击确定。输入查询命令&…...

24 年第十届数维杯国际数模竞赛赛题浅析

本次万众瞩目的数维杯国际大学生数学建模赛题已正式出炉,无论是赛题难度还是认可度,该比赛都是数模届的独一档,含金量极高,可以用于综测加分、保研、简历添彩等各方面。考虑到大家解题实属不易,为了帮助大家取得好成绩…...

Dubbo 3.x源码(25)—Dubbo服务引用源码(8)notify订阅服务通知更新

基于Dubbo 3.1,详细介绍了Dubbo服务的发布与引用的源码。 此前我们学习了接口级的服务引入订阅的refreshInterfaceInvoker方法,当时还有最为关键的notify服务通知更新的部分源码没有学习,本次我们来学习notify通知本地服务更新的源码。 Dubb…...

排序算法 -计数排序

文章目录 1. 计数排序(Counting Sort)1.1 简介1.2 计数排序的步骤1.3 计数排序C语言实现注释说明: 1.4 时间复杂度1.5 空间复杂度 1. 计数排序(Counting Sort) 1.1 简介 计数排序(Counting Sort&#xff…...

Java学习,基本数据类型

变量就是申请内存来存储值,当创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。Java 提供了八种基本数据类型,这些类型可以分为四大类:整数类型…...

单片机GPIO中断+定时器 软件串口通信

单片机GPIO中断定时器 软件串口通信 解决思路代码示例 解决思路 串口波特率9600bps,每个bit约为1000000us/9600104.16us; 定时器第一次定时时间设为52us即半个bit的时间,其目的是偏移半个bit时间,之后的每104us采样并读取1bit数据。使得采样…...

elementui el-table中给表头 el-table-column 加一个鼠标移入提示说明

前言 在使用el-table 表格中有些表格的表头需要加入一些提示&#xff0c;鼠标移入则出现提示&#xff0c;非常实用&#xff0c;我是通过el-table中的el-tooltip实现的&#xff0c;以下的效果预览 代码实现 <el-table ref"multipleTable" :data"data"…...

NVR小程序接入平台/设备EasyNVR多个NVR同时管理设备接入:海康NVR 3.0提示不在线如何处理?

在视频监控领域&#xff0c;设备的兼容性和互操作性一直是用户关注的重点。海康NVR管理平台EasyNVR作为一款轻量级的视频监控平台&#xff0c;凭借其强大的兼容性、可扩展性和丰富的功能&#xff0c;成为了公共安全领域“云平台”解决方案的杰出代表。然而&#xff0c;在实际应…...

datawhale11月组队学习 模型压缩技术2:PyTorch模型剪枝教程

文章目录 一、 prune模块简介1.1 常用方法1.2 剪枝效果1.3 二、三、四章剪枝测试总结 二、局部剪枝&#xff08;Local Pruning&#xff09;2.1 结构化剪枝2.1.1 对weight进行随机结构化剪枝&#xff08;random_structured&#xff09;2.1.2 对weight进行迭代剪枝&#xff08;范…...

SOL链上Meme生态的崛起与未来#Dapp开发#链游#交易所#公链搭建

近年来&#xff0c;随着区块链技术的普及和NFT文化的流行&#xff0c;meme&#xff08;网络迷因&#xff09;逐渐成为区块链生态中的重要组成部分。meme不仅是一种互联网文化符号&#xff0c;更逐步渗透进了去中心化金融&#xff08;DeFi&#xff09;、NFT和元宇宙等多个领域&a…...

部署Apache Doris

官方文档&#xff1a;https://doris.apache.org/zh-CN/installing/compilation.html 一、编译 使用 Docker 开发镜像编译&#xff08;推荐&#xff09; 1.拉取镜像 #下载 Docker 最新主干版本代码&#xff0c;会随主干版本不断更新。 $ docker pull apache/incubator-doris:…...

ElasticSearch-全文检索(一)基本介绍

简介 Elasticsearch&#xff1a;官方分布式搜索和分析引擎 | Elastic 全文搜索属于最常见的需求&#xff0c;开源的Elasticsearch是目前全文搜索引擎的首选。 它可以快速地储存、搜索和分析海量数据。维基百科、StackOverflow、Github都采用它 Elastic的底层是开源库Lucene。但…...

paramiko 库实现的暴力破解 SSH 密码

import paramiko import optparse import threading import time from threading import Thread, BoundedSemaphore# 用paramiko暴力破解SSH密码 # 最大并发连接尝试的数量&#xff0c;可根据实际情况调整&#xff0c;适当减小可降低对目标服务器的压力以及减少多线程同步问题出…...

Python 操作 Elasticsearch 全指南:从连接到数据查询与处理

文章目录 Python 操作 Elasticsearch 全指南&#xff1a;从连接到数据查询与处理引言安装 elasticsearch-py连接到 Elasticsearch创建索引插入数据查询数据1. 简单查询2. 布尔查询 更新文档删除文档和索引删除文档删除索引 批量插入数据处理分页结果总结 Python 操作 Elasticse…...

Jarvis March算法详解及Python实现(附设计模式案例)

目录 Jarvis March算法详解及Python实现(附设计模式案例)第一部分:Jarvis March算法概述与原理1.1 什么是Jarvis March算法?1.2 算法原理1.3 算法流程1.4 时间复杂度第二部分:Jarvis March算法的Python实现(面向对象设计)2.1 面向对象设计2.2 代码实现2.3 代码解释第三部…...

AIGC中的文本风格迁移:基于深度学习的实现

引言 文本风格迁移是自然语言处理领域的一个重要研究方向&#xff0c;它可以将文本从一种风格转换为另一种风格&#xff0c;同时保留其原有的内容。随着深度学习技术的发展&#xff0c;文本风格迁移的方法变得越来越先进和高效。本文将探讨基于序列到序列模型&#xff08;Seq2…...

丹摩征文活动 |【前端开发】HTML+CSS+JavaScript前端三剑客的基础知识体系了解

前言 &#x1f31f;&#x1f31f;本期讲解关于HTMLCSSJavaScript的基础知识&#xff0c;小编带领大家简单过一遍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 …...

响应“一机两用”政策 落实政务外网安全

在数字化时代&#xff0c;政务办公外网安全的重要性日益凸显&#xff0c;特别是在“一机两用”的背景下&#xff0c;即同一台终端既要处理政务内网的数据&#xff0c;又要访问互联网&#xff0c;这对网络安全提出了更高的要求。深信达SPN安全上网方案&#xff0c;即反向沙箱技术…...