软件测试工程师常用linux命令

本文详细介绍了软件测试工程师常用的Linux命令,如cat、head、tail、cut、more、uniq、sort、wc等,以及如何定义和查看变量。此外,还讲解了Linux文本处理的三剑客:grep、sed和awk的使用方法,包括它们的选项、模式匹配和命令。最后,通过find命令展示了文件查找的技巧,并提供了日志分析的案例,如统计测试人员执行用例的数量。
摘要由CSDN通过智能技术生成

软件测试工程师常用linux命令

1. cat

  • cat file_name 显示文件全部内容
  • cat -b file_name 显示文件非空行内容
  • cat -E file_name 在文件每行末尾显示$,常用于管道功能
  • cat -n file_name 显示内容和行号

2. head:默认获取文本前10行

  • head -n 文件路径 获取前n行

3. tail:默认获取文本后10行

  • tail -n 文件路径 获取后n行

4. cut

  • 取出文本指定的列
  • 默认以空格或tab键进行分隔
  • 选项
    • -d 指定分隔符
    • -f 指定获取列号
    • cut -d' ' -f5 test.txt 打印以空格分隔的第5列

5. more:翻页显示

6. uniq

  • 去除重复的内容
  • 选项
    • -d 仅打印重复的元素
    • -c打印元素重复的个数

7. sort

  • 对文本内容进行排序
  • 默认以字符的ASCII码数字从小大排序
  • 选项
    • -n 以数值大小排序
    • -r 倒序
    • -t指定分隔符,默认为空格
    • -knum指定以某个字段来排序

8. wc

  • 计算文本数量
  • 选项
    • wc -l 文本名打印行数
    • wc -w 文本名打印单词数
    • wc -c 文本名 打印字节数
    • wc -L 文本名 打印最长行的字节数

9. 定义变量

  • 变量名='变量值'
  • 变量名=" 变量值"
  • 变量名=${linux命令}

10. 查看变量

  • 方式1:
    • $变量名
  • 方式2:
    • "$变量名"
  • 方式3:
    • "${变量名}" 标准使用方式(强烈推荐使用)
  • 方式4:
    • ${变量名} 推荐使用
      11. 内置变量
  • $0 获取当前执行的shell脚本文件名,包括脚本路径
  • $n 获取当前执行的shell脚本第n个参数值,n=1…9,如果n大于9需要用大括号括起来${10}
  • $# 获取当前shell命令行汇总参数总个数
  • $? 获取执行上一个指令的返回值(0为成功,非0为失败)

1. 常用快捷键

contrl+l 清除工作空间
contrl+c退出终端
contrl+r 搜索

2. linux文本三剑客

1. grep
  • 两种形式:
    • grep [option] [pattern] [file1,file2,...]
    • some command | grep [option] [pattern]
  • 选项
-i									忽略大小写
-c									只输出匹配行的数量
-n 									显示行号
-v									取反
-o									仅显示匹配到的字符串
-r									递归搜索
-E									支持扩展正则表达式
-W									匹配整个单词
-l									只列出匹配的文件名
-F									不支持正则,按字符串字母意思匹配

2. sed(脚本增删改查–针对行)
  • 流编辑器,对文本逐行处理
  • 两种形式
    • sed [option] "pattern command" file
    • some command | sed [option] "pattern command"
  • 选项
-n									只打印模式匹配的行
-f									加载存放动作的文件
-e									以选项中指定的script来处理输入的文本文件
-r									支持扩展正则
-i									以选项中指定的script文件来处理输入的文本文件
  • pattern 模式
5									只处理第五行
5,10								只处理第五行到第十行
 /pattern1/							只处理能匹配pattern1的行
/pattern1/,/pattern2/				只处理从匹配pattern1的行到匹配pattern2的行
  • cmmand命令
    • 查询
      p打印
    • 新增
      a 在匹配行后新增
      i 在匹配行前新增
      r 外部文件读入,行后新增
      w 匹配行写入外部文件(写入一个新文件)
    • 删除
      d
    • 修改
      s/old/new/ 只修改匹配行中第一个old
      s/old/new/g 修改匹配行中所有的old
      s/old/new/ig 忽略大小写
      c 取代
