先来说一下linux是什么?

linux 是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多中性,大型甚至是巨型项目都在使用linux。

linux 内核:redhat、红旗linux、ubuntu、suse、fedora,

它们的内核都是一样的(linux其实是一个统称)

linux 操作系统的优点很多:开源免费、支持多线程、支持多用户、安全性好、对内存和文件管理优越、适合小内核程序的嵌入系统等

linux 的缺点是使用命令行操作,因此操作相对困难,但正是这种字符级命令行的操作,占用的系统资源会更少,也减少了被攻击、出错的可能性。

软件测试人员为什么学习linux?

对于软件测试人员来说,我们测试的任何产品都是基于操作系统。比如我们每天都在使用的QQ软件,它有windows、ios、Android、Mac OS等版本,需要把QQ安装在各个平台上,才能进行相应的测试。因此,熟练使用这些操作系统和掌握一系诶操作系统对的基本知识应该是每个测试工程师必须掌握的基本功。

目前市面主流的操作系统有windows、unix、linux等,而linux作为很多软件应用的后台服务器部署所采用的操作系统,也是当下应用最多的服务器端操作系统。熟练使用linux 系统,这样的词汇经常出现在测试岗位的要求和求职人员的技能描述中。而在测试人员这个群体中,真正能熟练运用linux操作系统的、哪怕只是对常用命令比较熟悉,也是比较稀缺的!因此测试人员学习linux ,不仅可以提高测试深度,也可以增加自己的核心竞争力、拓宽自己的技能栈,让自己的测试能力有更深层次的提高。

linux 和Windows的不同

Windows 与linux 的主要区别在于,linux是免费开源的。大部分软件都可以自由获取,同样功能的软件较少。技术支出方面,windows主要图形化界面,linux主要是字符模式,命令行界面。

怎么去学习linux

测试人员学习linux 不一定非常的系统性,因为精通linux那是运维人员的工作职责,作为测试人员,学习的首要目的应该是够熟练使用常用命令、熟练搭建测试环境。因此,不断的练习命令,每个常用命令都应该去多敲几遍,验证输入命令后的反馈,最后熟能生巧,慢慢地就能把常用命令记住了。

所以,如何学习linux?一个字:练!

软件测试工程师Linux入门须知:

 

1.linux文件

linux 所有的内容都是以文件形式保存,包括硬件(一切内容皆文件),并且linux不靠扩展名区分文件类型。

linux有多种基本类型,常见的有如下三种:

1.普通文件——如文本文件、shell脚本、java源代码、c语言源代码等,可以使用文件操作命令如vi、cat、more、less来进行管理

2.目录文件——就是目录,相当于windows上的文件夹,包括目录名、子目录名,可以用ls列出目录的内容

3.链接文件——类似windows下面的快捷方式

 
 

2.linux 目录

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

直接写入内存的,不能直接操作,保存的是内存的挂载点

3.常用快捷键

tab

自动的补全

ctrl+c

强制终止当前命令执行,即杀死当前进程

ctrl+l

清屏

ctrl+z

把命令放入到后台

ctrl+r

在历史命令中搜索

ctrl+a

光标移动到命令行首

ctrl+e

光标移动到命令行尾

ctrl+u

从光标所在位置删除到行首

ctrl+b

同键盘左键

ctrl+f

同键盘右键

4.常用命令

用户登录linux后,可以在linux 的命令提示符后面输入命令与系统进行交互。

如下所示:

[root@localhost~]#

其中:

root:当前登录用户

localhost:主机名

~:当前所在目录,~ 表示家目录

#:超级用户的提示符,如果是普通用户的提示符是$

linux的命令格式: 命令 [选项] [参数]

如:cp dir1 dir2 ,cp是拷贝命令,dir1 和dir2是参数,表示把dir1拷贝到dir2中

注意:

个别命令使用不遵守此格式

当有多个命令时,可以写在一起

简化选项与完整选项,如 -a 等于 -all

linux 是严格区分大小写,一般命令没有特殊说明,都是小写

linux命令和参数之间是有空格的,请不要像英文字母一样,全部挤在一块

下面就linux 使用最频繁、最常用的命令进行详述。

5.磁盘管理

1 cd

cd ,切换目录(chang directory)

cd 命令可以让登录用在不同的目录间切换

语法 :cd [目标目录]

下面是一些常用的目录切换

cd ~

进入当前用户的家目录

cd

进入当前用户的家目录

cd -

进入上次目录

cd ..

进入上一级目录

cd .

进入当前目录

cd /

进入根目录

相对路径与绝对路径的区别

cd 相对路径:只要开头不是 / 就是属于相对路径的写法,会参照当前所在目录,通过该相对路径进行查找

cd 绝对路径:绝对路径是由根目录 / 开头的文件名或目录名称。如:/home/data/package,会从根目录(即顶级目录/)开始,一级一级的去进行递归查找,通过cd 命令采用绝对路径e方式,只要路径是正确的,可以在任何目录下进入指定的该目录。

2 ls

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表示

