【Linux跬步积累】—— 环境变量、程序地址空间、进程地址空间、Linux2.6内核进程调度队列

🌏博客主页:PH_modest的博客主页
🚩当前专栏:Linux跬步积累
💌其他专栏:
🔴 每日一题
🟡 C++跬步积累
🟢 C语言跬步积累
🌈座右铭:广积粮,缓称王!


环境变量

基本概念

  • 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数。
  • 如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。
  • 环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性。
  • 环境变量,不是一个,而是一堆,彼此其实没有关系
  • 环境变量,一般是系统内置的具有特殊用途的变量。定义变量的本质,其实就是开辟空间,在运行期间我们的程序也能开辟空间。

操作系统/bash是用C语言写的程序,它能在运行中开辟空间吗?

答:可以,系统的环境变量,本质就是系统自己开辟空间,给他名字和内容即可!

常见环境变量

  • PATH: 指定命令的搜索路径。
  • HOME: 指定用户的主工作目录(即用户登录到Linux系统中的默认所处目录)。
  • SHELL: 当前Shell,它的值通常是/bin/bash。

查看环境变量的方法

echo $NAME //NAME:你的环境变量名称
在这里插入图片描述

测试PATH

创建test.c文件

在这里插入图片描述

对比./test执行和直接test执行

在这里插入图片描述
直接执行test没有显示任何东西,而加了./之后就可以顺利执行代码,最终打印出hello world!

这是为什么呢?

因为我们执行一个可执行程序之前必须先找到它在哪里,./就是告诉系统我们要执行的程序就位于当前目录下。

在这里插入图片描述
那为什么ls不用加./也能直接执行呢?

因为ls的路径已经被配置到环境变量当中了,系统可以直接通过环境变量PATH来找到ls命令,查看环境变量PATH我们可以看到如下内容:
在这里插入图片描述
可以看到环境变量PATH当中有多条路径,这些路径由冒号隔开,当你使用ls命令的时候,系统就会查看环境变量PATH,然后默认从左到右依次在各个路径下查找。
而ls命令就处于PATH当中的某一路径下,所以就算ls命令不带路径执行,系统也是能够找到的。
在这里插入图片描述

那可不可以让我们自己的可执行程序也不用带路径就可以执行呢?

当然可以,有两种方法:

方法一:直接将可执行程序拷贝到环境变量PATH的某一路径下。

既然在未指定路径的情况下,系统会根据环境变量PATH当中的路径进行查找,那我们就可以将我们的可执行程序拷贝到PATH的某一路径下,此后我们的可执行程序不带路径系统也可以找到了。

[_HPH@iZbp1ezziqb3x7ubzpkn9wZ demo-8-15]$ sudo cp test /usr/bin

方法二: 将可执行程序所在的目录导入到环境变量PATH中。

将可执行程序所在的目录导入到环境变量PATH当中,这样一来,没有指定路径时,系统就会来到该目录下进行查找了。

[_HPH@iZbp1ezziqb3x7ubzpkn9wZ demo-8-15]$ export PATH=$PATH:/home/_HPH/dirforproc/ENV

测试HOME

任何一个用户在运行系统登录时都有自己的主工作目录(家目录),环境变量HOME当中即保存的改用户的主工作目录。

普通用户示例:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PH_modest

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值