Linux命令:cat

cat命令常用来显示文件内容,或者将几个文件连起来显示,或者配合重定向符号从标准输入设备读取内容显示并输出到文件。 格式 1 $ cat [option]... [file]... 常用选项 -A: 等价于-vET。 -b 非空行输出行编号。 -e: 等价于-vE。 -E: 在每行结束处显示$。 -n: 对输出的所有行编号,从1开始。 -s: 有连续两行以上的空白行,就代换为一行的空白行。 -t: 与-vT等价。 -T: 将制表符显示为^I。 -v: 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外。 实例 显示文件内容 1 $ cat cd.md 显示行号 选项-b仅显示非空行的行号,选项-n对输出的所有行进行编号。 1 $ cat -b cd.md 1 $ cat -n cd.md 新建文件 cat命令配合重定向符号>可以用来新建文件。不可以修改文件,原文件内容会被覆盖掉。 1 2 3 4 $ cat > new.

使用Git+Jenkins构建自动博客发布平台

在使用Hugo发布个人博客内容时,每次都需要将写好的md文件拷贝到contents/posts目录下,图片等静态资源拷贝到static目录下,然后还需要人工执行hugo命令,比较麻烦,而且写好的md文件也不易管理。鉴于以上问题,我们可以使用git管理博客文件,然后使用jenkins自动发布博客。 创建Git项目 我们可以在gitee(开源中国)或者是github上创建博客项目,至于git如何使用,怎么在上述平台创建项目不在本文的讨论范围以内,读者可以自行解决。 配置Jenkins项目 Jenkins的安装也不在本文的讨论范围内,读者可自行解决安装问题。 创建一个自由风格的Jenkins项目 配置内容来源 由于我们使用git进行源文件的管理,所以Source Code Management配置中我们选择Git。然后分别配置 Repository URL`,Credentials,Branch Specifier` 这三项内容: Repository URL 表示我们的git项目路径。 Credentials 表示我们访问git项目的凭证,此项我们需要在凭据->系统下添加域,并配置域的访问凭证。 填写完成域名称以及描述之后会出现如下页面: 需要填写用户名和密码,其他保持默认就可以了。如果我们使用的是gitee,就需要填入gitee的账号、密码了。 配置好访问凭证之后,在Credentials的选择框里就会出现刚才配置的域名称了。 Branch Specifier 表示我们使用哪个分支作为内容来源。当出发构建时,会从这个分支下拉去内容。 配置构建触发机制 常见的构建触发机制包括定时,人工,远程钩子等,这里我们选择远程钩子触发,这种方式需要git平台支持。 Authentication Token表示触发钩子需要的凭证,这里可以随便填一个字符串,此字符串在配置gitee平台时会用到。接下来我们配置gitee平台: URL根据Jenkins平台的地址进行配置,Token和Password需要填写之前在Jenkins平台里配置的Authentication Token字段。 配置构建环境 SSH Server需要我们先配置需要远程连接的服务器(也就是最终博客文件存在的服务器)。向服务器上传文件我们需要通过Publish over SSH插件来实现,读者可以自行安装,安装完成后在Jenkins的全局配置中做如下配置: Passphrase填写服务器的登录密码 SSH Servers.Name填写服务器的名称 SSH Servers.Hostname服务器IP地址 SSH Servers.UserName登录服务器使用的用户名,需要和上边的密码配套。 SSH Servers.Remote Directory文件存在目录,上传来的文件都会放置在这个目录下。 Transfers.Source files通过通配符配置需要传输的文件,这里我们配置为**表示传输所有内容。 Transfers.Remote directory 文件存放的路径,相对于SSH Servers.Remote Directory里配置的路径。 发布博客 这里我们选择通过ssh远程执行脚本的方式发布博客: SSH site这里的远程服务器需要提前在Jenkins的全局配置里配置,配置内容如下: Hostname 远程服务器的IP地址 Port SSH链接需要的端口,一般为22 Credentials 登录凭证,需要参考上边的方式配置域,然后配置域访问凭证。 Command 需要执行的命令,这里我们选择执行脚本/home/ubuntu/scripts/blog.sh,命令如下: sh /home/ubuntu/scripts/blog.sh blog.sh脚本的内容如下: #!/bin/bash echo "start publish.

