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

指令个人记录

grep

返回file_name中包括11111的文本行

grep 11111 file_name
grep "11111" file_name  #字符串中含空格用双引号括起来
grep 11111 file_1 file_2 file_3

 -E正则表达式匹配

grep -E "[1-9]+"

 -v返回file_name中不包括11111的文本行

grep -v 11111 file_name

搜索命令行历史记录中 输入过 git 命令的记录

history | grep git

-c统计文件或者文本中包含匹配字符串的行数 

grep -c 11111 file_name

-l查找匹配文本在哪些文件中 ,返回文件名

grep -l 11111 file1 file2 file3...

 -r 递归查找

grep -r 11111 .
# .表示当前目录。

-i忽略匹配样式中的字符大小写

grep -i "HELLO"

-I使得grep在处理二进制文件时不进行匹配

grep -I "pattern" *

打印出匹配文本之前-A或者之后-B(之前&之后-C )的行: 

seq 10 | grep -A 3 "5" 

在grep搜索结果中包括或者排除指定文件

# 只在目录中所有的.php和.html文件中递归搜索字符"main()"
grep "main()" . -r --include *.{php,html}# 在搜索结果中排除所有README文件
grep "main()" . -r --exclude "README"# 在搜索结果中排除filelist文件列表里的文件
grep "main()" . -r --exclude-from filelistgrep  -r "pattern" .  --exclude-dir=".git"

-o只输出文件中匹配到的部分 

echo this is a test line. | grep -o -E "[a-z]+."
line.

-e 制动多个匹配样式:

echo this is a text line | grep -e "is" -e "line" -o
is
is
line

 -Z使得grep在输出/读取文件名时使用ASCII NUL字符(\0)代替通常的换行符

#-Z选项来指定以0值字节作为终结符文件名(\0),xargs -0 读取输入并用0值字节终结符分隔文件名,然后删除匹配文件
grep "aaa" file* -lZ | xargs -0 rm
#-print0 告诉 find 命令以 ASCII NUL 字符(\0)作为分隔符来输出文件名,而不是使用换行符
find . -type f -print0 | grep -Z "pattern"
#file 1.txt\0
#file 2.txt\0

 -f从指定的文件中读取匹配规则,每行作为一个规则

grep -f rules.txt input.txt

 -m num 匹配 num 行后停止读取文件

grep -m 5 'example' *.txt

-q不进行标准输出。如果发现匹配项,则立即退出,并返回状态码0

if grep -q 'example' file.txt; thenecho "Pattern found in file.txt"
elseecho "Pattern not found in file.txt"
fi

-n在输出匹配行时显示其在文件中的行号

grep -n "pattern" file.txt[root@ufo666 ~]# grep -n 'word' file.txt
2:This is a word
3:This is a word
4:This is a word
5:Another word here
6:A sentence without the wordss

pip

看当前环境包的版本

pip list

看某个特定包

pip show <包名>

 vim

常用

移动
n+上下左右箭头移动n个字符/n行

0

光标移动到该行最前面字符
^到本行第一个不是blank字符的位置
$光标移动到该行最后面字符
g_

到本行最后一个不是blank字符的位置。

G光标移动到文件最后一行
nG光标移动到文件第n行
w到下一个单词的开头(单词由字母,数字和下划线组成)
e到本单词的结尾(单词由字母,数字和下划线组成)
W到下一个单词的开头(单词是由blank字符分隔)
E到本单词的结尾(单词是由blank字符分隔)
查找
/word从当前光标处往下查找字符串word
?word从当前光标处往上查找字符串word
n重复前一个查找操作,若上一个操作为/word 则继续向下查找word;,若上一个操作为?word 则继续向上查找word
N找上一个结果
* 和 # 匹配光标当前所在的单词(*向下,#向上)
复制
yy复制光标所在行
nyy复制光标所在的向下n行
删除
dd删除光标所在行
ndd删除光标所在向下n行
粘贴
p将已复制数据粘贴在光标下一行
P粘贴到光标所在行,原来内容下移
u撤销前一个操作
.重复前一个操作
ctrl+r取消撤销
插入
i光标所在处插入
I光标所在行第一个非空格符号处插入
o光标所在行下一行处插入新的一行
O光标所在行上一行处插入新的一行
:w将编辑的数据写入硬盘文件种
:q退出vi
:wq保存并退出
ZZ若文件未被修改则不保存退出;若文件被修改,则保存后退出
:w filename将编辑的数据另存为filename文件
:r filename将filename文件内容加到当前光标所在行后
:e filename 打开一个文件
:set nu显示行号
:set nonu取消显示行号
cw把光标位置到下一个单词之前的内容删掉
:q!退出不保存 
:bn 和 :bp可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。
%所有行/匹配下一个括号,并匹配另一半
ctrl+p自动补齐。insert模式下,先输入一个单词的开头,然后按
  • s/要替换的关键字/替换后的关键字 + 回车替换光标所在行的第一个(从左到右)满足条件的关键字
  • ​ s/要替换的关键字/替换后的关键字g + 回车替换光标所在行的所有满足条件的关键字
  • ​ %s/要替换的关键字/替换后的关键字 + 回车针对文件的所有行进行替换(每行满足条件的第一个关键字)
  • ​ %s/要替换的关键字/替换后的关键字g + 回车 针对文件的所有行进行替换(每行所有满足条件的关键字)

