day04
vim vi文本编辑器 (重点)
vim FILENAME
vim
命令模式:d+回车键 删除光标所在行和下一行
dd 删除光标所在行
4dd 从光标所在行开始一共删除四行
dG 删除光标所在行,以及到文档尾
dgg 删除光标所在行,以及到文档首
s 替换,替换光标所在字符(删除光标所在字符)
S 替换,替换光标所在行 ------进入插入模式
G 跳转到文档末行的行首
gg 跳转到文档首行的行首
5G 跳转到文件的第五行
^ 光标跳转到行首
$ 光标跳转到行尾
yy 复制光标所在行 4yy 4,8yy
p 粘贴在光标的下一行
cc 剪切光标所在行
u 向左撤销
ctrl+r 向右撤销
命令模式 —进入插入模式
s 删除光标所在字符进入插入模式
S 删除光标所在行进入插入模式
a 插入到光标后
A 插入到光标所在行的行尾
o 插入到光标所在下一行
O 插入到光标所在上一行
命令模式 ----进入末行模式
:w 写入保存
:w FILENAME
:q 退出
:q! 强制退出
:wq!
:set nu 显示行号
:set nonu 取消行号
:%s /root/000/ 匹配所有行中第一次出现root关键字替换为000
:%s /root/000/g 匹配所有行中出现root关键字替换为000
:12,18 co 40
:r FILENAME 将指定文件内容读取到光标所在下一行
:.!cat/etc/passwd 将命令结果显示到文档当中
echo 打印 标准输入 输出
$ 引用变量
$? 上一条命令的返回结果(0-255)0便是成功,非0即失败
" " 弱引用 可以解释特殊字符含义 可以显示变量的值
’ '强引用 不可以解释特殊字符含义 不可以显示变量的值
``命令替换 $()
#echo $SHELLS 打印变量值
#echo $? 查看上一条命令的返回值
linux中的程序对于文件描述符0 1 2 标准输入 2错误输出
> 输出重定向符,将程序的输出结果重定到指定文件 1> 2>
>> 追加输出重定符
>>终止符
…将前一命令的输出(正确或者错误)结果输入一个文件…
#echo 1234 > file
#echo 234 >> file
#cat /etc/passwd >file
#> file2 创建file2文件
#cat << edf
>aaaa
>bbbb
>edf
aaaa
bbbb
#cat << edf > file 编辑file文件写入内容
>aaaa
>bbbb
>edf
l 管道符 将前一个程序(命令)输出结果通过管道符按照字符流的形式传递给后面程序继续给字符流进行处理
|tee T型管道 |tee-a
横向输出 将程序的输出结果重定到指定文件
纵向输出 将程序输出结果显示到终端
文本内容处理相关的命令
(1) 通过处理命令只是将处理结果显示在终端不会对源文件更改
(2) 按照指定文件的行进行处理
cut 文本剪切
-c 字符
-d 分割符类型
-f 指定字段
#cat /etc/passwd
sort 文本排序
按照行的字符进行比较(从小到大)
-n 数值 (从小到大)
-r 降序
-u 去重
-t 分隔符
-k 字段
uniq 去重
重复行必须相邻
-c 统计每一行重复次数
-d 查看重复行的内容
-D 查看所有重复行内容
eg:
[root@www /]# date
Sun Nov 27 15:57:51 CST 2022
[root@www /]# date | cut -d " " -f 4
15:59:02
[root@www /]# echo 当前系统的时间是`date | cut -d " " -f 4`
当前系统的时间是16:00:02
eg: /etc/passwd
[root@www /]# echo "/sbin/nologin在/etc/passwd重复出现过`cut -d : -f 7 /etc/passwd | sort |uniq -c |head -4 | tail -1| cut -d " " -f 6`"
/sbin/nologin在/etc/passwd重复出现过41
wc word count utf-8
wc FILENAME(行数 单词数 字节数 FILENAME)
-l 行数
-w 单词数
-c 字节数
-m 字符
eg:显示系统当前用户
tr 字符替换命令:%s/root/123/
tr set1 set2
tr ab 12
-t 等长字符替换
-c 反选定
-d 删除指定字符
-s 将多个重复字符替换成单一字符
grep 文本关键字过滤显示 文本三剑客 grep sed awk
grep '模式匹配'FILENAME
-i 忽略大小写
-o 只显示关键字
-v 反过滤
#cat /etc/login.defs
查看配置文件的关键参数信息并写入a.txt
^ 表示行首 ^# 以 为开头的行
$ 表示行尾 ^$ 表示空行
作业
[root@localhost ~]# cut -d : -f 3 /etc/passwd | sort -nr > UID
[root@localhost ~]# cut -d : -f 4 /etc/passwd | sort -nr > GIU
[root@localhost ~]# date | cut -d " " -f 1-3 > A
[root@localhost ~]# cat A
Mon Nov 28
[root@localhost /]# wc -l /etc/passwd
[root@localhost ~]# grep -vE '^#|^$' /etc/login.defs