Bash是Shell的一种,首先我们来了解什么是Shell。在计算机克续重,Shell俗称壳,是指“提供使用者界面”的软件(命令解释器)。同时它又是一种程序设计语言。作为命令语言,她交互式解释和执行用户输入的命令或者自动的解释和执行预先设定好的一连串的命令;作为程序设计语言,她定义了变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
基本上Shell分为两大类:
一、图形界面Shell(GUI Shell)
二、命令行式Shell(CLI Shell)
传统的意义上的Shell指的是命令行式的Shell。Shell是擦偶偶系统最外面的一层。
交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,Shell也就止了。
shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。
在UNIX中主要有:
Bourne shell (包括 sh,ksh,and bash)
Bourne shell ( sh)
Korn shell ( ksh)
Bourne Again shell ( bash)
POSIX shell ( sh)
C shell (包括 csh and tcsh)
C shell ( csh)
TENEX/TOPS C shell ( tcsh)
在Centos中,可以查看/etc/shells文件,此文件中显示了系统支持的Shell。
Bash特性
1、命令历史
2、管道、重定向
3、命令别名
4、命令行编辑
5、命令行展开
6、文件名通配
7、支持变量
8、支持编程
9、命令补全,路径补全
命令行编辑:
光标跳转:
Ctl+a:跳至命令行首
Ctl+e:跳至命令行尾
Ctl+u:删除光标至命令行首
Ctl+k:删除光标至命令行尾
Ctl+←→:按照单词进行光标移动
Ctl+l:清屏
命令历史:
history
n :数字,要列出最近的 n 笔命令列表
-c :将目前的shell中的所有 history 内容全部消除
-a :将目前新增的history 指令新增入 histfiles 中,若没有加 histfiles,则预设写入 ~/.bash_history
-r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中
-w :将目前的 history 记忆内容写入 histfiles。Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中。默认保存1000条,你也可以更改这个值。如果你键入 history, history会向你显示你所使用的前1000个历史命令,并且给它们编了号,你会看到一个用数字编号的列表快速从屏幕上卷过。你可能不需要查看1000个命令中的所有项目, 当然你也可以加入数字来列出最近的 n 笔命令列表。linux中history命令不仅仅让我们可以查询历史命令而已. 我们还可以利用相关的功能来帮我们执行命令。运行特定的历史命令history会列出bash保存的所有历史命令,并且给它们编了号,我们可以使用“叹号接编号”的方式运行特定的历史命令.
$HISTSIZE保存命令历史的数量,在/etc/profile中定义
!!执行上一条命令
!$ 或者 ESC(松开或者不松开)+. 应用上一个命令的最后一个参数,或者Alt(不松开)+.
命令别名
alias ALIAS=’COMMAND [Options]’
别名的有效范围是当前的shell进程,unalias ALIAS撤销别名
可以编写在/etc/bashrc中或者$HOME/.bashrc中
命令替换
$(COMMAND) 或者 `pwd`
把命令中某个子命令替换为其执行结果
文件名通配
*:任意长度的任意字符
?: 任意单个字符
[]:匹配指定范围内的任意单个字符
[abc]、[a-z]、[A-Z]、[0-9]、[a-zA-Z]
[^]:匹配不在指定范围中的其他单个任意字符
字符集[:space:]:空白字符
[:punct:]:标点符号
[:lower:]:小写字母
[:upper:]: 大写字母
[:alpha:]: 大小写字母
[:digit:]: 数字
[:alnum:]: 数字和大小写字母
引用字符集时要加上中括号:[[:space:]]
本文出自 “Doove” 博客,请务必保留此出处http://doove.blog.51cto.com/1100940/1745997
原文:http://doove.blog.51cto.com/1100940/1745997