对于软件测试人员来讲,咱们测试的任何产品都是基于操做系统。好比咱们天天都在使用的QQ软件,它有windows、ios、Android、Mac OS等版本,须要把QQ安装在各个平台上,才能进行相应的测试。所以,熟练使用这些操做系统和掌握一系诶操做系统对的基本知识应该是每一个测试工程师必须掌握的基本功。java
目前市面主流的操做系统有windows、unix、linux等,而linux做为不少软件应用的后台服务器部署所采用的操做系统,也是当下应用最多的服务器端操做系统。熟练使用linux 系统,这样的词汇常常出如今测试岗位的要求和求职人员的技能描述中。而在测试人员这个群体中,真正能熟练运用linux操做系统的、哪怕只是对经常使用命令比较熟悉,也是比较稀缺的!所以测试人员学习linux ,不只能够提升测试深度,也能够增长本身的核心竞争力、拓宽本身的技能栈,让本身的测试能力有更深层次的提升。node
测试人员学习linux 能够作什么呢?做为初学者,搭建测试环境应该做为学习首要目的。linux
linux 是一个开源、免费的操做系统,其稳定性、安全性、处理多并发已经获得业界的承认,目前不少中性,大型甚至是巨型项目都在使用linux。ios
linux 内核:redhat、红旗linux、ubuntu、suse、fedora,shell
它们的内核都是同样的(linux实际上是一个统称)ubuntu
linux 操做系统的优势不少:开源免费、支持多线程、支持多用户、安全性好、对内存和文件管理优越、适合小内核程序的嵌入系统等windows
linux 的缺点是使用命令行操做,所以操做相对困难,但正是这种字符级命令行的操做,占用的系统资源会更少,也减小了被攻击、出错的可能性安全
Windows 与linux 的比较bash |
||
windows服务器 |
linux |
|
收费 |
收费 |
免费 |
开源性 |
非开源 |
开源 |
软件资源 |
软件资源丰富,可是可能大部分都须要购买受权 |
大部分软件均可以自由获取,一样功能的软件选择较少 |
技术支持 |
主要图形化界面 |
主要是字符模式,命令行界面 |
测试人员学习linux 不必定很是的系统性,由于精通linux那是运维人员的工做职责,做为测试人员,学习的首要目的应该是够熟练使用经常使用命令、熟练搭建测试环境。所以,不断的练习命令,每一个经常使用命令都应该去多敲几遍,验证输入命令后的反馈,最后熟能生巧,慢慢地就能把经常使用命令记住了。
因此,如何学习linux?一个字:练!
linux 全部的内容都是以文件形式保存,包括硬件(一切内容皆文件),而且linux不靠扩展名区分文件类型。
linux有多种基本类型,常见的有以下三种:
普通文件 |
如文本文件、shell脚本、java源代码、c语言源代码等,可使用文件操做命令如vi、cat、more、less来进行管理 |
目录文件 |
就是目录,至关于windows上的文件夹,包括目录名、子目录名,能够用ls列出目录的内容 |
连接文件 |
相似windows下面的快捷方式 |
linux 的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录“/” ,而后在此目录下再建立其余的目录。
在linux 系统中,全部的文件与目录都是根目录 / 开始的,以 / 开头的目录成为绝对目录,不以根目录 / 开头的称为相对目录。
linux 系统文件目录整理以下
/ |
linux 文件系统的上层根目录,文化系统树的最顶端,称为根目录或顶级目录 |
root |
存放root 用户的相关文件 |
home |
系统预设的使用者的家目录(宿主目录),存放普通用户的相关文件 |
bin |
存放全部用户均可以使用经常使用命令的目录 |
sbin |
系统管理相关的二进制文件存放目录,要具备必定权限才可使用其中命令 |
etc |
存放各类配置文件 |
var |
存放常常变化的文件,如网络链接的sock文件 |
boot |
启动目录,存放引导系统启动的相关文件 |
usr |
Unix System Resource:安装软件的默认目录,至关于windows下的program files文件夹 |
dev |
设备文件保存目录 |
lib |
系统库保存目录 |
mnt |
默认挂载光驱和软驱的目录 |
opt |
额外所安装的应用程序目录,有些软件包咱们能够将它安装在该目录中 |
proc |
直接写入内存的,不能直接操做,保存的是内存的挂载点 |
tab |
自动的补全 |
ctrl+c |
强制终止当前命令执行,即杀死当前进程 |
ctrl+l |
清屏 |
ctrl+z |
把命令放入到后台 |
ctrl+r |
在历史命令中搜索 |
ctrl+a |
光标移动到命令行首 |
ctrl+e |
光标移动到命令行尾 |
ctrl+u |
从光标所在位置删除到行首 |
ctrl+b |
同键盘左键 |
ctrl+f |
同键盘右键 |
用户登陆linux后,能够在linux 的命令提示符后面输入命令与系统进行交互。
以下所示:
[root@localhost~]#
其中:
root:当前登陆用户
localhost:主机名
~:当前所在目录,~ 表示家目录
#:超级用户的提示符,若是是普通用户的提示符是$
linux的命令格式: 命令 [选项] [参数]
如:cp dir1 dir2 ,cp是拷贝命令,dir1 和dir2是参数,表示把dir1拷贝到dir2中
注意:
个别命令使用不遵照此格式
当有多个命令时,能够写在一块儿
简化选项与完整选项,如 -a 等于 -all
linux 是严格区分大小写,通常命令没有特殊说明,都是小写
linux命令和参数之间是有空格的,请不要像英文字母同样,所有挤在一块
下面就linux 使用最频繁、最经常使用的命令进行详述。
4. 磁盘管理
cd ,切换目录(chang directory)
cd 命令可让登陆用在不一样的目录间切换
语法 :cd [目标目录]
下面是一些经常使用的目录切换
cd ~ |
进入当前用户的家目录 |
cd |
进入当前用户的家目录 |
cd - |
进入上次目录 |
cd .. |
进入上一级目录 |
cd . |
进入当前目录 |
cd / |
进入根目录 |
相对路径与绝对路径的区别
cd 相对路径:只要开头不是 / 就是属于相对路径的写法,会参照当前所在目录,经过该相对路径进行查找
cd 绝对路径:绝对路径是由根目录 / 开头的文件名或目录名称。如:/home/data/package,会从根目录(即顶级目录/)开始,一级一级的去进行递归查找,经过cd 命令采用绝对路径e方式,只要路径是正确的,能够在任何目录下进入指定的该目录。
ls,列出目录内容
语法:ls [目标目录]
ls 指令可列出目录内容,包括文件和子目录的名称
-a |
显示目录下的全部文件,包括隐藏文件 |
-l |
显示长列表格式,简写为ll |
-d |
查看目录属性 |
-h |
人性化显示文件大小 |
-i |
显示inode |
工做中使用习惯通常是cd 命令切换到某个目录后,直接输入ls 查看当前目录的内容,相似于在windows系统上点开某个文件夹。
另一个比较经常使用的写法是ll ,ll 是 ls -l 的缩写,能够以列表格式列出目录内容,如:
下面package 各个属性的描述:
drwxxr-xr-x |
经过10个字符能够肯定该文件的类型以及不一样用户针对该文件的 |
2 |
链接的文件数 |
root |
表示用户 |
root |
表示用户所在的组 |
4096 |
表示文件大小 |
6月23 05:28 |
表示最后修改日期 |
package |
表示文件名 |
每行最前面10个字符能够肯定该文件的类型以及不一样用户针对该文件的权限
第一个字符表示类型:文件(-)、目录(d),连接(l)
其他字符每3个一组(rwx)、读(r)、写(w)、执行(x)
第一组 rwx:文件全部者的权限是读、写和执行
第二组 r-x:与文件全部者同一组的用户的权限是读和执行,没有写的权限
第三组 r-x:不与文件全部者同组的其余用户的权限是读和执行,没有写的权限
读、写、执行用数字表示分别为 r=4 ,w=2,x=1。
rwx =4+2+1=7
r-x=4+0+1=5
r-x=4+0+1=5
因此该文件针对不一样用户的权限能够用数值755表示
pwd,显示工做目录(print working directory)
执行pwd命令能够得到当前所在的工做目录的绝对路径。
mkdir,创建目录(make directory)
-p:递归建立目录,即若是创建目录的上层目录没有建立,会一并创建上层目录
删除空目录,这条命令实际操做中用得不多,咱们通常用rm
注意 rmdir 命令只能删除空目录,若是要删除目录下全部文件可用:rm -rf 路径
df,显示磁盘的相关信息,如文件系统的使用状况
df [-ahikHTm] [目录或文件名]
-a :列出全部的文件系统
-k:以KB为单位显示各个文件系统
-m:以MB为单位显示各个文件系统
-h:以GB、MB、KB等格式显示
-H:以M =1000K取代 M=1024K的计算方式
-T:连同该分区的文件系统名(例如 ext3 )一块儿列出
-i:不用硬盘容量,而以inode 的数量来显示
df [路径],查看某个目录是在哪一个分区,并显示其它信息
注意df、du两个命令对于测试人员来讲应用频率并不高。
du,显示目录或者文件的大小,du 命令显示指定的目录或文件占用的磁盘空间
语法:du [-ahskm] [文件或目录名称]
-a : 列出全部的文件与目录容量
-h:以人们易读的容量格式(G/M)显示
-s: 显示总计,不列出每一个目录占用的容量
-k: 以KB列出容量显示
-m:以MB列出容量显示
touch,改变文件或者目录时间,也能够创建空文档
touch [-acdmt] 文件名
-a : 修改access time
-c : 修改时间,而不创建文件
-d: 后面能够接日期,也可使用 --date="日期或时间"
-m:修改 mtime
-t:后面能够接时间,格式为[YYMMDDhhmm]
cp 复制命令
cp 指令用于复制文件或者目录,参数必须指定两个或者两个以上的文件或目录,而且最后一个路径必须是已经存在的目录,能够把以前指定的文件或者目录复制到该目录中。
常见参数:
-a 该选项一般在拷贝目录时使用。它保留连接、文件属性,并递归地拷贝目录。
-p 复制源文件的内容,而且会复制修改时间和访问权限到新文件中
-r 若给出的源文件是一目录文件,此时cp 将递归复制该目录下全部的子目录和文件。此时目标文件必须为一个目录名
如:cp -r dir1 dir2 dir3,递归复制,把dir一、dir2 复制到dir3目录中
mv , 移动和重命名
mv 命令能够移动文件或者目录,也能够更改文件或目录名称
语法:
mv [源文件或者目录] [目标文件或目录]
如 mv dir1 dir2 :把dir1 移动到 dir2目录中
mv /home/hello /home/world; 把/home 目录下的hello 文件重命名为world
rm ,删除文件和目录
rm 命令能够删除文件或目录,使用参数“-r” 能够删除目录,不然默认是删除文件
rm -rf * ,删除全部内容,包含目录和文件
其中 -r 表示递归,-f 表示强制
cat ,显示文件内容,将文件内容打印到标准输出设备上
语法 :cat fileName
经常使用参数:
-n : 对输出的行数进行编号
查看纯文本文档的前N行,写到标准输出
head -n 20 查看文本文件前20行
查看纯文本文档的后N行,写到标准输出
tail -n 20 查看文本文档后20行
tail -f error.log 不断刷新,实时查看文件内容改变
more ,显示文件内容带分页
语法:more fileName
more命令相似cat ,以一页一页形式显示,方便阅读,按空格键日后翻下一页,按b键(或 ctrl + pag up 上翻) 往前翻一页
more + 10 fileName : 从第10 行显示fileName 内容
less ,显示文件内容带分页
less 与 more 相似,使用less 能够随意浏览文件
echo:输出字符串
语法:echo [-ne] [字符串] 或 echo [--help][--version]
echo会将输入的字符串送往标准输出
alias:有些命令很长,或者名字显得别扭,能够给命令起一个别名
命令: alias :显示系统当前定义的全部alias
【案例】 alias cp = ‘cp -i’
【案例】alias li = ‘ls -l -color=tty’
用户可利用alias , 自定指令的别名。若仅输入alias ,则可列出目前全部的别名设置。alias的效力仅基于该次登入的操做。若要每次登入是即自动设置好别名,可在/etc/profile 或本身的 ~/.bashrc 中设定指令的别名。
还有,若是你想给每一位用户都生效的别名,请把 alias la = 'ls -al' 一行加在/etc/bashrc最后面
bashrc 是环境变量的配置文件 /etc/bashrc 和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用,若是你想给每一位用户都生效的别名,请把alias la = 'ls -al' 一行加在 /etc/bashrc 最后面,bashrc是环境变量的配置文件 /etc/bashrc 和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用
命令的执行顺序:
1: 执行用绝对路径和相对路径的命令
2:执行别名
3:执行Bash的内部命令
4:执行按照¥PATH 环境变量定义的目录找到第一个命令
unalias:删除别名
语法:unalias 别名
export, 设置和显示环境变量
export 命令可新增、修改和删除环境变量
export -p :列出全部的shell 赋予程序的环境变量。
man [command] , 帮助,相似与dos中的help ;man实际为manual(操做说明),
man的级别:
1:查看命令的帮助
2:查看可被内核调用的函数的帮助
3:查看函数和函数库的帮助
4:查看特殊文件得帮助,主要是 /dev 目录下的文件
5:查看配置文件的帮助
6:查看游戏的帮助
7:查看其它杂项的帮助
8:查看系统管理员可用命令的帮助
9:查看和内核相关文件得帮助
查看命令拥有那个级别的帮助:
man -f 命令,至关于whats命令
eg:man -5 passwd
man -4 null
man -8 ifconfig
查看和命令相关的全部帮助
man -k命令,至关于 apropos 命令
netstat -ntpl:查看端口占用状况