国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

寧波網(wǎng)站建設(shè)公司軟文范例大全1000字

寧波網(wǎng)站建設(shè)公司,軟文范例大全1000字,西部數(shù)碼網(wǎng)站開發(fā)管理助手,wordpress替代軟件【Linux進(jìn)程篇】環(huán)境變量 目錄 【Linux進(jìn)程篇】環(huán)境變量基本概念常見環(huán)境變量查看環(huán)境變量方法測(cè)試PATH測(cè)試HOME測(cè)試SHELL和環(huán)境變量相關(guān)的命令環(huán)境變量的組織方式通過代碼如何獲取環(huán)境變量命令行參數(shù)命令行第三個(gè)參數(shù)通過第三方變量environ獲取 本地變量通過系統(tǒng)調(diào)用獲取或設(shè)置…

【Linux進(jìn)程篇】環(huán)境變量

目錄

  • 【Linux進(jìn)程篇】環(huán)境變量
      • 基本概念
      • 常見環(huán)境變量
      • 查看環(huán)境變量方法
      • 測(cè)試PATH
      • 測(cè)試HOME
      • 測(cè)試SHELL
      • 和環(huán)境變量相關(guān)的命令
      • 環(huán)境變量的組織方式
      • 通過代碼如何獲取環(huán)境變量
        • 命令行參數(shù)
          • 命令行第三個(gè)參數(shù)
          • 通過第三方變量environ獲取
      • 本地變量
      • 通過系統(tǒng)調(diào)用獲取或設(shè)置環(huán)境變量
      • 環(huán)境變量通常是具有全局屬性的
      • 驗(yàn)證子進(jìn)程會(huì)繼承父進(jìn)程的環(huán)境變量
      • 驗(yàn)證子進(jìn)程不會(huì)繼承父進(jìn)程的本地變量

作者:愛寫代碼的剛子
時(shí)間:2023.8.13
前言:本篇博客主要介紹操作系統(tǒng)中環(huán)境變量有關(guān)的知識(shí),了解環(huán)境變量有關(guān)的指令。

基本概念

  • 環(huán)境變量(environment variables)一般是指在操作系統(tǒng)中用來指定操作系統(tǒng)運(yùn)行環(huán)境的一些參數(shù)
  • 如:我們?cè)诰帉慍/C++代碼的時(shí)候,在鏈接的時(shí)候,從來不知道我們的所鏈接的動(dòng)態(tài)靜態(tài)庫在哪里,但是照樣可以鏈接成功,生成可執(zhí)行程序,原因就是有相關(guān)環(huán)境變量幫助編譯器進(jìn)行查找。
  • 環(huán)境變量通常具有某些特殊用途,還有在系統(tǒng)當(dāng)中通常具有全局特性

常見環(huán)境變量

  • PATH : Linux系統(tǒng)的指令搜索路徑
  • HOME : 指定用戶的主工作目錄(即用戶登陸到Linux系統(tǒng)中時(shí),默認(rèn)的目錄)
  • SHELL : 當(dāng)前Shell,它的值通常是/bin/bash。

查看環(huán)境變量方法

  • echo $NAME //NAME:你的環(huán)境變量名稱
    在這里插入圖片描述

測(cè)試PATH

添加PATH

  • 注意不能寫做:PATH=新路徑名稱,否則之前的PATH將會(huì)全部清空
    正確寫法:
    在這里插入圖片描述
    直接運(yùn)行test.exe文件:
    在這里插入圖片描述

此環(huán)境變量是內(nèi)存級(jí)別的,當(dāng)用戶如果不小心改錯(cuò)了重新登陸Xshell即可。(系統(tǒng)文件中已經(jīng)預(yù)存好了環(huán)境變量)

測(cè)試HOME

用root和普通用戶,分別執(zhí)行 echo $HOME ,對(duì)比差異
在這里插入圖片描述
在這里插入圖片描述

測(cè)試SHELL

在這里插入圖片描述
保存的是當(dāng)前shell的可執(zhí)行程序
. 執(zhí)行 cd ~ ; pwd,對(duì)應(yīng)~ 和 HOME 的關(guān)系

和環(huán)境變量相關(guān)的命令

  1. echo: 顯示某個(gè)環(huán)境變量值
  2. export: 設(shè)置一個(gè)新的環(huán)境變量
  3. env: 顯示所有環(huán)境變量
    在這里插入圖片描述
  • HISTSIZE Xshell能記錄的最大歷史指令條數(shù)
  • USER當(dāng)前用戶
  • LD_LIBRARY_PATH指定查找共享庫(動(dòng)態(tài)鏈接庫)時(shí)除了默認(rèn)路徑之外的其他路徑。
  • PATH可執(zhí)行程序的搜索路徑
  • LS_COLORS ls的配色方案
  • MAIL是指當(dāng)前用戶的郵件存放目錄。
  • PWD當(dāng)前所處的路徑
  • LANG用于定義系統(tǒng)的主語系環(huán)境
  • HISTCONTROL可以控制歷史的記錄方式
  • HOME用戶的主目錄(也稱家目錄)
  • SHLVL記錄了bash嵌套的層次,一般來說,我們啟動(dòng)第一個(gè)Shell時(shí)。 $SHLVL=1。如果在這個(gè)Shell中執(zhí)行腳本,腳本中的 $SHLVL=2 。
  • LOGNAME LOGNAME
  • LESSOPEN
  1. unset: 清除環(huán)境變量(unset +環(huán)境變量名)
  2. set: 顯示本地定義的shell變量和環(huán)境變量

