一、软件测试课程关系:
测试理论、手工测试项目、编程语言Python、数据库SQL、Web功能自动化 Selenium、Linux操作系统、性能测试、接口测试、手机测试 全栈
Linux操作系统:Operating System 系统软件
用户界面 -- OS -- 管理大量硬件:CPU、Memory、Disk、外设
图形、命令行 中央处理器 内存 磁盘 键盘、显示器
运行应用程序
目的:搭建测试环境 大部分服务器OS: Linux、Unix
银行、金融、电信、电商
稳定(7*24)、安全、高效(多任务并发执行)
学会常用的系统管理命令
Linux是许多系统的基础:Android、IOS等的内核
(Linux内核+Java)
学习计算机原理好途径:学习Linux
二、今天主要任务:
1、安装Linux系统 使用VM模拟裸机、再安装系统
2、配置网络环境 客户端 --网络-- 服务器系统
3、使用基本命令 常用命令:结构、用法、特点
三、安装Linux系统
1、方式:
1)使用裸机直接安装:早期服务器、PC常用;
2)使用虚拟机:VMware软件 模拟一台或多台机器
多机集群、分布式、云计算,通过虚拟化,模拟多台机器
目前:通过虚拟机模拟一台机器,安装OS:Red Hat Linux 红帽
便于工作和学习 环境相对独立、互不影响
区分软件版本:版本不是越高越好,而是越适合越好
Windows64位:VMware12 15适合Windows10使用
Windows32位:VMware8
准备:Linux系统的安装包-- iso文件 虚拟光盘镜像文件
shrike-i386-disc1.iso 638MB
shrike-i386-disc2.iso 646MB
shrike-i386-disc3.iso 485MB
<1> 文件File -> 新建虚拟机 New Virture Machine
<2> 自定义 Custom
<3> 硬件兼容性:Workstation 6.5-7
<4> 稍后安装操作系统
install OS
原因:目前未配置硬盘,先以空白硬盘方式创建
<5> 选择系统类型:Linux
版本:Red Hat Linux
<6> 建议建立独立的文件夹,保存虚拟文件资源:
E:\mylinux
<7> 虚拟机名:Red Hat Linux
位置:E:\mylinux
<8> 处理器配置:CPU、Processor
数量: 1个
内核数:1个 单核
总内核数:1个
<9> 虚拟机内存:1G 就是1024MB
建议:不要超过物理机内存一半
<10> 网络连接:
如果选第1项:桥接方式 --未来搭建局域网的建议配置
局域网内的其他机器能够访问到该虚拟机
要求不同机器的IP地址要区别开
如果选第3项:仅主机模式(私有) -- 目前先选择
仅自己物理机能访问该虚拟机
<11> I/O控制器类型: 就是磁盘控制器
就是输入Input/输出Output
磁盘读 磁盘写
Read Write
主语是内存(主存)
内存从磁盘读数据,称为输入
内存向磁盘写数据,称为输出
默认:SCSI风格 BusLogic 总线逻辑
(性能高)
<12> 虚拟磁盘类型:SCSI
<13> 创建新虚拟磁盘
<14> 指定磁盘大小:8GB
将虚拟磁盘存储为单个文件
<15> 指定磁盘文件:Red Hat Linux.vmdk
虚拟磁盘文件
<16> 完成 目前具备一台裸机(没有安装OS的电脑)
查看配置是否符合要求
后续可更改:虚拟机 菜单 -> 设置 Settings
3)开机 Power on
如何在物理机 和 虚拟机 之间切换?
物理机 -> 虚拟机: 鼠标点入
虚拟机 -> 物理机: ctrl + alt
问题:Operating System not found
操作系统找不到
4)先关机 Power off
5)虚拟机->设置 选择CD/DVD
选择shrike-i386-disc1.iso 文件
好比:将disc1光盘放入到光驱中
6)再次开机,遇到提示框一般确定
立刻鼠标点入VM内部,立刻敲回车 Enter
区别:希望以图形化界面方式安装系统,直接回车 (建议)
install or upgrade Linux graphical
安装 更新 图形化
希望以文本字符界面方式安装,输入linux text再回车 Enter
(默认也是) text mode
文本模式
7)选择:Skip 跳过 回车
技巧:Tab 切换选择单元格
或 左右方向键
8)欢迎界面 -> Next 下一步
9)安装提示语言:简体中文 -> Next
10)键盘配置 默认 -> 下一步
US.English 美式键盘
以系统默认识别的为准
11)鼠标配置 默认 -> 下一步
带滑轮鼠标(PS/2)
12)安装类型:定制
建议自己配置细节
13)磁盘分区设置:
改为:手工分区 -> 下一步
14)警告:选是
重新分区会格式化,清除之前数据
15)磁盘设置: 根目录/ 下的dev子目录 device 设备
目前只有一块硬盘,名称:/dev/sda (设备文件名,代表一块硬盘)
需要进行分区:
设备分区名: 挂载点(目录名): 类型: 大小:
/dev/sda1 /boot ext3 100M
/dev/sda2 无 <不适用> swap 2G 2000MB
/dev/sda3 / ext3 余下6G 使用全部可用空间
注意:选中“空闲” 再新建
swap分区:交换分区、虚拟内存 归系统内核直接指挥
当系统的物理内存不够用时,会将硬盘的部分空间模拟成内存使用;
原理:内存的读写速度远远大于磁盘
偶尔使用虚拟内存,能够救急,如果频繁使用会导致效率明显降低;
建议:在系统的性能测试过程中,要适当关注虚拟内存的使用率 top
如果较高,说明物理内存不足,存在性能瓶颈;
-> 下一步
16)引导转载程序配置 默认 -> 下一步
17)网络配置 默认 -> 下一步
后续重点配置IP地址等
18)防火墙配置 默认 -> 下一步
19)附加语言支持 默认 中文-> 下一步
20)时区选择 默认 -> 下一步
21)设置根口令:123456
123456
root 用户 登录密码
login
Linux/Unix中超级管理员、超级用户:root 拥有系统的最高权限、所有权限
123456 abc123 暴力破解(穷举法、蛮力法) 通过工具
cptbtptp123@@bcptdtptp456^^
谐音记忆法:
横看成岭侧成峰,远近高低各不同
hkclccf1122@yjgdgbt3344
不识庐山真面目,只缘身在此山中
如何设置服务器的密码才安全?
<1> 必须由字母、数字、特殊字符组合而成;
<2> 位数不能少于15位;
<3> 不能是生活中常用词,比如人名、单词、电话;
<4> 不能写在书面上;
<5> 不能一码通; 不同主机设置不同的密码
<6> 要定期更换; 比如一周一换、一月一换
二战:计算机科学之父、人工智能之父 艾伦.图灵 图灵奖
数学家、密码学家 打造计算机破解 超级密码
-> 下一步
22)验证配置: 默认 -> 下一步
启用MD5口令:MD5加密算法 明文 -> 密文 几乎不能破解
启用屏蔽口令:登录时输入密码不回显 包括位数
23)选择软件包组:
哪些必须要选?
桌面:X窗口系统 后续有办法使用系统的图形界面
应用程序:编辑器 vi
-> 下一步
24)即将安装 -> 下一步 -> 下一步
走进度条,持续10分钟左右,安装disk1
软件=程序+文档 安装软件是由大量目录、文件构成
将目录、文件按照特定的结构安放(部署)到磁盘某位置;
同时需要对系统进行环境的设置,比如系统环境变量;
程序=数据结构+算法
整体结构设计 具体步骤实现(计算方法)
后续会提示请插入第2张光盘; 先等下,不急着操作!
25)ctrl+alt 切换到物理机: 虚拟机 -> 设置
选择:CD/DVD 选择disc2
注意:设备状态 都要打钩
已连接、启动时连接
选择ISO映象文件:shrike-i386-disc2.iso
26)进入VM中,点击确定
后续会提示请插入第3张光盘
27)ctrl+alt 切换到物理机: 虚拟机 -> 设置
选择:CD/DVD 选择disc3
注意:设备状态 都要打钩
已连接、启动时连接
选择ISO映象文件:shrike-i386-disc3.iso
28)创建引导盘: 否 不创建 -> 下一步
29)图形化界面(X)配置:默认 -> 下一步
30)显示器配置:默认 -> 下一步
31)定制图形化配置:需要更改!
请选择您的登录类型:文本 后续登录系统后,使用命令行风格
-> 下一步
32)祝贺页面 -> 退出 会重新启动Linux系统
四、Linux系统的登录
1、登录的方式
1)本地登录 主机面前直接操作
图形化:比如Windows系统
命令行:当前Linux字符界面
显示登录界面:
localhost login: root 用户是超级用户
本地主机 登录 密码:123456
注意:密码不回显 无法看到输入密码的占位符
登录成功后,显示提示符: 通过exit 退出登录
[root@localhost root]# 后续可敲命令
比如: date 系统日期、时间
cal 本月日历
exit
思路:在不同环境中,显示的命令行提示符不同
要通过不同提示符区分不同环境
Windows cmd: D:\> ipconfig
Python环境: >>> print("Hello")
Mysql环境: mysql> select * from emp;
Oracle环境: SQL> select * from emp;
Linux环境: [root@localhost root]# date
2)远程登录 通过客户端工具,借助网络远程控制、管理服务器
图形化:需要客户端安装特殊软件才能支持 一般较少用
命令行:更常用 远程命令行方式管理系统 (目前推荐使用)
建议安装一个客户端小工具:SSH 或 SecureCRT
SSHSecureShellClient-3.2.9.exe 5.26MB
安装步骤:都是默认的 下一步Next、是Yes、 Finish完成
如何打开?
所有程序 -> SSH Secure Shell 安全的shell(命令行)
或SecureCRT
目前关系:SSH是客户端工具 --网络-- Linux系统 作为服务器
Client Network Server
date 内核程序处理 访问底层硬件
SSH如何修改字体、大小:
Edit -> Settings -> Global Settings -> Appearance -> Font
编辑 设置 全局设置 外观 字体
字体:Consolas 大小:16左右
Quick Connect:
快速 连接
Host Name: 服务器主机名,就是IP地址,需要查证
User Name: root 登录服务器使用账号,用户名 目前使用超级用户
连接成功了,才需要输入密码
Port: 22 端口号 SSH默认端口号就是22 好比服务编号
2、目前问题:不知道服务器的IP地址
重要命令:如何查看系统的IP地址?
<1> Windows:ipconfig
前提:至少需要开启网络适配器 VMnet1连接 启用
右击"网络" -> 网络适配器 -> 查看某连接 将其启用
本地连接:
IPv4地址:192.168.3.3
子网掩码:255.255.255.0
以太网适配器 VMware Network Adapter VMnet1:
IPv4地址:192.168.23.1 以自己查到的为准 192.168.xx.1
子网掩码:255.255.255.0
<2> Linux:ifconfig
目前:127.0.0.1 默认的本机环路地址 供访问自己本机时使用
目前还未配置合理的IP
IP地址格式规律:4个三位整数(十进制数),点号连接
比如:192.168.23.1
每个整数底层占据一个字节Byte = 8二进制位 bit
二进制: 00000000 ~ 11111111 255
100000000 256 2的8次方
十进制数: 0 ~ 255
到底要给服务器设置一个什么IP?
由于目前网络连接采用第3项:私有网络
要求:服务器Linux的IP地址 要和 VMnet1的IP在同一个网段中
如果采用第1项:桥接方式
要求:服务器Linux的IP地址 要和 本地连接的IP在同一网段中
五、设置Linux网络环境
1、先查看IP地址(让Windows机器和Linux机器相连,需要两个IP)
查看Windows系统IP命令:ipconfig
查看Linux/Unix系统IP命令:ifconfig
2、注意:由于安装Linux时选中第3项,则当前需要查看VMnet1的IP地址:192.168.23.1
IPV4:
xxx.xxx.xxx.xxx
3、在Linux系统配置IP (和VMnet1的IP在同一网段)
规律:前3个数字一样,最后一个不一样
192.168.23.1 VMnet1 IP
192.168.23.2 Linux IP 就在同一网段中
原因:子网掩码 255.255.255.0
两个IP地址分别和子网掩码,进行按位与操作,如果结果一致,就在同一网段中。
11000000
11111111 按位与
11000000
192.168.23.1 IP1
255.255.255.0 按位与 (有0则0,全1则1)
----------------------
192.255.23.0 结果1
192.168.23.2 IP2
255.255.255.0 按位与
----------------------
192.168.23.0 结果2 和 结果1一样,说明IP1和IP2在同一网段中,可以互相通信。
说明:选择第3项,Linux需要和VMnet1连通
如果选第1项,需要查看本机IP
配置步骤:
1)查看Linux的IP地址: ifconfig 目前还未设置
2)设置Linux的IP地址:netconfig
(设置为192.168.23.2) 前3个数字和VMnet1 IP一样
xxx.xxx.xxx.2
在Linux中,输入 netconfig -> 出现配置窗口(字符界面)
-> Would you like to set up networking? 是否配置网络
-> Yes 回车 (用Tab键选择)
Use dynamic IP configuration (BOOTP/DHCP) 自动分配IP
不选择,需要自己设置 (用Tab键跳过)
IP address: 192.168.23.2 回车两下,自动出现后续结果
Netmask: 255.255.255.0 子网掩码
Default getway(IP): 192.168.23.254 默认网关IP
Primary nameserver: 192.168.23.1
-> Tab 选择 OK -> 回车
(或再敲三次回车)
效果:会自动修改到系统底层网络配置文件中,下一次启动系统时自动读取;
或执行重启网络服务命令即可;
服务 网络 重启
3)重启网络服务:service network restart
# service network restart
# ifconfig 查看固定好的IP地址 192.168.23.2
4)使用SSH连接Linux
打开SSH Secure Shell -> Secure Shell Client
-> Quick Connect 快速连接
Host Name: 192.168.23.2 主机名
User Name: root 用户名
Port: 22 默认端口 -> 点击Connect
连接不上,原因:服务器是否启动、网络连接是否良好、防火墙是否禁用;
网络防火墙firewall 可能没关,需要关闭防火墙
同时排查网络是否连通:ping命令 (Windows/Unix/Linux通用)
从Windows连Linux: CMD中 ping 192.168.23.2 可以
不可以,考虑关闭防火墙
提示:ctrl + c命令 用于结束当前控制台进程
5)关闭Linux防火墙:iptables -F
# iptables -F
再使用SSH连接Linux ...
输入:192.168.23.2 root
输入密码:123456 即可
方法二:如果还有问题,改为桥接方式
选择第1种:Use bridged networking 桥接方式
(VM -> Settings -> Network Adatper 网络适配器)
Linux IP地址也需要和本机IP处于同一网段 命令:netconfig
本机IP: 192.168.3.3 (本地连接IP地址)
Linux IP: 192.168.3.101 重新设置 netconfig
再:service network restart 重启网络服务
再:iptables -F 关闭防火墙
配置步骤总结:
1)查看网络适配器:确保 已连接
使用第3项:仅主机模式(私有网络方式)
2)查看物理机ipconfig: VMnet1的IP: xxx.xxx.xxx.1
子网掩码: 255.255.255.0
3)配置Linux的IP:netconfig 配置为: xxx.xxx.xxx.2
4)重启网络服务:service network restart
查看ip: ifconfig
从物理机:ping xxx.xxx.xxx.2 判断网络是否可达
5)关闭防火墙:iptables -F
说明:网络适配器问题,建议清理注册表:CCleanner 扫描问题
没有网络适配器的可以试试,再重启
Java C Python C++ ... SQL ...
95 70后 89后 83后
共性:变量、函数或方法
六、Linux/Unix基本命令
命令:使用一些词句、动作让系统执行某些操作;
命令的基本格式:命令名 [-选项...] [参数 ... ]
command 命令、选项、参数之间至少留一个空格
参数是操作的对象,选项是增加的功能
命令是主要功能,选项和参数 可能不止一个,多个用空格隔开
比如: javac -d . Hello.java
iptables -F
ls
ls -l
ls -al
cal
cal 2021
cal 3 2021
date
注意:Linux/Unix中命令区分大小写 -F -f 不同
Windows不区分 javac Javac
执行命令的地方:
Command Line
使用Linux/Unix的命令行窗口(终端、Shell 命令解释器、Console 、控制台)
先解决一个重要的哲学问题:我是谁?我在哪儿?我有什么?
从哪里来,到哪里去?
1、我是谁?查看用户的身份 和权限有关!
1)使用who am i 结果root
查看最初登录的身份
# who am i 显示最初用户登录信息
root pts/0 Mar 15 12:29 (192.168.23.1)
用户名 伪终端号 登录时间 从这个IP远程登录
某用户以root身份,在上午12:29分从192.168.23.1的客户端远程登录到服务器,分配伪终端号pts/0
root pts/1 Mar 15 16:49 (192.168.23.1)
区分不同的终端
伪终端号:目的,便于Linux区分不同的登录用户
pts/0 窗口 ls
pts/1 窗口 cal Linux分别将结果发给不同的用户
Linux/Unix特点:典型的多用户管理系统
操作系统可以同时为多用户、多任务服务 -- 服务器系统的基本要求
2)查看当前用户名:whoami
root
3)查看当前用户详细身份:id
# id
uid=0(root) gid=0(root)
用户id:0 用户名:root 组id:0 组名:root
规律:超级用户root用户的uid都是0、gid都是0
用户名和组名都是root
4)查看当前系统在线用户情况:who
# who 查看当前有哪些在线用户
登录成功就是在线,在线拥有了使用系统的权限
root tty1 Mar 15 10:39 本地登录
root pts/0 Mar 15 12:29 (192.168.23.1) 远程登录
root pts/1 Mar 15 16:49 (192.168.23.1) 远程登录
命令:exit 退出登录、表示离线
wroot D:\
/ \
斜杠 反斜杠
2、我在哪儿? 使用pwd命令 在哪儿也和权限有关!
打印 正在工作的 目录、文件夹
pwd 显示当前的工作目录(Print Working Directory)
# pwd /root /目录 (根目录)下的root子目录
目前/root是root用户的主目录(Home Directory)
默认就是登录后所在的目录,具备较多的权限。
3、我有什么? 使用ls命令
# ls 显示当前目录的内容(包括文件和目录)
只能显示文件、目录的名称
# ls -l 以长列表方式查看 (更详细)
显示文件、目录的详细属性
文件类型 权限 属主 属组 大小 最后一次修改时间
-rw-r--r-- 1 root root 989 3月 13 05:33 anaconda-ks.cfg
硬链接数 文件/目录名
文件的属性:除了文件名、文件内容之外的其它信息
1)文件类型: - 文件 d 目录 Directory
2)权限:rw-r--r--
3)属主:用户名root 该文件属于哪个用户
4)属组:该用户属于哪个组root
5)文件大小:989 Byte 单位:字节
6)最后一次修改时间:3月 13 05:33
面试题:Linux系统中如何查看一个文件的权限?
ls -l 文件名
命令名 选项 参数就是文件名
比如:ls -l install.log
4、去别处? cd命令 (Change Directory) 改变目录
cd 目录的路径名
1)路径的表达法
<1> 绝对路径:从/开始表示的路径名
/root 目录名
/etc
/root/1.txt 文件名
<2> 当前路径:当前目录所在的路径名 pwd 查看
比如在 /root下
<3> 相对路径:相对于当前路径表示的路径名
1.txt
2)特殊的目录名: . 表示当前目录
.. 表示上一层目录
比如:目前在/root目录下
想到/ 目录下:
# cd .. 相对路径,相对于当前/root的上一层
或者:
# cd / 绝对路径,直接定位到/下 (从/开始)
# cd . 还是在当前目录
# ls
# ls -l 查看到许多目录
bin目录 常用的系统命令 比如ls date pwd ... 都是可执行的文件
etc目录 常用的配置文件
/etc/passwd 文件 管理用户账户信息
/etc/group 文件 管理用户组信息
home目录 普通用户主目录所在目录(每个用户对应一个子目录)
root目录 管理员用户主目录
boot目录 系统启动文件目录
...
想到/home下
# cd /
# cd home 相对路径
或者
# cd /home 绝对路径 (特点:一定从/开始)
作业题:盘点今天学习的Linux命令
命令的语法、功能
比如:查看用户详细身份:id
查看目录下详细内容:ls -l