Python 列表类型功能解析

append() : 追加成员
count() : 统计列表中成员的个数
extend() : 扩展列表,参数为可迭代的对象,例如列表
index() : 返回成员的索引
insert() : 往某个索引的位置插入一个成员
pop() : 移出尾部的成员,且可以将移出的成员赋值给另外一个对象
remove() : 移除某个元素,只可移出发现的第一个成员
reverse() : 反转列表
sort() : 排序,支持不好,存在字符和数字的时候会执行错误
del : del 关键字可以删除指定位置的成员

Python 字符串类型功能解析

lstrip() : 去除字符串左侧空白
rstrip() : 去除字符串右侧空白
strip() : 去除字符串两侧空白(中间空白不会去除)
join() : 将可迭代的对象中元素使用字符串进行连接,例如字符串为-,可迭代的对象为列表、元组等
ljust() : 左对齐,右侧使用指定字符或空白填充
rjust() : 右对齐,左侧。。。
zfill() : 返回指定字符串的长度,原字符串右对齐,前面填充0
lower() : 转换为小写
upper() : 转换为大写
partition() : 根据字符串将字符串分给为三个部分,返回一个元组
rpartition() : 根据字符串将字符串分给为三个部分,返回一个元组,从右到左
replace() : 将指定匹配的字符串替换为另外一个字符串,可以代入第三个参数指定替换的次数
find() : 查看字符串位置
rdind() : 查找字符串位置,从右往左
split() : 通过指定字符串串分隔字符串,可以指定分隔的次数
rsplit() : 通过指定字符串串分隔字符串,可以指定分隔的次数,从右向左
endswitch() : 判断是否以某个字符串结尾
startswitch() : 判断是否以某个字符串开头
swapcase() : 大写变小写,小写变大写
istitle() : 判断是否为标题,即字符串中单词的首字母是否大写
title() : 设置为标题

Python 编码转换

要点:(Python 2.x版本)

1
2
3
4
5
6
7
8
9
	编码
unicode ----> UTF-8
解码
UTF-8 ----> unicode

编码
unicode ----> GBK
解码
GBK ----> unicode

因此若想将UTF-8编码转换为GBK编码,需要经过先解码成unicode,再编码成GBK的过程

在 Python 3.x 版本中,可以直接将UTF-8编码为GBK,且移除了unicode编码。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/evn python
# -*- coding: UTF-8 -*-

#由于windows DOS窗口默认使用GBK编码方式,如直接打印会出现乱码
print('胡肖勇')

#进行解码、编码过程,可以正常打印
str = '胡肖勇'
tmp_unicode = str.decode('UTF-8')
tmp_gbk = tmp_unicode.encode('GBK')
print(tmp_gbk)

print(tmp_unicode)
# Windows 比较人性化的设计是如果转换为unicode编码后,如果终端需要GBK编码,会自动将unicode编码为GBK。
# Python 3.x版本中是不可以的,因为移除了unicode编码。

示例运行结果:

1
2
3
4
C:\Users\ttlop>python E:\q1_s1_day01\s14.py
鑳¤倴鍕
胡肖勇
胡肖勇

Python 变量、基本数据类型

变量名

变量的作用:昵称,其代指内存里某个地址中保存的内容。

  1. 只能由数字、字母、下划线组成
  2. 不能以数字开头
  3. 变量名不能是python内部的关键字

基本的数据类型

  1. 数字
  2. 字符串 由单、双、三引号引起来的内容,必须是英文的引号
  3. 布尔值 True False

Python模块初识及用户输入打印

代码

1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import getpass

i1 = raw_input('Username:')
# 不显示用户输入
i2 = getpass.getpass('Password:')

print(i1)
print(i2)

执行

1
2
3
4
5
C:\Users\ttlop>E:\q1_s1_day01\index.py
Username:huxiaoyong
Password:
huxiaoyong
1234

Python 编码

Python由国外引入,在2.x版本中默认使用ASCII编码,此情况下,当输入中文字符时程序运行出错,究其原因是ASCII编码使用8位表示了所有的英文、符号、数字,但不包含中文。

