
系统
文章平均质量分 88
trayvontang
这个作者很懒,什么都没留下…
展开
-
Linux sed命令详解-结构(清楚结构便于理解记忆)-选项-模式空间与暂存区(多示例、多图)
指定的命令模式不同,相当于都是独立的指令,如果我们要对同一个模式匹配,做多个动作,怎么办呢?上面这个命令也非常简单,但是它几乎包含了sed的全部结构,我们在它的基础上稍微变一下,还能一眼看穿吗?查看我们已经有grep了,sed主要用来预处理文件,所以通常是find的最佳搭档。sed命令的$表示最后1行的时候,不是只文件的最后一行,而是指命令处理的最后1行。这个在处理一些特殊字符的时候非常有用,例如后面我们要说的模式空间测试的时候。所以,我们想要一眼就可能知道sed在干什么,就一定要清楚sed结构。原创 2024-11-08 09:06:22 · 860 阅读 · 0 评论 -
Linux awk命令详解-参数-选项-内置变量-内置函数-脚本(多图、多示例)
awk可以写非常复杂的命令,有时候写在1行之中不好看,可以将命令写作文件中,然后像sed一样通过-f参数来执行脚本。这个非常重要,只有理解了awk的基础结构,才能一眼看清awk在做什么,也便于记忆,不然过几天就忘了。awk中可以使用system()来调用系统命令。我们先看一些简单的示例,来理解参数、变量。例如,下面文件要如何分割其中的数字呢?注意是大写的BEGIN END。测试文件awk.txt。原创 2024-11-07 09:11:42 · 4711 阅读 · 0 评论 -
Linux grep命令详解(多图、多示例)
v参数是反选,最常用的就是在ps -ef | grep xxx的时候会把grep本身也打印出来,这时就可以用-v参数过滤掉grep。灵活应用grep能帮我们省很多事,例如很多日志可以直接在服务器查看了,就不用再单独下载下来。grep是grep、awk、sed这三剑客中最常用的命令了,相对也简单一些。扩展正则表达式(ERE)基本上和我们平常使用的正则表达式支持的元字符一样。ERE(egrep)中使用反斜杠转义表示普通字符,例如,要匹配?是不是有点乱,所以,为了避免混淆,建议正则直接使用egrep吧。原创 2024-11-06 10:20:56 · 2125 阅读 · 0 评论 -
Linux脚本参数、函数、函数返回值与return的区别
其实叫echo方式不太准确,因为result=$(add 100 200)是将add函数中所有的输出赋值给result,如果还有其他输出,结果就不准确了。我们看到result结果是300,sum为空,因为在add函数中我们使用local sum将sum定义为了局部变量。如果将add 100 20修改为add 100 200,那结果又是怎样的呢?在shell脚本中我们执行命令,经常需要获取结果,怎么办呢?答案是:sum的值是300,result的值是44。重点看一下$@,他可以帮我们获取指定位置的参数。原创 2024-11-05 09:09:23 · 1004 阅读 · 0 评论 -
Linux脚本数组与字符串
字符串可以看做是特殊的数组。{array[*]}不同。重点注意一下有双引号的。原创 2024-11-05 09:06:08 · 414 阅读 · 0 评论 -
Linux脚本循环(for、while、until)
seq 0 2 100表示:初始值0,步长2,结束值100。2}表示:初始值0,结束值100,步长2。这种风格最像高级程序中的for循环。计算1到100之间的偶数和。计算1到100之间的偶数和。原创 2024-11-04 13:09:57 · 353 阅读 · 0 评论 -
Linux脚本(if、else、case、test中括号)
shell中没有不能匹配个数,类似于正则[0-9]{3,7}这种。逻辑运算or(||、-o) and(&&、-a)如果if和then同行,得加分号(😉。可以使用test来代替中括号([])原创 2024-11-04 09:19:02 · 839 阅读 · 0 评论 -
Linux top命令详解与重点内容说明
top命令非常强大,也非常复杂,很难面面俱到,也没有必要,这篇文章的目的是介绍重点,授人以渔,希望帮助朋友们以后遇到文中没有介绍的知识点也能举一反三。通常模式下,load average统计的是所有task队列的数量,所有,需要除以逻辑CPU的数量,如果这个值大于等于3就说明负载偏高。例如:load average的值为6,逻辑cpu的核心数为4,6/4=1.5,小于3,说明cpu负载正常,瓶颈不在CPU上。buffer缓冲区,通常是文件的meta信息,cache是缓存,通常是内存页page。原创 2024-09-20 15:44:56 · 5494 阅读 · 0 评论 -
Linux find命令详解与实际使用
exec选项处理匹配到的文件时,find命令将所有匹配到的文件一起传递给-exec执行,系统传递给-exec的命令长度有限制,如果find的结果比较多,可能会出现溢出错误。这种情况就可以使用xargs命令,find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,它会先处理最先获取的一部分文件,然后处理下一批,直到全部处理完成。另外,在部分系统中-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,可能导致进程过多,xargs命令则只有一个进程。原创 2024-04-09 15:49:03 · 1404 阅读 · 0 评论 -
项目版本号管理说明
软件版本简介Alpha(α)Beta(β)RC(Release Candidate)StableGA(General Availability)简介在使用jar包的时候经常看到一些特殊版本,例如这次log4j的JNDI注入漏洞,发布的版本log4j-2.15.0-rc2这个rc2代表什么呢?Alpha(α)预览版,也叫内部测试版,一般不向外部发布,会有很多Bug,主要是内部人员用于测试。很多开源软件的大版本也会释放出来,让大家一起来找茬。例如:<dependency>原创 2021-12-14 17:10:49 · 3672 阅读 · 0 评论 -
网络IO与零拷贝原理
文章目录1. DMA2. read3. mmap4. sendfile4.1 不支持收集拷贝DMA的sendfile4.2 支持收集拷贝DMA的sendfile5. splice6. 小结1. DMADMA(Direct Memory Access,存储器直接访问)DMA是一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,DMA数据传输操作在DMA控制器(DMAC)的控制下进行的。CPU除了在数据传输开始和结束时候做中断处理,在数据传输过程中CPU可以进行其他的工作。这样,在大部分时间原创 2021-01-05 19:28:02 · 340 阅读 · 0 评论 -
阻塞非阻塞同步异步与IO模型
文章目录1. 阻塞与非阻塞2. 同步与异步3. 阻塞IO模型4. 非阻塞IO模型5. IO复用模型6. 信号驱动IO模型7. 异步IO模型1. 阻塞与非阻塞阻塞与非阻塞是针对做一件事情的时候,如果遇到一个需要耗时操作,是等待完成,还是不等待。举个例子,烧开水。当经历了拿锅、接水、点火等操作,来到了一个耗时操作,烧水。烧水是一个耗时操作,如果:阻塞,意思就是,你就在这个地方等水烧开,其他什么也不干。非阻塞,就表示水已经烧上了,你可以走开,去客厅看会儿电视,然后可以每隔几分钟来厨房看一下水烧开了没原创 2021-01-05 19:21:53 · 136 阅读 · 0 评论