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

Linux基础命令和工具使用详解

Linux基础命令和工具使用详解

  • 一、grep搜索字符
  • 二、find查找文件
  • 三、ls 显示文件
  • 四、wc命令计算字数
  • 五、uptime机器启动时间+负载
  • 六、ulimit用户资源
  • 七、curl http
  • 八、scp远程拷贝
  • 九、dos2unix和unix2dos
  • 十、sed 行处理
    • 10.1、简单模式
    • 10.2、替换模式
  • 十一、awk 列处理
    • 11.1、打印某几列
    • 11.3、判断语句
    • 11.4、BEGIN 定义表头
    • 11.5、END 添加结尾符
    • 11.6、数据计算
    • 11.7、使用示例:网络状态统计

一、grep搜索字符

grep 命令用于在文件中执行关键词搜索,并显示匹配的效果。部分常用选项 :

  • -c 仅显示找到的行数
  • -i 忽略大小写
  • -n 显示行号
  • -v 反向选择 – 仅列出没有关键词的行。v 是 invert 的缩写。
  • -r 递归搜索文件目录
  • -C n 打印匹配行的前后n行

(1)在指定文件查找,查找login关键字:

grep battery ./shell/battery.sh

(2)在多个文件搜索的时候,可以使用通配符。比如在以 sh结尾的文件中,搜索包含battery的行:

grep battery *.sh

(3)递归搜索目录下所有文件, 搜索 msg_server目录下所有文件,打印出包含battery的行:

grep battery -r msg_server

(4)反向查找,查找文件中,不包含battery的行:

grep -v battery ImUser.cpp

(5)找出文件中包含 battery 的行,并打印出行号:

grep -n battery ./shell/battery.sh

(6)找出文件中包含 login的行,打印出行号,并显示前后3行。

grep login -C 3 -n test.cpp

(7)找出文件中包含 login的行,打印出行号,并显示前后3行,并忽略大小写:

grep login -n -C 3 -i test.cpp

二、find查找文件

通过文件名查找文件的所在位置,文件名查找支持模糊匹配。

find  [指定查找目录]  [查找规则]  [查找完后执行的action] 

常用的操作:

find . -name FILE_NAME
find . -iname FILE_NAME #忽略文件名称大小写
find /etc -maxdepth 1 -name passwd     ##查找/etc/下名称中带有passwd的文件,查找一层
find /mnt -size 20K       ##查找/mnt文件大小近似20k的文件
find /mnt -size +20K      ##查找/mnt文件大小大于20k的文件
find /mnt -size -20K      ##查找/mnt文件大小小于20k的文件
find /etc -maxdepth 2 -mindepth 2 -name .conf  ##查找/etc/下名称中带有.conf的文件,且只查找第二层
find /mnt -type d         ##按type查找/mnt中目录
find /mnt -type f         ##按type查找/mnt中文件
find /mnt -cmin 10        ##查找/mnt中十分钟左右修改的
find /mnt -cmin +10       ##查找/mnt中十分钟以上修改的
find /mnt -cmin -10       ##查找/mnt中十分钟以内修改的
find /mnt -ctime 10       ##查找/mnt中十天左右修改的
find /mnt -ctime +10      ##查找/mnt中十天以上修改的
find /mnt -ctime -10      ##查找/mnt中十天以内修改的

三、ls 显示文件

参数 作用

  • -t 查看最新修改时间
  • -l 每行显示一个条目
  • -h 可以结合显示文件的GB,MB等(human);
  • -R 递归显示
  • -n 显示组id和gid

(1)按最新修改的时间排序,新修改的在前面显示。

ls -lt

(2)按最新修改的时间排序,新修改的在前面显示,并显示子目录的文件信息 。

ls -ltR

(3)以单位显示文件大小。

ls -lh 

四、wc命令计算字数

wc命令用于计算字数。 利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。

语法:

wc [-clw][--help][--version][文件...]

参数:

  • -c或–bytes或–chars:只显示Bytes数。
  • -l或–lines:只显示行数。
  • -w或–words:只显示字数。
  • –help: 在线帮助。
  • –version:显示版本信息。

示例:

$ wc ./shell/battery.sh 125  333 3157 ./shell/battery.sh

行数为125、单词数333、字节数3157。

五、uptime机器启动时间+负载

查看机器的启动时间、登录用户、平均负载等情况,通常用于在线上应急或者技术攻关中,确定操作系统的重启时间。

