0%

yolo是一个实时物体检测的算法,实时性以及精度都很不错,最近正好有项目用到,在这里总结一下,这一片主要记录在WIN以及UBUNTU下环境的配置,下面大部分过程两个系统中很相似,不同的地方我会提到

yolov4是目前比较新的一个版本,提升了检测性能以及可以在家用的GPU平台中进行训练,yolo官方的版本主要是在darknet框架下实现的,同时有很多大神把它写成了不同的版本,这里考虑到需要跨平台来使用,为了简化环境配置,使用pytorch版本YOLOv4

1.安装 Anaconda

首先我们需要安装anaconda,这是一个python的虚拟环境,当你需要配置不同的依赖环境又害怕相互冲突时这个就非常有用了,在WIN下安装过程很简单,记得添加到PATH路径就好,这里就不用赘述了,对于Linux,我的版本是Ubuntu16.04,下载对应版本.sh安装包后执行下列命令安装:

1
2
bash ~/Downloads/Anaconda3-5.2.0-Linux-x86_64.sh
bash ~/Downloads/Anaconda2-5.2.0-Linux-x86_64.sh

这里第一个Anaconda3对应的是python3版本,Anaconda2则是python2版本,下载的时候要注意
输入命令后一路跟着提示完成就可以了,安装完成后命令行输入conda如果找不到还要添加到系统的环境,输入下面命令

1
2
3
4
5
$ sudo gedit ~/.basrc
在打开文件结尾处添加
export PATH=/home/aeasringnar/anaconda3/bin:$PATH
保存退出后运行
source ~/.bashrc

至此Anaconda就安装成功了

2.安装所需环境

首先创建一个虚拟环境,名称为pytorch(可以自定义,后面一致就行)

conda create --name torch python=3.6

然后激活这个环境

conda activate torch

安装依赖项,如果安装CPU版本,建议模型的选择上选择tiny的模型,不然帧率会很低,安装命令如下:

conda install pytorch torchvision cpuonly -c pytorch

如果需要GPU版本,需要首先安装Nvidia驱动,先添加PPA源
$ sudo add-apt-repository ppa:graphics-drivers/ppa
更新软件列表
$ sudo apt-get update

查看当前可安装的驱动版本
ubuntu-drivers devices
驱动列表
在列出的驱动版本中选择要安装的版本使用pip方式进行安装,例如这里我安装的是440版本,可以执行命令
sudo pip install nvidia-440
或者可以直接执行udo ubuntu-drivers autoinstall自动安装推荐的版本
安装完成后我们在命令行执行
$ nvidia-smi
正确安装会有如下输出
显卡信息
注意这里的cuda版本下面安装cudatoolkit的时候要一致

执行下列命令安装pytorch,注意这里的cudatoolkit版本和上面一致

1
2
$ pytorch  conda install pytorch==1.5.0 torchvision==0.6.0 cudatoolkit=10.2 -c pytorch
$ pip install opencv_python

3.运行摄像头的Demo实时检测

从Github中下载这个项目,打开目录下的tool文件夹,将camera.py移到上一层目录,这里一个摄像头检测的Demo,有一处地方需要修改,在第68行,将
orig_im = plot_boxes_cv2(frame, boxes, class_names=class_names)
改为
orig_im = plot_boxes_cv2(frame, boxes[0], class_names=class_names)

项目路径新建文件夹weight,下载yolo模型文件yolov4.weights并放入,当然,配置文件路径在camera.py文件中也可以做修改自定义,在36行左右,如图所示
路径
其中coco.names存储检测的对象名称,.cfg是检测网络的网络结构配置文件,.weights是权重文件,预训练的模型

经过上面步骤后执行命令python camera.py就可以运行啦,控制台会显示当前的fps,在我的笔记本GTX1070中可以达到10fps左右。

图床主要用于存储图片,生成外链供其他人访问,可以为个人博客提供图片存储服务,对于像我一样使用github pages建站,存储容量有限,文章中经常添加一些图片的人来说是非常有用了,国内常用的服务提供商如七牛云,存储空间免费但是域名需要额外购买,想到手里正好有群晖的NAS,正好可以用chevereto实现图床功能,然后使用群晖的DDNS服务域名设置路由器端口转发完成外链访问,就可以愉快的在博客中插入图片而不用担心github空间不够用了,网上有使用docker虚拟环境搭建的,我没有尝试,感兴趣可以搜索

