Linux总结

article/2025/6/9 10:43:42

一、Linux

linux系统的构成

1.linux系统内核:提供最核心的功能,如:调度CPU、调度内存、调度文件系统、调度网络通信、调度IO等。

2.系统级应用程序:出厂自带程序,可供用户快速上手操作系统。如:文件管理器、任务管理器、图片查看、音乐播放等。

Linux发行版

1.CentOS:先安装vmware,再安装finalshell。

2.UBuntu:打开控制面板--程序--程序和功能--启用或关闭Windows功能--勾选windows下的linux子系统--重启。再在微软商店下载Ubuntu和windows terminal。

wsl:windows系统之上的Linux子系统

虚拟机

虚拟机:通过虚拟化技术,在电脑内虚化计算机硬件,并给虚拟的硬件安装硬件系统,即可得到一台虚拟的电脑,称之为虚拟机。

FinalShell连接到Linux操作系统,虚拟机如果重启,IP有可能改变,需要修改FinalShell的IP。

固定虚拟机的IP:

使用 vim 修改 /etc/sysconfig/network-scripts/ifcfg-ens33 文件

把dhcp改成static

IPADDR="192.168.56.129"
NETMASK="255.255.255.0"
GATEWAY="192.168.56.2"
DNS1="192.168.56.2"     //和网关一样

重启网卡 systemctl restart network(systemctl命令需要安装)

网关查询:

点击更改设置,选中VMnet8,点击NAT设置。

快照

保存虚拟机的状态,用做备份(关机拍摄快照更快)。

目录结构

Linux的目录结构:一个树型结构(Windows有多个,即盘符),根目录是‘/’,路径之间的层级关系用‘/’(Windows用‘\’)

二、Linux命令

1.命令的通用格式

命令本体+[命令的选项,命令的行为细节]+[命令的参数,命令的指向目标]

2.ls

ls [-a] [-l] [-h] 路径

ls:以平铺的形式,展现当前工作目录下的内容(默认HOME目录)。

-a:列出所有文件,包括隐藏的(以‘.’开头的文件是隐藏的)

-l:以列表的形式,展现当前工作目录下的内容,并展示更多的信息(-h要和-l一起用,显示文件的大小单位,默认B为单位)

第一个数字表示硬链接个数,文件为一个(通过绝对路径访问),目录为两个(通过cd.访问),子目录每有一个(通过cd..访问),个数加一。

3.cd

切换工作目录:cd 路径(不加路径回到home目录)

4.pwd

pwd:查看当前工作目录

5.特殊路径符

.表示当前目录

..表示上一级目录

~表示home目录

6.mkdir

创建目录:mkdir [-p] 路径

-p:创建多级目录

mkdir {1..100}

7.创建和查看文件

创建文件:touch 路径

查看文件:cat 路径           

                  more 路径(分页查看)

                  less 路径

8.文件的复制,移动和删除

cp [-r] [-p] 路径1 路径2:文件或文件夹的复制     

 -r:文件夹的复制

-p 复制时保留源文件的所有属性

如果存在重名文件/目录则覆盖。

mv 源路径 目标路径:文件/文件夹的移动,目标路径不存在则改名

如果存在重名文件/目录则覆盖。

rm [-r] [-f] 路径1 [路径2]..         

-r:文件夹的删除

-f:force,强制删除,不会弹出确认信息,root管理员用户才会有提示

rm命令支持通配符*

9.查找命令

which 命令名:查找命令的程序文件

find 起始路径 -name 文件名:按文件名查找文件,支持通配符

find 起始路径 -size +/-n[kMG]:按文件大小查找文件,+-表示大于小于

10.grep

grep [-n] 关键字 文件名/文件的路径:通过关键字过滤文件内容(可作为内容输入端口,即管道符的输入)

-n:显示关键字在文件里的行号

11.wc

wc [-c] [-m] [-l] [-w] 文件名:数量统计,默认输出行数、单词数、字节数(可作为内容输入端口)

-c:统计字节

    编码:GBK,一个汉字字节数:2

    编码:UTF-8,一个汉字字节数:3

    一个字母一个字节

