首頁 >運維 >linux運維 >linux etc profile是什麼

linux etc profile是什麼

藏色散人
藏色散人原創
2023-04-11 11:00:111808瀏覽

linux etc profile是linux環境變數的相關文件,在該文件中修改的內容是對所有使用者起作用的;linux使用者可以對自己的運行環境進行定制,其方法就是修改相應的系統環境變數。

linux etc profile是什麼

本教學操作環境:linux5.9.8系統、Dell G3電腦。

Linux /etc/profile檔案詳解

linux /etc/profile檔案的改變會牽涉到系統的環境,也就是有關Linux環境變數的東西,學習Linux要了解Linux profile檔案的相關原理,這裡對則以檔案進行具體分析。這裡修改會對所有用戶起作用。

  1、Linux是一個多用戶的作業系統。每個使用者登入系統後,都會有一個專用的運作環境。通常每個使用者預設的環境都是相同的,這個預設環境其實就是一組環境變數的定義。使用者可以對自己的運作環境進行客製化,其方法就是修改對應的系統環境變數。

  2、常在/etc/profile檔案中修改環境變量,這裡修改的內容是對所有使用者起作用的。以下主要操作將在該文件中進行。

  3、如何加入環境變數。

  例如新增」NAME=liheng「 。在profile檔案的最後加上如下內容export NAME=liheng

  變數值liheng可以加引號也可以不加,效果一樣。

  4、在profile檔案中新增或修改的內容需要登出系統才能生效。

  5、重複定義變數怎麼理解。

  常出現的是PATH變數的定義。

  例如:在peofile檔案預設對PATH變數都有設定PATH=¥¥¥¥¥¥¥(記不住了),以後可能在對PATH設置,一般都加在profile 檔案的最後PATH=······(打個比方)。而係統之中認定的PATH=·······¥¥¥¥¥¥¥¥¥,也就是說相同名字的環境變量,後寫入的先起作用(通俗地講)。大家一定要注意。

  6、特殊字元介紹。

  例如在profile中有以下內容,透過以下內容說明特殊符號的用法。

  export A=/q/jing:aaa/cc/ld

#  export B=.:/liheng/wang export A=/cd/cdr:$A

  大家注意紅色的符號:

  : 表示並列意義,例如A變數值有多個,用:符號進行分離。

  . 表示你操作的目前目錄。例如pap指令會找B環境變數。

  在/home鍵入pap指令,系統先在/home目錄下(即目前路徑)找出關於B 的內容,e4f8bb2685992f309e8423e5d94e80bblinuxidc. com">www.linuxidc.com如果沒有在/liheng/wang目錄下查找關於B的內容。 $ 表示該變數本次定義之前的值,例如$A代表/q/jing:aaa/cc/ld。也就是說 A=/cd/cdr:/q/jing:aaa/cc/ld

  7、使用env指令顯示所有的環境變數 。在命令提示字元下鍵入env就行了。

  set指令顯示所有本機定義的Shell變數。

  8、常見的環境變數

  PATH:決定了shell要尋找哪些目錄中尋找指令或程式

  HOME:目前使用者主目錄

MAIL:是指目前使用者的郵件存放目錄。

  SHELL:是指目前使用者用的是哪一種Shell。

  HISTSIZE:是指儲存歷史指令記錄的條數。

  LOGNAME:是指目前使用者的登入名稱。

  HOSTNAME:是指主機的名稱,許多應用程式如果要用到主機名稱的話,通常是從這個環境變數中來取得的。

  LANG/LANGUGE:是和語言相關的環境變量,使用多種語言的使用者可以修改此環境變數。

  PS1:是基本提示符,對於root使用者是#,對於一般使用者是$。

  PS2:是附屬提示符,預設是「>」。可以透過修改此環境變數來修改目前的命令符,例如下列命令會將提示符號修改成字串「Hello,My NewPrompt :) 」。

  # PS1=” Hello,My NewPrompt :) “

  9、使用修改.bashrc檔案(在使用者的家目錄下)進行環境變數的編輯,只對目前使用者有用。使用修改 /etc/profile 檔案進行環境變數的編輯,是對所有使用者有用。大家一定要注意差別。

  10、Linux profile檔案在系統啟動時將會運作。大家可以在裡面加入其他指令,但一定要加正確,不然的話系統會啟動不起來的。

#
  • /etc/profile , /etc/profile.d ,~/.bashrc, ~/.bash_file,這幾個檔案的差別是啥,可能很多新人,很懷疑。即使很多配置一些軟體環境變數的人也是很疑惑

~/.bashrc, ~/.bash_file這兩個看到~這個符合,應該明白,這是宿主目錄下的,也就是裡面的環境變數也叫shell變量,是局部的,只對特定的shell有效,修改過別忘了source 指令一下。

/etc/profile , /etc/profile.d,前面的是文件,後面一看也就明白.d表示目錄, /etc/profile裡面的變數是全域的,對所有使用者的shell有效。

  • 我們每當在終端機輸入指令,系統會有回應,最重要的就是搜尋路徑啦,可以透過echo $PATH看到,系統所以指令的搜尋路徑,以:符合分開。

當我們下載一個軟體,如果我們希望不加入路徑就能啟動該程序,如在shell中任意位置輸入eclipse,即啟動程序,我們就可以把eclipse程序的可執行程式的路徑加入PATH中即可。

其實我們還可以有另一個方法,請看如下程式碼

# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.


if [ -d /etc/profile.d ]; then              # 判断/etc/profile.d 是不是一个目录
  for i in /etc/profile.d/*.sh; do       #如果是一个目录,到该目录下,取出每一个shell程序
    if [ -r $i ]; then                             #如果该shell可以执行
      . $i                                               # 则执行它
    fi
  done
  unset i
fi

改程式碼是/etc/profile中的部分內容,說明/etc/profile會先執行/etc/ profile.d/目錄下的所有*.sh檔。這也就給我們一個可擴展的思路。如果我們需要設定JDK,那麼就在/etc/profile.d/下建立jvm.sh檔案如果需要設定ant,那麼就在/etc/profile.d/下建立ant.sh檔案
這樣得到的效果一致,不信你自己試試。

然後,在對應的設定檔裡面加入自己的設定就可以了。

推薦學習:《linux影片教學

以上是linux etc profile是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

相關文章

看更多