ไม่สามารถเรียกใช้คำสั่งเทอร์มินัล:“ คำสั่ง 'sudo' พร้อมใช้งานใน '/ usr / bin / sudo'”


13

ฉันใช้ Ubuntu 12.04 มาระยะหนึ่งแล้วและไม่เคยมีปัญหามาถึงฉันด้วยสีฟ้าแบบนี้ ฉันพยายามติดตั้ง python 3.2 บนระบบ Ubuntu ของฉันและทุกครั้งที่ฉันเรียกใช้รหัสเพื่อรวบรวมแหล่งไพ ธ อนฉันได้รับข้อผิดพลาดนี้:

'Command 'sudo' is available in '/usr/bin/sudo'
The command could not be located because '/usr/bin' is not included in the PATH environment variable.
sudo: command not found'

ฉันได้ลองใช้gksudoคำสั่งเพื่อดูสิ่งที่สภาพแวดล้อมของฉันแสดง แต่ฉันก็ค่อนข้างได้รับข้อผิดพลาดเดียวกัน


ฉันพนันได้เลยว่าคุณจะได้รับข้อผิดพลาดเดียวกันเมื่อคุณพยายามเรียกใช้แอปพลิเคชันของคุณผ่านบรรทัดคำสั่ง ผลลัพธ์ของcat /etc/environmentอะไร
Alaa Ali

คุณช่วยบอกเราว่าคุณพยายามเรียกใช้โปรแกรมใด บางโปรแกรมเปลี่ยนตัวแปร PATH แต่หากไม่มีชื่อเราก็ไม่แน่ใจ
Braiam

คำตอบ:


24

เป็นข้อผิดพลาดว่าคุณควรเพิ่ม/usr/binไดเรกทอรีไปยังตัวแปรสภาพแวดล้อม PATH ของคุณ หากต้องการทำสิ่งนี้ให้เรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล:

export PATH=$PATH:/usr/bin

หลังจากที่คุณสามารถใช้sudoคุณสามารถแก้ไข/etc/environmentไฟล์เพื่อทำการเปลี่ยนแปลงถาวรดังนั้นรันในเทอร์มินัล:

sudo nano /etc/environment

เพื่อแก้ไขไฟล์ ตรวจสอบให้แน่ใจว่าเส้นทางเป็นดังนี้:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

บันทึกและปิดไฟล์ด้วยCtrl+ XและกดYเมื่อคุณถูกถาม

ดูเพิ่มเติม: วิธีเพิ่มไดเรกทอรีใน PATH ได้อย่างไร


นี่มันไม่ถาวรเลยใช่มั้ย ถ้าเขาเริ่มใหม่มันจะหายไปอีกครั้ง
Alaa Ali

