软件测试之Linux常用命令总结

一.linux的基本操作命令 简介:30个常用的命令
1、 cd命令 功能说明:切换目录。
举 例1:却换到根目录 :cd / 举 例2:切换到上一个目录: cd -
2、 ls命令
功能说明:列出目录内容。
举 例:列出/var目录的文件和目录的信息 :ls –l /var;最常用方式 ls –ltr
3、 cat命令
功能说明:查看小文件内容。
举 例1:查看test.txt 文件内容 :cat test.txt。举例2:往文件里插入内容 cat >test.txt(>覆盖上次内容;>>追加内容)
4、 chmod命令
功能说明:修改文件或目录权限。
举 例:修改test.sh 为自己可执行:chmod u+x test.sh
5、 chown命令
功能说明:变更文件或目录的拥有者或所属群组。
举 例:修改test.txt 属主为mysql :chown mysql:mysql test.txt
6、 cp命令
功能说明:拷贝文件。
举 例:拷贝文件test.sh 为 test.sh_bak:cp test.sh test.sh_bak
7、 diff命令
功能说明:对比文件差异。
举 例:对比文件test.sh test.sh_bak 是否有差异diff test.sh test.sh_bak
8、 find命令
功能说明:查询文件。
举 例:查询本目录下面的test.txt:find ./ -name test.txt
9、 mv命令
功能说明:移动或更名现有的文件或目录。
举 例:移动 test.sh到/bin目录下:mv test.sh /bin/
10、rm命令
功能说明:删除文件或目录。
举 例:删除文件test.sh :rm test.sh
11、touch命令
功能说明:创建一个空文件。
举 例:创建一个空的test.txt文件:touch test.txt
12、which命令 功能说明:在环境变量$PATH设置的目录里查找符合条件的文件。 举 例:查询find命令在那个目录下面:which find
13、ssh命令 功能说明:远程安全登录方式。
举 例:登录到远程主机:ssh ${IP}
14、grep命令
功能说明:查找文件里符合条件的字符串。
举 例:从test.txt文件中查询test的内容:grep test test.txt
15、wc命令
功能说明:统计行。
举 例:统计test.txt文件有多少行:wc -l test.txt
16、date命令 功能说明:查询主机当前时间。
举 例:查询主机当前时间:date
17、exit命令 功能说明:退出命令。
举 例:退出主机登录:exit
18、kill命令
功能说明:杀进程。
举例:杀掉test用户下面的所有进程:ps -ef | awk ‘$1==”test” {print $2}’ | xargs kill -9
19、id命令
功能说明:查看用户。
举 例:查看当前用户:id ;查询主机是否有test用户:id test
20、ps命令
功能说明:查询进程情况。
举 例:查询test.sh进程:ps -ef | grep test.sh
21、sleep命令 功能说明:休眠时间。
举 例:休眠60秒 :sleep 60
22、uname命令 功能说明:查询主机信息。
举 例:查询主机信息:uname -a
23、passwd命令
功能说明:修改用户密码。
举 例:使用root修改test用户的密码:passwd test
24、ping命令
功能说明:查看网络是否通。
举 例:查询本主机到远程IP的网络是否通:ping ${IP}
25、df命令 功能说明:查看磁盘空间使用情况。
举 例:查看主机的空间使用情况 :df -h
26、echo命令
功能说明:标准输出命令。
举 例:对变量test进行输出:echo $test
27、pwd命令 功能说明:查询所在目录。
举 例:查询当前所在目录:pwd
28、head命令
功能说明:查看文件的前面N行。
举 例:查看test.txt的前10行:head -10 test.txt
29、tail命令
功能说明:查看文件的后面N行。
举 例:查看test.txt的后10行:tail -10 test.txt
30、mkdir命令
功能说明:创建目录。
举 例:创建test目录:mkdir test
二.简介:常见的解释器
解释器:是一种命令解释器,主要作用是对命令进行运行和解释,将需要执行的操作传递给操作系统内核并执行 # !/bin/bash(默认)

!/bin/sh 注意:面试官,shell一定得有解释器吗?

