工具知识 | Linux常用命令

news2024/12/23 9:17:07

参考

  • linw7的github
  • 《鸟哥的Linux私房菜》

  • 一.文件管理
    • 1.文件查找:find
    • 2.文件拷贝:cp
    • 3.打包解包:tar
  • 二.文本处理
    • 1.(显示行号)查看文件:nl
    • 2.文本查找:grep
    • 3.排序:sort
    • 4.转换:tr
    • 5.切分文本:cut
    • 6.拼接文本:paste
    • 7.统计:wc
    • 8.数据处理:sed
    • 9.数据处理:awk
  • 三.性能分析
    • 1.进程查询:ps
    • 2.进程监控:top
    • 3.打开文件查询:lsof
    • 4.内存使用量:free
    • 5.shell进程的资源限制:ulimit
  • 四.网络工具
    • 1.网卡配置:ifconfig
    • 2.查看当前网络连接:netstat
    • 3.查看路由表:route
    • 4.检查网络连通性:ping
    • 5.转发路径:traceroute
    • 6.网络Debug分析:nc
    • 7.命令行抓包:tcpdump
    • 8.域名解析工具:dig
    • 9.网络请求:curl
  • 五.开发及调试
    • 1.编辑器:vim
    • 2.编译器:gcc和g++
    • 3.调试工具:gdb
    • 4.查看依赖库:ldd
    • 5.二进制文件分析:objdump
    • 6.ELF文件格式分析:readelf
    • 7.跟踪进程中系统调用:strace
    • 8.跟踪进程栈:pstack
    • 9.进程内存映射:pmap
  • 六.其他
    • 1.终止进程:kill
    • 2.修改文件权限:chmod
    • 3.创建链接:ln
    • 4.显示文件尾:tail
    • 5.版本控制:git
    • 6.设置别名:alias

一.文件管理

1.文件查找:find

使用方法
find [查找目录] [查找条件]

查找目录:
    .:在当前目录及子目录下查找(默认)
    A:在目录A及A的子目录下查找
查找条件:
    -name:根据文件名查找
    -regex:使用正则表达式匹配
    -type:按类型查找(f:文件,d:目录,l:链接...)
    -atime:按访问时间查找(n:n天前的一天内,+n:n天前(不含n天本身),-n:n天内(不含n天))
    -mtime:按修改时间查找(n:n天前的一天内,+n:n天前(不含n天本身),-n:n天内(不含n天))
    -size:按大小查找(单位k,+nk:"比nk更大",-nk:"比nk更小")
    -perm:按权限查找(644:权限等于644的文件)
    -user/-nouser:用户名等于/用户名不等于
    -group/-nogroup:组名等于/组名不等于
示例
#1.在当前目录及子目录下查找后缀为cpp的文件
find . -name *.cpp

#2.使用正则表达式查找
find -regex ".*.cpp$"

2.文件拷贝:cp

使用方法
cp [选项] 源路径 目的路径

选项:
    -a:将所有属性一起复制(包括拥有者、时间等信息)
    -i:目标文件存在时,进行询问
    -r:递归复制

3.打包解包:tar

使用方法
tar [-j|-z] [cv] [-f 压缩包名] 目录
tar [-j|-z] [xv] [-f 解压包名] [-C 解压路径]

选项:
    -c/-x:打包/解包
    -j/-z:bzip2格式/gzip格式
    -v:显示过程

二.文本处理

1.(显示行号)查看文件:nl

行号计算不包括空行

2.文本查找:grep

使用方法
grep [选项] 模式串 文件
输出 | grep [选项] 模式串

选项
    -e:使用多个模式串
    -i:忽略大小写
    -n:打印行号
    -c:统计次数(一行算一次)
示例
#1.在test.c中搜索包含字符串”printf“或”count“的行
grep -e "printf" -e "count" test.c

3.排序:sort

使用方法
sort [选项] 文件
输出 | sort [选项]

