linux_shell笔记(四)

YOLOv8改进 | Neck篇 | Slim-Neck替换特征融合层实现超级涨点 (又轻量又超级涨点) 本文给大家带来的改进机制是Slim-neck提出的Neck部分,Slim-neck是一种设计用于优化卷积神经网络中neck部分的结构。在我们YOLOv8中,neck是连接主干网络(backbone)和头部网络(head)的部分,负责特征融合和处理,以便提高检测的准确性和效率。亲测在小目标检测和大尺度目标检测的数据集上都有大幅度的涨点效果(mAP直接涨了大概有0.4左右。同时本文对Slim-Neck的框架原理进行了详细的分析,不光让大家会添加到自己的模型在写论文的时候也能够有一定的参照。 阅读详情

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->

Linux 系统中最流行的 vi 克隆有 elvis nvi vile vim

vim 编辑器不是一个格式化文本的程序,它不能调整版面,也不具有复杂文字处理系统( openoffice.org )所具有的格式化输出功能。

Vimtutor 查看 vim 的使用说明。

>vimtutor

ESC....SHIFT+: q

 

vim 有两个操作模式:命令模式(也称普通模式)和输入模式。命令模式可输入 vim 命令,如删除文本的命令,退出 vim 的命令。可以通过输入命令将 vim 切换到输入模式。在输入模式中, vim 将接受用户输入的任何文本信息,并将他们显示在屏幕上。按下 ESC 键, vim 将返回到命令模式。

命令模式 -----> 插入,追加,打开,替换,修改 -----> 输入模式

命令模式 -----> 冒号‘ :’-----> 最后一行模式

输入模式 -----> 转义( ESC ) -----> 命令模式

最后一行模式 -----> 返回( RETURN ) -----> 命令模式

 

最后一行模式:在这种模式下,光标处于屏幕底部。当输入完命令按下 RETURN 键后, vim 将光恢复到原来位置。

:set number RETURN

:help RETURN

vim 区分大小写,输入命令时注意区分大小写。输入上面命令 ':' 将使 vim 由命令模式切换到最后一行模式。

 

输入模式( i/a ) 在输入文本前,必须通过 'i' 或者 'a' 键将 vim 由命令模式切换到输入模式。

命令模式下: CONTROL + D 将光标下移半个窗口, CONTROL + U 上移半个窗口。

命令 ‘ :q!’ 退出不保存。

在 vim 输入模式下,那些校正 shell 命令行的回退键具有同样的功能。这些键包括字符删除键 (CONTROL + H) 行删除键( CONTROL + U ) 字删除键( CONTROL + W )

 

行删除键:当按下行删除键后,光标将往左移动,一直到达行开始处,其经过的字符将被删除。

字删除键:当按下字删除键后,光标将往左移到当前单词开始或者前一个单词的起始处左端,光标所经过的单词将被删除。

所以要保证删除当前行和 当前单词,需要将光标移动到当前行的最右端 或者 当前单词的末尾结束字符的后一个位置。

 

在 vim 处于命令模式下,可以使用 RETURN 空格键 方向键来移动光标 ,‘ h’ 左 ‘ j’ 上 ‘ k’ 下 ‘ l’ 右。

 

命令模式下删除文本:删除字符 ‘ x’ 删除光标所经过的字符 删除字‘ dw’ ,将光标移动到要删除字的第一个字符 ,输入该命令 删除行‘ dd’ 光标移动到要删除行的任意位置,输入该命令。 注意操作方式与输入模式下的区别,光标的位置的要求不同。

 

输入命令 'u' 来撤销操作, vim 编辑器将文本恢复到上一个命令执行前的状态。

输入命令 'U' 来修正一行的内容,让其恢复原始状态,撤销一行所做的更改。

输入命令 ':redo' 将重新执行被撤销的命令。

输入 'CONTROL+R' 来重新执行被撤销的命令。

添加文本:

插入‘ i’ 追加 'a' 打开 'o' 和‘ O’ o: 在光标所处行的下方打开一空白行,同时将光标移动到新行并切换到输入模式, O :在光标所处行的上方打开一空白行,同时将光标移动到新行并切换到输入模式

 

在编辑的过程中, vim 将编辑的文本放置在工作缓冲区的地方,当结束编辑时,必须将工作缓冲区的内容写到磁盘,这样才能将对文本的修改保存起来。

命令 'ZZ' 可以将新写入的内容保存到磁盘,并且结束编辑会话 , vim 返回到 shell 控制符。如果不想保存所作的修改,那么可以使用命令 ':q!' 退出。命令 'wq' 写并退出。

 

':help feature ' 可以获得 feature 的相关信息。将光标移动到文档的活动链接, 按下 CONTROL +]即可跳到对应的链接文件。使用 CONTROL + o 可返回到帮助文档 。也可以使用链接名替换 ':help feature ' 中的 feature 来获得单词对应特性的相关信息。帮助文档中 用两个‘ *’ 括起来的红色显示的标签表示可以用作替换 ':help feature ' 中的 feature 项字符串。

 