示例:

$ uptime 15:29:42 up 9 days,  5:58,  1 user,  load average: 0.00, 0.00, 0.00

从上面的输出可以看到如下信息:

  • 当前时间:15:29:42
  • 系统已经运行的时间:9天5小时58分钟。
  • 前在线用户:1个用户,是总连接数量,不是不同用户数量(开一个终端连接就算一个用户)。
  • 系统平均负载:0.00 , 0.00, 0.00,为最近1分钟、5分钟、15分钟的系统负载情况。

系统的平均负载是指在特定的时间间隔内队列中运行的平均进程数。如果一个进程满足以条件,它就会位于运行队列中。

  • 它没有在等待I/O操作的结果。
  • 它没有主动进入等待状态(也就是没有调用’wait’相关的系统API ) 。
  • 没有被停止(例如:等待终止)。

如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能还算可以支持。

如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。

如果你的linux主机是1个双核CPU的话,当Load Average 为6的时候说明机器已经被充分使用了。

负载说明(针对单核情况,不是单核时则乘以核数):

  • load<1:没有等待
  • load==1:系统已无额外的资源跑更多的进程了
  • load>1:进程都堵着等待资源

注意:

  • load < 0.7时:系统很闲,要考虑多部署一些服务
  • 0.7 < load < 1时:系统状态不错
  • load == 1时:系统马上要处理不多来了,赶紧找一下原因
  • load > 5时:系统已经非常繁忙了

不同load值说明的问题:

  • 1分钟 load >5,5分钟 load < 3,15分钟 load <1 ,短期内繁忙,中长期空闲,初步判断是一个抖动或者是拥塞前兆 。
  • 1分钟 load >5,5分钟 load >3,15分钟 load <1 ,短期内繁忙,中期内紧张,很可能是一个拥塞的开始。
  • 1分钟 load >5,5分钟 load >5,15分钟 load >5 ,短中长期都繁忙,系统正在拥塞 。
  • 1分钟 load <1,5分钟Load >3,15分钟 load >5 ,短期内空闲,中长期繁忙,不用紧张,系统拥塞正在好转。

补充:

  • 查看cpu信息:cat /proc/cpuinfo 。
  • 直接获取cpu核数:grep ‘model name’ /proc/cpuinfo | wc -l 。

六、ulimit用户资源

Linux系统对每个登录的用户都限制其最大进程数和打开的最大文件句柄数。为了提高性能,可以根据硬件资源的具体情况设置各个用户的最大进程数和打开的最大文件句柄数。

(1)可以用ulimit -a来显示当前的各种系统对用户使用资源的限制:

$ 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) 31574
max locked memory       (kbytes, -l) 64
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) 31574
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

(2)设置用户的最大进程数:

ulimit -u 1024 

(3)设置用户可以打开的最大文件句柄数:

ulimit -n 65530 

七、curl http

由于当前的线上服务较多地使用了RESTful风格的API,所以集成测试就需要进行HTTP调用,查看返回的结果是否符合预期,curl命令当然是首选的测试方法。

使用方式:

curl -i "http://www.sina.com" # 打印请求响应头信息
curl -I "http://www.sina.com" # 仅返回http头
curl -v "http://www.sina.com" # 打印更多的调试信息
curl -verbose "http://www.sina.com" # 打印更多的调试信息
curl -d 'abc=def' "http://www.sina.com" # 使用post方法提交http请求
curl -sw '%{http_code}' "http://www.sina.com" # 打印http响应码

八、scp远程拷贝

secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

scp命令是Linux系统中功能强大的文件传输命令,可以实现从本地到远程,以及从远程到本地的双向文件传输,用起来非常方便,常用来在线上定位问题时将线上的一些文件下载到本地进行详查,或者将本地的修改上传到服务器上。

语法:

scp [option] username@IP:filepath savepath

前提:

sudo apt-get install openssh-server

使用方式:

# 下载192.168.11.59的文件
scp fly@192.168.11.59:~/workspace/battery.sh .
# 上传文件到122.152.222.180
scp mi9.aac fly@192.168.11.59:~/workspace/
# 下载test整个目录到本地
scp -r fly@192.168.11.59:~/workspace/ .
# 上传本地test整个目录到192.168.11.59
scp -r test fly@192.168.11.59:~/workspace/

九、dos2unix和unix2dos