选项
    -d:按字典序排序(默认)
    -n:按数字排序
    -k:"-k n"表示按各行第n列进行排序
    -r:反序

4.转换:tr

使用方法
#set1、set2为字符集,可以是单个字符,也可以是字符串
输出 | tr [选项] set1 set2

选项:
    -d:删除字符
    -s:字符压缩
示例
#1.删除字符':'
cat /etc/passwd | tr -d ':'

#2.将小写字母替换成大写字母
last | tr '[a-z]' 'A-Z'

#3.将'a'、'b'、'c'替换成'z'
cat test | tr “abc” 'z'

#4.将连续的'a'压缩成'b'(单个或连续出现的多个‘a’会压缩成一个‘b’)
cat test | tr -s 'a' 'b'

5.切分文本:cut

使用方法
cut [选项] 文件
输出 | cut [选项]

选项:
    -d:分隔符(-d ':' 以’:‘为分隔符)
    -f:选择域(-f 1,2 输出分隔后第1列和第2列)
    -c:字符范围(-c n-m 输出第n到m个字符。如果没有m,输出到末尾)
示例
#1.按’:‘分隔$PATH,输出第3个和第5个
echo $PATH | cut -d ':' -f 3,5

#2.输出export运行结果每行的第12-20个字符
export | cut -c 12-20

6.拼接文本:paste

使用方法
paste [选项] file1 file2

选项:
    -d:指定拼接时使用的分隔符(默认使用tab作为分隔符)

7.统计:wc

使用方法
wc [选项] 文件
输出 | wc [选项]

选项:
    -c:统计字符数
    -w:统计单词数
    -l:统计行数

8.数据处理:sed

sed常用于一整行的处理。如果有一个100万行的文件,要在第100行加某些文字,此时由于文件太大,不适合用vim处理。因此使用sed是个很好的选择

使用方法
sed [选项] '[动作]' 文件
输入 | sed [选项] '[动作]'

选项:
    -n:安静模式,只输出sed处理过的行(否则未处理行也会输出)
    -i:结果直接作用到文件(没指定时不会修改文件)
    -e:在命令行模式上输入动作
    -f:从文件中读取动作

动作:[n1[,n2]] function
function:
    a/i:在后插入/在前插入
    d:删除
    p:打印
    s:替换
示例
#1.插入
nl /etc/passwd | sed '2a drink tea' #在第2行后插入一行:"drink tea"
nl /etc/passwd | sed '2a aaa \
> bbb' #在第2行后插入两行:"aaa"和"bbb"

#2.删除
nl /etc/passwd | sed '2,5d' #删除2~5行
sed '/^$/d' ip #将ip文件中的空行删除

#3.打印2~5行(安静模式,不使用安静模式2~5行会打印2次)
nl /etc/passwd | sed -n '2,5p'

#4.替换
nl /etc/passwd | sed '2s/daemon/root/g' #将第二行的daemon替换成root
ifconfig | grep 'inet addr' | sed 's/^.*addr://g' #将所有开头的“inet addr:”删除

9.数据处理:awk

相比于sed常用于一整行的处理,awk则比较倾向于将一行分成数个“字段”来处理。因此,相当适合小型的数据处理

awk处理步骤

  1. 读入第一行,并将第一行的数据填入$0,$1,$2等变量当中
  2. 依据条件类型的限制,判断是否需要进行后面的动作
  3. 做完所有的动作与条件类型
  4. 若还有后续的“行”的数据,则重复1~3步,直到所有的数据都读完为止
使用方法
awk '条件类型1{动作1} 条件类型2{动作2} ...' filename
输出 | awk '条件类型1{动作1} 条件类型2{动作2} ...'

变量:
    $0:整行
    $1:按分隔符分隔后的第1列
    $2:按分隔符分隔后的第2列
    $k:按分隔符分隔后的第k列
    NF:每一行拥有的字段数
    NR:目前所处理的行数
    FS:目前的分隔字符(默认是空格或tab)
