11、vim、文件测试、组合条件测试

来源:互联网 发布:网络存储服务器价格 编辑:程序博客网 时间:2024/05/19 04:05
    vim编辑器:
        vi:文本编辑器(文本:ASCII,unicode),现在vi命令是以vim运行的
        文本编辑类型
            行编辑器:sed
            全屏编辑器:vim
            
        vim:模式化的编辑
            基本模式
                编辑模式|命令模式(默认打开后的模式)
                输入模式
                末行模式
                    内置的命令行接口
                    
            打开文件:
                vim [potion]... file...
                    +#:打开文件后,光标处于第#行的行首
                    +:打开文件后,光标处于最后一行的行首
                    +/PATTERN:打开文件后,光标处于第一个被PATTERN匹配行的行首
            
            模式转换
                编辑模式-->输入模式
                    i:在光标所在处前面转换为输入
                    a:在光标所在处后面转换为输入
                    o:在光标所在行下方打开一个空行
                    I:在光标所在行行首输入
                    A:在光标所在行行尾输入
                    O:在光标所在行上方打开一个空行
                    c:
                    C:
                输入模式-->编辑模式
                    ESC
                编辑模式-->末行模式
                    :
                末行模式-->编辑模式
                    ESC
                    
            关闭文件
                :q    退出
                :q!    强制退出,丢弃做出的修改
                :wq    保存退出
                :x    保存退出
                :w /文件    把文本内容保存到一个文件,文件存在的话需要w!强制覆盖
                ZZ:编辑模式下保存退出
                
            光标跳转
                字符间跳转
                    h:向左一个字符
                    j:向下一个字符
                    k:向上一个字符
                    l:向右一个字符
                        #h:向左#个字符
                单词间跳转
                    w:跳转到下一个单词词首
                    e:跳转到当前或下一单词的词尾
                    b:跳转到当前或下一单词的词首
                        #w:跳转到下#个单词词首
                行首行尾跳转
                    ^:跳转到行首的第一个非空白字符
                    0:跳转到行首
                    $:跳转到行尾
                行间跳转
                    #G:跳转到第#行
                    G:跳转到最后一行
                    gg:第一行
                句间移动
                    )
                    (
                段落间移动
                    }
                    {
            
            vim的编辑命令:
                字符编辑
                    x:删除光标处的字符
                    #x:删除光标处起始的#个字符
                    xp:删除字符并粘贴,实现光标所在字符跟后面一个字符换位
                替换命令
                    r:替换当前光标所在字符,输入r再输入换成的字符
                删除命令
                    d:可结合光标跳转字符,实现范围删除
                        d^:删除光标前所有字符
                        d$:删除光标后所有字符
                        3dw:光标所在及后面3个单词
                        dd:删除一行
                        #dd:删除向下#行
                粘贴命令
                    p:缓冲区存的如果为整行,则粘贴到光标所在行下方;否则则粘贴到光标所在处后面
                    P:缓冲区存的如果为整行,则粘贴到光标所在行上方;否则则粘贴到光标所在处前面
                复制命令
                    y:复制,可结合光标跳转字符,yy,#yy
                改变命令
                    c:删除并进入输出模式,可结合光标跳转字符,cc,#cc
                可视化模式
                    v:按字符选定
                    V:按行选定
                        选中结合d,y使用
                撤消此前的编辑
                    u:撤消此前的操作
                        #u:撤消此前#次的操作
                撤消此前的撤消
                    ctrl+r
                重复前面的操作
                    .
                    
                翻屏操作
                    ctrl+f:向后翻一屏
                    ctrl+b:向前翻一屏
                    ctrl+d:向后翻半屏
                    ctrl+u:向前翻半屏
                    
                vim自带练习教程命令
                    vimttutor
                    
            vim中的末行模式(支持命令历史)
                字符范围(地址定界):后面跟编辑命令
                    :#    ;第#行,例:5d,删除第5行
                    :#,# ;第#到#行
                    :1,+# ;光标在首行,第一行加后面#行
                    :. ;当前行
                    :$ ;最后一行
                        :.,$-1 ;当前行到倒数第二行
                    :% ;全文
                    :/PAT1,/PAT2/ ;从第一次被PAT1匹配到第一次被PAT2匹配的行
                    :r /文件 ;把文件插入到当前光标下
                
                查找
                    :/PATTERN ;从当前向下查询整个文件
                    :?PATTERN ;从当前向上查询整个文件
                        n:与命令同方向
                        N:与命令同反方向
                查找并替换(必须和地址定界一起使用)
                    :s/PATTERN/字符/修饰符(s@@@,s###可用其它特殊符号)
                        前面为要查询的模式
                        中间为字符、引用\1、&引用前面PATTERN匹配的所有字符(为空表示删除匹配到字符)
                        修饰符
                            i:忽略大小写
                            g:替换所有匹配的字符,默认只替换每行第一个匹配到的字符串
                    
            多文件模式
                vim file1 file2 file3 ...
                    :next    下一个
                    :prev    前一个
                    :last    最后一个
                    
                    :wall    保存所有
                    :qwall    保存退出
                    
                多文件多窗口
                    vim -o|O file1 file2 ...
                        -o:水平分割
                        -O:垂直分割
                        切换窗口:crtl+w然后按上下左右箭头
                单文件窗口分割
                    ctrl+w,s:水平分割
                    ctrl+w,v:垂直分割
                    
        定制vim工作特性
            配置文件
                全局:/etc/vimrc
                个人:~/.vimrc
            末行模式:当前vim进程有效
            
            行号
                set number,set nu:显示行号
                set nonu:取消显示行号
            括号匹配(括号高亮显示)
                set showmatch,set sm:显示
                set nosm:不显示
            自动缩进(同上一行缩进)
                set ai
                set noai
            搜索高亮
                set hlsearch
                set nohlsearch
            语法高亮
                syntax on
                syntax off
            忽略字符大小写
                set ic
                set noic
                
        获取帮助
            :help
            :help 参数
            
            
    bash条件测试
        文件测试
            存在性测试
                -a /file:文件是否存在,存在为真
                -e /file:文件是否存在,存在为真(一般用-e)
            文件类型测试
                -b /file:文件是否存在且为块设备文件
                -c /file:文件是否存在且为字符设备文件
                -d /file:文件是否存在且为目录文件
                -f /file:文件是否存在且为文件
                -S /file:文件是否存在且为套接字文件
                -h|-L /file:文件是否存在且为软链接文件
                -p /file:文件是否存在且为命名管道文件
            文件权限测试
                -r /file:文件是否存在且执行命令用户可读权限
                -w /file:文件是否存在且可写权限
                -x /file:文件是否存在且有执行权限
            文件特殊权限测试
                -g /file:文件是否存在且有sgid权限
                -u /file:文件是否存在且有suid权限
                -k /file:文件是否存在且有sticky权限
            文件大小测试
                -s /file:文件是否存在且非空
            文件打开性测试
                -t fd:fd为文件描述符,文件是否打开且与某终端相关
                
                -N file:文件自上一次被读取后是否被修改过(是否有echo写入)
                -O file:当前用户是否为文件属主
                -G file:当前用户是否为文件属组
                
            文件对比
                file1 -ef file2:测试2个文件是否指向同一设备上相同inode
                file1 -nt file2:file1是否新于file2
                file1 -ot file2:file1是否旧于file2
    

        组合条件测试

            逻辑运算
                第一种方式
                    command && command
                    command || command
                    ! command
                第二种方式:以测试表达式方式(test,[  ],[[  ]])
                    测试表达式 -a 测试表达式:与运算,前面测试是,后面继续测试
                    测试表达式 -o 测试表达式:或运算,前面测试否,后面继续测试
                    ! 测试表达式:非运算
                        例:[ -z `hostname` -o `hostname` == "bogon" ] && hostname "vm180"  测试是否有主机名,有的话是否为bogon,是的话改个名
                        [ -f /bin/cat -a -x /bin/cat ] && cat /etc/passwd
                        [ ! \( -w /file -o -x /file \) ]:以普通用户测试文件没有写权限再测试没有执行权限则为真
                   

阅读全文
0 0
原创粉丝点击