Linux之进程(三)(环境变量)

这篇具有很好参考价值的文章主要介绍了Linux之进程(三)(环境变量)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、基本概念

二、环境变量

1、PATH

2、HOME

3、SHELL 

三、环境变量参数

四、argc和argv


一、基本概念

环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数。如:临时文件夹位置和系统文件夹位置等。环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性。

二、环境变量

使用env命令可以查看当前系统中的所有环境变量。

Linux之进程(三)(环境变量),Linux,linux,运维,服务器

1、PATH

要执行一个程序,那就需要先找到这个程序,怎么去找,这时候就需要带上路径,如我们经常使用的  ./  的方式。

再比如,我们使用的各种系统命令(ls, grep等),我们都知道其实它们是存在一些文件中的,我们在使用时也可以通过完整的路径去使用它们。但是运行一个程序能不能像使用命令那样只需要输入它的名字,就可以使它运行呢?

如下图:我们可以通过使用pwd的完整路径来使用pwd。

Linux之进程(三)(环境变量),Linux,linux,运维,服务器

这时,我们就可以使用PATH来帮助我们。当要求操作系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到PATH中指定的路径去找。

所以,我们写的可执行程序无法像系统命令那样使用的根本原因就是其路径不在PATH环境变量所维护的搜索路径中。

如下图:我们常使用的各种系统命令就在PATH里的各种路径中。如:/usr/bin/pwd。

Linux之进程(三)(环境变量),Linux,linux,运维,服务器

我们可以把可执行程序的路径添加到PATH中,就可以像系统命令一样使用了。如下:使用下面的命令添加。

export PATH=$PATH:路径

Linux之进程(三)(环境变量),Linux,linux,运维,服务器

2、HOME

指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)

Linux之进程(三)(环境变量),Linux,linux,运维,服务器

3、SHELL 

当前Shell,它的值通常是/bin/bash。

Linux之进程(三)(环境变量),Linux,linux,运维,服务器

和环境变量相关的命令
1、echo: 显示某个环境变量值
2、export: 设置一个新的环境变量
3、env: 显示所有环境变量
4、unset: 清除环境变量
5、set: 显示本地定义的shell变量和环境变量

三、环境变量参数

在前面的语法学习中,我们知道main函数也是存在命令行参数的,int argc 和 char* argv[]。但是事实上main函数有三个参数,还有一个就是环境变量参数 char* env[],它是用来获取环境变量的。

环境变量的组织方式:

Linux之进程(三)(环境变量),Linux,linux,运维,服务器

env是一个指针数组,它里面的指针分别指向不同的环境变量对应的字符串。

通过getenv获取环境变量

Linux之进程(三)(环境变量),Linux,linux,运维,服务器

 Linux之进程(三)(环境变量),Linux,linux,运维,服务器

通过代码获取环境变量

根据main的第三个参数来获取环境变量。

Linux之进程(三)(环境变量),Linux,linux,运维,服务器

Linux之进程(三)(环境变量),Linux,linux,运维,服务器

环境变量的全局性

环境变量是定义在系统中的变量,那它为什么在其他的进程中也有效呢?因为环境变量具有全局属性。

在命令行上运行./mytest_g的时候,bash是一个系统进程,mytest_g会变成一个进程,是bash的子进程,而环境变量具有全局属性的根本原因是会被子进程继承下去,因为环境变量定义给bash,而子进程会全部继承下去,这就被称为环境变量。所以环境变量具有全局性,而本地变量只会在当前进程有效。

四、argc和argv

上面我们讲了main函数的第三个环境变量参数,下面我们来讲一下前两个参数。这两个是命令行参数。

命令行参数实际上是把程序名和选项传递给argv的,选项多少就需要定义argv的大小。参数的意义在于可以通过命令行选项控制使其结果不同。

我们通过下面的代码来解释:

Linux之进程(三)(环境变量),Linux,linux,运维,服务器

运行程序:

Linux之进程(三)(环境变量),Linux,linux,运维,服务器

我们发现上面的和命令+选项的格式是一样的,那么这两者有什么关系吗?

其实命令后面所带的选项,就是通过命令行参数来实现的。进而通过不同的选项来实现不同的功能。文章来源地址https://www.toymoban.com/news/detail-761331.html

