• 架构师的成长之路初片~shell-1


    1,什么是shell

    Linux内核用户之间的解释器程序

    通常指 /bin/bash

    负责向内核翻译及传达用户/程序指令

    相当于操作系统的“外壳”

    2Shell的使用方式

    交互式   —— 命令行

    人工干预、智能化程度高

    逐条解释执行、效率低

    非交互式 —— 脚本

    需要提前设计、智能化难度大

    批量执行、效率高

    方便在后台静悄悄地运行

    3,什么是Shell脚本?

    提前写好可执行语句,能够完成特定任务的文件

    顺序、批量化处理

    [root@svr7 ~]# cat /etc/shells   //查看所有解释器

    [root@svr7 ~]# sh   //切换成sh解释器

    sh-4.2# ls    //利用sh解释器输入命令

    sh-4.2#exit   //退出sh解释器

    [root@svr7 ~]#yum -y install ksh   //安装新解释器

    [root@svr7 ~]#ksh   //进入新解释器

    -------------------------------------------------------------------------------------------

    Bash优点,支持tab键、快捷键、别名、历史命令、管道、重定向

    ------------------------------------------------------------

    二,脚本的编写与执行

     编写脚本的规范:

    1, 声明解释器

    #!/bin/bash

    2, 注释

    #注释的内容可以是脚本功能描述、作者介绍等信息

    3, 执行指令

     

    脚本的执行方式:

    1, 添加x权限 使用绝对或者相对路径执行

    chmod  +x  test01.sh

    2,使用解释器执行脚本,无需x权限,会开启子进程

    bash test01.sh

    bash---bash echo abc  mkdir xyz  cd xyz    //该方式会在bash父进程中开启一个bash子进程,然后由子进程执行任务命令

    将之前脚本修改为:

    #!/bin/bash

    echo abc

    mkdir xyz

    cd xyz

    //使用bash执行看不到进入xyz目录的效果,因为bash开启了子进程

    执行完毕后退出了,父进程并没有进入xyz目录,而使用source执行脚

    本可以看到进入xyz目录,因为没有开启子进程,而是父进程亲自进入

    该目录

     

    3,使用source命令执行脚本,无需x权限,不会开启子进程

    source test01.sh

    bash echo abc  mkdir xyz  cd xyz    //该方式由父进程亲自执行任务命令

     

     

     

     

     

     

     

     

  • 相关阅读:
    我把 Spring Boot Banner 换成了美女背景后……
    玩大发了,Tomcat 8.5 升级有坑…
    10 分钟快速上手 Shiro 新手教程
    为什么 HashMap 的加载因子是0.75?
    图解 Spring 循环依赖,写得太好了!
    单点登录的实现原理是什么?怎么实现?
    Maven三种仓库详解
    为什么 wait,notify,notifyAll 在 Object 类定义而不是 Thread 类?
    我们公司用了6 年的分布式锁,很是厉害!
    Google 开源的依赖注入库,比 Spring 更小更快!
  • 原文地址:https://www.cnblogs.com/ahaocloud/p/14374553.html
Copyright © 2020-2023  润新知