在​​我的另外一篇博客​​里已说过这两个命令的基础用法

复习一下

 

vim filename(直接开始编辑)

vi filename(进入vi之后使用i进入编辑模式)

在vi/vim下写完之后  Esc进入命令模式(停止编辑) 输入:wq保存并退出(vi中的!具有强制的意思 比如:q!就是不保存强制退出)

:set -nu  # 显示行号

 

查找命令用whereis ;查找可执行程序用which ;通用的查找是 find ,用起来比较费 io

e.g.

find /home -name "*.txt"  # 在/home目录下查找以.txt结尾的文件名

find /home -iname "*.txt"  # 同上,但忽略大小写

find . -name "*.txt" -o -name "*.pdf"  # 当前目录及子目录下查找所有以.txt和.pdf结尾的文件

find /usr/ -path "*local*"  # 以正则表达式*local*匹配文件路径或者文件

find $HOME/. -name "*.txt" -ok rm {} \;  # 找出目录dongmie1999下所有名为aaaaa的文件并删除,其中aaaaa可以是一个正则表达式

find ./ -size +2M  # 在当前目录下寻找size大于2M的文件

否定参数

find /home ! -name "*.txt"  # 找出/home下不是以.txt结尾的文件


vim保存指定行到文件

# 保存到其他文件,保存到的那个文件必须先存在才行,没有就 touch 创建一个

:2,5 w>> ./yourname.txt

# 保存指定行号到本文件

:9,16y  # 复制9-16行

:20  # 光标移到文件的第20行

p  # 粘贴到当前行

 

vim快速移动

:200  # 到200行

Ctrl + b  向上移动一屏

Ctrl + f  向下移动一屏

 

vim当前行号

:set nu  # 文件显示行号

:f  # 显示当前行号

linux vim find 详细说明_递归

 

vim删除指定行

# 多行删除

:32,65d  # 删除32-65行,u  撤消修改或删除操作

# 单行删除

删除光标所在行,dd  # u  撤消修改或删除操作

 

find查找指定递归深度

# 当前路径下不递归查找以.txt结尾的文件夹,-maxdepth 1 表示查找深度为1

find . -name “*.txt” -maxdepth 1

 

查找文件并移动

find . -name '10-*.dat' -exec mv {} ../ \;

这里:

 => -exec mv {} /mnt/mp3 \; - 运行mv命令。

 => {} - 字符 '{}' 代表find到的所有内容。

=>../表示当前用户目录的上一级目录

 => \; - 结束 /bin/mv 命令。

 

查找指定日期区间文件

find . -newermt '2020-02-29' ! -newermt '2020-03-09'

find . -atime -11  # 查找在系统中最后11天访问的文件

:<<!

atime是指access time,即文件被读取或者执行的时间

ctime即change time文件状态改变时间,指文件的inode被修改的时间,如通过chmod修改文件属性,ctime就会被修改。

mtime即modify time,指文件内容被修改的时间。

!

 

附:

​shell 中的单行注释和多行注释​