条件判断:><>=<===!=
命令分隔:使用';'或Enter
示例
#1.打印last -n 5结果中每行经过分隔符(默认情况下为空格或tab)分隔后的第1列和第3列
last -n 5 | awk '{print $1 "\t" $3}'

#2.以':'作为分隔符,打印第3列小于10的所有行的第1列和第3列
cat /etc/passwd | awk '{FS=":"} $3<10{print $1 "\t" $3}'      #(第一行不会处理)
cat /etc/passwd | awk 'BEGIN{FS=":"} $3<10{print $1 "\t" $3}' #(第一行会处理)

#3.假设test文件由3列数字组成,以空格分隔。该命令会计算每行的和然后打印
awk '{total=$1+$2+$3;printf "%10d %10d %10d %10.2f\n",$1,$2,$3,total}' test

注意上面的示例2,awk首先是读取一行,分隔后的数据填入$0,$1,$2等变量中才开始进行条件判断和执行动作。因此第一条命令在按空格或tab分隔后才将分隔符换成’:',所以第一行显示结果不对

三.性能分析

1.进程查询:ps

man ps手册非常庞大,不是很好查阅,因此主要记住几个命令

示例
#1.列出仅与自身环境有关的进程,最上层的父进程是允许该ps命令的bash而没有扩展到init进程中去
ps -l

#2.列出系统所有进程的信息
ps aux
ps -ef    #aux会截断COMMAND列,-ef不会。aux是BSD风格,-ef是System V风格
ps axjf   #以"进程树"的方式显示所有进程
ps -lA    #输出格式同ps -l

  • F:进程标志,说明进程的权限
    • 4:root权限
    • 1:仅能fork而不能exec
    • 0:既非4也非1
  • S:进程的状态
    • R(running):正在运行
    • S(Sleep):可被唤醒的睡眠
    • D:不可被唤醒的睡眠(通常可能在等待I/O)
    • T:停止,可能是在后台暂停
    • Z(Zombie):僵尸进程
  • C:CPU使用率
  • PRI/NI:Priority/Nice的缩写,CPU优先级(越小越高)
  • ADDR/SZ/WCHAN:内存相关,ADDR指出进程在内存的哪个部分,running进程一般显示’-‘。SZ为进程使用的内存。WCHAN表示进程当前是否运行中’-',当进程睡眠时,指出进程等待的事件
  • TTY:进程运行的终端机
  • TIME:进程用掉的CPU时间

  • USER:进程所属用户
  • %CPU/%MEM:进程消耗的CPU百分比和内存百分比
  • VSZ:进程用掉的虚拟内存(KB)
  • RSS:进程占用的固定内存(KB)
  • TTY:进程运行的终端机,与终端机无关则显示’?'。tty1~tty6是本机的登陆者程序,pts/0等表示由网络连接进主机的进程
  • STAT:进程目前的状态,与ps -l结果中的S等同
  • START:进程启动的时间
  • TIME:进程实际使用的CPU运行时间

2.进程监控:top

使用方法
top [选项]

选项:
    -d:跟秒数指定更新间隔
    -n:与-b搭配,指定需要进行几次top输出,重定向时常用
    -p:指定PID,监控特定进程

top模式下的命令

  • ?:显示可用的命令
  • P:以CPU使用情况排序
  • M:以内存使用情况排序
  • N:以PID排序
  • q:退出
  • 1:多核情况下切换CPU

%Cpu(s)后面的“wa”表示I/O wait,过高说明长时间等待I/O,I/O存在瓶颈

3.打开文件查询:lsof

使用方法
lsof [选项]

选项:
    -i:-i:端口号查看端口被占用的情况
    -u:后跟用户名查看具体用户打开的文件
    -p:后跟PID查看指定进程打开的文件
    +d:后跟目录查看指定目录下被进程打开的文件,"+D"递归