在命令模式下, vim 将输入的字符作为命令对待,并对每个命令做出回应,但不显示这些字符;在输入模式下, vim 将输入字符作为文本放置在正编辑的文本中;所有以冒号 ':' 开始的命令将使 vim 处于最后一行模式,冒号将光标移到屏幕的底部一行,输入的命令将在该行显示。

最后一行模式和命令模式除了光标位置不同外,还有一点不同,就是命令模式结束不必包含按下 RETURN 键,而最后一行模式结束命令必须按下 RETURN 键。

一些修改和替换命令首先工作的命令模式下,然后切换到输入模式下工作。

注意查看模式和 CAPSLOCK 键的状态

 

启动编辑会话时, vim 将要编辑的文件从磁盘读入工作缓冲区;在会话过程中, vim 将所作的修改保存在缓冲区而不修改磁盘上的文件,直到将工作缓冲区内容写回到磁盘。

>view filename

>vim -R filename

上面命令使用 vim 浏览文件而不修改文件。将不能把工作缓冲区的内容修改到原文件,但是可以写到其他文件。

 

窗口:多数窗口命令由 CONTROL + W 后跟字母构成,

CONTROL + W s(split) 分割,打开另一个窗口来编辑同一个文件;

CONTROL + W n 打开一个新窗口编辑空白文档;

CONTROL + W w 将光标在窗口间移动;

CONTROL + W q 退出窗口。

 

>vim example.c example2.c

:next

:prev

:wq

:wq

 

>vim example.c

ESC

CONTROL+W n

:open example2.c

:q

:q

 

 

可以采用两种方式结束编辑会话:一种是保存编辑会话过程中所作的修改;一种是放弃编辑会话过程中所作的修改。在命令模式下输入‘ ZZ’ 或者 ‘ :wq’ 可以将所作修改保存后退出 。

如果不想保存所作的修改直接结束编辑会话,那么可以使用 ':q!' 命令。

‘:w filename’ 命令将所作修改写到磁盘文件 filename 。当用户没有某个文件的写权限时,使用该命令是很必要的。

 

vim 会将操作的交换文件临时存储起来。当使用 vim 编辑文件时,如果系统突然崩溃了,那么再次启动系统后,可以根据这些交换文件对文件进行恢复。

带选项‘ -r’ 的 vim 会显示所有已经保存的交换文件,如果已经保存了所作的工作,那么可输入 vim -r 后跟文件名,这样就可以编辑工作缓冲区最近的副本。尽快使用 ':w filename ' 将工作区的应急副本写到磁盘上。

>vim -r

注意与选项 '-R'( 表征只读方式打开 ) 的区别。

>vim -r example.c

:w example2.c

:q

>rm .example.c.swp

 

可以跨越不同的度量单位来移动光标。移动光标的命令前面带上数字称为重复因子,光标跨越的个数将根据该数字确定。 3h 4l 3j 2k

j$ 移动光标到下一行结尾。

 

使用查找命令可以将光标从当前的某个字符移到该字符下一次出现的位置。

Fa ; ; ; fa ; ; ; ;

F 将光标从当前字符 a 移动到同一行上 a 的前一次出现的位置。 F 将光标从当前字符移动到同一行上 a 的下一次出现的位置。‘ ;’ 重复上一次查找命令。

 

 

而 w 是将光标往前移动一个字的距离。 e 也是将光标往前移动一个字的距离;

注意 w 与 e 的区别:光标位于字的第一个字符和光标位于字的最后一个字符。

命令 b 也是将光标往回移动一个字。

W E B 移动方向与小写的 w e b 相同,只是以空白符区分字边界。

 

0 将光标移动到行的开始位置, $ 将光标移动到行的结束位置。

 

% 在同一嵌套层次内移到匹配的同类型括号。

 

')' 和 '}' 可分别将光标向前移到下一个句子的开始和下一个段落的开始。 '(' 和 '{' 则分别将光标向后移动到前一个句子的开始和前一个段落的开始。

 

H 将光标定位到屏幕顶部一行的最左端; M 将光标定位到屏幕的中间一行; L 将光标定位到屏幕的底部。

 

CONTROL + d 组合键和 CONTROL + u 组合键可将屏幕向下或向上滚动,显示半屏新文本, 在这些命令前加数字将按照输入数字的行数来滚动,在后面的会话中,每次使用该组合键都将按照该数字指定的行数滚动屏幕。直到再次修改滚动行数。

 

CONTROL + f 组合键和 CONTROL + b 组合键 显示一屏新文本。

 

