0%

tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
-a: 尝试将网络和广播地址转换成名称;
-c <数据包数目>: 收到指定的数据包数目后,就停止进行倾倒操作;
-d: 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出;
-dd: 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出;
-ddd: 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出;
-e: 在每列倾倒资料上显示连接层级的文件头;
-f: 用数字显示网际网络地址;
-F <表达文件>: 指定内含表达方式的文件;
-i <网络界面>: 使用指定的网络截面送出数据包;
-l: 使用标准输出列的缓冲区;
-n: 不把主机的网络地址转换成名字;
-N: 不列出域名;
-O: 不将数据包编码最佳化;
-p: 不让网络界面进入混杂模式;
-q: 快速输出,仅列出少数的传输协议信息;
-r <数据包文件>: 从指定的文件读取数据包数据;
-s <数据包大小>: 设置每个数据包的大小;
-S: 用绝对而非相对数值列出TCP关联数;
-t: 在每列倾倒资料上不显示时间戳记;
-tt: 在每列倾倒资料上显示未经格式化的时间戳记;
-T <数据包类型>: 强制将表达方式所指定的数据包转译成设置的数据包类型;
-v: 详细显示指令执行过程;
-vv: 更详细显示指令执行过程;
-x: 用十六进制字码列出数据包资料;
-w <数据包文件>: 把数据包数据写入指定的文件。
Read more »

版本格式:主版本号.次版本号[-先行版本号][+编译版本号].修订号,版本号递增规则如下:

  1. 主版本号:当你做了不兼容的API修改
  2. 次版本号:当你做了向下兼容的功能性新增
  3. 修订号:当你做了向下兼容的问题修正
  4. 先行版本号:表示这个版本并非稳定而且可能无法达到兼容的需求, 值一般为:alphabetagammarcreleasestable
  5. 编译版本号:当两个版本只有在版本编译信息有差别时,属于相同的优先层级

详细参见:语义化版本2.0.0

示例

1.0.0-alpha1.0.0-alpha.11.0.0-rc.11.0.0-stable+build.2018070913241.1.2+sha.7e3e2a0

