0%

安装Hexo framework

安装前提

  • Node.js (Node.js 版本需不低于 8.6,建议使用 Node.js 10.0 及以上版本)
  • Git

安装Hexo

1
npm install hexo-cli -g

建站

安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。

1
2
3
hexo init <folder>
cd <folder>
npm install
阅读全文 »

安装Jenkins

下载Jenkins

1
wget http://updates.jenkins-ci.org/latest/jenkins.war

启动Jenkins war包,默认8080端口

1
java -jar jenkins.war

后台启动Jenkins

1
nohup java -jar jenkins.war --httpPort=8080 &

查看日志

1
tail -f nohup.out

开放端口

1
2
3
4
5
6
7
8
查看想开的端口是否已开:
firewall-cmd --query-port=9090/tcp
添加指定需要开放的端口:
firewall-cmd --add-port=9090/tcp --permanent
重载入添加的端口:
firewall-cmd --reload
查询指定端口是否开启成功:
firewall-cmd --query-port=9090/tcp
阅读全文 »

  Jenkins是一款由Java编写的开源的持续集成工具。
  Jenkins提供了软件开发的持续集成服务。它运行在Servlet容器中(例如Apache Tomcat)。它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和RTC),可以执行基于Apache Ant和Apache Maven的项目,以及任意的Shell脚本和Windows批处理命令。Jenkins的主要开发者是川口耕介。Jenkins是在MIT许可证下发布的自由软件。
  可以通过各种手段触发构建。例如提交给版本控制系统时被触发,也可以通过类似Cron的机制调度,也可以在其他的构建已经完成时,还可以通过一个特定的URL进行请求。

阅读全文 »

阿里云服务器的 CentOS7 下默认的防火墙是 Firewall,替代了之前的 iptables,Firewall 有图形界面管理和命令行管理两种方式,本文简要介绍命令行 Firewall 的使用。

配置 Firewall

进入系统之后,CentOS7 默认是已安装了 Firewall,但是没有启动的,所以需要先启动下 Firewall,同时设置开机自启动

1
2
systemctl start firewalld       ##启动Firewall
systemctl enable firewalld.service ##设置开机自启动
1
2
ln -s '/usr/lib/systemd/system/firewalld.service' '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
ln -s '/usr/lib/systemd/system/firewalld.service' '/etc/systemd/system/basic.target.wants/firewalld.service'

常用命令介绍

1
2
3
4
5
6
7
8
9
10
11
firewall-cmd --state                           ##查看防火墙状态,是否是running
firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones ##列出支持的zone
firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
iptables -L -n ##查看规则,这个命令是和iptables的相同的
man firewall-cmd ##查看帮助

CentOS

yum安装

卸载老版本的Docker

  在CentOS中,老版本Docker名称是dockerdocker-engine,而Docker CE的软件包名称是docker-ce。因此,如已安装过老版本的Docker,需使用如下命令卸载。

1
2
3
4
sudo yum remove docker \
docker-common \
docker-selinux \
docker-engine

  需要注意的是,执行该命令只会卸载Docker本身,而不会删除Docker存储的文件,例如镜像、容器、卷以及网络文件等。这些文件保存在/var/lib/docker目录中,需要手动删除。

阅读全文 »

对于所有对象都通用的方法

  尽管Object是一个具体类,但是设计它主要是为了扩展。它所有的非final方法(equalshashCodetoStringclonefinalize)都有明确的通用约定(**general contract**),因为它们被设计成是要被覆盖(override)的。任何一个类,它在覆盖这些方法的时候,都有责任遵守这些通用约定;如果不能做到这一点,其他依赖于这些约定的类(例如HashMapHashSet)就无法结合该类一起正常运作。

  本章将讲述何时以及如何盖这些非finalObject方法。本章不再讨论finalize方法,因为Item 8已经讨论过这个方法了。而Comparable.compareTo虽然不是Object方法,但是本章也对它进行讨论,因为它具有类似的特征。

阅读全文 »

Java库包含许多必须通过手动调用close方法关闭的资源。其中包括:InputStreamOutputStreamjava.sql.Connection。关闭资源常常会被客户端所忽视,这会导致可怕的性能问题。虽然很多资源使用了终结器来作为安全网,不过终结器却并不那么尽如人意(Item 8)。

阅读全文 »

终结器是不可预测的、常常会很危险,而且通常没必要。使用终结器会导致奇怪的行为、孱弱的性能以及可移植性问题。终结器有一些有效的用途,我们将在后面的条款中介绍,但是作为一个规则,你应该避免他们。在Java 9中,终结器已经被弃用,但是Java库仍然在使用它们。Java 9中,替代终结器的是清除器(cleaner)。清除器比终结器危险小,但仍然不可预测、效率慢,而且通常没有必要

阅读全文 »

如果您从使用手动管理内存的语言(如C或c++)切换到使用垃圾收集语言(如Java),那么你作为程序员的工作就会变得容易得多,因为你的对象在使用完后会自动被回收。 当你第一次体验这种编程的时候,它看起来就像是魔术一般。它很容易给人留下这样的印象:你不必考虑内存管理,但这并不完全正确。

阅读全文 »