必须了解的五个服务器基础问题

今天我们来说说服务器基础知识方面的几个问题,也是困惑初涉服务器领域众“菜鸟”们的几个常见问题:

1、双路等于双核么?

问题:常听说双路至强XX式服务器,最近又出现了双核至强,都是两个CPU,是不是双路等于双核?

答案:不是

无论服务器的单路、双路、四路乃至八路,其中的“路”都是指服务器物理CPU的数量,也就是服务器主板上CPU插槽的数量。

最近出现的双核处理器,是在一颗物理CPU内部封装了两个CPU核心,这样的好处在于能够让用户在成本增加不多的前提下,拥有更强劲的性能。而且能够比较显著的降低性能功耗比,这对企业用户节约使用成本也有积极的意义。

2、至强与奔腾的区别

问题:在不少服务器中,有拿至强作处理器的,也有拿奔腾4当作处理器的,除了用奔腾4处理器的服务器产品呢便宜些,至强与奔腾还有什么区别?

Intel 奔腾4 631 3.0GHz(盒)

Intel Xeon 3.2G(800MHz/2M/盒)

答案:服务器上用的至强处理器和普通的P4处理器其内核基本上是一样的。

区别之一是英特尔奔腾4处理器开始,便将奔腾4处理器归为个人处理器,用户不能以2颗奔腾4处理器来构架2路服务器系统,而开发出运算效能更高的至强处理器。至强处理器目前分为至强DP(最大支持双路处理)和至强MP(最大支持8路处理)。

区别之二就是二级缓存不同。至强的二级缓存是1MB~16MB,P4的二级缓存是512KB~1MB,而二级缓存的容量也是决定服务器处理效能的重要因素。

至强系列CPU多为604接口,而P4的CPU,多为478针或是775架构。

注:在X86架构下,服务器除了使用英特尔奔腾、至强系列处理器外,AMD也为服务器提供了专门的处理器-皓龙Opteron,最大可支持8路。

AMD Opteron皓龙 865(散)

3、服务器的几种类型

问题:服务器按照结构划分,有几种类型?

答案:目前按照外形结构划分,服务器可分为塔式、机架式、刀片式三种类型。

■ 塔式服务器

一般的塔式服务器机箱和我们常用的PC机箱差不多,而大型的塔式机箱就要粗大很多,总的来说外形尺寸没有固定标准。

■ 机架式服务器

机架式服务器是由于满足企业的密集部署,形成的以19英寸机架作为标准宽度的服务器类型,高度则从1U到数U。将服务器放置到机架上,并不仅仅有利于日常的维护及治理,也可能避免意想不到的故障。首先,放置服务器不占用过多空间。机架服务器整洁地排放在机架中,不会浪费空间。其次,连接线等也能够整洁地收放到机架里。电源线和LAN线等全都能在机柜中布好线,可以减少堆积在地面上的连接线,从而防止脚踢掉电线等事故的发生。

规定的尺寸是服务器的宽(48.26cm=19英寸)与高(4.445cm的倍数)。由于宽为19英寸,所以有时也将满足这一规定的机架称为“19英寸机架”。

■ 刀片式服务器

刀片服务器是一种HAHD(High Availability High Density,高可用高密度)的低成本服务器平台,是专门为非凡应用行业和高密度计算机环境设计的,其中每一块“刀片”实际上就是一块系统母板,类似于一个个独立的服务器。在这种模式下,每一个母板运行自己的系统,服务于指定的不同用户群,相互之间没有关联。不过可以使用系统软件将这些母板集合成一个服务器集群。在集群模式下,所有的母板可以连接起来提供高速的网络环境,可以共享资源,为相同的用户群服务。

4、“U”是什么?

问题:平常说1U、2U服务器中的“U”是什么意思?是指服务器处理器个数么?

答案:“U”在服务器领域中特指机架式服务器厚度,是一种表示服务器外部尺寸的单位,是unit的缩略语,具体尺寸由作为业界团体的美国电子工业协会(EIA)决定。

