linux bash shell常用技巧(1)
·
由于自己平时使用Ubuntu作为开发环境,所以使用bash的机会就比较多一点儿,在此将使用bash过程中的一些比较有用的技巧记录在此,方便自己以后查询,希望也能帮到一些网友,更有效率的使用的bash.
1.快捷键
使用快捷键在很多时候可以显著提高自己操作的效率,而我个人平时比较多的使用快捷键(也只是使用了一小部分),所以先说一下快捷键。我个人使用的是gnome-terminal,默认设置是emacs模式,所以好多的快捷键应该是跟emacs相同的。同时,为了能够使用Alt开头的快捷键,我对gnome-terminal进行了如下设置:点击 编辑 -> 键盘快捷键, 把"启用菜单快捷键"前面的勾去掉.先说一下我使用最多的快捷键(一些大家熟知的ctrl+c/ctrl+z等等,此处就不说了),最后罗列一下快捷键列表。
Ctrl+Alt+T:打开终端,不多说。
Ctrl+Shift+T:在当前路径下,打开另外一个terminal标签(相当于clone了一个当前terminal标签)。非常适合需要打开另外一个终端,并跳转到当前处理的路径的情况。
Ctrl+R:逆向搜索历史命令。按下ctrl+R后,直接想要运行的之前的命令中包含的单词,如果不是你要的那一条,可以持续按下Ctrl+R直到找到需要的命令,同时也可以按下Ctrl+G来取消搜索。示例:(reverse-i-search)`ls':ls a b c
Alt+.:输入之前命令的最后一个参数。按下Alt+. 以后,会在当前光标位置补上上一条命令的最后一个参数,如果持续按Alt+.则会补全上条命令的最后一个参数、上上上条......。例如:
$mkdir name-too-long-directory
$cd |
当光标在如上的|位置时,我们按下Alt+. 则会补全为cd name-too-long-directory
Ctrl+L:清屏命令。比clear命令更好用。即使当前光标处已经输入了命令,按下ctrl+L也可以完成清屏(输入的命令继续保留)
Ctrl+A/Ctrl+E:移动到行首、行尾。使用该命令可以将光标置于当前输入的命令的行首或者行尾。
Ctrl+F/Ctrl+B:光标向前、向后移动一个字符。(F/B分别为Forward/Backward)
Alt+F/Alt+B:光标向前、向后移动一个单词。
Ctrl+U/Ctrl+K:删除当前光标到行首/当前光标到行尾的字符。
Ctrl+W:删除一个单词,单词之间以空格分隔
Ctrl+Alt+H:删除一个单词,单词之间以符号分割,此处的符号是指除了字母和数字的其他符号。
Ctrl+Y:粘贴最后一次使用快捷键删除(例如ctrl+u或者ctrl+k等)的内容。
其他常用的快捷键列表如下:(其中开头的C代表Ctrl键,开头的M代表Alt键)
|
意义 |
快捷键 |
|
向前(Forward)移动一个字符 |
C-f |
|
向后(Backward)移动一个字符 |
C-b |
|
向前移动一个单词 |
M-f |
|
向后移动一个单词 |
M-b |
|
移动光标到行首 |
C-a |
|
移动光标到行尾 |
C-e |
|
|
|
|
向前删一个字符 |
C-d |
|
向后删一个字符 |
C-h |
|
向前删一个单词 |
M-d |
|
向后删一个单词, 单词之间以符号分割 |
C-M-h |
|
向后删一个单词, 单词之间以空格分割 |
C-w |
|
清屏, 相当于命令clear, 有了这个快捷键, 就不用每次努力的敲clear了 |
C-l |
|
删除当前光标到行尾的字符 |
C-k |
|
删除当前光标到行首的字符 |
C-u |
|
粘贴删除环里面的第一项 |
C-y |
|
粘贴删除环里面的后面的项 |
M-y |
|
undo |
C-/ |
|
取出上一条命令的最后一个参数 |
M-. |
|
|
|
|
从当前光标处向前搜索字符 |
C-] |
|
从当前光标处向后搜索字符 |
C-M-] |
|
交换当前光标下的字符和光标前面的一个字符, 交换后, 光标向后移东一个字符 |
C-t |
|
交换当前光标所在单词和光标前面一个单词, 交换后, 光标向后移动一个单词 |
M-t |
|
把单词首字符变成大写, 其他变成小写 |
M-c |
|
把单词变成小写 |
M-l |
|
把单词变成大写 |
M-u |
|
删除当前光标前面所有的空白字符 |
M-\ |
|
向后非增量搜索历史命令 |
M-p |
|
相当于TAB健 |
C-i |
|
相当于回车键 |
C-m/C-j |
|
在当前光标处和上一次光标处不停的移动 |
C-x C-x |
2.alias别名
alias cd..='cd ../'
alias ..='cd ../'
alias ...='cd ../../'
alias ....='cd ../../../'
alias .....='cd ../../../../
alias ......='cd ../../../../../'
alias .1='cd ../'
alias .2='cd ../../'
alias .3='cd ../../../'
alias .4='cd ../../../../'
alias .5='cd ../../../../../'
3.环境变量
一些环境变量的设置,也能够为我们高效使用bash提供很好的帮助。目前我使用的环境变量还不多,等看完man bash以后可能还会添加。主要使用的有:CDPATH:该变量设置cd时,搜索的目录。此处我们可以将我们常用的目录加入进去,这样cd的时候,就会比较快速。例如:
export CDPATH=".:$HOME/source",注意使用":"分隔不同的目录。假设我的source目录下有如下目录:gb ics jb
那么我在任意的路径下,只要执行cd gb(假设没有其他重名目录的话)就会跳到$HOME/source/gb目录
与History相关的环境变量,摘自 懒惰的程序员:http://www.wanglianghome.org/blog/2007/05/bash-history.html .大家可以移步查看完整版介绍。
# 忽略重复的命令 export HISTCONTROL=ignoredups # 忽略由冒号分割的这些命令 export HISTIGNORE="[ ]*:&:bg:fg:exit" # 设置保存历史命令的文件大小 export HISTFILESIZE=1000000000 # 保存历史命令条数 export HISTSIZE=1000000OK 今天先到这儿,第一次写,基本上是想到哪儿写到哪儿。后面抽空整理下,再继续后面的部分。shopt -s histappend #append instead of overwritePROMPT_COMMAND="history -a; $PROMPT_COMMAND"
更多推荐
所有评论(0)