VIM指令和文本内容处理命令

Day 4

vim 文本编辑器 (vi)

在这里插入图片描述

命令模式

d +enter   删除光标所在行以及光标下一行

dd              删除光标所在行

x				 删除光标所在字符

Ndd 3dd    删除光标行开始一共三行

Ndd 3,5dd 删除3-5行

dG               删除光标所在行到文档尾

dgg         	 删除光标所在行到文档首

s				   字符替换,替换光标所在字符

yy   		      复制光标所在行   4yy

p          	     粘贴在光标所在的下一行

cc                  剪切光标所在行

G       			 跳转到文档尾的行首     15G 跳转到15行

gg                   跳转到文档首的行首

^                      跳转到行首

$                      跳转到行尾

u    			  	向左撤销

ctrl-r               向右撤销

***命令模式进入插入模式的方式***:

a		  插入光标后

A		  插入光标尾

i			插入到光标前

I			插入到行首

o		   插入到下一行

O		   插入到上一行

s		    删除光标字符并进入插入模式

S		    删除光标行并进入插入模式

末行模式

:wq(write quit)(!)

:q(quit)(!)

:15  跳转到第15行

:set nu  显示行号

/root 匹配root关键字

:noh  取消高亮显示

:1,5 co 10  复制1-5行到第十行下

:% s/root/000/ 关键字符的替换,替换的是每一行中第一次匹配的root关键字

:% s/root/000/g 关键字符的替换,替换的是每一行中所有匹配的root关键字

:r FILENAME 把指定文件内容读取当前文件光标的下一行
.*  

正则符:. 任意单个字符(数据内容)

​                *匹配前一个字符任意次

通配符:*任意长度的任意字符(文件名)

​				?匹配任意单个字符

文本内容处理命令

echo 打印命令(标准输入输出的命令)

[root@localhost ~]# echo helloworld
helloworld
[root@localhost ~]# echo $HOSTNAME            $引用变量
localhost.localdomain
[root@localhost ~]# echo "$HOSTNAME"          ”“弱应用符(可以解释特殊含义的字符)
localhost.localdomain
[root@localhost ~]# echo '$HOSTNAME'          ‘’强引用(解释特殊含义的字符)
$HOSTNAME
[root@localhost ~]# echo 当前主机时间`date`     ``命令替换符
当前主机时间Sat 26 Nov 14:54:02 CST 2022
[root@localhost ~]# echo 当前主机时间$(date)    $() 命令替换符
当前主机时间Sat 26 Nov 14:54:25 CST 2022

Linux中文件的描述符 0标准输入 1标准输出(正确输出) 2 错误输出

>  输出重定符(将程序的内容输出重定到指定文件--将内容写入文件,会覆盖源文件内容)		

>>  输出追加重定向符

<   输入重定向符

<<  终止结束符
#head /etc/passwd 1> file
#tail -2 /etc/passwd >> file
#cmd 2> file1  把cmd的错误结果输入到file1文件
#cmd &> file1  &表示1和2   把cmd正确或错误输出写入到file1文件==cmd 1>file1 2>&1
    |     管道符(无名管道)前一个命令的输出结果按照字符流的形式通过管道符连接后一个命令进行处理

|tee    T型管道 横向输出将前一个命令的标准输出作为后面文件的标准输入    |tee-a == >>    |tee == >

​				纵向输出将前一个命令的标准输出直接在终端打印显示

在这里插入图片描述

文件的行进行处理(将处理的结果显示在终端不会编辑)

cut 剪切

-c 字符        #cut -c 1-3 FILENAME
-d 分割字符     #cut -d 符号 -f 字段 FILENAME
-f 分割字段
[root@localhost ~]#date
[root@localhost ~]# echo 当前系统的时间`date|cut -d " " -f 4`
                  当前系统的时间16:19:29

sort 排序

默认按照文件行的字符进行比较(从小到大)
-r  降序 从大到小
-n  按照数值比较(从小到大)
-u  uniq(unique) 去重
#sort -nu FILENAME 将文件中的行按照数值从小到大显示,并且重复行只显示一次

uniq 去重(重复行必须相邻)

-c   显示重复次数
-d   显示文件重复出现的内容
-D   所有重复行

wc 文本统计(word count)

wc FILENAME 统计指定文件的行、单词数、字节数
-l 统计行数
-w 统计单词数
-m 统计字符数
-c 统计字节数

tr 字符替换命令

tr l 0  把l字符替换成0字符
tr hl 0 把hl字符都换成0字符
tr l  01 把l字符替换成0字符
tr -t hl 0 只把h字符换成0字符(等长字符替换)
tr -c l  0 把除了l字符之外的字符替换成0字符(反选定)
tr -d hl  删除字符hl
#echo 1   2     3|tr -s “ ”“ ” 将多个连续重复字符替换为单个字符
df-h

grep 文本过滤

格式: grep  '关键字'  FILENAME
 grep 'root' /etc/passwd      过滤关键字,有root关键字行打印到终端
 grep -o 'root' /etc/passwd   过滤关键字,只把root关键字打印到终端  
 grep -i 'ROOT' /etc/passwd   过滤关键字乎略大小写
 grep -v 'root' /etc/passwd   过滤关键字,把没有关键字的行显示
 #cat /etc/login.defs
 grep -v  '^#' /etc/login.defs   ^#以#号开头
 grep -v  '^#' /etc/login.defs  | grep -v '^$'   ^$ 空白行

作业题:

1.将/etc/passwd 文件中3,4 字段分别截取出来分别写入文件UID和文件GIU但是这两个文件中的信息是以数值由大到小的形式显示;

#cut -d ":" -f 3 /etc/passwd|sort -n >UID
#cut -d ":" -f 4 /etc/passwd|sort -n >GIU

2.通过查看时间命令将分别将年月日时分写入A文件

#echo `date`>A

3.告诉用户当前系统有多少用户 (/etc/passwd文件有多少行一行是一个用户信息)。

#wc -l /etc/passwd

4.不显示/etc/login.defs 文件中以#开头的行以及空白行。

#grep -v '^#|^$'/etc/login.defs
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳阳真的很菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值