Linux-2018-spring-3-13

来自SUDA-HLT
跳到导航 跳到搜索

一、复习上节课的内容

  • 硬件组成
  • 操作系统的功能(os functions)
  1、为普通用户提供界面(CLI、GUI)
  2、为程序员提供API
  3、管理硬件资源,为软件提供运行环境
  • git版本控制

二、linux/unix 环境编程

  • C语言指针
 1、多维动态数组(m*n*d*l 4维数组)int a[10]静态数组; int a[n] 不能直接这样定义
 2、当程序执行起来以后,内存分为两部分,一是栈,二是堆(动态变量区),三、代码段,四、静态变量区(全局变量)
      a、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
      b、堆区(heap)— 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。
      c、全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放
      d、文字常量区 —常量字符串就是放在这里的。程序结束后由系统释放
      e、程序代码区(text)—存放函数体的二进制代码。
    void foo(int n)
        {
         int a #static
         int b[10]  #static variable; local variable;
         int *c =(int *)malloc(n*sizeof(int))#dynamic variable
        }


  • GDB--gnu debug 调试器(调用栈:bt--backtrace)
  • gcc/g++ ---编辑器
  • vim---编辑工具(文本)
  • 上面的三个加到一起相当于一个visual studio集成环境

三、多进程编程

  • GDB
  • 版本控制


四、命令

  • shell(壳)——输入命令返回结果

linux操作系统最核心的部分kernal(内核),然后是shell,最外面的是外围的东西。shell等价于CLI linux品牌,发行版:ubuntu(常用),centos,Redhat 1、echo $SHELL

 echo 回声 ---相当于printf
 SHELL--- 环境变量
 $---取值符

2、date

3、cal---显示日历

4、calendar---提醒服务

  • shell 的功能

1、用户输入命令,回车,shell就会找命令对应的代码(可执行文件或者内嵌代码段),执行命令,返回结果。 2、shell编程(shell也是一个解释器)

  batch批处理文件