ตัวแปรสภาพแวดล้อม เป็นตัวแปรพิเศษบางตัวที่กำหนดไว้ในเชลล์และจำเป็นสำหรับโปรแกรมขณะดำเนินการ พวกเขาสามารถกำหนดโดยระบบหรือกำหนดโดยผู้ใช้ ตัวแปรที่กำหนดโดยระบบคือตัวแปรที่ระบบกำหนดและใช้โดยโปรแกรมระดับระบบ
สำหรับเช่น คนพิการ คำสั่งเป็นตัวแปรระบบทั่วไปที่ใช้เก็บไดเร็กทอรีการทำงานปัจจุบัน โดยทั่วไป ตัวแปรที่กำหนดโดยผู้ใช้จะถูกตั้งค่าโดยผู้ใช้ ไม่ว่าจะเป็นแบบชั่วคราวสำหรับเชลล์ปัจจุบันหรือแบบถาวร แนวคิดทั้งหมดของการตั้งค่าและการยกเลิกการตั้งค่าตัวแปรสภาพแวดล้อมหมุนรอบไฟล์บางชุดและคำสั่งไม่กี่คำสั่งและเชลล์ที่แตกต่างกัน
ในแง่ที่กว้างขึ้น ตัวแปรสภาพแวดล้อมสามารถมีได้สามประเภท:
หนึ่งที่กำหนดไว้สำหรับเซสชันปัจจุบัน ตัวแปรสภาพแวดล้อมเหล่านี้จะคงอยู่จนถึงเซสชันปัจจุบันเท่านั้น ไม่ว่าจะเป็นเซสชันการเข้าสู่ระบบระยะไกล หรือเซสชันเทอร์มินัลในเครื่อง ตัวแปรเหล่านี้ไม่ได้ระบุไว้ในไฟล์คอนฟิกูเรชันใดๆ และถูกสร้างขึ้น และลบออกโดยใช้ชุดคำสั่งพิเศษ
ตัวแปรเหล่านี้เป็นตัวแปรที่กำหนดไว้สำหรับผู้ใช้รายใดรายหนึ่ง และถูกโหลดทุกครั้งที่ผู้ใช้เข้าสู่ระบบโดยใช้เซสชันเทอร์มินัลภายในเครื่อง หรือผู้ใช้รายนั้นเข้าสู่ระบบโดยใช้เซสชันการเข้าสู่ระบบระยะไกล โดยทั่วไปแล้ว ตัวแปรเหล่านี้จะถูกตั้งค่าและโหลดจากไฟล์การกำหนดค่าต่อไปนี้:
.bashrc
, .bash_profile
, .bash_login
, .ข้อมูลส่วนตัว
ไฟล์ที่มีอยู่ในโฮมไดเร็กทอรีของผู้ใช้
สิ่งเหล่านี้คือตัวแปรสภาพแวดล้อมที่สามารถใช้ได้ทั้งระบบ กล่าวคือ สำหรับผู้ใช้ทั้งหมดที่มีอยู่ในระบบนั้น ตัวแปรเหล่านี้มีอยู่ในไฟล์คอนฟิกูเรชันทั้งระบบที่มีอยู่ในไดเร็กทอรีและไฟล์ต่อไปนี้: /etc/environment
, /etc/profile
, /etc/profile.d/
, /etc/bash.bashrc
. ตัวแปรเหล่านี้ถูกโหลดทุกครั้งที่เปิดระบบและล็อกอินโดยผู้ใช้ในเครื่องหรือจากระยะไกล
ในที่นี้ เราอธิบายสั้นๆ เกี่ยวกับไฟล์การกำหนดค่าต่างๆ ที่ระบุไว้ข้างต้นซึ่งมี Environment Variables ไม่ว่าจะเป็นทั้งระบบหรือเฉพาะผู้ใช้
ไฟล์นี้เป็นไฟล์เฉพาะของผู้ใช้ที่โหลดทุกครั้งที่ผู้ใช้สร้างเซสชันในเครื่องใหม่ กล่าวคือ เปิดเทอร์มินัลใหม่ ตัวแปรสภาพแวดล้อมทั้งหมดที่สร้างขึ้นในไฟล์นี้จะมีผลทุกครั้งที่เริ่มเซสชันภายในเครื่องใหม่
ไฟล์นี้เป็นไฟล์ล็อกอินระยะไกลเฉพาะผู้ใช้ ตัวแปรสภาพแวดล้อมที่แสดงอยู่ในไฟล์นี้จะถูกเรียกใช้ทุกครั้งที่ผู้ใช้เข้าสู่ระบบจากระยะไกล เช่น การใช้เซสชัน ssh หากไม่มีไฟล์นี้ ระบบจะค้นหาไฟล์ใดไฟล์หนึ่ง .bash_login
หรือ .ข้อมูลส่วนตัว
ไฟล์.
ไฟล์นี้เป็นไฟล์ทั้งระบบสำหรับการสร้าง แก้ไข หรือลบตัวแปรสภาพแวดล้อมใดๆ ตัวแปรสภาพแวดล้อมที่สร้างในไฟล์นี้สามารถเข้าถึงได้ทั้งหมดทั่วทั้งระบบ โดยผู้ใช้แต่ละรายและทุกคน ทั้งภายในเครื่องและจากระยะไกล
ทั้งระบบ bashrc
ไฟล์. ไฟล์นี้โหลดหนึ่งครั้งสำหรับผู้ใช้ทุกคน ทุกครั้งที่ผู้ใช้เปิดเซสชันเทอร์มินัลในเครื่อง ตัวแปรสภาพแวดล้อมที่สร้างในไฟล์นี้สามารถเข้าถึงได้สำหรับผู้ใช้ทั้งหมด แต่ผ่านเซสชันเทอร์มินัลในเครื่องเท่านั้น เมื่อผู้ใช้คนใดในเครื่องนั้นเข้าถึงจากระยะไกลผ่านเซสชันการเข้าสู่ระบบระยะไกล ตัวแปรเหล่านี้จะไม่ปรากฏให้เห็น
ไฟล์โปรไฟล์ทั้งระบบ ตัวแปรทั้งหมดที่สร้างในไฟล์นี้สามารถเข้าถึงได้โดยผู้ใช้ทุกคนในระบบ แต่ถ้าเซสชันของผู้ใช้นั้นถูกเรียกใช้จากระยะไกลเท่านั้น เช่น ผ่านการเข้าสู่ระบบระยะไกล ตัวแปรใดๆ ในไฟล์นี้จะไม่สามารถเข้าถึงได้สำหรับเซสชันการเข้าสู่ระบบในเครื่อง เช่น เมื่อผู้ใช้เปิดเทอร์มินัลใหม่บนระบบภายในของตน
บันทึก: ตัวแปรสภาพแวดล้อมที่สร้างขึ้นโดยใช้ ทั้งระบบ หรือ ผู้ใช้ทั่ว ไฟล์การกำหนดค่าสามารถลบได้โดยการลบออกจากไฟล์เหล่านี้เท่านั้น หลังจากการเปลี่ยนแปลงในไฟล์เหล่านี้แต่ละครั้ง ให้ออกจากระบบและเข้าสู่ระบบอีกครั้ง หรือเพียงพิมพ์คำสั่งต่อไปนี้บนเทอร์มินัลเพื่อให้การเปลี่ยนแปลงมีผล:
$ แหล่งที่มา
ตัวแปรสภาพแวดล้อมท้องถิ่น สามารถสร้างได้โดยใช้คำสั่งต่อไปนี้:
$ var=value หรือ $ ส่งออก var=value.
ตัวแปรเหล่านี้เป็นทั้งเซสชันและใช้ได้เฉพาะกับเซสชันเทอร์มินัลปัจจุบันเท่านั้น ในการล้างตัวแปรสภาพแวดล้อมทั้งเซสชันเหล่านี้ สามารถใช้คำสั่งต่อไปนี้:
โดยค่าเริ่มต้น, "สิ่งแวดล้อม"
คำสั่งแสดงรายการตัวแปรสภาพแวดล้อมปัจจุบันทั้งหมด แต่ถ้าใช้กับ '-ผม'
สวิตช์จะล้างตัวแปรสภาพแวดล้อมทั้งหมดชั่วคราวและให้ผู้ใช้ดำเนินการคำสั่งในเซสชันปัจจุบันโดยไม่มีตัวแปรสภาพแวดล้อมทั้งหมด
$ env –i [Var=Value]… command args…
ที่นี่, var=value
สอดคล้องกับตัวแปรสภาพแวดล้อมโลคัลที่คุณต้องการใช้กับคำสั่งนี้เท่านั้น
$ env –i ทุบตี
จะให้ bash shell ซึ่งชั่วคราวจะไม่มีตัวแปรสภาพแวดล้อมใด ๆ แต่เมื่อคุณออกจากเชลล์ ตัวแปรทั้งหมดจะถูกกู้คืน
อีกวิธีหนึ่งในการล้างตัวแปรสภาพแวดล้อมโลคัลคือการใช้คำสั่ง unset หากต้องการยกเลิกการตั้งค่าตัวแปรสภาพแวดล้อมภายในเครื่องชั่วคราว
$ unset
ที่ไหน, var-name
เป็นชื่อของตัวแปรท้องถิ่นที่คุณต้องการยกเลิกการตั้งค่าหรือล้าง
อีกวิธีหนึ่งที่ใช้กันทั่วไปน้อยกว่าคือการตั้งชื่อตัวแปรที่คุณต้องการล้างเป็น ''
(ว่างเปล่า). การดำเนินการนี้จะล้างค่าของตัวแปรท้องถิ่นสำหรับเซสชันปัจจุบันที่มีการใช้งานอยู่
บันทึก – คุณสามารถเล่นและเปลี่ยนค่าของระบบหรือตัวแปรสภาพแวดล้อมของผู้ใช้ได้ แต่การเปลี่ยนแปลงจะมีผลในเซสชันปัจจุบันเท่านั้นและจะไม่ถาวร
ในส่วนนี้ เราจะมาเรียนรู้วิธีตั้งค่าหรือยกเลิกการตั้งค่าตัวแปรสภาพแวดล้อมทั้งระบบ ผู้ใช้ และระบบใน Linux ด้วยตัวอย่างด้านล่าง:
NS.) ที่นี่เราสร้างตัวแปรท้องถิ่น VAR1
และตั้งค่าเป็นค่าใดๆ จากนั้น เราใช้ unset เพื่อลบตัวแปรในเครื่องนั้น และในตอนท้ายตัวแปรนั้นจะถูกลบออก
$ VAR1='TecMint เป็นไซต์ที่ดีที่สุดสำหรับบทความ Linux' $ echo $VAR1. $ ยกเลิกการตั้งค่า VAR1 $ echo $VAR1.
NS.) อีกวิธีหนึ่งในการสร้างตัวแปรท้องถิ่นคือการใช้ ส่งออก
สั่งการ. ตัวแปรโลคัลที่สร้างขึ้นจะพร้อมใช้งานสำหรับเซสชันปัจจุบัน หากต้องการยกเลิกการตั้งค่าตัวแปร ให้ตั้งค่าของตัวแปรเป็น ''
.
$ export VAR='TecMint เป็นไซต์ที่ดีที่สุดสำหรับบทความ Linux' $ ก้อง $VAR. $ VAR= $ ก้อง $VAR.
ค.) ที่นี่เราสร้างตัวแปรท้องถิ่น VAR2
และตั้งค่าเป็นค่า จากนั้นเพื่อเรียกใช้คำสั่งเพื่อล้างตัวแปรท้องถิ่นและสภาพแวดล้อมอื่น ๆ ทั้งหมดชั่วคราว เราดำเนินการ 'env – ฉัน'
สั่งการ. คำสั่งนี้ดำเนินการ bash shell โดยการล้างตัวแปรสภาพแวดล้อมอื่น ๆ ทั้งหมด พอเข้า 'ออก'
บน bash shell ที่เรียกใช้ ตัวแปรทั้งหมดจะถูกกู้คืน
$ VAR2='TecMint เป็นไซต์ที่ดีที่สุดสำหรับบทความ Linux' $ echo $VAR2. $ env -i ทุบตี $ echo $VAR2
NS.) แก้ไข .bashrc
ในโฮมไดเร็กตอรี่ของคุณเพื่อส่งออกหรือตั้งค่าตัวแปรสภาพแวดล้อมที่คุณต้องการเพิ่ม หลังจากนั้น แหล่งที่มา ไฟล์เพื่อให้การเปลี่ยนแปลงมีผล จากนั้นคุณจะเห็นตัวแปร ('ซีดี'
ในกรณีของฉัน) มีผลบังคับใช้ ตัวแปรนี้จะใช้ได้ทุกครั้งที่คุณเปิดเทอร์มินัลใหม่สำหรับผู้ใช้รายนี้ แต่ไม่ใช่สำหรับเซสชันการเข้าสู่ระบบระยะไกล
$ vi .bashrc.
เพิ่มบรรทัดต่อไปนี้เพื่อ .bashrc
ไฟล์ที่ด้านล่าง
ส่งออกซีดี = 'นี่คือ TecMint Home'
ตอนนี้ให้รันคำสั่งต่อไปนี้เพื่อทำการเปลี่ยนแปลงใหม่และทดสอบ
$ แหล่งที่มา .bashrc $ echo $CD
หากต้องการลบตัวแปรนี้ ให้ลบบรรทัดต่อไปนี้ใน .bashrc ไฟล์และรีซอร์สมัน:
NS.) หากต้องการเพิ่มตัวแปรที่จะพร้อมใช้งานสำหรับเซสชันการเข้าสู่ระบบระยะไกล (เช่น เมื่อคุณ ssh กับผู้ใช้จากระบบระยะไกล) ให้แก้ไข .bash_profile
ไฟล์.
$ vi .bash_profile
เพิ่มบรรทัดต่อไปนี้เพื่อ .bash_profile
ไฟล์ที่ด้านล่าง
export VAR2='นี่คือ TecMint Home'
เมื่อจัดหาไฟล์นี้ ตัวแปรจะพร้อมใช้งานเมื่อคุณ ssh กับผู้ใช้รายนี้ แต่จะไม่มีการเปิดเทอร์มินัลภายในเครื่องใหม่
$ แหล่งที่มา .bash_profile $ echo $VAR2
ที่นี่, VAR2
ไม่พร้อมใช้งานในตอนแรก แต่เมื่อทำ ssh กับผู้ใช้บน localhost ตัวแปรจะพร้อมใช้งาน
$ ssh [ป้องกันอีเมล]
$ echo $VAR2.
หากต้องการลบตัวแปรนี้ ให้ลบบรรทัดใน .bash_profile
ไฟล์ที่คุณเพิ่มและรีซอร์สไฟล์
บันทึก: ตัวแปรเหล่านี้จะพร้อมใช้งานทุกครั้งที่คุณเข้าสู่ระบบผู้ใช้ปัจจุบัน แต่ไม่ใช่สำหรับผู้ใช้รายอื่น
NS.) ในการเพิ่มตัวแปรที่ไม่ต้องลงชื่อเข้าใช้ทั้งระบบ (เช่น ตัวแปรที่ผู้ใช้ทุกคนมีให้เมื่อเปิดเทอร์มินัลใหม่ แต่ไม่ใช่เมื่อผู้ใช้เครื่องถูกเข้าถึงจากระยะไกล) ให้เพิ่มตัวแปรลงใน /etc/bash.bashrc
ไฟล์.
export VAR='นี่คือตัวแปรทั้งระบบ'
หลังจากนั้นให้แหล่งที่มาของไฟล์
$ source /etc/bash.bashrc
ตอนนี้ตัวแปรนี้จะพร้อมใช้งานสำหรับผู้ใช้ทุกคนเมื่อเขาเปิดเทอร์มินัลใหม่
$ ก้อง $VAR. $ sudo su. $ ก้อง $VAR. $ ซู - $ ก้อง $VAR.
ที่นี่ ตัวแปรเดียวกันสามารถใช้ได้สำหรับ ราก ผู้ใช้เช่นเดียวกับผู้ใช้ปกติ คุณสามารถตรวจสอบได้โดยลงชื่อเข้าใช้ผู้ใช้รายอื่น
NS.) หากคุณต้องการให้ตัวแปรสภาพแวดล้อมพร้อมใช้งานเมื่อผู้ใช้คนใดในเครื่องของคุณเป็น เข้าสู่ระบบจากระยะไกล แต่ไม่ได้เปิดเทอร์มินัลใหม่บนเครื่องท้องถิ่น จากนั้นคุณต้องแก้ไข ไฟล์ - '/etc/profile'
.
export VAR1='นี่คือตัวแปรทั้งระบบสำหรับเซสชันระยะไกลเท่านั้น'
หลังจากเพิ่มตัวแปรแล้ว ให้รีซอร์สไฟล์อีกครั้ง จากนั้นตัวแปรจะพร้อมใช้งาน
$ แหล่งที่มา /etc/profile. $ echo $VAR1.
หากต้องการลบตัวแปรนี้ ให้ลบบรรทัดออกจาก /etc/profile
ไฟล์และรีซอร์สมัน
ค.) อย่างไรก็ตาม หากคุณต้องการเพิ่มสภาพแวดล้อมใดๆ ที่คุณต้องการให้ใช้งานได้ทั่วทั้งระบบ ทั้งบนรีโมท เซสชันการเข้าสู่ระบบและเซสชันในเครื่อง (เช่น การเปิดหน้าต่างเทอร์มินัลใหม่) สำหรับผู้ใช้ทั้งหมด เพียงส่งออกตัวแปร ใน /etc/environment ไฟล์.
export VAR12='ฉันพร้อมทุกที่'
หลังจากนั้นเพียงแหล่งที่มาของไฟล์และการเปลี่ยนแปลงจะมีผล
$ แหล่งที่มา /etc/environment. $ echo $VAR12. $ sudo su. $ echo $VAR12. $ ทางออก $ ssh localhost. $ echo $VAR12.
ในที่นี้ ตามที่เราเห็นตัวแปรสภาพแวดล้อมพร้อมใช้งานสำหรับผู้ใช้ทั่วไป ผู้ใช้รูท ตลอดจนเซสชันการเข้าสู่ระบบระยะไกล (ที่นี่ เพื่อ localhost).
หากต้องการล้างตัวแปรนี้ ให้ลบรายการใน /etc/environment ไฟล์และรีซอร์สหรือเข้าสู่ระบบอีกครั้ง
บันทึก: การเปลี่ยนแปลงจะมีผลเมื่อคุณซอร์สไฟล์ แต่ถ้าไม่ใช่ คุณอาจต้องออกจากระบบและเข้าสู่ระบบอีกครั้ง
ดังนั้น นี่เป็นเพียงไม่กี่วิธีที่เราสามารถปรับเปลี่ยนตัวแปรสภาพแวดล้อมได้ หากคุณพบลูกเล่นใหม่และน่าสนใจสำหรับสิ่งเดียวกัน ให้พูดถึงในความคิดเห็นของคุณ