之所以要规定服务器的尺寸,是为了使服务器保持适当的尺寸以便放在铁质或铝质机架上。机架上有固定服务器的螺孔,将它与服务器的螺孔对好,用螺丝加以固定。

厚度以4.445cm为基本单位。1U就是4.445cm,2U则是1U的2倍为8.89cm。也就是说,所谓“1U的机架式服务器”,就是外形满足EIA规格、厚度为4.445cm的产品。

5、服务器与工作站的区别是什么?

问题:服务器与工作站的区别是什么?

服务器是给工作站提供各种服务的,网络通信服务,文件共享服务,硬件共享服务,各种资源服务。工作站在获取服务器各种资源的同时也可以帮服务器分流计算等任务。

服务器和工作站都是高性能的计算机,只是相对而言服务器专注于数据吞吐能力,所以支持的外设(硬盘、I/O插槽等)更多;而工作站则专注于图形处理能力,所以外设则相对少一些,但采用非凡为图形处理设计的架构,采用高档显示卡,支持3D图像处理。工作站主要应用在各种设计、多媒体制作领域。

Docker系列之3-常用命令

常用 Docker 命令列表

目前,Docker 共有 13 个管理命令和 41 个通用命令,以下是常用 Docker 命令列表:
docker help — 列出 Docker 可用命令;
docker attach — 将本地输入、输出、错误流附加到正在运行的容器;
docker commit — 从当前更改的容器状态创建新镜像;
docker exec — 在活动或正在运行的容器中运行命令;
docker history — 显示镜像历史记录;
docker info — 显示系统范围信息;
docker inspect — 查找有关 docker 容器和镜像的系统级信息;
docker login — 登录到本地注册表或 Docker Hub;
docker pull — 从本地注册表或 Docker Hub 中提取镜像或存储库;
docker ps — 列出容器的各种属性;
docker restart — 停止并启动容器;
docker rm — 移除容器;
docker rmi — 删除镜像;
docker run — 在隔离容器中运行命令;
docker search — 在 Docker Hub 中搜索镜像;
docker start — 启动已停止的容器;
docker stop — 停止运行容器;
docker version — 提供 docker 版本信息。

查看 Docker 版本和系统信息

无论是在本地还是云端,我们都需要检查 Docker 版本和系统信息,可以使用以下命令找到 Docker 版本:
$ docker version

该命令将显示部分设备信息,比如服务器版本、存储驱动程序、内核版本、操作系统、总内存等。当尝试为当前 Docker 安装启动新资源或尝试找出系统级资源分配问题时,这些信息非常有用,这也是检查运行、停止容器数量及下载镜像数量的快速方法。
$ docker info

搜索和下载 Docker 镜像

可以使用 docker search 命令在 Docker Hub 搜索已有镜像:
$ docker search ubuntu

以上对 ubuntu 的搜索显示可用镜像、描述和官方状态等信息。如果要下载 ubuntu 镜像,可以使用 docker pull 命令:
$ docker pull ubuntu
$ docker pull nginx

如果寻找 Ubuntu 16.04 版本,可使用 16.04 标签下载特定版本:
$ docker pull ubuntu:16.04

查看 Docker 镜像

使用 docker info 命令查找拥有镜像数量:
$ docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 1

docker images 命令可详细列出拥有镜像:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 16.04 5e8b97a2a082 2 weeks ago 114MB
ubuntu latest 113a43faa138 2 weeks ago 81.2MB
nginx latest cd5239a0906a 2 weeks ago 109MB

运行镜像的 Docker 容器

假设想在 docker 上运行 NGINX 服务器,可运行以下命令:
$ docker run -p 8080:80 nginx

用 run 命令从 Docker Hub 提取 nginx 映像创建 NGINX 容器。 -p 8080:80 会告诉 Docker 将 localhost 端口 8080 映射到 Docker 容器端口 80,应该能够从 http:// localhost:8080 访问 NGINX 服务器。

NGINX 容器已附加到命令行。如果退出命令行,容器将会停止,可使用 detach(’-d’)启动 NGINX 容器,这样即使退出命令行也可继续运行。
$ docker run -p 8080:80 -d nginx
以上命令将以分离模式启动容器并返回命令行。