環(huán)境變量的組織方式

請(qǐng)?zhí)砑訄D片描述
每個(gè)程序都會(huì)收到一張環(huán)境表,環(huán)境表是一個(gè)字符指針數(shù)組,每個(gè)指針指向一個(gè)以’\0’結(jié)尾的環(huán)境字符串

通過代碼如何獲取環(huán)境變量

命令行參數(shù)

main函數(shù)并不是第一個(gè)被調(diào)用的函數(shù),而是startup函數(shù)
編譯器如何知道m(xù)ain函數(shù)的參數(shù)個(gè)數(shù)?(答:條件編譯)
在這里插入圖片描述

在這里插入圖片描述

  • argc就是argv數(shù)組中的元素個(gè)數(shù),argv指針數(shù)組也叫向量表
  • 輸入./test -a -b其實(shí)是"./test -a -b",bash會(huì)將其分成三個(gè)字符串"./test" “-a” “-b”,將這些字符串初始化argv指針*數(shù)組
  • 命令行參數(shù)可以為指令、工具、軟件提供功能選項(xiàng)支持(指令可以帶不同的選項(xiàng)和命令行參數(shù)有關(guān)
    在這里插入圖片描述
命令行第三個(gè)參數(shù)

C/C++代碼會(huì)有兩張核心向量表:(1. 命令行參數(shù)表,2. 環(huán)境變量表),不要簡(jiǎn)單理解程序啟動(dòng)就是將進(jìn)程加載到內(nèi)存,而是自己的程序在啟動(dòng)時(shí),需要有人調(diào)用main函數(shù),將這兩張核心向量表傳進(jìn)來
在這里插入圖片描述

在這里插入圖片描述

  • 我們所運(yùn)行的進(jìn)程,都是子進(jìn)程,bash本身在啟動(dòng)的時(shí)候會(huì)從操作系統(tǒng)的配置文件中讀取環(huán)境變量信息,子進(jìn)程會(huì)繼承父進(jìn)程交給我們的環(huán)境變量,我們定好的環(huán)境變量可以讓所有的子進(jìn)程繼承下去,所以環(huán)境變量具有全局屬性
  • 但是注意!環(huán)境變量也是數(shù)據(jù),默認(rèn)情況下是父子共享的,由于進(jìn)程具有獨(dú)立性,創(chuàng)建完子進(jìn)程后,如果想對(duì)環(huán)境變量進(jìn)行修改,是不能影響父進(jìn)程的,因?yàn)闀?huì)寫實(shí)拷貝

環(huán)境變量被繼承通常有兩種方式:1. 直接繼承 2. main函數(shù)傳參

通過第三方變量environ獲取
#include <stdio.h>
int main(int argc, char *argv[])
{extern char **environ;int i = 0;for(; environ[i]; i++){printf("%s\n", environ[i]);}return 0;
}

在這里插入圖片描述

libc中定義的全局變量environ指向環(huán)境變量表,environ沒有包含在任何頭文件中,所以在使用時(shí)要用extern聲明。

程序在編譯過程中會(huì)鏈接C庫, 所以, extren本身就是說我有一個(gè)什么樣子的變量, 然后在鏈接的過程當(dāng)中在 C庫可以找到這個(gè)是正常的。

本地變量

  • 直接在命令行定義的變量叫做本地變量:
    在這里插入圖片描述
  • set查看本地變量和環(huán)境變量
    在這里插入圖片描述

在這里插入圖片描述

本地變量是不會(huì)被子進(jìn)程繼承的

通過系統(tǒng)調(diào)用獲取或設(shè)置環(huán)境變量

  • putenv("環(huán)境變量=value")

  • getenv("環(huán)境變量")
    在這里插入圖片描述
    在這里插入圖片描述

  • 可以通過比較getenv(“USER”)來判斷登陸用戶是不是正確的,和權(quán)限建立起連接

常用getenv和putenv函數(shù)來訪問特定的環(huán)境變量。

環(huán)境變量通常是具有全局屬性的

  • 環(huán)境變量是系統(tǒng)提供的一組name=value形式的變量,不同的環(huán)境變量有不同的用戶,通常具有全局屬性。
  • 環(huán)境變量通常具有全局屬性,可以被子進(jìn)程繼承下去

驗(yàn)證子進(jìn)程會(huì)繼承父進(jìn)程的環(huán)境變量

  • 導(dǎo)入環(huán)境變量:
    在這里插入圖片描述
  • 運(yùn)行test:
    在這里插入圖片描述
    子進(jìn)程是可以繼承父進(jìn)程的環(huán)境變量的