到了这里,关于Linux之进程(三)(环境变量)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 服务器安装 anaconda & conda: command not found [解决方案] & bashrc文件中环境变量配置错误,导致linux命令无法正常使用的解决方案

    由于连接的服务器,无法直接在anaconda官网上下载安装文件,所以使用如下方法: 之后一直按 enter ,直到出现提示要输入 yes or no ,输入 yes 显示以下信息即为安装成功 在终端输入conda info --envs查看anaconda是否安装成功,发现报错:conda: command not found 原因在于: ~/.bashrc文件没

    2024年02月06日
    浏览(56)
  • linux并发服务器 —— 多进程并发(四)

    程序是包含一系列信息的文件,描述了如何在运行时创建一个进程; 进程是正在运行的程序的实例,可以用一个程序来创建多个进程; 用户内存空间包含程序代码以及代码所使用的变量,内核数据结构用于维护进程状态信息; 进程控制块(PCB):维护进程相关的信息,tas

    2024年02月11日
    浏览(40)
  • 【Linux 服务器运维】定时任务 crontab 详解 | 文末送书

    本文思维导图概述的主要内容: 1.1 什么是 crontab Crontab 是一个在 Unix 和 Linux 操作系统上 用于定时执行任务 的工具。它允许用户创建和管理计划任务,以便在特定的时间间隔或时间点自动运行命令或脚本。Crontab 是 cron table 的缩写, cron 指的是 Unix 系统中的一个后台进程,它

    2024年02月08日
    浏览(62)
  • Linux服务器上查询进程 ps aux

    在Linux服务器上查询进程,有以下几种方法: 使用ps命令。这个命令用于报告当前系统的进程状态。可以用以下方式使用ps命令来查看进程信息: ps aux:显示系统中所有进程的信息。 ps -e:显示所有进程的信息。 ps -f:显示进程的所有信息。 ps -l:以长格式显示进程信息。

    2024年02月05日
    浏览(44)
  • 【Linux运维】shell脚本检查服务器内存和CPU利用率

    在管理服务器时候写了一个 shell脚本,在服务上实现每天凌晨3点查系统的指定文件夹下的容量大小,如果超过10G就要删除3天前的内容,还要时刻查询内存和cpu利用率,如果超过80%就要提示用户出现过载 将以上代码保存为一个.sh文件,然后通过crontab在每天凌晨3点运行即可:

    2024年02月09日
    浏览(48)
  • Linux服务器中查看进程的四种方法

    1. 使用 ps aux 命令来查看,能以简单列表的形式显示出进程信息 ps aux 用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序. ps 命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进

    2024年02月02日
    浏览(30)
  • Linux网络编程:多进程 多线程_并发服务器

    文章目录: 一:wrap常用函数封装 wrap.h  wrap.c server.c封装实现 client.c封装实现 二:多进程process并发服务器 server.c服务器 实现思路 代码逻辑  client.c客户端 三:多线程thread并发服务器 server.c服务器 实现思路 代码逻辑  client.c客户端 ​​​​   read 函数的返回值 wrap.h  wrap

    2024年02月12日
    浏览(44)
  • Linux本地部署1Panel服务器运维管理面板并实现公网访问

    1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、文件管理、数据库管理、容器管理等 下面我们介绍在Linux 本地安装1Panel 并结合cpolar 内网穿透工具实现远程访问1Panel 管理界面 执行如下命令一键安装 1Panel: 安

    2024年02月04日
    浏览(58)
  • Linux服务器常见运维性能测试(1)综合跑分unixbench、superbench

    最近需要测试一批服务器的相关硬件性能,以及在常规环境下的硬件运行稳定情况,需要持续拷机测试稳定性。所以找了一些测试用例。本次测试包括在服务器的高低温下性能记录及压力测试,高低电压下性能记录及压力测试,常规环境下CPU满载稳定运行的功率记录。 这个系

    2024年02月04日
    浏览(55)
  • 蓝易云:Linux系统sshd命令 – openssh服务器守护进程

    sshd是Linux系统中的一个守护进程,它提供了远程登录服务和安全的文件传输功能。以下是sshd的详细教程。 1. 安装openssh-server 在Debian/Ubuntu上安装openssh-server命令如下: sudo apt-get update sudo apt-get install openssh-server 在CentOS/RHEL上安装openssh-server命令如下: sudo yum update sudo yum install

    2024年02月16日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包