答案:不一定
三.linux必备基础知识之shell脚本文件权限与脚本执行
简介:shell是怎么执行的(从右到左 三位一体)
文件权限:- rw- r-- r–
目录权限:drw-r–r-- 分三列:每三个为一列,分别是所有者(owner),所属组(group),其他(others)
rwx r:4 w:2 x:1 -r 是否有读取权限(read) -w 是否有写入权限(write) -x 是否有执行权限(excute) rwx = 4 + 2 + 1 = 7
执行方法:
方法1:添加执行权限 chmod +x shell.sh
方法2:sh shell.sh
四、常见的条件判断 语法:[ 判断表达式 ]
文件(夹)或者路径:
-e 目标是否存在(exist)
-d 是否为路径(directory)
-f 是否为文件(file)
[ -e foer.sh ] || touch foer.sh 文件
第五章:处理海量数据的grep、cut、awk、sed 命令
grep、cut、awk、sed 常常应用在查找日志、数据、输出结果等等,并对我们想要的数据进行提取, 通常grep,sed命令是对行进行提取,cut跟awk是对列进行提取
五、5.1处理海量数据之grep命令 grep应用场景:通常对数据进行 行的提取
语法:grep [选项]…[内容]…[file]
-v #对内容进行取反提取 -n #对提取的内容显示行号 -w #精确匹配
-i #忽略大小写
^ #匹配开头行首
-E #正则匹配
grep -nv ‘_timed’ /etc/passwd
grep -nw ‘^_timed’ /etc/passwd
grep -E ‘_timed|_fpsd’ /etc/passwd
5.2、处理海量数据之cut命令 cut应用场景:通常对数据进行列的提取
语法:cut [选项]…[file]
-d #指定分割符
-f #指定截取区域
-c #以字符为单位进行分割
注意:不加-d选项,默认为制表符,不是空格
/bin/bash #代表可以登录的用户
/sbin/nologin #代表不可以登录的用户 eg:以’:‘为分隔符,截取出/etc/passwd的第一列跟第三列
-d与-f:
cut -d ‘:’ -f 1,3 /etc/passwd
eg:以’:‘为分隔符,截取出/etc/passwd的第一列到第三列 cut -d ‘:’ -f 1-3 /etc/passwd
eg:以’:'为分隔符,截取出/etc/passwd的第二列到最后一列 cut -d ‘:’ -f 2- /etc/passwd
-c: eg:截取/etc/passwd文件从第二个字符到第九个字符 cut -c 2-9 /etc/passwd
eg:比如领导想叫你截取linux上面所有可登陆普通用户
grep ‘/bin/bash’ /etc/passwd | cut -d ‘:’ -f 1 | grep -v root
5.3、处理海量数据之sed命令 sed的应用场景:主要对数据进行处理(选取,新增,替换,删除,搜索)
sed语法:sed [选项][动作] 文件名 常见的选项与参数:
-n #把匹配到的行输出打印到屏幕
p #以行为单位进行查询,通常与-n一起使用
eg:df -h | sed -n ‘2p’
d #删除
eg: sed ‘2d’ df.txt
a #在行的下面插入新的内容
eg: sed ‘2a 1234567890’ df.txt
i #在行的上面插入新的内容
eg: sed ‘2i 1234567890’ df.txt
c #替换
eg: sed ‘2c 1234567890’ df.txt
s/要被取代的内容/新的字符串/g #指定内容进行替换 eg: sed ‘s/0%/100%/g’ df.txt
-i #对源文件进行修改(高危操作,慎用,用之前需要备份源文件)
:在文件中搜索内容
eg:cat -n df.txt | sed -n ‘/100%/p’
-e #表示可以执行多条动作
eg:cat -n df.txt | sed -n -e ‘s/100%/100%-----100%/g’ -e ‘/100%-----100%/p’

补充知识

命令行模式:
x:删除一个字符 dd:删除一整行
插入模式:
i :在光标前插入内容
o:在当前行之下新开一行
底行模式:
x 或 wq :保存退出
q! :退出不保存
set nu :显示行数
/ :搜索内容
查看日志常用命令
第一种: 查看实时变化的日志(比较吃内存)
tail
eg: tail -100f test.log 实时监控100行日志
ctrl+c 截止实时日志 tailf也是实时查看日志
tail -n 10 test.log 查询日志尾部最后10行的日志;
tail -n +10 test.log 查询10行之后的所有日志;
head:
head -n 10 test.log 查询日志文件中的头10行日志;
head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;
总结

  1. head -n k=head -n +k,tail -n k=tail -n -k,可以简单记忆为头正尾负;
  2. 无论k前面的符号怎样,tail都是输出尾部内容,head都是输出头部内容的;
    
  3. 特别注意tail -n +k,这里的k表示从第K行开始;(因此上例中,head -n -3输出7行,而tail -n +3输出8行。)
    

第二种:搜索关键字附近的日志: cat
cat -n filename |grep “关键字”
应用场景一:按行号查看—过滤出关键字附近的日志
1)cat -n test.log |grep “debug” 得到关键日志的行号
2)通常查找出错误日志 cat error.log | grep ‘nick’ , 这时候我们还有个需求就是输出当前这个日志的前后几行:
    cat error.log | grep -B 5 ‘nick’ 显示nick及前5行
    cat error.log | grep -A 5 ‘nick’ 显示nick及后5行
    cat error.log | grep -C 5 ‘nick’ 显示file文件里匹配nick字串那行以及上下5行
    cat error.log | grep -n -B10 -A10 5 ‘nick’ 显示file文件里匹配nick字串前后10行
应用场景二:选取日志中特定范围进行分析
1)cat -n test.log |tail -n +1000|head -n 20 从第1000行开始,显示20行
tail -n +1000表示查询1000行之后的日志
head -n 20 则表示在前面的查询结果里再查前20条记录
  2)cat catalina.out | head -n 1400| tail -n +1350 显示1350行到1400行 (实现原理都差不多,就是通过语法糖)
第三种: 主要对数据进行处理(选取,新增,替换,删除,搜索) : sed
(1)按日期截取 :一般在日志系统中都会记录打印日志的时间,通常我们非常需要查找指定时间端的日志:sed -n ‘/起始时间/,/结束时间/p’ 日志文件
  sed -n ‘/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p’ test.log
· -n选项:把匹配到的行打印到屏幕
· -p选项:以行为单位进行查询
  特别说明:该命令中的两个日期值必须是日志文件中包含的值,否则该命令无效.; 先 grep ‘2014-12-17 16:17:20’ test.log 来确定日志中是否有该 时间点
 (2)按行数截取
sed -n “1000,1500p” catalina.out > a.txt
这个命令是将1100行到1500行的日志保存到a.txt文件
(3)按日期截取日志并保存到b文件中
sed -n ‘/2019-04-22 16:10:/,/2019-04-22 16:20:/p’ log.log > bbb.txt

ps -ef | grep java (先查java进程ID)
kill -9 java进程ID(生产环境谨慎使用)
1 先查看进程pid
ps -ef | grep 进程名
如 ps -ef | grep tomcat
2 通过pid查看占用端口
netstat -nap | grep 进程pid
3 通过端口查看进程
看看端口是不是被占用了
netstat -nap | grep 端口号
4 通过端口号查询进程
lsof -i:6379
5.查看内存
free top
cat /proc/meminfo
6查看磁盘 df

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值