shell能做什么:
1. 自动化批量系统初始化程序(update,软件安装,时区设置,安全策略。。。)
2. 自动化批量软件部署程序(LAMP,LNMP,Tomcat,LVS,Nginx)
3. 管理应用程序(KVM,集群管理扩容,MySQL,远程管理系统进行批量RAID)
4. 日志分析处理程序(PV,UV,200,!200,top100,grep/awk)
5. 自动化备份恢复程序(MySQL完全备份/增量+Crond)
6. 自动化管理程序(批量远程修改密码,软件升级,配置更新)
7. 自动化信息采集及监控程序(收集系统/应用状态信息,CPU,Mem,Disk,Net,TCP Status,Apache,MySQL)--zabbix
8. 自动化扩容(增加云主机——>业务上线)
程序语言执行:
C ——编译——二进制机器码(cpu处理 X86复杂指令集,Power精简指令集,APM)
Java ——编译——字节码(Java虚拟机JDK识别)
Shell ——解释(处理逻辑关系) ——(/usr/bin/bash)
perl ——解释(处理逻辑关系)——(/usr/bin/perl)
expect ——解释(处理逻辑关系)——(/usr/bin/expect)
Python ——解释(处理逻辑关系)——(/usr/bin/python)
——编译——字节码(python的虚拟机识别)
程序组成:逻辑 + 数据
shell执行:
1. bash *.sh ./bash.sh 在sub shell执行(子shell)
2. . *.sh source *.sh 在当前shell执行
shell特性:
系统级 /etc/profile(登陆的shell)
/etc/bashrc(登陆的shell)
用户级 ~/.bash_profile(登陆的shell)
~/.bashrc(登陆的shell)
~/.bash_logout(登出的shell)
~/.bash_history(登出的shell)
login shell su - alice (/etc/profile,/etc/bashrc,~/.bash_profile,~/.bashrc)
nologin shell su alice (/etc/bashrc,~/.bashrc)