vim,文件内容处理

vim 文本编辑器

1:命令模式:直接通过vi打开编辑器或文件名

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

​	dd	删除光标所在行

​	x	删除光标所在字符

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

​	Ndd	3,5dd	删除3~5行的内容

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

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

​	s	字符替换,替换光标所在字符()

​	yy	复制光标所在行		4yy:从光标开始复制四行

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

​	cc	剪切光标所在行

​	G	跳转到文档尾的行首

​	gg	跳转到文档首的行首

​	^	跳转到行首

​	$	跳转到行尾

​	U	撤销(返回到上一步)

​	CTRL+R	撤销(返回到下一步)

从命令格式进入插入格式的方式:

	a:	插入到光标后

​	A:	插入到光标所在行行尾

​	i:	插入到光标前

​	I:	插入到光标所在行的行首

​	o:	插入到下一行

​	O:	插入到上一行

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

​	S:	删除光标进入插入模式

2:插入模式:

​ insert(终端最后一行显示insert)编辑文件内容

3:末行模式:通过esc和命令模式切换

末行格式退出:


	:wq	保存退出

​	:q 	退出

​	:q!	强制退出

​	:wq!	强制保存退出

​	:15	跳转到第15行

​	:set nu	会在每一行的前缀显示该行的行号

​	/root	匹配root关键字

​	:noh	取消高亮显示

​	:1,5 co 10	复制1~5行至第十行	

​	:%5/root/000/		关键词替换root变为000,替换的是每一行中第一次匹配到的root关键词

​	:%5///g	关键词替换,替换的是每一行中所有匹配到的关键词

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

注:多种模式切换依赖命令模式

​ .*(正则符.表示任意单个字符*表示匹配一个字符任意次)(针对数据内容)

​ *(通配符*表示任意长度的任意字符?表示匹配任意单个字符)(针对文件名)

文件内容处理命令:

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

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

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

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

>> 输出追加重定符

<输入重定向符

<<终止结束符

#head /etc/passwd 2> 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 == > |tee -a == >>

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

cut 剪切

特点1:文件的行进行处理 2

-c 字符
-d 分割字符
-f 分割字段
[root@www ~]# echo 当前系统的时间`date | cut -d " " -f 4`
当前系统的时间03:19:28

sort 排序

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

uniq 去重

# sort aaa | uniq
-c	显示重复次数
-d	显示文件重复出现的内容
-D	所有重复行
[root@localhost /]# history |cut -d " " -f 5- | sort  |uniq -c | sort | tail -3

wc 文本统计 (word count)

wc FILENAME	统计指定文件的行、单词数、字节数
-l	统计行数
-w	统计单词数
-c	统计字节
-m	统计字符
#echo “bbb文件一共有`wc -l bbb| cut -d ‘ ’-f 1`行”

tr 字符替换命令

tr set1 set2
# echo helloworld | tr 1 0	把1字符替换成0字符
# echo helloworld | tr hl 0	把h以及l字符替换成0字符
# echo helloworld | tr l 01 把l字符替换成0字符
# echo helloworld | tr -t hl 0 等长字符替换;把h字符替换成0字符
# echo helloworld | tr -c l 0 反选定;除了l字符之外的字符替换成0字符
# echo 1    2        3 | tr -s “  ”“ ”
		将多个连续重复字符替换成单个字符;将多了的连续重复的空额字符替换成单个空格字符
# df -h	查看文件系统使用情况

grep 文本过滤 文本三剑客 grep sed awk

格式: 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 '^$'   ^$ 空白行

作业:

2:
[root@localhost ~]# cut -d: -f 3 /etc/passwd | sort -r >UID
[root@localhost ~]# cut -d: -f 4 /etc/passwd | sort -r >GID
3:
[root@localhost ~]# echo $( date | cut -d " " -f 6,2,3,4)> A
4:
[root@localhost ~]# echo "this redhat have `wc -l /etc/passwd`users "
5:
[root@localhost ~]# grep -v '^#' /etc/login.defs| grep -v '^$'

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值