shell環境變數

2021-07-15 23:31:12 字數 3363 閱讀 5696

1.環境變數的定義:

環境變數一般是指在作業系統中用來指定作業系統執行環境的一些引數,如path,pwd,user,當前使用的shell名稱。系統啟動後,會產生許多環境變數,使用者可以用set命令檢視:

shell例項1:

[root@changerlee 環境變數的定義]# set

abrt_debug_log=/dev/null

bash=/bin/bash

bash_aliases=()

bash_argc=()

bash_argv=()

bash_cmds=()

bash_completion_compat_dir=/etc/bash_completion.d

bash_lineno=()

bash_rematch=()

bash_source=()

bash_versinfo=([0]="4" [1]="2" [2]="46" [3]="1" [4]="release" [5]="x86_64-redhat-linux-gnu")

bash_version='4.2.46(1)-release'

columns=96

......

2.常見的環境變數:

path:系統路徑

home:當前使用者家目錄路徑

histsize:儲存歷史記錄的條數

logname:當前登陸使用者名稱

hostname:主機名稱,如果應用程式往往從這個環境變數查取主機名稱

shell:當前使用者使用的是互動程式shell

ps1:主提示符,通常使用了乙個字串表示式

shell例項2:

[root@changerlee 環境變數的定義]# cat envin.sh

#!/bin/bash

#常用環境變數例項

echo  "系統路徑'path':$"

echo  "當前使用者家目錄'home':$"

echo  "儲存歷史記錄的條數'histsize':$histsize"

echo  "當前登陸使用者名稱'logname':$logname"

echo  "主機名'hostname':$hostname"

echo  "當前使用者使用的互動shell'shell':$shell"

echo  "當前使用者使用的語言'lang':$lang"

echo  "當前使用者使用的郵件存放目錄路'mail':$mail"

[root@changerlee 環境變數的定義]# sh envin.sh

系統路徑'path':/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

當前使用者家目錄'home':/root

儲存歷史記錄的條數'histsize':1000

當前登陸使用者名稱'logname':root

主機名'hostname':changerlee

當前使用者使用的互動shell'shell':/bin/bash

當前使用者使用的語言'lang':en_us.utf-8

當前使用者使用的郵件存放目錄路'mail':/var/spool/mail/root

shell例項3:

[root@changerlee 環境變數的定義]# echo $ps1

[\u@\h \w]\$

以上命令輸出了當前使用者的主提示符表示式,使用者可以通過修改變數ps1的方式來自定義主提示符表示式,表示式含義如下:

\u:當前使用系統的使用者

\h:當前計算機名稱

\w:當前工作路徑

\d:當前系統的日期

\$:提示符

\h:完整的計算機名稱

\t:24小時制的時間格式

\v:當前bash版本

shell例項4:

[root@changerlee 環境變數的定義]# ps1='\d \h \t \v \$'

sun jul 31 changerlee 22:40:14 4.2 #

sun jul 31 changerlee 22:41:20 4.2 #ps1='[\u@\h \w]\$'

[root@changerlee 環境變數的定義]#

shell例項5:

[root@changerlee 環境變數的定義]#echo $ps2

>

以上為輔助提示符變數,一般用於強制換行,修改如下

[root@changerlee 環境變數的定義]#ps2='#'

[root@changerlee 環境變數的定義]#\ #

[root@changerlee 環境變數的定義]#ps2='>'

[root@changerlee 環境變數的定義]#\

>

以上修改都是臨時修改,要想永久修改須通過修改配置檔案的方法:

/etc/profile:全域性使用者配置檔案。修改此檔案,生效全系統使用者

~/.bash_profile:使用者個人配置檔案。修改此檔案,生效當前使用者

/etc/bashrc:全域性環境變數配置檔案。此檔案定義了所有使用者的配置檔案

~/.bashrc:個人環境變數配置檔案。此檔案定義了使用者的環境變數

修改該後只需重新登陸文字終端即可生效

3.唯讀環境變數:

唯讀環境變數都是一些非常重要的環境變數,其值是無法修改

檢視如下:

shell例項6:

[root@changerlee 環境變數的定義]#readonly 

declare -ir bashpid

declare -r bash_completion_compat_dir="/etc/bash_completion.d"

declare -ar bash_rematch='()'

declare -ar bash_versinfo='([0]="4" [1]="2" [2]="46" [3]="1" [4]="release" [5]="x86_64-redhat-linux-gnu")'

declare -ir euid="0"

declare -ir ppid="6312"

declare -r shellopts="braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor"

declare -ir uid="0"

shell環境變數

環境變數 和 自定義變數 子程序僅會繼承父程序的環境變數,而不會繼承父程序的自定義變數,所以,你原本bash中的自定義變數在進入了子程序後就會消失不見,一直到你離開子程序並回到原本的父程序之後,這個變數才會出現。1.用env檢視預設的環境變數及其說明 export也可檢視,但是輸出的內容比env多 ...

shell 環境變數

環境變數 檢視所有環境變數 oldbing 愛生活 愛冰冰 oldbing 愛生活 愛冰冰 echo oldbing cdecho path hostname whoami echo path hostname whoami echo path hostname whoami echo path h...

shell環境變數

shell環境變數不僅在shell程式設計方面,而且在linux系統管理方面,都起著非常重要的作用 環境變數的特殊之處僅在於它的值適用於所有由登陸程序所生產的子程序 如果要列出系統中所有的環境變數,可使用env命令 export 變數名 value 變數名 value export 變數名 decl...