常用技术

linux

目录与文件操作

  • touch:创建空白文件

  • ls:显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。
    列出目前工作目录下所有名称是 a 开头的档案,愈新的排愈后面 : ls -ltr a*

将 /bin 目录以下所有目录及档案详细资料列出 : ls -lR /tmp

按照修改时间倒序排序,即最新的在最上面展示:ls –lt

  • pwd:显示当前工作目录
    常用方式及使用技巧:
    手动打补丁上传补丁文件时通常先在服务端找到该文件,然后使用pwd将路径输出并且拷贝,然后将路径粘贴到ftp工具的路径栏中。
    或者,需要把文件所在路径发给别人。

  • mkdir:创建目录
    参数:-p 确保目录名称存在,不存在的就建一个。

  • rmdir:删除空目录
    参数:-p 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除。

  • rm:删除文件或目录。
    补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数"-r",否则预设仅会删除文件。
    参数:
    -f 强制删除文件或目录。
    -r 递归处理,将指定目录下的所有文件及子目录一并处理。
    注意:在使用rm –rf * 命令前请使用pwd确定当前目录,以免发生误删除。

  • head:看一个文件的头几行
    参数:-n :后面接数字,代表显示几行的意思

  • more:一页一页的显示文件的内容
    使用方式:
    空格键 (space):代表向下翻一页;
    Enter :代表向下翻『一行』;
    /字符串 :代表在这个显示的内容当中,向下搜寻『字符串』;
    :f :立刻显示出文件名以及目前显示的行数;
    q :代表立刻离开 more ,不再显示该档案内容。
    常用方式及使用技巧:ifconfig –a | more

  • less:less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
    使用方式:
    空格键 :向下翻动一页;
    [pagedown]:向下翻动一页;
    [pageup] :向上翻动一页;
    /字符串 :向下搜寻『字符串』的功能;
    ?字符串 :向上搜寻『字符串』的功能;
    n :重复前一个搜寻 (与 / 或 ? 有关!)
    N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
    q :离开 less 这个程序;

  • tail:看一个文件末尾n行
    参数:-f,动态输出

  • cat:查看文件

  • cp :复制文件或目录。
    常用方式及使用技巧:cp server.xml ../bak,将当前目录下的server.xml文件复制到上一层的bak目录

  • mv:移动或更名现有的文件或目录。
    常用方式及使用技巧:mv 3.txt ../test2,将当前目录下的3.txt文件移动到上一层的test2目录

  • chmod:变更文件或目录的权限。

    只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。
    u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。

  • 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
    r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
    以下文件没有执行权限:

    执行以下命令:chmod o+x 3.txt

    执行以下命令:chmod a+w temp,为所有人加上temp目录的写入权限
  • find:查找文件或目录。

  • grep:查找文件里符合条件的字符串。
    一般配合管道使用,打开一个文件后在其中进行搜索。

  • source:在当前bash环境下读取并执行FileName中的命令。
    在编译核心时,常常要反复输入一长串命令,如

make mrproper
make menuconfig
make dep
make clean
make bzImage

这些命令既长,又繁琐。而且有时候容易输错,浪费你的时间和精力。如果把这些命令做成一个文件,让它自动按顺序执行,对于需要多次反复编译核心的用户来说,会很方便。
用source命令可以办到这一点。它的作用就是把一个文件的内容当成是shell来执行。

make mrproper &&
make menuconfig &&
make dep &&
make clean &&
make bzImage &&
make modules &&
make modules_install &&
cp arch/i386/boot/bzImge /boot/vmlinuz_new &&
cp System.map /boot &&
vi /etc/lilo.conf &&
lilo -v

文件建立好之后,以后每次编译核心,只需要在/usr/src/linux-2.4.20下输入source make_command 就行了。这个文件也完全可以做成脚本,只需稍加改动即可。

  • tar:用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
    打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
    参数:
    -c或--create 建立新的备份文件。
    -v或--verbose 显示指令执行过程。
    -z或--gzip或--ungzip 通过gzip指令处理备份文件。
    -f<备份文件>或--file=<备份文件> 指定备份文件。
    -x或--extract或--get 从备份文件中还原文件。