4.内存使用量:free

使用方法
free [选项]

选项:
    -b|-k|-m|-g:单位
    -t:列出物理内存与swap的汇总情况    

  • buffers:主要缓存dentry和inode等元数据
  • cached:主要缓存文件内容,即page cache
  • - buffers/cache:实际使用的内存。used-buffers-cached
  • + buffers/cache:可用内存。free+buffers+cached(在内存紧张时,buffers和cached可以回收)

详细结果说明

5.shell进程的资源限制:ulimit

使用方法
ulimit [选项]       #查看
ulimit [选项] 新值  #修改

选项:
    -a:列出shell进程的所有资源限制情况(-a命令会列出查看某一资源限制的选项参数)
    ...

使用ulimit修改资源限制只会对当前终端环境有效,如果想永久生效,可以修改文件/etc/security/limits.conf,该文件的内容如下;

# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain>        <type>  <item>  <value>
#
#Where:
#<domain> can be:
#        - a user name
#        - a group name, with @group syntax
#        - the wildcard *, for default entry
#        - the wildcard %, can be also used with %group syntax,
#                 for maxlogin limit
#        - NOTE: group and wildcard limits are not applied to root.
#          To apply a limit to the root user, <domain> must be
#          the literal username root.
#
#<type> can have the two values:
#        - "soft" for enforcing the soft limits
#        - "hard" for enforcing hard limits
#
#<item> can be one of the following:
#        - core - limits the core file size (KB)
#        - data - max data size (KB)
#        - fsize - maximum filesize (KB)
#        - memlock - max locked-in-memory address space (KB)
#        - nofile - max number of open files
#        - rss - max resident set size (KB)
#        - stack - max stack size (KB)
#        - cpu - max CPU time (MIN)
#        - nproc - max number of processes
#        - as - address space limit (KB)
#        - maxlogins - max number of logins for this user
#        - maxsyslogins - max number of logins on the system
#        - priority - the priority to run user process with
#        - locks - max number of file locks the user can hold
#        - sigpending - max number of pending signals
#        - msgqueue - max memory used by POSIX message queues (bytes)
#        - nice - max nice priority allowed to raise to values: [-20, 19]
#        - rtprio - max realtime priority
#        - chroot - change root to directory (Debian-specific)
#
#<domain>      <type>  <item>         <value>
#

#*               soft    core            0
#root            hard    core            100000
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#ftp             -       chroot          /ftp
#@student        -       maxlogins       4

# End of file
示例
root@068ca8da6d06:/# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7863
max locked memory       (kbytes, -l) 82000
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1048576
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

四.网络工具

1.网卡配置:ifconfig

2.查看当前网络连接:netstat

netstat [选项]

选项:
    -a:将所有的连接、监听、Socket数据都列出来(如,默认情况下,不会列出监听状态的连接)
    -t:列出tcp连接
    -u:列出udp连接
    -n:将连接的进程服务名称以端口号显示(如下图中Local Address会换成10.0.2.15:22)
    -l:列出处于监听状态的连接
    -p:添加一列,显示网络服务进程的PID(需要root权限)
    -i:显示网络接口列表,可以配合ifconfig一起分析
    -s:打印网络统计数据,包括某个协议下的收发包数量

  • Active Internet connections(w/o servers):网络相关的连接
    • Recv-Q:接收队列(已接收还未递交给应用)
    • Send-Q:发送队列(接收方未确认的数据)
    • Local Address:本地IP(主机):端口(服务名)
    • Foreign Address:远端IP:端口
    • Recv-Q和Send-Q通常应该为0,如果长时间不为0可能存在问题

  • Active UNIX domain sockets(w/o servers):本地相关的套接字
    • RefCnt:连接到此socket的进程数
    • Flags:连接标识
    • Type:socket访问的类型
    • Path:连接到此socket的相关程序的路径

netstat的10个基本用法

