您的位置:首页 > 运维架构 > Shell

初步bash

2016-05-30 22:46 274 查看
bash及其特性:
shell:外壳(也是一种程序)
GUI:Gnome,KDE,Xfce
CLI:sh,csh,ksh(unix),bash,tcsh,ksh(linux),zsh

sh的特点:
1.每一个用户打开一个shell都是占用不同的进程,尽管是同一个程序
2.sh可以嵌套使用,bash里面可嵌套bash,可用pstree命令查看,子bash和父bash互不影响
3.不同的shell也可以混用如bash-->ksh-->bash-->csh ...

bash的特点:(支持以下功能)
1.命令历史
2.管道、重定向
3.命令别名
4.命令行编辑
5.命令行展开
6.文件名统配
7.变量
8.编程(shell 脚本)
9.命令补全

命令行编辑
光标跳转:
Ctrl+a:跳到命令行行首
ctrl+e:跳到命令行行尾
ctrl+u:删除从光标到行首
ctrl+k:删除从光标到行尾
ctrl+l:清屏

命令历史:
查看命令历史:history
-c:清空命令历史
-d: history -d 4: 删除第4个命令; history -d 4 1 :删除第4个以及后面1个命令
-w: 保存命令历史至历史文件中去 /home/.bash_history
使用技巧:!+ 'n' 例如:!4: 第四条命令
!+ '-n' 例如:!-4:倒数第四条命令
!!:执行上条命令
!+ string:执行最近一条和 string字符相同的命令如 !man
!$:引用前一个命令最后一个参数 或者 esc . 或者 alt .

命令别名:
alias CMDALIAS='COMMAND [option] [argument]' alias cls='clear'
在shell中定义的别名仅在当前shell生命周期中有效;别名的范围仅为当前shell进程,如果想永久生效,写入指定文件
alias 可以查看当前系统所有别名
撤销别名:unalias CMDALIAS
如果重命名的别名与原系统中命令重名,想使用原声系统的命令 \CMD 命令前加 '\'即可

命令替换:
方式1:$(CMD) 方式2:反引号:`CMD`
把命令中某个子命令替换成为其执行结果的过程:echo "the current directory is %(pwd) ."
创建一个文件命名为 file-2016-4-5-00-00.txt :touch ./file$(date +%F-%H-%M-%S).txt

bash支持的引号:
``:命令替换
"":弱引用,可以实现变量替换
'':强引用,不完成变量替换

文件名统配:globbing
*:任意长度的任意字符
?:匹配任意单个字符,占位符
[]:匹配 任意范围内的 单个字字符,例如:[abc],[a-z],[A-Z],[a-zA-Z],
[[:space:] (空白字符集合)],
[[:punct:](标点符号字符集合)],
[[:lower:](小写字母)]
[[:upper:](大写字母)]
[[:alpha:](大小写字母)]
[[:digit:](数字)]
[[:alnum:](数字和大小写字母)
#man 7 glob
要求:找到符合字母开头中间有空格数字结尾的文件: # ls [[:alpha:]]*[[:space:]]*[[:digit:]]

[^]:与上上面的取反,匹配 任意范围之外的 单个字符
[^[:space:]](非空格)
[^[:punct:]](非标点符号)
...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  bash