Home Shell - Bash个性化
Post
Cancel

Shell - Bash个性化

alias

记录一些自用的alias

1
2
# 简化minicom输入,强制关闭已存在串口,并显示可用的串口
alias minicom='sudo bash -c "{ ls /dev/ttyUSB* ; echo -n choose ttyUSB No: ; read TTYUSBNO ;echo \"select /dev/ttyUSB\$TTYUSBNO\"; kill -n 9 `ps -C minicom -o pid=` ;  /usr/bin/minicom  -D /dev/ttyUSB\$TTYUSBNO;}"'

bash - bind

bind命令在bash中是一个buildin的命令。可以自定义bash下的按键和组合键的功能,甚至改变系统的默认行为。 内容主要参考 man bash 的READLINE大章节,内容较多,记录一些个人使用的。

默认的bash cli 的输入模式是emacs输入模式,如 CTRL+A 就是光标移动到行首,CTRL+E 就是光标移动到行尾, 还有其他快捷键等。这种按键或组合键(key bindings)的功能是可以定义的。 一般可以使用功能键F1-F12,Ctrl,Alt,Home,End等等,几乎都支持。组合按键可以两键组合,三键组合等。由于bash本身使用了大量默认的快捷键,这里就仅使用功能键。

另外,实际使用中,由于一般是ssh连接,使用的ssh客户端软件,如xshell,putty,mobaxterm等,一些按键首先会被客户端软件捕获掉,发送不到终端里。 如Atl键,一般作为功能键,会直接进入客户端软件菜单栏。F1会直接弹出帮助,F11会进入全屏等。需要避免被客户端先捕获掉,所以实际能用的有限。 有些ssh客户端软件支持快速命令,如果仅用于快速输入命令,也可以直接使用客户端软件的快速命令功能,如Xshell的快速命令功能。

实现过程

(1)查看按键
使用命令cat查看,按键组合键,这里输入F5,F6,F7,F8。

1
2
$ cat
^[[15~ ^[[17~ ^[[18~ ^[[19~

这里输入Ctrl+F5,Ctrl+F6,Ctrl+F7,Ctrl+F8。

1
2
$ cat
^[[15;5~ ^[[17;5~ ^[[18;5~ ^[[19;5~

这里的^[代表一个Escape字符,而在文件中必须使用 \e来指代。这是较难理解的地方,还有其他特殊字符也有特殊指代。

(2)配置功能
配置文件名:~/.inputrc/etc/inputrc。可以实现的功能包括内置功能和自定义命令。内置功能有很多,有光标移动,历史命令检索,输入文本改动,多种补全等和其他 不了解的功能;自定义命令相当于输入特定文本。这里就使用这个。

这里将F7功能键定义为输入 make -j4\n ,常用的编译方式。将F6功能键定义为输入 make clean\n

1
2
3
4
# F7 == make -j4
"\e[18~": "make -j4\n"
# F6 == make clean
"\e[17~": "make clean\n"

后续的shell登录后,键入F7功能键,即为输入 make -j4+回车

This post is licensed under CC BY 4.0 by the author.