一 学习shell需要的linux基础
- rc能够熟练使用vim编辑器,熟悉SSH终端及 ‘.vim’等的配置。
- 需要掌握至少80个linux常用命令,并且能够熟练使用。
- 熟练使用正则表达式及三剑客命令(grep 、sed、awk)。
- 熟悉常见linux网络服务部署,优化,日志分析及排错。网络服务包括但不限于(Crond、 Inotify、Nginx、PHP、MySQL、Keepalived、Memcached、Redis、NFS、Iptables、SVN、Git.)
二 shell脚本初入门
- shell解释器(连接外部应用程序和系统内核的命令解释器)
- shell脚本 (命令、变量和流程控制语句的有机结合),特别适合处理纯文本类型的数据,而linux中几乎所有配置文件,日志文件,启动文件都是纯文本类型文件。
- 脚本语言分类
-- Bourne shell
-- C shell - 其他脚本语言
-- PHP语言
-- Perl 语言
-- Python语言 - 常用系统默认shell
-- bash
---查看方法
方法 1;
[root@web01 ~]# echo $SHELL
/bin/bash
方法 2;
[root@web01 ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
- shell 脚本的建立与执行
--脚本开头
#!/bin/bash
#!/bin/sh
-- 查看是否需要打补丁(以下信息不需要打补丁)
~[root@web01]# env x='() { :;}; echo be careful' bash -c "echo this is a test"
this is a test
如果输出
be careful
this is a test
则需要升级
[root@web01]# yum -y update bash
[root@web01]# rpm -qa bash
- 脚本注释
-- 时间久了容易忘记
-- 帮助团队其他人理解
-- 尽量不要使用中文 - shell脚本的执行顺序
-- 环境变量的顺序 /etc/profile ~/.bash_profile ~/.bashrc /etc/bashrc
--执行的集中方法
1) bash/sh script-name
2) path/scripts-name ./scripts-name(会出现无权限情况,需要加X权限)
3)source script-name .scripts-name(可以把变量传递给父shell)
4) sh<scripts cat scripts-name|sh
- 一个规范的脚本开头(可以通过~/.vimrcl来设置,不建议)
#!/bin/bash
#date 15:10 2020-3-23
#Author: Created by zhizhuoyumeng
#Blog:https://www.jianshu.com/u/1aa0e68c7ca2
#Description:This scripts funtion is ....
#Version
- 其他细节
-- 尽量不要用中文
-- 以.sh结尾
-- 放在固定路径下 /server/scripts
-- 成对符号一起写完,再退格
-- 流程控制语句一次一次写完
-- 利用缩进