后来引入万国码unicode。万国码规定最少使用两个字节,汉字使用3个字节。使用万国码可以标识世界上现有的所有语言,但存在一个弊端,英文、数字、符号等一个字节就可以标识的字符均使用至少两个字节标识,大大浪费了存储空间,由此引入了UTF-8编码。

UTF-8编码是对于unicode编码的加工,它规定了某些字符使用8位、某些使用16位、某些使用24位,大大节省了空间。GBK、GB2312与UTF-8编码类似,均是对于unicode编码的加工。

华为S系列交换机配置SSH登录

配置思路

  • 配置VTY用户界面
1
2
3
4
5
system-view
user-interface vty 0 4
authentication-mode aaa
protocol inbound ssh
quit
  • 创建SSH用户,并配置其认证方式为Password认证
1
2
3
4
5
6
aaa
local-user client001 password cipher xxxxxx
local-user client001 privilege level 3
local-user client001 service-type ssh
quit
ssh user client001 authentication-type password
  • 使能Stelnet服务器功能
1
stelnet server enable
  • 配置SSH用户服务方式为STelnet
1
ssh user client001 service-type stelnet

Zabbix 监控 Windows 的 CPU 百分比

Zabbix 自带的模块没有 CPU 使用率(百分比)这个监控项,我们可以通过添加计数器的方式实现 CPU 百分比的监控。

在 Zabbix 的 WEB 端进行模板配置添加 CPU 百分比监控项目

*. 配置–模块–选择对应的模板–项目–创建项目

名称:CPU 百分比
键值:perf_counter[\Processor(_Total)\% Processor Time]
数据类型:数字的(浮点)
单位:%
数据更新间隔(秒):30
应用集:CPU

*. 添加图形显示

*. 添加触发器CPU百分之85报警

表达式:{Windows 2008 R2:perf_counter[\Processor(_Total)\% Processor Time].avg(5m)}>85

Linux 访问 Windows 共享文件夹的两种方法

1. mount 挂载

首先创建被挂载的目录:

1
mkdir windows

将共享文件夹挂载到 windows 文件夹:

1
2
yum install cifs-utils  ## 安装必须组建
mount.cifs //192.168.x.x/Backup ./windows -o user=backup ## 挂载输入密码

其中 /root/windows 表示挂载点,就是上面 windows 目录的完整路径。

2. 使用 samba 连接

samba 就是让 windows 和 unix 系列 os 之间的文件可以互相访问的软件。使用 samba 访问 windows 的共享文件夹需要安装 smbclient。

安装好之后,就可以访问共享的文件了。

1
smbclient --user=backup //192.168.x.x/Backup/Backup  ## 输入密码

此时进入 smb 的命令操作空间,可以使用 help 来查看命令的使用。

也可以使用 help 查看单个命令的使用方式。

HTTP 请求

最常用请求:

  1. GET:请求获取由Request-URL所标识的资源
  2. POST:在Request-URL所标识的资源后附加新的数据。例如:文件上传、提交表单

都是为了实现服务器端的交互。用到的协议规则:

GET请求:

  1. 第一行:方法 路径 协议版本(例如:GET / HTTP/1.1)
  2. 第二行:可以处理哪些类型的数据(例如:Accept: text/html, application/xhtml+xml, /
  3. 第三行:可以接收的语言区域(例如:Accept-Language: zh-CN)
  4. 第四行:浏览器的客户端版本号
  5. 第五行:可以接收的编码格式(例如:Accept-Encoding: gzip, deflate)
  6. 第六行:表示访问的主机IP或者域名:Host
  7. 第七行:长连接(例如:Connection: Keep-Alive),由于每次传输都是建立TCP连接,消耗资源,所有有了长连接的机制,节省资源
  8. 第八行:Cookie(浏览器发送给服务器的内容)
    。。。

POST请求:

  1. 第一行:方法 路径 协议版本(例如:POST / HTTP/1.1)
  2. 第二行:请求使用的方式(例如:x-requested-with: XMLHttpRequest)
  3. 第三行:可以接收的语言区域(例如:Accept-Language: zh-CN)
  4. 第四行:浏览器的请求来源,(例如:Referer: http://www.baidu.com/等)
  5. 第五行:Accept 可以处理哪些类型的数据
    。。。

响应:

  1. 第一行:协议版本

不常用请求:
HEAD OPTIONS PUT DELETE TRACE