3 pwd

pwd,显示工作目录(print working directory)

执行pwd命令可以获得当前所在的工作目录的绝对路径。

4 mkdir

mkdir,建立目录(make directory)

-p:递归创建目录,即如果建立目录的上层目录没有创建,会一并建立上层目录。

5 rmdir

删除空目录,这条命令实际操作中用得很少,我们一般用rm

注意 rmdir 命令只能删除空目录,如果要删除目录下所有文件可用:rm -rf 路径

6 df

df,显示磁盘的相关信息,如文件系统的使用情况

df [-ahikHTm] [目录或文件名]

-a :列出所有的文件系统

-k:以KB为单位显示各个文件系统

-m:以MB为单位显示各个文件系统

-h:以GB、MB、KB等格式显示

-H:以M =1000K取代 M=1024K的计算方式

-T:连同该分区的文件系统名(例如 ext3 )一起列出

-i:不用硬盘容量,而以inode 的数量来显示

df [路径],查看某个目录是在哪个分区,并显示其它信息

注意df、du两个命令对于测试人员来说应用频率并不高。

7 du

du,显示目录或者文件的大小,du 命令显示指定的目录或文件占用的磁盘空间

语法:du [-ahskm] [文件或目录名称]

-a : 列出所有的文件与目录容量

-h:以人们易读的容量格式(G/M)显示

-s: 显示总计,不列出每个目录占用的容量

-k: 以KB列出容量显示

-m:以MB列出容量显示

6.文件管理

1 touch

touch,改变文件或者目录时间,也可以建立空文档

touch [-acdmt] 文件名

-a : 修改access time

-c : 修改时间,而不建立文件

-d: 后面可以接日期,也可以使用 --date="日期或时间"

-m:修改 mtime

-t:后面可以接时间,格式为[YYMMDDhhmm]

2 cp

cp 复制命令

cp 指令用于复制文件或者目录,参数必须指定两个或者两个以上的文件或目录,并且最后一个路径必须是已经存在的目录,可以把之前指定的文件或者目录复制到该目录中。

常见参数:

-a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录。

-p 复制源文件的内容,并且会复制修改时间和访问权限到新文件中

-r 若给出的源文件是一目录文件,此时cp 将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名

如:cp -r dir1 dir2 dir3,递归复制,把dir1、dir2 复制到dir3目录中

3 mv

mv , 移动和重命名

mv 命令可以移动文件或者目录,也可以更改文件或目录名称

语法:

mv [源文件或者目录] [目标文件或目录]

如 mv dir1 dir2 :把dir1 移动到 dir2目录中

mv /home/hello /home/world; 把/home 目录下的hello 文件重命名为world

4 rm

rm ,删除文件和目录

rm 命令可以删除文件或目录,使用参数“-r” 可以删除目录,否则默认是删除文件

rm -rf * ,删除所有内容,包含目录和文件

其中 -r 表示递归,-f 表示强制

5 cat

cat ,显示文件内容,将文件内容打印到标准输出设备上

语法 :cat fileName

常用参数:

-n : 对输出的行数进行编号

6 head

查看纯文本文档的前N行,写到标准输出

head -n 20 查看文本文件前20行

7 tail

查看纯文本文档的后N行,写到标准输出

tail -n 20 查看文本文档后20行

tail -f error.log 不断刷新,实时查看文件内容改变

8 more、less

more ,显示文件内容带分页

语法:more fileName

more命令类似cat ,以一页一页形式显示,方便阅读,按空格键往后翻下一页,按b键(或 ctrl + pag up 上翻) 往前翻一页

more + 10 fileName : 从第10 行显示fileName 内容

less ,显示文件内容带分页

less 与 more 类似,使用less 可以随意浏览文件

9 echo

echo:输出字符串

语法:echo [-ne] [字符串] 或 echo [--help][--version]

echo会将输入的字符串送往标准输出

7.系统设置

1 alias

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 环境变量定义的目录找到第一个命令

2 alias

unalias:删除别名

语法:unalias 别名

3 export

export, 设置和显示环境变量

export 命令可新增、修改和删除环境变量

export -p :列出所有的shell 赋予程序的环境变量。

4 man

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 命令

