shell脚本基础了解

一 学习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
  • 一个规范的脚本开头(可以通过~/.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
    -- 成对符号一起写完,再退格
    -- 流程控制语句一次一次写完
    -- 利用缩进

你可能感兴趣的:(shell脚本基础了解)