用于转换Windows和UNIX的换行符,通常在Windows系统开发的脚本和配置,UNIX系统下都需要转换。

使用方式:

dos2unix test.txt 
unix2dos test.txt 
#转换整个目录 
find . -type f -exec dos2unix {} \; 
find ./ -type f # 此命令是显示当前目录下所有的文件

十、sed 行处理

命令格式1:

sed 's/原字符串/新字符串/' 文件 

命令格式2:

sed 's/原字符串/新字符串/g' 文件 

这两种命令格式的区别在于是否有个“g”。没有“g”表示只替换第一个匹配到的字符串,有“g”表示替换所有能匹配到的字符串,“g”可以认为是“global”(全局的)的缩写,没有“全局的”结尾就不要替换全部。

sed命令是用来批量修改文本内容的,比如批量替换配置中的某个ip。

sed命令在处理时,会先读取一行,把当前处理的行存储在临时缓冲区中,处理完缓冲区中的内容后,打印到屏幕上。然后再读入下一行,执行下一个循环。不断的重复,直到文件末尾。

10.1、简单模式

一个简单的sed命令包含三个主要部分: 参数 、 范围 、 操作 。要操作的文件,可以直接挂在命令行的最后。

sed -n '2,5 p' filename.txt
# -n是参数
# 2,5 是范围
# p 是操作
# filename.txt是文件

(1)参数 :

-n 这个参数是 --quiet 或者 --silent 的意思。表明忽略执行过程的输出,只输出我们的结果即可。
还有另外一个参数 : -i 。使用此参数后,所有改动将在原文件上执行。你的输出将覆盖原文件。非常危险,一定要注意。
(2)范围:

2,5 表示找到文件中,2,3,4,5行的内容。

这个范围的指定很有灵性,比如:

5 选择第5行。2,5 选择2到5行,共4行。1~ 2 选择奇数行,2~2 选择偶数行。

范围的选择还可以使用正则匹配。比如:

/void/,+3 选择出现void字样的行,以及后面的三行。2^void/,/mem/选择以void开头的行,和出现mem字样行之间的数据。

例子:

sed -n '5p' sed1.cpp 
sed -n '2,5 p' sed1.cpp 
sed -n '1~2 p' sed1.cpp 
sed -n '2~2 p' sed1.cpp 
sed -n '2,+3p' sed1.cpp 
sed -n '2,$ p' sed1.cpp 
sed -n '/void/,+3 p' sed1.cpp 
sed -n '/^void/,/CLIENT_TYPE_FLAG_BOTH/p' sed1.cpp 
sed -n '/^BroadcastPdu/,/CLIENT_TYPE_FLAG_BOTH/p' sed1.cpp 
sed -n '/^void CImUserManager::BroadcastPdu/,/CLIENT_TYPE_FLAG_BOTH/p' sed1.cpp

(3)操作 :

最常用的操作就是 p ,意思就是打印。比如,以下两个命令就是等同的:

cat file 
sed -n 'p' file

除了打印,还有以下操作:

  • p 对匹配内容进行打印。
  • d 对匹配内容进行删除。这个时候就要去掉 -n 参数了,思考为什么?
  • w 将匹配内容写入到其他地方。
  • a , i , c 等操作虽基本但使用少,不做介绍。
sed -n '2,5 p' sed2.cpp 
sed '2,5 d' sed2.cpp 
sed -n '2,5 w output.txt' sed2.cpp

10.2、替换模式

sed还有一个强大的替换模式,意思就是查找替换其中的某些值,并输出结果。

使用替换模式很少使用 -n 参数。

sed '/^sys/S/a/b/g' filename

替换模式的参数有点多,但第一部分和第五部分都是可以省略的。替换后会将整个文本输出出来。前半部分用来匹配一些范围,而后半部分执行替换的动作。

(1)范围 :

这个范围和上面的范围语法类似。比如:

/sys/,+3 选择出现sys字样的行,以及后面的三行。/^sys/,/mem/ 选择以sys开头的行,和出现mem字样行之间的数据。

示例:

sed -n '/void/,+3 s/void/int/g' sed2.cpp 
sed '/^void/,/CLIENT_TYPE_FLAG_BOTH/s/ImUser/User/g' sed2.cpp

(2)命令 :

这里的命令是指s。也就是substitute的意思。 查找部分会找到要被替换的字符串。这部分可以接受纯粹的字符串,也可以接受正则表达式。比如:

