1 查询某个关键字前后几行的所有数据
grep -A5 -B5 关键字 文件名
A表示的后几行,B表示的前几行,如果前后5行也可以用-C5表示
2 vi命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次进行编辑
最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
(1) 转到文件结尾
在命令模式输入 G
(2) 转到10行
在命令模式输入 10G
(3) 删除所有内容:先用 G 转到文件尾,然后使用下面命令:
:1,.d
说明1 在 vi 中,“ . ” 表示当前行,“ 1,. ” 表示从第一行到当前行, “ d ” 表示删除。
说明2 如果只是想删除某一行,那么把光标指到该行,然后输入 dd 即可
(4) 删除第10行到第20行的内容:先用 20G 转到第20行,然后使用下面命令:
:9,.d
(5) 设置显示行号
在vim里执行(在普通模式下直接按冒号,并输入下面的命令)
:set number
3 find命令
(1) 在/admin目录下查找以.txt结尾的文件名
find /admin -iname "*.txt"
(2) 找出/ admin下不是以.txt结尾的文件
find / admin ! -name "*.txt"
(3) 当前目录及子目录下查找所有以.txt和.pdf结尾的文件
find . -name "*.txt" -o -name "*.pdf"
(4) 匹配文件路径或者文件
find /admin/ -path "*user*"
(5) 基于正则表达式匹配文件路径
find . -regex ".*\.txt∥\.pdf$"
(6) 搜索出深度距离当前目录至少3个子目录的所有文件
find . -mindepth 3 -type f
(7) 搜索最近五天内被访问过的所有文件
find . -type f -atime -5
(8) 搜索五天前被访问过的所有文件
find . -type f -atime 5
(9) 搜索超过五天被访问过的所有文件
find . -type f -atime +5
(10) 搜索访问时间超过5分钟的所有文件
find . -type f -amin +10
(11) 删除当前目录下所有.txt文件
find . -type f -name "*.txt" -delete
(12) 搜索出当前目录下权限为777的文件
find . -type f -perm 777
(13) 查找当前目录下所有带有某个字符串的文件名
find .|xargs grep -rl "google.com"
可以查看当前命中行的内容 find .|xargs grep -r "google.com"
可以查看当前命中行行号 find .|xargs grep -rn "google.com"
可以查看当前命中上下文 find .|xargs grep -rn1 "google.com"