Color Name HEX Color
AliceBlue #F0F8FF #F0F8FF
AntiqueWhite #FAEBD7 #FAEBD7
Aqua #00FFFF #00FFFF
Aquamarine #7FFFD4 #7FFFD4
Azure #F0FFFF #F0FFFF
Beige #F5F5DC #F5F5DC
Bisque #FFE4C4 #FFE4C4
Black #000000 #000000
BlanchedAlmond #FFEBCD #FFEBCD
Blue #0000FF #0000FF
BlueViolet #8A2BE2 #8A2BE2
Brown #A52A2A #A52A2A
BurlyWood #DEB887 #DEB887
CadetBlue #5F9EA0 #5F9EA0
Chartreuse #7FFF00 #7FFF00
Chocolate #D2691E #D2691E
Coral #FF7F50 #FF7F50
CornflowerBlue #6495ED #6495ED
Cornsilk #FFF8DC #FFF8DC
Crimson #DC143C #DC143C
Cyan #00FFFF #00FFFF
DarkBlue #00008B #00008B
DarkCyan #008B8B #008B8B
DarkGoldenRod #B8860B #B8860B
DarkGray #A9A9A9 #A9A9A9
DarkGreen #006400 #006400
DarkKhaki #BDB76B #BDB76B
DarkMagenta #8B008B #8B008B
DarkOliveGreen #556B2F #556B2F
DarkOrange #FF8C00 #FF8C00
DarkOrchid #9932CC #9932CC
DarkRed #8B0000 #8B0000
DarkSalmon #E9967A #E9967A
DarkSeaGreen #8FBC8F #8FBC8F
DarkSlateBlue #483D8B #483D8B
DarkSlateGray #2F4F4F #2F4F4F
DarkTurquoise #00CED1 #00CED1
DarkViolet #9400D3 #9400D3
DeepPink #FF1493 #FF1493
DeepSkyBlue #00BFFF #00BFFF
DimGray #696969 #696969
DodgerBlue #1E90FF #1E90FF
FireBrick #B22222 #B22222
FloralWhite #FFFAF0 #FFFAF0
ForestGreen #228B22 #228B22
Fuchsia #FF00FF #FF00FF
Gainsboro #DCDCDC #DCDCDC
GhostWhite #F8F8FF #F8F8FF
Gold #FFD700 #FFD700
GoldenRod #DAA520 #DAA520
Gray #808080 #808080
Green #008000 #008000
GreenYellow #ADFF2F #ADFF2F
HoneyDew #F0FFF0 #F0FFF0
HotPink #FF69B4 #FF69B4
IndianRed #CD5C5C #CD5C5C
Indigo #4B0082 #4B0082
Ivory #FFFFF0 #FFFFF0
Khaki #F0E68C #F0E68C
Lavender #E6E6FA #E6E6FA
LavenderBlush #FFF0F5 #FFF0F5
LawnGreen #7CFC00 #7CFC00
LemonChiffon #FFFACD #FFFACD
LightBlue #ADD8E6 #ADD8E6
LightCoral #F08080 #F08080
LightCyan #E0FFFF #E0FFFF
LightGoldenRodYellow #FAFAD2 #FAFAD2
LightGray #D3D3D3 #D3D3D3
LightGreen #90EE90 #90EE90
LightPink #FFB6C1 #FFB6C1
LightSalmon #FFA07A #FFA07A
LightSeaGreen #20B2AA #20B2AA
LightSkyBlue #87CEFA #87CEFA
LightSlateGray #778899 #778899
LightSteelBlue #B0C4DE #B0C4DE
LightYellow #FFFFE0 #FFFFE0
Lime #00FF00 #00FF00
LimeGreen #32CD32 #32CD32
Linen #FAF0E6 #FAF0E6
Magenta #FF00FF #FF00FF
Maroon #800000 #800000
MediumAquaMarine #66CDAA #66CDAA
MediumBlue #0000CD #0000CD
MediumOrchid #BA55D3 #BA55D3
MediumPurple #9370DB #9370DB
MediumSeaGreen #3CB371 #3CB371
MediumSlateBlue #7B68EE #7B68EE
MediumSpringGreen #00FA9A #00FA9A
MediumTurquoise #48D1CC #48D1CC
MediumVioletRed #C71585 #C71585
MidnightBlue #191970 #191970
MintCream #F5FFFA #F5FFFA
MistyRose #FFE4E1 #FFE4E1
Moccasin #FFE4B5 #FFE4B5
NavajoWhite #FFDEAD #FFDEAD
Navy #000080 #000080
OldLace #FDF5E6 #FDF5E6
Olive #808000 #808000
OliveDrab #6B8E23 #6B8E23
Orange #FFA500 #FFA500
OrangeRed #FF4500 #FF4500
Orchid #DA70D6 #DA70D6
PaleGoldenRod #EEE8AA #EEE8AA
PaleGreen #98FB98 #98FB98
PaleTurquoise #AFEEEE #AFEEEE
PaleVioletRed #DB7093 #DB7093
PapayaWhip #FFEFD5 #FFEFD5
PeachPuff #FFDAB9 #FFDAB9
Peru #CD853F #CD853F
Pink #FFC0CB #FFC0CB
Plum #DDA0DD #DDA0DD
PowderBlue #B0E0E6 #B0E0E6
Purple #800080 #800080
Red #FF0000 #FF0000
RosyBrown #BC8F8F #BC8F8F
RoyalBlue #4169E1 #4169E1
SaddleBrown #8B4513 #8B4513
Salmon #FA8072 #FA8072
SandyBrown #F4A460 #F4A460
SeaGreen #2E8B57 #2E8B57
SeaShell #FFF5EE #FFF5EE
Sienna #A0522D #A0522D
Silver #C0C0C0 #C0C0C0
SkyBlue #87CEEB #87CEEB
SlateBlue #6A5ACD #6A5ACD
SlateGray #708090 #708090
Snow #FFFAFA #FFFAFA
SpringGreen #00FF7F #00FF7F
SteelBlue #4682B4 #4682B4
Tan #D2B48C #D2B48C
Teal #008080 #008080
Thistle #D8BFD8 #D8BFD8
Tomato #FF6347 #FF6347
Turquoise #40E0D0 #40E0D0
Violet #EE82EE #EE82EE
Wheat #F5DEB3 #F5DEB3
White #FFFFFF #FFFFFF
WhiteSmoke #F5F5F5 #F5F5F5
Yellow #FFFF00 #FFFF00
YellowGreen #9ACD32 #9ACD32

