• shell基础


    1.什么是shell?

    Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。

    Shell既是一种命令语言,又是一种程序设计语言。

    作为命令语言,它交互式地解释和执行用户输入的命令;

    作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

    2.shell的作用是什么?

    shell是一个特殊的应用程序,它介于操作系统内核和用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的操作指令并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。

    3.linux中包含哪些shell?如何查看?

    /bin/bash
    /sbin/nologin

    /usr/bin/sh

    /usr/bin/bash

    /usr/sbin/nologin

    /bin/tcsh

    /bin/csh

    可以通过cat /etc/shells查看

    4.shell编程规范

    • 解释器:在写body之前要对shell脚本进行声明,告诉操作系统,这是一个shell文件,不声明的话系统默认为用bash来执行脚本。

             格式如下

        #!/bin/bash

    • 脚本注释:注释格式和一般的编程语言类似,为:#+内容
    • 脚本执行:source  [文件名]

                                     .  [文件名]

                                    ./  [文件名]  (注意这种方式文件需要有执行权限)

                          bash/dash/sh    [文件名]

    例子:

    5.重定向

    交互式硬件设备

    类型                   设备文件          文件描述编号        默认设备
    标准输入            /dev/stdin                0                        键盘
    标准输出            /dev/stdout              1                     显示器
    标准错误输出     /dev/stderr              2                    显示器

    重定向操作

    类型                               操作符                                     用途
    重定向输入                        <                             从指定文件读取数据
    重定向输出                        >                             将标准输出结果保存到指定的文件,并且覆盖原有文件
                                             >>                            将标准输出追加到指定的文件的尾部,不覆盖原有内容
    标准错误输出                   2>                             将错误信息保存到指定文件,并且覆盖原有文件
                                            2>>                           将错误信息追加到指定文件的尾部,不覆盖原有内容
    混合输出                     &>和2>&1                     将标准输出,标准错误保存到同—文件中

    6.变量类型

    • 自定义变量:由用户自己定义、修改和使用,变量名以字母或下划线开头、区分大小写

    符号作用:

    "":可以识别引用变量

    '':无法引用变量

    ``:引用命令执行完的结果

    •  位置变量:当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数按照从左到右的顺序依次赋值给位置变量
    • 环境变量:

              环境变量由系统提前创建,用来设置用户的工作环境

              使用env命令可以查看到当前工作环境下的环境变量

              变量USER表示用户名称,HOME表示用户的宿主目录,LANG表示语言和字符集,PWD表示当前所在的工作目录

              变量PATH表示可执行程序的默认搜索路径

    • 预定义变量: Bash中内置的一类变量,不能直接修改

    预定义变量                    表示的意思
    $*                             把所有参数看成以空格分隔的一个字符串整体(单字符串)返回
    $@                          把各个参数加上双引号分隔成n份的参数列表,每个参数作为一个字符串返回
    $0                            表示当前执行的脚本或命令的名称
    $#                            表示命令或者脚本要处理的参数的个数
    $?                          表示前一条命令或脚本执行后的返回状态码,返回值为0表示执行正确,返回任何非0值均表示执行出现异常

    7.变量作用范围

    默认情况下,新定义的变量只在当前的Shell环境中有效,因此称为局部变量。当进入子程序或新的子Shell环境时局部变量将无法再使用。

    可以通过内部命令export将指定的变量导出为全局变量,使用户定义的变量在所有的子Shell环境中能够继续使用。

    临时设置变量:局部变量在改变环境后变量会失效。

     如果使用export将变量导出为全局变量,那么在环境改变后,变量依然生效。

     

     永久设置变量:vim  /etc/profile

    export PATH+=:/mnt

  • 相关阅读:
    Android笔记(五十七)Android总结:基础篇
    Android笔记(五十六) Android四大组件之一——ContentProvider,实现自己的ContentProvider
    Android笔记(五十五) Android四大组件之一——ContentProvider,使用系统提供的ContentProvider
    Python类定义
    Python 作用域和命名空间
    Python 默认参数值
    Python 关键字参数和可变参数
    Python常用函数--return 语句
    Python常用函数--文档字符串DocStrings
    如何编写 Python 程序
  • 原文地址:https://www.cnblogs.com/xhx1991874414/p/16187398.html
Copyright © 2020-2023  润新知