文本编辑命令及文本内容处理命令

本文详细介绍了Linux中vim编辑器的常用命令,包括删除、复制、粘贴和移动等操作,以及如何在命令模式和插入模式之间切换。此外,还讲解了文本内容处理命令,如echo、sort、wc、uniq和tr等,用于输出、排序、统计和字符替换。文章还演示了这些命令的实际应用,如文件内容的编辑和过滤。最后,给出了基于这些命令的作业题,涉及文本内容的提取和排序。
摘要由CSDN通过智能技术生成

2022.11.26

DAY04

一,文本编辑命令

vim 文本编辑器 vi nano

命令模式:

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

dd 删除光标所在行

x 删除光标所在字符

Ndd 3dd 删除光标行开始一共三行 3,5 表示删除3到5行内容

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

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

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

yy 复制光标所在行 4yy

p 粘贴光标所在下一行

cc 剪切光标所在行

G 跳转到文档尾的行首

gg 跳转到文档首的行首

^ 跳转的行首

$ 跳转到行尾

u 向左撤销

ctrl-r 向右撤销

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

a 插入光标后

A 插入到光标所在行的行尾

i 插入光标前

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

o 插入的下一行

O 插入到上一行

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

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

末行模式 (:)

:wq

:q

:q!

:wq!

:15

:set (no)nu (不)显示行数

/root 匹配root关键词

:noh

:1,5 co 10

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

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

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

:w /// 保存

正则符:

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

*匹配前一个字符任意次

通配符:

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

?匹配任意单个字符

vim file

(1) 命令模式 (没有任何信息,显示文件名)

(a) | |(esc)

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

(2)

(esc)| |(😃

末行模式(:)

二,文本内容处理命令

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

#echo   helloworld
[root@B ~]#   echo  $HOSTNAME
B
[root@B ~]# hostname
B
[root@B ~]# echo  "$HOSTNAME"
B
[root@B ~]# echo '$HOSTNAME'
$HOSTNAME

$  引用变量
“”  弱引用符   (可以解释特殊含义的字符)
‘’  强引用符  (不可以解释特殊含义的字符)
[root@B ~]# echo  $(date)
2022年 11月 26日 星期六 14:51:48 CST
[root@B ~]# echo `date`
2022年 11月 26日 星期六 14:52:30 CST
··  命令替换符
$() 命令替换符

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

大于号: 输出重定符(将程序的内容输出重定到指定文件–将内容写入文件,会覆盖源文件内容)

大于大于号:输出追加重定向符

小于号:输入重定向符

小于小于号:终止结束符

#head  /etc/passwd  >  file
#tail -2 /etc/passwd >> file
#cmd 2> file  把cmd的错误结果输入到file文件
#cmd &> file1  & 表示1和2   把cmd正确或错误输出写入到file文件 == cmd  1> file1 2> &1

| 管道符(无名管道)前一个命令的输出结果安装字符流的形式通过管道符连接后一个命令进行处理

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

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

文件的行进行处理;将处理的结果显示在终端不会对源文件进行修改

cut 剪切

-c  字符
-d  分割字符
-f  分割字段
[root@B ~]# cut -d : -f 3 file.txt
0
1
2
3
4
5
6
7
8
11
[root@B ~]# echo  `date|cut -d " " -f 5`
16:19:29

sort 文本内容排序

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

wc 文本统计

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

uniq 去重,重复行必须相邻

[root@B ~]# sort aaa  | uniq 
 -c   显示重复次数
 -d   显示文件重复出现的内容
 -D   所有重复行

tr 字符替换命令

tr set1 set2

[root@B ~]# echo helloworld  | tr l 0  把l字符替换为0字符
he00owor0d
[root@B ~]# echo helloworld  | tr hl  0  把h和l字符替换为 0字符
0e00owor0d
[root@B ~]# echo helloworld  | tr l  01  把l字符替换为0字符
he00owor0d
[root@B ~]# echo helloworld  | tr -t hl 0    等长字符替换;把h字符替换为0字符
0elloworld
[root@B ~]# echo helloworld  | tr -c  l  0   反选定;除了l字符之外的字符替换为0字符
[root@B ~]# echo helloworld  | tr -d hl  删除字符; 删除hl字符
[root@B ~]# echo  1   2    3 | tr -s " " " "
将多个连续重复字符替换1为单个字符;将多个连续重复的空格字符替换成单个空格字符

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.课程笔记总结

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

请添加图片描述

请添加图片描述

请添加图片描述

3.通过查看时间命令将分别将年月日时分写入A文件
请添加图片描述

4.告诉用户当前系统有多少用户 (/etc/passwd文件有多少行一行是一个用户信息)。
请添加图片描述

5.不显示/etc/login.defs 文件中以#开头的行以及空白行。
请添加图片描述

  • 12
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值