Shell

Shell概述

  1. Shell是一个命令行解释器,它为用户提供了一个向 Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。

    image-20200515213840684

  2. Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用 Linux系统命令。

  3. Shell分类:

    • Bourne Shell:从1979起Unix就开始使用Bourne Shell,Bourne Shell的主文件名为sh。
    • C Shell: C Shell主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名
  4. Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh。Linux的标准Shell是Bash,语法结构和Bourne Shell非常类似并且完全兼容。

  5. Bash:Bash与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell

  6. /etc/shells中可以查看Linux支持的Shell,在命令行中直接输入Shell名即可切换Shell。

  7. 系统用户的Shell是/sbin/nologinnologin代表该用户不允许登录。

Shell脚本的执行

  1. echo输出命令

    [root@localhost ~]#echo [选项] [输出内容]
    

    选项:-e 支持反斜线控制的字符转换

    控制字符 作用
    \ 输出本身
    a 输出警告音
     退格键,也就是向左删除键
    c 取消输出行末的换行符。和“-n”选项一致
    e ESCAPE键
    f 换页符
    换行符
    回车键
    制表符,也就是Tab键
    v 垂直制表符
    nnn 按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进制数
    xhh 按照十六进制ASCII码表输出字符。其中hh是两位十六进制数

    #echo -e "abc"

    #删除左侧字符,输出ac

    #echo -e "e[1;31m abcd e[0m"
    

    #输出红色的abcd,e[1;color str e[0m是输出颜色的标准用法,表示将strcolor的颜色输出。

    #30m=黑色,31m=红色,32m=绿色,33m=黄色
    #34m=蓝色,35m=洋红,36m=青色,37m=白色
    
  2. 在编写脚本时建议将脚本文件命名为.sh格式,这样在使用Vim的时候会有颜色帮助。我们来看下列这样一个脚本:

    #!/bin/Bash
    #The first program
    # Author: xxxx 
    echo -e "Hello World"
    

    第一行#!/bin/Bash不是注释,而是标志以下写的程序是Shell脚本。第二、三行是注释。

  3. 脚本执行:

    • 赋予执行权限,直接运行

      $ chmod 755 hello.sh
      $ ./hello.sh
      
    • 通过Bash调用执行脚本#bash hello.sh

  4. 在Windows环境下编写的Shell脚本无法直接在Linux下执行,通过#dos2unix xxx.sh命令可以将其进行转换。

原文地址:https://www.cnblogs.com/yangyu-IoT/p/12898255.html