1、在linux下怎么配置一个ip地址?
配置Linux系统的IP地址的方法,主要有以下三种:
ifconfig
setup
修改网卡的配置文件
1.修改网卡的配置文件
本地网卡的配置文件为/etc/sysconfig/network-scripts/ifcfg-eth0。
直接修改网卡的配置文件,设置方法有两种:
自动获取动态IP地址
手工配置静态的IP地址
2.1 自动获取动态IP地址
也就是通过路由器的DHCP功能,使Linux主机自动获取IP地址。
设置方法如下:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
编辑本地网卡的配置文件
1
2
主要查看下面这两项是否和下面给出的一致即可。
ONBOOT=yes
BOOTPROTO=dhcp
1
2
第一项是确保本地网卡eth0开启。
第二项是使用dhcp,自动获取IP地址、子网掩码、网关和DNS。
然后,执行下面的命令,重启网络服务即可。
service network restart
重启网络服务,使配置文件生效
1
2
2.2 手工配置静态的IP地址
也就是手工配置IP地址、子网掩码、网关和DNS。
设置方法如下:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
编辑本地网卡的配置文件
1
2
主要查看下面这几项是否和下面给出的一致即可。
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.1.66
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
1
2
3
4
5
6
第二项表示不使用dhcp服务,如果是手动配置静态的ip地址,BOOTPROTO的值可以为none或者static。
第三项表示设置IP地址。
第四项表示设置子网掩码。
第五项表示设置网关。
第六项表示设置首选DNS服务器,其实DNS有自己的配置文件/etc/resolv.conf,在这里设置DNS,就是把它写入了DNS的配置文件/etc/resolv.conf。
然后,执行下面的命令,重启网络服务即可。
service network restart
1
说明: 如果是虚拟机的Linux,使用“手工配置静态的IP地址”的话,必须将此虚拟机的网络适配器(即网卡)的网络连接的模式设置为桥接模式。
不管怎样,无论是“自动获取动态IP地址”还是“手工配置静态的IP地址”,都能实现配置Linux的IP地址,而且是永久生效。并且,只要你家有外网,你的Linux也能够连通外网。但我更倾向于使用“自动获取动态IP地址”,因为它更方便。
总结: 修改网卡的配置文件这个方法非常有效,几乎没有局限性,故大力推荐。
3.虚拟机的网络连接模式
就VMware虚拟机而言,常用的网络连接的模式有三种:
NAT模式(默认模式)
仅主机模式
桥接模式
查看和设置网络连接的模式的方法是:虚拟机 → 设置 → 网络适配器,在设备状态处,勾选“已连接”和“启动时连接”;在网络连接处,选择合适的模式。
这三种网络连接模式有一定的区别,下面逐一说明。
4.1 NAT模式
选择NAT模式时,虚拟机的IP应该和真实机中的VMnet8(虚拟网卡)的IP(比如:192.168.200.1)同网段,才能保证虚拟机和真实机的连通。
4.2 仅主机模式
选择仅主机模式时,虚拟机的IP应该和真实机中的VMnet1(虚拟网卡)的IP(比如:192.168.224.1)同网段,才能保证虚拟机和真实机的连通。
注意: 在仅主机模式时,就算你家有外网,虚拟机也只能连通内网,而无法连通外网。
4.3 桥接模式
选择桥接模式时,虚拟机的IP应该和真实机中已经连上外网的网卡(本地网卡或无线网卡)的IP(比如:192.168.1.2)同网段,才能保证虚拟机和真实机的连通。
总结: 如果你家有外网,要想让虚拟机中的Linux主机也连通外网,可以选择“NAT模式”或者“桥接模式”,但不能使用“仅主机模式”。也就是说,“仅主机模式”有一定的局限性,它只能让虚拟机连通局域网,而其他两种模式,只要网络配置正确,则没有局限性。
转载于:https://blog.51cto.com/2222038/2107762
2、linux下如何查看到文件中的第二行或者第二列数据?
为了方便说明,列举几个示例文件:
cat test1.txt
1 zhangsan 15 hebei
2 lisi 17 jiangsu
3 wangwu 29 tianjin
4 zhaoliu 21 fujian
cat test2.txt
1:test001:15:hebei
2:test002:17:jiangsu
3:test003:29:tianjin
4:test004:21:fujian
方案
awk
awk自然是最容易想到的,它处理格式化的文本得心应手。
awk '{print $2}' test1.txt
zhangsan
lisi
wangwu
zhaoliu
使用-F指定列(字段)分隔符。
awk -F ":" '{print $2}' test2.txt
test001
test002
test003
test004
如果文件只有两列,还可以使用$NF,如awk '{print $NF}' test1.txt。
awk还支持一些函数,同样可以将第二列提取出来,此处不再赘述。
cut
cut命令的默认字段分隔符是TAB,可以使用-d重新指定。 -f列出指定字段。
cut -d " " -f 2 test1.txt
zhangsan
lisi
wangwu
zhaoliu
cut -d ":" -f 2 test2.txt
test001
test002
test003
test004
如果第二列的字符的起始和结束序号为固定值,如test2.txt,可以使用-c参数,截取特定的字符序列。
cut -c 3-9 test2.txt
test001
test002
test003
test004
sed
sed采用的是第二种实现方式,即将其它列删除掉,利用后向引用:
sed "s/^[^ ]* []∗[]∗ [^ ]* [^ ]*/\1/g" test1.txt
zhangsan
lisi
wangwu
zhaoliu
sed "s/^[^:]*:[:]∗[:]∗:[^:]*:[^:]*/\1/g" test2.txt
test001
test002
test003
test004
grep
在test1.txt中,第二列的前面和后面分别为数字空格和空格数字,所以可以利用正则表达式将其输出出来。
grep -oP "(?<=[0-9] )[^ ]+(?= [0-9])" test1.txt
zhangsan
lisi
wangwu
zhaoliu
同理:
grep -oP "(?<=[0-9]:)[^:]+(?=:[0-9])" test2.txt
test001
test002
test003
test004
colrm
colrm命令可以删除标准输入中的指定列,但该命令中所定义的列指的是单个字符,这与常规对字段的定义不同,需注意。
格式如下:
colrm [start [stop]]
如果只指定start,则大于等于start的列均被删除;如果指定了start和stop,则大于等于start,小于等于stop的列被删除。
因此,此命令可处理第二个字段起始位置为固定值的test2.txt文件。
cat test2.txt | colrm 1 2 | colrm 8
test001
test002
test003
test004
read
read读取文件中的每行,将特定的列输出来。
while read a b c d ;do echo $b;done < test1.txt
zhangsan
lisi
wangwu
zhaoliu
IFS=":";while read a b c d ;do echo $b;done < test2.txt
test001
test002
test003
test004
shell命令替换
shell支持命令替换,通过两次命令替换,得到第二列:
while read line;do temp1=${line#* };temp2=${temp1%% *};echo $temp2; done < test1.txt
zhangsan
lisi
wangwu
zhaoliu
while read line;do temp1=${line#*:};temp2=${temp1%%:*};echo $temp2; done < test2.txt
test001
test002
test003
test004
--------------------------------------------------------------------------------------------
3、python分隔字符串?
Python中有split()和os.path.split()两个函数,具体作用如下:
split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)
os.path.split():按照路径将文件名和路径分割开
1、split()函数
语法:str.split(str="",num=string.count(str))[n]
参数说明:
str:表示为分隔符,默认为空格,但是不能为空("")。若字符串中没有分隔符,则把整个字符串作为列表的一个元素
num:表示分割次数。如果存在参数num,则仅分隔成 num+1 个子字符串,并且每一个子字符串可以赋给新的变量
[n]:表示选取第n个分片
注意:当使用空格作为分隔符时,对于中间为空的项会自动忽略
2、os.path.split()函数
语法:os.path.split("PATH")
参数说明:
1.PATH指一个文件的全路径作为参数:
2.如果给出的是一个目录和文件名,则输出路径和文件名
3.如果给出的是一个目录名,则输出路径和为空文件名
分离字符串
string = "www.gziscas.com.cn"
1.以"."为分隔符
print(string.split("."))
["www", "gziscas", "com", "cn"]
2.分割两次
print(string.split(".",2))
["www", "gziscas", "com.cn"]
3.分割两次,并取序列为1的项
print(string.split(".",2)[1])
gziscas
4.分割两次,并把分割后的三个部分保存到三个文件
u1, u2, u3 =string.split(".",2)
print(u1)—— www
print(u2)—— gziscas
print(u3) ——com.cn
分离文件名和路径
import os
print(os.path.split("/dodo/soft/python/"))
("/dodo/soft/python", "")
print(os.path.split("/dodo/soft/python"))
("/dodo/soft", "python")
4、linux怎么抓包?
很多时候我们的系统部署在Linux系统上面,在一些情况下定位问题就需要查看各个系统之间发送数据报文是否正常,下面我就简单讲解一下如何使用tcpdump抓包
tcpdump是Linux下面的一个开源的抓包工具,和Windows下面的wireshark抓包工具一样, 支持抓取指定网口、指定目的地址、指定源地址、指定端口、指定协议的数据。
1、安装tcpdump
yum install -y tcpdump
2、常见的使用方法
抓取所有经过 eth2 目的或源地址是 192.168.1.2 的网络数据 ,并且保存到XX.pcap文件中
tcpdump -i eth2 host 192.168.1.2 -w xx.pcap
抓取所有经过 eth2,目的地址是 192.168.1.2 的网络数据,并且保存到XX.pcap文件中
tcpdump -i eth2 dst host 192.168.1.2 -w xx.pcap
抓取网口1 源端口是25的数据,保存到xx.pcap中
# tcpdump -i eth1 src port 25 -w xx.pcap
抓取网口1 目的端口是25的数据,保存到xx.pcap中
# tcpdump -i eth1 dst port 25 -w xx.pcap
5、tcp和udp的区别?
6、python中循环?
Python 循环语句 | 菜鸟教程
7、python的断言?
一、通过Python自带的Assert断言
ts = driver.find_element_by_class_name("ivu-modal-content") #定位获取提示框信息
print(ts.text) #打印提示内容
self.assertIn("保存成功", ts.text,msg='保存失败') #如果提示内容中包含“保存成功”,用例通过,否则失败,打印:保存失败
二、通过if进行断言判断
ts = driver.find_element_by_class_name("ivu-modal-content")
print(ts.text)
if '保存成功' in ts.text: #如果‘保存成功’在提示内容中包含
print('Assertion test pass.')
else:
print('Assertion test fail.')
三、通过try抛出异常进行断言判断
ts = driver.find_element_by_class_name("ivu-modal-content")
print(ts.text)
try:
assert '保存成功' in ts.text
print('Assertion test pass.')
except Exception as e:
print('Assertion test fail.', format(e))
8、比如说我的网段是192.168.1.1,现在要配置另一个网段怎么弄?
一个网卡设备配置两个不同网段的IP地址_只是一些暗恋而已的博客-CSDN博客_一台电脑设置2个不同网段ip
9、你们平时怎么做测试流程的?
10、你用过pytest么?
同unittest
11、python的库有哪些?
seleium\appium\time\ request \os \PyMySQL
12、你们用不用sele、appium
13、会不会看报文?
查询http报文过程:
举个例子:www.baidu.com
打开 Google 浏览器->快捷键F12->Network->Doc
Postman查看完整的请求报文_北辰-CSDN博客_postman查看请求报文