一.linux基本命令思维导图
二.文本编辑-vi命令
区分命令模式和编辑模式
查找字符串:
在命名模式,输入/
查找某一行内容:
在命令模式,shift+:,输入set number 显示行号,然后输入行号,可直接跳转
复制粘贴:
在命令模式,yy复制某一行,p粘贴到下一行
快速删除:
删除某一行:dd
快速删除某一行下面所有行:跳转到指定行,先999,然后dd
快速跳到文件首行和末行
跳首行:gg
跳末行:G
三.文件内容统计
1.wc:统计字数相关信息
wc --help 输出帮助文档
#查看指定文档包含的单词数
wc -w HelloWorld.txt
2.sort:排序
#掌握3个参数
# -n 将字符串转换成数值型,按数值大小排序
# -r 倒序排序
# -k 选择某列进行排序
sort num.txt
sort -n num.txt
sort -nr nu..txt
#按照文档第二列进行数值排序,默认空白符作为分割符号
sort -k 2 -n num2.txt
3.uniq:检查重复的行列
#返回去重后的行
uniq hello.txt
#返回没有重复的行
uniq -u hello.txt
#统计每行的重复数量
uniq -c hello.txt
#去重遇到的坑
a
a
b
a
a
#对于以上数据,执行uniq,得道的结果是a b a,这是因为没有事先排序
sort text.txt | uniq
4.head:取前N条数据
四.日期相关命令date
#按照指定格式打印当前日期
date +"%Y-%m-%d %H:%M:%S"
#2021-01-07 19:30:58
#输出指定日期的时间戳
date --date="2026-01-01 00:00:00" +%s
#1767196800
#输出毫秒级时间戳
date +%s"000"
#输出昨天日期
date --date="1 days ago" +%Y-%m-%d
#2021-01-06
#输出上个月有多少天
date --date="2026-03-01 1days ago" +%d
#28
五.进程相关
# 显示系统中所有进程
ps -ef
#过滤
ps -ef | grep xxx
# 可以查看端口信息
netstat -anp | grep ssh
# 杀死进程
kill PID
kill -9 PID
六.Linux三剑客之grep-查找
grep - 常用于查找文件里符合条件的字符串
#掌握3个参数
# -n 显示行号
# -i 忽略大小写
# -v 忽略包含指定字符串的数据
grep -I ABC -n hello.txt
#7:abc
ps -ef | grep java | grep -v grep
七.Linux三剑客之sed-批量编辑
sed 默认不会直接修改源文件数据,而是会将数据复制到缓冲区中,修改也仅限于缓冲区中的数据,最终把缓冲区内的数据输出到控制台。
添加操作,两个参数:a代表在后面添加(append),i代表在前面插入(insert)
#添加,
#在第一行前面插入
sed '1ihaha' hello.txt
#在第一行后面添加
sed '2ahaha' hello.txt
#在最后一行的前面添加
sed '$ihaha' hello.txt
删除操作,使用参数d
#删除第一行
sed '1d' hello.txt
#删除最后一行
sed '$d' hello.txt
替换操作,[address]s/pattern/replacement/flflags
address 表示指定要操作的具体行,是一个可选项
s 表示替换操作,pattern 指的是需要替换的内容,replacement指的是要替换的内容
flags表示替换形式
第一种就是flflags可以表示为1~512之间的任意一个数字,表示指定要替换的字符串在这一行中出现第几次时才进行替换
第二种就是flags可以直接表示为g,这样的意思就是对每一行数据中所有匹配到的内容全部进行替换,如果flags位置的值为空,则只会在第一次匹配成功时做替换操作。
如果flags位置的值为空,则只会在第一次匹配成功的时候做替换操作。
#替换所有
sed 's/l/a/g' hello.txt
#替换第一次匹配成功的值
sed 's/l/a/' hello.txt
#替换指定的行
sed '2s/l/a/g' hello.txt
以上操作都不会修改源文件,如果需要,可以加入参数i
sed -I 's/l/a/g' hello.txt
case:修改文件第61行的ip信息,把127.0.0.1修改为192.168.182.130
sed -i '61s/127.0.0.1/192.168.182.130/1' redis.conf
八.Linux三剑客之awk-文本处理
awk [option] programe file
option是一个可选项,一般在这里来指定文件中数据的字段分隔符
programe 是具体的处理逻辑
file表示我们要操作的文件
awk在文本处理时,会自动给每行变量从1开始。
$1表示是文本中的第1个数据字段。
$2表示是文本中的第2个数据字段。
$0 代表整个文本行的内容。
可将正则表达式融入programe中