• Linux之IFS间隔符、C编程、gdb调试


    1 间隔符

    在shell下的for循环语句中,容器中,各个元素之间 是通过 间隔符 来分开的

    默认情况下:读取 列表中的值----以 空格、TAB、换行  为间隔符
    列表可以为:
        常量
        变量
        某个命令的输出结果
        某个目录下的所有文件
        
    临时更改 间隔符:
    IFS.OLD=$IFS
    IFS=$'\n'    

    IFS=$IFS.OLD        //换回 默认值了

    注意:---设置新的 间隔符的方法
    IFS=:
    IFS=$'\n':;"      -----表示间隔符为 换回 冒号 分号 双引号


    题目:
    1 先将passwd文件中包含root的每一行打印出来
    2 再将该行中的每一个字段打印出来


    脚本代码:
    #!/bin/bash
    IFS_OLD=$IFS                            ----给间隔符 做备份
    IFS=$'\n':                                ----让间隔符为 换行 和 冒号
    for temp in `cat /etc/passwd | grep root`
    do
        echo word:$temp    
    done
    IFS=$IFS_OLD                            ----恢复默认的 间隔符
    exit 0

    2  Linux下C语言编程
    1 编译步骤
      编写源程序hello.c
      编译:gcc -g -o hello.out hello.c
            -g 说明带调试信息,以后可以使用gdb进行调试
            -o 后面跟的是编译出来的可执行文件名
            最后跟的是需要编译的源程序名称,可以有多个  
            
    2 gdb的使用
      gdb hello.out
      b 1        //设置断点   可以是 行号  函数名
      run   //从头开始  调试运行        //还有版本 可以使用 start  不设断点,也会停在第1条 语句上(一般为赋值语句)
      list 1    //显示10行  ---问题:如果是多文件呢
      next        //下一步   注意:回车----自动执行上1条命令
      step        //进入 函数
      finish    //跳出本函数,即 从当前函数 返回
      bt        //backtrace   函数调用栈 即: 回去的踪迹
      i locals        //信息 局部变量  即:查看 局部变量  
      print result    //打印 变量
      
      set var sum=0        //设置变量的值
      或p result=33     //同上
      或p printf("result = %d\n",result)
      
      frame 2      //查看其它函数下的局部变量时,先要切换 栈帧frame
      或f 2
      
      display sum    //每次停下来,都显示sum的值
      undisplay 取消显示
      
      continu 或 c         //运行到 下1个断点     一般,设置个新 断点,然后continue
      
      i breakpoints   //查看所有断点信息
      delete breakpoints 2  //删除断点2
      delete breakpoints  //删除所有断点
      
      break 9 if sum!=0        //break  ...  if
      
      disable breakpoints 2
      enable breakpoints 2
      
      
      x/7b  array1    //打印存储器内容    7组  每组为1个字节   地址,如数组名
      watch array1[5]
      info watchpoints  //查看所有的 观察点
     
     quit   //退出 gdb 
      
    3 makefile的使用
    编辑makefile

    all:
        gcc -g -o aaa.out hello.c
    clean:
        rm *.out        
            
    注意:
    1) all行不能少
    2) 第2行是命令,前面必须用TAB键进行分隔,不能用空格        
    3) 使用时,直接运行make就会自动调用该makefile文件的规则进行编译
     

  • 相关阅读:
    # 【Android】逆向自动化
    一览8个 NFT 分析平台
    爬虫——动作链、xpath、打码平台使用
    Hadoop、Hive、Spark是什么关系
    【国密SM2】基于Hutool的SM2公私钥生成、签名验签(二十行代码搞定)
    【HTML基础】个人比较容易忘记的零碎知识点
    [JAVAEE]—进程和多线程的认识
    2020长三角区块链应用创新大赛复赛第三场于能链科技成功举办!
    Kong实现禁止国外IP访问
    面向6G时代新通信系统的内生感知
  • 原文地址:https://blog.csdn.net/qq_38220914/article/details/127711977