软件测试工程师入门——Linux【使用说明书】的更多相关文章

  1. 软件测试工程师的Linux之路(持续更新修正)

    软件测试工程师成长必经之路—Linux学习. 测试工程师不同于运维工程师,所以在对不熟悉Linux的测试人员来说,先了解一些Linux系统的基本操作,能顺利开展测试工作即可,在强迫自己使用,熟悉命令行 ...

  2. 软件测试工程师应该怎样规划自己?成为年薪30W+测试工程师(乾坤未定,皆是黑马)

    今天在知乎上被邀了一个问题,软件测试工程师应该怎样规划自己?16年毕业,技术方面已经渣到不行,因为之前的公司没有Python自动化测试这个要求,有些迷茫.我把我的问题回答贴出来希望可以帮助到更多有类型 ...

  3. 年薪50W京东软件测试工程师的成长路——我们都曾一样迷茫

    这两天和朋友谈到软件测试的发展,其实软件测试已经在不知不觉中发生了非常大的改变,前几年的软件测试行业还是一个风口,随着不断地转行人员以及毕业的大学生疯狂地涌入软件测试行业,目前软件测试行业“缺口”已经 ...

  4. 2020软件测试工程师面试题汇总(内含答案)-看完BATJ面试官对你竖起大拇指!

    测试技术面试题 1.什么是兼容性测试?兼容性测试侧重哪些方面? 参考答案: 兼容测试主要是检查软件在不同的硬件平台.软件平台上是否可以正常的运行,即是通常说的软件的可移植性. 兼容的类型,如果细分的话 ...

  5. 软件测试工程师简历要怎么写,才能让HR看到

    作为软件测试的从业者,面试或者被面试都是常有的事. 可是不管怎样,和简历有着理不清的关系,面试官要通过简历了解面试者的基本信息.过往经历等. 面试者希望通过简历把自己最好的一面体现给面试官,所以在这场 ...

  6. Android工程师入门(二)——不忙不累怎么睡。。

    安卓开发迫在眉睫,这周入个门吧! Android工程师入门(二) 四.在界面中显示图片 ImageView 是显示图片的一个控件. --属性 src——内容图片: background——背景图片/背 ...

  7. 入门Linux

    45分钟带你入门Linux(附:笔者在工作室开讨论班录制的视频讲解)   第一部分    熟悉Linux基本操作 一.初识Linux 1.Linux特点 ◊  开放性 ◊  多用户 ◊  多任务 ◊  ...

  8. 51Testing丛书新作《软件测试工程师面试秘籍》

    51Testing又有好消息告诉小伙伴了!51Testing软件测试网作品系列重磅推出全新丛书<软件测试工程师面试秘籍> 此次我们邀请到知名互联网企业测试专家李江(G.li),整理并撰写软 ...

  9. Ruby入门--Linux/Windows下的安装、代码开发及Rails实战

    Ruby入门--Linux/Windows下的安装.代码开发及Rails实战 http://www.linuxidc.com/Linux/2014-04/100242.htm Ubuntu 13.04 ...

随机推荐

  1. 【JMeter_13】JMeter逻辑控制器__执行时间控制器<Runtime Controller>

    执行时间控制器<Runtime Controller> 业务逻辑: 根据输入的Runtime的值,对当前节点下的执行时长进行控制,当执行时长超过限定时长后,执行完当前正在执行的取样器后,跳 ...

  2. 【JMeter_10】JMeter逻辑控制器__ForEach控制器<ForEach Controller>

    ForEach控制器<ForEach Controller> 业务逻辑: ForEach控制器一般与用户自定义变量/JDBC结果变量一起使用,可以认为他就是一种遍历型循环,该节点下的脚本内 ...

  3. const变量的修改

    int main(){ const char a[]="hello world"; char *aa=(char *)a; printf("\nthe a address ...

  4. 解决github打不开问题

    2020.06.22 使用以下方式: 在https://github.com.ipaddress.com/找到: 在https://fastly.net.ipaddress.com/github.gl ...

  5. 洛谷 CF1012C Hills (动态规划)

    题目大意:有n个山丘 , 可以在山丘上建房子 , 建房子的要求是 : 该山丘的左右山丘严格的矮于该山丘 (如果有的话),你有一架挖掘机,每单位时间可以给一个山丘挖一个单位的高度,问你想要建造 1,2, ...

  6. Dubbo想要个网关怎么办?试试整合Spring Cloud Gateway

    一.背景 在微服务架构中 API网关 非常重要,网关作为全局流量入口并不单单是一个反向路由,更多的是把各个边缘服务(Web层)的各种共性需求抽取出来放在一个公共的"服务"(网关)中 ...

  7. 写给程序员的机器学习入门 (七) - 双向递归模型 (BRNN) - 根据上下文补全单词

    这一篇将会介绍什么是双向递归模型和如何使用双向递归模型实现根据上下文补全句子中的单词. 双向递归模型 到这里为止我们看到的例子都是按原有顺序把输入传给递归模型的,例如传递第一天股价会返回根据第一天股价 ...

  8. java.math.BigDecimal cannot be cast to [Ljava.lang.Object;

    从数据库中使用sum函数取出统计值后,放进list中,遍历list的时候强转化成Object是报错. BigDecimal .Integer不是基本类型,是int的包装类,无法把包装当做基本类型来用. ...

  9. 洛谷 P2212 【[USACO14MAR]Watering the Fields S】

    一道最小生成树模板题,这里用的Kruskal算法,把每两点就加一条边,跑一遍最小生成树即可. #include <bits/stdc++.h> using namespace std; s ...

  10. 解决Centos 6.4 下安装WPS 出现 新建/打开文件闪退的问题

    #  wget http://archives.fedoraproject.org/pub/archive/fedora/linux/updates/17/i386/freetype-2.4.8-4. ...