关键字
ubuntu、shell脚本、快捷命令、alias、环境变量
应用场景
在使用PC时,常常要频繁地打开某个文件夹。诚然,把文件夹的快捷方式放在桌面是一种选择,但是如果桌面文件夹多了,便会显得很凌乱。
比如,笔者将平时的学习笔记放在 ~/Documents/md笔记
文件夹下,每次打开都需要一层层找寻文件夹,这让我感觉非常麻烦。
Linux操作系统下,在终端中使用“alias”,可以让我们“秒开指定文件夹”。
相关shell指令:nautilus和alias
在shell终端中,输入:
nautilus .
#打开当前文件夹
nautilus ~/Documents
#打开指定文件夹位置
那么使用重定义命令定义“opdoc”(open doc)后,便可以一键打开 ~/Documents
alias opdoc='nautilus ~/Documents'
#重定义‘opdoc’
opdoc
#打开~/Documents
在shell终端中,直接输入alias
会列出当前已经定义的命名别名。
使用~/.bashrc自动载入alias快捷命令
每次进入系统文件,都需要重新定义一次别名,才能使得opdoc
生效,这显然是低效而又不方便的。
联系到环境变量的添加方法,我们把别名定义语句添加到~/.bashrc
中就可以让其自动生效。
~/.bashrc
是bash的配置文件,在每次打开shell终端时会运行一次,在交互式shell中生效。
啰嗦一句,这里的”.”代表它是隐藏文件,查看方式 ls -a ~/
。
当然,不同的人可能使用的是不同的shell,比如笔者使用的是“zsh”,那么别名定义语句就应该添加到~/.zshrc
而不是~/.bashrc
中。
查看当前使用的shell版本:
echo $SHELL
如果显示/usr/bin/zsh
则是zsh,如果显示/usr/bin/bash
则是bash。
编辑方式
因此,整个流程十分简单:
1.vim ~/.bashrc
或 gedit ~/.bashrc
#打开shell配置文件
2.在文件结尾添加
alias opdoc='nautilus ~/Documents'
3.关闭当前shell终端并重新打开,生效。
4.在shell终端中输入opdoc,秒开文件夹
扩展
使用alias不仅可以完成随时随地快速打开文件夹这样的“基本操作”,更可以用于打开应用程序或者执行任意脚本,体验Linux下“飞一般的感觉”。
例如,当我们将打开“串口监视脚本”(一个功能类似于串口调试助手sercureCRT的python程序)的命令添加到.bashrc中后
alias fastlog='sudo python ~/Tools/esp_8266_tools/log/log.py'
在终端中输入 “fastlog”就可以随时随地打开串口监视器。
此外,脚本的输入参数也可以被 alias继承,flog -115200
相当于sudo python ~/Tools/esp_8266_tools/log/log.py -115200
,可以设定串口监视器的波特率。
这使得一个alias重命名可以衍生出非常多的功能。alias的本质是用将一段语句重命名为一个短语,但它又不同于“宏”。
巧用绝对路径和相对路径可以让同一条alias命令在不同的文件夹位置执行不同的功能。总而言之,“alias”是非常灵活的,只有你想不到,没有它做不到。有多个文件都能载入环境变量:
- /etc/profile
- /etc/bashrc
- ~/profile
- ~/.bashrc
它们的作用域和生效时间各不相同。
这里不深入展开,建议是将环境变量放在~/.profile
中,alias定义放在~/.bashrc
中。