安装下载相关软件

进入群晖套件中心,安装以下必须套件:

1
2
3
4
5
MariaDB 10
PHP 7.0
phpMyAdmin
Web Station
Apache HTTP Server 2.4

在Github下载Chevereto

配置环境

  1. 打开群晖的Web Station,点击PHP设置,双击选择安装PHP7.0,下方扩展名称要全部勾选,保存设置
    webstation
  2. 打开File Station,新建chevereto文件夹,将将下载的Chevereto放入文件夹内并解压缩,文件夹要给权限,右键属性选择权限然后新增用户组Everyone,并给与所有权限,应用到所有子文件就好了
    目录
    权限
    打开群晖的Web Station设置虚拟主机,端口可以自定义,根目录选择上面解压缩后的文件夹,设置如图
    虚拟主机
  3. 在phpMyAdmin中新建数据库,名称自定义
    db
  4. 新建settings.php文件放到解压后的目录app文件夹下,打开群晖的网址加上端口号进行安装
    例如:192.168.1.2:1234
    安装过程中参照下图进行设置
    步骤1
    步骤2
    步骤3
    安装成功

这样就完成了图床应用程序的安装

使用教程

现在搭建好的图床中存储的图片只能在内网中做访问,如果要进行外部访问,需要设置DDNS域名解析服务或者设置DMZ主机,两者前提是有公网ip不过这样会将主机完全暴露在公网中,安全性不佳,这里使用群晖的DDNS服务进行搭建,方法只适用于白群辉,黑群晖大家可以在第一步中选择其他域名供应商。

1.开启群辉DDNS服务

打开控制面板->外部访问->DDNS->新增
DDNS设置
填写相关信息点击确定就可以了

2.设置路由器的端口映射,将群晖Webstation中设置的端口映射到公网,不同路由器请自行搜索如何设置

经过以上设置,通过DDNS域名就可以对图床进行访问了

参考内容群晖搭建 chevereto 图床

主要以Next主题为例,讲解如何在Hexo框架中选取主题并进行设置

Next主题的安装

在Hexo中安装新的主题,需要将下载的主题放至themes文件夹下,随后对两个_config.yml文件进行修改,一个是博客主目录下的站点配置文件,用于选择主题,另一个在主题目录下主题配置文件,主要进行主题的一些个性化设置。

1
2
/hexo/_config.yml
/hexo/themes/theme_name/_config.yml

1.下载Next主题:

git clone https://github.com/theme-next/hexo-theme-next themes/next

2.修改站点配置文件/hexo/_config.yml

2.1 语言主题选择

1
2
3
4
5
Themes: https://hexo.io/themes/
theme: landscape
author:
language:
timezone:

将theme改为next,language后面输入zh-CN

2.2添加装饰动图

git输入如下代码npm install -save hexo-helper-live2d
站点配置文件添加代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
live2d:
enable: true
scriptFrom: local
pluginRootPath: live2dw/
pluginJsPath: lib/
pluginModelPath: assets/
tagMode: false
log: false
model:
use: live2d-widget-model-<你喜欢的模型名字>
display:
position: right
width: 150
height: 300
mobile:
show: true

可选择的模型名字可以自行搜索,这里以tororo为例
1.在站点目录下建立文件夹live2d_models
2.live2d_models文件夹中建立tororo文件夹
3.tororo文件夹中建立文件tororo.model.json
git执行命令安装
npm install --save live2d-widget-model-tororo
这样设置后动图就会出现在网页右下角

3.修改主题配置文件/themes/next/_config.yml

3.1设置标签分类

1
2
3
4
5
6
7
8
9
menu:
home: / || fa fa-home
#about: /about/ || fa fa-user关于
#tags: /tags/ || fa fa-tags标签
#categories: /categories/ || fa fa-th分类
archives: /archives/ || fa fa-archive归档
#schedule: /schedule/ || fa fa-calendar
#sitemap: /sitemap.xml || fa fa-sitemap
#commonweal: /404/ || fa fa-heartbeat

这里将需要添加的标签页取消注释即可,我添加了about,categories,tags,archives标签
在这里categories和tags需要额外进行下列设置,在git中执行命令