a 查找范围行中的字符串 a。[a,b,c] 从范围行里查找字符串a或者b或者c。

示例:

sed 's/a/b/g' file 
sed 's/[a,b,c]/<&>/g' file 

(3)替换 :

将替换查找匹配部分找到的内容。 可惜的是,这部分不能使用正则。常用的就是精确替换。比如把a替换成b。

但也有高级功能。和java或者python的正则api类似,sed的替换同样有 Matched Pattern 的含义,同样可以得到Group,不深究。常用的替位符,就是 &,当它用在替换字符串中的时候,代表的是原始的查找匹配数据。

[&] 表明将查找到的数据使用[]包围起来。“&” 表明将查找的数据使用””包围起来。

下面这条命令,将会把文件中的每一行,使用引号包围起来。

sed 's/.*/"&"/' file 

(4)flag 参数 :

这些参数可以单个使用,也可以使用多个,仅介绍最常用的。

  • g 默认只匹配行中第一次出现的内容,加上g,就可以全文替换了。常用。
  • p 当使用了 -n 参数, p 将仅输出匹配行内容。
  • w 和上面的w模式类似,但是它仅仅输出有变换的行。
  • i 这个参数比较重要,表示忽略大小写。e 表示将输出的每一行,执行一个命令。不建议使用,可以使用xargs配合 完成这种功能。

看两个命令的语法:

sed -n 's/a/b/gipw output.txt' file 
sed 's/^/ls -la/e' file

十一、awk 列处理

awk同sed命令类似,只不过sed擅长取行,awk命令擅长取列。 ​

原理:一般是遍历一个文件中的每一行,然后分别对文件的每一行进行处理

用法:

awk [可选的命令行选项] 'BEGIN{命令 } pattern{ 命令 } END{ 命令 }'  文件名

在这里插入图片描述

11.1、打印某几列

比如:

$ echo 'I do that' | awk '{print $3 $2 $1}'
thatdoI

将字符串 I do that 通过管道传递给awk命令,相当于awk处理一个文件,该文件的内容就是I do that,默认通过空格作为分隔符(不管列之间有多少个空格都将当作一个空格处理) I do that就分割成三列了。假如分割符号为.,可以这样用:

$ echo '192.168.1.1' | awk -F "." '{print $2}'
168

11.2、条件过滤
awk的用法是这样的:

awk [可选的命令行选项] 'BEGIN{命令 } pattern{ 命令 } END{ 命令 }'  文件名

那么pattern部分怎么用呢?示例如下:

$ cat score.txt
tom 60 60 60
kitty 90 95 87
jack 72 84 99
$ awk '$2>=90{print $0}' score.txt
kitty 90 95 87

$2>=90 表示如果当前行的第2列的值大于90则处理当前行,否则不处理。说白了pattern部分是用来从文件中筛选出需要处理的行进行处理的,这部分是空的代表全部处理。pattern部分可以是任何条件表达式的判断结果,例如>,<,==,>=,<=,!=同时还可以使用+,-,*,/运算与条件表达式相结合的复合表达式,逻辑 &&,||,!同样也可以使用进来。另外pattern部分还可以使用 /正则/ 选择需要处理的行。

11.3、判断语句

判断语句是写在pattern{ 命令 }命令中的,他具备条件过滤一样的作用,同时他也可以让输出更丰富。

$ awk '{if($2>=90 )print $0}' score.txt
kitty 90 95 87
$ awk '{if($2>=90 )print $1,"优秀"; else print $1,"良好"}' score.txt
tom 良好
kitty 优秀
jack 良好
$ awk '{if($2>=90 )print $0,"优秀"; else print $1,"良好"}' score.txt
tom 良好
kitty 90 95 87 优秀
jack 良好

11.4、BEGIN 定义表头

awk [可选的命令行选项] 'BEGIN{命令 } pattern{ 命令 } END{ 命令 }'  文件名

示例:

$ awk 'BEGIN{print "姓名 语文 数学 英语"}{printf "%-8s%-5d%-5d%-5d\n",$1,$2,$3,$4}' score.txt
姓名 语文数学英语
tom 60 60 60
kitty 90 95 87
jack 72 84 99

要注意,例子中为了输出格式好看,做了左对齐的操作(%-8s左对齐,宽8位),printf用法和c++类似。不仅可以用来定义表头,还可以做一些变量初始化的工作,例如:

$ awk 'BEGIN{OFMT="%.2f";print 1.2567,12E-2}'
1.26 0.12

