Git记录

GitGui设置中文

复制zh_cn.msg文件到安装目录下:C:\Program Files\Git\mingw64\share\git-gui\lib\msgs 没有就建立对应目录
zh_cn.msg文件下载

Git配置文件基本注释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[core] //核心配置
repositoryformatversion = 0 //仓库格式版本
filemode = false //文件模式 设置为false 可以忽略chmod修改的权限信息
bare = false //仅是仓库 否
logallrefupdates = true //记录所有更新日志
symlinks = false //符号链接
ignorecase = true //忽略检测
hideDotFiles = dotGitOnly //隐藏带点的文件 仅隐藏.git文件[夹]
[remote "origin"] //远程源配置
url = https://github.com/fsyd666/fsyd666.github.io.git //远程源地址
fetch = +refs/heads/*:refs/remotes/origin/* //所取回的更新配置
[branch "master"] //master分支
remote = origin //远程源
merge = refs/heads/master //合并到远程heads的/master 修改这个可使本地分支和远程分支不对应
[gui] //显示配置
wmstate = normal //默认主题
geometry = 799x475+809+327 159 214 //不知道 字面意思"几何结构"
[user] //用户
name = your-name // 当前库的所使用的名字. 配置全局的使用 git config --global user.name = "your-name"
email = your-email@vip.com //当前库的所使用的Email. 配置全局的使用 git config --global user.email = "your-email@vip.com"
[branch "source"] //另一个分支
remote = origin //取远程源
merge = refs/heads/source //合并到远程的source分支

Git忽略

  1. 没有被管控的文件

    1
    .gitignore文件添加
  2. 已经推送(push)过的文件,想从git远程库中删除,并在以后的提交中忽略,但是却还想在本地保留这个文件

    1
    2
    git rm --cached Xml/config.xml 可使用通配符 Xml/*
    .gitignore文件添加
  3. 已经推送(push)过的文件,想在以后的提交时忽略此文件,即使本地已经修改过,而且不删除git远程库中相应文件

    1
    git update-index --assume-unchanged Xml/config.xml 可使用通配符 Xml/*

centOs6.4 iptables配置

CentOS6.4 配置iptables

选择规则表,这个一定要先做,不然清空后可能会悲剧

1
iptables -P INPUT ACCEPT

清空默认所有规则

1
iptables -F

清空自定义的所有规则

1
iptables -X

计数器置0

1
iptables -Z

如果没有此规则,你将不能通过127.0.0.1访问本地服务,例如ping 127.0.0.1

1
iptables -A INPUT -i lo -j ACCEPT

开启ssh端口22

1
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

开启FTP端口21

1
iptables -A INPUT -p tcp --dport 21 -j ACCEPT

开启web服务端口80

1
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

tomcat

1
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

mysql

1
iptables -A INPUT -p tcp --dport xxxx -j ACCEPT

允许icmp包通过,也就是允许ping

1
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

允许所有对外请求的返回包 ,本机对外请求相当于OUTPUT,对于返回数据包必须接收啊,这相当于INPUT了

1
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

如果要添加内网ip信任(接受其所有TCP请求)

1
iptables -A INPUT -p tcp -s 45.96.174.68 -j ACCEPT

每秒中最多允许5个新连接

1
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s --limit-burst 5 -j ACCEPT

每秒中最多允许5个新连接

1
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

开放多个端口

1
iptables -A INPUT -p tcp --dport 8888:8899 -j ACCEPT

Ping洪水攻击

1
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

封单个IP的命令是:

1
iptables -I INPUT -s 222.34.135.106 -j DROP

封IP段的命令是:

1
2
3
iptables -I INPUT -s 211.1.0.0/16 -j DROP
iptables -I INPUT -s 211.2.0.0/16 -j DROP
iptables -I INPUT -s 211.3.0.0/16 -j DROP

封整个段的命令是:

1
iptables -I INPUT -s 211.0.0.0/8 -j DROP

封几个段的命令是:

1
2
iptables -I INPUT -s 61.37.80.0/24 -j DROP
iptables -I INPUT -s 61.37.81.0/24 -j DROP

过滤所有非以上规则的请求

1
iptables -P INPUT DROP

保存重启

1
2
service iptables save
service iptables restart

删除规则用-D参数

1
iptables -D INPUT -p tcp -m tcp --dport 8080 -j ACCEPT

开源项目中国镜像

企业贡献:

大学教学:

ffmpeg基本使用方法

###ffmpeg基本命令使用:

分离视频音频流

1
2
ffmpeg -i input_file -vcodec copy -an output_file_video  //分离视频流
ffmpeg -i input_file -acodec copy -vn output_file_audio  //分离音频流

视频解复用

1
2
ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264
ffmpeg –i test.avi –vcodec copy –an –f m4v test.264

视频转码

1
2
3
4
ffmpeg –i test.mp4 –vcodec h264 –s 352*278 –an –f m4v test.264 //转码为码流原始文件
ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264 //转码为码流原始文件
ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi //转码为封装文件
//-bf B帧数目控制,-g 关键帧间隔控制,-s 分辨率控制

视频封装

ffmpeg –i video_file –i audio_file –vcodec copy –acodec copy output_file

视频剪切

1
2
3
ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg //提取图片
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi //剪切视频
//-r 提取图像的频率,-ss 开始时间,-t 持续时间

视频录制

1
ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi

YUV序列播放

1
ffplay -f rawvideo -video_size 1920x1080 input.yuv

YUV序列转AVI

1
ffmpeg –s w*h –pix_fmt yuv420p –i input.yuv –vcodec mpeg4 output.avi

常用参数说明:

主要参数:
-i 设定输入流
-f 设定输出格式
-ss 开始时间
视频参数:
-b 设定视频流量,默认为200Kbit/s
-r 设定帧速率,默认为25
-s 设定画面的宽与高
-aspect 设定画面的比例
-vn 不处理视频
-vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器
音频参数:
-ar 设定采样率
-ac 设定声音的Channel数
-acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器
-an 不处理音频

我的收藏夹

Git


代理


Linux


Web

Python


缓存

Flash


PHP


其他

Hexo 安装使用

  1. 先安装nodejs
  2. 安装hexo
    npm install -g hexo
  3. 初始化然后,执行init命令初始化hexo
    init 会使用 git 所以要把git加入到环境变量
    hexo init
    安装完成

常用命令

  • 生成静态页面
    hexo generate(hexo g也可以)
  • 启动本地服务,进行文章预览调试
    hexo server
  • 生成新文件
    hexo n 文件名
  • 更新hexo到最新版
    npm update hexo -g

配置Github

  1. 建立Repository fsyd666.github.io 必须这种格式 才能使用域名访问
  2. 修改 _config.yml 配置文件 的deploy如下

    1
    2
    3
    4
    deploy:
    type: git
    repo: https://github.com/fsyd666/fsyd666.github.io.git
    branch: master
  3. 执行如下命令:

    1
    npm install hexo-deployer-git
  4. 部署:

    1
    hexo deploy

每次部署步骤:

1
hexo g -d

git常用命令

查看、添加、提交、删除、找回,重置修改文件

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
git help <command> # 显示command的help
git show # 显示某次提交的内容 git show $id
git co -- <file> # 抛弃工作区修改
git co . # 抛弃工作区修改
git add <file> # 将工作文件修改提交到本地暂存区
git add . # 将所有修改过的工作文件提交暂存区
git rm <file> # 从版本库中删除文件
git rm <file> --cached # 从版本库中删除文件,但不删除文件
git reset <file> # 从暂存区恢复到工作文件
git reset -- . # 从暂存区恢复到工作文件
git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
git ci <file> git ci . git ci -a # 将git add, git rm和git ci等操作都合并在一起做                                    git ci -am "some comments"
git ci --amend # 修改最后一次提交记录
git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象
git revert HEAD # 恢复最后一次提交的状态
查看文件diff
git diff <file> # 比较当前文件和暂存区文件差异 git diff
git diff <id1><id1><id2> # 比较两次提交之间的差异
git diff <branch1>..<branch2> # 在两个分支之间比较
git diff --staged # 比较暂存区和版本库差异
git diff --cached # 比较暂存区和版本库差异
git diff --stat # 仅仅比较统计信息
查看提交记录
git log git log <file> # 查看该文件每次提交记录
git log -p <file> # 查看每次详细修改内容的diff
git log -p -2 # 查看最近两次详细修改内容的diff
git log --stat #查看提交统计信息
tig
Mac上可以使用tig代替diff和log,brew install tig
Git 本地分支管理
查看、切换、创建和删除分支
git br -r # 查看远程分支
git br <new_branch> # 创建新的分支
git br -v # 查看各个分支最后提交信息
git br --merged # 查看已经被合并到当前分支的分支
git br --no-merged # 查看尚未被合并到当前分支的分支
git co <branch> # 切换到某个分支
git co -b <new_branch> # 创建新的分支,并且切换过去
git co -b <new_branch> <branch> # 基于branch创建新的new_branch
git co $id # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除
git co $id -b <new_branch> # 把某次历史提交记录checkout出来,创建成一个分支
git br -d <branch> # 删除某个分支
git br -D <branch> # 强制删除某个分支 (未被合并的分支被删除的时候需要强制)
分支合并和rebase
git merge <branch> # 将branch分支合并到当前分支
git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交
git rebase master <branch> # 将master rebase到branch,相当于: git co <branch> && git rebase master && git co master && git merge <branch>
Git补丁管理(方便在多台机器上开发同步时用)
git diff > ../sync.patch # 生成补丁
git apply ../sync.patch # 打补丁
git apply --check ../sync.patch #测试补丁能否成功
Git暂存管理
git stash # 暂存
git stash list # 列所有stash
git stash apply # 恢复暂存的内容
git stash drop # 删除暂存区
Git远程分支管理
git pull # 抓取远程仓库所有分支更新并合并到本地
git pull --no-ff # 抓取远程仓库所有分支更新并合并到本地,不要快进合并
git fetch origin # 抓取远程仓库更新
git merge origin/master # 将远程主分支合并到本地当前分支
git co --track origin/branch # 跟踪某个远程分支创建相应的本地分支
git co -b <local_branch> origin/<remote_branch> # 基于远程分支创建本地分支,功能同上
git push # push所有分支
git push origin master # 将本地主分支推到远程主分支
git push -u origin master # 将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库)
git push origin <local_branch> # 创建远程分支, origin是远程仓库名
git push origin <local_branch>:<remote_branch> # 创建远程分支
git push origin :<remote_branch> #先删除本地分支(git br -d <branch>),然后再push删除远程分支
Git远程仓库管理
GitHub
git remote -v # 查看远程服务器地址和仓库名称
git remote show origin # 查看远程服务器仓库状态
git remote add origin git@ github:robbin/robbin_site.git # 添加远程仓库地址
git remote set-url origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址(用于修改远程仓库地址) git remote rm <repository> # 删除远程仓库
创建远程仓库
git clone --bare robbin_site robbin_site.git # 用带版本的项目创建纯版本仓库
scp -r my_project.git git@ git.csdn.net:~ # 将纯仓库上传到服务器上
mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服务器创建纯仓库
git remote add origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址
git push -u origin master # 客户端首次提交
git push -u origin develop # 首次将本地develop分支提交到远程develop分支,并且track
git remote set-head origin master # 设置远程仓库的HEAD指向master分支
也可以命令设置跟踪远程库和本地库
git branch --set-upstream master origin/master
git branch --set-upstream develop origin/develop
git checkout -b dev origin/dev # 创建本地分支并跟踪远程分支

markdown基本语法(md)

Markdown语法示例

什么是Markdown

Markdown是一个将文本转化为HTML的工具。简单来说,Markdown是一个兼顾可读性与易用性的轻量级标记体系。Markdown并不追求大而全,它只关心HTML里最常用的几个标记,对于一些不常用的标记它允许直接将HTML标记插入文本。


标题

Markdown提供了两种方式(Setext和Atx)来显示标题。

语法:

1
2
3
4
5
6
7
8
9
10
11
Setext方式
标题1
=================
标题2
-----------------
Atx方式
# 标题1
## 标题2
###### 标题6

效果:

Setext方式

标题1

标题2

Atx方式

标题1

标题2

标题6

换行

在文字的末尾使用两个或两个以上的空格来表示换行。


引用

行首使用>加上一个空格表示引用段落,内部可以嵌套多个引用。

语法:

1
2
3
4
> 这是一个引用,
> 这里木有换行,
> 在这里换行了。
> > 内部嵌套

效果:

这是一个引用,
这里木有换行,
在这里换行了。

内部嵌套


列表

无序列表使用*、+或-后面加上空格来表示。

语法:

1
2
3
4
5
6
7
8
9
10
11
* Item 1
* Item 2
* Item 3
+ Item 1
+ Item 2
+ Item 3
- Item 1
- Item 2
- Item 3

效果:

  • Item 1
  • Item 2
  • Item 3
  • Item 1
  • Item 2
  • Item 3
  • Item 1
  • Item 2
  • Item 3

有序列表使用数字加英文句号加空格表示。

语法:

1
2
3
1. Item 1
2. Item 2
3. Item 3

效果:

  1. Item 1
  2. Item 2
  3. Item 3

代码区域

行内代码使用反斜杠`表示。
代码段落则是在每行文字前加4个空格或者1个缩进符表示。

语法:

1
2
3
Bash中可以使用echo来进行输出。
$ echo 'Something'
$ echo -e '\tSomething\n'

效果:

Bash中可以使用echo来进行输出。

$ echo ‘Something’
$ echo -e ‘\tSomething\n’


强调

Markdown使用*或_表示强调。

语法:

1
2
3
4
5
6
7
8
9
10
单星号 = *斜体*
单下划线 = _斜体_
双星号 = **加粗**
双下划线 = __加粗__
效果:
单星号 = 斜体
单下划线 = 斜体
双星号 = 加粗
双下划线 = 加粗


链接

Markdown支持两种风格的链接:Inline和Reference。

语法:

1
2
3
4
5
6
7
Inline:以中括号标记显示的链接文本,后面紧跟用小括号包围的链接。如果链接有title属性,则在链接中使用空格加"title属性"。
Reference:一般应用于多个不同位置使用相同链接。通常分为两个部分,调用部分为[链接文本][ref];定义部分可以出现在文本中的其他位置,格式为[ref]: http://some/link/address (可选的标题)。
注:ref中不区分大小写。
这是一个Inline[示例](http://equation85.github.com "可选的title")。
这是一个Reference[示例][ref]。
[ref]: http://equation85.github.com

效果:

这是一个Inline示例
这是一个Reference示例


图片

图片的使用方法基本上和链接类似,只是在中括号前加叹号。
注:Markdown不能设置图片大小,如果必须设置则应使用HTML标记

语法:

1
2
3
4
Inline示例:![替代文本](/assets/images/jian.jpg "可选的title")
Reference示例:![替代文本][pic]
[pic]: /assets/images/ship.jpg "可选的title"
HTML示例:<img src="/assets/images/jian.jpg" alt="替代文本" title="标题文本" width="200" />


自动链接

使用尖括号,可以为输入的URL或者邮箱自动创建链接。如test@domain.com。

分隔线

在一行中使用三个或三个以上的*、-或_可以添加分隔线,其中可以有空白,但是不能有其他字符。


转义字符

Markdown中的转义字符为\,可以转义的有:

\ 反斜杠
` 反引号
* 星号
_ 下划线
{} 大括号
[] 中括号
() 小括号
# 井号
+ 加号
- 减号
. 英文句号
! 感叹号


结语

Markdown语法很大程度上减少了编辑的成本,但是在写作这篇文章的时候也发现某些标记对中文的支持似乎并不完美,虽然这些缺陷可以通过直接插入HTML代码解决(但这么做一点都不漂亮)。总的来说,能够在离线状态下使用命令行模式进行写作还是很爽的,相比在线写作模式精力可以更专注。