nG ,将把光标定位到工作缓冲区的第 n 行。同 n + gg

G ,把光标定位到文件最后一行。

gg ,把光标定位到文件的第一行。

 

插入命令,追加命令,修改命令和替换命令可以使 vim 切换到输入模式,在该模式下,可以向工作缓冲区中输入新文本内容。在文本输入完成后,可按下 ESCAPE 键返回到命令模式。

 

插入: i 在光标所在字符之前插入字符

追加: a 在光标所在字符之后插入字符, A 直接在行末添加字符。

为输入打开行: o/O 在当前行之下或之上打开一个新行并将光标定位到新行

文本替换: r/R 后跟字符将替换光标所在位置的字符,一个是替换一个字符,一个是连续替换。

 

输入模式下转义特殊字符: CONTROL + V 可向文本中输入任何字符 如‘ CONTROL + W’ 删除字 ‘ CONTROL + U’ 删除行 以及 ‘ ESCAPE ’ 进入命令模式。

 

命令模式下删除和修改文本,

撤消, u 可将错误删除或修改的文本恢复。执行一次撤消命令只能撤销上一次对文本的操作。

删除, x 删除当前字符,前可使用重复因子删除当前行上从当前字符开始的后续多个字符。

 

删除, d 命令将把文本从工作缓冲区中删除,命令删除文本的多少取决于 d 后重复因子和度量单位的设定。 dw 删除到字的末尾 d3w 删除到第 3 个字的末尾 dd 删除当前行 5dd 删除从当前行开始的 5 行, d$ 删除到行的末尾。

 

修改文本 命令 c 可以将旧文本替换为新文本,其中新文本不一定与旧文本占据相同的空间。删除文本的多少取决于重复因子和度量单位的设定。它可以使 vim 进入输入模式。 cw 修改到字末尾, cc 修改当前行 5cc 修改当前行开始的 5 行, c$ 修改到行的末尾。

 

替换: s/S 可以将旧文本替换为新文本。命令 s 删除光标所在字符,使 vim 进入输入模式,然后可输入新内容直到按下 ESC 键, vim 将一个字符替换为刚输入的新内容。 S 修改当前行与命令 cc 相同。

用一个或多个字符替换当前字符 s

用一个或多个字符替换当前行 S

用一个或多个字符替换从当前字符开始的 5 个字符 5s

 

代字符~可以改变光标所在字符的大小写,从大写改为小写或者从小写改为大写。 5 ~将改变从当前光标位置开始的 5 个字符的大小写。

 

查找和替换 任何编辑器都具有的一个关键特性是:通过与正则表达式的匹配实现字符 字符串或者文本的查找和替换。

查找字符:命令 f 可在当前行查找指定字符 ,并将光标移到该字符的下一次出现的位置。分号;可以重复执行最后一个 f 命令

查找字符串:可以在整个工作缓冲区查找与正则表达式匹配的文本或字符串。斜杆 / 后跟要查找的文本按下 RETURN 键后, vim 便开始对字符串进行搜索。如果用?代替斜杆那么将查找字符串的前一次出现的位置。如果要搜索特殊字符需要在字符前加 / 以实现转义。

两种不同转义字符的方法:编辑文本时可以使用 CONTROL + V 转义特殊字符,搜索字符串中使用反斜杆 / 实现转义特殊字符。这两种转义字符的方法是不可互换的。

键 n 和 n 在不必输入搜索字符串的情况下,将重复上一次搜索。键 n 的搜索与上一次搜索完全相同,而建 N 则方向相反。键 n 是一个输入命令项。

/if

n n n n.. n.. n

?if

n n n n ..n n

 

当 vim 进行普通搜索时,输入斜杆或者问号后跟搜索字符串,按下 RETURN 键, vim 便开始搜索并将光标移到搜索字符串的下一次或者前一次出现的位置。当 vim 进行增量搜索时,输入斜杆或问号后,随着搜索字符串的输入, vim 将突出显示已输入字符串下一次或者前一次出现的位置。当突出显示的字符串恰是要查找的字符串时,按下 RETURN 即可将光标移动到突出显示的字符串的位置。

:set incsearch 可以将增量搜索打开。

 

由于搜索字符串是正则表达式,所以搜索字符串中的一些字符具有特殊的意义。

^ 和 $ 两个特殊字符,除了这两个特殊字符以外,列表中的其他字符都可以通过 nomagic 参数关闭。

^ 行开始符,作为第搜索字符串的第一个字符时, vim 将每行的开始字符串与搜索字符串进行匹配。

例如: /^the 搜索以 the 开始的行。

$ 行结束符,与行的结束匹配。 /!$ 搜索以叹号结尾的下一行,命令 / $ 搜索以空格结束的行