这里OFMT是个内置变量,初始化数字输出格式,保留小数点后两位。

11.5、END 添加结尾符

和BEGIN用法类似

$ echo ok | awk '{print $1}END{print "end"}'
ok
end

11.6、数据计算

$ awk 'BEGIN{print "姓名 语文 数学 英语 总成绩"; \
sum1=0;sum2=0;sum3=0;sumall=0} \
{printf "%5s%5d%5d%5d%5d\n",$1,$2,$3,$4,$2+$3+$4;\
sum1+=$2;sum2+=$3;sum3+=$4;sumall+=$2+$3+$4}\
END{printf "%5s%5d%5d%5d%5d\n","总成绩",sum1,sum2,sum3,sumall}'\score.txt
姓名 语文 数学 英语 总成绩tom 60 60 60 180
kitty 90 95 87 272jack 72 84 99 255
总成绩 222 239 246 707

因为命令太长,末尾用\符号换行。

  • BEGIN体里输出表头,并给四个变量初始化0。
  • pattern体里输出每一行,并累加运算。
  • END体里输出总统计结果 当然了,一个正常人在用linux命令的时候是不会输入那么多格式化符号来对齐的,所以新命令又来了 column -t。

11.7、使用示例:网络状态统计

采用awk统计netstat命令的一些网络状态,来看一下awk语言的基本要素。netstat命令的执行后显示的结果在第6列标明了网络连接所处于的网络状态。awk命令看一下统计结果。

netstat  -ant | 
awk ' \BEGIN{print  "State","Count" }  \/^tcp/ \{ rt[$6]++ } \END{  for(i in rt){print i,rt[i]}  }'
netstat  -ant | 
awk ' \BEGIN{print  "State","Count" }  \/^tcp/ \{ if($4=="0.0.0.0:3306" ) rt[$6]++ } \END{  for(i in rt){print i,rt[i]}  }'    

输出结果:

State Count
LAST_ACK 1
LISTEN 64
CLOSE_WAIT 43
ESTABLISHED 719
SYN_SENT 5
TIME_WAIT 146

awk和通常的程序不太一样,它分为四个部分:

  • BEGIN 开头部分,可选的。用来设置一些参数,输出一些表头,定义一些变量等。上面的命令仅打印了一行信息而已。
  • END 结尾部分,可选的。用来计算一些汇总逻辑,或者输出这些内容。上面的命令,使用简单的for循环,输出了数组rt中的内容。
  • Pattern 匹配部分,依然可选。用来匹配一些需要处理的行。上面的命令,只匹配tcp开头的行,其他的不进入处理。
  • Action 模块。主要逻辑体,按行处理,统计打印,都可以。

注意:

  • awk的主程序部分使用单引号‘包围,而不能是双引号。
  • awk的列开始的index是0,而不是1。
    更多的详细内容
    在这里插入图片描述

相关文章:

Linux基础命令和工具使用详解

Linux基础命令和工具使用详解一、grep搜索字符二、find查找文件三、ls 显示文件四、wc命令计算字数五、uptime机器启动时间负载六、ulimit用户资源七、curl http八、scp远程拷贝九、dos2unix和unix2dos十、sed 行处理10.1、简单模式10.2、替换模式十一、awk 列处理11.1、打印某…...

一个好的python文件可以有几种用途?

大家好鸭&#xff01;我是小熊猫~ 这次来带大家浅浅回顾一点python小知识~ 源码资料电子书:点击此处跳转文末名片获取 python文件总共有两种用途&#xff1a; 一种是执行文件另一种是被当做模块导入 编写好的一个python文件可以有两种用途&#xff1a; 1. 脚本&#xff0c;…...

HDFS优化

单节点多块磁盘数据均衡 生成HDFS块均衡计划 hdfs diskbalancer -plan node1 执行均衡计划,node1.plan.json均衡计划文件 hdfs diskbalancer -execute node1.plan.json 查看当前均衡任务的执行情况 hdfs diskbalancer -query node1 取消均衡任务hdfs diskbalancer -cancel nod…...

行测-判断推理-图形推理-样式规律-黑白运算

黑白元素个数不同&#xff0c;优先考虑黑白运算白白白黑黑白黑白黑选A考试时&#xff0c;这种题不要先把规律全部推出来&#xff0c;再去做题&#xff0c;太慢了直接看要推的图&#xff0c;通过排除法选答案黑白元素个数不同&#xff0c;优先考虑黑白运算白白白黑黑白黑白黑选B…...