也可在容器创建过程中为容器命名。创建一个名为 my_nginx 的 NGINX 容器:
$ docker run –name my_nginx -p 8888:80 -d nginx

使用 docker ps 命令列出 Docker 容器

docker ps 命令允许查找正在运行的所有容器:
$ docker ps

要显示暂停或已停止的容器,需要加 -a 选项:
$ docker ps -a

启动,停止,重启和杀死容器

假设要停止’my_nginx’容器,可使用 CONTAINER ID 或 NAME。
$ docker stop my_nginx

如果’my_nginx’容器处于退出状态。可使用 docker start 再次启动容器:
$ docker start my_nginx

如果由于某些问题而需重启容器,则可使用 restart 命令,这比单独停止和启动容器速度更快:
$ docker restart my_nginx

可以像进程一样终止 docker 容器,比如终止 my_nginx 容器:
$ docker kill my_nginx

Docker Exec Bash 和 Docker SSH

如果需要与 shell 进行交互以创建服务或解决问题,可以使用 docker exec 命令创建交互式 shell。比如,用 bash shell 从 ubuntu 映像启动一个容器:
$ docker run –name my_ubuntu -it ubuntu:latest bash
root@a19c770b8621:/#

root @haracle#表示位于 Docker 容器的 bash shell 中,可以运行 shell 命令:
root@a19c770b8621:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@a19c770b8621:/# pwd
/

如果 my_ubuntu 正在运行。假设想将 Docker ssh 放入’my_ubuntu’容器中,可以使用 docker exec bash:
$ docker exec -it my_ubuntu bash
root@a19c770b8621:/#
使用 docker exec 向容器发出命令。例如,可以直接用命令提示符在 my_ubuntu 容器上运行 ls 命令:
$ docker exec -it my_ubuntu ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr

以分离模式启动容器并使用 docker attach

以上示例用附加模式启动 ubuntu 容器,我们也可在分离模式下启动:
$ docker run -it -d –name my_ubuntu_2 ubuntu:latest bash
75b28b7208359137b3e1dc2843387918e28b4c6c4860ef0cdeac79c205f5cbc4
验证容器是否正在运行:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
75b28b720835 ubuntu:latest “bash” 3 minutes ago Up 3 minutes

使用 docker attach 命令获取 docker exec bash-like 效果:
$ docker attach my_ubuntu_2
root@75b28b720835:/#

Docker系列之2-安装

版本选择

Docker现在分为两个版本,Docker CE和Docker EE。其中Docker CE为开源版,Docker EE为企业版。
Docker CE:安装 Docker Engine-Community 版本,这个是免费版本,正常够用了。
另外没有特别说明,下面操作默认用户都是root。

开始安装

安装所需的软件包

yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

yum install -y yum-utils
device-mapper-persistent-data
lvm2

设置仓库

使用 Docker 仓库进行安装。在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。

使用以下命令来设置稳定的仓库,下面这个是官方源。
yum-config-manager
–add-repo
https://download.docker.com/linux/centos/docker-ce.repo

这个是阿里云的镜像源,国内会快些:
yum-config-manager –add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

根据自己情况选择一个即可。

安装 Docker CE

安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:
yum install docker-ce docker-ce-cli containerd.io

如果提示您接受 GPG 密钥,请选是。

验证安装

Docker 安装完默认未启动。并且已经创建好 docker 用户组,但该用户组下没有用户。

启动 Docker

systemctl start docker

不想每次都手工启动docker服务,可运行下面命令设置随系统自动启动:
systemctl enable docker

验证

通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。
docker run hello-world

如果能看到下面输出就表明成功了:

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:

  1. The Docker client contacted the Docker daemon.
  2. The Docker daemon pulled the “hello-world” image from the Docker Hub.
    (amd64)
  3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
  4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/get-started/

公共DNS服务器介绍

DNS 简介

DNS(Domain Name System)中文意思为域名解析服务器,它在互联网的作用是把域名转换成为网络可以识别的IP地址。

