ฉันเพิ่งติดตั้ง Light Table เมื่อเร็ว ๆ นี้ดาวน์โหลดจากที่เก็บ git และทำตามคำแนะนำบนเว็บไซต์นี้เพื่อสร้างตัวเรียกใช้เดสก์ท็อป
ตอนนี้ฉันต้องการเรียกใช้โปรแกรมโดยการพิมพ์ในเทอร์มินัลโดยตรง
LightTable
และไม่
./opt/LightTable/deploy/LightTable
ฉันเพิ่งติดตั้ง Light Table เมื่อเร็ว ๆ นี้ดาวน์โหลดจากที่เก็บ git และทำตามคำแนะนำบนเว็บไซต์นี้เพื่อสร้างตัวเรียกใช้เดสก์ท็อป
ตอนนี้ฉันต้องการเรียกใช้โปรแกรมโดยการพิมพ์ในเทอร์มินัลโดยตรง
LightTable
และไม่
./opt/LightTable/deploy/LightTable
คำตอบ:
สิ่งนี้สามารถเกิดขึ้นได้อย่างเลวร้ายกับนามแฝง คุณสามารถสร้างนามแฝงทุบตีถาวรโดยเพิ่มบรรทัดเดียวใน.bashrc
ไฟล์ของคุณ
ในการทำงานของเครื่อง nano ~/.bashrc
เพิ่มบรรทัดต่อไปนี้ที่ด้านล่าง:
alias LightTable='/full/path/opt/LightTable/deploy/LightTable'
แจ้งให้ทราบล่วงหน้าฉันได้เพิ่มเส้นทางแบบเต็มแก่เจ้าแทนที่จะเป็น.
เช่นนี้จะทำงานในไดเรกทอรีการทำงานใด ๆ ปิดและเปิดเทอร์มินัลใหม่หรือรันsource ~/.bashrc
เพื่อโหลดไฟล์ bashrc อีกครั้ง
นี่ไม่ใช่คำถามเบื้องต้นวิธีที่ดีที่สุดในการทำนามแฝงคือใช้ netbeans เป็นตัวอย่าง
เปิด Terminal Ctrl+Alt+T
nano ~/.bashrc
เขียนสิ่งนี้ที่ด้านล่างของไฟล์:
alias netbeans='/home/john/netbeans-7.0.1/bin/netbeans'
Ctrl + x
Y
Enter
คำ netbeans เป็นคำสั่งที่คุณจะใช้เพื่อเริ่มโปรแกรมคุณสามารถเปลี่ยนเป็นสิ่งที่คุณต้องการ ภายในเครื่องหมายคำพูดคือคำสั่งที่คุณต้องการเรียกใช้เมื่อเรียกนามแฝง netbeans
เพื่อให้คำสั่งนี้ใช้งานได้คุณจะต้องเปิด Terminal อีกครั้ง
คุณสามารถลองคัดลอกไฟล์ที่เรียกใช้งานได้/usr/bin
หากเป็นโปรแกรมที่ใช้งานง่ายและไม่ขึ้นอยู่กับไฟล์อื่น ถ้ามันขึ้นอยู่กับไฟล์อื่น ๆ สิ่งที่ดีที่สุดที่จะทำคือสร้างคำสั่งทางลัดไปยังโปรแกรม
ตำแหน่งที่คุณสร้างนามแฝงนั้นด้วยตัวเอง (.bashrc, .profile ฯลฯ ) อย่างไรก็ตามส่วนตัวฉันปล่อยให้ตัวแปรสภาพแวดล้อมทั้งหมดของฉันใน.bash_aliases
ไฟล์ของฉัน(คุณจำเป็นต้องสร้างมันในท่าทางแรก)
สร้างไฟล์. bash_aliases ในโฟลเดอร์ HOME ของคุณและแก้ไขได้ตามที่คุณต้องการ จากนั้นในการสร้างทางลัดคุณสามารถทำได้:
alias LightTable='path_to_opt/LightTable/deploy/LightTable'
บันทึกไฟล์และนั่นคือมัน
ps: คุณสามารถใส่นามแฝงเป็น lighttable และ LIGHTTABLE ในกรณีที่ลืมตัวพิมพ์ใหญ่ L หรือถ้า capslock ทำงานโดยไม่ตั้งใจดังนั้นคุณไม่ต้องพิมพ์คำสั่งอีกครั้ง
/usr/local/bin
แทน สิ่งที่อยู่ใน/usr/bin
สามารถลบหรือแทนที่ด้วยแพ็คเกจ Apt แต่สิ่ง/usr/local/bin
ที่เหลืออยู่เพียงอย่างเดียว
ฉันไม่แน่ใจว่าทำไมผู้ตอบคนอื่น ๆ ไม่ได้แนะนำสิ่งนี้ แต่ในขณะที่ OP ชี้ให้เห็นจริง ๆ การจัดเตรียม$PATH
ตัวแปรจะเป็นวิธีที่ฉันจะทำได้:
echo 'PATH=/opt/LightTable/deploy:$PATH' >> ~/.bash_profile
source ~/.bash_profile
จากนั้นเรียกใช้ด้วย:
LightTable
LightTable
ไปเพื่อความสะดวกในการใช้งาน:lighttable
echo 'alias LightTable=lighttable' >> ~/.bash_alias && source ~/.bash_alias
ดีกว่าที่จะสร้างลิงก์สัญลักษณ์กว่านามแฝงที่ฉันคิด นามแฝงอาจทำการทดแทนในบรรทัดคำสั่งของคุณเมื่อคุณไม่ต้องการ การสร้าง symlink จะช่วยให้คุณสามารถรันโปรแกรมตามที่คุณต้องการ:
sudo ln -s full_path_to_opt/LightTable/deploy/LightTable /usr/local/bin
สิ่งนี้จะสร้างทางลัดใน / usr / local / bin (ซึ่งควรอยู่ใน PATH ของคุณแล้ว!) ไปยังตำแหน่งที่ LightTable อยู่จริง โปรดทราบว่าคุณสามารถเปลี่ยนชื่อ symlink ได้เช่นกันหากคุณไม่ชอบอักษรตัวใหญ่ใน "LightTable":
sudo ln -s full_path_to_opt/LightTable/deploy/LightTable /usr/local/bin/lighttable
เพียงเพื่อการอ้างอิงหากโปรแกรมได้รับการออกแบบอย่างเชื่องช้ากล่าวคือบ่นว่าไม่ได้ค้นหาไฟล์การกำหนดค่าหรือไลบรารีหรืออะไรก็ตามดังนั้นทางออกอื่นที่อาจมีประโยชน์มากกว่าคือการสร้างสคริปต์ตัวตัด ในการทำเช่นนี้เพียงแค่สร้างไฟล์ (ทุกที่ที่คุณต้องการในเวลานั้น) เรียกว่า "LightTable" (หรืออะไรก็ได้ที่คุณชอบ) ด้วยสิ่งนี้ในนั้น:
#!/bin/sh
# Simple script to run LightTable
if ! cd full_path_to_opt/LightTable/deploy/LightTable ; then
echo "$0: error: LightTable directory not found." >&2
exit 1
fi
exec ./LightTable
เปลี่ยนการอนุญาตของไฟล์นี้:
chmod 755 <wrapper_script>
และลองเรียกใช้งานมันเพื่อดูว่ามันใช้งานได้หรือไม่และหากเป็นเช่นนั้นให้ย้ายไปที่ / usr / local / bin:
sudo mv -i <wrapper_script> /usr/local/bin
ฉันพยายามทำสิ่งนี้เมื่อฉันเริ่มต้นใน Ubuntu เมื่อคุณใส่ LightTable ในเทอร์มินัลมันจะค้นหาไฟล์ชื่อ LightTable ใน$PATH
ไดเรกทอรี คุณสามารถนำecho $PATH
ไปรับไดเรกทอรี
หากคุณต้องการรันโปรแกรม LightTable ของคุณ./opt/LightTable/deploy/LightTable
สิ่งที่คุณต้องทำก็คือวางไฟล์ Light Table ของคุณใน/usr/games or /usr/bin.
แต่ที่ต้องมีสิทธิ์ผู้ใช้ขั้นสูง
เปิดเทอร์มินัลโดย Ctrl + Alt + T
จากนั้นใส่
ฉันชอบสร้างทางลัดของ LightTable โดยใช้
sudo ln -s path/to/LightTable /usr/games/LightTable
จากนั้นใส่รหัสผ่าน SU จากนั้นคุณสามารถเข้าถึงโปรแกรมของคุณโดยใช้LightTable
ใน terminal
คุณสามารถใส่/usr/bin
หรือ/usr/local/bin
แทนที่/usr/games
สิ่งใดก็ตามที่เป็น$PATH
ไดเรกทอรีไม่จำเป็นต้องเป็นแบบนั้น แต่ฉันขอแนะนำให้คุณวางไว้ใน/usr/local/bin
ฉันยังแนะนำให้คุณเปลี่ยนไฟล์ที่ส่งออกlightpath
แทนLightPath
PATH
ตัวแปรสภาพแวดล้อมมักไม่ใช่วิธีที่ดีที่สุดในการบรรลุเป้าหมายและบางครั้งอาจทำให้ระบบแตกหรือสร้างช่องโหว่ด้านความปลอดภัย (หนึ่งต้องพิจารณา executables อื่น ๆ ที่จะกลายเป็นคำสั่งจากนี้เช่นเดียวกับที่ในPATH
ก็เพิ่ม.) การเพิ่มนามแฝงเปลือกเป็นปกคลุมด้วยคำตอบที่นี่จะดีกว่าสำหรับทุกคนที่ไม่ต้องการที่จะต้องพิจารณาความซับซ้อนดังกล่าว นอกจากนี้ยังปรับให้แคบลงกว่าแอพเฉพาะที่เป็นปัญหา ดังนั้นสิ่งนี้จึงไม่ซ้ำกันของคำถามนั้นถึงแม้ว่าพวกเขาจะทับซ้อนกันเล็กน้อย