首页 > 代码库 > LINUX的bash的一些特性

LINUX的bash的一些特性

1.bash的特性

在LINUX进行SHELL编程是很常见的一项任务,熟悉BASH的特性,是十分必要的。

昨天花了一天时间,对BASH的特性进行了学习总结,发现过去的自己,对LINUX的BASH特性认识的很少,收获很多。


2.BASH支持命令行编辑

一直以来,和LINUX的COMMAND LINE打交道,只知道clear清屏,用退格键进行删除。其实,BASH支持命令行进行高效,快速的编辑。一些常用的,总结如下:

序号命令快捷键说明
1ctrl+a表示跳到命令行首
2ctrl+e表示跳到命令行尾
3ctrl+u表示清除从光标开始至行首的字符
4ctrl+k表示清除从光标开始至行尾的字符
5ctrl+d表示清除光标的下一个字符
6ctrl+l相当于clear


3.BASH支持命令行历史

其实就是关于history的用法。

关于history的使用技巧:

序号技巧说明
1!NUMBER具体执行哪一条命令。还有一种!-NUMBER的用法(这里的NUMBER标示从倒数开始的第几个命令,不常用)
2!STR从倒数开始匹配,找到第一个以STR开头的命令执行
3!!执行上一次的命令。似乎用上下箭头可能更方便些,但是,如果我们想在SHELL脚本中完成呢?
4!$

进行快速引用,表示取得上一次命令的最后一个参数。

这个十分有用,因为我们经常的做法是查看一个文件,然后进行编辑,如果使用这一技巧,可以避免重复输入。当然,还有一个更为快速的方式,那就是esc+.的方式。


4.BASH支持补全

我们经常使用的技巧,比如我们敲了一个命令的一部分,或者一部分路径,就可以使用这一技巧,来快速完成。

命令补全的机制:PATH环境变量进行搜索

路径补全的机制:路径匹配


有些时候,如果我们连按2次TAB键,会将符合的全部列出,如果过多,会提示。


5.BASH支持命令别名

在WINDOWS DOS下,清屏命令是cls,可以在LINUX下定义别名。

[root@localhost test]# alias cls=clear
[root@localhost test]# alias
alias cls=‘clear‘
alias cp=‘cp -i‘
alias l.=‘ls -d .* --color=tty‘
alias ll=‘ls -l --color=tty‘
alias ls=‘ls --color=tty‘
alias mv=‘mv -i‘
alias rm=‘rm -i‘
alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde‘
[root@localhost test]#

要撤销别名,直接unalias cls即可。

需要注意的是:

用alias命令的方式定义别名,自在当前SHELL有效,即便使用同样的ID登录,也无效。

而且命令定义别名,重启后失效。


6.BASH支持命令替换

什么是命令替换,也就是说,一个命令中的子命令被子命令的结果所替换。

这个非常重要。

看个例子:

[root@localhost test]# echo ‘the dir is $(pwd)‘
the dir is $(pwd)
[root@localhost test]# echo "the dir is $(pwd)"
the dir is /root/test
[root@localhost test]# echo "the dir is `pwd`"
the dir is /root/test

命令替换的重要表现形式:$(),"",``

补充:BASH所支持的引号类型

单引号弱引用,也就是说不会进行任何替换,说白了,你看到的是什么就是什么
双引号强引用,会进行替换操作。
反引号`COMMAND` equals $(COMMAND)


7.BASH支持文件名通配

参考我的博客:http://zhangfengzhe.blog.51cto.com/8855103/1409363















本文出自 “我想超越自我” 博客,请务必保留此出处http://zhangfengzhe.blog.51cto.com/8855103/1409381