DNS 劫持

域名劫持是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的地址从而实现用户无法访问目标网站的目的。
当然,有时候是上网服务提供商(ISP)自己故意搞得劫持,国内用户普遍使用的是ISP运营商提供的DNS服务器,可能会干扰用户正常上网,比如弹广告、阻止访问某些网站等。

深入理解Http请求、DNS劫持与解析
https://juejin.im/post/59ba146c6fb9a00a4636d8b6

怎么查看当前使用的DNS服务器地址

Windows 系统

打开cmd命令行窗口,输入 ipconfig /all 查看:

DNS 服务器 . . . . . . . . . . . : 218.2.2.2
218.4.4.4

Linux 系统

以 RedHat/CentOS 为例,运行 cat /etc/resolv.conf 查看:
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 114.114.114.114

苹果机器 MAC OS

同 RedHat/CentOS :
cat /etc/resolv.conf

不同linux发行版方法可能不同,可具体百度或谷歌搜索确认下。

比如家里宽带是江苏电信提供的,那么DNS 会是下面几个地址:
DNS1: 218.2.2.2 DNS2: 218.4.4.4
或者:
DNS1: 61.147.37.1 DNS2: 218.2.135.1

公共域名解析服务DNS

Public DNS(公共域名解析服务): 相对于ISP或一些商业DNS服务提供商而言,对大众开放且免费。如果不想被ISP DNS劫持、过滤的可以试试。
好处:不会有ISP的弹出广告推送广告,有些被ISP DNS过滤的网站可以访问到,比如输错网址不会进电信那个114查询页面等等。
坏处:比如如果一个网站有电信、网通双线路并使用智能DNS解析,可能因为使用这些DNS服务,而被视为网通用户走网通线路访问该站。

Google Public DNS

是Google于2009年12月5日起提供的一个免费域名解析服务(DNS), 以下为此服务的DNS地址:
IPv4 地址:
8.8.8.8 (google-public-dns-a.google.com)
8.8.4.4 (google-public-dns-b.google.com)
相对来说,更适合国外以及访问国外网站的用户使用。

国内 Public DNS

■ 114.114.114.114 / 114.114.115.115: 是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS。
■ 180.76.76.76: 百度提供
■ 223.5.5.5 / 223.6.6.6: 阿里提供
■ 1.2.4.8 / 210.2.4.8 : CNNIC 提供
■ 208.67.222.222 / 208.67.220.220 : OpenDNS 提供
■ 119.29.29.29 : Dnspod的公共DNS,也就是腾讯公共DNS,节点很多,用户很多
■ 117.50.11.11 / 52.80.66.66 : 拦截版 - 微步在线出品,定位于小众用户的精品公共DNS服务,通过大数据分析实现了恶意网站拦截、广告过滤和上网加速功能
■ 117.50.10.10 / 52.80.52.52 : 纯净版 - 微步在线出品,定位于小众用户的精品公共DNS服务,通过大数据分析实现了恶意网站拦截、广告过滤和上网加速功能

国内 Public DNS

■ 1.1.1.1 : Cloudflare 与 APNIC 的合作项目非盈利,主打隐私保护和高速,这个非常牛的ip地址己经展示了项目实力,但是国内不推荐使用,速度慢
■ 8.8.8.8 / 8.8.4.4 : Google Public DNS 四个8,一看就是金主,暴发户
■ 80.80.80.80 / 80.80.81.81 : Freenom World是快速且保护隐私的DNS服务器.一家国外免费域名注册商,推出了此项免费服务

常用 DNS 服务器 IP 地址

常用 DNS 服务器 IP 地址
https://www.ip.cn/dns.html

Docker系列之1-环境准备

环境配置

■ PC主机:Windows 7 64-bit(内存12GB + 硬盘ATA 1GB)

■ 虚拟机软件:VMware-workstation-full-14.1.3-9474260.exe
下载地址:https://my.vmware.com/en/web/vmware/info/slug/desktop_end_user_computing/vmware_workstation_pro/14_0
建议网上搜索其他下载源,VMware官网要注册用户后才能下载,比较麻烦。