. 任意字符指示符,可以与任意字符匹配,他可以出现在字符串的任意位置。 /l..e 可以查找到任何以包含 l 后跟任意两个字符和 e 的字符。

/> 字结束符,这两个字符与字的末尾匹配, /s/> 搜索以 s 结尾的字,通常情况下 / 是用来关闭字符特殊意义,而单独的 > 没有特殊意义,所以这里的 / 不是用来转义的。

/< 字开始符,这两个字符与字的开始匹配, //<The 用来查找下一个以 The 字符串开始的字。

* 0 个或多个出现,与某个字符的 0 次或者多次出现匹配。 /dis*m 将与以 di 后跟 0 个或者多个 s 和一个 m 字符串匹配。

[] 定义字符类,将两个或多个字符括起来与括号内的单个字符匹配。 /dis[kc] 查找 disk 或 disc 下一次出现的位置

在定义字符类中,有两个特殊字符:脱字符 ^ 和连字符 - 。脱字符为左括号后的第一个字符时,定义了一个除后面字符的其他字符。连字符放置在两个字符之间表示字符范围。

/and 查找字符串 and 的下一次出现的位置。

//<and/> 查找字 and 的下一次出现的位置。

/^The 查找以 The 开始的下一行。

/^[0-9][0-9]) 查找以两个数字后跟括号开始的下一行。

//<[adr] 查找以 a d r 开始的下一个字。

/^[A-Za-z] 查找以字母开始的下一行。

注意与 shell 中使用的通配符的区别。 ? 单个字符, * 任意多个字符等。

 

/ignore/c 搜索字符串 ignore 并突略大小写 而对参数 set ic 与否没有影响。

同

:set ic

/ignore

:set noic

 

突略大小写搜索

:set ic

显示行号

:set number

高亮显示搜索结果

:set hls

增量搜索

:set is

 

字符串的替换

替换命令合并了查找命令和修改命令的功能。替换命令将首先查找某个字符串,与命令 / 的功能相同,允许查找前面一节讨论的特殊字符;当找到匹配的字符串时,替换命令用来修改该字符串。

:[g] [address] s/search-string/replacement-string[/option]

设定 address :如果替换命令不指定 address ,那么替换命令将仅搜索当前行 ;如果指定 address ,那么,替换命令将搜索对应行。也可以使用斜杆括起来的字符串作为 address , vim 将对包含地址字符串的下一行进行查找和替换。如果在地址字符串前面加上 g ,那么 vim 将对包含字符串的所有行进行查找和替换。注意与放置在末尾的 g 不同,放置在末尾的 g 是在某行进行多个替换。

address 中的句点代表当前行,美元符号代表工作缓冲区中最后一行,百分号代表整个工作缓冲区。也可使用加减号进行 address 的算术运算。

5 第 5 行

77,100 77 到 100 行 包括 77 和 100 行

1,. 从工作缓冲区开始到当前行

.,$ 从当前行到工作缓冲区结束

1,$ 整个工作缓冲区

% 这个工作缓冲区

/pine/ 包含字符串 pine 的下一行

g/pine/ 包含字符串 pine 的所有行

.,.+10 当前行到后续 10 行

 

address 后跟的 s 代表命令是一个替换命令。 s 后的分割符代表 search-string 字符串的开始。 Search-string 格式与命令 / 中搜索字符串的格式相同,用分割符标志 search-string 的结束同时也标志 replace-string 的开始。 Replace-string 是用来替换匹配 search-string 。 replace-string 中的 & 代表与 search-sting 匹配的文本; / 用来转义后面的特殊字符。

 

:s/bigger/biggest/ 当前行,第一次出现的字符串 bigger 替换为 biggest

:1,.s/Ch 1/Ch 2/g 当前行之前的所有行,所有的字符串 Ch 1 替换为 Ch 2

:1,$s/ten/10/g 所有行,所有的字符串 ten 替换为 10

:g/chapter/s/ten/10/ 所有出现 chapter 的行,第一次出现的 ten 字符串替换为 10

:%s//<ten/>/10/g 所有行,所有字 ten 替换为 10

:.,.+10s/every/each/g 当前行到后续的 10 行,所有字符串 every 替换为 each

:s//<short/>/”&”/ 当前行,第一次出现的字 short 替换为” short”

:/candle/s/wick/flame/ 下一次出现 candle 的行,第一次出现的字符串 wick 替换为 flame

:g/candle/s/wick/flame/ 所有出现 candle 的行,第一次出现的字符串替换为 flame

:g/candle/s/wick/flame/g 所有出现 candle 的行,所有的字符串 wick 替换为 flame

 

通常,替换命令只替换第一次出现的匹配项,如果要进行全局替换,或者说,要替换文本所有匹配项,那么可以在之后追加 g 选项。

 

