人人网备份方案
人人网 居然还没有倒闭,真是神奇……作为近十年前崛起的社交新秀,人人网(前身校内网)火了也将近有三四年了;不过上大学之后我就几乎没有用过它了……
最近登陆上去发现整个站已经非常破败了,还是趁早数据 dump 下来比较好。
人人网 居然还没有倒闭,真是神奇……作为近十年前崛起的社交新秀,人人网(前身校内网)火了也将近有三四年了;不过上大学之后我就几乎没有用过它了……
最近登陆上去发现整个站已经非常破败了,还是趁早数据 dump 下来比较好。
这个是 shell 的(一部分)精髓吧 所以我几乎每次都会搞错
简单说来就是通过一些保留的符号,操纵命令的输入流、输出流(包括标准输出流和错误输出流)。我们提到过 Unix/Linux 设计哲学是一切都是文件,所以一个命令(进程?)输入、输出都是“文件”;既然是文件那就可以进行重定向。
先来看一下三种循环的语法:
$ help for | head -n1
for: for NAME [in WORDS ... ] ; do COMMANDS; done
$ help while | head -n1
while: while COMMANDS; do COMMANDS; done
$ help until | head -n1
until: until COMMANDS; do COMMANDS; done
反正我觉得 until 相对于 while 是没什么用= =
好的,我抓紧把这个坑填上就可以安利其他有趣的命令了(
我们提到过 shell 是弱类型的语言,除了数字和数组类型以外好像也就字符串类型了。个人感觉用 shell 的时候字符串类型是最多的,因为你看传参数是用字符串,就连循环
for i in `seq 1 10`
do
...
done
i
的取值 seq 1 10
都是字符串类型。记得某篇文章说过 Lisp 系统比类 Unix 系统高端之处就在于前者用表传参,而后者是用字符串传参= =
为什么要单独讲下数组呢? 毕竟作为脚本语言,没有关联数组和咸鱼有什么区别?
还是先从正常数组讲起吧= =
上次说了怎么自定义变量,这次看一下一些特殊的变量。
感觉最常用的肯定就是传入参数 $[n]
嘛!其他什么基本用不到的。
刚才看了一眼 bash
的文档,真的是被文档的详尽吓到了= =
唔,那么先从变量的使用入手吧。
在写这篇教程的时候本来想把 shell 语言批判一番,说什么太容易被注入,经常多打一个空格(见 bumblebee 事件)引发一场巨大灾难什么的大新闻,于是我就着手尝试各种能形成危险行为的输入,却没有能成功的……后来发现是自己比较 naive , echo
和 read
的行为并不像表面上那么直接。那我就直接贴测试代码和用例咯。