无论是golang编写的工具,还是bash的alias或者function,使用命令时经常靠TAB补全。为了补全时混淆信息更少,统计了一下Linux常见工具的命名习惯,选择出使用频率最低的首字母等,作为自研工具命名的优先字符。
首先获取当前Linux上所有的可执行文件
1
| find / -executable -type f -exec file {} \; 2>/dev/null | grep ELF |tee -a all.executable.files
|
然后取出名字列表
1
| cat all.executable.files |cut -d : -f 1 |sort -u|grep -Po "[^/]+$" | sort -u > all.executable.files.names
|
统计名字列表中首字母、第二个字母、第三个字母的使用频率
1
2
3
| grep -Po "^\S" all.executable.files.names|sort |uniq -c |sort -nrk1|grep -Po "\S$"|tr -d "\n"
grep -Po "^\S\S" all.executable.files.names|grep -Po "\S$"|sort |uniq -c |sort -nrk1 |grep -Po "\S$"|tr -d "\n"
grep -Po "^\S\S\S" all.executable.files.names|grep -Po "\S$"|sort |uniq -c |sort -nrk1 |grep -Po "\S$"|tr -d "\n"
|
结果是
1
2
3
| slgpxa_cmrndtfuibhevwkjozqXQC7yMWNVTSRIHF3[
iteaolrpscmydfunvhbgkw8xz2qSj1M4-B.VTRPLIGA0
stacrbkpiofnleumdvgh-6w_yxjq1H25zWDLRPMIECA3.
|
另一台云上虚拟机的结果是
1
2
3
| slgp_cxmndrtfaubijevwkozhqNyVMGDC3[
ieoypasrtcmndhu8lkfvbxwgzq2j4+.SPNMG90_
sbtnaroiceumpdlf6gk-hwvyxzq_j.1+SHA52
|
可以看到结果大同小异,首字母用的最少的是y,倒数第二少的是q,第二个字母用的最少的是j,第二少的是q。看了下y开头的只有yes,可见工具命名应该多用y开头。