■ Linux使用CentOS 7.5
下载地址 http://mirrors.huaweicloud.com/repository/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso

虚拟机安装

1、先安装VMware-workstation;
2、再虚拟机安装CentOS 7.5, 配置参考:
■ 虚拟机网络配置选择NAT模式;
■ CPU 配置为 2 x 2 = 4 内核;
■ 硬盘SCSI模式,大小40GB;
3、PC主机网络为通过无线宽带路由器上网模式,地址配置为:
IP: 192.168.1.104
网络掩码:255.255.255.0
DHCP:192.168.1.1
默认网关: 192.168.1.1
DNS: 218.2.2.2 / 218.4.4.4

虚拟机网络配置

1、主机名修改

安装完成后请修改IP地址和hostname,方法请参见:
CentOS 7 修改IP地址和主机名
https://blog.csdn.net/twingao/article/details/80217938
我这里设置主机名为 docker1

2、网络地址配置

虚拟机安装的时候选择NAT模式,建议配置虚拟机的ip为固定,参照:
VMware Workstation装CentOS7虚拟机NAT方式上网
https://blog.csdn.net/weixin_33853827/article/details/92279870

完成后docker1的配置:
■ ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.110.3 netmask 255.255.255.0 broadcast 192.168.110.255

■ cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=650f3a53-7ac2-4ab5-9f06-5440b5a1351d
DEVICE=ens33
ONBOOT=yes
IPADDR0=192.168.110.3
PREFIX0=24
GATEWAY0=192.168.110.2
DNS1=8.8.8.8
DNS2=114.114.114.114
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

浏览器Chrome安装

Centos自带浏览器是Firefox,不太好用,建议安装Chrome。
这里安装Chrome浏览器是为了在线查资料方便copy/paste,不用在windows和虚拟机之间来回切换了。

方法1:在线安装

使用下面的命令,在root用户下就可以安装最新的 Google Chrome:
yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

方法2:离线安装

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
yum localinstall google-chrome-stable_current_x86_64.rpm

启动浏览器

安装完毕,在工具栏菜单 Applications -> Internet 下面就可以看到Google Chrome了。
点击启动,会发现Chrome启动不成功(非root用户可以),在shell窗口执行下,可以看到下面错误:
cd opt/google/chrome
./google-chrome
[5280:5280:0217/004229.243603:ERROR:zygote_host_impl_linux.cc(89)] Running as root without –no-sandbox is not supported. See https://crbug.com/638180.

需要修改下Chrome的启动脚本 google-chrome:
最后一行的后面加上 –no-sandbox参数即可:
# Note: exec -a below is a bashism.
exec -a “$0” “$HERE/chrome” “$@” –no-sandbox

修改完毕,也可以通过shell窗口下面命令启动Chrome:
[root@docker1 chrome]# google-chrome &
[1] 5439
[root@docker1 chrome]# Fontconfig warning: “/etc/fonts/fonts.conf”, line 86: unknown element “blank”
[5439:5439:0217/004630.373013:ERROR:edid_parser.cc(102)] Too short EDID data: manufacturer id
[5473:5473:0217/004631.873054:ERROR:viz_main_impl.cc(161)] Exiting GPU process due to errors during initialization
这个Fontconfig warning不必理会,不影响使用。

至此环境准备完成了,后面介绍docker的安装。

PDF阅读器推荐

PDF(Portable Document Format,便携式文档格式),是由Adobe Systems用于与应用程序、操作系统、硬件无关的方式进行文件交换所发展出的文件格式。PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即PDF会忠实地再现原稿的每一个字符、颜色以及图象。是当前因特网上最流行的电子书格式,其他的还有epub/mobi等几种。

Adobe Reader

PDF格式发明者Adobe公司出品的官方阅读器,以前在选择很少的时候基本是作为PC上独裁的存在。
最新版本叫Adobe Reader XI / Adobe Reader DC,安装体积较大,现在的新版本安装后要200多MB。
建议作为备选,只有在其他阅读器打不开或者有乱码的时候,才考虑使用它。
Adobe Acrobat Reader DC
https://get.adobe.com/cn/reader/otherversions/

