时间:2017.11.24
作者:李强
参考:man,info,magedu讲义
声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。
规则是一种定义,那么有约定俗称的定义就是俗话说:还有一种定义是官方的,也就是权威,那么如何去查找这些关于用户名,主机名,文件名,或者变量名的一种定义的规则,从哪里能获取到帮助,才是我们学习的重点。
1、用户名:
通过man useradd 和info useradd 找不到关于其参数username或者LOGIN的具体描述,只是说不能超过32个字符而已。
Word-constituent characters are letters, digits, and the underscore.
虽然没找到官方说明但是实践证明确实不能超过32个字符而且只能用词组字符。就是只能使用数字、字母、下划线的组合
2、主机名:
man gethostname
SUSv2 guarantees that "Host names are limited to 255 bytes".
POSIX.1-2001 guarantees that "Host names (not including the terminating null byte) are limitedtoHOST_NAME_MAX bytes".
On Linux, HOST_NAME_MAX is defined with the value 64, which has been the limit since Linux 1.0 (earlier kernels imposed a limit of 8 bytes).
文件名可以用空格比如,touch " m" 就会生成m前面有2个空格的文件。
3、文件名:
1)、这个就比较复杂了,基本上啥字符都行除了/这个表示路径的符号绝对不能包含外,空格啊,dash(-),括号啊,你能想到的都有,可以创建"a"或者'a'等等什么的,只不过要用"",双引号引起来表示。
2)、如果要查看这些有特殊字符的文件名需要使用转义符\转义下或者用"",引起来。
3)、如果想要删除这些文件,可以用绝对路径不全,经常在安装光盘中软件使用,光盘挂载的目录是有空格的;也可以用引号用转义字符等,反正能删掉就行。这里说下以dash(-)开头的文件,使用的是在命令后面加上-- 这样命令就不会把 - 当参数的前缀来识别了。
我记得在哪个命令的帮助里有提到过这个,不记得在哪里了。
4)、其实touch是来改变文件时间戳的,所以说创建文件什么的还没见到有这个专门的命令。多以查不到哪里有文件名的定义。
4、变量名:
1)、不能使用程序中的保留关键字
2)、只能和username一样使用数字,字母和下划线的组合,但是不能以数字开头
3)、约定俗称的写法就是,见名知义,然后就是多个单词之间首字母大写或者用,下换线隔开
虽然我们自己不会这么浪,起这么非主流的名字,但是不怕一万,就怕万一,如果手一抖建了我们知道怎么删,或者哪天突然脑袋一抽想体验一下非主流也可以知道怎么建这些名字。
最后废话一句,规范才能高效。遵守才能规范,红灯停绿灯行都知道,但是不遵守的哪里都存在,这就是不稳定因素。