1
2
$ hexo new page categories
$ hexo new page tags

此命令在source文件夹中建立了categoriestags两个文件夹,分别修改两个文件夹中index.md为以下内容
categories/index.md
tags/index.md
经过上面设置就可以为文章增加标签和分类了,具体如何添加,请参考这里

3.2设置主题样式

1
2
3
4
5
6
# Schemes
#scheme: Muse
#scheme: Mist
scheme: Pisces
#scheme: Gemini
选择你喜欢的一种样式,去掉前面的 #,其他主题前加上 # 即可。

Pisces样式示例图片如下
Pisces

3.3显示文章当前浏览进度

搜索关键字scrollpercent,将false改为true

3.4设置网站图标

将一张32x32的ico图标放在themes/next/source/images里,修改配置文件如下:

1
2
3
favicon:
small: /images/favicon.ico
medium: /images/favicon.ico

3.5 开启多国语言支持

1
language_switcher: true

3.6 开启代码块复制

1
2
3
4
codeblock:
copy_button:
enable: true
show_result: true

4.其他设置

4.1 隐藏底部Powered By Hexo显示

PBH
博客在网页的最底端会显示上图中文字,去除这行文字我们可以打开\themes\next\layout\_partials\footer.swig文件,删除如下内容:

1
2
3
4
5
6
7
8
9
{%- if theme.footer.powered %}
<div class="powered-by">
{%- set next_site = 'https://theme-next.org' %}
{%- if theme.scheme !== 'Gemini' %}
{%- set next_site = 'https://' + theme.scheme | lower + '.theme-next.org' %}
{%- endif %}
{{- __('footer.powered', next_url('https://hexo.io', 'Hexo', {class: 'theme-link'}) + ' & ' + next_url(next_site, 'NexT.' + theme.scheme, {class: 'theme-link'})) }}
</div>
{%- endif %}

其他更多的设置请参考主题配置

在Opencv3.0后续版本中,一些高级特征提取、立体视觉以及机器学习的相关库都集成在opencv_contrib包里面,使用之前需要额外编译配置。
需要的工具:
点击这里下载OpenCV3.2.0Win版本安装包
点击这里下载opencv_contrib-3.2.0.zip注意不带rc
CMake、 Visual Studio 2015

准备

将下载的opencv_contrib-3.2.0.zip解压后放到OpenCV安装目录,我这里是C:\library\opencv,在此目录下建立文件夹mybuild存放编译文件。

开始编译

打开CMake,参照下图填写路径后点击Configure进行配置
CMake
弹出窗口选择VS2015 X64点击Finish
VS2015 x64
进行如下配置:(这里供参考)

  1. OPENCV_EXTRA_MODULES_PATH填写C:\library\opencv\opencv_contrib-3.2.0\opencv_contrib-3.2.0\modules

  2. 去掉WITH_CUDA

  3. CMAKE_INSTALL_PREFIX填写C:/library/opencv/build

点击Generate生成后打开mybuild文件夹下OpenCV.sln文件,编译生成ALL_BUILDINSTALL项目即可。

配置过程中出现无法下载ippicv_windows_20151201.zip,手动下载后放到sources\3rdparty\ippicv\downloads\windows-04e81ce5d0e329c3fbc606ae32cad44d目录下重新进行Configure即可

VS2015开发环境配置

环境变量配置

Path环境变量添加C:\library\opencv\build\x64\vc14\bin

添加包含目录、库目录

新建VS2015工程,视图->其他窗口打开属性管理器,如下图所示进行配置:

在属性管理器中配置x64属性,VC++目录包含目录添加如下信息:

1
2
3
C:\library\opencv\build\include
C:\library\opencv\build\include\opencv
C:\library\opencv\build\include\opencv2

库目录中添加C:\library\opencv\build\x64\vc14\lib

