zoukankan      html  css  js  c++  java
  • shell笔记_编程原理

    编程原理:

    1、编程介绍

           早期编程:

                  驱动       硬件默认是不能使用的;

                       不同的厂家硬件设备之间需要进行指令沟通,我们需要驱动程序来进行“翻译”;

                  更趋近与硬件开发的工程师,要学习“汇编语言”;而“汇编语言”被厂家所限制;C C++ 的底层就是汇编语言;

           现在编程:

                  基于高级语言,以及超高级语言,更好的让程序员能够的实现编程功能;

           编程语言的分类:

                  高级语言、超高级语言需要*翻译*成计算机可读的语言(二进制指令)

                  解释型 --  逐行翻译,逐行执行  shell python JAVA

                         bash -x filename.sh

                  编译型 --  一次编译,全部执行  C语言 C++  C# JAVA

                 

                  程序 = 指令 + 数据

                  面向对象 -- 侧重于数据的编程语言

                  面向过程 -- 侧重于指令

           编程语言的执行方式:

                  【一行一行】

                  1、顺序执行

                  2、循环执行 -- *for(遍历)* while(循环条件) until(和while相反)

                  3、选择执行--分支 if *case*

                 

    2、shell脚本语言介绍

           优点:调用os(操作系统)的命令行,来实现所有功能;

           缺点:没有库调用(区分Python)

           shell脚本包括:1、*命令*(非常重要) 2、变量(全局变量、局部变量、本地变量、传参) 3、逻辑关系

          

           shell的第一句话!!!(必须写)

           #!/bin/bash  --  定义脚本解释器 (普遍认为#为注释行,这里特殊)shebang

           #!/usr/bin/python

           /etc/shells   --  查看当前系统支持的shell程序

           echo $SHELL  --   查当前会话的shell程序

           /etc/passwd  --  制定了用户默认支持的shell程序(/sbin/nologin)

           shell 的执行:

                  1、bash命令来执行脚本

                         -n  查看shell脚本的逻辑错误(注意:单词写错可不管)

                         -x  逐行显示执行的脚本程序(方便拍错)

                  2、授权 chmod u+x  filename.sh

                         使用全路径执行脚本,即可

    3、变量

           环境变量

           局部变量  declare 命令 -- 定义变量类型

           本地变量  local 在函数中使用

           变量类型:

                  数值型:

                         1、整形  int

                         2、浮点型  float

                         3、布尔值  0 1 (真 假) (True False)

                  字符串:

                         1、普通字符及字符串

                         2、数组

                  编程语言的分类:

                         强类型语言  --  数值必须被定义,才能进行处理或运算

                         弱类型语言  --  编程语言可以自动识别变量类型

                         【*多态* 一个数据具有多个属性,而最后使用的属性取决于和它进行运算的数据】

           传参

                  $?  --  上一条命令的执行状态 0 正确 1-255 错误

                  $1  $2 ... ${10}  --  命令后面传入脚本的数据,以空格为分隔符

                  $# --  统计传参数量        ${$#}  ?

                  $* --  表示所有的传参,所有的传参以字符串形式进行输出

                  $@ -- 表示所有传参,将所有的传参以列表的形式进行输出

                  【工作中要对所有的传参进行操作的时候,就要考虑$*和$@】

           定义变量格式:

                  NAME=VALUE  (一个等号叫赋值,两个等号叫判断)

                  我们通过命令declare 定义变量类型

                  declare -i 整数   int()  str()

                  declare -a 数组

           变量命令:

                  1、下划线的方式指定变量名称

                  2、驼峰命名方式

    4、test文件测试、条件判断

           在脚本中,我们需要进行 语句分支; 说白了,就要做判断

           判断就是使用test命令来实现;

           使用格式:

                  1、test [option] file

                  2、[ 条件语句 ]

                  【什么时候加 [  ] 什么时候不加 [  ] ?】

           常见的test选项:

                  比较选项:

                         -eq 等于

                         -ne 不等于

                         -gt 大于

                         -ge 大于等于

                         -lt 小于

                         -le 小于等于

                  判断选项:

                         -f 判断是否为普通文件

                         -d 判断是否为目录文件

                         -L  判断是否为连接文件

                         -r -w -x  判断文件是否具有 读 写 执行 权限

                  关联选项:

                         -o  或

                         -a  与

                         !    非

                  字符串判断:

                         =  判断两边的字符串是否相同

                         !=  不等于

                         -z  判断字符串是否存在

                         -n  和 -z 相反,存在为假,不存在为真

    5、逻辑运算

           与   &&   : 两边的命令,都为真,结果才是真

           或   ||       : 两边的命令,一边为真,就是真,同时为假,才是假

           非   !=

           这个逻辑运算符,前后对接的都是单独存在的命令;

          

           [ $? -eq 0 ] && exit 0 || exit 1

    6、算术运算

           *let 1+1

                  let a=1+1

                  echo $a

           expr 1*1

                  expr 1 * 10

           *$[$1+10]

                  a=$[2+3]

                  echo $a

           $(($1/$2))

                  a=$((3/2))

                  echo $a

           + - * / % **

  • 相关阅读:
    2018-2019-1 20165313 实验三 实时系统
    2018-2019-1 20165313 《信息安全系统设计基础》第七周学习总结”
    2018-2019-1 20165313 20165312 20165322 实验二 固件程序设计
    2018-2019-1 20165313 《信息安全系统设计基础》第五周学习总结
    2018-2019-1 20165228 《信息安全系统设计基础》第四周学习总结
    BUUCTF 相册 WriteUp
    BUUCTF Youngter-drive WriteUp
    word插入照片格式混乱的解决
    20181218 实验二《Python程序设计》实验报告
    20181218 实验一《Python程序设计》实验报告
  • 原文地址:https://www.cnblogs.com/baocx/p/11400643.html
Copyright © 2011-2022 走看看