ฉันกำลังใช้งาน RHEL6 และฉันได้ส่งออกตัวแปรสภาพแวดล้อมเช่นนี้:
export DISPLAY=:0
ตัวแปรนั้นจะหายไปเมื่อปิดเทอร์มินัล ฉันจะเพิ่มสิ่งนี้อย่างถาวรเพื่อให้ค่าตัวแปรนี้มีอยู่เสมอกับผู้ใช้เฉพาะ?
ฉันกำลังใช้งาน RHEL6 และฉันได้ส่งออกตัวแปรสภาพแวดล้อมเช่นนี้:
export DISPLAY=:0
ตัวแปรนั้นจะหายไปเมื่อปิดเทอร์มินัล ฉันจะเพิ่มสิ่งนี้อย่างถาวรเพื่อให้ค่าตัวแปรนี้มีอยู่เสมอกับผู้ใช้เฉพาะ?
คำตอบ:
คุณสามารถเพิ่มเข้าไปในแฟ้มการกำหนดค่าเปลือกของคุณเช่นหรือมากกว่าทั่วโลกใน$HOME/.bashrc
/etc/environment
หลังจากเพิ่มบรรทัดเหล่านี้การเปลี่ยนแปลงจะไม่ส่งผลทันทีในระบบที่ใช้ GUI คุณต้องออกจากเทอร์มินัลหรือสร้างขึ้นใหม่และในเซิร์ฟเวอร์ออกจากระบบเซสชันและล็อกอินเพื่อแสดงการเปลี่ยนแปลงเหล่านี้
source
เช่น > source ~/.bashrc
-
export
แต่ลองใช้โปรแกรมดีบั๊ก
คุณต้องแก้ไขสามไฟล์เพื่อตั้งค่าตัวแปรสภาพแวดล้อมถาวรดังนี้:
โดยปกติคุณต้องรีสตาร์ทคอมพิวเตอร์เพื่อใช้การเปลี่ยนแปลงนี้ แต่คุณสามารถใช้การเปลี่ยนแปลงในbashrcและโปรไฟล์โดยคำสั่งเหล่านี้:
$ source ~/.bashrc
$ source ~/.profile
แต่สำหรับ/ etc / environmentคุณไม่มีทางเลือกนอกจากเริ่มต้นใหม่ (เท่าที่ฉันรู้)
#!/bin/bash
echo "Enter variable name: "
read variable_name
echo "Enter variable value: "
read variable_value
echo "adding " $variable_name " to environment variables: " $variable_value
echo "export "$variable_name"="$variable_value>>~/.bashrc
echo $variable_name"="$variable_value>>~/.profile
echo $variable_name"="$variable_value>>/etc/environment
source ~/.bashrc
source ~/.profile
echo "do you want to restart your computer to apply changes in /etc/environment file? yes(y)no(n)"
read restart
case $restart in
y) sudo shutdown -r 0;;
n) echo "don't forget to restart your computer manually";;
esac
exit
บันทึกบรรทัดนี้ใน shfile แล้วทำให้มันสามารถเรียกใช้งานได้และเพียงแค่เรียกใช้!
chmod -x insert_var.sh
bash insert_var.sh
ขอบคุณ
เพิ่มบรรทัดที่คุณหรือ.bashrc
.profile
ตัวแปรที่ตั้งค่า$HOME/.profile
นั้นแอ็คทีฟสำหรับผู้ใช้ปัจจุบันตัวแปรที่อยู่ใน/etc/profile
นั้นเป็นโกลบอล .bashrc
ถูกดึงในแต่ละเซสชั่นเริ่มต้นทุบตี
บนระบบ Ubuntu ให้ใช้ตำแหน่งต่อไปนี้:
ตัวแปรถาวรของระบบทั้งในรูปแบบของการJAVA_PATH=/usr/local/java
จัดเก็บใน
/etc/environment
ตัวแปรถาวรทั้งระบบที่อ้างอิงตัวแปรเช่นที่
export PATH="$JAVA_PATH:$PATH"
เก็บใน
/etc/.bashrc
ตัวแปรถาวรเฉพาะผู้ใช้ในรูปแบบของการPATH DEFAULT=/usr/bin:usr/local/bin
จัดเก็บใน
~/.pam_environment
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับ # 2, ตรวจสอบเรื่องนี้ Ask คำตอบอูบุนตู หมายเหตุ: # 3 เป็นคำแนะนำของ Ubuntu แต่อาจมีปัญหาด้านความปลอดภัยในโลกแห่งความเป็นจริง
ตัวอย่างเฉพาะ: ฉันติดตั้ง Java 7 และ Java 6 แล้วฉันต้องเรียกใช้งานบิลด์บางส่วนด้วย 6 และอื่น ๆ ที่มี 7 ดังนั้นฉันต้องแก้ไขแบบไดนามิกJAVA_HOME
เพื่อให้ Maven เลือกสิ่งที่ฉันต้องการสำหรับแต่ละบิลด์ ฉันทำต่อไปนี้:
j6.sh
สคริปต์ที่สร้างขึ้นซึ่งจะทำการส่งออกJAVA_HOME=...
พา ธ ไปยัง j6 install ...j6.sh
ในเทอร์มินัลคำสั่งนั้น ๆ โดยค่าเริ่มต้นฉันJAVA_HOME
ถูกตั้งค่าเป็น J7หวังว่านี่จะช่วยได้
หากเหมาะสมกับทุกคนต่อไปนี้เป็นคำแนะนำสั้น ๆ สำหรับการเพิ่มตัวแปรสภาพแวดล้อมอย่างถาวร
vi ~/.bash_profile
เพิ่มตัวแปรลงในไฟล์:
export DISPLAY=:0
export JAVA_HOME=~/opt/openjdk11
ใช้การเปลี่ยนแปลงทั้งหมดทันที:
source ~/.bash_profile
ที่มา: https://www.serverlab.ca/tutorials/linux/administr-linux/how-to-set-environment-variables-in-linux/