链接器-输入-附加依赖项中添加:(Debug,如需Release版本请去掉d)

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
opencv_aruco320d.lib
opencv_bgsegm320d.lib
opencv_bioinspired320d.lib
opencv_calib3d320d.lib
opencv_ccalib320d.lib
opencv_core320d.lib
opencv_datasets320d.lib
opencv_dpm320d.lib
opencv_face320d.lib
opencv_features2d320d.lib
opencv_flann320d.lib
opencv_fuzzy320d.lib
opencv_imgcodecs320d.lib
opencv_imgproc320d.lib
opencv_highgui320d.lib
opencv_line_descriptor320d.lib
opencv_ml320d.lib
opencv_objdetect320d.lib
opencv_optflow320d.lib
opencv_phase_unwrapping320d.lib
opencv_photo320d.lib
opencv_plot320d.lib
opencv_reg320d.lib
opencv_rgbd320d.lib
opencv_saliency320d.lib
opencv_shape320d.lib
opencv_stereo320d.lib
opencv_stitching320d.lib
opencv_structured_light320d.lib
opencv_superres320d.lib
opencv_surface_matching320d.lib
opencv_text320d.lib
opencv_tracking320d.lib
opencv_video320d.lib
opencv_videoio320d.lib
opencv_videostab320d.lib
opencv_xfeatures2d320d.lib
opencv_ximgproc320d.lib
opencv_xobjdetect320d.lib
opencv_xphoto320d.lib

测试

可以使用下列代码进行测试:

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
#include opencv2/opencv.hpp

#define PI 3.1415926
#define R 150
using namespace cv;
using namespace std;

int main()
{
Point center = Point(250, 250);
int temp = 0;
while (waitKey(60) != 27)
{
temp++;
temp = temp % 72;
float 角度 = temp / 18.0 * PI;
Mat picture(500, 500, CV_8UC3, Scalar(255, 255, 255));
// center = Point(palm[0] + 320, palm[2] + 240);
// r = palm[1] / 2;
center.x = 250 + R*sin(角度);
center.y = 250 - R*cos(角度);
int r = 20;
circle(picture, center, r, Scalar(255, 0, 0), -1);

for (int i = 1; i < 7; i++)
{
角度 = (temp - 3 * i) / 18.0 * PI;
r = 20 - i * 2;
center.x = 250 + R*sin(角度);
center.y = 250 - R*cos(角度);
circle(picture, center, r, Scalar(255, 0, 0\), -1);
}
string 内容 = "Loading...";
switch ((temp % 36) / 12)
{
case 0:内容 = "Opencv3"; break;
case 1:内容 = "Opencv3."; break;
case 2:内容 = "Opencv3.2.0"; break;
}
cv::putText(picture, 内容, cv::Point(180, 250), 3, 1, cvScalar(0, 0, 255));

imshow("Loading...", picture);
}

}

运行截图如下:
截图

GitHub项目地址:fastfusion,四年前的项目了,正好用得到拿出来跑一下,记录下环境配置和问题解决。

项目依赖:
OpenCV
Qt
Doxygen
Boost
Eigen
GLUT、GLEW
libQGLViewer

安装依赖项

Opencv安装见上一篇博文

Qt

点击这里进入下载界面下载所需版本的Qt,这里我下载的是4.7.0
sudo apt-get install g++-multilib libx11-dev libxext-dev libxtst-dev zlib1g-dev lib32ncurses5 lib32z1 libpng-dev autoconf automake libtool
依次执行下列命令:

1
2
3
4
5
$ tar -xzvf qt-everywhere-opensource-src-4.7.0.tar.gz
$ cd qt-everywhere-opensource-src-4.7.0
$ sudo ./configure 接受
$ sudo make -j8(使用线程数,根据CPU配置)
$ sudo make install

sudo gedit /etc/profile,末尾添加下列内容

1
2
3
4
export QTDIR=/usr/local/Trolltech/Qt-4.7.0
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

输入qmake \-v如果版本输出正确则安装成功。

Doxygen

1
2
3
$ apt-get install graphviz
$ apt-get install doxygen
$ apt-get install doxygen-gui

Boost

sudo apt-get install libboost1.58-all-dev

Eigen

sudo apt-get install libeigen3-dev

GLUT、GLEW

1
2
3
4
5
6
7
8
GLUT:
$ sudo apt-get install build-essential
$ sudo apt-get install libgl1-mesa-dev
$ sudo apt-get install libglu1-mesa-dev
$ sudo apt-get install freeglut3-dev
GLEW:
$ apt-cache search glew
安装列出的所有软件包

libQGLViewer

sudo apt-get install libqglviewer-qt4-dev

