软件测试(二)— Linux
提示:学习Linux
文章目录
- 软件测试(二)— Linux
- 1. Linux历史和安装
- 2. Linux基础
- 2.1 Linux目录结构
- 2.2 Linux命令(重点)
- 2.2.1 vi文本编辑器-`vi`
- 2.2.2 管理文件和目录命令-`pwd`、`cd`、`ls`、`cat`、`touch`、`grep`、`cp`、`mkdir`、`rmdir`、`rm`
- 2.2.3 线上查询命令-`man`、`locate`、`whatis`
- 2.2.4 文件备份和压缩命令-(`bzip2`、`bunzip2`)、(`gzip`、`gunzip`)、(`tar`)
- 2.2.5 文件阅读命令-`head`、`tail`、`more`
- 2.2.6 查找命令和文件定位-`which`、`whereis`
- 2.2.7 设立权限命令(`chmod`)和管理使用者命令(`useradd`、`userdel`、`chgrp`、`chown`,`su`)
- 2.2.8 有关关机和查看系统信息的命令-`exit`、`reboot`、`shutdown`、`ps`、`top`、`kill`、`date`、`cal`、`df`、`du`
- 2.2.9 网络操作命令-`ipconfig`、`ping`、`netstat`
- 2.2.10 其他命令-`clear`、`echo`、`uptime`、`wc`
1. Linux历史和安装
1.1 Linux历史
Unix
- 1969年开始研制/1971年v1发布
- Ken Thompson/Dennis Ritchie
BSD
- 1977年
- Berkeley Software Distribution
GNU
- 革奴计划
- Richard M.Stallman
- 宗旨是“Free”—自由
Minix
- Andrew S.Tanenbaum
- 1987年,为了讲解操作系统课程
Linux发展史如下:
1.2 Linux的简述
Linux具备现代一切功能完整的UNIX系统所具备的全部特征,其中包括真正的多任务、虚拟内存、共享库、需求装载、共享的写时复制程序执行、优秀的内存管理以及TCP/IP网络支持等。
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等。
多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各个用户之间互不影响,多任务则是现在电脑最主要的一个特点,linux可以使多个程序同时并独立地运行。
完全免费
Linux是一款免费的操作系统,用户可以通过网络或者途径免费获得,并可以任意修改其源代码。
Linux内核版本—主版本号.次版本号.修订次数
看<次版本号>
奇数版本—开发版本 eg:2.5.1
偶数版本—稳定版本 eg:2.6.1
四个主要的Linux版本
Debian—诞生于1993年8月13日,目标是提供一个稳定容错的Linux版本;
Mandrake—1998年由一个推崇Linux的小组创立,它的目标是尽量让工作变得更简单;
Red Hat—Red Hat在1994创立,Red Hat Linux是公共环境中表现上佳的服务器,意在向用户提供一套完整的服务,特别适合在公共网络中使用;
SuSE—总部设在德国的SuSE AG在商界已经奋斗了8年多,一直致力于创建一个连接数据库的最佳Linux版本。
1.3 Linux的安装
2. Linux基础
2.1 Linux目录结构
FHS标准(Filesystem Hierarchy Standard):
/boot
:启动目录,Linux内核存放地;
/etc
:配置文件存放地;
/tmp
:程序产生的临时文件;
/home
:用户目录,新增用户账号时,用户的家目录都存放在此目录;
/lib
:库文件,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助;
/bin
:可执行文件和常用的Linux命令;
/sbin
:系统管理员的命令和工具;
/usr
:应用程序和文件的安装地;
/mnt
:挂接其他文件系统;
/root
:root账户的home目录;
/dev
:存放Linux系统下的设备文件。
更详细的…Linux目录结构及详细介绍
2.2 Linux命令(重点)
2.2.1 vi文本编辑器-vi
vi
功能:即vi编辑器-生成新文件或者编辑、查看文件,包括编写脚本也要使用vi编辑器
格式:vi file_name
说明:上面的命令直接进入vi命令模式
从命令模式进入编辑模式
需要按i
键或者a
键:
1)i
插入文本
2)a
追加文本
使用esc
键可以从编辑模式进入命令模式
命令模式可执行的操作:
1):w
保存文件;
2):wq
保存并退出;
3):wq!
保存并强制退出
4):q
退出;
5):q!
强制退出
6)dd
删除一行文字
7)x
删除一个字符
8):n
光标移至文本第n行
9)$
光标移至文本的行尾
10)G
光标移至文本的末尾
11)/
查找某个字符串
eg:
桌面右键,<打开终端>
输入vi test.txt
,然后回车
就进入到test.txt文本中了
点击i
键,进入编辑模式<插入文本>
输入内容
使用esc
键从编辑模式进入命令模式
输入:wq!
,即保存并强制退出,回车
就在/root下生成了test.txt文件
右键查看属性
再次使用终端打开test.txt文件
使用G
将光标移至最后一行,使用$
将光标移至行尾
使用a
键,进入编辑模式<追加文本>
输入内容后
使用esc
键从编辑模式进入命令模式
使用:wq!
保存并强制退出,回车
使用文本编辑器打开
2.2.2 管理文件和目录命令-pwd
、cd
、ls
、cat
、touch
、grep
、cp
、mkdir
、rmdir
、rm
pwd(print work directory)
功能描述:打印用户当前所处的路径
cd(change directory)
功能描述:改变用户所在目录
格式:cd <目录名>
cd ..
返回到当前目录的上一级目录
cd
返回当前用户的主目录
cd /home
用路径切换到home目录
eg:
进入终端,使用pwd
显示当前在root目录
使用cd /home
进入home目录
使用cd yh/桌面
进入用户yh的桌面目录
使用cd ..
返回到当前目录的上一级目录
使用cd
返回当前用户的主目录
ls(list directory)
功能描述:显示指定目录下的内容
格式:ls [参数] [目录或文件]
选项 | 含义 |
---|---|
-a | 列举目录中的全部文件,包括隐藏文件 |
-l | 列举目录中的细节,包括权限、所有者、组群、大小、创建日期、文件是否是链接等 |
-r | 逆向,从后向前地列举目录中的内容 |
-R | 递归,从选项递归地列举当前目录下所有子目录中的内容 |
-s | 大小size:数据块 |
eg:
使用ls
显示该目录下的内容
使用ls -a
列举当前目录中的全部文件,包括隐藏文件
使用ls -l
列举当前目录中的细节,包括权限、所有者、组群、大小、创建日期、文件是否是链接等
使用ls -al
列举当前目录中(包括隐藏文件)的细节,包括权限、所有者、组群、大小、创建日期、文件是否是链接等
使用ls -r
逆向,从后向前地列举目录中的内容
使用ls -R
递归,从选项递归地列举当前目录下所有子目录中的内容
使用ls -s
大小size:数据块
使用ls -l test.txt
查看test.txt的细节,包括权限、所有者、组群、大小、创建日期、文件是否是链接等
cat
功能:显示文本内容,也可同时显示多个文本的内容
语法:cat [文本文件名字]
eg:
touch
功能:创建文本、也可以同时创建多个文件
语法:touch [文本文件名字]
touch和vi文本编辑器一样都能创建文件,但是touch就只能创建文件,没有别的功能。
eg:
grep
功能:在一堆文件中查找一个特定的字符串,这里查找是大小写敏感的
格式:grep [字符串] [文件名]
eg:
cp
功能:拷贝(复制)文件,可以直接复制,也可以复制过去同时命名,注意只能复制到一个地方
格式:cp [源文件] [目标文件]
选项 | 含义 |
---|---|
-i | 互动:如果文件将覆盖目标中的文件,它会提示确认 |
-r | 递归:这个选项会复制整个目录,子目录以及其他 |
-v | 详细:显示文件复制的信息 |
eg:
加上选项 -i
(不加-i
也一样会提示:是否覆盖)
剩下的选项-r
和-v
不再演示
mv
功能:可以对文件或者目录进行移动,也可以移动过去同时重命名,相当于剪切
语法:mv [源对象] [目标对象]
选项 | 说明 |
---|---|
-i | 互动:如果文件将覆盖目标中的文件,它会提示确认 |
-f | 强制:不提示地移动文件 |
-v | 详细:显示文件的移动信息 |
eg:
使用选项-v
,显示文件的移动信息
mkdir
功能:创建目录,可一次创建多个目录
格式:mkdir [目录名] [目录名]
选项:-p
可创建嵌套目录
eg:
使用选项-p
,创建嵌套目录
rmdir(remove directory)
功能:删除空目录,可一次删除多个空目录
格式:rmdir [目录名] [目录名]
选项:-p
删除嵌套的目录
eg:
如果不使用选项就不能删除嵌套的目录,使用选项-p
删除嵌套的目录
rm(remove)
功能:删除文件,可以一次删除多个文件
格式:rm [文件名]
选项 | 说明 |
---|---|
-i | 互动:提示确认删除 |
-f | 强制:代替互动模式,不提示确认删除 |
-v | 详细:显示文件删除信息 |
-r | 递归:删除某个目录中的所有文件以及子目录 |
eg:
使用选项-f
,直接删除,不提示
使用选项-v
,显示文件删除信息
使用选项-r
,递归删除
如果一个目录中的文件和目录数量太多,那么递归删除时,每一个文件都要询问。
可以使用-rf
连用,注意慎用,不要误删文件
2.2.3 线上查询命令-man
、locate
、whatis
man
功能:用来查询和解释一个命令的使用方法和这个命令的注意事项。
格式:man [命令名称]
eg:
locate
功能:定位文件和目录(该命令使用数据库来定位带有关键词的文件或目录)
格式:locate [文件或目录名字]
eg:
whatis
功能:用来查询某个命令的含义,但要具体查看某个命令还是需要使用man
指令
eg:
2.2.4 文件备份和压缩命令-(bzip2
、bunzip2
)、(gzip
、gunzip
)、(tar
)
bzip2
功能:bzip2来压缩文件,文件会被压缩并保存为filename.bz2
,可一次压缩多个文件
注意:只压缩文件,不能压缩目录,压缩后源文件被压缩文件取代
格式:bzip2 filename
eg:
对应解压缩:bunzip2
eg:
gzip
功能:gzip来压缩文件,文件会被压缩并保存为filename.gz
,可一次压缩多个文件
格式:gzip filename
选项:-r
递归,将指定目录下的所有文件以及子目录所包含的文件一并压缩
注意:只压缩文件,不能压缩目录,压缩后源文件被压缩文件取代
eg:
使用-r
,进行递归处理
对应解压缩:gunzip
选项:-r
递归,将指定目录下的所有文件以及子目录所包含的文件一并解压
eg:
使用-r
,进行递归处理
tar
功能:将文件或者目录进行打包,或者解压缩,可集体压缩放在同一个压缩文件里
格式:tar [参数] [打包后的文件名] [需要打包的文件或者目录]
注意:tar不能将选项抛开单独使用,加上参数-可压缩,可解压,可打包文件也可以打包目录,压缩文件单独创建
选项 | 说明 |
---|---|
-c | 创建压缩文件 |
-x | 展开(解压)归档文件 |
-t | 显示包括tar文件中的文件列表(在不进行解压的情况下,查看压缩文件中的信息) |
-z | 压缩/解压缩文件(gz格式) |
-v | 写入或读取时(压缩或解压),显示所有的文件 |
-f | 指明要展开的归档文件名 |
-j | 压缩或解压缩文件(bz2格式) |
常用:-cvf 、-xvf 、tvf 、cjvf 、xjvf 、czvf 、xzvf |
eg:
tar -cvf
打tar包,显示所有文件并展开
tar -xvf
解压缩,显示所有文件并展开
将多个文件压缩,放在同一个压缩文件中
tar -tvf
显示压缩文件详细信息
tar -cjvf
创建一个使用tar和bzip2来归档压缩的文件,后缀.tbz
tar -xjvf
扩展并解除归档bzip2 tar文件
tar -czvf
创建一个使用tar和gzip来归档压缩的文件,后缀.tgz
tar -xzvf
扩展并解除归档gzip tar文件
2.2.5 文件阅读命令-head
、tail
、more
head
功能:查看文件的开头部分,默认情况下,它只查看文件的前10行,单可以通过指定一个数字选项来改变要显示的行数(eg: head -20 文件名
,查看文件的前20行)。
格式:head 文件名
eg:
默认情况下,查看前10行
指定数字选项,查看前13行head -13 文件名
tail
功能:查看文件结尾部分,默认情况下,它只查看文件的后10行,单可以通过指定一个数字选项来改变要显示的行数(eg: tail -20 文件名
,查看文件的后20行)。
作用:有助于查看日志文件的最后部分来阅读重要的系统信息。
eg:
默认情况下,查看后10行
指定数字选项,查看后13行tail -13 文件名
more
功能:按页查看文件内容,使用空格键和b键来前后移动。
格式:more [选项] [文件名]
选项 | 含义 |
---|---|
-num | 一次显示的行数 |
-f | 计算行数时,以实际上的行数,而非自动换行过后的行数(一些单行字数太长的会被扩展为两行或两行以上) |
+num | 从第num行开始显示 |
更多:还可以使用more在文本文件中搜索关键字,+/关键字
来搜索,从文件中查找第一次出现关键字的行,并从该行的前两行开始显示,使用空格键来翻阅,q键退出;当一个目录下文件内容太多,可以用more来分页显示,不过要结合|
管道,管道作用是可以将前面命令的输出当做后面命令的输入。
eg:
一次显示5行more -5 文件名
从第20行开始显示more +20 文件名
搜索关键字 more +/关键字 文件名
如果一个目录下的文件内容太多,可以用more和管道|来分页,比如
ls -al /etc | more -5
表示显示etc目录下所有文件和目录的信息,分页显示,一次显示5行
2.2.6 查找命令和文件定位-which
、whereis
which
功能:查找命令的程序文件的位置(定位Linux命令所在的路径信息)
说明:依序从path环境变量所列的目录中找出命令的位置,并显示完整路径的名称,在找到第一个符合条件的程序文件时,就立即停止搜索,省略其余未搜索目录。
格式:which [命令名]
eg:
查找linux命令的程序文件的路径which 命令名
whereis
功能:查找符合条件的文件,该命令只能定位一些文件在文件系统中的位置,whereis命令一般用于程序名的搜索。
格式:where [选项] 程序名
选项 | 说明 |
---|---|
-b | 只找二进制文件 |
-m | man说明文件,查出说明文档路径 |
eg:
2.2.7 设立权限命令(chmod
)和管理使用者命令(useradd
、userdel
、chgrp
、chown
,su
)
chmod
功能:用来改变许可权限,读取、写入和执行是许可权限中的三个重要设置。
r
文件可以被读取
w
文件可以被写入
x
文件可以被执行,如果文件是程序的话
可以使用带有-l
选项的ls命令来查看一个文件的细节
一共有10位
第一位代表是否是目录,如果是目录就用d
表示,否则用-
;
剩下的9列分为三组,每组三位;
第一组是文件或目录拥有者(创建者)的权限,rwx
(可读可写可执行),否则用-
;
第二组是文件或目录拥有者(创建者)的同组成员的权限,rwx
(可读可写可执行),否则用-
;
第二组是其他人的权限,rwx
(可读可写可执行),否则用-
;
使用:chmod文件的使用者(u
,g
,o
)增减(+
,-
,=
)权限名称(r
,w
,x
)文件
使用者 | 解释 |
---|---|
u | 拥有文件的用户 |
g | 所有所在的组群 |
o | 其他人 |
a | 代表所有 |
还可以使用数字来表示权限:4
—读取,2
—写入,1
—执行
比如以下两个命令等价:
chmod 751 filename
chmod u=rwx,g=rx,o=x filename
eg:
删除某个文件/目录的所有权限chmod a-rwx 文件名/目录名
为文件/目录的所有者添加权限chmod u+x 文件名/目录名
为文件/目录的其他人重置权限chmod o=rwx 文件名/目录名
一次更改多组权限
使用数字一次更改多组权限
useradd与userdel
功能:添加用户、删除用户
格式:
useradd [用户名]
userdel [参数] [用户名]
passwd
功能:设置/修改用户密码
格式:passwd [用户名]
eg:
添加一个用户useradd hu
删除一个用户userdel -r hu
,注意如果删除用户不加参数-r
,会删不干净
设置用户密码passwd 用户名
chgrp
功能:用于变更文件或目录的所属群组
解释:如下图
第一列代表文件/目录的拥有者,第二列代表文件/目录所属的群组
eg:
chown
功能:将文件的拥有者改为指定的用户或组
注意:这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限可以把自己的文件拥有者改设为别人,只有系统管理者(root)才有这样的权限。
eg:
su
功能:用户切换
格式:su [用户名]
选项:-l
su 用户名
代表切换用户,但是环境变量保持现在的用户的环境变量
su -l 用户名
表示切换用户,并再入那个用户的环境变量
其他:
eg:
2.2.8 有关关机和查看系统信息的命令-exit
、reboot
、shutdown
、ps
、top
、kill
、date
、cal
、df
、du
exit
功能:退出,文本模式下使用ctrl+d
eg:
reboot(常用)
功能:重启
shutdown
功能:关机和重启
格式:shutdown <选项>
选项 | 含义 |
---|---|
-c | 取消已经执行的 shutdown 命令 |
-h | 关机 |
-r | 重启 |
-t | 在<数字>min内关机 |
比如:
shutdown -r now
现在立即启动
shutdown -r 1:05
等到1:05进行重启
halt
功能:关机
poweroff
功能:关机
eg:
使用reboot进行重启
现在立即重启shutdown -r now
立即关机shutdown -h now
ps
功能:查看计算机系统中,有哪些程序正在执行以及执行情况,可以用它来找出所有process id和名称,也可以用来列出所有程序占用内存的情况。
选项 | 含义 |
---|---|
-u | 列出使用者的名称和使用时间 |
-x | 列出所有程序 |
比如: | |
ps -u 查看有关使用者的信息 | |
ps -x 列出所有程序分布情况(查询出所有的进程号pid) |
eg:
top
功能:可以查看目前程序的执行情景和内存使用,它和ps类似,不过,它会几秒钟更新一次系统状态,方便追踪,要离开使用ctrl+c或者q
eg:
kill
功能:用来终止一个正在执行中的进程,如果一个程序执行过程中失败了,可以把这个程序终止,避免留在内存中占用系统资源。
格式:kill [进程号]
注意:不要轻易杀死进程
date
功能:设定和修改现在的时间和日期
比如:
date -u
使用格林尼治时间
date -r
文件名 查看最后一次修改文件的时间
date -s 12:00
设置时间
eg:
cal
功能:显示日历,若要显示一整年的年历,可以在cal命令后加4位数的年历
比如:
cal 2017
显示2017年的年历
cal 10 2017
显示2017年的10月
eg:
df
功能:检查硬盘的使用量
选项:-a
列出全部文件系统和各分区的磁盘使用情况
eg:
du
功能:显示文件目录的大小
格式:du [参数] [文件名字]
选项:-ab
列出所有文件和目录所占的空间
eg:
2.2.9 网络操作命令-ipconfig
、ping
、netstat
ifconfig
功能:显示网络设备的状态
eg:
ping
功能:用于检测主机(检查网络是否正常,是否能够上网),ctrl+c终止
解释:执行ping指令会使用ICMP传输协议,发出要求回应信息,若远端主机的网络功能没有问题,就会回应信心,因而得知主机运作正常
eg:
netstat
功能:显示整个Linux系统的网络情况或显示网络状态,ctrl+c终止
比如:
netstat -a
显示详细的网络状况
netstat -apu
显示UDP端口号的使用情况
eg:
2.2.10 其他命令-clear
、echo
、uptime
、wc
clear
功能:清屏
eg:
echo
功能:在显示屏上回显文字或者用来查看环境变量的值
格式:echo [需要显示的内容]
比如:
echo "hello, boy"
显示hello, boy
echo $PATH
查看PATH的取值,是否有/sbin目录
eg:
uptime
功能:显示当前系统运行了多长时间(从开机到现在)
eg:
wc
功能:用于计算字数
格式:wc [参数] [文件名]
注意:在默认情况下,wc将计算指定文件的行数、字数以及字节数
选项 | 含义 |
---|---|
-c | 只显示字节数 |
-l | 只显示行数 |
-w | 只显示字数 |
eg: