• 08 linux文件检索和编辑


    1. 检索命令

    1.1 检索文件内容

    1.1.1 cat

    作用 : 显示文件全部信息

    常用参数 :

    cat -n 文件      # 显示行号和内容
    
    [root@ymn ~]# cat -n ymn.txt
         1	ymn
         2	nihaiyigedahaoren
         3	dheugfymnchdg
         4	hahah
         5	ymn
         6	nihai
    

    补充 : nl 文件实现一样的显示行号和内容

    1.1.2 head

    作用 : 只显示文件前几行信息,默认前10行

    常用参数 :

    head -n 文件  # 显示文件前n行内容
    
    [root@ymn ~]# head num.txt
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [root@ymn ~]# head -3 num.txt
    1
    2
    3
    

    1.1.3 tail

    作用 : 只显示文件后几行信息,默认后10行

    常用参数 :

    tail -n 文件  # 显示文件后n行内容
    tail -f 文件  # 阻塞住,一直显示文件新追加的内容,一般用作监听日志
    
    [root@ymn ~]# tail num.txt
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [root@ymn ~]# tail -3 num.txt
    18
    19
    20
    

    1.1.4 grep

    作用 : 根据关键词匹配文件内容,以行的形式显示

    常用参数 :

    参数 作用
    -A n 检索关键信息包含后n行
    -B n 检索关键信息包含前n行
    -C n 以检索信息为中心显示上下n行
    -i 忽略大小写
    -E 识别特殊符号
    -v 忽略掉检索到的信息,返回剩下的信息
    [root@ymn ~]# grep 'mn' ymn.txt
    dheugfymnchdg
    ymn
    
    [root@ymn ~]# grep -A 2 'mn' ymn.txt    # 检索关键信息,包括后两行
    dheugfymnchdg
    hahah
    cnjdehfur
    ymn
    jvfrehgut
    nihai
    
    [root@ymn ~]# grep -B 2 'mn' ymn.txt
    jhuwgfuedvfh
    nihaiyigedahaoren
    dheugfymnchdg
    hahah
    cnjdehfur
    ymn
    
    [root@ymn ~]# grep -C 2 'mn' ymn.txt    # 检索关键信息,包括前后两行
    jhuwgfuedvfh
    nihaiyigedahaoren
    dheugfymnchdg
    hahah
    cnjdehfur
    ymn
    jvfrehgut
    nihai
    
    [root@ymn ~]# grep -i 'Mn' ymn.txt
    dheugfymnchdg
    ymn
    
    [root@ymn ~]# grep -E '^ymn' ymn.txt
    ymn
    
    [root@ymn ~]# grep -Ev '^ymn' ymn.txt
    jhuwgfuedvfh
    nihaiyigedahaoren
    dheugfymnchdg
    hahah
    cnjdehfur
    jvfrehgut
    nihai
    kcjfruiehf
    vjirjei
    vrgrt
    

    1.1.5 more和less

    作用 : 逐行或者逐页显示文件内容

    一般常用于大的文本文件的查看

    1.2 检索文件

    1.2.1 find

    作用 : 通过关键字查找对应的文件

    常用参数 :

    参数 作用
    -name 按照文件名查找
    -iname 忽略文件名的大小写
    -type 按照类型查找
    -size 按照大小查找
    -mtime 按照天数查找
    -mmin 按照分钟查找
    -user 按照文件属主查找
    -o 或者,可以连接参数 ( -size -100k or -size +10M)
    ! 取反
    # 查找当前路径下以.txt结尾的文件,*是通配符
    [root@ymn ~]# find ./ -name "*.txt"    #./可以不写
    ./test.txt
    ./num.txt
    ./d1/res.txt
    ./ymn.txt
    
    # 查找当前路径下所有的文件
    [root@ymn ~]# find ./ -type f
    ./.bash_logout
    ./.bash_profile
    ./.bashrc
    ./.cshrc
    ./.tcshrc
    ./anaconda-ks.cfg
    ./.bash_history
    ./test.txt
    ./num.txt
    ./d1/res.txt
    ./ymn.txt
    ./.viminfo
    
    # 查找当前路径下所有的目录
    [root@ymn ~]# find ./ -type d
    .
    ./d1
    
    # 查找/etc/下大于5m的文件
    [root@ymn ~]# find /etc/ -type f -size +5M    #-5M是小于5m,5M是等于5m
    /etc/udev/hwdb.bin
    [root@ymn ~]# ls -lh /etc/udev/hwdb.bin
    -r--r--r--. 1 root root 7.6M Nov 30 10:16 /etc/udev/hwdb.bin
    
    # 查找/etc/下7天以前的文件
    [root@ymn ~]# find /etc/ -type f -mtime +7
    /etc/selinux/targeted/modules/active/README.migrated
    /etc/firewalld/zones/public.xml
    /etc/firewalld/zones/public.xml.old
    
    # 查找/etc/下7天以内的文件
    [root@ymn ~]# find /etc/ -type f -mtime -7
    /etc/selinux/targeted/modules/active/README.migrated
    /etc/firewalld/zones/public.xml
    /etc/firewalld/zones/public.xml.old
    
    # 查找/etc/下2分钟以内的文件      一般用于检测是否有新文件产生
    [root@ymn ~]# find /etc/ -type f -mmin -2
    
    # 查找/etc/下oldboy用户创建的文件
    [root@ymn ~]# find /etc/ -type f -user oldbody
    

    1.2.2 xargs

    作用 : 将标准输入转换成命令行参数

    一般和find连用,用来在精确查找之后在做下一步的操作,比如删除rm,但是要和|管道符号连用

    [root@ymn find]# ll -h
    total 111M
    drwxr-xr-x. 3 root root   41 Dec  3 09:43 a
    -rw-r--r--. 1 root root 100K Dec  3 10:03 data1.txt
    -rw-r--r--. 1 root root 300K Dec  3 10:03 data2.txt
    -rw-r--r--. 1 root root  10M Dec  3 10:03 data3.txt
    -rw-r--r--. 1 root root 100M Dec  3 10:03 data4.txt
    
    # 查找大于5m的文件,然后并删除
    [root@ymn find]# find ./ -type f -size +5M|xargs rm -rf
    [root@ymn find]# ll -h
    total 400K
    drwxr-xr-x. 3 root root   41 Dec  3 09:43 a
    -rw-r--r--. 1 root root 100K Dec  3 10:03 data1.txt
    -rw-r--r--. 1 root root 300K Dec  3 10:03 data2.txt
    

    2. vim编辑器

    linux操作系统下默认是没有vim编辑器的,在有网络的情况下可以通过命令下载 , 安装

    yum install vim -y
    

    2.1 什么是vim

    vim是linux系统下的一款编辑器,被称之为上古神器,但是学会如何使用有一定的门槛,常常劝退一些自认为

    自己很牛逼的点点程序员

    2.2 vim可以干什么

    vim可以摆脱鼠标,只通过键盘就能编辑文本,学会并熟练使用vim可以十分高效的在linux系统下完成文本的编辑

    那如何使用vim呢,我们来从他的三种模式下学习如何使用vim

    2.3 vim三种模式

    2.3.1 普通模式

    vim 文件名(如果文件不存在,会创建一个新文件并打开)

    普通模式下只能移动光标是无法编辑文本的

    普通模式下光标移动快捷键

    快捷键 作用
    G 将光标移动到文本最后一行
    gg 将光标移动到文本第一行
    0 将光标移到行头
    $ 将光标移到行尾
    ctrl + ( 将光标移动到第一个字符位置
    ctrl + ) 将光标移动到最后一个字符位置
    n回车 将光标向下移到n行
    ngg 将光标移动到第n行
    h,j,k,l 左下上右

    普通模式下的复制,粘贴,删除

    快捷键 作用
    yy 复制当前行
    nyy 复制n行
    p 粘贴
    dd 删除当前行
    ndd 删除n行
    u          撤销,类似windows的上一步
    ctrl + r   取消撤销操作
    .          下一步之类的
    

    2.3.2 编辑模式

    快捷键 作用
    i 在当前光标处插入文字
    esc 退出编辑模式,回到命令行模式

    2.3.3 命令行模式

    快捷键 作用
    :q 退出,不保存
    :q! 强制退出,不保存
    :wq 保存并退出
    :wq! 强制保存并退出
    :set nu 显示行号
    :set nonu 取消显示行号
  • 相关阅读:
    在Leangoo里怎么添加,移动列表,修改列表名称?
    在Leangoo里怎么列表示例,插入列表?
    tomcat如何按站点调试本机程序
    ORA-12519, TNS:no appropriate service handler found
    mysql 远程访问
    手机端调试成功笔记
    Cannot find class for bean with name service
    android模拟器不能用键盘
    eclipse使用基础--让toolbar显示自己想要的内容
    mysql解压版安装
  • 原文地址:https://www.cnblogs.com/xcymn/p/14105122.html
Copyright © 2020-2023  润新知