QA在日常工作中总免不了要和Linux打交道(虽然没有SA和PE那么多),主要是在测试环境维护、持续集成维护、异常排查、辅助测试等方面。熟练的使用Linux命令,确实能提高工作效率。Linux命令很多,一下子要记住很难,今天就简单的小结一下在平时工作中最常用的命令。
一> 一、软件安装相关> QA经常需要安装测试软件(jmeter、Mock、python环境搭建、java环境搭建),或者配置测试环境(nginx、ci等),需要了解linux下如何安装软件。 在工作中常见的Linux软件安装有:tar、zip、gz、管理工具安装、bin、源码安装等
(1) tar、zip、gz类软件
Step1: 从官网获取安装地址<br /> Step2: 在机器上wget + 地址,把软件包下载下来。<br /> Step3 :如果由于网络等原因无法下载,可以在本地下载,然后通过 Xshell上传至linux机器<br /> Step4: 解压软件包 tar解压命令 tar -zxvf package ;zip解压命令
unzip package<br /> Step5 直接运行.sh文件就ok啦
(2) 管理工具类
常用的比如:Debian的apt工具 apt-get update //更新源 apt-get search package //搜索可用的安装包 apt-get install package //安装软件 apt-get remove package //删除软件包
(3) 源码安装
Step1: 打开shell,获取软件源代码包 Step2: 是有cd命令进入源代码所有目录 Step3: 解压包 .tar.gz 采用命令 tar -zxvf .tar.bz(或者bz2)采用命令 tar -jxvf Step4: cd进入解压后的目录 Step5: 编译文件命令 ./configure Step6: make编译命令: make Step7: 安装命令: make install
(4) bin文件安装
Step1: 给文件加上可执行权限。 chmod +x Step2: 执行命令安装
二> 二、服务进程状态相关> 有时需要查看服务进程是否正常,需要对进程进行操作,来辅助异常测试 查看指定进程的基本信息 ps -ef | grep 进程名关键字 查看所有进程的状态 ps -aux 将进程暂停 kill -s 19 pid 将继续执行暂停的任务 kill -s 18 pid 将进程强制杀死 kill -s 9 pid 将进程杀死 kill -s 15 pid 中断 kill -s 2 退出 kill -s 3
三> 三、文本编辑Vim> 编写测试脚本,查看日志,查看配置文件,少不了要和vim打交道 vim是unix/linux下的文本编辑器,它一般有两个模式:命令模式和编辑模式,通过ESC来切换到命令模式,其常用的命令有:
(1) 打开与退出
vi file:打开文件file :q :退出vi编辑器 :wq:保存缓冲区的修改并退出编辑器 :q!:不保存直接退出 :w 保存缓冲区内容至默认的文件 :w file 保存缓冲区内容至file文件
(2) 插入文本
a : 在当前光标的右边插入文本 A : 在当前光标行的末尾插入文本 i : 在当前光标的左边插入文本 I : 在当前光标所在行的开始处插入文本 o: 在当前行在下面新建一行 O:在当前行的上面新建一行 R:替换当前光标位置以及以后的若干文本 J:连接光标所在行和下一行
(3) 删除文本
x: 删除一个字符 dd: 删除一行 ndd: 删除n行 u: 撤销上一次操作 U: 撤销对当前行的所有操作
(4) 搜索
/word 向前搜索第一个出现的word / 继续向前搜索word ?word 向后搜索第一个出现的word ? 继续向后搜索word
(5) 设置行号
:set nu 在屏幕上显示行号 :set nonu 取消行号
(1)Linux的文件系统目录配置
要遵循FHS规范,规范定义的两级目录规范如下:
/home 每个账号在该目录下都有一个文件夹,进行数据的管理 /usr 有点像windows的program files和winNT结合的目录,主要包括系统的主要程序、本机端额外安装的软件、图形接口所需要的文档、额外的函数库、共享目录与文件等 /bin /usr/bin /usr/local/bin 存放执行挡 如可执行的指令等 /boot 存放linux开机会用到的文件 /dev 存放linux的任何装置和接口设备文档 /etc 存放系统设定文档 如账号密码文件、各种服务的起始档等 /lib /usr/lib /usr/local/lib 系统使用的函数库放置的目录 /mnt /media 是软盘和光盘预设挂载点的地方 /opt 主机额外安装软件所摆放的目录 /proc 该目录是一个虚拟档案系统,他放置的数据都是在内存中,所 以本身不占用任何的硬盘空间 /root 系统管理员的家目录 /sbin /usr/sbin /usr/local/sbin 放置一些只有系统管理员才能动用 的执行指令 /srv 一些服务启动之后,这些服务所需要取用的数据目录 /tmp 让一般使用者或者正在执行的程序暂时放置档案的地方 /var 主要针对系统执行过程中,常态性变动档案放置的目录
文档的路径有:绝对路径 (absolute) 与相对路径 (relative)。 绝对路径为:由根目录 (/) 开始写起的文件名或目录名称 相对路径为相对于目前路径的文件名写法。 ./表示相对当前路径,../表示相对于上一级目录的路径,~代表home目录,~account代表当前账号的home目录)
(2)文件系统命令
Linux的文件系统采用异步的方式,对文件的修改不会马上写入磁盘,一般可以人为的使用sync命令进行手动的数据同步到磁盘 (1) linux可以挂载很多文件系统,查看命令 cat /proc/filesystems (2) 查看目录的使用情况命令 df -h //以G为单位查看 df -m //以M为单位查看 (3) 查看文件或目录大小 du -sh (4) 目录的切换命令 cd .. cd ~ cd /home cd ./home (5) 打印当前的路径 pwd (6) 创建目录 mkdir (-m 参数可以预设权限 -p参数可以递归的创建目录) (7) 删除目录 rmdir(只能删除空目录) 如果连同内容都删除采用 rm -rf 命令 (8) 文档的查询 ls -al (9) 文档的复制 cp src des 若复制文件夹,加上-r参数 (10) 文件的删除 rm -rf file (11) 文档的移动 mv file desdir (12) 文档重命名 mv desdir desdir2 (13) 取文件名 basename (14) 取得路径名 dirname (15) 文档内容的查阅 cat -n :显示文件所有内容,-n表示打印行号 (16) 文件内容的撷取 head tail head [-n number] file //显示file的前number行 tail [-n number] file //显示ifle的后number行 (17) 文件时间 linux的文档有三个时间mtime(修改时间), atime(访问时间),ctime(状态修改时间) touch命令可以用于创建新文档或者修改linux文档的时间 (18) linux文档的搜索 whereis locate(这两者是直接搜索数据库,速度快) find(搜索硬盘,速度较慢,但数据最齐全) which(用来搜索执行挡$Path设置的目录) which ls whereis file //找出file的位置 locate file//查找所有目录下的文件 find file//查看当前目录下的所有文件 (19) 同时显示两个文件的差异 diff -c file1 file2 以并列的方式显示两个文件的差异 diff -y file1 file2 (20) 文档链接 软连接:源文件消失,目的文件也消失 硬连接: 其中一个修改,另一个也修改,但删除源文件时,目的文件不删除 In file1 file2 //建立file1的链接,命名为file2 In -s file1 file2 //建立file1的软连接
五> 五、其它有用的命令> (1) 查看输入的历史命令 history number or ctrl+r (2) 获取主机的外网ip命令 curl ifconfig.me or curl curlmyip.com (3) 查看ip地址 ifconfig (4) 查看网络连通性 ping (5) 查看服务端口连通性 telnet ip port (6) 查看服务网络端口 netstat -ntlp (7) 查看当前使用用户 who (8) 查看当前主机名字 hostname (9) 正则表达式搜索 grep (10) 切换为root sudo -i (11) 切换为普通user su user (12) 退出当前用户 exit (13) 终止程序 ctrl+c (14) 远程登录 ssh hostip -I user -p port (15) 发送http get请求 curl -v url (16) 发送http post请求 curl -d “param1=value1¶m2=value2” url (17) 发送http put请求 curl -v -X PUT url -H