错误解决

找不到OpenCV

CMakeList.txt中:
find_package(OpenCV REQUIRED)改为set(OpenCV_DIR /usr/local/opencv/release)

libQGLViewer出错

1
2
/src/onlinefusionviewer.cpp
添加QGLViewer/manipulatedFrame.h

0x00 准备

CMake

输入cmake \--version查看是否已安装CMake,若有版本信息请跳过这一步

点击这里下载CMake最新版
下载后解压,进入安装目录执行:

1
2
3
$ sudo ./bootstrap
$ sudo make -jn(n并行线程数,根据CPU决定)
$ sudo make install

输入cmake \--version查看版本是否正确

安装编译工具

sudo apt-get install build-essential

安装依赖包

sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

安装可选包

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

0x01 编译OpenCV

下载OpenCV

点击这里下载OpenCV2.4.13。

编译

解压后执行:

1
2
3
4
5
6
$ cd opencv-2.4.13
$ mkdir build
$ cd build
$ sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
$ sudo make -j8
$ sudo make install

0x03环境配置

sudo gedit /etc/ld.so.conf.d/opencv.conf
末尾加入/usr/local/lib,保存退出
sudo ldconfig 使配置生效

sudo gedit /etc/bash.bashrc
末尾加入

1
2
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

切换root用户执行source /etc/bash.bashrc
Ctrl+d退出root用户
sudo updatedb

常用软件:

  1. 网易云音乐
  2. inode校园网认证客户端(>ubuntu15.04)
  3. shadowsocks
  4. 文本编辑器notepadqq、guake终端
  5. htop用于查看系统资源占用
  6. wps office
  7. QQ
  8. Psensor监控硬件温度及风扇转速

卸载自带应用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ sudo apt-get remove thunderbird(邮箱)
$ sudo apt-get remove totem (视频播放器)
$ sudo apt-get remove rhythmbox(音乐播放器)
$ sudo apt-get remove empathy
$ sudo apt-get remove brasero
$ sudo apt-get remove simple-scan
$ sudo apt-get remove gnome-mahjongg
$ sudo apt-get remove aisleriot
$ sudo apt-get remove gnome-mines
$ sudo apt-get remove transmission-common
$ sudo apt-get remove gnome-orca
$ sudo apt-get remove webbrowser-app
$ sudo apt-get remove gnome-sudoku
$ sudo apt-get remove unity-webapps-common
$ sudo apt-get remove libreoffice-common

设置阿里源

设置->软件和更新->使用阿里云镜像->其他软件->Canonical合作伙伴打钩

更新软件

1
2
$ sudo apt-get update
$ sudo apt-get upgrade

解决双系统时间冲突

ubuntu下终端输入:

1
2
$ timedatectl set-local-rtc 1 --adjust-system-clock
$ timedatectl set-ntp 0

在windows下对时即可

Grub更改默认启动项

默认情况下Grub会将Linux作为第一启动项,更改默认启动项执行下列命令:
sudo gedit /etc/default/grub
GRUB_DEFAULT=0改为GRUB_DEFAULT=windows引导顺序
更新Grub:sudo update-grub

更改Grub背景

  • 将图片放入/boot/grub目录
  • 更新Grub:sudo update-grub

1.网易云音乐

下载相对应的Linux deb安装包。
下载路径中打开终端,执行下列命令安装:

sudo dpkg \-i packagename.deb

2.shadowsocks

执行下列命令安装Shadowsocks-qt5:

1
2
3
$ sudo add-apt-repository ppa:hzwhuang/ss-qt5
$ sudo apt-get update
$ sudo apt-get install shadowsocks-qt5

3.文本编辑器notepadqq、guake终端

输入下列命令添加ppa软件源并安装:

1
2
3
4
5
6
7
8
9
notepadqq:
$ sudo add-apt-repository ppa:notepadqq-team/notepadqq
$ sudo apt-get update
$ sudo apt-get install notepadqq

guake:
$ sudo add-apt-repository ppa:webupd8team/unstable
$ sudo apt-get update
$ sudo apt-get install guake

4.htop查看系统资源占用

sudo apt-get install htop

5.wps office