压缩文件 非打包

touch a.c
tar -czvf test.tar.gz a.c //压缩 a.c文件为test.tar.gz
a.c

解压文件

tar -xzvf test.tar.gz
a.c

  • vi:文书编辑器

    搜索替换
    /word 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
    ?word 向光标之上寻找一个字符串名称为 word 的字符串。
    n 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
    N 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
    使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!
    | [Ctrl] + [f] | 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用) |
    | ------------ | --------------------------------- |
    | [Ctrl] + [b] | 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用) |
    | [Ctrl] + [d] | 屏幕『向下』移动半页 |
    | [Ctrl] + [u] | 屏幕『向上』移动半页 |

设备管理

  • free:显示内存状态。

系统设置与用户管理

  • useradd:建立用户帐号。

  • passwd:设置密码。

  • su:变更用户身份。
    常用方式及使用技巧:
    su – oracle
    su oracle
    使用同一个命令中间加不加“-”是有很大的区别的:
    添加“-”时改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量。
    如果不添加“-”,只是改变了用户,其余的信息都不会发生变化。

进程管理

  • ps:报告程序状况。
    参数:
    -e 显示所有程序。
    -f 显示UID,PPIP,C与STIME栏位。
    常用方式及使用技巧:ps–ef |grep 12345,查找12345进程

  • kill:删除执行中的程序或工作。
    语  法:kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
    补充说明:kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。
    常用方式及使用技巧:kill -9 12345 ,杀死12345进程

  • top:显示管理执行中的程序。
    查看资源情况。

网络通信

  • netstat:显示网络状态,利用netstat指令可让你得知整个Linux系统的网络情况。

    命令输出结果详解:

    https://blog.csdn.net/weixin_44706392/article/details/98945643
    netstat 查看端口占用语法格式:
    netstat -tunlp | grep 端口号
    -t (tcp) 仅显示tcp相关选项
    -u (udp)仅显示udp相关选项
    -n 拒绝显示别名,能显示数字的全部转化为数字
    -l 仅列出在Listen(监听)的服务状态
    -p 显示建立相关链接的程序名
# netstat -tunlp | grep 8000
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      26993/nodejs 
  • ping:执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
    常用方式及使用技巧:ping 10.137.41.21

  • ip:基本上它整合了 ifconfig 与 route 这两个命令,不过ip 的功能更强大。用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。
    常见用法:id a

  • tcpdump:倾倒网络传输数据,进行网络抓包。

其他命令

  • restart:重启,配置文件重新生效。
    reload (重新加载),reload会重新加载配置文件,服务不会中断。而且reload时会测试conf语法等,如果出错会rollback用上一次正确配置文件保持正常运行。也叫平滑重启,不会对已经连接的服务造成影响。
    restart (重启)(先stop后start),会重启服务。这个重启会造成服务一瞬间的中断,如果配置文件出错会导致服务启动失败,那就是更长时间的服务中断了。
    注意:修改配置文件前一定要先备份!为了保证线上服务高可用,推荐使用reload。
    重启网络:service network restart
    重启httpd服务:service httpd restart

python

数据类型

列表
向列表添加元素
append()
extend()
insert()

从列表中获取元素
len()
当索引值为负数时,表示从列表的末尾反向索引

从列表删除元素
remove()、pop()和del

列表切片

  • 结束位置上的元素是不包含的(如上面例子中,“神奇女侠”的索引值是4,如果写成list1[2:4],便不能将其包含进来)。
    image
  • 从后面切片
    image
  • 使用步长
    image
    步长设置为负数,如-1,相当于将整个列表翻转过来。
    列表切片并不会修改列表自身的组成结构和数据,它其实是为列表创建一个新的拷贝(副本)并返回。

count(),统计某个元素在列表中出现的次数
index(),返回某个元素在列表中第一次出现的索引值
reverse(),将整个列表原地翻转
sort(),对列表元素进行排序

元组
元组和列表的最大区别是:元组只可读,不可写。

字符串
字符串与元组一样,都是属于“一言既出,驷马难追”的家伙。

count(sub[,start[,end]])方法用于查找sub参数在字符串中出现的次数,可选参数start和end表示查找的范围