驗(yàn)證子進(jìn)程不會(huì)繼承父進(jìn)程的本地變量

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
雖然子進(jìn)程不會(huì)繼承父進(jìn)程的本地變量,但是我們可以向子進(jìn)程中導(dǎo)入父進(jìn)程的本地變量
在這里插入圖片描述

【問題】:echo也是bash的子進(jìn)程,那為什么echo能拿到并顯示父進(jìn)程的本地變量呢?

在這里插入圖片描述
答:命令行上的指令并不一定都需要?jiǎng)?chuàng)建子進(jìn)程,所以命令分為兩種命令:

  • 常規(guī)命令——通過子進(jìn)程創(chuàng)建來完成
  • 內(nèi)建命令——bash不創(chuàng)建子進(jìn)程,而是由自己親自執(zhí)行,類似于bash調(diào)用自己的寫的,或者系統(tǒng)提供的函數(shù)(cd指令、echo指令)

所以echo是內(nèi)建命令,自己獲取自己的本地變量,不創(chuàng)建子進(jìn)程

【附】:
chdir函數(shù)用于改變當(dāng)前工作目錄。調(diào)用參數(shù)是指向目錄的指針,調(diào)用進(jìn)程需要有搜索整個(gè)目錄的權(quán)限。每個(gè)進(jìn)程都具有一個(gè)當(dāng)前工作目錄。在解析相對(duì)目錄引用時(shí),該目錄是搜索路徑的開始之處。如果調(diào)用進(jìn)程更改了目錄,則它只對(duì)該進(jìn)程有效,而不能影響調(diào)用它的那個(gè)進(jìn)程。在退出程序時(shí),shell還會(huì)返回開始時(shí)的那個(gè)工作目錄。


http://m.aloenet.com.cn/news/28530.html

相關(guān)文章:

  • 大連企業(yè)做網(wǎng)站最新軍事新聞 今日 最新消息
  • 婚戀網(wǎng)站女孩子做美容安卓?jī)?yōu)化大師官方版
  • 保定定興網(wǎng)站建設(shè)對(duì)百度競(jìng)價(jià)排名的看法
  • 織夢(mèng)的手機(jī)端網(wǎng)站網(wǎng)站開發(fā)的步驟
  • 食品網(wǎng)站建設(shè)策劃書百度問答庫
  • 網(wǎng)站沒有備案可以做百度推廣嗎最吸引人的引流話術(shù)
  • 青島網(wǎng)站運(yùn)營(yíng)推廣關(guān)鍵詞排名方案
  • 合肥建站平臺(tái)windows優(yōu)化大師官方免費(fèi)
  • html網(wǎng)站開發(fā)中的應(yīng)用百度高級(jí)搜索
  • 濟(jì)南網(wǎng)站設(shè)計(jì)建設(shè)公司百度營(yíng)銷推廣登錄平臺(tái)
  • 建設(shè)資格執(zhí)業(yè)注冊(cè)中心網(wǎng)站長(zhǎng)沙seo網(wǎng)絡(luò)推廣
  • 網(wǎng)站上的搜索怎么做青島網(wǎng)站快速排名提升
  • 網(wǎng)站建設(shè)周期重慶seo網(wǎng)絡(luò)推廣關(guān)鍵詞
  • swf做網(wǎng)站頭網(wǎng)絡(luò)促銷
  • 知名商城網(wǎng)站建設(shè)公司seo搜狗
  • 東莞設(shè)計(jì)網(wǎng)站長(zhǎng)沙網(wǎng)站優(yōu)化推廣
  • 17網(wǎng)站一起做網(wǎng)店 每日新款網(wǎng)站免費(fèi)推廣網(wǎng)站
  • 高州做網(wǎng)站seo咨詢茂名
  • 可以免費(fèi)建手機(jī)網(wǎng)站seo優(yōu)化網(wǎng)站
  • 最新網(wǎng)站源碼營(yíng)銷網(wǎng)站建設(shè)方案
  • 武漢市網(wǎng)站制作寧波seo推廣咨詢
  • 網(wǎng)站制作要多少錢線上營(yíng)銷工具
  • 有域名自己做網(wǎng)站嗎網(wǎng)絡(luò)推廣長(zhǎng)沙網(wǎng)絡(luò)推廣
  • 各省備案網(wǎng)站怎么用模板做網(wǎng)站
  • 手機(jī)網(wǎng)站制作代理公關(guān)公司排名
  • 廣州官網(wǎng)建設(shè)seo搜索優(yōu)化是什么意思
  • 知識(shí)付費(fèi)網(wǎng)站開發(fā)教程百度搜索提交入口
  • 做網(wǎng)站鏈接容易嗎百度手機(jī)瀏覽器下載
  • 網(wǎng)頁設(shè)計(jì)心得體會(huì)報(bào)告怎么寫怎么理解搜索引擎優(yōu)化
  • 網(wǎng)站制作價(jià)格與售后視頻網(wǎng)站seo怎么做