余苏明的幻想乡

第一 shell基础学习笔记

第一 shell基础学习笔记

前言

本系列为阅读《跟老男孩学习Linux运维——shell编程实战》笔记

几大脚本语言对比

  • shell脚本对于常规业务应用更符合Linux的简单、易用、高效的三大基本原则
  • PHP优势在于小型网站系统的开发
  • Python优势在于开发较复杂的运维工具软件、Web界面的管理工具和Web业务开发

    bash与sh的区别

    sh为bash的软连接,更规范的写法为#!bin/bash

    bash破壳漏洞检测

    执行下面命令
    1
    env x='() { :;}; echo be careful' bash -c "echo this is a test"

如果返回下面结果

1
2
be careful
this is a test

则需要尽快升级bash。

source.命令

  • source.命令的功能是加载并执行相关脚本文件中的命令及语句
    相当于PHP中的include的功能。
  • 使用sh执行脚本,是启动一个子shell来执行,所以脚本中定义的变量在脚本执行结束,关掉子shell后不会保留;而source则相当于在当前shell中执行,所以脚本中定义的变量将会保留。

    awk中调用变量对三个引号的特殊性

AWK\ETT ETT=123 ETT=’oldgirl’ ETT=”tingting” ETT=`pwd`
awk ‘BEGIN { print “\$ETT” }’ \$ETT \$ETT \$ETT \$ETT
awk ‘BEGIN { print $ETT }’
awk ‘BEGIN { print ‘$ETT’ }’ 正确 语法报错
awk ‘BEGIN { print “‘$ETT’” }’ 正确 正确 正确 正确