java+springboot+vue高校学生医疗保险管理系统

医保管理系统是对与职工健康息息相关的档案进行的系统化、自动化的管理&#xff0c;主要是对职工办理的医疗保险的管理&#xff0c;本系统能够很好的适应社会的需求&#xff0c;最大化的为城镇职工提供服务。医疗保险是国家社会保障体系的重要组成部分&#xff0c;也是社会保险…...

[已解决] AHK 映射 ESC 延迟 500 ms 的严重问题

问题描述 今天发现一个重大bug&#xff0c;我竟然用了一年多都不知道&#xff01; CapsLock::Esc 我的 ahk 脚本将 capslock 映射为 esc&#xff0c;但这在vim环境中&#xff0c;估算响应 500ms。 也就说按下 caps 键&#xff0c;还要等一会&#xff0c;才进入normal模式 如果…...

QML state详解

1.state简介 changes&#xff08;list<Change>&#xff09;&#xff1a;保存当前State下的多个Change对象,比如PropertyChanges、StateChangeScript、ParentChange等。 extend&#xff08;string&#xff09;&#xff1a;表示该状态要在哪个State的基础上进行扩展,当一个…...

一起Talk Android吧(第五百零六回:如何调整组件在约束布局中的角度)

文章目录背景介绍相关属性使用方法示例程序各位看官们大家好&#xff0c;上一回中咱们说的例子是"如何调整组件在约束布局中的大小",这一回中咱们说的例子是"如何调整组件在约束布局中的角度"。闲话休提&#xff0c;言归正转&#xff0c; 让我们一起Talk A…...

微信投票-课后程序(JAVA基础案例教程-黑马程序员编著-第七章-课后作业)

【实验7-5】 微信投票 【任务介绍】 1.任务描述 如今微信聊天已经普及到几乎每一个人&#xff0c;在聊天中&#xff0c;经常会有人需要帮忙在某个APP中投票。本案例要求编写一个模拟微信投票的程序&#xff0c;通过在控制台输入指令&#xff0c;实现添加候选人、查看当前投票…...

duboo+zookeeper分布式架构入门

分布式 dubbo Zookeeper 分布式系统就是若干独立计算机的集合&#xff08;并且这些计算机之间相互有关联&#xff0c;就像是一台计算机中的C盘F盘等&#xff09;&#xff0c;这些计算对于用户来说就是一个独立的系统。 zookeeper安装 下载地址&#xff1a;Index of /dist/z…...

黑盒测试用例设计方法-等价类划分法

目录 一、等价类的作用 二、等价类的分类 三、等价类的方法 四、等价类的原则 五、按照测试用例的完整性划分等价类 六、等价类步骤 七、案例 一、等价类的作用 为穷举测试设计测试点。 穷举&#xff1a;列出所有的可能情况&#xff0c;对其一一判断。 测试点&#x…...

4.OCR文本识别Connectionist Temporal Classification(CTC)算法

文章目录1.基础介绍2.Connectionist Temporal Classification(CTC)算法2.1 什么是Temporal Classification2.2 CTC问题描述2.2关于对齐2.3 前向后向算法2.4 推理时3.pytorch中的CTCLOSS参考资料欢迎访问个人网络日志&#x1f339;&#x1f339;知行空间&#x1f339;&#x1f3…...

误删了Ubuntu/Linux的一些默认用户目录怎么办?

用户目录&#xff1a;指位于 $HOME 下的一系列常用目录&#xff0c;例如 Documents&#xff0c;Downloads&#xff0c;Music&#xff0c;还有 Desktop等。本文不是讲如何恢复原有目录及其重要文件&#xff0c;适用于仅恢复目录功能一&#xff1a;仅恢复个别目录如误删了Desktop…...

ArXiv简介以及论文提交

arXiv网站简介 arXiv是一个收集物理学、数学、计算机科学、生物学与数理经济学的论文预印本的网站。其中arXiv发音同“archive”&#xff0c;因为“X”代表希腊字母 &#xff0c;国际音标为[kai]。它于1991年8月14日成立&#xff0c;现由美国康奈尔大学维护。 ——维基百科 对…...

pytorch学习