3.查看路由表:route

4.检查网络连通性:ping

5.转发路径:traceroute

6.网络Debug分析:nc

7.命令行抓包:tcpdump

使用方法
sudo tcpdump [选项] ...

选项:
    -D/-i:查看/指定网卡
示例
#抓取本地9877号端口的TCP数据包
sudo tcpdump -i lo tcp port 9877

下图为tcp回射服务器,客户端分别键入"hello"和“world”时,使用tcpdump抓取到的数据包

8.域名解析工具:dig

9.网络请求:curl

五.开发及调试

1.编辑器:vim

2.编译器:gcc和g++

C程序的编译过程

使用方法
gcc/g++ [选项] 源文件

选项:
    -E:让编译器在预处理之后停止,不进行后续编译过程,得到.i文件
    -S:让编译器在编译之后停止 ,不进行后续过程,得到.s文件
    -c:生成机器码即二进制.o文件
    -o:指定目标文件名
    -g:在编译的时候生成调试信息
    -Wall:生成所有警告信息
    -I 目录:指定头文件的查找目录
    生成动态链接库:
        1. gcc/g++ -c -fPIC 源文件 -o 目标文件名
        2. gcc -shared 目标文件名 -o 动态链接库名.so
    生成静态链接库:
        1. gcc/g++ -c 源文件 -o 目标文件名
        2. ar -crv 静态链接库名.a 目标文件名
    -l库名 -L 目录:引入链接库,-L指定查找该库的目录。如-lm表示引入libm.so

3.调试工具:gdb

使用方法
#第一步:得到可执行文件
gcc/g++ -o 可执行文件 -g 源文件

#第二步:启动gdb
gdb #启动gdb

#第三步:执行gdb命令进行调试
(gdb) gdb命令

gdb命令:
    file 可执行文件:导入需要调试的文件
    r:运行程序
    q:退出gdb
    b:设置断点
        b 行号
        b 函数名称
        b *函数名
        b *代码地址
        b 编号
    c:继续执行,直到下一断点或程序结束
    s:执行一行代码,如果此行代码有函数调用则进入函数
    n:执行一行代码,如果此行代码有函数调用,不进入函数,直接执行函数
    i(info) 子命令:查看某些信息(只输入info或i可以查看有哪些子命令)
        info thread:查看进程的所有线程,会显示每个线程的序号(1~n)
    thread 线程序号:切换到相应的线程(线程序号可以由info thread得到)
    f(frame) 函数栈帧号:切换到相应的函数栈帧(函数栈帧号可以由where等命令得到)
    list:查看源码
        list 行号:查看指定行号附近的源码
        list 函数:查看指定函数附近的源码
        list 文件:行号:查看指定文件中指定行附近的代码
    where:查看当前位置
    p(print) /格式 表达式
        格式:
            x:按十六进制格式显示变量
            d:按十进制格式显示变量
            u:按十六进制格式显示无符号整形
            o:按八进制格式显示变量
            t:按二进制格式显示变量
            a:按十六进制格式显示变量
            c:按字符格式显示变量
            f:按浮点数格式显示变量
        表达式中可用的操作符:
            @:一个和数组有关的操作符,左边是起始地址,右边是长度(p *arr@3)
            :::指定一个在文件或是函数中的变量(p 'f2.c'::x)
            {<type>}<addr>:一个指向内存<addr>的类型为type的一个对象
    x(examine) <n/f/u> <addr>:查看内存
        n:正整数,表示需要显示的内存单元个数
        f:显示的格式(格式字母同上面的print)
        u:每个单元的字节数
            b:1字节
            h:2字节
            w:4字节(默认)
            g:8字节

4.查看依赖库:ldd

5.二进制文件分析:objdump

6.ELF文件格式分析:readelf

7.跟踪进程中系统调用:strace

8.跟踪进程栈:pstack

9.进程内存映射:pmap

六.其他