CONTROL + G 显示正编辑中的文件的名字和相关信息;同 :f 命令

 

句点 . 将重复执行最近一次的修改命令。

对于要修改工作缓冲区中的某个字或者短语的多次出现,这个命令非常有用。使用 / 搜索第一次出现的匹配字,利用 cw 修改该字,使用 n 可搜索下一次出现的该字,命令 . 将进行与上次同样的修改。不想修改可以继续 n 搜索。

//<i/>

RETURN 则将光标定位到第一次匹配项,

cw

进入输入模式,输入替换字符 j 后 ESC 进入命令模式

n 继续搜索下一次 i 的出现, . 修改该字为 j

n . n . n n . n n n

 

 

命令 Yank,Put 和 Delete

vim 编辑器具有一个通用缓冲区和 26 个命名缓冲区,可用这些缓冲区来存放编辑会话过程中文本。这些缓冲区对文本块的移动和复制非常有用。 Delete + Put 剪切并粘贴, Yank + Put 复制并粘贴。

Yank(y/Y) 将文本复制到缓冲区 复制文本到通用缓冲区,使用 Put 将通用缓冲区中的文本复制到工作缓冲区的另一位置。多次 Put 将进行多次复制。 yy 复制一行, yw 复制一个字。

Put(p/P) 从缓冲区复制文本 把文本从通用缓冲区复制到工作缓冲区中。当字符和字删除或复制到通用缓冲区后,命令 p 可以把他们插入到当前字符之后,命令 P 将其插入到当前字符之前。如果删除或复制的是行 句子或者段落, p 将内容插入到通用缓冲区光标所在行之后,而 P 则插入到光标所在行之前 。 Put 不改变通用缓冲区内容,所以可以多次 Put 命令将文本放置在工作缓冲区不同位置。

Delete 将删除文本复制到通用缓冲区 这样可以在执行撤销命令时恢复文本,也可以将删除的文本使用 Put 命令放置到工作缓冲区的另一个位置。 dw+p dd+p 等

可以利用命令 v 使 vi 进入可视,然后利用 hjkl 来控制方向选择所需复制或则删除的字符。

 

 

命名缓冲区 : Delete Yank Put 命令都可以使用命名缓冲区, 26 个命名缓冲区是用 26 个字母表中的 26 个字母命名的,每个命名缓冲区可以存储文本的不同块,当使用时可以调用这些块。与通用缓冲区不同 vim 不改变命名缓冲区的内容,除非使用命令重写某个缓冲区。 Vim 将在整个会话期间都保持命名缓冲区中的内容不变。

如果 Delete 和 Yank 命令之前加上双引号,那么 vim 编辑器将把文本存储在某个命名缓冲区中,” kyy 将当前行复制到缓冲区 k 中,缓冲区使用小写字母, vim 将把删除或者移出的文本放置到对应缓冲区,缓冲区使用大写字母, vim 将把删除或者移出的文本追加到对应缓冲区的末尾。 利用这个特性可以将文件的不同部分收集并存储到某个位置。想在某个文档重复插入段落,句子和短语的情况,命名缓冲区显得非常有用。” kp 将 k 缓冲区中的文本插入到光标所在行的下方。

这种技术为在文档中多次插入相同文本的情况提供了一种快捷便利的方法。

 

读文件 :r 命令是将文件读入到工作缓冲区。新创建的文件并不覆盖工作缓冲区中的任何文本,而是被定位到命令中指定的地址之后。 :[address] r [filename]

:$r example.sh

在文档结尾插入 example.sh 文件的内容。不指定地址,定位到当前行。不指定文件名则为当前正编辑文件。

:r example.sh

:r !ls

 

 

写文件 :w 命令将工作缓冲区的部分或者全部写到文件。使用地址可以将工作缓冲区的指定部分写入到由文件名指定的文件中。如果不指定地址和文件,那么将整个工作缓冲区的内容写回到正在编辑的文件,并更新磁盘文件。

:[address] w[!] [filename]

:[address] w>> filename

第二种格式是向已有文件追加文本。

 

可以通过设置 vim 参数定制 vim ,使其更符合自己的需要和习惯。

在 vim 中设置参数:输入命令 :set parameter_name

:set incsearch

 

 

在 shell 初始化文件中设置参数: VIMINIT 如果使用 bash ,可以在初始化文件 ~/.bash_profile 中输入下面格式的语句:

export VIMINIT='set param1 param2 …'

export VIMINIT='set autoindent number shell=/bin/bash wrapmargic=15'

VIMINIT 是 vim 要读的 shell 变量。

在 vim 初始化文件中设置参数:用户可以在自己的主目录下创建文件 ~/.vimrc ,可在该文件中设置参数。

Set param1 param2 …

>cat >~/.vimrc

set ignorecase

set number

set shell=/bin/bash