/usr/share/applications目录下创建一个以.desktop结尾的文件,里面内容如下:

1
2
3
4
5
6
7
[Desktop Entry]
Name=eclipse
Type=Application
Exec=/usr/share/eclipse/eclipse
Icon=/usr/share/eclipse/icon.xpm
Categories=Application;Utility;
Terminal=false

关键字说明:

  • Name: 快捷方式的名字
  • Type: 程序类型
  • Exec: 要执行的程序
  • Icon: 执行程序的图标
  • Categories: 快捷方式显示的位置
  • Terminal: 是否使用终端

客户端操作

1
2
3
4
# 客户端生成公钥私钥
ssh-keygen -t rsa
# 将公钥传送到服务器上
scp ~/.ssh/id_rsa.pub root@192.168.1.2:~/aaa.pub

服务端操作

1
2
# 将公钥添加到 authorized_keys 文件后面
cat aaa.pub >> ~/.ssh/authorized_keys

SELinux引起的ssh公钥认证失败问题

sshd配置正确的情况下,还是无法使用publickey登陆,那么极有可能是被SELinux拦截了, 造成的原因可能是.ssh目录的权限错误。

1
2
3
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
restorecon -r -vv ~/.ssh

计算字符串的MD5值

1
2
3
4
5
import hashlib

string = ''
md5 = hashlib.md5(string.encode('utf-8')).hexdigest()
print(md5)

计算文件的MD5值

1
2
3
4
5
6
7
import hashlib

file = ''
md5file = open(file, 'rb')
md5 = hashlib.md5(md5file.read()).hexdigest()
md5file.close()
print(md5)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import uuid
import socket

def get_mac_address():
mac=uuid.UUID(int = uuid.getnode()).hex[-12:]
return ":".join([mac[e:e+2] for e in range(0,11,2)])

# 获取Mac地址
mymac = get_mac_address()
#获取本机电脑名
myname = socket.getfqdn(socket.gethostname())
#获取本机ip
myaddr = socket.gethostbyname(myname)

print(mymac)
print(myname)
print(myaddr)

  • 全屏截图

    同时按住command+shift+3,便可以对整个屏幕进行截图,截完的图片自动保存在桌面上。

  • 任意部分截图

    同时按住command+shift+4,然后用鼠标选择你希望截图的区域,松开鼠标,便可以自动截图,图片保存在桌面上。

  • 对规则图形进行截图

    同时按住command+shift+4,然后按一下空格健,然后用鼠标选择一块区域,单击就能实现自动截图,图片保存在桌面上。

详细用法参见:https://support.apple.com/zh-cn/HT201361

方法一

1
2
3
4
5
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return decodeURIComponent(r[2]); return null;
}

使用

1
console.log(getQueryString(name))

方法二

1
2
3
4
5
6
7
8
9
10
11
12
function getQueryParams() {
var search = location.search; //获取url中"?"符后的字串
var theRequest = new Object();
if (search.indexOf("?") != -1) {
var search = search.substr(1);
params = search.split("&");
for(var i = 0; i < params.length; i ++) {
theRequest[params[i].split("=")[0]] = decodeURIComponent(params[i].split("=")[1]);
}
}
return theRequest;
}

使用

1
console.log(getQueryParams())