目录如下&#xff1a; pytorch常用操作 pytorch 常用操作 pytorch 的 detach()函数 1. 什么是detach()函数 我们在将输出特征矩阵进行存储的时候&#xff0c;经常需要将torch.Tensor类型的数据转换成别的如numpy类型的数据&#xff0c;但是Tensor类型的数据是会自动计算梯度…...

【OC】块初识

Block简介 Blocks是C语言的扩充功能。可以用一句话来表示Blocks的扩充功能&#xff1a;带有自动变量的匿名函数。 匿名函数 所谓匿名函数就是不带有名称的函数。C语言的标准不允许存在这样的函数。例&#xff1a; int func(int count);它声明了名称为func的函数。下面的源代…...

3-2 创建一个至少有两个PV组成的大小为20G的名为testvg的VG

文章目录1. 在vmware添加多块20G的硬盘&#xff0c;并创建分区2. 创建一个至少有两个PV组成的大小为20G的名为testvg的VG&#xff0c;要求PE大小为16M&#xff0c;而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录3. 新建用户archlinux,要求其家目录为/users/archlinu…...

【密码学】 一篇文章讲透数字证书

【密码学】 一篇文章讲透数字证书 数字证书介绍 数字证书是一种用于认证网络通信中参与者身份和加密通信的证书&#xff0c;人们可以在网上用它来识别对方的身份。 我们在上一篇博客中介绍了数字签名的作用和原理&#xff0c;数字签名可以防止消息被否认。有了公钥算法和数字签…...

Linux 操作系统原理 — 内存管理 — 虚拟地址空间(x86 64bit 系统)

目录 文章目录目录虚拟地址格式与内核页表&#xff08;四级页表&#xff09;虚拟地址格式与内核页表&#xff08;四级页表&#xff09; 在 x86 64bit 系统中&#xff0c;可以描述的最长地址空间为 2^64&#xff08;16EB&#xff09;&#xff0c;远远超过了目前主流内存卡的规格…...

C语言深入知识——(2)指针的深入理解

1、字符指针 &#xff08;1&#xff09;字符指针的普通用法 char a A; char* pa &a;但是一般来说字符指针很少这么用……更多是拿来存储一个字符串 &#xff08;2&#xff09;字符串的两种存储以及区别 现在有了两种存储数组的方法 ①一个是使用char类型数组存储②另外…...

Git使用笔记

分支branch切换到另一个分支git checkout 你要切换到的分支的名字git checkout master将本地的这个分支branch1和gitee上的branch1进行合并&#xff08;本地的branch1有的&#xff0c;gitee上branch1没有的增加上去&#xff09;git merge branch1git merge 分支的名字查看本地是…...

数据库管理-第五十八期 倒腾PDB(20230226)

数据库管理 2023-02-26第五十八期 倒腾PDB1 克隆本地PDB2 没开归档总结第五十八期 倒腾PDB 其实本周过的不大好&#xff0c;连着两天熬夜&#xff0c;一次是割接一次是处理ADG备库的异常&#xff0c;其实本周有些内容是以前处理过的问题&#xff0c;到了周末还肚子痛。哎… 1…...

我看谁还敢说不懂git

文章目录一、Git介绍1.1、Git的作用1.2、Git的理念1.3、Git的特点1.4、Git对比SVN二、Git的概念2.1、Git基础概念三、Git的基本操作3.1、使用Git管理一个代码仓库的流程3.2、Git常用命令介绍四、Git状态的变化五、Git安装和配置5.1、Git的安装5.2、Git的配置六、Git的高级操作6…...

Scratch少儿编程案例-算法练习-实现加减乘除练习题

专栏分享 点击跳转=>Unity3D特效百例点击跳转=>案例项目实战源码点击跳转=>游戏脚本-辅助自动化点击跳转=>Android控件全解手册点击跳转=>Scratch编程案例👉关于作者...

【离线数仓-9-数据仓库开发DWS层设计要点-1d/nd/td表设计】

离线数仓-9-数据仓库开发DWS层设计要点-1d/nd/td表设计离线数仓-9-数据仓库开发DWS层设计要点-1d/nd/td表设计一、DWS层设计要点二、DWS层设计分析 - 1d/nd1.DWS层设计一&#xff1a;不考虑用户维度2.DWS层设计二&#xff1a;考虑用户维度2.DWS层设计三 &#xff1a;考虑用户商…...

python网络数据获取

