zoukankan      html  css  js  c++  java
  • linux基础八

    编程语言:机器语言、汇编语言、高级语言三种语言

    高级语言中又分为:

    静态语言:编译型语言
    强类型(变量)
    事先转换成可执行格式如:
    C、C++、JAVA、C#
    需要事先转换成可以执行格式


    动态语言:解释型语言, on the fly
    弱类型
    边解释边执行
    ASP、PHP、SHELL、python

    通过转换器边解释边执行

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

    面向过程:Shell, C
    面向对象: JAVA, Python, perl, C++

    接下来咱们来来了解一下SHELL~~ 

    shell: 弱类型编程语言

    强:变量在使用前,必须事先声明,甚至还需要初始化;

    例如:INT NUM=0
    弱:变量用时声明,甚至不区分类型;

    例如: #: AAAA

    bash 变量类型分为:

    本地变量:
    set VARNAME=VALUE: 作用域为整个bash进程;

    局部变量:
    local VARNAME=VALUE:作用域为当前代码段;

    环境变量:作用域为当前shell进程及其子进程;
    export VARNAME=VALUE
    VARNAME=VALUE
    export VARNAME
    “导出”

    脚本再执行时会启动一个子shell进程;

    命令行中启动的脚本会继承当前SHELL环境变量;

    系统自动执行的脚本就需要自我定义需要各环境变量.

    位置变量:
    $1, $2, ...

    特殊变量:
    $?: 上一个命令的执行状态返回值;

    程序执行,可能有两类返回值: 程序执行结果
    程序状态返回代码(0-255)
    0: 正确执行
    1-255:错误执行,1,2,127系统预留;

    撤消变量:unset VARNAME

    查看当shell中变量:
    set

    查看当前shell中的环境变量:
    printenv
    env
    export

    脚本:命令的堆砌,按实际需要,结合命令流程控制机制实现的源程序

    shebang: 魔数
    #!/bin/bash  //可以用which bash 查看路径
    # 注释行,不执行

     

    /dev/null: 软件设备, bit bucket,数据黑洞


    脚本在执行时会启动一个子shell进程;
    命令行中启动的脚本会继承当前shell环境变量;
    系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量;

    举个栗子:

    通过一个脚本创建5个目录,分别为d1,d2...d5,

    每个目录添加成功后都要显示XX目录添加成功

     

     

    条件判断:
    如果目录不存在
                 添加目录,显示添加成功;
    否则
                 显示如果已经没在,没有添加;

    if ...else语句

    但是再Bash中如何实现条件语句呢?

     条件测试类型:整数测试、字符测试、文件测试

    条件测试的表达式:
    [ expression ]
    [[ expression ]]
    test expression

    整数比较:
    -eq: 测试两个整数是否相等;比如 $A -eq $B
    -ne: 测试两个整数是否不等;不等,为真;相等,为假;
    -gt: 测试一个数是否大于另一个数;大于,为真;否则,为假;
    -lt: 测试一个数是否小于另一个数;小于,为真;否则,为假;
    -ge: 大于或等于
    -le:小于或等于

    命令的间逻辑关系:
    逻辑与: &&
    第一个条件为假时,第二条件不用再判断,最终结果已经有;
    第一个条件为真时,第二条件必须得判断;
    逻辑或: ||

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

    上章的练习有没有做呢?

    练习题:

    1.显示/proc/meminfo文件中以不区分大小的s开头的行

    2、显示/etc/passwd中以nologin结尾的行; 

    3、取出默认shell为/sbin/nologin的用户列表

    4、显示/boot/grub/grub.cfg文件中以一个或多个空白字符开头的行;

  • 相关阅读:
    Spacemacs配置yasnippe插件
    设置SSH只允许指定IP才能访问
    firewall的规则设置与命令(白名单设置)
    Docker存储驱动介绍
    elasticsearch启动常见错误
    ES系列:解决Exception in thread “main” java.nio.file.AccessDeniedException: /usr/local/elasticsearch
    ELK6.3.2搭建配置文件篇(filebeat版)
    Linux:sudo,没有找到有效的 sudoers 资源。
    Filebeat安装及使用
    elk + filebeat,6.3.2版本简单搭建,实现我们自己的集中式日志系统
  • 原文地址:https://www.cnblogs.com/X404/p/12266177.html
Copyright © 2011-2022 走看看