bash及其特性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bash及其特性相关的知识,希望对你有一定的参考价值。
shell:外壳
GUI:Gnome,KDE,Xface
CLI:sh,csh,ksh,bash(兼具sh、csh等各种特性,功能更强大,且遵循开源协议),tcsh,zsh
进程:在每个进程看来,当前主机上只存在内核和当前进程
进程是程序的副本,进程是程序的执行过程
用户工作环境:窗口[W]
bash[L] 管理员:# 普通用户:$
shell:子shell(bash--sh--tcsh--csh--pstree 相互独立)
bash(支持):
1、命令历史、命令补全
2、命令行编辑
3、命令别名、命令替换
4、文件名通配
5、命令行展开
6、管道、重定向
7、使用变量
8、编程
命令历史:
查看命令历史:history
-c:清空命令历史
-d OFFSET [n]:删除指定位置[及其后n行]的命令
-w:保存缓存区中的命令历史至历史文件
环境变量:
PATH:命令搜索路径
HISTSIZE:命令历史缓冲区大小
命令补全:Tab+[Tab]
PASH
路径补全:Tab+[Tab]
命令行编辑:
光标跳转:
Ctrl+a:跳到命令行首
Ctrl+e:跳到命令行尾
Ctrl+u:删除光标至命令行首的内容
Ctrl+k:删除光标至命令行尾的内容
Ctrl+←/→:按字符跳转(有些终端不支持)
Ctrl+l:清屏
Ctrl+r:在历史命令中搜索
命令历史的使用技巧:
!n:执行命令历史中的第n条命令
!-n:执行命令历史中的倒数第n条命令
!!:执行上一条命令
!string:执行命令历史中最近一次以指定string开头的命令
!$:引用上一个命令的最后一个参数
Esc,. :引用上一个命令的最后一个参数
Alt+. :引用上一个命令的最后一个参数远程终端不支持,本地支持
命令别名:
# alias COMMAND=‘COMMAND [options] [arguments]‘
在shell中定义的别名仅在当前shel生命周期中有效:别名的有效范围仅为当前shell进程
# alias (显示当前系统定义的所有别名)
# unalias CMDALIAS (撤销别名)
# \CMD (可使用定义别名后的命令的本来命令)
命令替换:
把命令中某个子命令替换为其执行结果的过程
$(COMMAND)
反引号:``(~下的引号)
# touch file-$(date +%F).txt (结果为创建一个名为file-2017-11-3.txt的文件)
bash支持的引号:
``:命令替换--------------------------------------------反引号
"":弱引用,可以实现变量替换----------------------------双引号
‘‘:强引用,不完成变量替换------------------------------单引号
文件名通配:globbing
*:匹配任意长度的任意字符(0+n)
?:匹配任意单个字符(1)
[]:匹配指定范围内的任意单个字符,[abc]\[a-z]\[A-Z]\[0-9]\[a-zA-Z]
# man 7 glob
[:space:]:空白字符
[:punct:]:标点符号
[:lower:]:小写字母
[:upper:]:大写字母
[:alpha:]:大小写字母
[:digit:]:数字
[:alnum:]:数字和大小写字母
[^]:匹配指定范围外的任意单个字符,[^0-9]
以上是关于bash及其特性的主要内容,如果未能解决你的问题,请参考以下文章
bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。