vim 文本编辑器 vi
# vim /etc/passwd
Vim file
命令模式 (无任何信息,显示文件名)
lnsert(终端最后一行显示lnsert) 编辑文本内容
d+enter 删除光标所在行以及光标下一行
dd 删除光标所在行
Ndd
3dd 删除光标行开始一共三行
3,5dd 删除光标行开始3-5行的信息
x 删除光标所在字符
dG 删除光标所在行到文档尾
dgg 删除光标所在行到文档首
s 字符替换,替换光标所在字符
yy 复制光标所在行
Nyy 参考Ndd
p 粘粘在光标所在的下一行
cc 剪切光标所在行
G 跳转到文档尾的行首
gg 跳转到文档首的行首
^ 跳转到行首
$ 跳转到行尾
u 向左撤销
ctrl-r 向右撤销
命令模式进入插入模式的方式
a 插入光标后
A 插入到行尾
i 插入光标前
I 插入到行首
o 插入到下一行
O 插入到上一行
s 删除光标字符进入插入模式
S 删除光标所在行进入插入模式
末行模式(:)
:w 写入保存
:w FILEMNAME
:wq 保存退出
:q 退出
:q!强制退出
:wq! 强制保存退出
:N 跳转到指定行
如:15 跳转到15行
/root 匹配root关键字
:noh
:1,5 co 10
:%s/root/ / 关键字符替换,替换的是每一行中第一次匹配的root
:%s/root/ /g 关键字符替换,替换的是每一行中所有匹配的root
.*
正则符:.任意单个字符(数据内容)
*匹配前一个字符任意次
通配符:*任意长度的任意字符(文件名)
?匹配任意单个字符
开启VI的行号提示功能
:set nu
:set nuon
文本内容处理命令
echo 打印(标准输入输出的命令)
$ 引用变量
$? 上一条命令的返回结果(0-255) 0成功 非0失败
“” 弱引用 可以解析特殊字符的含义 可以显示变量的值
"" 强引用 不解析特殊字符的含义 不可显示变量的值
` 命令替换 $() #echo $SHELL 打印变量值
#echo $? 查看上一条命令的返回值
[root@www ~]# echo $SHELL /bin/bash
[root@www ~]# echo "$SHELL" /bin/bash
[root@www ~]# echo '$SHELL' $SHELL
[root@www ~]# echo
当前系统时间是
date` 当前系统时间是sun Nov 27 14:30:01 csT 2022 [root@www ~]
# echo 当前系统时间是$(date)
当前系统时间是sun Nov 27 14:31:28 cST 2022
#echo helloworld
#[root@localhost ~]# echo $HOSTNAME $引用变量
localhost.localdomain
#[root@localhost ~]#echo “$HOSTNAME” “”弱引用
localhost.localdomain
#[root@localhost ~]#echo ‘$HOSTNAME ’ ‘ ’强引用
$HOSTNAME
$() 内容替换符
cut 剪切
-c 字符
-d 分割字符
-f 分割字段
[root@localhost /]# history |cut -d " " -f 5- | sort |uniq -c | sort 、 tail -3
history |cut -d " " -f 5- | sort |uniq -c | sort | tail -3
sort 排序
默认按文件行的字符进行比较(从大到小)
-r 降序 从大到小
-n 按照数值比较(从小到大)
-u unique 去重
重复行必须相邻 [root@www/]# sort -u ccc 12 123 34 45 [root@www /]# sort ccc / uniq 12 123 34 45
-c 统计每一行重复次数 -d 查看重复行的内容 -D 查看所有重复行的内容 [root@www/]# sort ccc / uniq -c 1 12 4 123 1 34 1 45 [root@www /]# sort ccc / uniq -d 123 [root@www/]# sort ccc / uniq -D 123 123 123 123
-t 分隔符
-k 字段
[root@www / ]# sort -t " " -k 2 -n bb abc 0 line4 abc 1 line1 abc 2 line7 abc 4 line6 abc 6 line5 abc 8 line2 abc 9 line3
wc文本统计
-l 统计行数
-w 统计
-m 统计
eg:显示系统有多少用户
[root@www /]# wc -l /etc/passwd
47 /etc/passwd
[root@www /]# cat /etc/passwd | wc -l
47
[root@www /]# wc -1 /etc/passwd | cut -d " " -f 1
47
uniq 去重,重复行必须相邻
#sort aaa | uniq
tr字符替换命令
[root@localhost ~]# echo helloworld | tr l 0 把l字符替换成0字符
[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 " " " "
grep 文本过滤显示命令***shell 文本三剑客
grep "模式匹配' FILENAME -i 忽略大小写 -o 只显示关键字 -v 反过滤 #cat /etc/login.defs 查看配置文件的关键参数信息并写入a,test
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 < 输出重定向符 将程序的输出结果重定到指定文件 1> 2>
2 << 输出追加重定向符 将前一个命令的输出(正确或错误)结果写入一个文件
3 >输入重定向符
4 >>终止结束符
| 管道符(无名管道)前一个命令的输出结果安装字符的形式通过管道符连接后一个命令进行处理
|tee T型管道 横向输出将前一个命令的标准输出作为后面文件的标准输出 |tee==> |tee -a ==>>
纵向输出将前一个命令的标准输出直接在终端打印显示
timedatectl set-timezone Asia/Shanghai 时间调整