福昕阅读器(Foxit Reader)

福昕软件出品的一款免费阅读器,体积较小,打开文件快速,兼容支持性也不错。
福昕阅读器
https://www.foxitsoftware.cn/pdf-reader/

迅读PDF大师

迅读PDF大师是一款超轻巧的PDF阅读器,启动速度极快,占用内存极少;提供多种阅读模式,支持全屏、幻灯片模式;查找和目录功能 使阅读更加精准;软件完全兼容Adobe Reader格式,还同时支持EPUB、MOBI等多种文档格式;提供pdf转换功能,导出word、excel、 ppt等Office文件格式。
迅读PDF大师
http://www.xundupdf.com

Sumatra PDF

SumatraPDF,风靡全球的免费PDF阅读器这是一款体积小巧的PDF阅读器,具有效率高速度快的优点,对于大体积的pdf文件支持的也很好。
同时SumatraPDF是一款开源的、免费、小巧的pdf阅读器,Sumatra PDF 是Windows平台上一款免费阅读器, 它支持打开 PDF, ePub, MOBI, SPS, DjVu, CHM, CBZ 和 CBR 格式。
体积最小,免安装版本就一个exe文件,大小还不到7MB大小,基本阅读功能都有,缺点就是没有批注和高亮等功能。
Sumatra PDF
https://www.sumatrapdfreader.org/download-free-pdf-viewer.html

PDF-XChange Viewer

PDF-XChange Viewer,速度秒杀其它 PDF 阅读器,尤其在加载高分辨率扫描文件时,就是快。
PDF-XChange Viewer 功能比福昕PDF阅读器更丰富,相比官方的 Adobe Reader 体积小、资源占用非常低。
此外其多标签式浏览、转换 PDF 为图像、批量搜索、高级搜索等功能也很便民,还有强大亮眼的批注功能。
免费版本不能添加注释,安装后体积约60MB,功能感受上最接近Adobe Reader的阅读器了。
专业人士必备,整体表现优秀,实属最强大的第三方PDF阅读器之一。
pdf-xchange-viewer
https://www.tracker-software.com/product/pdf-xchange-viewer

Drawboard PDF

Surface与Drawboard PDF真的是绝配了,尤其在记笔记方面,Drawboard可以充分发挥Surface pen和Surface触屏的功能。
Drawboard PDF 可以在官网下载,也可以在Microsoft store直接搜索下载。分两个版本,基础版免费,高级版付费,20.99镑每年,可以解锁高级功能。Surface预装的是基础版。
Drawboard PDF
https://www.drawboard.com/

Xodo

优点:免费,相比Drawboard的最大优势。UI简洁,批注方便。可通过右键或双指敲击触控板实现控制栏的隐藏和展开,这对16:9的宽屏幕非常实用!(需要Unpin Command Bar)自带护眼模式和夜间模式,以及多种自定义配色方案。对笔记本的触控板和指点杆支持良好,非常平滑地滚动页面。友好的文档管理功能。可以打开Word文档。
缺点:暂不支持ctrl+z撤销操作。暂不支持中文。启动速度慢。
Xodo
https://www.xodo.com/

Nitro PDF

一个全功能的PDF文件处理器,它可以浏览、编辑、建立 PDF 文档,制作出来的PDF 文件100% 相容于其他的PDF 浏览器,并且拥有类似 Office 2007 一样的漂亮界面外观,可以完全取代高价的Adobe Acrobat Professional。收费软件,全功能软件,没有提供免费独立的阅读器版本。
Nitro PDF
https://www.gonitro.com/nps/pro/pdf-software

万兴 PDF / PDF Element