文章目录1网络爬虫2网络爬虫的类型2.1通用网络爬虫2.1.12.1.22.2聚焦网络爬虫2.2.1 基于内容评价的爬行策略2.2.2 基于链接结构的爬行策略2.2.3基于增强学习的爬行策略2.2.4基于语境图的爬行策略2.3增量式网络爬虫深层网页爬虫3网络爬虫基本架构3.1URL管理模块3.2网页下载模块3…...

[Datawhale][CS224W]图机器学习(六)

目录一、简介二、概述三、算法四、PageRank的缺点五、Python实现迭代法参考文献一、简介 PageRank&#xff0c;又称网页排名、谷歌左侧排名、PR&#xff0c;是Google公司所使用的对其搜索引擎搜索结果中的网页进行排名的一种算法。 佩奇排名本质上是一种以网页之间的超链接个…...

aws ecr 使用golang实现的简单镜像转换工具

https://pkg.go.dev/github.com/docker/docker/client#section-readme 通过golang实现一个简单的镜像下载工具 总体步骤 启动一台海外区域的ec2实例安装docker和awscli配置凭证访问国内ecr仓库编写web服务实现镜像转换和自动推送 安装docker和awscli sudo yum remove awsc…...

【20230225】【剑指1】分治算法(中等)

1.重建二叉树class Solution { public:TreeNode* traversal(vector<int>& preorder,vector<int>& inorder){if(preorder.size()0) return NULL;int rootValuepreorder.front();TreeNode* rootnew TreeNode(rootValue);//int rootValuepreorder[0];if(preo…...

「JVM 高效并发」Java 线程

进程是资源分配&#xff08;内存地址、文件 I/O 等&#xff09;的基本单位&#xff0c;线程是执行调度&#xff08;处理器资源调度&#xff09;的基本单位&#xff1b; Loom 项目若成功为 Java 引入纤程&#xff08;Fiber&#xff09;&#xff0c;则线程的执行调度单位可能变为…...

工作指令/广州排前三的seo公司

在本文中&#xff0c;读者将找到用于测试自动化的前 5 个 Python 框架的诚实比较。发现它们的所有优点和缺点 在2018年被评为最佳编程语言之后&#xff0c;Python仍然继续上升&#xff0c;根据Tiobe发布的指数&#xff0c;目前排名第三&#xff0c;仅次于Java和C。随着这种语言…...

wordpress 密码访问/长沙关键词优化费用

目录 VI/VIM编辑器常用操作介绍&#xff1a; 1.VI和VIM是什么 2.一般模式 2.1常用语法 3.编辑模式 3.1常用语法 4.指令模式 4.1基本语法 5.模式转换 6.VI/VIM键盘图 1.VI和VIM是什么 VI 是 Unix 操作系统和类 Unix 操作系统中最通用的文本编辑器。VIM 编辑器是从 VI…...

wordpress 打断点/百度大数据预测平台

C#的Garbage Collector(GC,垃圾回收器)往往让很多程序员产生了对于程序中使用的内存撒手不管的态度。他们会认为既然已经有GC在后台运行了&#xff0c;代码中就不需要多加注意了。事实上GC可以是最好的朋友&#xff0c;也可以是最坏的敌人&#xff0c;完全取决于代码。 ★垃圾…...

免费注册自己的网站/培训课

1354 选数字基准时间限制&#xff1a;1 秒 空间限制&#xff1a;131072 KB 分值: 80 难度&#xff1a;5级算法题收藏关注当给定一个序列a[0],a[1],a[2],...,a[n-1] 和一个整数K时&#xff0c;我们想找出,有多少子序列满足这么一个条件&#xff1a;把当前子序列里面的所有元素乘…...

山东德铭工程建设公司网站/老鬼seo

B. 买酒Time Limit: 1000 ms Case Time Limit: 1000 ms Memory Limit: 64 MBTotal Submission: 43 Submission Accepted: 6Description众所周知&#xff0c;西瓜是一个很爱喝酒的人。有一天西瓜和朋友去酒楼喝酒&#xff0c;却发现酒楼在大酬宾&#xff0c;活动规则如下。…...

个人网站简单/个人免费网站建设

临近年底&#xff0c;人们日益关注格力董事长董明珠与小米董事长雷军的10亿赌约谁将赢的问题&#xff0c;其实当下对格力最不利的是它的直接竞争对手美的正凭借多元化的优势在利润方面快速缩短与格力的差距&#xff0c;而此前在营收方面前者已将后者甩开一大截距离&#xff0c;…...