• 编程原理


    1.编程介绍:

        早期编程:驱动   硬件默认时不能使用的;

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

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

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

         编程语言的分类:

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

                         解释型 —— 逐行翻译、逐行执行 shell python Java

                         程序 = 指令 + 数据

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

                         面向过程 ---侧重于指令

      编程语言的执行方式:(一行一行)
                      1.顺序执行                
                      2.循环执行-- *for while untile
                      3.选择执行--分支        
             添加用户
      if id $* &>/dev/null;then
             echo "这个用户已经存在"
      else
              for i in $*;do
                   userass $i
                   echo"123456"|passwd --stdin "$i" &> /sev/null
                   echo "用户 $i 添加成功“
              done
              exit 0
      fi
    2.shell脚本语言介绍

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

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

             shell脚本包括:1.*命令*(非常重要)

             tar -cvzf /tmp/etc.bak /etc/

           

         判断文件是否存在,如果存在覆盖

                                      2.变量(全局变量、局部变量、本地变量、传参)

                                      3.逻辑关系

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

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

            #!/usr/bin/python  --python解释器

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

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

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

             shell 的执行:

                               1. bash命令来执行脚本

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

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

                                2.授权chmod u +x filename.sh

                                                     使用全路径执行脚本即可


    3.变量
              环境变量

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

              本地变量 local 在函数中使用

              变量类型:

                              数值型:

                                           1.整型

                                           2.浮点型

                                           3.布尔型 (0 真 1 假)(True False)

                              字符串:

                                           1.普通字符集字符串

                                           2.数组

                              编程语言的分类:

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

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

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

               传参

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

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

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

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

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

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

            定义变量格式:

                         NAME=VALUE  

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

                         declare -i a=10 int() str()

                         declare -i  整数

                         declare -a 数组

            变量命令:

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

                         2.驼峰命名方式

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

               在脚本中,我们需要进行语句分支;说白了,就要做判,判断就是使用test命令来实现;

              使用格式:

                           1.test[option] file

                           2.[条件语句]

               常见的test选项:

                             1.比较选项:

                                         -eq 等于

                                         -ne  不等于

                                         -gt   大于

                                         -ge  大于等于

                                          -lt  小于

                                          -le  小于等于

                              2.判断选项

                                          -f  判断是否为普通文件

                                          -d 判断是否为目录文件

                                          -L 判断是否为连接文件

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

                               3.关联选项

                                        -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

                       

                              

  • 相关阅读:
    使用VMware 15 安装虚拟机和使用CentOS 8
    .Net工具类--表达式目录树解析DataReader和DataTable
    .Net 获取当前周是第几周
    使用Net Mail发送邮件
    ASP.NET Core 中的 Razor 文件编译
    Sql去重一些技巧
    手动实现一个简单的IOC容器
    Portswigger-web-security-academy:OAth authentication vulnerable
    Portswigger-web-security-academy:ssrf
    Portswigger-web-security-academy:os command injection
  • 原文地址:https://www.cnblogs.com/azuressy/p/11344834.html
Copyright © 2020-2023  润新知