是一款专业的PDF编辑工具, 既能阅读PDF,又能编辑PDF。在用过的PDF编辑器中,它的综合表现是最好的。论速度,比Acrobat快得多,比Foxit Phantom快一些,比Nitro PDF快不少。论中文支持,比PDF X-Change Editor好得多。
论体积,比Acrobat小得多。论OCR,和ABBYY一样,但是比ABBYY多了编辑功能。将PDF转化为Word的功能大赞。
缺点是对高分屏的支持太差,几乎要眼瞎的节奏。如果在Win10当中开启系统增强渲染模式,则无法正常运行。
此软件是收费软件,无免费版本。中文名叫[万兴PDF]是A股上市公司万兴科技旗下拳头产品.
PDF Element
万兴 PDF
https://pdf.wondershare.cn/

文电通pdf阅读器(gaaiho pdf reader)

目前在用的pdf阅读器,快速,小巧,秒启动,秒开,支持窗口分割(同时显示同一篇pdf文档的不同部分,可以让我一边读论文正文一边看文后参考文献列表),批注功能比较方便,缺点是不支持自定义快捷键。科研狗必备~
Gaaiho pdf reader
https://store.gaaiho.cn/download/reader.aspx

个人推荐

小白用户

福昕阅读器(Foxit Reader)
迅读PDF大师

极客

Sumatra PDF

科研狗

PDF-XChange Viewer
Xodo
文电通pdf

Hexo系列-4: 站点地图和SEO

站点地图(Site Map)

Sitemap 简介:
Sitemap 可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页。
最简单的Sitemap 形式,就是XML 文件,在其中列出网站中的网址以及关于
每个网址的其他元数据(上次更新的时间、更改的频率以及相对于网站上其
他网址的重要程度为何等),以便搜索引擎可以更加智能地抓取网站。

1、安装sitemap生成插件:

打开命令行,确保当前工作目录是blog,依次执行:
npm install hexo-generator-sitemap –save
npm install hexo-generator-baidu-sitemap –save

2、配置插件:

修改 blog\_config.yml 配置文件,增加下面配置:

# 自动生成sitemap
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml

3、生成站点地图:

运行 hexo g 命令,可以发现 public 目录下会生成下面sitemap文件,就表示成功了。

baidusitemap.xml
sitemap.xml

确认没有问题后,运行 hexo d 部署,就可以将站点地图自动提交到github托管仓库上。

4、向搜索引擎提交站点地图

百度使用:https://dbaspider.github.io/baidusitemap.xml
百度搜索 – baidusitemap.xml

Google使用:https://dbaspider.github.io/sitemap.xml
Google搜索 – sitemap.xml

访问要提交的搜索引擎站点地图地址,里面会有导引,基本操作就是提交你自己blog的sitemap url。
当然,一般为了证明网站是你的,搜索引擎还是让你进行验证,这个根据具体指导操作即可。

提交后,一般一天后就可以查看你的站点是否被收录了。

谷歌验证:搜索框输入 site:dbaspider.github.io 查看是否有搜索结果。
百度验证:搜索框输入 site:dbaspider.github.io 查看是否有搜索结果。

配置RSS(简易信息聚合)

简易信息聚合(Really Simple Syndication)是一种基于XML标准,在互联网上被广泛采用的内容包装和投递协议。RSS是一种描述和同步网站内容的格式,是使用最广泛的XML应用。RSS搭建了信息迅速传播的一个技术平台,使得每个人都成为潜在的信息提供者。发布一个RSS文件后,这个RSS Feed中包含的信息就能直接被其他站点调用。RSS广泛用于网上新闻频道,blog和wiki,主要的版本有0.91, 1.0, 2.0。使用RSS订阅能更快地获取信息,网站提供RSS输出,有利于让用户获取网站内容的最新更新。网络用户可以在客户端借助于支持RSS的聚合工具软件,在不打开网站内容页面的情况下阅读支持RSS输出的网站内容。

1、安装插件:

进入本地blog目录,输入以下命令:
npm install hexo-generator-feed

2、验证RSS:

跟sitemap类型,运行 hexo g 命令,可以发现 public 目录下会生成下面atom.xml文件,就表示成功了。
RSS阅读器就可以通过访问 https://dbaspider.github.io/baidusitemap.xml 获取rss列表了。

Hexo 系列-3: 发表文章和更换主题