3. awk(针对列)
  • 处理数据并生成报告
  • 两种形式
    • awk 'BEGIN{}pattern{commands}END{}' file
    • some command | grep [option][
模式									含义
BEGIN{}								处理数据之前执行
pattern								匹配模式
{commands}							处理的命令
END{}								处理数据之后执行
  • 内置变量
内置变量								含义
$0									整行内容
$1~$n								当前行的第1~n个字段
NF(Number Field)					当前行字段数(a aa aaa 表示有3个字段数)
NR(Number Row)						当前行行号,从1开始
FS(Field Separator)					输入字段分隔符,默认为空格或tab键
RS(Row Separator)					输入行分隔符,默认为回车符
OFS	(Output Field Separator)		输出字段分隔符,默认为空格
ORS(Output Row Separator)			输出行分隔符,默认为回车符
  • printf 格式符
%s									字符串
%d									十进制数
%f									浮点数
  • 修饰符
- 									左对齐
+									右对齐
  • pattern匹配模式
 /pattern1/							只处理能匹配pattern1的行
/pattern1/,/pattern2/				只处理从匹配pattern1的行到匹配pattern2的行
  • 补充
    • $NF 打印最后一列
    • $(NF-1) 打印倒数第二列
    • awk 'BEGIN{FS=":"}{printf $1} 文件名打印第一列
    • awk ' 'BEGIN{FS=":"}{printf "%-20s%-20s\n",$1,$NF} 文件名
    • awk ' 'BEGIN{FS=":"} /pattern1/,/patern2/ {printf "%-20s%-20s\n",$1,$NF} 文件名 加上正则匹配
    • awk 'BEGIN{FS=" "} if条件表达式 {printf "%-20s%-20s\n",$1,$NF} 文件名 加上if表达式
    • awk 'BEGIN{FS=" "} $n ~ "bin" {printf "%-20s%-20s\n",$1,$NF} 文件名 某列模糊匹配
    • awk 'BEGIN{FS=" "} $n ~ "bin" {count++; printf "%-20s%-20s\n",$1,$NF} END{printf "%-20s%-20s\n","total","count"} 文件名 wc -l 在末尾加上总行数打印
4. find
  • 格式详解
    find [路径] [参数] [关键字] [动作]
  • 参数:
-name 								按照文件名查找文件
-type 							查找某一类型文件
-mtime							查找某天修改的文件
-path "子目录"						在指定目录的的子目录下查找,一般与-prune使用
-prune							在查找文件时,忽略指定的内容,不能和-depth共用,否则会自动忽略prune
  • 动作:
-print 				默认属性,打印信息
-ls 				列出文件详细属性
-exec 命令 {} \;		对过滤的文件进行下一步操作
注意:
		{} 就相当于过滤出来的文件
		操作类似于 | xargs 命令
  • 命令案例
find . -name "passwd*" -exec cp {} {}.bak \;
find . -name "*txt.bak" -exec cp {} {}.bak \;
find . -name "*bak.bak" | xargs rm -f 
find . -name "*txt.bak" -exec rm -f {} \;
5. 日志分析案例

1. 统计每位测试人员执行用例总数

BEGIN{
	print "%-10s%-10s\n","Tester","TotalTescases"
}
{
	USERS[$4] += 1
}
END{
	for (u in USERS)
		print("%-10s%-10d\n",u,USERS[U]
}

2. 分别统计每位测试人员执行用例成功和失败的总数

BEGIN{
	print "%-10s%-10s%-10s\n","Tester","PassTotal","FailTotal"
}
{
	if ($5 	== "Pass")
	{
		SUCCESS[$4]  += 1
	}else
	{
		FAIL[$4] += 1
	}
	USERS[$4] += 1
}
END{
	for (u in USERS)
		print("%-10s%-10d%-10d\n",u,SUCCESS[u],FAIL[u]
}

3. 将1、2合并,同时分别统计每位测试人员执行用例CRITICAL、ERROR日志等级数以及所有测试人员每项总数

BEGIN{
	print "%-10s%-10s%-10s\n","Tester","ErrorTotal","CriticalTotal","PassTotal","FailTotal"
}
{
	if ($5 	== "Pass")
	{
		SUCCESS[$4]  += 1
	}else
	{
		FAIL[$4] += 1
	}

    if ($3 == "ERROR")
    {
        ERROR[$4] += 1
    }
    if ($3 =="CRITICAL")
    {
        CRITICAL[$4] += 1
    }
	USERS[$4] += 1
}
END{
	for (u in USERS)
    {
        ALL_ERRORS+=ERROR[u]
        ALL_CRITICALS+=CRITICAL[u]
        ALL_SUCCESSS+=SUCCESS[u]
        ALL_FAILS+=FAIL[u]
        printf "%-10s%-12d%-18d%-12d%-12d\n",u,ERROR[u],CRITICAL[u],SUCCESS[u],FAIL[u]
    }
	printf "%-10s%-12d%-18d%-12d%-12d\n","Total",ALL_ERRORS,ALL_CRITICALS,ALL_SUCCESS,ALL_FAILS
}
  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实施工程师常用Linux命令有很多,以下是一些常见的命令: 1. cd命令:用于切换当前工作目录。可以使用"cd"命令加上目录路径来进入指定目录。详细的使用方法可以参考\[1\]。 2. ls命令:用于列出当前目录下的文件和子目录。可以使用"ls"命令来查看当前目录下的文件列表。更详细的使用方法可以参考\[2\]。 3. 打包压缩命令:在日常工作中,备份文件常常需要使用打包压缩的方式。在Linux操作系统下,常用的打包压缩命令有tar、gzip和zip等。具体的使用方法可以参考\[3\]。 4. grep命令:用于在文件中搜索指定的字符串。可以使用"grep"命令加上要搜索的字符串和文件名来进行搜索。更详细的使用方法可以参考\[3\]。 这些命令只是实施工程师Linux常用的一部分命令,还有很多其他命令可以根据具体需求进行学习和使用。 #### 引用[.reference_title] - *1* *2* [软件实施人员常用Linux命令(具体运用)](https://blog.csdn.net/aixingjieluo/article/details/130284109)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [软件测试工程师必会的Linux命令(中)](https://blog.csdn.net/m0_64776928/article/details/125773987)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值