Linux常用命令_软件测试精选

在线linux模拟器

bellard.org--jslinux

linux在线模拟器学编程

Linux命令实战演示学习系统(CSDN)

在线linux手册

菜鸟教程--Linux 命令大全

http://linux.51yip.com/ (例子比较多)

https://www.linux-man.cn/ (例子比较多)

精选软件测试linux常用命令

参考:软件测试工程师linux十大场景命令使用 Linux常用命令运维手册

应用目标:

1.需要看日志,分析bug原因。
2.在linux环境搭建各种测试环境,包括各种应用程序,应用依赖的中间件,以及测试工具软件等。
3.优化系统架构,编写提升测试效率。

目录管理 cd,ls,pwd,mkdir,rmdir

文件管理 touch、rename、In、stat

文件和目录通用管理 cp mv rm scp

文件内容查看 和 编辑echo,cat, head, tail, more, less, vi, grep

文件查找命令which,whereis,locate,find

性能相关命令top,free,vmstat,iostat

网络命令curl,wget, ifconfig, route, ping, netstat,sar

系统管理shutdown,reboot,exit,date,kill,service,crontab(定时任务),su/sudo

软件管理RPM、yum、apt-get 或 apt

主要包括CPU(top、mpstat)、内存(vmstat、free)、I/O(iostat)、网络性能(sar)、系统日志信息(demsg)、查看进程状态(pidstat)。见Linux常用命令之性能命令

【】常用技巧

clear、ctrl + l清屏
ctrl+z、ctrl+c 、exit、Q 退出查看
history查看历史命令
Tab 热键
上下翻页键

【】目录管理 cd,ls,pwd,mkdir,rmdir

cd命令用来切换工作目录

cd # 切换到用户主目录
cd ~ # 切换到用户主目录
cd - # 切换到上一个工作目录
cd ./ # 就是指的当前目录
cd .. # 切换到上级目录
cd ../ # 切换到上级目录(与上一个一样)
cd ../.. # 切换到上两级目录

ls命令用来显示目录信息

ls # 列出当前目录可见文件
ls -l # 列出当前目录可见文件详细信息
ls -la # 列出所有文件(包括隐藏)的详细信息
ls -lh # 列出详细信息并以可读大小显示文件大小
ls -lt # 按时间列出文件和文件夹详细信息
ls -ltr # 按修改时间列出文件和文件夹详细信息
ls --color=auto # 列出文件并标记颜色分类

pwd 命令用来显示当前目录的绝对路径
mkdir 命令用来创建目录
  • -p 确保目录名称存在,不存在的就建一个。
# 在当前目录中创建 zp 和 zp 的子目录 test
mkdir -p zp/test

# 在当前目录中创建 zp 和 zp 的子目录 test;权限设置为文件主可读、写、执行,同组用户可读和执行,其他用户无权访问
mkdir -p -m 750 zp/test
rmdir 命令用来删除空目录
删除子目录 test 和其父目录 zp
rmdir -p zp/test

【】文件管理 touch、rename、In、stat

touch创建文件
touch testfile                #创建一个名为“testfile”的新的空白文件 
touch testfile                #文件存在,修改文件时间属性为当前系统时间  
ls -l testfile                #查看文件的时间属性  
rename 命令用字符串替换的方式批量重命名
# 将 main1.c 重命名为 main.c
rename main1.c main.c main1.c

rename "s/AA/aa/" *             # 把文件名中的 AA 替换成 aa
rename "s//.html//.php/" *      # 把 .html 后缀的改成 .php 后缀
rename "s/$//.txt/" *           # 把所有的文件名都以 txt 结尾
rename "s//.txt//" *            # 把所有以 .txt 结尾的文件名的.txt 删掉
In建立类快捷方式

ln -s source dist #建立软连接 (文件、目录)

ln source dist #建立硬连接(仅文件)

硬链接可认为是一个文件拥有两个文件名;而软链接则是系统新建一个链接文件,此文件指向其所要指的文件。此外,软链接可对文件和文件夹,而硬链接仅针对文件。

