该文档仅针对初从事软件测试工程师应该掌握的一些Linux知识做讲解(Linux本身强大且方向众多)
服务器:顾名思义,就是提供给我们服务的机器
新人最大的疑惑,也是很多人不理解的地方,“什么叫给我们提供服务”
现实中:你去餐馆吃饭,提供了食物的服务;你去网吧上网,网吧提供了上网的服务;同样,这台机器给你提供了专门用于web服务,那我们就叫这个是web服务器;这台机器给你提供了专门存数据的服务,我们就叫数据库服务器
工作后:你们公司的服务器可能会是:1台电脑(台式机)–几千块;刀片机(常见)–几十万;机架服务器;机柜服务器
注意:
服务器选型,就要根据你的项目的大小,所依赖的数据多少,并发强度、访问人数、以后几年的数据变化等综合考虑
芬兰大学生Linus Torvalds在从1990年底到1991年的几个月中,利用Minix操作系统作为开发平台,为他自己的操作系统课程和后来的上网用途而陆续编写了若干程序。
1991.10.5 在Internet的comp.os.minix讨论区发表了一篇文章,表明他正在研制一个要超越Minix的操作系统,从而宣告了Linux的诞生。
1993年,Linux 1.0问世
1999年,Linux Kernel 2.2.x问世
2001年,Linux Kernel 2.4.x问世
Linux是一套免费和自由传播的类Unix操作系统,他的优势是:作为服务器操作系统,显得非常稳定、安全
简介:
是一个功能强大的操作系统
可安装在各种计算机硬件设备中,如手机、平板电脑
95%的服务器操作系统都选择Linux
特点:
开放性多用户多任务的系统
具有出色的稳定性和速度性能
具有可靠的系统安全性
提供了丰富的网络功能
标准兼容性和可移植性
既然环境的操作系统是Linux,那么我们就如windows一样,要选型版本。
全世界发行的版本非常多,他们的关系如下:(了解)
企业常用版本:CentOS、Ubuntu、Suse、Debian、Fedora、Arch
门道选型版本:CentOS
1. 远程连接
正确安装上Linux后,我们可以通过图形界面操作Linux,但实际工作中往往把整个服务器放在机房,我们不可能每次要去操作Linux时就跑机房,因此,需要我们所有人员(包括测试工程师)通过远程工具连接到服务器进行操作。
一个人通过工具可以访问N个不同服务器(相互之间网络畅通情况下)
常见远程工具:putty,xshell、crt、WinSCP
2. Linux远程工具
进公司后,开发有可能只给你开发好的代码,我们测试需要让这些代码能“跑”起来,因此,我们需要环境,而这个环境需要测试自己动手搭建,而外网服务器是linux、为了环境的一致性,我们的测试环境服务器也选用Linux系统,因此学习的意义:搭建/维护测试环境
Linux采用的是树型结构。最上层是根目录,其他的所有目录都是从根目录出发而生成的。微软的DOS和windows也是采用树型结构,但是在DOS和 windows中这样的树型结构的根是磁盘分区的盘符,有几个分区就有几个树型结构,他们之间的关系是并列的。最顶部的是不同的磁盘(分区),如:C,D,E,F等
/ 根目录
/etc 存放系统和应用程序的配置文件
/usr 存放一般不需要修改的应用程序,大部分安装的程序也会安装到该目录
/mnt 存放临时的映射文件(挂载光驱、硬盘等)
/proc linux系统目录
/home 存放用户文件的主目录
/dev 设备文件的目录
/boot 存放内核及启动所需要的文件
/bin 用户和系统管理员需要使用的命令程序
/root 超管目录
/tmp 程序运行时生成的临时文件
/sbin 存储系统管理员专用的应用程序
/var 包含各种数据文件,日志,临时文件等
6.3.1 前缀:[root@localhost ~]#
切换用户:su
普通用户—超管:su - 需要密码
超管—普通用户:su 用户名 不需要密码
6.3.2 pwd:查看当前所在目录
上班后,同事有不懂的环境需要我处理,我来到他的电脑旁,坐下来马上就开始敲命令吗?
你得确认:我到底在哪?? pwd
6.3.3 ls:查看当前目录下都有什么内容
Linux是文件操作系统,把所有东西全部当文件。既然是文件,就涉及文件和文件夹操作
文件夹:
新建、删除、重命名、剪切、复制、查找
mkdir、rmdir、mv、cp、find
文件:
新建、删除、重命名、剪切、复制、查找
touch、rm、mv、cp、find
6.4.1 mkdir :新建文件夹
mkdir mtesting 创建一个文件夹
mkdir dev test ui 同时创建五个文件夹
mkdir -p test/guonei/dept01 创建多级文件夹必须加-p
6.4.2 touch :新建文件
touch Hello.java 创建一个a.txt的文件
touch Hello.java readme.txt db.properties 同时创建三个文件
6.4.3 rm -rf :删除文件和文件夹
rm -rf Hello.java readme.txt
• -r:递归
• -f:强制
6.4.4 mv:重命名或剪切文件夹或文件夹
如果在本层目录,表示重命名
mv xiongda xionger
如果在不同目录,表示剪切
mv xiongda /var
6.4.5 cp:复制文件夹或文件夹
复制文件
cp a.txt b.txt
复制文件夹,带-r参数
cp -ar xiongda /var --把xiongda文件夹复制一份到/var目录下
6.4.6 find:查找文件或文件夹
find . -name ‘conf’ 查询当前文件夹下包含’conf’的文件和文件夹。
find /var -name 'conf’查询/var文件夹下包含’conf’的文件和文件夹。
find /etc -name ‘*.service’ -type f
find查询有非常多技巧,请多收集整理适合你习惯的案例
6.4.7 查看文件内容
常使用的有5个命令:cat、more、less、head、tail
cat:由第一行开始显示所有内容
语法:cat 文件名
例如:cat /etc/profile
more:一页一页显示文件内容
语法: more 文件名
例如:more /etc/profile
less:跟more类似,可以往前翻页
语法: less 文件名
例如:less /etc/profile
head:显示文件的前几行内容
语法:head -n 数值 文件名
例如:head -n 10 /etc/profile
tail:两种作用
1、显示文件最后几行的内容
语法: tail -n 文件名
例如:tail -n 10 /etc/profile
2、增量显示文件内容 (工作中常用作查看动态日志)
语法: tail -f 文件名
例如:tail -f /usr/tomcat/logs/catalina.out
6.5.1 模式切换
命令模式à末行模式:shift+冒号(
末行模式à命令模式:esc
命令模式à 编辑模式:a:光标后 i:光标前 o:光标下一行
编辑模式à 命令模式:esc
6.5.2 末行模式技巧
w、q、! (保存、退出、强制执行)
:wq – 保存退出
:q! – 退出不保存
6.5.3 命令模式技巧
光标纵向移动
nG --n代表数字,如:10G,跳到第10行
上下左右移动
上下左右(k、j、h、l)
小键盘(上下左右)
左(backspace) 右(空格)
^和$
每一行开始都隐藏了一个元素:^
每一行结尾都隐藏了一个元素:$
复制粘贴
yy 复制一行
p 粘贴
删除
dd 删除一行
撤销操作
u 多次按就多次撤销
删除单个字符
x 多次按就多次删除(先往后删,再往前删)
查找
/ n、N
6.6.1 useradd/adduser:新建用户名
useradd 用户名
6.6.2 passwd:赋予用户密码或修改原密码
passwd 用户名 #依次输入2次相同密码
6.6.3 userdel:删除用户
userdel 用户名
userdel -r 用户名 #删除用户的同时删除用户旗下/home/用户名的目录
6.6.4 chown:修改所属用户
chown 现用户名 文件/文件夹
6.6.5 chgrp:修改所属用户组
chgrp 现所属组 文件/文件夹
6.6.6 who:显示当前的用户名
who
6.6.7 权限
1.2.7.1 认识权限
前缀
-:普通文件
d:目录
r w x r w - r- -
r:读 w:写 x:执行 -:没有权限
默认权限:644、高权限:777
u(宿主) g(宿组) o(其他)
u(user)宿主:文件拥有者的权限
g(group)宿组:文件所在组的用户权限
o(others)其他:其他用户的权限
1.2.7.2 chmod:赋权
常见
chmod 777 cc --修改文件或单个文件夹的权限
chmod -R 777 aaa/ --修改多级文件夹的权限
不常见
在实际工作中,很多时候我们需要把文件压缩给开发,所以要学会压缩。
有的时候,开发给我的源程序文件或者是编译后的文件,这些文件都压缩了,所以要解压缩。
你在部署程序时,从网上下载了包,这些包是压缩的,你需要解压。
6.7.1 zip包
压缩:zip -r 包名 文件/文件夹
解压缩:unzip 包名
6.7.2 tar包
压缩:tar cvf sum.tar aaa b.txt
解压缩:tar xvf sum.tar
查看压缩包的内容:tar -tf sum.tar
追加文件/文件夹到压缩包:tar -rf sum.tar a.txt mtesting/
删除压缩包内的内容:tar --delete -f 包名 文件/文件夹
6.7.3 gz包
第1种方法:使用gzip(压缩)/gunzip(解压缩)
压缩:gzip sum.tar
解压缩:gunzip sum.tar.gz
第2种方法:tar调用gzip
压缩:tar czvf sum.tar.gz sum/
解压缩:tar xzvf sum.tar.gz
6.8.1 top:查看cpu信息
6.8.2 history:查看所有历史命令
history 查看所有历史命名
history 10 查看最近的10条历史命令
!457:执行547编号对应的命令
6.8.3 free:查看内存
free -m
6.8.4 df:查看硬盘
df -h
6.8.5 ifconfig:查看本机ip
eth0 第一块网卡
6.8.6 关闭某服务:service 服务名 状态
service iptables stop
6.9.1 ps -ef或ps -aux:查看进程
6.9.2 kill 或 pkill或killall:杀死进程
kill -9 pid
kill -9 4912 -9表示强杀
pkill或killall pname
pkill apache