在linux下做开发工作时,往往有一些重复性质很多的操作,最典型的就是cd命令的使用,工作的过程同样是满足空间局部性原理,简单说就是我们在短时间内,为了完成某项工作,会频繁的在两到三个目录间切换,例如在kernel下的driver和dts目录间切换,往往会使用 “cd ../ cd ../ cd xx ..." 一般需要两到三步,甚至更多,如果是在三四个目录间切换,情况会很恶劣,这属实是非常低效的。
在算法设计中有一条很重要的原则,就是让使用频率最高的命令路径最短,本着这样的原则我们可以写一个脚本,让其自动执行,可以达到,仅使用一条自定义命令切换到指定目录,例如:
cdkerneldir //切换到kernel根目录
cdlkdir //切换到lk根目录
cdoutdir //切换到编译输出文件目录
cdpacdir //切换到版本包输出目录
并且也可以在该脚本中添加一些自定义的修改系统偏好的代码,例如终端字体,颜色,终端输入提示符,一些命令的默认参数,例如 grep ,find 的默认参数,export 环境变量(末尾给出样例)等等..........
这样有一个极大的好处,就是你对系统所有的偏好设置都是与系统文件完全隔离的,并且在换linux机器时,你只需要把这个脚本拷贝过去,并加一条命令,所有的个性化的配置都不需要重新设置,方便,快捷,高效,你值得拥有!!!
实现也比较简单,简单分为三步
1,创建自定义shell脚本文件
vim /home/zhangle/.myscript/mycmd.sh //位置任意,看你心情
2,添加vim自启动
在/home/zhangle/.bashrc文件最后一行添加如下命令,
source /home/zhangle/.myscript/mycmd.sh //这样mycmd中的所有命令都会在终端打开时被加载;
3,在mycmd.sh文件中添加自定义命令,这里简单举几个例子,事实上任何shell脚本中可以修改的系统属性,都可以在此实现;
#!/bin/bash
# create by zhangle
ROOT_DIR=/workspace/code
# use cdkerneldir enter kernel root dir
KERNELDIR="cd "${ROOT_DIR}"/alps/bsp/kernel"
alias cdkerneldir=${KERNELDIR}
# use cdkernelout enter kernel out dir
KERNELOUT="cd "${ROOT_DIR}"/alps/bsp/out/xxx/kernel/"
alias cdkernelout=${KERNELOUT}
# use cdlkdir enter lk root dir
LKDIR="cd "${ROOT_DIR}"/alps/bsp/bootload/lk"
alias cdlkdir=${LKDIR}
# and so on ............
##### my env value #####
# 添加自定义环境变量
export PATH=/home/xxx/xxx:$PATH
##### my cmd plus #####
# 可以使用grepp xxx 命令进行搜索,自动排除二进制文件,和tags文件,这参数每次都敲真的会死人!!
alias grepp='grep --binary-files=without-match --exclude=tags -nr'
# 系统个性化属性修改
# 设置grep 命令匹配的颜色为黄色高亮,可以任意修改,修改系统属性,装x利器,
export GREP_OPTIONS='--color=auto' GREP_COLOR='33'
纯原创,完结。