stat 命令用于显示文件的状态信息。

stat 命令的输出信息比 ls 命令的输出信息要更详细。

stat myfile 显示文件的权限,创建、修改记录信息

【】文件和目录通用管理 cp mv rm scp wc

cp 复制到指定的目的文件或目录
# 将文件 file 复制到目录 /usr/men/tmp 下,并改名为 file1
cp file /usr/men/tmp/file1

# 将目录 /usr/men下的所有文件及其子目录复制到目录 /usr/zh 中
cp -r /usr/men /usr/zh

# 强行将 /usr/men下的所有文件复制到目录 /usr/zh 中,无论是否有文件重复
cp -rf /usr/men/* /usr/zh

# 将目录 /usr/men 中的以 m 打头的所有 .c 文件复制到目录 /usr/zh 中
cp -i /usr/men m*.c /usr/zh
mv 重新命名、移动文件/目录
mv file1.txt /home/office/                      # 移动单个文件
mv file2.txt file3.txt file4.txt /home/office/  # 移动多个文件
mv *.txt /home/office/                          # 移动所有 txt 文件
mv dir1/ /home/office/                          # 移动目录
mv /usr/men/* .                                 # 将指定目录中的所有文件移到当前目录中

mv file1.txt file2.txt          # 重命名文件
mv dir1/ dir2/                  # 重命名目录
mv -v *.txt /home/office        # 打印移动信息
mv -i file1.txt /home/office    # 提示是否覆盖文件

mv -uv *.txt /home/office       # 源文件比目标文件新时才执行更新
mv -vn *.txt /home/office       # 不要覆盖任何已存在的文件
mv -f *.txt /home/office        # 无条件覆盖已经存在的文件
mv -bv *.txt /home/office       # 复制时创建备份
rm删除文件/目录

rm test.txt # 删除文件
rm -i test.txt test2.txt # 交互式删除文件
rm -r * # 删除当前目录下的所有文件和目录
rm -r testdir # 删除目录下的所有文件和目录
rm -rf testdir # 强制删除目录下的所有文件和目录
rm -v testdir # 显示当前删除操作的详情

scp 远程复制

拷贝文件到远程服务器的指定目录
scp @:
scp test.txt root@192.168.0.1:/opt

拷贝目录到远程服务器的指定目录
scp -r @:
scp -r test root@192.168.0.1:/opt

wc 统计并显示指定文件中的行数、字数、字节数

统计main.py文件中的行数、字数、字节数

wc main.py

统计main.py文件中的行数

wc -l main.py

统计main.py文件中的字数

wc -w mian.py

统计main.py文件中的字节数

wc -c mian.py

【】文件内容查看 和 编辑echo,cat, head, tail, more, less, vi, grep

echo:显示输入的内容 追加文件echo "liuyazhuang" >> liuyazhuang.txt
cat 查看短文件,命令用于连接文件并打印到标准输出设备上

cat m1 # 在屏幕上显示文件 ml 的内容

cat m1 m2 # 同时显示文件 ml 和 m2 的内容

cat m1 m2 > file # 将文件 ml 和 m2 合并后放入文件 file 中

head -n查看一个文本文件前n行内容

head example.txt :显示文件 example.txt 的前十行内容

head -n 11 passwd.txt 查看头11条内容

tail -n 查看一个文本文件倒数n行内容

tail -n 11 passwd.txt 查看倒数11条内容

tail -c 10 file # 显示文件file的最后10个字符

tail -f -n 查看滚动日志

tail -f -n 11 myApp.log tail -f -n 查看滚动日志

more-c -10 file Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)

# 显示文件 file 的内容,每 10 行显示一次,而且在显示之前先清屏。

more -c -10 file

less file 命令的作用与 more 十分相似

more 命令只能向前浏览。用 less 命令显示文件时,用 PageUp 键向上翻页,用 PageDown 键向下翻页。要退出 less 程序,应按 Q 键。

less 1.txt 查看1.txt

less -N 1.txt 查看1.txt (显示行号)

vi 命令查看或编辑并编辑一个文本文件内容

打开password.txt 文本文件

vi password.txt

按下键盘上的ESC,然后按下键盘上的 i 进入修改模式
修改完成后,再次按下键盘上的ESC
退出编辑并保存更改输入如下命令

:wq

:q! 不保存文件,强制退出vi命令 
:w 保存文件,不退出vi命令
:wq 保存文件,退出vi命令
:wq!(保存编辑强制退出)

grep 全面搜索正则表达式并把行打印出来

在多级目录中对文本递归搜索(程序员搜代码的最爱):
$ grep "class" . -R -n

忽略匹配样式中的字符大小写
$ echo "hello world" | grep -i "HELLO"

匹配多个模式:
$ grep -e "class" -e "vitural" file

只在目录中所有的.php和.html文件中递归搜索字符"main()"
$ grep "main()" . -r --include *.{php,html}

在搜索结果中排除所有README文件
$ grep "main()" . -r --exclude "README"

在搜索结果中排除filelist文件列表里的文件
$ grep "main()" . -r --exclude-from filelist

【】文件查找命令which,whereis,locate,find

which 命令,搜索的范围来自环境变量 PATH。

which python

which cd (内建命令不在范围)

也可以用 find / -type f -name "命令" 查找,但要自己判断命令(程序)和配置文件的区别。

whereis 命令用于搜索二进制程序,包括未把路径存进环境变量的程序。

whereis python

which、whereis 命令详解与环境变量 $PATH

locate(需安装)搜索文件

locate命令的安装

yum -y install mlocate

安装完毕后就可以使用了

updatedb

locate 文件名

ocate 命令其实是 find -name 的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux 系统自动创建这个数据库,并且每天自动更新一次,所以使用 locate 命令查不到最新变动过的文件。为了避免这种情况,可以在使用 locate 之前,先使用 updatedb 命令,手动更新数据库。

find文件和内容

当前目录搜索所有文件,文件内容 包含 “140.206.111.111” 的内容
find . -type f -name "*" | xargs grep "140.206.111.111"

列出当前目录及子目录下所有文件和文件夹
find .

在 /home 目录下查找以 .txt 结尾的文件名
find /home -name ".txt"
同上,但忽略大小写
find /home -iname "
.txt"

当前目录及子目录下查找所有以 .txt 和 .pdf 结尾的文件
find . -name ".txt" -o -name ".pdf"

匹配文件路径或者文件
find /usr/ -path "local"

基于正则表达式匹配文件路径
find . -regex ".(.txt|.pdf)$"
同上,但忽略大小写
find . -iregex ".
(.txt|.pdf)$"

找出 /home 下不是以 .txt 结尾的文件
find /home ! -name "*.txt"

【】文件压缩和解压tar, gzip, zip, unzip

tar 打包压缩和解压文件

tar -cvf a.tar a.txt #仅仅打包,不会压缩,后缀名名字最好是.tar,也为了方便解压。

tar -zcvf a.tar.gz a.txt # 打包后,以 gzip 压缩,后缀名最好是.tar.gz。

tar -jcvf a.tar.bz2 a.txt # 打包后,以 bzip2 压缩

tar -ztvf log.tar.gz # 查阅上述 tar 包内有哪些文件
tar -zxvf log.tar.gz # 将 tar 包解压缩
tar -zxvf log30.tar.gz log2013.log # 只将 tar 内的部分文件解压出来

gzip经常使用的一个对文件进行压缩和解压缩的命令

gzip * # 将所有文件压缩成 .gz 文件
gzip -l * # 详细显示压缩文件的信息,并不解压
gzip -dv * # 解压上例中的所有压缩文件,并列出详细的信息
gzip -r log.tar # 压缩一个 tar 备份文件,此时压缩文件的扩展名为.tar.gz
gzip -rv test/ # 递归的压缩目录
gzip -dr test/ # 递归地解压目录

zip 命令用于压缩文件

将 /home/Blinux/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip
zip -q -r html.zip /home/Blinux/html

unzip 命令用于解压缩由 zip 命令压缩的“.zip”压缩包

unzip test.zip # 解压 zip 文件
unzip -n test.zip -d /tmp/ # 在指定目录下解压缩
unzip -o test.zip -d /tmp/ # 在指定目录下解压缩,如果有相同文件存在则覆盖
unzip -v test.zip # 查看压缩文件目录,但不解压

文件权限设置chmod,chown,chgrp

chmod 命令用来变更文件或目录的权限

r=读取属性  //值= 4
w=写入属性  //值= 2
x=执行属性  //值= 1

chmod u+x *.sh #给脚本添加可执行文件权限

chmod 777 data # 将文件夹data的权限设置为所有人都可以读、写和执行

chmod -R 777 data # 对data目录下的所有文件与子目录进行相同的权限变更

chmod 751 file

给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限

chmod -R 755 /home/wwwroot/*

  • 在所有命令中,大多数 -r 参数命令就可以理解为递归,文件夹的递归,文件夹下的文件或者文件夹,这样好记,方便理解。
chown通过chown改变文件的拥有者和群组

普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。

chown mail:mail log2012.log 改变拥有者和群组

chown root: log2012.log 改变拥有者

chown :mail log2012.log 改变群组

chown -R -v root:mail test6 改变指定目录以及其子目录下的所有文件的拥有者和群组

chgrp改变文件或目录的所属群组

使用权限是超级用户.

chgrp -v bin log2012.log 将log2012.log文件由root群组改为bin群组

chgrp --reference=log2012.log log2013.log 根据指定文件改变文件的群组属性

chgrp -R 100 test6 通过群组识别码改变文件群组属性

【】磁盘存储相关 df,du

df 命令(disk)用于显示磁盘分区上的可使用的磁盘空间
du 命令是对文件和目录磁盘使用的空间的查看

【】性能相关命令top,ps,free,vmstat,iostat

top 命令,就可以理解为linux系统的任务管理器。

实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。主要显示系统中各个进程的资源使用情况,如cpu、内存、负载等。

  • 按进程的CPU使用率排序:运行top命令后,键入大写P。
  • 进程的内存使用率排序:运行top命令后,键入大写M。
iotop(需安装) 命令是一个用来监视磁盘 I/O 使用状况的 top 类工具。
ps 命令用于报告当前系统的进程状态。

# 按内存资源的使用量对进程进行排序 ps aux | sort -rnk 4

# 按 CPU 资源的使用量对进程进行排序 ps aux | sort -nk 3

free:查看服务器内存使用情况,包括物理内存、交换内存和内核缓冲区内存的空闲和剩余统计。

free -t # 以总和的形式显示内存的使用信息
free -s 10 # 周期性的查询内存使用信息,每10s 执行一次命令

显示内存使用情况

free -m
total used free shared buffers cached
Mem: 2016 1973 42 0 163 1497
-/+ buffers/cache: 312 1703
Swap: 4094 0 4094

vmstat对操作系统的虚拟内存、进程、CPU活动进行监控。
iostat(需安装)工具将对系统的磁盘操作活动进行监视。

【】网络命令curl,wget, ifconfig, route, ping, host,netstat,sar

关键词:curl,wget, telnet, ip, hostname, ifconfig, route, ssh, ssh-keygen, firewalld, iptables, host, nslookup, nc/netcat, ping, traceroute, netstat。

curl、wget 下载

curl 命令是一个利用 URL 规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称 curl 为下载工具。

下载文件
$ curl http://man.linuxde.net/text.iso --silent

下载文件,指定下载路径,并查看进度
$ curl http://man.linuxde.net/test.iso -o filename.iso --progress
########################################## 100.0%

wget 命令用来从指定的 URL 下载文件。

使用 wget 下载单个文件
wget http://www.linuxde.net/testfile.zip
telnet 远程连接
telnet 192.168.2.10
ip,ifconfig,route,ping
ip link show                     # 查看网络接口信息
ifconfig                         # 显示网络设备信息(激活状态的)
route                            # 查看当前路由 
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0    # 添加网关/设置网关
route add -net 224.0.0.0 netmask 240.0.0.0 reject      # 屏蔽一条路由
route del -net 224.0.0.0 netmask 240.0.0.0             # 删除路由记录
route add default gw 192.168.120.240                   # 添加默认网关
route del default gw 192.168.120.240                   # 删除默认网关
ping www.runoob.com              # ping主机     
ping -c 5 www.runoob.com         # 指定接收包的次数
host,netstat显示网络连接,路由表,接口状态,伪装连接,网络链路信息

yum install host

host g.cn        #查询谷歌中国的DNS
host -a g.cn      #查询详细信息

yum install netstat

netstat -a | more       #列出所有端口 (包括监听和未监听的)
netstat -r              #显示核心路由信息
netstat -i              #显示网络接口列表
sar--System Activity Reporter系统活动情况报告
目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。

linux 性能监控 sar命令

系统负载分析利器之sar

要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来
怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看

怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看

怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看

1.查看CPU使用情况 sar -u

2.将统计结果保存到文件 sar -o & sar -f

3.查看平均负载 sar -q

4.查看内存使用情况 sar -r

5.查看系统swap分区统计情况 sar -W

6.查看IO和传递速率 sar -b

7.查看磁盘使用情况 sar -d

  1. 统计网络信息 sar -n

8.1 网络接口信息 sar -n DEV

8.2 网络设备通信失败信息 sar -n EDVE

8.3统计socket连接信息 sar -n SOCK

8.4 TCP连接的统计 sar -n TCP

【】系统管理shutdown,reboot,date,kill,service,crontab,su/sudo

shutdown 关机、reboot重启
shutdown -h now        立刻关机
shutdown -h 5          5分钟后关机
poweroff               立刻关机
shutdown -r now        立刻重启
shutdown -r 5          5分钟后重启
reboot                 立刻重启
date- 打印或设置系统日期和时间
date +%Y%m%d   #获取当前日期格式为yyyymmdd
date +%F_%H:%M:%S       #显示当前年-月-日_时:分:秒
date +%s   #显示系统的时间戳
date -s “20080523 01:01:01″       #这样可以设置全部时间,只有root权限才能设置,其他只能查看。
date +%Y%m%d --date="+1 day"  #显示后一天的日期
date +%Y%m%d --date="-1 day"  #显示前一天的日期
date +%Y%m%d --date="-1 month"  #显示上一月的日期
date +%Y%m%d --date="+1 month"  #显示下一月的日期
date +%Y%m%d --date="-1 year"  #显示前一年的日期
date +%Y%m%d --date="+1 year"  #显示下一年的日期
date +%j   #今年已经过了多少天
kill 命令:发送指定的信号到相应进程(top -pid)。
kill -l    #列出所有信号名称
kill 1908   #杀死进程(top -pid)
kill -u tank   #杀死指定用户的所有进程
service命令用于对系统服务进行管理,比如启动(start)、停止(stop)、重启(restart)、重新加载配置(reload)、查看状态(status)等。

service mysqld #打印指定服务mysqld的命令行使用帮助。
service mysqld start #启动mysqld
service mysqld stop #停止mysqld
service mysqld restart #重启mysqld
service mysqld reload #重新加载my.cnf配置文件

crontab 命令被用来提交和管理用户的需要周期性执行的任务

详情见:https://www.runoob.com/linux/linux-comm-crontab.html

su/sudo 切换用户
su zhangying              #切换用户,原用户环境变量
sudo仅在需要时授予用户权限
sudo -u tank ls             #以tank用户,来执行ls命令
sudo touch test        #以root账户来建一个文件test,为空默认是root用户

参考文章:

新人必学必会的 Linux 命令!
每天一个Linux命令
linux系统 常用命令(全面总结)

posted @ 2022-08-22 04:09  闪电恋  阅读(192)  评论(0)    收藏  举报