-m:统计字符

-l:统计行数

-w:统计单词数量,空格划分

注意:vi编辑器会在每一行用$来标记行尾,用cat直接查看是不可见的(用cat -A),会导致统计字符和字节数+1.

12.管道符

将管道符左边的结果作为右边的输入,左边比如:ls,cat,右边比如:wc,grep,可嵌套使用。

13.echo

echo 要输出的内容 

反引号符:用来包含一个命令,这个命令会先执行返回结果。

单引号符:单引号将其中的内容都作为了字符串,忽略所有的命令和特殊字符,类似于一个字符串的用法,等同于不加符号。

双引号符:双引号与单引号的区别在于其可以解析部分特殊字符(', ", $, \),如果要忽略特殊字符,就可以利用\来转义,忽略特殊字符,作为普通字符输出。

14.重定向符

>:将左侧命令的结果,覆盖写入到右侧的文件中

>>:将左侧命令的结果,追加写入到右侧的文件中

15.tail

tail [-f] [-n] 路径  :查看文件尾部内容,并且可以持续追踪

-n:输入查看尾部的行数,不写默认查看最后10行

注意:tail -f命令是根据文件的索引来追踪文件的,每个文件有唯一的索引对应。而vim是将原来的文件删除后,然后再生成一个新的文件。新生成的同名文件的索引已经发生了变化,所以导致tail -f命令追踪失败。

解决:使用tail -F替代tail -f,tail -F在原文件被删除的时候,会一直尝试打开同名文件。

16.vi/vim编辑器

vim是vi的加强版本,兼容vi的所有指令,而且还具有shell程序编辑的功能,可以以不同颜色的字体来辨别语法的正确性。

vi/vim编辑器的三种工作模式:

命令模式

命令模式快捷键

描述

i

进入输入模式

0

光标跳到行开头

$

光标跳到行尾

gg

跳到首行

G

跳到尾行

Pgup

向上翻页

Pgdn

向下翻页

/

进入搜索模式

n

向下继续搜索

N

向上继续搜索

dd

删除光标所在行

ndd

删除光标所在行向下n行

dG

从当前行开始,向下全部删除

dgg

从当前行开始,向上全部删除

d0

从当前光标开始,删除到本行开头

d$

从当前光标开始,删除到本行结尾

yy

复制当前行

nyy

从当前行开始,复制n行

p

粘贴

u

撤销修改

Ctrl+r

反向撤销修改,即重做

输入模式:按Esc回到命令模式

底线命令模式:输入:进入底线命令模式,用于文件的保存,退出。按Esc回到命令模式。

底线命令模式快捷键

描述

wq

保存并退出

w

保存

q

退出

q!

强制退出

set nu

显示行号

set paste

设置粘贴模式

三、用户和权限

1.root

root超级管理员:普通用户的权限,一般在其home目录内是不受限的,其余目录普通用户仅有只读和执行权限,无修改权限。root用户拥有最大的权限。

2.切换用户

su - [用户名]

-:表示是否加载环境变量

用户名可省略,表示root用户

退回上一个用户:ctrl+d  或者 exit

root用户切换其它用户不用密码

3.sudo

让普通用户获得临时root身份,在其它命令之加上sudo

需要为普通用户配置sudo认证:root用户执行visudo命令,在文件的最后一行增加配置

要配置的用户名 ALL=(ALL) NOPASSWD:ALL

NOPASSWD:ALL表示使用sudo命令,无需输入密码。

4.用户和用户组

linux系统中可以配置多个用户,多个用户组,一个用户可以加入多个用户组。

linux关于权限的管控级别有两个:

针对用户的权限控制

针对用户组的权限控制

(1)用户组管理

创建用户组:groupadd 用户组名

删除用户组:groupdel 用户组名

(2)用户管理

创建用户:useradd [-g] [-d] 用户名

     -g:指定用户的组,不指定-g会默认创建同名组并加入

     -d:指定用户home路径,不指定,默认home路径为/home/用户名

删除用户:userdel [-r] 用户名

     -r:删除用户的home目录

查看用户所属组:id [用户名]  不提供用户名则查看自身

修改用户所属组:usermod -aG 新的用户组 用户名 

注意:修改后该用户仍然属于原来的用户组

查看系统中有哪些用户:getent passwd

输出的用户共有7份信息:分别是:

用户名:密码x:用户ID:组ID:描述信息(可为空):home目录:用户的执行终端(默认bash)

查看系统中有哪些用户组:getent group

输出共有3份/4份信息:分别是:

用户组名:组认证x:组ID:组内用户名(好像只显示第一个用户,不是通过命令创建的用户没有这一项)

5.权限控制

(1)查看权限信息

ls -l的输出:

第一列为文件/文件夹的权限控制信息:

一共有10个槽位:

第1位:-表示文件,d表示文件夹,l表示软链接

第2-4位:表示所属用户权限,有rwx三种权限,-表示无此权限。

第5-7位:表示所属用户组权限,有rwx三种权限,-表示无此权限。

第8-10位:表示其它用户权限,有rwx三种权限,-表示无此权限。

r:读权限

w:写权限

x:执行权限,对于文件表示可以将文件作为程序执行,对于文件夹表示可以更改工作目录到此文件夹,即cd

第二列为文件/文件夹的所属用户

第三列为文件/文件夹的所属用户组

(2)修改权限信息

只有文件/文件夹的所属用户或root用户可以修改。

chmod [-R] 权限 文件/文件夹  -R 表示对文件夹内的全部内容应用同样的操作。

权限的数字序号:第一位数字表示用户权限,第二位数字表示用户组权限,第三位数字表示其它用户权限。r记为4,w记为2,x记为1.

(3)修改文件/文件夹所属用户和用户组(需要root权限)

chown [-R] [用户] [:] [用户组] 文件名/文件夹名  -R 表示对文件夹内的全部内容应用同样的操作。

四、小技巧快捷键

ctrl+l 清屏=clear

ctrl+c 强制停止(应用、搜索、跟踪、命令)

ctrl+d 退出当前用户=exit

history 查看历史命令

!+命令前缀,自动匹配上一个命令

ctrl+r 搜索历史命令

ctrl+左右键 光标左右跳单词

ctrl+a/e  光标移动到命令开始或结束

ctrl+u/k  删除光标之前/之后的命令

tab  命令补全

五、软件安装

CentOS使用yum管理器:yum为.rpm包软件管理器(windows为.exe,mac为.pkg,ubuntu为.deb)

yum [-y] install/remove/search 软件名称 -y表示自动确认,该命令需要联网,需要root权限

ubuntu使用apt管理器,apt [-y] install/remove/search 软件名称

运行yum install出错解决方法:
①备份源文件:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
②替换阿里yum源:curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
③执行:yum install wget

六、systemctl

可以控制软件(服务)的启动,关闭,开机自启动和查看状态。

系统内置服务(如NetworkManger主网络服务,network副网络服务,firewalld防火墙,sshd,ssh服务)均可被systectl控制,第三方软件(yum下载的)如果注册了服务,可以被systectl控制。没注册服务的需要手动添加。

systemctl start/stop/status/enable/disable 服务名

七、软链接

类似Windows的快捷方式。

ln -s 被链接的文件或文件夹 目的路径/链接名

-s表示软链接,不加表示硬链接

1、本质区别
‌硬链接:指的是同一个文件的多个名字。也就是说,不同的文件名指向同一个文件内容,这些文件名(即硬链接)共享同一个inode号。
‌软链接:又叫符号链接,它是指向另一个文件或目录的路径名,相当于Windows中的快捷方式。软链接本身是一个独立的文件,但它包含的是被指向文件的路径信息。
2、跨分区与目录创建
‌硬链接:不支持跨文件系统创建,即不能在不同分区之间建立硬链接。同时,硬连接只能对文件创建,不能对目录创建。
‌软链接:支持跨文件系统创建,即可以在不同分区之间建立软链接。软连接既可以对文件创建,也可以对目录创建。

    八、日期和时区

    date [-d] [格式化字符串] -d用于日期计算

    格式化字符串:

    %s:时间戳,从1970-01-01 00:00:00 UTC到现在的秒数

    支持的时间标记:year,month,day,hour,minute,second


    修改Linux时区(需要root权限):
    1.删除原来的localtime文件:rm -f /etc/localtime
    2.创建软链接:ln -s /user/share/zoneinfo/Asia/Shanghai /etc/localtime 

    ntp程序
    ntp可以自动校准系统时间,也可以手动校准(需要root权限):ntpdate -u ntp.aliyun.com

    九、IP地址、主机名

    127.0.0.1:指代本机
    0.0.0.0:指代本机,0.0.0.0并不是一个真实的的IP地址,它表示本机中所有的IPV4地址

    查看主机名:hostname
    修改主机名(需要root权限):hostnamectl set-hostname 主机名


    域名解析:先查看本机记录,再联网去DNS服务器
    配置主机名映射(管理员身份):在Windows系统的:C:\Windows\System32\drivers\etc\hosts文件中配置。

    十、网络传输

    1.下载和网络请求

    ping [-c num] ip或主机名     [-c num]表示ping的次数

    wget:文件下载器(下载器)

    wget [-b] url -b表示后台下载,会将日志写入当前工作目录的wget-log文件。可用tail -f wget-log跟踪下载进度。
    curl:可以下载文件,发送网络请求(浏览器)
    curl [-O] url -O表示下载文件

    2.端口

    物理端口
    虚拟端口:ip只能锁定计算机,端口锁定具体的程序。
    linux系统支持65535个端口,分为三类:
    公认端口:1-1023
    注册端口:1024-49151
    动态端口:49152-65535
    查看端口占用:nmap 被查看的ip(nmap要安装)
    查看指定端口的占用情况:netstat -anp | grep 端口号(netstat要安装)

    十一、进程管理

    查看进程:ps [-e -f]  -e表示展示全部进程,-f表示显示进程的全部信息,配合管道符查看指定进程。


    输出有8组信息,分别是:用户id,进程id,进程的父id,此进程的cpu占用率(%),进程的启动时间,启动此进程的终端序号(?表示非终端启动),进程占用cpu的时间,进程对应的名称或启动路径或启动命令

    关闭进程:kill [-9] 进程id  -9表示强制关闭进程。

    十二、主机状态监控

    查看系统资源占用

    top,类似windows的任务管理器,默认每3秒刷新一次。按q或者ctrl c退出

    top命令详解

    第一行:当前系统时间,启动时间,2个用户登录,1,5,15分钟负载

    第二行:194个进程数,1个运行进程,193个进程睡眠,0个进程停止,0个僵尸进程

    第三行:%Cpu(s)CPU使用率,us:用户使用率,sy:系统使用率

    第四、五行(内存):kib mem物理内存 kib swap虚拟内存(交换空间)buff/cache:缓存占用

    pr:进程优先级,越小越低

    ni:负值表示高优先级,正值表示低优先级,pr-ni=20

    virt:进程使用虚拟内存,单位KB

    res:进程使物理内存,单位KB

    shr:进程使用共享内存,单位KB

    s:进程状态:S睡眠,R运行,Z僵死状态,N负数优先级,I空闲状态

    %CPU:进程占用CPU率

    %MEM:进程占用内存率

    Time+:进程使用CPU时间总计,单位10ms

    command:进程的命令或名称或程序文件路径

    top命令选项

    -p:只显示某个进程

    -d:设置刷新时间

    -c:显示产生进程的完整命令,默认是进程名

    -n:指定刷新次数

    -b:以非交互非全屏模式运行,以批次的方式执行top,一般配合-n和重定向符

    -i:不显示任何闲置(idle)或无用(zombie)的进程

    -u:查找特定用户启动的进程

    top交互式选项

    按键

    功能

    h

    显示帮助界面

    c

    等同与-c选项

    f

    可以选择需要展示的项目

    M

    根据驻留内存大小(RES)排序

    P

    根据CPU使用百分比大小排序

    T

    根据时间/累计时间排序

    E

    切换顶部内存显示单位

    e

    切换进程内存显示单位

    l

    切换显示平均负载和启动时间信息

    i

    等同与-i选项

    t

    切换显示CPU状态信息

    m

    切换显示内存信息

    磁盘信息监控

    df [-h]:查看硬盘的使用情况,-h以更加人性化的单位显示

    iostat [-x] [num1] [num2]

    -x:显示更多信息

    num1:刷新间隔

    num2:刷新次数,默认是1

    rrgm/s:    每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge,提高I0利用率,避免重复调用);

    wrqm/s:  每秒这个设备相关的写入请求有多少被Merge了。     

    rsec/s:     每秒读取的扇区数;sectors 

    wsec/:     每秒写入的扇区数。  

    rKB/s:       每秒发送到设备的读取请求数  

    wKB/s:     每秒发送到设备的写入请求数  

    avgrq-sz  平均请求扇区的大小  

    avgqu-sz  平均请求队列的长度。毫无疑问,队列长度越短越好。     

    await:      每一个IO请求的处理的平均时间(单位是微秒毫秒)。 

    svctm       表示平均每次设备I/O操作的服务时间(以毫秒为单位)        

    %util:       磁盘利用率

    网络状态监控

    sar –n DEV [num1] [num2]

    num1:时间间隔,表示每几秒采样一次

    num2:采样次数,不填会一直采样

    IFACE 本地网卡接口的名称

    rxpck/s 每秒钟接受的数据包

    txpck/s 每秒钟发送的数据包

    rxKB/S 每秒钟接受的数据包大小,单位为KB

    txKB/S 每秒钟发送的数据包大小,单位为KB

    rxcmp/s每秒钟接受的压缩数据包

    txcmp/s 每秒钟发送的压缩包

    rxmcst/s 每秒钟接收的多播数据包

    十三、环境变量

    查看当前系统中记录的环境变量:env

    设置环境变量

    临时设置:export 变量名=变量值(export可省略)

    永久生效:

    针对当前用户:配置在~/bashrc文件中

    针对所有用户生效:配置在/etc/profile文件中

    source 配置文件,使配置文件生效。

    $: 用于取变量的值,可以通过{}来标注变量,用echo输出。

    十四、在Linux系统中进行上传和下载

    1.可以在finalshell拖拽进行上传和下载,也可以右键选择

    2.通过命令,需要下载lrzsz

    rz上传

    sz下载 sz+要下载的文件

    十五、压缩和解压

    压缩格式

    zip:linux,Windows,MacOS

    7zip:Windows

    rar:Windows

    tar:Linux,MacOS

    gzip:Linux,MacOS

    .tar和.gz(.tar.gz)文件的压缩和解压

    tar [-c  –v  –x  –f  –z  -C] [文件1…]

    -c:压缩

    -v:查看进度

    -x:解压

    -f:压缩包名(必须在最后使用)

    -z:gzip格式,默认使.tar格式

    -C:解压目的路径(单独使用)

    常用组合:

    压缩:-cvf

    解压:-xvf

    .zip文件的压缩和解压

    压缩:zip [-r] [文件1…]  -r表示被压缩的包含文件夹

    解压:unzip [-d] 压缩包文件 –d:表示目标路径

    十六、Linux安装mysql

    ​
    更新密钥:rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022安装yum库:rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm用yum安装:yum install mysql-community-server启动mysql并配置开机自启动systemctl status mysqldsystemctl start mysqldsystemctl enable mysqld修改root密码1.获取初始密码:grep 'temporary password' /var/log/mysqld.log2.登录mysql:mysql –u root –p3.修改:Alter USER 'root'@'localhost' identified with mysql_native_password by '';
    必须修改密码,用初始密码登录的mysql不管输入什么命令都会报错。
    密码要求:不少于8为,且包含大小写字母,数字和特殊符号。​

    配置简单密码:

    set global validate_password.policy=0;//密码安全级别调低

    set global validate_password.length=4;//密码长度限制为4

    允许root用户远程登录

    第一次配置用create user 'root'@'%' identified with mysql_native_password by '';

    后续修改用Alter user 'root'@'%' identified with mysql_native_password by '';

    分配权限:grant all on *.* to 'root'@'%';

    Navacat连接(注意关闭防火墙)

    (1)systemctl  status firewalld.service查看防火墙的状态;(2)systemctl  start firewalld.service启动防火墙;(3)systemctl  stop firewalld.service关闭防火墙;(4)systemctl  restart firewalld.service重启防火墙;(5)systemctl  enable firewalld.service开机启动防火墙;(6)systemctl  disable firewalld.service开机禁用防火墙;(7)systemctl  is-enabled firewalld.service查看防火墙是否开机启动;
    

    Mysql默认绑定端口是3306

    netstat -anp | grep 3306

    十七、补充

    1.type命令用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令

    2.#是超级用户的提示输入,¥是普通用户提示输入。


     


    http://www.hkcw.cn/article/VwZSmndwTJ.shtml

    相关文章

    嵌入式复习小练

    1.ARM处理器中用作程序计数器PC的通用寄存器是() A.R12 B.R13 C.R14 D.R15 答案:D。在 ARM 处理器中,R15 用作程序计数器(PC) ,用于存放下一条要执行指令的地址 2.以下关于ARM程序状态寄存器C…

    Python Day41学习(日志Day8复习)

    对信贷数据中的离散特征重新进行独热编码 重写代码时出现的问题: .tolist()是一个方法对象,调用时须加()。刚开始书写时漏掉了(),导致报错。 复习“日志Day8”的内容 今日有点事耽搁了,少复习了些内容,明日继续加油&…

    入门AJAX——XMLHttpRequest(Post)

    一、前言 在上篇文章中,我们已经介绍了 HMLHttpRequest 的GET 请求的基本用法,并基于我提供的接口练习了两个简单的例子。如果你还没有看过第一篇文章,强烈建议你在学习完上篇文章后再学习本篇文章: 🔗入门AJAX——XM…

    网络交换机:构建高效、安全、灵活局域网的基石

    在数字化时代,网络交换机作为局域网(LAN)的核心设备,承担着数据转发、通信优化和安全防护的关键任务。其通过独特的MAC地址学习、冲突域隔离、VLAN划分等技术,显著提升了网络性能,成为企业、学校、医院等场景不可或缺的基础设施。…

    《深入解析SPI协议及其FPGA高效实现》-- 第三篇:FPGA实现关键技术与优化

    第三篇:FPGA实现关键技术与优化 聚焦高速时序、资源复用与信号完整性 1. 时序收敛关键策略 1.1 源同步时序约束 tcl # Vivado XDC约束示例 create_generated_clock -name spi_sck -source [get_pins clk_gen/CLKOUT] \-divide_by 1 [get_ports sck]# 建立时间约…

    EtherCAT背板方案:方芯半导体工业自动化领域的高速、高精度的通信解决方案

    前言:EtherCAT背板方案是一种插拔式设计方案,ESC(EtherCAT从站控制器)之间通过底板信号线相互连接。底板信号线为所支撑的器件提供电源和数据信号。ESC芯片多级从站之间通过LVDS(低压差分信号)接口相连接&a…

    TablePlus:一个跨平台的数据库管理工具

    TablePlus 是一款现代化的跨平台(Window、Linux、macOS、iOS)数据库管理工具,提供直观的界面和强大的功能,可以帮助用户轻松管理和操作数据库。 TablePlus 免费版可以永久使用,但是只能同时打开 2 个连接窗口&#xff…

    记我的第一个深度学习模型尝试——MNIST手写数字识别

    种一棵树最好的时间是十年前,其次是现在。 目录 前言 一、数据准备 二、构建模型 三、模型精度检验 前言 最近又空闲下来,终于有时间把之前荒废的学习计划给重拾起来了!今天做的是MNIST手写数字识别项目。这可以说是深度学习的“Hello Wo…

    杭州白塔岭画室怎么样?和燕壹画室哪个好?

    杭州作为全国美术艺考集训的核心区域,汇聚了众多实力强劲的画室,其中白塔岭画室和燕壹画室备受美术生关注。对于怀揣艺术梦想的考生而言,选择一所契合自身需求的画室,对未来的艺术之路影响深远。接下来,我们将从多个维…

    AI与区块链:数据确权与模型共享的未来

    AI与区块链:数据确权与模型共享的未来 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 AI与区块链:数据确权与模型共享的未来摘要引言技术路线对比1. 数据确权:从中心化存储到分布…

    【T2I】Decouple-Then-Merge: Finetune Diffusion Models as Multi-Task Learning

    CODE: CVPR 2025 GitHub - MqLeet/DeMe: [CVPR2025] Official implementation of "Decouple-Then-Merge: Finetune Diffusion Models as Multi-Task Learning" Abstract 扩散模型是通过学习一系列模型来训练的,这些模型可以逆转噪声衰减的每一步。通常&…

    二分查找的边界艺术:LeetCode 34 题深度解析

    文章目录 一、问题引入:寻找区间的边界二、二分的核心:二段性三、左边界的查找逻辑(找第一个 ≥ target 的位置)四、右边界的查找逻辑(找最后一个 ≤ target 的位置)五、代码实现六、二分边界模板总结结语 …

    系统思考:短期利益与长期系统影响

    一个决策难题:一家公司接到了一个大订单,客户提出了10%的降价要求,而企业的产能还无法满足客户的需求。你会选择增加产能,接受这个订单,还是拒绝?从系统思考的角度来看,这个决策不仅仅是一个简单…

    【数据结构 -- B树】

    目录 一、前言二、B树示例定义查找数据插入数据删除数据 一、前言 前面我们已经学习了二叉搜索树和AVL树,它们的查找、插入、删除数据效率都很高,我们首先需要了解它们是怎么操作数据的 首先将所有数据一次性调到内存中,再在内存中进行处理…

    新手小白使用VMware创建虚拟机练习Linux

    新手小白想要练习linux,找不到合适的地方,可以先创建一个虚拟机,在自己创建的虚拟机里面进行练习,接下来我给大家接受一下创建虚拟机的步骤。 VMware选择创建新的虚拟机 选择自定义 硬件兼容性选择第一个,不同的版本&a…

    C++ Vector算法精讲与底层探秘:从经典例题到性能优化全解析

    前引:在C标准模板库(STL)中,vector作为动态数组的实现,既是算法题解的基石,也是性能优化的关键战场。其连续内存布局、动态扩容机制和丰富的成员函数,使其在面试高频题(如LeetCode、…

    【macbook】触控板手势

    在 MacBook 上,你可以使用「触控板手势」或快捷键来实现在多个窗口/应用间切换,以下是几种方式: ✅ 1. 三指或四指左右滑动:切换“全屏应用”或“桌面”空间 **操作方式:**三指或四指在触控板上左右滑动。**适用场景&…

    帝可得 - 策略管理

    一. 需求说明 策略管理主要涉及到二个功能模块,业务流程如下: 新增策略: 允许管理员定义新的策略,包括策略的具体内容和参数(如折扣率) 策略分配: 将策略分配给一个或多个售货机。 graph TDA[登录系统] A --> B…

    立志成为一名优秀测试开发工程师(第十一天)—Postman动态参数/变量、文件上传、断言策略、批量执行及CSV/JSON数据驱动测试

    目录 一、Postman接口关联与正则表达式应用 1.正则表达式解析 2.提取鉴权码。 二、Postman内置动态参数以及自定义动态参数 1.常见内置动态参数: 2.自定义动态参数: 3.“编辑”接口练习 三、图片上传 1.文件的上传 2.上传后内容的验证 四、po…

    学习路之PHP--easyswoole使用视图和模板

    学习路之PHP--easyswoole使用视图和模板 一、安装依赖插件二、 实现渲染引擎三、注册渲染引擎四、测试调用写的模板五、优化六、最后补充 一、安装依赖插件 composer require easyswoole/template:1.1.* composer require topthink/think-template相关版本: "…