find(sub[,start[,end]])或index(sub[,start[,end]])方法用于查找sub参数在字符串中第一次出现的位置,如果找到了,返回位置索引值;如果找不到,find()方法会返回-1,而index()方法会抛出异常(注:异常是可以被捕获并处理的错误

replace(old,new[,count])方法用于将字符串中的old参数指定的字符串替换成new参数指定的字符串

split(sep=None, maxsplit=-1)方法用于拆分字符串

join(iterable)方法用于拼接字符串

格式化
1.format()
format()方法接收位置参数和关键字参数,二者均传递到一个名为replacement的字段。而这个replacement字段在字符串内用大括号({})表示。
image

image

2.格式化操作符:%

三种方法可以对字符串进行拼接:
• 简单字符串连接时,直接使用加号(+),例如:full_name = prefix +name。
• 复杂的,尤其有格式化需求时,使用格式化操作符(%)进行格式化连接,例如:result = "result is %s:%d" % (name, score)。
• 当有大量字符串拼接,尤其发生在循环体内部时,使用字符串的join()方法无疑是最棒的,例如:result = "".join(iterator)。

序列
• 都可以通过索引得到每一个元素。
• 默认索引值总是从0开始(当然灵活的Python还支持负数索引)。
• 可以通过切片的方法得到一个范围内的元素的集合。
• 有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符)。

list()方法用于把一个可迭代对象转换为列表
tuple()方法用于把一个可迭代对象转换为元组
str()方法用于把obj对象转换为字符串
len()方法
max()方法用于返回序列或者参数集合中的最大值
min()
sum()方法用于返回序列iterable的所有元素值的总和
sorted()方法用于返回一个排序的列表
reversed()方法用于返回逆向迭代序列的值。它不是返回一个列表,而是返回一个迭代器对象。
enumerate()方法生成由二元组(二元组就是元素数量为2的元组)构成的一个迭代对象,每个二元组由可迭代参数的索引号及其对应的元素组成
zip()方法用于返回由各个可迭代参数共同组成的元组

字典
Python的字典在有些地方称为哈希(hash),有些地方称为关系数组。
字典的键必须独一无二,但值则不必。值可以取任何数据类型,但必须是不可变的,如字符串、数或元组。

  • fromkeys()方法
    用于创建并返回一个新的字典,它有两个参数;第一个参数是字典的键;第二个参数是可选的,是传入键对应的值,如果不提供,那么默认是None。
    image

  • keys()用于返回字典中的键

  • values()用于返回字典中所有的值

  • items()返回字典中所有的键值对(也就是项)

  • get()方法
    访问字典项,当键不存在的时候,get()方法并不会报错,只是默默地返回了一个None

  • setdefault()方法,setdefault()在字典中找不到相应的键时会自动添加

  • 使用成员资格操作符(in或notin)来判断一个键是否在字典中

  • clear()方法,清空一个字典

  • copy()方法,用于拷贝(浅拷贝)整个字典

  • pop(),给定键弹出对应的值

  • popitem(),弹出一个项

  • update()方法,更新字典

集合
在Python 3里,如果用大括号括起一堆数字但没有体现出映射关系,那么Python就会认为这堆数据是一个集合而不是映射。
集合的特点:其中元素是唯一的,其中元素是无序的(不能通过下标来访问)。

  • set(),创建集合,将列表转为集合

  • 可以通过迭代把集合元素读取出来

  • 以使用in和not in判断一个元素是否在集合中已经存在

  • add()方法,为集合添加元素

  • remove()方法,删除集合中已知的元素

  • frozenset(),冻结集合

类型转换
int()、float()和str()

获取类型

  • type()

  • isinstance()
    判断数据类型是否一致。
    有两个参数:第一个是待确定类型的数据;第二个是指定一个数据类型。它会根据两个参数返回一个布尔类型的值,True表示类型一致,False表示类型不一致。

操作符

算术操作符
+ - * / %  //
地板除法:双斜杠,舍弃小数,保留整数
幂运算操作符:双星号(
)

比较操作符
< <= > >= == !=

逻辑操作符
and or not

运算符优先级
image

成员关系操作符
in和not in