set wrapmarg-in=15

 

:set all 后 RETURN, 编辑器将显示全部的完整列表,并给出它们当前的值。

:set 后 RETURN ,可显示选项列表。

 

:new 打开一个新的窗口来编辑文本文件。

:open filename 在当前窗口打开文件 filename

 

在 vim 中执行 shell 命令

在使用 vim 时,执行 shell 命令有多种方式。输入下面命令后 RETURN 键后可派生出一个新的交互式 shell

:sh

参数 shell 用来确定派生出那个 shell ,执行往 shell 可以通过退出 shell 返回到 vim( 通常情况下 CONTROL + D 或执行命令 exit) 。

当使用 :sh 创建一个 shell 时,要确保用户还在使用 vim 。

输入下面命令,可以在 vim 中执行 shell 命令行,其中 command 为要执行的命令行, RETURN 结束输入,开始命令行的执行。

:!command

vim 派生出一个新的 shell 来执行 command ,当 command 执行完毕,新派生出的 shell 将返回到编辑器的控制。

 

也可以在 vim 中执行命令,用命令的输出来替换正在编辑文件的当前行的文本。 如果不想替换任何文本,那么,执行下面命令时,首先将光标移到空白行。

!!command

注意与下面指令的区别:上条指令替换当前行,下一条指令是在当前行之后插入命令输出。

:r !command

 

:e

CONTROL+D

:ed+TAB

vim 命令提示 与 补全

When typing a : command, press CTRL-D to see possible completions.

Press <TAB> to use one completion.

 

vim 的许多命令都是在文本块上进行操作的。文本块可大可小,可以是字符,也可以是段落,可采用度量单位来指定文件块的大小。在度量单位上加入重复因子可以指定多个度量单位。

字符:可以是可见的 也可以是不可见的, (TAB SPACE 特殊字符 )

字:由一个或者多个字符组成的字符串,它两端可以为以下各元素的任意组合 : 标点符号 空格 TAB 数字和换行符 vim 将每组相连的标点符号看作是一个字。 Pear!) “The 4 个字

 

>vimtutor -e

 

 

《从理念到落地:Claude Code 在真实项目中的深度实践指南》基于 Anthropic 团队内部使用经验的扩展与深度解读,一篇面向工程团队的全面实践手册 Claude Code 支持通过# 创建新的 API 端点根据以下输入创建完整的 API 端点:资源名称:$ARGUMENTS请创建以下文件:1. `src/routes/{resource}.routes.ts` - 路由定义2. `src/controllers/{resource}.controller.ts` - 控制器3. `src/services/{resource}.service.ts` - 服务层。 阅读详情

相关推荐

京东联盟h5st(3.1)加密参数逆向实战与反爬对抗策略

本文详细解析了京东联盟h5st(3.1)加密参数的逆向分析与实战破解过程。通过接口分析定位关键加密函数,拆解h5st结构并还原其基于SHA256和HMAC-SHA256的加密逻辑,最终使用Python集成JavaScript环境成功复现加密算法,并分享了应对反爬的频率限制、IP封禁及算法升级等对抗策略。

weixin_29246195的博客 1740

linux设置不保留命令输入历史的方法

1、历史命令是被保存在内存和~/.bash_history中,当退出或者登录shell时,会自动保存或读取。2、在常见的Linux发行版本中,通常默认存储1000条历史命令,该数量是由环境变量HISTSIZE进行控制。3、/usr/bin目录下保存当前系统的命令文件,可以用 ls /usr/bin/ | wc -l 命令统计该目录下文件的数量。

hjxloveqsx的博客 2743

Intel AX系列网卡5G热点开启失败?Linux下3种修复方案实测(含Ubuntu/OpenWRT)

本文针对Intel AX系列网卡在Linux系统下无法开启5G热点的常见问题,深入剖析了其根源在于内核LAR机制与驱动的兼容性。文章提供了三种实测有效的修复方案:针对内核低于5.5的模块参数法、适用于高内核版本的hostapd补丁编译法以及高阶的驱动修改法,帮助用户在Ubuntu、OpenWRT等环境中成功启用5G热点功能。

weixin_29291863的博客 736

linux中强大的vim你还是只会普通的编辑保存内容?

作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2019 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动?就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验Java程序员的技术功底。最近我整理了一份复习用的面试题及面试高频的考点题及技术点梳理成一份“Java经典面试问题(含答案解析).pdf和一份网上搜集的“Java程序员面试笔试真题库.pdf。

2401_84049023的博客 1247

Plaxis软件简介及 Plaxis Python API环境搭建、自动化建模、Python全自动实现、高级案例分析

