环境说明

  • Windows 7
  • java version “1.7.0_80”
  • Apache Maven 3.2.3
  • ProtocolBuffer 2.5.0
  • cmake version 3.7.2 win64 x64
  • Windows SDK 7.1

构建过程参照源代码目录下BUILDING.txt说明文件中的“Building on Windows”中的内容;以及我的另外一篇文章:搭建Hadoop源代码阅读环境

阅读全文 »

Unix/Linux下各种命令的参数,都是以减号符(-)后面跟单字符参数,比如-r)或者双减号符(--)(后面紧跟多字符参数,比如--recursive)来表示。 在所有参数后面是文件名或者目录。大多情况下(文件名第一个字符不是减号符(-))这样是没有任何问题的,但是如果文件名第一个字符是-时(比如-myfile),命令就无法区分此时-myfile到底是文件名还是参数名。此时解决方法就是用双减号符(--)来表示命令参数结束了,后面哪怕是以减号符(-)开头的字符串,也被当成文件名处理。

比如rm -r -- -mydir就会递归的(-r)删除-mydir这个目录。

反编译一个或多个class文件。

摘要

javap [options] classfile…

阅读全文 »

  1. -e filename:如果 filename 存在,则为真。
  2. -d filename:如果 filename 为目录,则为真。
  3. -f filename:如果 filename 为常规文件,则为真。
  4. -L filename:如果 filename 为符号链接,则为真。
  5. -r filename:如果 filename 可读,则为真。
  6. -w filename:如果 filename 可写,则为真。
  7. -x filename:如果 filename 可执行,则为真。
  8. -s filename:如果文件长度不为 0,则为真。
  9. -h filename:如果文件是软链接,则为真。
  10. filename1 -nt filename2:如果 filename1 比 filename2 新,则为真。
  11. filename1 -ot filename2:如果 filename1 比 filename2 旧,则为真。

Bash Shell可以进行变量的条件替换,条件放在{}中,只有条件发生时才进行替换:

  • ${v1:-$v2}

当变量v1未定义或者值为空时,返回v2的值,否则返回v1的值。

阅读全文 »

我们已经知道在Shell中$0表示Shell脚本的文件名,但在有脚本调用的情形中,子脚本中的$0会是什么值呢?我们通过下面的实例来看。

已测试系统列表:

  • Mac OS X EI Capitan 10.11.6
  • Ubuntu 16.04 LTS (GNU/Linux 4.4.0-28-generic x86_64)
阅读全文 »
0%