环境变量与命令行参数
文章目录
- 环境变量与命令行参数
- 一、环境变量
- 1、查看环境变量的命令
- 2、Linux下常见的环境变量
- I. PATH
- II. HOME
- III. PWD
- IV. LANG
- V. SHELL
- VI. HISTSIZE
- 3、查看环境变量的函数
- 4、本地变量
- 本地变量相关命令
- 二、命令行参数
- 命令行参数的作用
环境变量与命令行参数
一、环境变量
用来配置操作系统运行环境的参数
1、查看环境变量的命令
env
命令:用来查看当前用户的所有环境变量;echo $环境变量名
:直接查看指定环境变量的值。
2、Linux下常见的环境变量
I. PATH
用来保存可执行程序的默认搜索目录。其中的冒号
:
是用来分隔多个搜索路径的。
Linux下的大部分shell命令,以及用户写的程序,本质都叫做可执行程序,而shell命令直接输入就可以执行,比如ll、ps
,而用户写的程序需要./xxx
来执行,根本原因在于:用户程序的存储路径并不在PATH中!
解决方法有三种:
通过
cp
指令将用户程序拷贝到任一默认搜索路径下。通过
PATH=$PATH:xxx
将程序所在的xxx路径添加到默认搜索路径中。通过修改配置文件添加路径(永久生效)。
注:第二种修改环境变量的方式是一种临时修改,在用户退出后就会恢复成配置文件中的路径;
II. HOME
用来保存当前用户的主工作目录,对应cd ~。
III. PWD
用来保存当前所在目录。
IV. LANG
用来保存当前操作系统使用的字符集。
V. SHELL
用来保存当前用户使用的是哪一种shell。
通过cat /etc/shells
可以查看当前操作系统支持哪些shell。
VI. HISTSIZE
用来记录操作系统保存历史命令的数目。
3、查看环境变量的函数
char *getenv(const char *name)
name:环境变量名
4、本地变量
Linux下除了环境变量,还有本地变量的概念。
所谓本地变量,就是在shell命令行下直接定义的变量,比如:
注意:本地变量一般使用大写,且定义时不能使用空格,否则就会被当成待执行的命令。
本地变量相关命令
1、set
:查看所有的本地变量(包含环境变量);
2、unset 变量名
:删除本地变量;
3、export 本地变量
:将本地变量导出成环境变量。或者直接使用export定义环境变量,比如:export VAL=123
。
二、命令行参数
即命令行中给定的参数,本质上就是进程运行时传递给main函数的三个参数。
int main(int argc, char* argv[], char* env[])
argc
:argv
中有效字符串的个数。argv
:在命令行启动该程序时传递了哪些参数(字符串形式存储),默认第一个字符串是执行的命令,然后是跟在命令后的参数(相当于Linux指令的选项),最后一个指针是NULL。
env
:环境变量,如果忽略,则进程获得的环境变量与env
命令获取到的环境变量相同。
命令行参数的作用
有了命令行参数,程序就可以根据不同的参数设计出不同的业务逻辑(本质上Linux中的指令选项就是这个实现原理,如ls -a)。
环境变量与命令行参数相关推荐
- .NET Core采用的全新配置系统[5]: 聊聊默认支持的各种配置源[内存变量,环境变量和命令行参数]...
较之传统通过App.config和Web.config这两个XML文件承载的配置系统,.NET Core采用的这个全新的配置模型的最大一个优势就是针对多种不同配置源的支持.我们可以将内存变量.命令行参 ...
- Win32汇编——过程控制(环境变量、命令行参数、可执行文件执行)
1.环境变量 按用途可分为:与系统运行相关.反应系统状态以及应用程序自定义三种环境变量 操作函数: 获取一个环境变量的值:GetEnvironmentVariable 设置新变量或删除已有变量 :Se ...
- 【Linux】环境变量和命令行参数
文章目录 一.环境变量 1.1 基本概念 1.2 查看环境变量 1.3 环境变量:PATH 1.4 环境变量:HOME 1.5 和环境变量相关的命令 1.6 通过 C 库函数获取环境变量:getenv ...
- Linux环境变量和命令行参数
- 【C/C++】VS的cl命令 | 配置环境变量 | 使用命令行编译C/C++程序
文章目录 一.前言 二.准备 三.配置环境变量 1. 逐步配置 2. 一步到位 四.语法 更多文章 一.前言 作为一个C++ (C语言) 程序员,VS可谓是编写代码的神器(天下第一IDE!).但是它的 ...
- Mac OS : Homebrew安装,配置maven 环境变量 / FORMULA(命令行) | CASK(图形化界面)
推荐下载 Homebrew官网 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/H ...
- Linux环境变量PS1_命令行提示符设置
PS1是一个Linux终端下的一个环境变量,可以在当前命令提示符上显示所配置的信息. 例如这样: root@G470:~# 或者这样: user1@G470:~$ PS1中可以配置bash识别的转义 ...
- 如何将命令行参数传递给Node.js程序?
我有一个用Node.js编写的Web服务器,我想使用一个特定的文件夹启动. 我不确定如何在JavaScript中访问参数. 我正在像这样运行节点: $ node server.js folder 这是 ...
- 002 第一季SpringBoot2核心技术-核心功能:配置文件、Web开发(原生组件)、数据访问、单元测试、指标监控、原理解析:@Value、命令行参数、手动获取bean、自定义starter
三.核心技术之- ->核心功能 1. 配置文件 1.1 文件类型 1.1.1 properties 同以前的properties用法 优先级高于yml的方式. 1.1.2 yaml 1) 简介 ...
最新文章
- java ee 笔试题目,JSP经典笔试@题目(含答案)
- ParLECH: Parallel Long-Read Error Correction with Hadoop
- 本地存储之sessionStorage
- MySQL笔记-utf8和utfmb4
- 『TensorFlow』分布式训练_其二_单机多GPU并行GPU模式设定
- multer处理post请求的代码演示
- PHP5.3版本安装
- 基础学习:高斯混合模型GMM
- sftp配置导致ssh连接闪断
- 2020.9.28 爱客影视3.6.5-pro完整版搭建完毕带解析接口无广告
- 图片的四种格式.jpg、.gif、.png、.bmp
- 邮件安全证书(S/MIME),如何申请邮件证书
- 语法歧义现象(一):牛津逗号(Oxford Comma)
- Source Insight设置黑色背景
- 用MATLAB计算常规矩阵函数 eAt sinA
- 商标设计后一定要向商标局进行重新提交,商标持有公司变更后要及时变更商标
- 麻油是什么,怎么用?
- 2020 社招 JAVA面试题总结
- Java技能树-RE-正则应用-目录
- RS—|下载Landsat8/9数据并进行ENVI大气校正(FLAASH模型)