1.终止进程:kill

2.修改文件权限:chmod

  • w权限不具有删除文件的能力
  • 目录的x权限表示能否进入目录
使用方法
chmod [选项] [u|g|o|a][+|-][r|w|x] 文件或目录
chmod [选项] 权限的数字表示 文件或目录

选项:
    -R:递归式的修改

3.创建链接:ln

4.显示文件尾:tail

5.版本控制:git

6.设置别名:alias

原文链接:https://github.com/arkingc/note/blob/master/Linux/Linux%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4.md

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

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

相关文章

Web 基础——Apache

Event Worker 的升级版、把服务器进程和连接进行分析&#xff0c;基于异步 I/O 模型。 请求过来后进程并不处理请求&#xff0c;而是直接交由其它机制来处理&#xff0c;通过 epoll 机制来通知请求是否完成&#xff1b; 在这个过程中&#xff0c;进程本身一直处于空闲状态&am…

【目标检测数据集】铁轨表面缺损检测数据集4789张VOC+YOLO格式

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;4789 标注数量(xml文件个数)&#xff1a;4789 标注数量(txt文件个数)&#xff1a;4789 标注…

只有IP地址没有域名怎么实现HTTPS访问?

&#x1f510; 实现IP地址HTTPS访问 &#x1f310; 确认公网IP地址 公网IP&#xff1a;确保你拥有一个公网IP地址&#xff0c;或者内网映射公网&#xff0c;这是实现HTTPS访问的前提。 &#x1f4dd; 选择证书颁发机构&#xff08;CA&#xff09; 选择CA&#xff1a;选择一个…

【Qt】Qt音频

Qt 音频 在 Qt 中&#xff0c;⾳频主要是通过 QSound 类来实现。但是需要注意的是 QSound 类只⽀持播放 wav 格式的⾳频⽂件。也就是说如果想要添加⾳频效果&#xff0c;那么⾸先需要将 ⾮wav格式 的⾳频⽂件转换为 wav 格式。 【注意】使⽤ QSound 类时&#xff0c;需要添加模…

【C#Mutex】 initiallyOwned错误引起的缺陷

临界区只能对同一个进程的不同线程同步&#xff0c;互斥量可以跨进程同步。典型应用场景&#xff1a;两个exe会操作同一个注册表项。 错误代码 封装类 public class CMutexHelp : IDisposable {public CMutexHelp(){s_mutex.WaitOne();} private static Mutex s_mutex …

深度学习-目标检测(二)Fast R-CNN

一&#xff1a;Fast R-CNN Fast R-CNN 是一篇由Ross Girshick 在 2015 年发表的论文&#xff0c;题为 “Fast R-CNN”。这篇论文旨在解决目标检测领域中的一些问题&#xff0c;特别是传统目标检测方法中存在的速度和准确性之间的矛盾。 论文摘要&#xff1a;本文提出了一种基于…

关于tomcat如何设置自启动的设置

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、Windows 下的设置服务自启2.1 服务的注册2.2 开启自启 三、MacOS下设置服务自启…

ROS CDK魔法书:建立你的游戏王国(Python篇)

引言 在虚拟游戏的世界里&#xff0c;数字化的乐趣如同流动的音符&#xff0c;谱写着无数玩家的共同回忆。而在这片充满创意与冒险的乐园中&#xff0c;您的使命就是将独特的游戏体验与丰富的技术知识相结合&#xff0c;打造出令人难以忘怀的作品。当面对如何实现这一宏伟蓝图…

【数据结构】4——树和森林

数据结构——4树和森林 笔记 文章目录 数据结构——4树和森林树的存储结构双亲表示法孩子链表孩子兄弟表示法&#xff08;二叉树表示法、二叉链表表示法&#xff09; 树与二叉树转换森林和二叉树转化森林转二叉树二叉树转森林 树和森林的遍历树先根后根层次 森林 树的存储结构…

