Linux文本编辑命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux文本编辑命令相关的知识,希望对你有一定的参考价值。

  • cut 命令用来显示行中的指定部分,删除文件中指定字段。cut经常用来显示文件的内容,类似于下的type命令
    技术分享图片

    #其中,cut命令中如果要指定多列,-f1可写为-f1,3,7(逗号隔开即可)

    cut -c 仅显示指定字段的内容
    cut -d指定字段的分隔符
    cut -b 仅显示行中指定直接范围的内容


  • umask 命令用来设置限制新建文件权限的掩码。新文件创建时的权限是由掩码决定的。用户每次注册进入系统时,umask命令都被执行, 并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask命令来改变默认值,新的权限将会把旧的覆盖掉。
      umask 022

设置掩码为022,则创建新文件的默认权限就是777-022为755
即*rwxr-xr-x
umask值存储在/etc/bashrc当中,被所有用户设置使用,存储在~/.bashrc则只针对某用户设置生效


  • ACL权限(Access Control List)即访问控制列表。主要是针对单一用户,单一文件或目录进行rwx权限的细部设定。可以针对用户(User)、群组(Group)、默认属性掩码(umask)进行设置。
    centos6当中对新建分区开启acl的过程
    1.创建分区
    fdisk /dev/sda
    n回车
    回车
    +2G回车
    w回车
    2.同步分区表
    partx -a /dev/sda
    3.创建文件系统
    mkfs.ext4 /dev/sda6
    4.开启acl支持
    tune2fs -o acl /dev/sda6
    5.查看acl
    tune2fs -l /dev/sda6 |grep option

    getfacl FILENAME/DIRECTORY

查看文件/目录的ACL属性
技术分享图片

        setfacl命令是用来在命令行里设置ACL(访问控制列表)。
        在命令行里,一系列的命令跟随以一系列的文件名。

-b,--remove-all:删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留。
-k,--remove-default:删除缺省的acl规则。如果没有缺省规则,将不提示。
-n,--no-mask:不要重新计算有效权限。setfacl默认会重新计算ACL mask,除非mask被明确的制定。
--mask:重新计算有效权限,即使ACL mask被明确指定。
-d,--default:设定默认的acl规则。
--restore=file:从文件恢复备份的acl规则(这些文件可由getfacl -R产生)。通过这种机制可以恢复整个目录树的acl规则。此参数不能和除--test以外的任何参数一同执行。
--test:测试模式,不会改变任何文件的acl规则,操作后的acl规格将被列出。
-R,--recursive:递归的对所有文件及目录进行操作。
-L,--logical:跟踪符号链接,默认情况下只跟踪符号链接文件,跳过符号链接目录。
-P,--physical:跳过所有符号链接,包括符号链接文件。
--version:输出setfacl的版本号并退出。
--help:输出帮助信息。
--:标识命令行参数结束,其后的所有参数都将被认为是文件名
-:如果文件名是-,则setfacl将从标准输入读取文件名。

    setfacl用法()

技术分享图片
清除默认权限

setfacl -k file

清除ACL属性

setfacl -b file

            acl权限的备份及还原
                            getfacl file |directory > acl.txt
                            setfacl --restore acl.txt
  • sort

            -n 按数字排列
            -r 倒序排列,默认升序
            -t 指定分隔符
            -k 指定哪一列
            -f 忽略大小写
            -u 删除重复行
  • uniq

            去除连续重复行,往往和sort配合使用,先排序,再去重
            -c 显示重复的次数
            -d 仅显示重复行
            -u 仅显示非重复行
  • diff

            diff f1 f2 比较两个文件的不同之处
            diff -u f1 f2 > diff.log
            (此命令可以生成补丁文件,可以用patch打补丁)
  • grep

                --color=auto 关键字高亮显示
                -v 反向搜索
                -i 忽略大小写
                -n 显示行号

技术分享图片

                -c 不显示搜索结果,仅显示匹配的行数
                -o 仅显示匹配到的字符串
                -q 静默输出
                -A #  显示搜索行及其向下相临的#行
                -B #  显示搜索行及其向上相临的#行
                -C #  显示搜索行及其向上和向下相临的#行
                -e char1 -e char2 [-e charN] 多个选项间or关系
                -w 匹配整个单词
                -E 或egrep 支持扩展正则表达式
                -F 或fgrep 不支持正则表达式
  • vim是一款十分强大的文本编辑器,功能繁多熟练掌握则工作效率事半功倍
    当执行vim FILENAME时,若文件存在,则直接打开文件;若文件不存在,则直接创建以FILENAME为名的文件同时打开,并且左下方会提示【new file】技术分享图片
    如果打开一个已存在的文件则左下方也会有相应提示技术分享图片

        三种主要模式
                命令模式 (default): 移动光标,复制,剪切,粘贴,撤销,重做,搜索,进入其他模式
                    移动光标:
                        h向左移动
                        l向右移动
                        j向下移动
                        k向上移动
                        配合#h,#l,#j,#k可一次性移动#个字符
                        w跳到下一个单词的词首
                        b跳到上一个单词的词首
                        H跳到当前页首
                        M跳到当前页中
                        L跳到当前页尾
                        gg跳到整个文件的首行
                        G跳到整个文件的末行
                        ^移到非空格开头的行首
                        $移到行尾
                        #G跳到指定行,或退出模式下:#
                        Ctrl+f: 向文件尾部翻一屏
                        Ctrl+b: 向文件首部翻一屏
                        Ctrl+d: 向文件尾部翻半屏
                        Ctrl+u:向文件首部翻半屏
                    r替换一个字符
                    d剪切
                        dd剪切当前行
                        #dd剪切#行
                        dw剪切一个单词
                        d^从光标所在处剪切到行首
                        d$或D从光标所在处剪切到行尾
    
                    y复制
                        yy或Y复制当前行
                        #yy复制#行
                        yw复制一个单词
                        y^从光标所在处复制到行首
                        y$从光标所在处复制到行尾
    
                    p粘贴
                        p当前行向下粘贴或光标所在处向后粘贴
                        P当前行向上粘贴或光标所在处向前粘贴 
                替换模式 R进入 Esc退出
    
                    从命令模式进入插入模式
                        i光标在哪从哪进入
                        I光标移至行首同时进入插入模式
                        a光标向后移一个字符同时进入插入模式
                        A光标移至行尾同时进入插入模式
                        o光标向下插入一新行同时进入插入模式
                        O光标向上插入一新行同时进入插入模式
                插入模式:文本编辑
                退出模式:保存、退出
                        w:保存
                        q:退出
                        q!强制退出
                        wq或x 保存并退出
                        w!当前用户为该文件所属人时,如果该文件为read only,可加上!强制保存。
                        在退出模式下返回命令模式EscEsc或Enter
                        r /path/filename 读取另一个文件的内容并将输出结果写入文件
                        w /path/filename 另存为(确认当前用户对该路径中的最后一级目录有wx权限)
                        ! command 执行某条命令,将输出结果显示在终端上
                        r! command 执行某条命令,在光标所在的当前行向下插入新行并将输出结果输入
                        .! command 执行某条命令,替换光标所在的当前行并将输出结果输入

以上是关于Linux文本编辑命令的主要内容,如果未能解决你的问题,请参考以下文章

linux操作之文本编辑器

linux命令-文本编辑器命令vi

青蛙学Linux—文本编辑器Vi/Vim

linux命令vi文本编辑器的使用方法有哪些?

linux系统下 vi文本编辑器搜索单词打啥命令

linux命令vi文本编辑器的使用方法有哪些?