博客迁移:Shell脚本批量文件处理

Bash Github HTML HTTP Linux Makefile UTF-8 awk sed 搜索引擎

近期我对所有文章链接(permalink)进行了重新设计, 为了使得旧链接仍可访问,需要把所有旧的URL重定向到新的URL。 因为本博客由Github Pages提供服务,HTTP服务器和域名均不可配置,只能通过旧的HTML重定向到新的HTML。 于是我需要为所有文章创建一个HTML文件用于重定向。

HTML提供了一种301重定向的方式:

<meta http-equiv="refresh" content="0; url=xxx">
<link rel="canonical" href="xxx" />

第一行是指示浏览器立即重定向,到URL:xxx,content指定了重定向之前显示当前页面的秒数。第二行是给主流的搜索引擎看的, 详情请见: https://www.mattcutts.com/blog/canonical-link-tag/

例如文章2015-05-02-tex-note.md,其文件开头指定了分类信息:

---
layout: blog
categories: linux
...

这篇文章新的URL是/2015/05/02/tex-note.html,旧的URL是/linux/tex-note.html, 我需要为它生成一个文件:/linux/tex-note.html来匹配旧的URL,其内容为:

<html>
<head lang="en">
  <meta http-equiv="refresh" content="0; url=/2015/05/02/tex-note.html">
  <link rel="canonical" href="/2015/05/02/tex-note.html" />
</head>
</html>

进程的地址空间:TEXT,DATA,BSS,HEAP,STACK

栈空间 堆空间 内存 全局变量 动态内存 虚拟内存 静态变量

现代操作系统对每个进程都分配了完整的虚拟内存地址空间。进程会把整个地址空间分成多个区间来使用。 程序员最为熟悉的两个区间莫过于。然而还有其他的内存区间来存储代码、静态、全局变量等等。 本文来总结一下这些内存区间到底存的是哪些东西。先看图:

memory segments@2x

图片来源: http://www.sw-at.com/blog/2011/03/23/where-does-code-execute-process-address-space-code-gvar-bss-heap-stack/

上一页 下一页