使用Hugo搭建个人博客

Hugo是由Go语言实现的静态网站生成器。简单、易用、高效、易扩展、快速部署。 安装Hugo 二进制安装(推荐) 到Hugo Releases下载对应的操作系统版本的Hugo二进制文件。(通过uname -a命令可以查看操作系统版本)。 将下载的二进制文件解压至 /usr/local/hugo 目录下,并赋予hugo文件执行的权限(chmod +x /usr/local/hugo/hugo); 配置环境变量,可以通过 hugo version 查看hugo版本,通过 hugo -h 查看帮助 源码编译安装 源码编译安装比较复杂,不详细描述。需要有以下依赖: 1.GIT 2.Go 1.3+ 环境 3.梯子(下载三方库需要,或者使用 go_proxy代替)。 生成站点 使用Hugo快速生成站点,比如希望生成到/path/to/site路径: $ hugo new site /path/to/site 这样就在/path/to/site目录下生成了初始站点,站点目录结构如下: ▸ archetypes/ ▸ content/ ▸ layouts/ ▸ static/ ▸ data/ ▸ themes/ config.toml 创建文章 创建一个about页面: $ hugo new about.md about.md 自动生成到content/目录下,打开内容如下: --- title: "About" date: 2019-12-04T23:42:15+08:00 draft: true --- 内容是 Markdown 格式的,— 之间的内容是 YAML 格式的,根据你的喜好,你可以换成 TOML 格式(使用 +++ 标记)或者 JSON 格式。

Linux命令:cp

cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。 全称 cp: copy 格式 1 2 3 4 5 $ cp [options]... [-T] source dest $ cp [options] source... dest $ cp [options]... -t directory source... 常用选项 -b : 若目标文件已经存在,则覆盖前先备份。 -f : 如果目标文件已经存在,不询问而直接覆盖。 -i : 如果目标文件已经存在,询问是否覆盖。 -l : 对原文件建立硬链接,而非复制文件。 -p : 保留源文件或目录的属性,包括所有者、所属组、权限与时间。 -R,-r : 递归复制目录和目录内的所有文档。 -u : 如果目标文件已经存在,且源文件比目标文件新时才会覆盖。 -n : 不覆盖已经存在的文件。 -S : 指定备份文件的结尾标志。 -t : 指定文件复制目标目录,一般用于一次性复制多个文件时。 -v : 输出复制过程信息。 –help : 显示帮助信息。 示例 复制文件: 生成文件副本 1 $ cp file1.

Linux命令:cd

cd 命令用于更改当前工作目录。用户必须具有指定目录中的执行(搜索)权限。 全称 cd: change directory 格式 1 $ cd [options] [dirname] 常用选项 -P: 如果目录是链接(类似于windows中的快捷方式),则进入实际的目录。 -L 如果目录是链接,则进入链接目录。 -: 单独的“-”选项,进入到调用cd命令时的上一次的工作目录,即环境变量$OLDPWD所代表的目录。 常用目录 / : 反斜杠代表根目录 . : 一个点号代表当前目录 .. : 两个点号代表上级目录 ~ : 波浪号当前用户的默认工作目录。如果目录不填写,则与此参数有相同的效果。 示例 通常用法 将工作目录切换为指定目录(绝对目录)。 1 $ cd /usr/bin 效果如下: 注:pwd命令为显示当前工作目录,以后会专门学习这个命令。 将工作目录切换为指定名称的子目录。 1 $ cd blog 效果如下: 将工作目录转至父目录(上一级目录)。 1 $ cd .. 效果如下: