Linux vi 常用操作

1. 编辑文件

命令模式下键盘点击 i 按键即可编辑文件内容。

2. 显示行号

在命令模式下输入:set nu

3. 将光标移动到某一行

在命令模式下输入:<行号>

4. 查找内容

在命令模式下输入/<需要查找的内容>,按n键向下继续查找

5. 删除一整行

在命令模式下将光标移动到需要删除的行连续按两次d

6. 复制粘贴某一行

再命令模式下将光标移动到需要复制的行,连续按两次y,然后将光标移动到需要粘贴到的行点击p

7. 删除光标以下的所有行

在命令模式下将光标移动到需要删除的位置,连续按三次9键,然后再连续按两次d

8. 将光标移动到文件最后一行或者第一行

在命令模式下按两次G,此时光标会移动到文件最后一行;
在命令模式下按两次g,此时光标会移动到文件第一行;

9. 文件修改之后未保存退出时可能出现问题

如下所示:
在这里插入图片描述
我们点击ENTER键可以继续编辑文件,对文件也可以正常操作,但是当我们再次修改文件时,还是会出现同样的问题,这是因为系统自动为我们创建了一个临时文件。通过 ll -a 命令查看如下:
在这里插入图片描述
此时只需要将.swp后缀名的文件删除就不会再有警告提示了。

10. 统计字数相关信息wc命令
用法:wc [选项]... [文件]...
  或:wc [选项]... --files0-from=F
  
打印每个FILE的换行符,单词和字节数,如果有则打印总行数
指定了多个文件。 如果没有FILE,或者当FILE为-时,
读取标准输入。 单词是非零长度的字符序列
用空格分隔。
以下选项可用于选择要打印的计数,始终以
顺序如下:换行符,单词,字符,字节,最大行长。

   -c, --bytes            打印字节数
   -m, --chars            打印字符数
   -l, --lines           打印换行计数
   --files0-from=文件        从指定文件读取以NUL 终止的名称,如果该文件被
                                         指定为"-"则从标准输入读文件名
   -L, --max-line-length 显示最长行的长度
   -w, --words                   显示单词计数
       --help            显示此帮助信息并退出
       --version         显示版本信息并退出
11.对文件进行排序sort
用法:sort [选项]... [文件]...
 或:sort [选项]... --files0-from=F
将所有FILE的排序后的串联写入标准输出。

长选项的强制性参数对于短选项也是必需的。
排序选项:

  -b, --ignore-leading-blanks   忽略前导的空白区域
  -d, --dictionary-order        只考虑空白区域和字母字符
  -f, --ignore-case             忽略字母大小写
  -g, --general-numeric-sort  compare according to general numerical value
  -i, --ignore-nonprinting    consider only printable characters
  -M, --month-sort            compare (unknown) < 'JAN' < ... < 'DEC'
  -h, --human-numeric-sort    使用易读性数字(例如: 2K 1G)
  -n, --numeric-sort            根据字符串数值比较
  -R, --random-sort             根据随机hash 排序
      --random-source=文件      从指定文件中获得随机字节
  -r, --reverse                 逆序输出排序结果
      --sort=WORD               按照WORD 指定的格式排序:
                                        一般数字-g,高可读性-h,月份-M,数字-n,
                                        随机-R,版本-V
  -V, --version-sort            在文本内进行自然版本排序

其他选项:

      --batch-size=NMERGE       一次最多合并NMERGE 个输入;如果输入更多
                                        则使用临时文件
  -c, --check, --check=diagnose-first   检查输入是否已排序,若已有序则不进行操作
  -C, --check=quiet, --check=silent     类似-c,但不报告第一个无序行
      --compress-program=程序   使用指定程序压缩临时文件;使用该程序
                                        的-d 参数解压缩文件
      --debug                   为用于排序的行添加注释,并将有可能有问题的
                                        用法输出到标准错误输出
      --files0-from=文件        从指定文件读取以NUL 终止的名称,如果该文件被
                                        指定为"-"则从标准输入读文件名
  -k, --key=KEYDEF          sort via a key; KEYDEF gives location and type
  -m, --merge               merge already sorted files; do not sort
  -o, --output=文件             将结果写入到文件而非标准输出
  -s, --stable                  禁用last-resort 比较以稳定比较算法
  -S, --buffer-size=大小        指定主内存缓存大小
  -t, --field-separator=分隔符  使用指定的分隔符代替非空格到空格的转换
  -T, --temporary-directory=目录        使用指定目录而非$TMPDIR 或/tmp 作为
                                        临时目录,可用多个选项指定多个目录
      --parallel=N              将同时运行的排序数改变为N
  -u, --unique          配合-c,严格校验排序;不配合-c,则只输出一次排序结果
  -z, --zero-terminated 以0 字节而非新行作为行尾标志
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出

12. 检查重复的行列uniq
用法:uniq [选项]... [文件]
从INPUT(或标准输入)中过滤相邻的匹配行,
写入OUTPUT(或标准输出)。

没有选项,匹配的行将合并到第一个匹配项。

长选项的强制性参数对于短选项也是必需的。
  -c, --count          通过出现次数为行加前缀
  -d, --repeated       仅打印重复的行,每组一行
  -D, --all-repeated[=METHOD]  打印所有重复的行
                          组可以用空行分隔
                          METHOD={none(default),prepend,separate}
  -f, --skip-fields=N   避免比较前N个字段
      --group[=METHOD]  显示所有项目,用空行分隔组
                          METHOD={separate(default),prepend,append,both}
  -i, --ignore-case     比较时忽略差异
  -s, --skip-chars=N    避免比较前N个字符
  -u, --unique          只打印唯一的行
  -z, --zero-terminated  以0字节结尾的行,而不是换行符
  -w, --check-chars=N   对每行第N 个字符以后的内容不作对照
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出

避坑

当文件中的内容如下:
在这里插入图片描述
我们在使用uniq命令时出现如下结果:
在这里插入图片描述
此时我们需要先将文件进行排序,然后再使用uniq命令去重

sort test.txt| uniq

在这里插入图片描述

13. 获取前N条数据
用法:head [选项]... [文件]...
将每个FILE的前10行打印到标准输出。
如果有多个FILE,则在每个文件之前加上一个标头,以提供文件名。
如果没有FILE,或者当FILE为-时,请读取标准输入。

长选项的强制性参数对于短选项也是必需的。
 - [N]  打印前N行数据,N是一个数字
  -c, --bytes=[-]K         打印每个文件的前K个字节;
                            带有前导“-”,则打印除最后一个以外的所有内容
                             每个文件的K字节
  -n, --lines=[-]K         打印前K行,而不是前10行;
                              带有前导“-”,则打印除最后一个以外的所有内容
                              每个文件K行
  -q, --quiet, --silent 不显示包含给定文件名的文件头
  -v, --verbose         总是显示包含给定文件名的文件头
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值