目录
vim 文本编辑器1.命令模式命令模式进入插入模式末行模式 进入 :echo 打印命令(标准输入输出命令)linux中文件输入,输出的描述 |管道符(无名管道)cut 剪切 sort 排序wc 文本统计 (word count)uniq 去重 tr 字符替换命令grep 文本过滤
vi 主机默认的文本编辑器
1.命令模式
d +enter 删除光标所在行及光标下一行
dd 删除光标所在行
x 删除光标所在字符
Ndd 3dd 删除光标行开始一共三行
Ndd 3,5 dd 删除光标行开始三至五行
dG 删除光标所在行到文档尾
dgg 删除光标所在行到文档首
s 字符替换,替换光标所在字符
yy 复制光标所在行
p 粘贴(粘贴在光标所在的下一行)
cc 剪切光标所在行
G 跳转到文档尾的行首
gg 跳转到文档首的行首
^ 跳转到行首
$ 跳转到行尾
u 向左撤销
ctrl+r 向右撤销
命令模式进入插入模式
a 插入到光标后
A 插入到光标所在行尾
i 插入到光标前
I 插入到行首
o 插入到下一行
O 插入到上一行
ss 删除光标字符进入插入模式
S 删除光标行进入插入模式
末行模式 进入 :
: wq 保存退出
: q 退出
:q! 强制退出
:wq! 强制保存退出
: 数字 跳转到对应行
: set nu 显示行数
: set nonu 取消显示行数
/root 匹配root关键字
:noh 取消高亮显示
:1,5 co 10 把一到五行复制粘贴到十行下方
:% s/root/000/ 关键字符替换,替换每一行中第一次匹配的root关键词
:% s/root/000/g 关键字符替换,替换:;每一行中所有匹配的root关键词
:r FILENAME 把指定文件内容读取当前文件光标的下一行
文本内容处理命令
echo 打印命令(标准输入输出命令)
#echo hello_world [root@localhost ~]# echo $HOSTNAME $ 引用变量 locahost.localdomain [root2localhost ~]# echo "$HOSTNAME" "" 弱引用符 (可解释特殊含义的字符) localhost.localdomain [root2localhost ~]# echo '$HOSTNAME' '' 强引用(不解释特殊含义字符) $HOSTNAME [root2localhost ~]# echo 当前主机时间`date` `` 命令替换符 当前主机的时间Sat Nov 26 01:51:45 EST 2022 [root2localhost ~]# echo 当前主机的时间$(date) $() 命令替换符 当前主机的时间Sat Nov 26 01:51:45 EST 2022
linux中文件输入,输出的描述
0标准输入 1标准输出(正确输出)2错误输出
> 输出重定向符(将程序的内容输出到指定文件--将内容写入文件,会覆盖原文件内容)
>> 输出追加重定向符
< 输入定向符
<< 终止结束符
#head /etc/passwd > file #tail -2 /etc/passwd >> file #cmd 2> file1 把cmd的错误结果输入到file1文件 #cmd &>file2 &表示1和2 把cmd正确或者错误输出写入到file1文件 == 1>file1 2>&1
|管道符(无名管道)
前一个命令的输出结果按照字符流的形式通过管道符连接后一个命令进行处理
|tee T型管道 横向输出将前一个命令的标准输出作为后面文件的标准输入 |tee== > |tee -a ==>>
纵向输出将前一个命令的标准输出直接在终端打印显示
cut 剪切
-c 按照字符进行剪切
-d 分割字符
-f 分割字段
[root@localhost /]# cut -d : -f 3 file.txt 0 1 0 1 #[root@localhost /]# echo 当前系统时间date |cut -d " " -f 4 当前系统时间16:19:06
sort 排序
默认按照文件行的字符进行比较(从小到大)
-r 降序 从大到小 -n 按照数值比较(从小到大) -u (unique) 去重 #sort -nu aaa 将文件aaa的行数值从小到大显示,并且重复行只显示一次
wc 文本统计 (word count)
wc FILENAME 统计指定文件的行,单词数,字节数
-l 统计行数 -w 统计单词数 -m 统计字符数 -c 统计字节数 [root@localhost /]# wc -l bbb 1 bbb [root@localhost /]# echo "bbb文件一共有`wc -l bbb |cut -d '' -f 1`行"
uniq 去重
重复行必须相邻
[root@localhost /]# sort aaa |uniq -c 显示重复次数 -d 显示文件重复出现的次数 -D 所有重复行 [root@localhost /]# sort aaa |uniq -d 34 [root@localhost /]# sort aaa |uniq -D 34 34 34 34
tr 字符替换命令
tr set1 set2
[root@localhost /]# echo helloworld | tr l 0 把l字符替换成0字符
he00wor0d
[root@localhost /]# echo helloworld | tr hl 0 把h以及l字符替换成0字符
[root@localhost /]# echo helloworld | tr l 01 把l字符替换成0字符
[root@localhost /]# echo helloworld | tr -t hl 0 等长字符替换:把h字符替换成0字符
[root@localhost /]# echo helloworld | tr -c l 0 反选定:处理l字符之外的字符替换为0字符
[root@localhost /]# echo helloworld | tr -d |hl 删除字符:删除hl字符
[root@localhost /]# 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 '^$' ^$ 空白行