Linux运维第8天:Linux下vim使用及find工具

vim编辑器
    vi:Visual Interface
    vim:VI Improved
    
全屏编辑器,模式化编辑器


打开文件:
    #vim /path/to/somefile
    #vim +# filename 光标跳到指定行
    #vim + filename 光标跳到尾
    #vim + /pattern:光标跳到第一次匹配的位置


vim模式:
    命令模式(编辑模式)
    输入模式
    末行模式
    
    打开时默认为命令模式
    
    编辑模式-->输入模式 
        i:光标前
        a:光标后
        o:下一行
        O:上一行
        I:行首 
        A:行尾 
        
    输入模式-->编辑模式
        ESC
    
    编辑模式-->末行模式
        :
    
    末行模式-->编辑模式
        ESC,ESC


关闭文件:
    1.末行模式关闭文件
        :q
        :wq
        :q!
        :w
        :w!
        :wq == :x 
    2.编辑模式下退出
        ZZ:保存并退出
    
移动光标:
    1.h,l,j,k(前面可以加数字指定移动次数) 
    2.按单词移动
        w:移到下一个单词的词首
        e:跳到当前或下个单词的词尾
        b:跳到当前或前一个单词的词首
        支持#数字 
    3.行内跳转
        0:绝对行首
        ^:第一个非空白字符
        $:行尾
    4.行间跳转
        #G:跳转到#行 
        末行模式,直接给出行号回车
        gg:行首 


翻屏
    Ctrl+f:向下一屏
    Ctrl+b:向上一屏
    Ctrl+d:向下半屏
    Ctrl+u:向上半屏


删除单个字符
    x:
    X:
    #x:
    
删除命令:d
    d命令跟跳转命令组全使用
    #d跳转符:
    dw,de,db,dd
    末行模式下
    :start,endlined  5,10d   .,+5d   .,100d .表示当前行 $表示最后一行
     $-1,$-2,


复制命令:y
    用法同命令d
    
撤消编辑改变:
    u:撤消前一次操作
    #u 
    Ctrl+r :反撤消


粘贴命令
    p:如果是整行就粘贴到下一行,否则粘贴到光标后面
    P:上一行
    最后一次删除的内容可以粘贴到其他地方


先删除内容,再转换为输入模式
    c 
    用法同命令d


替换:r
    只能替换单个字符
    R直接进入替换模式
    ESC退出替换模式


重复前一次的操作
    .
    
可视化模式:
    v:按字符选取 
    V:按块选取


查找:
/pattern
?pattern
    N,n


查找替换:
    末行模式下
    范围s///gci
    %:表示全文


vim打开多个文件
    vim filename1 filename2 ...
    
    :prev,:next,:last,:first
    :qa
    
分屏显示:
    :split [filename]
    Ctrl+w,s
    Ctrl+w,v
    切换
        Ctrl+w, + k,j
    分窗口显示文件
        vim -o|-O filename1 filename2
w:
    相当于另存为  1,100w filename
    
r:
    把文件插入 r filename
    
!:
    shell command :!ls -l
    
高级话题
    set nu
    set nonu
    set ic(ignore case)
    set indent
    set nohl
    syntax on
    syntax off
    
配置文件
    /etc/vimrc
    ~/.vimrc
    
使用脚本选项:
    --add user1,will,mac,linux
    echo $2 | sed 's/,/ /g' 获取用户列表
    echo $2 | tr -s ',' ' '


    


文件查找:
locate:
    非实时,模糊匹配,查找是根据全系统文件数据库进行查找的:
    #updatedb,手动生成更新文件数据库
    速度快
    
find
    实时
    精确
    支持众多查找标准
    遍历指定目录中的全部文件,速度慢
    
find 查找路径  查找标准  查找到后的处理动作(默认显示)


匹配标准:
    -name 'filename'
        文件名通配
            *,?,[]
    -iname 'filename' 不区分大小写
    -regex pattern 
    -user
    -group
    -uid
    -gid
    -nouser
    -nogroup
    -type
    -size
        +,-
        k,M,G
    可以组合条件
        -a,-o,-not 
    -mtime(天)
    -ctime
    -atime
        +,-
                      5                 现在
        _____+5_______|_______-5__________|_
    
    -mmin(分钟)
    -cmin
    -amin
    
    -perm mode:exactly
        /:any
        -:all
        
动作:
    -print:显示
    -ls:类似ls -l 
    -ok command {} \; {}为文件名占位符(交互,用户确认)
    -exec command {} \;
    find ./ -perm -066 -exec chmod o-w {} \;
    find ./ -type d -ok chmod +x {} \;
    xargs:
        find /etc/ -size +1M | xargs echo >> /tmp/etc.largefiles
    
作业
    1.查找/var目录下属主为root并且属组为mail的所有文件;
    find /var -user root -group mail


    2.查找/usr目录下不属于root,bin,或student的文件;
    find /usr -not -user root -a -not -user bin -a -not -user student
    find /usr -not \( -user root -o -user bin -o -user student \)


    3.查找/etc目录下最近一周内内容修改过且不属于root及student用户的文件;
    find /etc -mtime -7 -not \ ( -user root -o -user student \)
    find /etc -mtime -7 -not -user root -a -not -user student




    4.查找当前系统上没有属主或属组且最近1天内曾被访问过的文件,并将其属主属组均修改为root;
    find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \; 


    5.查找/etc目录下大于1M的文件,并将其文件名写入/tmp/etc.largefiles文件中;
    find /etc -size +1M >> /tmp/etc.largefiles


    6.查找/etc目录下所有用户都没有写权限的文件,显示出其详细信息;
    find /etc -not -perm /222 -ls   
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值