本次课程主要针对岩土工程中的各种问题(塑性、渗流、固结、动力、稳定安全、热力TM),用四天时间,教大家如何一步一步地搭建自己的Plaxis模型,包括Plaxis Python API的连接与配置、外部Python编译器的使用、Python命令流自动建模过程、Python远程脚本读取输出结果等,其中的Python建模模块尽可能做到让学员零基础开始,通过提供标准命令流库,使用搭积木、摆乐高的形式模块化进行,加强学员的易上手、可操作性。(2)钻孔的建立、土层的建立、土层属性、水力条件及初始条件、导入土层。

CCfz566的博客 1464

docker安装fastdfs+nginx配置

docker安装fastdfs+nginx,实现图片或文件的上传与下载

weixin_47325126的博客 2193

Linux 中保存/不保存退出vi,vim编辑

Linux下保存/不保存退出vi,vim编辑

chou142857的博客 2472

双有源桥DC-DC变换器:原理、软开关与移相控制深度解析

隔离型DC-DC变换器是电力电子系统的核心部件,通过高频变压器实现电气隔离与电压匹配,保障系统安全与灵活适配。其工作原理基于功率半导体器件的开关动作,通过调制策略控制能量传输。该技术的核心价值在于实现高效、高功率密度的电能转换,并支持双向能量流动,这对于提升系统整体能效和运行灵活性至关重要。在新能源储能、电动汽车V2G及数据中心供电等场景中,双向能量流成为刚性需求,推动了如双有源桥等先进拓扑的应用。本文聚焦于双有源桥这一实现高效双向隔离变换的“明星”方案,深入剖析其利用移相控制实现软开关的机理。通过分析谐振

weixin_34195142的博客 380

linux vi后不保存退出,linux下退出VI的方法:不保存退出

当编辑完文件,准备退出Vi返回到shell时,可以使用以下几种方法之一。在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell;若当前编辑的文件没被修改过,则Vi直接退出, 返回到shell。在末行模式下,输入命令:wVi保存当前编辑文件,但并不退出,而是继续等待用户输入命令。在使用w命令时,可以再给编辑文件起一个新的文件名。:w newfile此时...

weixin_29974217的博客 984

Shell数学计算(算术运算,加减乘除运算)

声明: 本篇博客的学习途径主要为以下网站和课堂讲解,发博客目的仅为学习使用,在该博客的基础上做了一定程序的简略和修改。 参考博客 : 原文链接:http://c.biancheng.net/shell/ Shell数学计算Shell数学计算数学计算命令对整数进行数学运算: (()) / let / $[] /exprShell (())Shell let命令bc命令:一款数学计算器在 Shell 中使用 bc 计算器 Shell数学计算 默认情况下,Shell 不会直接进行算术运算,而是把+两边的数据(数

AKUANer的博客 2万+

基于STM32、HAL库的W25Q01JVZEIQ TR FLASH存储器驱动应用程序设计

1Gb (128MB),分为512个可擦除块(block),每个块256KB。:块擦除约30-50ms,芯片擦除约30s。:标准SPI (支持1/2/4线模式)// 初始化CS引脚为高电平。// 擦除扇区(4KB)// 初始化Flash。/* 状态寄存器位 *//* 指令定义 *//* 超时定义 *//* 函数声明 */

corlin6688的博客 268

Linux期末考试试题长沙理工,linux操作系统考试试卷(含答案)J

C.D.a6. 以下选项中,哪个命令可以关机? ( )A. init 0 B. init 1 C. init 5 D. init 67.请选择关于 /etc/fstab 的正确描述。 ( )A. 系统启动后,由系统自动产生B. 用于管理文件系统信息C. 用于设置命名规则,是否使用可以用 TAB 来命名一个文件D. 保存硬件信息8....

weixin_39835321的博客 1201

不藏了!Wireshark 命令、捕获、过滤器大全分享给你

Wireshark,这款广受欢迎的开源网络协议分析工具,堪称网络管理员、网络安全专家和网络爱好者的“显微镜”!它可以帮助我们捕获网络中的数据包,并提供详细的解码和分析能力。本文将为您全面剖析 Wireshark 的强大功能,从基础到高级,让你快速掌握这个神器!💡Wireshark 是一款功能强大的网络协议分析器,最早由 Gerald Combs 于 1998 年开发,经过多年发展,已成为网络诊断和分析的首选工具。

网络技术联盟站 728

linux基础学习笔记四:带你认识一下shell

一、什么是shell? 由于安全、复杂、繁琐等原因,用户不能直接接触内核(也没有必要),需要另外再开发一个程序,让用户直接使用这个程序;该程序的作用就是接收用户的操作(点击图标、输入命令),并进行简单的处理,然后再传递给内核,这样用户就能间接地使用操作系统内核了。你看,在用户和内核之间增加一层“代理”,既能简化用户的操作,又能保障内核的安全,何乐不为呢?用户界面和命令行就是这个另外开发的程序,...