这里(http://community.wps.cn/download/)下载安装包,执行下列命令安装:
sudo dpkg \-i packagename.deb
打开应用如果提示字体缺失,下载字体wps_symbol_fonts,创建目录:
sudo mkdir /usr/share/fonts/wps-office
将下载的字体复制到创建的目录:
sudo cp \-r fonts_name.zip /usr/share/fonts/wps-office
进入到创建的目录解压字体包:
sudo unzip fonts_name.zip
解压后将压缩包删除:
sudo rm \-r fonts_name.zip

6.qq

首先安装wine:

1
2
3
$ sudo add-apt-repository ppa:wine/wine-builds
$ sudo apt-get update
$ sudo apt-get install winehq-devel

下载wineqq,执行命令安装至根目录下:
tar xvf wineQQ8.9_19990.tar.xz \-C ~/

7.Psensor监控硬件温度及风扇转速

首先安装下面两个工具:
sudo apt-get install lm-sensors hddtemp
检测传感器:
sudo sensors-detect
安装Psensor:
sudo apt-get install psensor
运行程序可以进行监控状态、开机启动等设置

参考网址:
Ubuntu 16.04 安装 Notepadqq
Ubuntu 16.04 安装网易云音乐
Ubuntu 16.04 安装后续要做的事
安装完ubuntu系统后的优化
ubuntu :安装一个方便的终端工具,Guake Terminal
ubuntu16.04下安装新版QQ

本文主要介绍如何使用GitHub Pages和Hexo建立一个私人专属的Blog,在这里,你可以自定义网页主题风格,板块分类等等。这里我尽量写的简明易懂,面向初学者。

0x00 前言

什么是GitHub Pages

至于为什么选择GitHub,其一是免费,其二就不用多说了,这是发展趋势。

GitHub Pages原本用于介绍托管在GitHub上的项目,不过,由于他的空间免费稳定,用来搭建一个博客再好不过了。

GitHub Pages可以被认为是用户编写的、托管在Github上的静态网页。

什么是Hexo

Hexo,引用官网的介绍A fast, simple & powerful blog framework,翻译过来即一个快速、简单、功能强大的博客框架,相比于JekyII,真的很简单(看了教程一大堆的环境就没欲望继续配置了),这也是为什么这里使用Hexo搭建的原因,当然也有可能有其他更好的。

0x01 创建GitHub Pages

1. GitHub账号
首先你要有一个GitHub账号,已有的可以跳过这一步,没有可以去官网注册即可,注册时的username可能会影响你网站的域名,为什么是可能,如果你购买了其他域名就另当别论了,这篇文章不包含其他域名绑定,请看后续更新。

2. 创建Pages
登陆账号后选择New repository新建仓库,**Repository name填写username.github.io**,这里的username一定要与注册时的一直,才能成功开启GitHub Pages,通过这个网址直接访问你的博客,不然会产生一系列繁琐的步骤,其他选项可以不用动,点击Create repository,这一步就完成了。

新建仓库
填写正确的仓库名称

0x02 安装程序

Windows下的安装较为简单,大家可以直接点击下面的的链接下载安装:

安装完成后右键找到Git Bash,输入命令sudo npm install hexo-cli -g即可安装。

0x03 添加SSH密钥

生成SSH Key

打开Git Bash如果第一次使用git,直接生成新的ssh key

1
2
3
$ ssh-keygen -t rsa -C "你的邮件地址@youremail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa):<回车就好>

随后输入密码:

1
2
Enter passphrase (empty for no passphrase):<输入加密串>
Enter same passphrase again:<再次输入加密串>

在回车中会提示你输入一个密码,这个密码会在你提交项目时使用,如果为空的话提交项目时则不用输入。这个设置是防止别人往你的项目里提交内容,成功生成后如下图所示:

添加SSH Key到Github

  • 打开本地 id_rsa.pub 文件( 参考地址 C:\Documents and Settings\Administrator.ssh\id_rsa.pub)。此文件里面内容为刚才生成的密钥。如果看不到这个文件,你需要设置显示隐藏文件。准确的复制这个文件的内容,才能保证设置的成功。
  • 登陆 GitHub 系统。点击右上角的 Account Settings--->SSH Public keys ---> add another public keys

复制文件内容到Key文本框中,点击add key就可以了。

测试添加是否成功

输入命令查看是否能连接至你的账户:
bash $ ssh -T git@GitHub.com
不出意外的话应该可以成功连接:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.

进行最后的设置

现在你已经可以通过 SSH 链接到 GitHub 了,还有一些个人信息需要完善的。

1
2
$ git config --global user.name "真实姓名"
$ git config --global user.email "你的邮箱"

0x04 编写发布博客

接下来使用Hexo初始化一个博客,并且教你如何发布新文章。
使用下列命令初始化自己的博客:
bash $ hexo init username.github.io

个性化主题
可以看下这里,选择自己喜欢的主题下载安装即可,教程在主题介绍页这里不做介绍了。

基本配置
打开文件位置username.github.io/_config.yml修改几个键值对,下面把几个必须设置的列出来按需求修改,记得保存,还有注意配置的键值之间一定要有空格。

1
2
3
4
5
6
7
title:  //你博客的名字
author: //你的名字
language: zh-Hans //语言 中文
theme: next //刚刚安装的主题名称
deploy:
type: git //使用Git 发布
repo: https://github.com/username/username.github.io.git // 刚创建的Github仓库

更多设置移步这里

写文章
这里需要用到Markdown编辑器,如何使用请参阅我的上一篇Markdown教程,编辑完成后保存在username.github.io/source/_posts即可,通过命令hexo s可以配置本地预览。

发布
安装hexo-deployer-git自动部署工具:
bash $ npm install hexo-deployer-git --save
完成后运行
bash $ hexo clean && hexo g && hexo d
等待上传完成就可以了。

0x07 图床

图床的作用主要用于保存博客中大量的图片,并且提供外链地址,这里我使用的是七牛,注册并且实名认证后可以得到10G的免费空间。

其他方式
也可以直接将图片保存到blog/source目录中,文中使用路径/floder/picname.jpg添加即可,但大量图片可能空间不够用。

0x06 终结

现在你的Blog应该可以通过http://yourusername.github.io进行访问了。后面涉及域名注册与绑定这里并没有提及,会在后续进行更新。

相关链接

5分钟 搭建免费个人博客
如何搭建一个独立博客——简明Github Pages与Hexo教程

Markdown是一种标记语言,兼容HTML,但比HTML要更容易掌握,适合于网络书写,本篇主要参考简书之Markdown的小白教程,使用Markdownpad 2编辑器,写文章时可以实时生成预览结果,很方便。

0x00 标题

Markdown中书写标题只要在文字前加上##的个数越多,标题字号越小,一共有六级标题,如下:

# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题
##### 这是五级标题
###### 这是六级标题

效果:

这是一级标题

这是二级标题

这是三级标题

这是四级标题

这是五级标题
这是六级标题

0x01 列表

列表可以分为有序和无序列表,其实只是前面项目符号不同罢了,干脆归纳到一起。
在前面加上-即可,也可以加上数字,具体效果自己操作下吧。

- 文字
- 文字
- 文字
... ...
1. 文字
2. 文字
3. 文字
... ...

效果:(有编号)

  1. 文字
  2. 文字
  3. 文字

0x02 插入链接或图片

插入链接:打个比方,我要在这里加入我博客的链接,可以这样写[Ecke_Lee](lisenlinsirb.github.io)
像这样Ecke_Lee

插入图片:![图片下方显示的图片名(不需要文字可不写)](图片链接地址),也可以直接将本地图片拖放至插入位置,这里不做眼石

0x03 引用

引用更简单只需要> 引用内容就可以了。

0x04 调整字体

加粗内容:**内容**
斜体内容:*内容*

0x05 代码的引用

好了,正题来了,作为一名程序员,引用代码再常见不过,Markdown中代码饮用方式如下:


`单行代码`

三个`
多行代码
三个`

这个引用字符在esc下面那个按键,不是单引号!

但在使用过程中发现多行代码在电脑上似乎不能正常换行,不知上传后会不会好,可以使用如下解决方法:

<pre>多行代码</pre>,这样换行字符就不会被转义,就可以啦。

0x06 表格

对我来说不常用,但还是说下吧

 Name | Data | other
 :---: | ---: | ---
 Lee | 22/1 | other

重点要说的是上面第二行:位置指定了该列的对齐方式,左边为左对齐,右边为右对齐,两边都有则中间对齐,不加默认左对齐。