淘客网站怎么做,登录注册,网站首页制作浩森宇特,cms系统设计目录
前言
基本概念理解
注意的点
查看环境变量的方法
PATH环境变量
PTAH应用系统指令
PTAH应用用户程序
命令行参数的修改#xff08;内存级#xff09;
配置文件的修改
windows环境变量 大家天天开心#x1f642;
bash进程的流程。环境变量在系统指…目录
前言
基本概念理解
注意的点
查看环境变量的方法
PATH环境变量
PTAH应用系统指令
PTAH应用用户程序
命令行参数的修改内存级
配置文件的修改
windows环境变量 大家天天开心
bash进程的流程。环境变量在系统指令和用户程序的应用。环境变量修改命令行配置文件的修改理解。
前言 明确 Linux当中70%以上的命令程序都是用C语言写的执行命令程序和运行自己写的程序没有任何区别自己程序运行必须要带路径绝对/相对都可系统指令可带可不带带不要瞎带环境变量具有全局特性是可以被子进程看到的 无论是全局变量还是局部变量子进程的代码是继承父进程的数据是拷贝的子进程和父进程的数据是相互独立的进程的独立性父进程的数据是可以被子进程看到访问修改❌子进程的数据是不能被父进程看到。每个用户启动都会有一个单独的bash进程bash单独给这个用户形成命令行参数表和环境变量表。以及配置文件都是每个用户都有一份。互相独立不影响。每开启一个终端就会有1个bash进程。一个用户也可以有多个bash进程。 回顾上篇博文 登录Linux系统创建bash进程在命令行中输入参数bash进程获取参数的路径可执行程序 可执行程序是用户自己写自己带路径可执行程序是系统指令在bash进程的上下文环境变量中找 创建子进程bash并把【命令行参数表】传给子进程main函数传参子进程接着执行自己的代码 产生这样一个问题为什么我们自己的程序运行启动的时候需要带路径但是系统的命令程序可带可不带路径❓ 回答在Linux当中存在一些全局变量的设置环境变量告诉命令行解释器bash进程应该去那些路径底下去寻找这些可执行程序。 ☞综下ls不用带路径因为ls所在的路径在环境变量当中。 基本概念理解 概念特性 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数。如我们在编写C/C代码的时候在链接的时候从来不知道我们的所链接的动态静态库在哪里但是照样可以链接成功生成可执行程序原因就是有相关环境变量帮助编译器进行查找。环境变量通常具有某些特殊用途还有在系统当中通常具有全局特性 。环境变量都是大写。 整体理解 登录Linux系统的时候OS就把系统配置已经加载到了bash进程的上下文中内存系统配置就包括环境变量。当用户在命令行解释器中输入系统命令的时候bash进程就拿到了命令行参数根据环境变量找到指令的可执行程序和路径并创建指令的子进程。bash进程会根据$PATH在自己内存的上下文 配置信息中的 各种环境变量中找到对应的环境变量并在此环境变量中找到对应的指令程序的路径和可执行程序。 环境变量的作用 bash在执行命令的时候需要先找到命令。因为要把命令所对应的二进制文件加载到内存中。bash的上下文的环境变量中维护了一批指令的路径。默认这批指令的路径是bash创建子进程的搜索路径。 找到了就加载并运行没找到就commend not fund 注意❗系统中有很多配置在我们登录Linux系统的时候已经被加载到了bash进程中内存中注意❗有部分指令程序路径就在bash进程数据内部不在环境变量PATH中不受环境变量的影响。后面讲注意❗每个用户都一套的环境变量是从bash进程中拷贝的。修改A用户底下的环境变量并不会影响B用户底下的环境变量。 其中PATH就是一个典型的环境变量☞PATH下面我们以PATH来讲解环境变量。 注意的点 注意❗系统中有很多配置在我们登录Linux系统的时候已经被加载到了bash进程中内存中。注意❗有部分指令程序路径就在bash进程数据内部不在环境变量PATH中不受环境变量的影响。后面讲。注意❗每个用户都一套的环境变量是从bash进程中拷贝的。修改A用户底下的环境变量并不会影响B用户底下的环境变量。 关于在修改环境变量中 不维护在bash进程的配置文件中的环境变量中的指令路径是不受环境变量修改的影响随时可用。命令行中修改用户A的环境变量是不会影响到A用户的bash进程/用户B进程/OS中的配置文件中的环境变量只会影响当前用户当前进程。重启之后也不会影响因为bash进程会重新读取。配置文件中修改用户A的环境变量也不是会影响其他用户的bash进程/当前运行进程/OS中的其他用户的配置文件的环境变量会影响当前用户的bash进程正在运行进程和当前用户A中配置文件重启也会影响。关键点在重启用户用户用户进程用户进程。每个用户启动都会有一个单独的bash进程bash单独给这个用户形成命令行参数表和环境变量表。以及配置文件都是每个用户都有一份。互相独立不影响。每开启一个终端就会有1个bash进程。一个用户也可以有多个bash进程 查看环境变量的方法 Linux系统登录bash进程启动OS把配置信息加载到bash进程上下文中输入指令echo信息bash在环境变量中找到的指令程序的路径运行echo的程序路劲就在bash数据段内部不在环境变量中创建echo指令的子进程bash把命令行参数给echo子进程子进程执行 PATH中有很多路径这些路径以冒号为分隔符分割划分了路径的区域。 echo $NAME //NAME:你的环境变量名称
echo $PATH //打印环境变量PATH的内容 PATH环境变量 如果我们执行我们的系统指令程序在命令行中不需要输入指令因为bash进程会到环境变量中找到指令的路径从而找到指令的可执行程序。如果我们执行用户程序环境变量中没有维护所以我们需要在命令行输入时带上路径以便于bash进程找到可执行程序。 综下所述PATH环境变量是Linux环境变量中搜索可执行程序的默认路径也是which在PATH中的搜索路径。 PTAH应用系统指令 PATH环境变量是具有全局特性的。PATH变量里面保存了指令的路径。系统中有很多配置在我们登录Linux系统的时候已经被加载到了bash进程中内存中其中包括环境变量PATH。bash在执行命令的时候需要先找到命令。因为要把命令所对应的二进制文件加载到内存中。bash的上下文的环境变量中维护了一批指令的路径。默认这批指令的路径是bash创建子进程的搜索路径。 找到了就加载并运行没找到就commend not fund PTAH应用用户程序 ❓关于我们的用户程序能否和系统指令一样呢。也不用带路径就可以运行。 修改PATH环境变量 命令行修改配置文件修改 关于命令行配置文件修改的理解关键在重启和不同的用户 每个用户启动都会有一个单独的bash进程bash单独给这个用户形成命令行参数表和环境变量表。以及配置文件都是每个用户都有一份。互相独立不影响。每开启一个终端就会有1个bash进程。一个用户也可以有多个bash进程。命令行中修改用户A的环境变量是不会影响到A用户的bash进程/用户B进程/OS中的配置文件中的环境变量只会影响当前用户当前进程。重启之后也不会影响因为bash进程会重新读取。配置文件中修改用户A的环境变量也不是会影响其他用户的bash进程/当前运行进程/OS中的其他用户的配置文件的环境变量会影响当前用户的bash进程正在运行进程和当前用户A中配置文件重启也会影响。命令行解释器就是bash进程关键点在重启用户用户用户进程用户进程。 命令行参数的修改内存级 想要在运行用户程序的时候不在加上程序路径有两种方法 拷贝用户的可执行程序到环境变量的指定路径底下添加用户的可执行程序的路径到环境变量中 ❗注意以下操作都是内存级别的默认我们查到的环境变量都是内存级。内存级别的修改只是暂时的如果我们重启Linux操作系统那么环境变量依旧是以前的没有修改的又会把配置文件没有任何修改的重新加载到内存中。 【方法1】 安装sudo cp 用户程序 /usr/bin/ 删除sudo rm /usr/bin/a.out将用户程序安装到bash的环境变量中环境变量中的指定路径下。不建议拷贝用户程序到环境变量中污染指令集。这些操作本质上都是在OS中安装卸载内存级别。在环境变量中指定路径下的拷贝和删除用户的可执行程序。 【方法2】 PARH路径路径会覆盖以前的全部路径PATH以前的所有路径新添加的路径PATH$PTAH新添加的路径简写把指定路径添加到环境变量里而不是直接让新路径把环境变量覆盖了。关于覆盖有部分指令程序路径就在bash进程数据内部不在环境变量PATH中不受环境变量的影响即便覆盖也可以运行。 【方法1】
安装sudo cp 用户程序 /usr/bin/
删除sudo rm /usr/bin/a.out 【方法2】
PARH路径路径会覆盖以前的全部路径
PATH以前的所有路径新添加的路径
PATH$PTAH新添加的路径简写 配置文件的修改 问题又出现了想要让修改的内容永久有效怎么办 最开始的环境变量不是在内存中而是在磁盘系统的对应的配置文件中。 登录Linux操作系统的时磁盘中的配置文件会加载到内存的OS中。OS会创建一个bash进程。bash进程会读取内存中OS的配置文件。bash进程会把配置文件的环境变量拷贝一份到自己的进程数据中。 每个进程使用的环境变量都是 bash/用户 内部的数据。不同的用户使用的是自己/home/xxx的配置文件每个用户都有一套每次登录都要重新读取 bash/用户自己底下 配置文件。 如果想要修改的环境变量永久有效那么就要修改 用户底下/bash 的配置文件中的环境变量那么这些配置文件在哪里呢 每个用户包括root目录下 /home/xxxx 存在2个隐藏的配置文件 .bash_profile .bashrcbash进程读取配置文件文件操作fopen等目前在命令行中查找环境变量都是内存级存在bash的上下文中修改配置文件中的环境在.bash_profile里面加上可执行程序的路径即可vim .bash_profile添加新的路径到.bash_profile旧的路径后面以冒号为分割 -rw-r--r--. 1 tangsiqi tangsiqi 193 Aug 2 2017 .bash_profile
-rw-r--r--. 1 tangsiqi tangsiqi 231 Aug 2 2017 .bashrc 【.bashrc】 .bashrc是home目录下的一个shell文件用于储存用户的个性化设置。 在bash每次启动时都会加载.bashrc文件中的内容并根据内容定制当前bash的配置和环境。 vim .bashrc 【.bash_profile】 bash_profile 只对单一用户有效文件存储位于 ~/.bash_profile 该文件是一个用户级的设置可以理解为某一个用户的 profile 目录下。 这个文件同样也可以用于配置环境变量和启动程序但只针对单个用户有效。 和 profile 文件类似bash_profile 也会在用户登录login时生效也可以用于设置环境变理。 vim .bash_profile windows环境变量 cls是清屏dir 是查看目录 系统的配置文件用户的配置文件windows底下也是有命令行解释器的cwd 感谢大家的阅读若有错误和不足欢迎指正。