近期学习的小总结,参考了学习的课程以及网上的一些资料~~
一、linux常用命令
(目前面试的过程中用到的命令)
ps 查看进程
top 显示进程信息
netstat 查看网络状态
二、linux三剑客
包含grep、sed、awk
1、grep:根据用户指定的模式对目标文本进行过滤,显示被匹配到的内容。
(1)命令格式: grep [options过滤要求] ‘正则表达式’ 文件
(2)options:可以通过 grep --help查看
①-c 表示匹配到的行的数量
例如:grep -c “abc” m7.txt
②-i 表示不区分大小写
例如:grep -i “abc” m7.txt
③-h 查询多个文件时不显示文件名称
例如:grep -h “abc” m7.txt m6.txt m5.txt m4.txt
④-l 查询多个文件时,只显示被匹配到的文件名称
例如:grep -l “abc” m7.txt m6.txt m5.txt m4.txt
⑤-n 显示匹配到的行及行号
例如:grep -n “abc” m7.txt
⑥-o 显示被匹配到的字符串
例如:grep -o “abc” m7.txt
⑦-v 显示不被匹配到的字符串
例如:grep -v “abc” m7.txt
⑧-r 递归选项,递归的检查目录下的所有子文件
例如:grep -r “abc”
⑨–color=auto 对匹配到的文本着色显示
2、sed:流处理器,处理过程为:
(1)命令格式:sed [options过滤要求] ‘[script地址定界] [编辑命令]’ 文件
(2)options:
①-h 显示帮助信息: sed -h
②-e 默认为该项,表示直接在命令模式上编辑
③-n 仅显示经sed处理过的行的内容
例如:sed -n ‘/abc/p’ s1.txt 打印内容为abc的行
④-i 直接编辑文件
⑤-r 支持使用扩展正则表达式
(3)编辑命令:
①a 新增
例如: sed -e ‘4 a newline’ s1.txt 在第4行后面添加文本并自动打印出文件内容
②i 插入
例如: sed -e ‘4i newline’ s1.txt 在第4行前面加文本并自动打印出文件内容
③d 删除
例如:sed -e ‘/newline/d’ s1.txt 删除文件中的newline并自动打印出文件内容
④c 取代
例如:sed -e ‘2c helloooo’ s1.txt 将第2行替换为helloooo并自动打印出文件内容
⑤p 打印
例如:sed -n ‘/abc/p’ s1.txt 打印内容为abc的行
⑥s 查找替换
替换标记:
g 全局替换
p 显示替换成功的行
w /path/TO/file 将替换成功的行保存到文件中
替换格式:
不输出内容直接修改:sed -i ‘s/替换的内容/将被替换成的内容/g’ 文件名
修改后直接输出内容:sed -e ‘s/替换的内容/将被替换成的内容/g’ 文件名
例如:
sed -i ‘s/abc/123/g’ s1.txt 将s1.txt中的abc替换成123
sed -e ‘s/abc/123/g’ s1.txt 将s1.txt中的abc替换成123
例如:sed -e ‘s/abc/123/gw s111.txt’ s1.txt 将s1.txt中的abc替换为123,并将替换过的行放到s111.txt中
(自动创建s111.txt)
3、awk:将文件逐行读入,以空格为默认分隔符将每行切片,切片后的部分再进行处理
(1)命令格式:awk [options参数] ‘[pattern模式] [action需要执行的动作]’ 文件
(2)options:
-F fs 指定分隔符fs 例如: -F : 表示分隔符为: -F ,表示分隔符为,
-v var=value 赋值一个变量 例如:-va=1 表示给a赋值为1
-f filename 从文件中读取awk命令
(3)pattern:
BEGIN 处理文本之前要执行的操作(第一条输入记录被处理之前)
END 处理文本之后要执行的操作(最后一条输入记录被读取之后)
正则表达式
(4)内置的变量:
$0 整条记录
$1 当前行的第一个字段,同理 $2第2个字段 $n第n个字段
NF 浏览记录的域的个数
NR 已读的记录数
FS 设置输入域分隔符
OFS 输出域分隔符
RS 输入记录分隔符
ORS 输出记录分隔符
(5)实例:
①查找包含abc的行
awk ‘/abc/{print NR}’ a1.txt
统计包含abc的行数
awk -va=0 ‘/abc/{a+=1}END{print a}’ a1.txt
②参考链接:linux awk命令