在n1到n2行之间寻找word1,并将word1替换为word2

:n1,n2s/word1/word2/g

在1到最后一行之间寻找word1,并将word1替换为word2,替换前提示用户进行确认(confirm)

:1,$s/word1/word2/gc

全局将word1替换为word2 

%s/word1/word2/g

0y$,从行头拷贝到行尾 

ye,从当前位置拷贝到本单词的最后一个字符

y2/foo,拷贝2个 “foo” 之间的字符串。

块选择

v或V进入visual 模式

v

字符选择,将光标经过的字符选择

V

行选择,将光标经过的行选择

y

将选中地方复制起来

d

将选中地方剪切

p复制
ctrl+v块选择
I# [ESC] 

I是插入,插入“#”,按ESC键来为每一行生效。

<action>a<object> 和 <action>i<object>

  • action可以是任何的命令,如 d (删除), y (拷贝), v (可以视模式选择)。
  • object 可能是: w 一个单词, W 一个以空格为分隔的单词, s 一个句字, p 一个段落。也可以是一个特别的字符:"、 '、 )、 }、 ]。

假设你有一个字符串 (map (+) ("foo")).而光标键在第一个 的位置。

  • vi" → 会选择 foo
  • va" → 会选择 "foo"
  • vi) → 会选择 "foo"
  • va) → 会选择("foo")
  • v2i) → 会选择 map (+) ("foo")
  • v2a) → 会选择 (map (+) ("foo"))

 

参考:

【Linux】vim常用命令_dit anyway-CSDN博客

vim区域选择_如何在vim中垂直从所有行中快速选择区域-CSDN博客

相关文章:

  • 安卓使用memtester进行内存压力测试
  • Python绘图库----turtle(海龟)
  • Sui Bridge今日正式上线Sui主网
  • Recaptcha2 图像识别 API 对接说明
  • 在矩池云使用 Llama-3.2-11B-Vision 详细指南
  • 开放式耳机究竟是不是智商税?百元蓝牙耳机2024推荐指南
  • 常见的计算机网络协议
  • Next.js 14 使用 react-md-editor 编辑器 并更改背景颜色
  • VUE a-table 动态拖动修改列宽+固定列
  • Unity XR 环境检测
  • Trimble隧道测量软件为您解锁新深度
  • 车视界系统小程序的设计
  • 【DCGAN 生成漫画头像】
  • 检查一个CentOS服务器的配置的常用命令
  • Android常用C++特性之std::none_of
  • 自己简单写的 事件订阅机制
  • [译] React v16.8: 含有Hooks的版本
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • 2019年如何成为全栈工程师?
  • conda常用的命令
  • CSS居中完全指南——构建CSS居中决策树
  •  D - 粉碎叛乱F - 其他起义
  • ES6系列(二)变量的解构赋值
  • HTTP 简介
  • JDK9: 集成 Jshell 和 Maven 项目.
  • Spring声明式事务管理之一:五大属性分析
  • tweak 支持第三方库
  • Zsh 开发指南(第十四篇 文件读写)
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 翻译:Hystrix - How To Use
  • 解析带emoji和链接的聊天系统消息
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • ​如何防止网络攻击?
  • ​用户画像从0到100的构建思路
  • # .NET Framework中使用命名管道进行进程间通信
  • #100天计划# 2013年9月29日
  • #define
  • #LLM入门|Prompt#3.3_存储_Memory
  • #QT(串口助手-界面)
  • #数据结构 笔记三
  • (2015)JS ES6 必知的十个 特性
  • (2024)docker-compose实战 (9)部署多项目环境(LAMP+react+vue+redis+mysql+nginx)
  • (CPU/GPU)粒子继承贴图颜色发射
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (八十八)VFL语言初步 - 实现布局
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (翻译)terry crowley: 写给程序员
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (四)opengl函数加载和错误处理
  • (四)汇编语言——简单程序
  • (五)Python 垃圾回收机制