耐心的小黑的博客 1726

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Linux学习笔记(四):Shell基础

linux学习笔记(四):Shell基础 Shell概述 Shell是一个命令解释器,还是一个编程语言。 Shell是解释执行的脚本语言(不需要编译),在Shell中可以直接调用Linux系统命令。 Shell的分类 Bourne Shell:1979年Unix就开始使用,主文件名为:sh C Shell:主要在BSD版的Unix系统中使用。 Bourne和C两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh Bash:Bash与sh兼容,现

SixUnder的博客 508

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Linux Shell 学习笔记(四)Shell运算符

需要注意,原生bash不支持简单的数学运算,但是可以通过相关命令来实现,例如 awk 和 expr,其中 expr 最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。两个数相加1+21 + 2。

weixin_53087423的博客 464

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

linux shell结构,linux shell学习笔记(四) 控制流结构

1、if语句语句格式:if 条件1 如果条件1为真then 那么命令1 执行命令1elif 条件2 如果条件1不成立then 那么命令2 执行命令2else 如果条件1,2均不成立命令3 那么执行命令3fi 完成注:if语句必须以单词fi终止例子:#!/bin...

weixin_42437984的博客 188

linux 学习笔记四 bash shell

type  查询命令是否为bash 内置命名 变量的设置规则 myname=ceshi 变量与变量内容用=连接 变量名称可以是数字英文字母,但是不能以数字开头。 内容如果有空白可以用单引号‘’或者双引号“”“” 但是单引号只能作为一般字符也就是文本显示,双引号可以引用变量。 变量的增加 "$名称":/增加内容,或者${名称}:/内容 export 可以使变量变成环境变量。 通常系统

SorryILoveYou_的博客 393

Linux学习笔记四-Shell中[],(())

[]的使用[]的返回值: 0 代表真 1 代表假 []中可用的比较运算符只有==和!=,两者都是用于字符串比较的,不可用于整数比较,整数比较只能使用-eq,-gt这种形式。无论是字符串比较还是整数比较都不支持大于号小于号。如果实在想用,对于字符串比较可以使用转义形式,如果比较”ab”和”bc”:[ ab \< bc ],结果为真,也就是返回状态为0。[ ]中的逻辑与和逻辑或使用-a 和-o

在下李逍遥的博客 352

Linux Shell学习笔记四

Linux Shell学习笔记四

God's blog 1877

Linux学习笔记(四)——Shell基础

weixin_45303372的博客 113

bash shell的使用-Linux-学习笔记(四)

前置 本文是在这篇文章的基础上继续的 bash#连接 exit#退出 注意,打开本身就是一个连接,所以上面是连接了两次 所以输入两次exit才是真的退出 什么是shell 是一个命令解释器,就是一个软件 执行就是bash,可以在里面输入命令,做交互 shell是你(用户)和Linux(或者更准确的说,是你和Linux内核)之间的接口程序。你在提示符下输入的每个命令都由shell先解释然后传给Linux内核。 shell 是一个命令语言解释器(command-language interpreter)。

优快云XXCQ的博客 1988

linux学习笔记-Shell(四):shell脚本中的变量

shell脚本中的变量一.变量的定义二.shell脚本中变量的定义方法环境级别用户级别系统级别变量名称命名建议三.变量的转译转译声明变量的数组四.Linux中命令的别名设定五.用户环境变量的更改六.脚本函数练习脚本 一.变量的定义 定义本身 变量就是内存一片区域的地址 变量存在的意义 命令无法操作一直变化的目标 用一串固定的字符来表示不固定的目标可以解决此问题 二.shell脚本中变量的定义方法 环境级别 export a=1 在环境关闭后变量失效 用户级别 vim ~/.bash_profile expo

qq_42003848的博客 681

Linux系统知识(四)-Shell脚本学习笔记

1、基础知识登录后复制 ##### 描述信息 开始 ##### #执行脚本的方式: # 作为可执行程序 # chmod +x ./test.sh #使脚本具有执行权限 # ./test.sh #执行脚本(有点表示在当前目录里,无表示在系统变量目录里) # 作为解释器参数(直接运行解释器,其参数就是 shell 脚...

weixin_40954498的博客 114

Linux学习笔记四:Shell编程

什么是Shell ? 简单地讲,shell就是一个命令解析器,把你输入的命令解析给系统“听”,也就是执行。 shell的种类有很多,其中有Bourne shell(sh) Korn shell(ksh) Bourne Again shell (bash) C shell (包括csh and tcsh) TENEX/TOPS C ...

java开发指南博客 【转载】 111
上一篇: usb 音频类描述符及其说明(usb audio descriptor)
下一篇: 一个简单的linux shell程序示例及其说明
terry_linux
博客等级 码龄17年 12粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值