วิธีการใช้ ln -s เพื่อสร้างทางลัดบรรทัดคำสั่ง?


11

ฉันมีไฟล์ sh ที่ฉันต้องการที่จะสามารถเปิดได้จาก terminal ได้ตลอดเวลา ฉันต้องการพิมพ์ "studio" ใน terminal และเปิด android studio

ฉันจำได้ว่าเคยใช้ln -sในการทำสิ่งนี้ แต่ฉันลืมและเสียเวลาไปกับการค้นหาเว็บแล้ว

นอกจากนี้ลิงก์สัญลักษณ์ที่สร้างขึ้นเก็บไว้ในไดเรกทอรีใด?

นี่คือไวยากรณ์จากความพยายามของฉันไม่พบคำสั่ง

ricardo@debian:~$ ln -s /opt/android-studio/bin/studio.sh studio
ricardo@debian:~$ studio
bash: studio: command not found

./studioความพยายาม
เซบาสเตียน

ฉันต้องการที่จะเชื่อมโยงไปยัง. / สตูดิโอที่ฉันสามารถเปิดได้จากทุกที่เพียงแค่พิมพ์ในสตูดิโอหรือ
Banana

หากคุณต้องการรันสคริปต์จากที่ใดก็ตามโดยใช้studioเพียงอย่างเดียวคุณต้องวางลิงก์ไว้ในที่ที่เชลล์ทำการค้นหา echo $PATHการค้นหาทุกอย่างในเปลือก คุณสามารถเปลี่ยนหรือวางการเชื่อมโยงเป็นหนึ่งในไดเรกทอรีของ$PATH $PATHคุณชอบอะไร
เซบาสเตียน

4
@Sebastian โปรดใช้คำตอบเพื่อตอบคำถามไม่ใช่ความคิดเห็น และโปรดอย่าแนะนำให้ลบคำถามหลังจากตอบคำถามแล้ว เรามาที่นี่เพื่อสร้างคลังเก็บของคำตอบที่อยู่รอบ ๆ และเป็นประโยชน์ต่อผู้เข้าชมในอนาคต
Gilles 'หยุดชั่วร้าย'

1
คุณอาจชอบaliasคำสั่งที่ใช้กันทั่วไปแทนการสร้างลิงค์สัญลักษณ์เพื่อย่อชื่อคำสั่ง
Winny

คำตอบ:


10

คำสั่งที่คุณรันสร้างลิงก์สัญลักษณ์ในไดเร็กทอรีปัจจุบัน ตัดสินโดยพรอมต์ไดเรกทอรีปัจจุบันคือไดเรกทอรีบ้านของคุณ การสร้างลิงก์สัญลักษณ์ไปยังโปรแกรมที่เรียกใช้งานได้ในโฮมไดเร็กตอรี่ของคุณนั้นไม่มีประโยชน์อย่างยิ่ง

เมื่อคุณพิมพ์ชื่อของโปรแกรมที่เปลือกจะมองหาในไดเรกทอรีที่ระบุไว้ในตัวแปรสภาพแวดล้อมPATH echo $PATHหากต้องการดูค่าของตัวแปรนี้เรียกใช้ ไดเร็กทอรีถูกคั่นด้วยโคลอน ( :) เส้นทางทั่วไปเป็น/home/ricardo/bin:/usr/local/bin:/usr/bin:/binแต่มีการเปลี่ยนแปลงมากมายที่นั่น

$PATHคุณจำเป็นต้องสร้างการเชื่อมโยงสัญลักษณ์นี้ในหนึ่งในไดเรกทอรีที่ระบุไว้ใน หากคุณต้องการให้ผู้ใช้ทุกคนสามารถสร้างคำสั่งได้ให้สร้างลิงค์ใน/usr/local/bin:

sudo ln -s /opt/android-studio/bin/studio.sh /usr/local/bin/studio

หากคุณต้องการให้คำสั่งพร้อมใช้งานสำหรับคุณเท่านั้น (ซึ่งเป็นไปได้เฉพาะหากคุณไม่มีสิทธิ์ของผู้ดูแลระบบ) ให้สร้างลิงค์ใน~/bin( binไดเรกทอรีย่อยของโฮมไดเร็กตอรี่ของคุณ)

ln -s /opt/android-studio/bin/studio.sh ~/bin/studio

หากการแจกจ่ายของคุณไม่ได้อยู่/home/ricardo/binในPATH(ซึ่ง/home/ricardoเป็นโฮมไดเร็กตอรี่ของคุณ), สร้างมันขึ้นมาก่อนmkdir ~/binและเพิ่มลงในของคุณPATHโดยเพิ่มบรรทัดต่อไปนี้เพื่อ~/.profile(สร้างไฟล์หากไม่มีอยู่):

PATH=~/bin:$PATH

.profileไฟล์อ่านเมื่อคุณเข้าสู่ระบบ. คุณสามารถอ่านได้ในขั้วปัจจุบันโดยการเรียกใช้. ~/.profile(นี้ใช้เฉพาะกับโปรแกรมเริ่มต้นจากสถานีนั้น)


1
+1 แต่ตามความคิดเห็นของ Winny ฉันคิดว่าชื่อแทน~/.bashrcจะตรงไปตรงมามากกว่า
Sparhawk

@Sparhawk นามแฝงจะใช้เพื่อเรียกใช้โปรแกรมจากเชลล์แบบโต้ตอบเท่านั้นไม่ใช่จากสคริปต์ทางลัดบนเดสก์ท็อปหรือโปรแกรมอื่น ๆ
Gilles 'หยุดความชั่วร้าย' ใน

1
จริง แต่คำถามระบุI would like to type "studio" into the terminalและสิ่งนี้มีความหมายโดยนัยจากชื่อและคำสั่งที่ยกมา
Sparhawk

1

วิธีที่ง่ายที่สุดในการทำให้ความปรารถนาของคุณคือการใช้นามแฝง ประเภท:

alias studio=/opt/android-studio/bin/studio.sh

หรือป้อนชื่อแทนที่เกี่ยวข้องลงใน. profile หรือดีกว่า: สิ่งที่เชลล์ของคุณใช้เป็น $ ENV

โปรดทราบว่าคุณยังอาจต้องเพิ่ม

/opt/android-studio/bin

ไปที่ PATH ของคุณเพื่อให้สามารถใช้ซอฟต์แวร์ได้ ที่ดีที่สุดคือการลองก่อนว่ามันจะทำงานโดยไม่ต้องขยายเส้นทาง

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