ฉันได้ตั้ง bash PATH ไว้ที่ไหน?


9

ฉันต้องการลบออก~/binจากเส้นทางของฉัน ฉันตั้งค่าเมื่อหลายเดือนก่อนเมื่อ Linux (Ubuntu) ใหม่สำหรับฉัน แต่ฉันไม่รู้ว่าฉันจะเพิ่มมันได้อย่างไร ...

ไม่มีสิ่งใดปรากฏขึ้นเมื่อฉันค้นหาไฟล์ทั้งหมดตามรายการด้านล่าง
จะมีการตั้งค่าที่อื่นอีกไหม มันจะถูก pre-pended หลังจาก$HOME/.profileคำนำหน้าเส้นทางด้วย$HOME/bin

ถ้ามันสร้างความแตกต่างฉันจะได้ PATH เหมือนกันจากทั้ง command-prompt และ script ที่กำลังรันอยู่

#!/bin/bash
{
  echo "first dir of PATH is: '${PATH%%:*}'"
  shopt -s nullglob
  cat \
    /etc/profile \
    /etc/bash.bashrc \
    /etc/profile.d/*.sh \
    $HOME/.bashrc \
    $HOME/.bash_aliases \
    /etc/bash_completion \
    $HOME/.bash_completion* \
    $HOME/.profile \
    $HOME/.profile_zap \
    $HOME/.bash_profile* \
    $HOME/.bash_login* \
  | sed -rne '/~\/bin/p'
}

ผลลัพธ์คือ:

first dir of PATH is: '~/bin'

ลอง grepping PATHแทน หากยังไม่มีโชคให้ตรวจสอบไฟล์ทั้งหมดเพื่อดูว่ามีอะไรมาบ้าง
jw013

คุณตรวจสอบ ~ / .bashrc และ ~ / .profile ของคุณหรือไม่ หากไม่มีการดูโปรไฟล์ / etc / ฉันคิดว่าคุณจะพบมันในหนึ่งในสถานที่เหล่านี้
nikhil

ขอบคุณทุกคน ... คำแนะนำทั้งหมดมีประโยชน์ ... มันเป็นใน~/.gnomerc...
Peter.O

คำตอบ:


10

คุณอาจต้องการติดตามโหลดสภาพแวดล้อมแบบเต็มในการเข้าสู่ระบบ แค่ความคิด

เนื่องจาก / etc / profile เป็นไฟล์แรกที่มาคุณสามารถเพิ่มไฟล์ไว้ที่ด้านบนสุด a:

set -x
exec 2> /tmp/debug.log

จากนั้นเปิดเทอร์มินัลใหม่และทำbash -l; หลังจากนั้นไปที่เทอร์มินัลดั้งเดิมและลบบรรทัดที่เพิ่ม (คุณต้องการมีสภาพแวดล้อมการทำงานใช่ไหม?)

คุณควรลงท้ายด้วยการติดตามอย่างเต็มรูปแบบของขั้นตอนทั้งหมดของ loading_the_bash_environment ที่ /tmp/debug.log มันจะเป็นไฟล์ loooong

คุณต้องสามารถค้นหาตำแหน่งที่ "~ / bin" เข้าสู่ PATH ของคุณได้

ฉันจะมองหา grep ของไฟล์ทั้งหมดที่มา จากการโพสต์ของคุณฉันเดิมพันว่า ~ / bin ในเส้นทางตั้งอยู่ในไฟล์ที่แตกต่างจากที่คุณระบุไว้


@ montoliu .. ฉันมีปัญหาสองสามอย่างกับสิ่งนี้ .. ก่อนอื่นไม่มีอะไรไปสู่บันทึก แต่ฉันได้รับผลลัพธ์จำนวนมากในเทอร์มินัล ( konsole) ... การอ้างอิงแรกเพื่อ~/binแสดงให้เห็นแล้วใน เส้นทาง แต่ฉันไม่เห็นคำใบ้ว่ามันมาจากที่ใด ณ จุดนี้แล้วตามด้วย$HOME/binจาก$HOME/.profile(ฉันแน่ใจว่ามันมาจากที่นั่นเพราะฉันใช้ไดเรกทอรีพิเศษพิเศษสำหรับการทดสอบนี้) ... Howerver ฉันสามารถค้นหามันด้วยสังเกตุโดยค้นหาไฟล์ข้อความทั้งหมดของฉัน .. มันมาจาก~/.gnomerc.. และฉันต้องลงชื่อเข้าใช้อีกครั้งเพื่อให้มันเปลี่ยน ?? !! ..
Peter.O

คุณแน่ใจหรือไม่ว่าคุณวางบรรทัดที่ด้านบนของ / etc / profile และคุณกำลังใช้งานมันแบบธรรมดาbash -l? มันจะต้องส่งการดีบัก (-x) ซึ่งไปที่ stderr ถึง /tmp/debug.log; แน่นอนฉันเพิ่งทดสอบและใช้งานได้ตามที่คาดไว้
hmontoliu

ฉันจะลองอีกครั้ง (อีกครั้ง) ... การวิเคราะห์บันทึกนี้เป็นวิธีที่แน่นอน(เมื่อทุกอย่างล้มเหลว :) และนี่เป็นโอกาสที่ดีสำหรับฉันที่จะเข้าใจมันได้ดีขึ้น ...
Peter.O

... ฉันจะต้องใส่ปัญหาบันทึกนี้ลงในตระกร้าที่ยากเกินไปตอนนี้ .. มันยังไม่ได้ส่งออกไปยัง logfile แต่ฉันมีหลายร้อยบรรทัดใน terminal .. แต่ก็ไม่เป็นไร .. มันได้รับแล้ว เป็นคำแนะนำที่ดีเกี่ยวกับบันทึกการแก้ไขข้อบกพร่อง .. และฉันรู้สึกดีขึ้นมากในไฟล์ปรับแต่ง ... ขอบคุณ ...
Peter.O

3
ฉันได้ไปแทนที่setด้วยexecในบรรทัดที่สองแล้วก็ทำงานที่ดีเลิศสำหรับฉัน :)
thomasa88
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.