发表文章

执行命令:
hexo n “文章标题”
则会在 C:\blog\source_posts 目录下生成相应的md文件,然后直接编辑即可。

不熟悉MarkDown语法的可以参考下面入门,还是很简单的:
Markdown 入门参考

推荐一个md可视化编辑器:
typora

不过还是建议用文本编辑器(比如Notepad++),写好后用typora打开看下效果,有问题再修改。

文章写好后,启动hexo本地服务进行预览:
hexo s

确认无误,则执行下面命令发布到github上:
hexo d

更换主题

Hexo默认安装了主题landscape,如果想换其他的,可以到 https://hexo.io/themes/ 查看有没有满意的。

主题安装实际就是将其他的主题(一般都是发布在github上)下载下来,解压后放到下面目录下:
C:\blog\themes

然后修改 blog\_config.yml 配置文件中的theme部分:
# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: landscape

每个主题都自己做了扩展,一般还需要再安装其他的node.js插件和独立配置,请参考每个主题的安装配置文档。

推荐2个主题:
hexo-next

hexo-theme-indigo

后续再介绍下hexo的一些扩展用法。

Hexo 系列-2: 安装和配置

1、安装Node.js

选择一个稳定版本,比如 node-v12.15.0-x64.msi,选项默认,一路Next即可。
最后安装好之后,按Win+R打开命令提示符,输入node -v和npm -v,如果出现版本号,那么就安装成功了。

添加国内镜像源,使用阿里的国内镜像进行加速。
npm config set registry https://registry.npm.taobao.org

2、安装Git

安装选项还是全部默认,安装完成后在命令提示符中输入git –version验证是否安装成功(最后一步添加路径时选择Use Git from the Windows Command Prompt)。
没有选择这个的话,可以通过Git Bash启动shell运行命令验证。

3、注册Github账号

注册过程这个就赘述了,创建一个repository,名字一定要加.github.io后缀,README初始化也要勾上。
比如我的名字是 dbaspider.github.io,后续blog地址就是 https://dbaspider.github.io/。

另外,配置好Github提交代码所需的配置,注意配置好ssh key,建议打开本地保存用户和密码开关,
这样每次git push/pull代码时就不会弹出对话框再输入了。
git config –global credential.helper store

4、安装Hexo

使用npm命令安装Hexo,输入:
npm install -g hexo-cli

安装完成后,创建一个本地目录作为blog的本地保存目录(比如 C:\),确认命令行当前工作目录在此目录下,
执行下面命令初始化博客:
hexo init blog

按顺序输入以下三条命令,确认hexo blog已经初始化成功:

(1) 新建一条blob
hexo new test_my_site

(2) 生成blog页面
hexo g

(3) 启动本地hexo http服务
hexo s

5、推送网站到github上

推送需要先编辑blog目录下的 _config.yml 文件,做一些必须的配置。

(1) 站点显示和SEO配置,修改成自己的设置内容:
# Site
title: ‘大风起兮云飞扬’
subtitle: ‘进步每一天’
description: ‘dbaspider home’
keywords: dbaspider
author: dbaspider
language: zh
timezone: ‘Asia/Shanghai’

另外这里的url修改为实际的blog地址:
# URL
## If your site is put in a subdirectory, set url as ‘http://yoursite.com/child' and root as ‘/child/‘
url: https://dbaspider.github.io

(2) Github推送设置:
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: ‘git’
repo: https://github.com/dbaspider/dbaspider.github.io.git
branch: master

(3) 执行推送
先安装Git部署插件,输入命令:
npm install hexo-deployer-git –save
安装一次即可,后面就不用再安装了。

推送到Github的仓库上,分别输入三条命令:
hexo clean
hexo g
hexo d

第三条的 hexo d 就是部署网站命令,d是deploy的缩写。完成后,打开浏览器,在地址栏输入你的放置个人网站的仓库路径,即 https://dbaspider.github.io
顺利的话,你的blog就出来了(国内可能有些延迟,如果没有显示出来,可以过几分钟再刷新下即可)。