bash 的主要优点
1、命令记忆功能
- 记录在~/.bash_history。要注意的是,本次登录所执行的命令都被暂存在临时内存中,当你成功注销后才写入到文件。
- 可以使用history命令查看曾经执行的命令
!number 可以重复执行history命令(number为history命令查询出来的命令序号)
2、命令和文件补全功能([Tab]按键的好处)
- [Tab]接在一串命令的第一个后面,则为命令补全(所以如果想知道系统当中有多少以c开头的命令,可以按下"c[Tab][Tab]")
- [Tab]接在一串命令的第二个后面,则为文件补全
3、命令设置别名功能
- 设置临时别名:alias cls='clear'
- 设置永久别名:将上述命令保存到~/.bashrc
4、作业控制、前台、后台控制
可以实现单一登录的环境中实现多任务
5、脚本程序(shell script)
非常强大
6、通配符
除了完整的字符串之外,bash还支持许多的通配符来帮助用户查询与命令执行
例如想要知道/usr/bin下面有多少以X开头的文件:
ls -l /usr/bin/X*
变量
1、定义变量
myname=helloworld
这样子就定义好一个变量,可以通过echo $myname或echo ${myname}来打印这个变量
2、取消变量
unset myname即可取消上述设置的变量
3、设置变量的类型
可以用declare来定义变量的类型:declare [-aixr] variable
-a 数组
-i 整形
-x 功能和export一样
-r readonly
4、变量内容的删除、替代与替换
删除与替换
- ${var#str} 若变量内容从头开始的数据符合关键字,则将符合的最短数据删除
- ${var##str} 若变量内容从头开始的数据符合关键字,则将符合的最长数据删除
- ${var%str} 若变量内容从尾向前的数据符合关键字,则将符合的最短数据删除
- ${var#str} 若变量内容从尾向前的数据符合关键字,则将符合的最短数据删除
- ${var/str/new_str} 若变量内容符合旧字符串,则将符合的第一个数据删除
- ${var//str/new_str} 若变量内容符合旧字符串,则将符合的全部数据删除
变量的测试与替换
3、变量的作用域
上面定义的变量只能在本进程中使用,父进程定义的变量无法再子进程内使用。不过可以通过export将变量变成环境变量后,就能在子进程下面应用了。
环境变量
1、可以用env查看环境变量,下面是一些环境变量的说明:
- HOME 代表用户的主文件夹
- SHELL 告知我们目前这个环境使用的shell是哪个程序,默认是/bin/bash
- PATH 就是执行文件查找的路径,以":"分隔
2、可以用set同时查看环境变量和自定义变量
- PS1 提示符的设置
- $ 代表目前这个shell的线程代号
- ? 关于上一个执行命令的回传码
当我们执行某些命令时,这些命令都会回传一个执行后的代码。一般来书,如果成功执行改名了,则会回传一个0。
例如:
echo $HOME //打印 /root
echo $? //打印 0
4、终端机的环境设置
stty -a可以列出所有的按键与按键内容
bash默认的组合键:
- ctrl + c:终止目前的命令
- ctrl + d:输入结束,例如邮件结束的时候
- ctrl + m:就是enter
- ctrl + s:暂停屏幕的输出
- ctrl + q:恢复屏幕的输出
- ctrl + u:在命令提示符下,将整行命令删除
- ctrl + z:暂停目前的命令