1
ใช่. การตั้งค่าถาวรสำหรับผู้ใช้ของคุณอาจอยู่ใน~/.profile, ~/.bashrc, หรือ~/.pam_environment ~/.xsessionrcการตั้งค่าสำหรับผู้ใช้ทุกคนอาจอยู่ใน/etc/profile, /etc/profile.d/*, /etc/environment, ,/etc/bash/bashrc /etc/lightdm/xsessionอาจเป็นหนึ่งในไฟล์ผู้ใช้ของคุณแทนที่การตั้งค่าความกว้างของระบบเริ่มต้น หากคุณมีผู้ใช้อื่นหรือบัญชีผู้ใช้เกสต์เปิดใช้งานลองกับผู้ใช้รายอื่นและดูว่ามีปัญหาสำหรับผู้ใช้รายอื่นด้วยหรือไม่ หากไม่มีให้ตรวจสอบไฟล์สคริปต์เริ่มต้นผู้ใช้ของคุณเอง
Soulsource

1
มันทำงานได้อย่างสมบูรณ์แบบ ขอบคุณมาก! แต่คุณสามารถเพิ่มข้อมูลเพิ่มเติมเกี่ยวกับวิธีทำให้การเปลี่ยนแปลงนี้ถาวรได้หรือไม่? ขอบคุณล่วงหน้า.
OscaRoCa

ฉันได้รับข้อผิดพลาดนี้: MY_USER_NAME ไม่ได้อยู่ในไฟล์ sudoers เหตุการณ์นี้จะถูกรายงาน ฉันไม่ใช่ผู้ดูแลระบบ .. สิ่งที่ฉันต้องทำ ..
Ghanem

6

ฉันมีปัญหาและแก้ไขได้โดยแก้ไขไฟล์. bashrc ของฉัน

  1. เปิดไฟล์. bashrc ของคุณโดยใช้ nano

    $ sudo nano ~/.bashrc
    
  2. เพิ่มบรรทัดต่อไปนี้ในไฟล์ bashrc

    export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:   /usr/local/games"
    
  3. กด Ctrl + X เพื่อบันทึกไฟล์

  4. มันจะขอให้ chnage ไฟล์กด y และ Enter

คุณทำเสร็จแล้ว


1
อย่าจัดการไฟล์ในไดเรกทอรีที่บ้านของคุณ ( ~) sudoโดยใช้ มันสามารถสร้างปัญหามากกว่าที่จะแก้
Melebius

1

เมื่อคุณต้องการเพิ่มค่าใหม่ให้กับPATHตัวแปรระบบคุณมักจะเพิ่มบรรทัดใหม่~/.bashrcหรือ~/.bash_profileไฟล์

ตัวอย่างเช่นถ้าคุณต้องการเพิ่ม/opt/netbeans/binไปPATHคุณต้องเพิ่มบรรทัดนี้ที่ส่วนท้ายของ~/.bashrcไฟล์:

export PATH=$PATH:/opt/netbeans/bin

ลองแยกบรรทัดนี้ลง

  • export PATH- ที่นี่เราหมายถึงPATHตัวแปร
  • =- เราต้องการกำหนดค่าใหม่โดยใช้=โอเปอเรเตอร์ (ส่วนที่เหลือของสตริงคือค่าที่จะถูกเก็บไว้ในPATH)
  • $PATH- เรากำหนดตัวแปรPATHให้กับค่าที่อยู่ในตัวแปรก่อนคำสั่งปัจจุบัน
  • : - เราเพิ่มตัวคั่นสำหรับค่าใหม่
  • /opt/netbeans/bin - และเพิ่มมูลค่าใหม่ให้กับ PATH

คุณต้องดูการอ้างอิงทั้งหมดของคุณไปยังPATHตัวแปรใน~/.bashrcหรือ~/.bash_profileไฟล์และตรวจสอบให้แน่ใจว่าคุณขยาย -

export PATH=$PATH:/opt/netbeans/bin

และไม่เขียนทับเช่นนี้ -

export PATH=/opt/netbeans/bin

PATHตัวแปร

คุณต้องตรวจสอบให้แน่ใจว่าในทุกการอ้างอิงถึงการPATHใช้งาน$PATH:และมูลค่าเพิ่มเติมของคุณหลังจากนั้น


หากไม่ได้ผลคุณอาจทำสิ่งนี้:

  • ตรวจสอบให้แน่ใจว่ามีบางสิ่งที่เหมือนกับตัวแปรถัดไปใน/etc/environmentไฟล์และไม่เคยนิยามใหม่ในไฟล์นี้:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
  • เพิ่มเส้นทางที่หายไปจากPATHตัวแปรข้างต้นไปยังPATHตัวแปรที่อยู่ใน/etc/environment

ก่อนการทดสอบหลังจากการเปลี่ยนแปลงไฟล์แต่ละครั้งอย่าลืมอัปเดตการกำหนดค่าของคุณ

ตัวอย่างเช่นสำหรับ~/.bashrcไฟล์:

source `~/.bashrc`
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.