ฉันต้องการทราบว่ามีวิธีการเรียกใช้โปรแกรม / เชลล์สคริปต์โดยไม่ต้องพิมพ์เส้นทางแบบเต็ม:
/opt/idea/bin/idea.sh
ฉันต้องการทราบว่ามีวิธีการเรียกใช้โปรแกรม / เชลล์สคริปต์โดยไม่ต้องพิมพ์เส้นทางแบบเต็ม:
/opt/idea/bin/idea.sh
คำตอบ:
คุณก็สามารถสร้างsymlink /usr/local/bin
สร้างใน สิ่งที่คุณต้องใช้คือเรียกใช้คำสั่ง:
sudo ln -s /full/path/to/your/file /usr/local/bin/name_of_new_command
หลังจากนั้นคุณควรทำให้file
ไฟล์ปฏิบัติการของคุณ:
chmod +x /full/path/to/your/file
ตอนนี้คุณควรจะสามารถทำงานname_of_new_command
ได้ตลอดเวลาในสถานีของคุณ
โปรดทราบว่านี่เป็นทางออกที่ดีสำหรับการใช้งานที่บ้านของ Linux เท่านั้น
/usr/local/bin
จุดนั้นให้ชี้ไปที่สคริปต์ในโฟลเดอร์บ้านส่วนตัวเช่นเนื่องจาก/home/jack/myscript.sh
ผู้ใช้เท่านั้นที่jack
จะสามารถเรียกใช้งานได้ ผู้ใช้รายอื่นจะมองเห็น symlink แต่จะไม่ใช่ไฟล์ที่ชี้ไป ในระบบผู้ใช้คนเดียวสิ่งนี้อาจไม่สำคัญ แต่ก็เป็น "แนวปฏิบัติที่ดี" ในการวางสคริปต์ (หรือลิงก์ไปยังสคริปต์) ที่ผู้ใช้ทุกคนสามารถอ่าน/usr/local/bin
และสคริปต์ส่วนตัวที่สร้างขึ้นเอง (หรือลิงก์ไปยังสคริปต์) ของ ผู้ใช้คนเดียวใน~/bin
โฟลเดอร์ของพวกเขา
คุณสามารถเพิ่มตัวแปร/opt/idea/bin
ของคุณPATH
:
PATH=/opt/idea/bin:"$PATH"
idea.sh
หลังจากนี้คุณสามารถเรียกใช้มันมีเพียงแค่
คุณอาจต้องการเพิ่มบรรทัดนี้ใน~/.bashrc
ไฟล์ของคุณ
idea
คุณจะต้องสร้างลิงค์หรือชื่อแทนโดยใช้ชื่อนั้นชี้ไปที่idea.sh
สคริปต์
idea.sh
สคริปต์ไม่ได้สคริปต์ดังกล่าวในความเป็นจริงการเคลื่อนย้ายมันนอก dir การติดตั้งได้รับการสนับสนุนอย่างสมบูรณ์ กฎการบรรจุภัณฑ์ Debian ไม่ได้ใช้ที่นี่
คุณสามารถสร้างฟังก์ชั่นใน~/.bashrc
:
some-name () {
/path/to/your/file
# or:
#cd /path/to/your
#./path
}
หรือคุณสามารถสร้างalias
:
alias some-name='/path/to/your/file'
# or
#alias some-name='cd /path/to/your/; ./file'
ในทั้งสองกรณีคุณสามารถเรียกใช้ได้โดยโทร:
$ some-name
หากไฟล์ไม่ได้ขึ้นอยู่กับว่ามันทำงานอยู่ที่ใดให้ลองเพิ่มมันเข้าไปที่~/bin
:
mkdir -p ~/bin
cp /path/to/you/file ~/bin
# or mv /path/to/you/file ~/bin
# or ln -s /path/to/you/file ~/bin
~/bin
หากมีอยู่จะถูกเพิ่มไปยังของคุณ$PATH
โดยอัตโนมัติ จากนั้นคุณโทรโดยตรงfile
:
$ file
(แม้ว่าตัวเลือกชื่อที่ไม่ถูกต้องให้ลองเรียกมันว่าบางสิ่งที่ไม่ธรรมดา
file
ของคุณ~/bin
ซึ่งเป็นสิ่งที่ฉันมักจะทำ (สำหรับสคริปต์ที่ยาวกว่า) ฉันอาจแม้แต่จะใส่ที่หนึ่งที่ด้านบน :) alias l='ls -CF'
นามแฝงที่ดีสำหรับทางลัดไปยังคำสั่งที่มีค่าบางอย่างเช่น แม้ว่าฉันจะได้เห็นการใช้นามแฝงที่ยอดเยี่ยมกว่ามาก ฉันมักจะไม่ประกาศฟังก์ชั่นใน~/.bashrc
(ฉันชอบที่จะมีการจัดสคริปต์ทั้งหมดของฉันในไฟล์แยกต่างหาก~/bin
) แม้ว่าทั้งหมดนี้เป็นเรื่องของรสนิยมฉันเดา :)
cd
เพราะสคริปต์อาจขึ้นอยู่กับไดเรกทอรีการทำงาน :) มิฉะนั้นใช่ฉันมักจะใส่ไฟล์ไว้ใน~/bin
ตัวเอง
คุณสามารถสร้างตัวเรียกใช้งานโดยใช้คำสั่งต่อไปนี้:
gnome-desktop-item-edit --create-new <path-where-to-save>
. ฉันจะเปิดหน้าต่างนี้
ตั้งชื่อมันตามที่คุณชอบและในช่องคำสั่งพิมพ์ต่อไปนี้
sh -c '/opt/idea/bin/idea.sh'
และบันทึก
ตอนนี้คุณสามารถเรียกใช้ไฟล์นั้นโดยใช้ตัวเรียกใช้งานที่สร้างขึ้นใหม่
หรือ
คุณสามารถสร้างไฟล์ .desktop โดยมีเนื้อหาดังต่อไปนี้
[Desktop Entry]
Name=<whatever-you-want>
Exec=sh -c '/opt/idea/bin/idea.sh'
Terminal=false
Type=Application
Icon='<path to an icon file if you want>'
ตอนนี้บันทึกด้วย.desktop
ส่วนขยายในสถานที่ใด ๆ
ทำให้สามารถเรียกใช้งานได้ด้วยคำสั่งนี้ chmod a+x <your-desktop-file>
ตอนนี้ดับเบิลคลิกเพื่อเปิด
เราสามารถกำหนดฟังก์ชั่นและเพิ่มปุ่มลัดโดยใช้bind
คำสั่งเพื่อเรียกสิ่งนั้น เปิด~/.bashrc
ไฟล์และเพิ่มบรรทัดเหล่านี้ลงไป:
# define function that opens your program in working directory
Openprog(){
/your-Program/path/here
}
# bind hotkey to it (<F12>)
bind -x '"\e[24~":"Openprog"'
ตอนนี้เมื่อคุณกดF12โปรแกรมของคุณจะเริ่มทำงาน
หมายเหตุ: วิธีที่รวดเร็วในการกำหนดรหัสยกเว้น:
เปิด terminal ของคุณและกด+Ctrl Vตอนนี้กดแป้นพิมพ์ลัดที่คุณชื่นชอบ รหัสหลบหนีที่ถูกต้องควรปรากฏขึ้น เพียงให้แน่ใจว่าจะเข้ามาแทนที่^[
ด้วย\e
ก่อนที่จะเพิ่มทางลัดไปยังเช่นแทนที่ด้วย^[[24~
\e[24~
นอกจากนี้เรายังสามารถเรียกใช้/opt/idea/bin/idea.sh
ไฟล์ได้โดยตรงโดยใช้bash_aliases
เปิด~/.bashrc
ไฟล์โดยเรียกใช้
gedit ~/.bashrc
ลบ#
ก่อนหน้าบรรทัดและบันทึกเพื่อให้บรรทัดมีลักษณะเช่น
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
ตอนนี้เปิด~/.bash_aliases
ไฟล์
gedit ~/.bash_aliases
เพิ่มบรรทัดด้านล่างในไฟล์นั้นและบันทึก
alias idea='cd /opt/idea/bin && sudo ./idea.sh'
ในที่สุดก็แหล่ง~/.bashrc
ไฟล์
source ~/.bashrc
ตอนนี้คุณสามารถเรียกใช้/opt/idea/bin/idea.sh
ไฟล์ได้โดยตรงโดย
idea
นอกเหนือจากคำตอบที่ดีอื่น ๆ แล้วให้พิจารณาเชื่อมโยง~/.local/bin
และเพิ่มไดเรกทอรีนี้ลงใน PATH ของคุณ (จากภายใน.bashrc
ตัวอย่างของคุณ) วิธีนี้ไม่จำเป็นต้องมีการอนุญาตพิเศษ (ซึ่งแตกต่างจากการเชื่อมโยงไปถึง/usr/local/bin
เป็นต้น) ด้วยวิธีนี้คุณอาจมีโครงสร้างไดเรกทอรีมาตรฐานโดยไม่ทำให้ $ HOME หมดไป อ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ที่https://unix.stackexchange.com/คำถามเหล่านี้:
สร้างลิงค์นุ่ม ๆ ของมันใน/usr/bin
direcotyr:
ln -s /usr/bin/idea.sh /opt/idea/bin/idea.sh
ตอนนี้เรียกใช้โดยใช้:
idea.sh
หรือคุณสามารถใช้
nano ~/.bashrc
และเพิ่ม
PATH=/full/path/to/file:"$PATH"
ในตอนท้ายของมันจากนั้นบันทึกและออก หลังจากนั้นคุณสามารถพิมพ์ชื่อไฟล์ได้
ฉันทำตามคำตอบทั้งหมดที่นี่และที่อื่น ๆ และมีไม่กี่คนที่พูดถึงคุณอาจต้องออกจากระบบเพื่อให้คำสั่งทำงานได้ในที่สุด
เพื่อสรุปโดยเฉพาะอย่างยิ่งสำหรับXubuntuแต่สำหรับรุ่นอื่น ๆ ของDebian / Ubuntuและฉันได้เขียนคำแนะนำง่ายๆเหล่านี้
(ในคำแนะนำต่อไปนี้เราใช้ directory ~ / binเพราะเป็นสถานที่โดยอัตโนมัติจากที่ระบบปฏิบัติการเหล่านี้ค้นหาคำสั่งดูที่นี่ :
# Open Terminal with Ctrl + Alt + T (or your system's own shortcut)
# You'll work in your home folder, no need to use sudo for any of this
cd # Go to home directory
mkdir -p bin # Create folder ~/bin if it doesn't exist
# Be careful not to type /bin, that's the bin folder in system root: /
sudo apt install nano # Skip this if you have Nano installed
nano bin/yournewcommand
# In Nano, type:
printf "Your new command works! \n" # \n means line break
# Ctrl+X To leave Nano
# Ctrl+Y To save the unsaved file
# Enter to confirm
chmod +x bin/yournewcommand
yournewcommand # If you just created the bin folder, this command might not yet work.
# You must now log out and log back in to make the bin folder noticed (I think)
yournewcommand # Now it works! (You can use Tab to autocomplete the command you're typing)
# If you add a second file/command, it should work without logging out (at least in my tests)