shell
种类
种类 | 描述 |
---|---|
B-shell | /bin/sh Stephen R.Bourne 于贝尔实验室开发 |
C-shell | /bin/csh, Bill Joy |
K-shell | /bin/csh, korn shell, David Korn |
Bash | /bin/bash, Bourne Again shell |
功能
shell是命令解释器
文件名替换,命令替换,变量替换
历史替换,别名替换
流程控制的内部命令(内部命令和外部命令)
主要用途:批处理,执行效率比算法语言低
学习bash的目的
:
交互方式下:熟习shell的替换机制、转义机制,掌握循环等流程控制,
可以编写复合命令非交互方式:编写shell脚本程序,把一系列的操作,编纂成一个脚本文
件,批量处理
具体功能
- 重定向与管道
- 方便交互使用的功能:历史替换与别名替换
- shell变量
- shell的变量替换,命令替换,文件名替换
- 元字符,如:单引号,双引号
- 流程控制
- 子程序
启动交互式shell
注册shell 和 交互式shell的区别?
启动方法
注册shell: 注册shell
键入bash 命令: 交互式shell
脚本解释器
自动执行一批命令(用户偏好):
注册shell时:自动执行用户主目录下的.bash_profile文件中的命令
bash作为注册shell退出时: 自动执行$HOME/.bash_logout
bash作为注册shell启动时: 自动执行$HOME/.bashrc
自动执行一批命令(系统级):
当bashbash bash作为注册shell被启动时:自动执行 /etc/profile 文件中命令
当bash 作为交互式shell启动时: 自动执行 /etc/bash.bashrc
当bash作为注册shell退出时:自动执行/etc/bash.bash.bash_logout
历史与别名
历史表
查看历史表
history
设置历史表的大小:
修改变量HISTSIZE
历史替换:
人机交互时,直接使用上下箭头
!! 引用上一条命令
!str 以str开头的最近用过的命令
别名
创建别名:alias h=”alias”, 注意等号两端无空格
查看别名表: alias
取消别名: unalias h
Tab键补全
每行的首个单词: 全搜索$PATH下的命令
行中的其他单词: 当前目录下的文件名
重定向
输入
命令 | 描述 |
---|---|
<filename | 从filename中获取stdin |
<<word | 从shell脚本文件中获取数据直到再次遇到定界符word ???? |
<<<word | 从命令行获取信息作为标准输入 |
输出
fd | 描述 |
---|---|
0 | 标准输入, stdin |
1 | 标准输出,stdout |
2 | 标准错误输出, stderr |
命令 | 描述 | |
---|---|---|
>filename | 将stdout重定向到文件 filename,文件已存在则先清空( 覆盖方式 | |
>>filename | 将stdout重定向 追加 到文件 filename尾 | |
2> filename | 将文件句柄2重定向到文件 filename | |
2>&1 | 将文件句柄 2重定向到文件描述符 1 | |
cmd1 | cmd2 | 将cmd1的标准输出作为cmd2的标准输入 |