使用nvm工具实现多个nodejs版本的维护和切换

NodeJS的升级比较快&#xff0c;在开发中要使用最新的版本&#xff0c;必须经常升级&#xff0c;但对于一些老项目可能又要使用低版本的NodeJS&#xff0c;虽然可以在系统中同时安装多个NodeJS的版本&#xff0c;然后通过修改环境变量的方式实现切换&#xff0c;但这种方法太麻…

断点回归模型

断点回归&#xff08;Regression Discontinuity Design, RDD&#xff09;是一种准实验设计方法&#xff0c;用于评估政策或其他干预措施的效果。这种方法利用了一个清晰的阈值或“断点”&#xff0c;在这个阈值上&#xff0c;处理状态&#xff08;例如是否接受某种干预&#xf…

浅谈为什么数据库要用B树

朋友,你有没有遇到过这样的情况?明明数据库里存的东西还不算太多,可一查数据,页面加载慢得像蜗牛?别急,问题可能出在你的数据库索引上。而今天我要跟你聊的,就是在数据库里被广泛应用的B树(B-Trees),它可是提升数据库性能的秘密武器。听起来有点深奥?别担心,我会用…

C程序设计——再说说函数参数的值传递

上一篇的最后&#xff0c;我强调了C语言里&#xff0c;所有函数参数的传递&#xff0c;都是值传递&#xff0c;即形参值改变&#xff0c;不影响实参的值。 指针作为函数参数 我们知道&#xff0c;指针也是C语言的一个类型&#xff0c;所以指针&#xff0c;也可以作为函数参数…

【TPAMI 2024】一种用于混合事件-帧摄像机的异步线性滤波器架构

题目&#xff1a;An Asynchronous Linear Filter Architecture for Hybrid Event-Frame Cameras 一种用于混合事件-帧摄像机的异步线性滤波器架构 作者&#xff1a;Ziwei Wang; Yonhon Ng; Cedric Scheerlinck; Robert Mahony 摘要 事件相机非常适合捕捉高动态范围(HDR)视觉…

运维保障高效化的智慧能源开源了

一、简介 AI视频监控平台, 是一款功能强大且简单易用的实时算法视频监控系统。愿景在最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;减少企业级应用约 95%的开发成本&#xff0c;在强大视频算…

【python因果推断库13】使用 PyMC 模型进行回归断点分析

目录 线性模型、主效应模型和交互作用模型 使用bandwidth 使用基样条 import causalpy as cp %load_ext autoreload %autoreload 2 %config InlineBackend.figure_format retina seed 42 df cp.load_data("rd") 线性模型、主效应模型和交互作用模型 PyMC 采样…

教学辅助微信小程序|基于SSM+vue的高校教学微信小程序系统(源码+数据库+文档)

高校教学 目录 基于SSM教学辅助微信小程序 一、前言 二、系统设计 三、系统功能设计 小程序端 后台功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道师&#x…

【Python】01.Python 介绍及其环境配置

一、计算机的基础概念 1.1 什么是计算机 所谓计算机&#xff0c;不光能进行算术运算&#xff0c;还能进行逻辑判断、数据存储、网络通信等等功能&#xff0c;以至于可以自动的完成非常复杂的工作。以下这些都可以称为 “计算机” &#xff1a; 1.2 冯诺依曼体系结构 而一台…

媒体服务器软件BUG说明及改进方案

媒体服务器软件BUG说明及改进方案 一、BUG描述二、问题分析三、改进方案四、实施计划五、预期效果六、总结一、BUG描述 在当前版本的媒体服务器中,存在一个关于静音媒体流处理的问题。具体表现为:当主叫连续发送静音帧到媒体服务器时,媒体服务器并未将这些静音帧转发给被叫…

闯关leetcode——13. Roman to Integer

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/roman-to-integer/description/ 内容 Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. SymbolValueI1V5X10L50C100D500M1000 For example, 2 is written …