做了个小工具essential-pathway
个人作品说明,如有转载,请注明作者和出处。
——by realasking
工具下载地址:
以前就一直觉得在命令行下切换各个目录很头疼,而且总是忘记哪些目录在用,所以后来就自己写了好几个shell脚本来管理在使用的目录,并提醒自己其中的内容。最近几天,突然萌生了把它们整理一下、打成一个包的念头,不过没有想到的是,做着做着突然觉得还不如干脆用python来整个重写一遍,结果最后就做出了这么个东西。
这个小工具是用python3.6开发的,以LGPLv3发布,兼容性并未进行多少测试,目前只在64位archlinux上使用着。它用python调用sqlite3来管理常用路径,并生成包含数据内记录路径的modulefile供Tcl版的environment module来读取,以生成新的环境变量供用户调用,而在列表显示内部的路径时,需要调用python的prettytable库,所以该工具在安装前,需要先安装配置module和prettytable。
prettytable直接用pip install prettytable即可安装。
module在archlinux上用yaourt -S env-modules-tcl安装,在安装完成后,需要在$HOME下建立文件.modulespath,其内容为存放modulefile的目录位置,然后还需要在.bashrc中添加如下两行:
export MODULEPATH=${HOME}/env/module_files:$MODULEPATH
source /etc/modules-tcl/init/bash
下次登录bash即可启用module了。
本工具所生成的modulefile叫epath,要启用它,则需要在以上两行之后另起一行,添加以下内容:
module load epath
这一步建议在本工具安装完成并至少运行一次后操作
设置完成后,用pip install essential-pathway安装本工具,然后执行ep,就可以看到各种功能的使用说明了,举个例子,比如要将当前目录加入到pathway中,并将此pathway命名为myhome,执行:
ep a myhome
然后执行:
ep l
显示:
然后执行:
[realasking@Laptop Documents]$cd ~
[realasking@Laptop ~]$module load epath
[realasking@Laptop ~]$cd "$myhome"
[realasking@Laptop Documents]$
可以看到,环境变量myhome就生效了。
同样的,该工具还支持评注(备忘)、删除、刷新、备份、卸载环境变量设置等功能,需要注意的是,每次使用该命令前,请先执行一次module unload epath,否则可能会出现一些问题,在所需操作都执行完之后,需要让所有的pathway都生效,则可以再执行一次module load epath,当然,如果将这一句导入到了.bashrc中,则重新登录shell就可以了。
有兴趣的朋友可以试试,欢迎大家提意见,但限于个人精力和能力,本人不保证此工具的有效性及稳定性,也不一定能及时回复大家的关切,还望大家海涵。