Linux:环境变量

优先级

  1. 为什么需要优先级?
      答:资源【网卡、外设、CPU等】太少,为保证合理分配,所以需要优先级。
  2. 查看进程:ps -l
  3. 优先级的属性:
  • PRI:优先级:数字越小,优先级越高。
  • NI:nice值,优先级的修正数据,新的优先级要加的值。为负,则表明要PRI值要变小,优先级要变大。
  1. 如何调整进程优先级?
    答:有接口,命令top 进入,r,输入进程PID,再输入调整值,使优先级值改变。
  2. 优先值高(小)的一定优先吗?
      答:优先级再怎么设置也只能是相对优先级,否则会出现“饥饿问题”。因为进程需均衡享受资源,所以还会有别的调度算法。

环境变量:文件路径

  1. 为什么自己写的文件执行要用 ./,而系统命令直接就可以?
      答:./是表明路径,而系统命令能直接执行是因为配置了环境变量。
  2. 拓展:安装文件的本质是什么?
      答:安装过程:其实是拷贝文件到系统环境变量的过程。
  3. 添加环境变量的方式:
    export PATH=$PATH:路径
  4. 查看环境变量的方式:
    env:查看全部
    echo $name
  5. 环境变量的本质:
      答: 我们编程时创建变量是为了在内存上开辟空间,而环境变量的本质也是OS在内存/磁盘文件中开辟的空间,它开辟空间是为了保存系统相关的数据。环境变量是操作系统开辟的空间,保存KV值,包括变量名和数据。
  6. Session环境变量是什么?
      答:系统上存在一种的只与本次登陆(session)有关的环境变量。
  7. 如何玩(验证)Session变量?
      答:可直接在命令行定义变量,命令行定义的变量:一般称为【本地变量】。可用echo查看。再次登陆就没有了。解决办法:export PATH=$PATH:路径,可设session变量为环境变量。不想用可以用unset取消本地或环境变量。
  • VIM编辑器下多行注释的方法:

1.ctrl+v:进入列模式
2. 大写I插入模式:// 或 #
3. ESC:按完才生效

实验:代码获取环境变量

  • 预备知识点:
  1. main函数可携带参数:argc、*argv[]。
  2. argc表示数组中有几个值。argv是指针数组。指向的区域存多个数组的第一个元素地址。

char* a[10]:[]优先级高于*,所以整体是数组,它的内容是char*,指针数组,内含多个字符串首地址。

  • 步骤:
  1. 编写C程序
    请添加图片描述
    根据argc去拿字符串数组中每个首元素地址。
  2. 编译后运行:
    请添加图片描述
    发现对于字符串和字符的命令都能拿到。
  3. 如下图示:argv最后一个是NULL。
    请添加图片描述
    argc用来表明个数,但是不用argc也可以,但是用argc使得main中可以判断传参数量是否是你想要的个数,且习惯上传数组多给一个数量参数很合适。
  • 那么拿到这些参数可以做什么?
      答:可以通过不同命令行参数,使得main执行不同功能。Linux【选项】的本质就是区分命令行参数执行不同功能。

环境变量的组织方式:

  1. 环境变量的组织方式是什么?
      答:如上命令行参数的实验,本质和main中不同命令选项一样。环境变量本质是指针数组表,如实验中的char* argv[],指向字符串首地址。
    请添加图片描述
  2. main()中如何输出env?
      答: main()函数还直接输出传递环境变量:参数 char *env[]
    这样可以直接输出env环境变量,和你在bash命令行中输出的结果一样。

a. vim 编写C程序
请添加图片描述

b. 执行:
请添加图片描述

c. 结果
请添加图片描述

  • 为什么可以这样做?
    因为环境变量有全局性。,extern方式可以引入全局变量。
  1. 最常用的环境变量获取方式:
    **getenv:**头文件在stdlib.h
    请添加图片描述
    效果:
    请添加图片描述
    显然,这样获取环境变量更加灵活。它的本质也是使用总的env环境变量。
  • 扩展:
    命令行上启动的进程,父进程都是bash。
  1. 如何验证环境变量具有全局属性?
      答:export导入环境变量,子进程中可以输出、可以找到新导入的环境变量。

  2. 系统配置环境变量文件:
    ~ /.bashsrc :系统的环境变量
    ~/.bash_profile:shell的环境变量
    /etc/bashsrc:导入环境变量操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值