脚本执行
- 赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh #或者直接输入全路径名称
- 通过bash调用执行脚本
bash hello.sh
Bash的基本功能
命令的别名与快捷键
- alias #查看系统中所有的命令别名
- alias 别名=‘原命令’ #设定命令别名
别名永久生效与删除别名
- vi ~/.bashrc #写入环境变量配置文件
- source .bashrc #使文件立即生效且重启不会丢失。如果不执行这一步,执行上一步以后需要重新登录配置文件才会生效
- unalias 别名 #删除别名
常用快捷键
历史命令
- history [选项] [历史命令保存文件]
- 选项:
-c :清空历史命令
-w : 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
我觉得比较好的一个用处:出现问题时,排查自己之前执行的命令,是否出错了。
输出重定向
/dev/null #linux中的回收站,可以将不需要看到的输出都重定向到这里
管道符
多命令顺序执行
- data ; tar -zcvf etc.tar.gz /etc ; date #可以计算打包的时间
- ls && echo yes || echo no #通过这个命令判断ls命令是否正确执行,正确执行输出yes,错误输出no
管道符
- 命令格式:命令1 | 命令2 #命令1的正确输出作为命令2的操作对象
- netstat -an |grep ESTABLISHED #判断正在连接中的端口
- netstat -an |grep ESTABLISHED | wc -l #wc命令统计输出的行数
通配符
run文件
run文件很简单,它的结构是shell+压缩包(当然也可以是其它文件)的格式,制作的时候用cat命令把shell(shell一定要在前面)和压缩包同时重定向到另一个文件(linux中统一给后缀run给它,就是本文中说的run文件),在shell内记录压缩包的大小等信息,运行的时候shell就可以用linux里面的tail或head等命令很容易地把压缩包从run文件切分出来,后面的操作就跟shell+压缩包的操作类似了,但这其中用户只需执行它就行,剩下的都是shell自己的操作,对用户来说是不是自动省事了很多?
1. 制作:使用linux的cat命令: cat install.sh ProjectDir.tar.gz > setup.run
2.修改属性: chmod u+x setup.run
3.最后测试: ./setup.run
实际应用举例:将一个导入sh脚本和一个docker镜像tar包制作成一个run文件,实现docker镜像的自动导入。导入操作所在的当前目录可能会出现空间不足,可以用bash xxx.run --target /data/tmp重定向目标目的到大存储,在导入成功后删除该目录下的临时文件(在run文件所在目录下执行run文件时,不会出现制作run文件的原始文件)
参考原文链接:https://blog.csdn.net/chenchong08/article/details/7683945/