控制语句

分支的含义是“只有符合条件,才会去做某事”;而循环则是“只要符合条件,就持续做某事”。

分支语句

条件表达式(三元操作符)
image
small=x if x<y else y

断言
当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError异常。
什么情况下才会需要使用这个关键字呢?在做程序测试的时候就很好用!程序测试的目的就是要尽可能地发现潜在的BUG并修复它们。与其让错误的条件导致BUG出现,不如在错误条件出现的那一瞬间让程序实现“自我毁灭”。

while循环语句
while 条件:
循环体

for循环语句
image

所谓可迭代对象,就是指那些元素可以被单独提取出来的对象。Python中的可迭代对象有:列表、元组、字典、字符串,常结合for循环使用。

range():可以为指定的整数生成一个数字序列(可迭代对象),可指定开始数值、结束数值、步长

break语句
break语句的作用是终止当前循环,跳出循环体。

continue语句
它的作用是跳出本轮循环并开始下一轮循环(这里要注意的是:在开始下一轮循环之前,会先测试循环条件)。

else语句
while和for循环语句的后面也可以加上一个else语句,表示当条件不成立的时候执行的内容
image

函数

1.创建一个函数用def关键字
image
2.在函数中使用关键字return,后面跟着的就是指定要返回的值。
3.关键字参数
4.默认参数
5.可变参数
若实参个数不确定,在定义函数的时候,在参数前面加上星号()即可。通俗的理解就是将多个参数打包成一个元组的形式进行存储。
在定义函数的时候,在参数前面加上两个星号(**),表示为将参数们打包成字典的形式。
如果在收集参数后面还需要指定其他参数,那么在调用函数的时候就应该使用关键参数来指定,否则Python就都会把实参都纳入到收集参数中。
星号(
)在形参中的作用是“打包”,而在实参中的作用则相反,起到“解包”的作用。
6.局部变量
定义在函数内部的变量是局部变量,局部变量的作用范围只能在函数的内部生效,它不能在函数外被引用。
7.全局变量
如果在函数内部试图修改全局变量的值,那么Python会创建一个新的局部变量替代(名字与全局变量相同),但真正的全局变量是“不为所动”的。
在函数内部仅仅去访问全局变量就好,不要试图去修改它。
global关键字
8.函数嵌套

9.闭包
如果在一个内部函数里,对在外部作用域但不是在全局作用域的变量进行引用(简言之:就是在嵌套函数的环境下,内部函数引用了外部函数的局部变量),那么内部函数就被认为是闭包。
image
如果在一个内部函数里(funY()就是这个内部函数)对在外部作用域(但不是在全局作用域)的变量进行引用(x就是被引用的变量,x在外部作用域funX()函数里面,但不在全局作用域里),则这个内部函数就是一个闭包。

10.装饰器
个人理解:将被装饰函数当作参数传给装饰函数
语法糖

11.匿名函数lambda
基本语法是使用冒号(:)分隔函数的参数及返回值:冒号的左边放置函数的参数,如果有多个参数,使用逗号(,)分隔即可;冒号右边是函数的返回值。
image

12.过滤器filter()
filter()这个内置函数有两个参数:第一个参数可以是一个函数也可以是None,如果是一个函数的话,则将第二个可迭代对象里的每一个元素作为函数的参数进行计算,把返回True的值筛选出来;如果第一个参数为None,则直接将第二个参数中为True的值筛选出来。

13.映射器map()
map()这个内置函数两个参数,一个函数和一个可迭代对象,将可迭代对象的每一个元素作为函数的参数进行运算加工,直到可迭代序列每个元素都加工完毕。
map()的第二个参数是收集参数,支持多个可迭代对象。map()会从所有可迭代对象中依次取一个元素组成一个元组,然后将元组传递给func。注意:如果可迭代对象的长度不一致,则以较短的迭代结束为止。

14.递归
递归就是函数调用自身的行为。在函数内部可以调用所有可见的函数,当然也包括它自己。

文件

异常处理


selenium自动化测试

requests接口测试

jmeter性能测试

posted @ 2022-04-03 11:14  捷后愚生  阅读(108)  评论(0编辑  收藏  举报