ฉันมีไฟล์ script.sh และประเภทของไฟล์นี้คือไฟล์ shellscript ฉันต้องการให้ไฟล์นี้เป็นไฟล์แอปพลิเคชัน / ไฟล์ที่เรียกทำงานได้ x ฉันจะทำมันได้อย่างไร
ฉันมีไฟล์ script.sh และประเภทของไฟล์นี้คือไฟล์ shellscript ฉันต้องการให้ไฟล์นี้เป็นไฟล์แอปพลิเคชัน / ไฟล์ที่เรียกทำงานได้ x ฉันจะทำมันได้อย่างไร
คำตอบ:
คุณสามารถทำเครื่องหมายไฟล์เป็นไฟล์เรียกทำงาน:
chmod +x filename.sh
จากนั้นคุณสามารถดำเนินการเช่นนี้:
./filename.sh
หากคุณต้องการใช้คำสั่งอื่นเพื่อเริ่มใช้งานคุณสามารถเพิ่มนามแฝงได้:
gedit ~/.bashrc
เพิ่มในตอนท้ายของไฟล์:
alias <new name>='/home/<full path to script>/filename.sh'
เปิดเทอร์มินัลเซสชันใหม่หรือพิมพ์source ~/.bashrc
ในเทอร์มินัลของคุณเพื่อนำไปใช้ จากนั้นใช้ชื่อใหม่เพื่อเริ่มสคริปต์
./filename.sh
เช่นนั้นไม่ใช่แค่filename.sh
?
filename
ไม่ต้องติดตั้ง./filename
./filename.sh
ระบุไฟล์ในไดเรกทอรีปัจจุบันและการใช้จะfilename.sh
ระบุไฟล์ในไดเรกทอรีปัจจุบันหรือไดเรกทอรีใด ๆ ของ PATH การใช้งานครั้งแรกจะลบความไม่แน่นอนใด ๆ ที่ไฟล์ถูกเข้าถึง ในกรณีนี้คุณกำลังพยายามรันสคริปต์ด้วย bash หรือล่ามอื่น (โดยอาศัยการสันนิษฐานว่า#!/bin/bash
เป็นบรรทัดแรกในสคริปต์ของคุณ) เพียงแค่ป้อนชื่อไฟล์ การใช้งานนี้ต้องระบุไดเรกทอรี หรือคุณสามารถลองใช้bash filename.sh
ซึ่งดูเหมือนว่าจะทำงานกับไดเรกทอรีที่ไม่ได้ระบุ
มีสองวิธีในการสร้างไฟล์ที่เรียกใช้งานได้:
วิธี GUI:
ไปที่แท็บการอนุญาตจากนั้นทำเครื่องหมายที่กล่อง `ดำเนินการ: [] อนุญาตให้เรียกใช้ไฟล์เป็นโปรแกรม
เทอร์มินัล / วิธีสั่ง:
คุณสามารถใช้:
cd /to/my/required/directory
จากนั้นเรียกใช้
chmod +x filename.extension
หรือเพียงแค่เรียกใช้:
chmod +x /path/to/your/filename.extension
chmod
ยังมีตัวเลือกขั้นสูงเพิ่มเติม:
ช่องว่างคือการแสดงให้เห็นว่ามันถูกแบ่ง: - rwx --- ---
ชุดแรกของ---
คือผู้ใช้ ที่สองคือกลุ่มและสุดท้ายคืออื่น ๆ (คนอื่น)
r หมายถึง Read, w สำหรับ Write และ x สำหรับ eXecute
ดังนั้นเพื่อให้ทุกคนอ่าน แต่มีเพียงกลุ่มที่จะดำเนินการและผู้ใช้สามารถอ่านและเขียน (แต่ด้วยเหตุผลบางอย่างที่ไม่ได้ดำเนินการ) จะเป็น:
-rw- rx- r--
แต่สิ่งนี้จะถูกเพิ่มไปยังคำสั่งเป็น:
chmod +rw-rx-r-- /path/to/file.extension
chmod
ยังสามารถทำสิ่งนี้เป็นตัวเลข มันขึ้นอยู่กับไบนารี (ฉันคิดว่ามันเป็น 1,2 และ 4)
ดังนั้นจึงมีตัวเลขเหล่านี้:
100
ดำเนินการโดยผู้ใช้เป็น 010
ดำเนินการโดยกลุ่มคือ ดำเนินการโดยคนอื่นคือ 001
200
เขียนโดยผู้ใช้เป็น 020
เขียนโดยกลุ่มคือ เขียนโดยอื่น ๆ 002
คือ
400
อ่านโดยผู้ใช้เป็น 040
อ่านโดยกลุ่มคือ อ่านจากอื่น ๆ 004
คือ
จากนั้นคุณเพิ่มเหล่านี้เข้าด้วยกันเพื่อให้ได้ชุดที่ต้องการ
ดังนั้นเพื่อให้ทุกคนอ่าน แต่มีเพียงกลุ่มที่จะดำเนินการและผู้ใช้เขียน (แต่ด้วยเหตุผลบางอย่างที่ไม่ได้ดำเนินการ) จะเป็น:
400 + 040 + 004
และ010
และ200
ที่เพิ่มขึ้นถึง 600 + 050 + 004 = 654
จากนั้นคุณสามารถเรียกใช้คำสั่ง
chmod +654 /path/to/file.extension
เพื่อตั้งค่า
และเพื่อตั้งค่าการอนุญาตทั้งหมดคุณสามารถพิมพ์:
chmod +rwxrwxrwx /path/to/file.extension
หรือ (นี่ง่ายกว่าการเขียน แต่จำยากกว่ากัน):
chmod +777 /path/to/file.extension
ในที่สุดคุณสามารถทำได้:
chmod -777 /path/to/file.extension
เพื่อนำสิทธิ์ทั้งหมดออกไปจากทุกคน
และ:
chmod +300 /path/to/file.extension
ในการเพิ่มการอ่านและการเขียนสำหรับผู้ใช้โดยไม่ส่งผลกระทบต่อสิทธิ์อื่น ๆ (เช่นเรียกใช้งานสิทธิ์)
เว็บไซต์นี้มีช่องทำเครื่องหมายกริดเล็ก ๆ ที่มีประโยชน์มากโดยคุณสามารถทำเครื่องหมายตัวเลือกที่คุณต้องการและให้คำสั่งกับคุณ:
อย่างไรก็ตามไม่ใช่ชุดค่าผสมที่เป็นไปได้ทั้งหมดที่เหมาะสมที่จะใช้ หลักที่ใช้มีดังต่อไปนี้:
755 - Owner
มีทั้งหมดGroup
และOther
สามารถอ่านและดำเนินการได้
700 - Owner
มีทั้งหมด
644 - Owner
สามารถอ่านและเขียนGroup
และOther
สามารถอ่านได้
600 - Owner
สามารถอ่านและเขียนได้
และหากคุณใช้กลุ่มผู้ใช้ที่ไม่สำคัญ:
775 - Owner
สามารถอ่านและเขียนGroup
และOther
สามารถอ่านได้
770 - Owner
และGroup
มีทั้งหมดและOther
สามารถอ่านและดำเนินการได้
750 - Owner
มีทั้งหมดและGroup
สามารถอ่านและดำเนินการได้
664 - Owner
และGroup
สามารถอ่านและเขียนและOther
สามารถอ่านได้
660 - Owner
และGroup
สามารถอ่านและเขียนได้
640 - Owner
สามารถอ่านและเขียนและGroup
สามารถอ่านได้
ไม่ค่อยได้ใช้ 777 และ 666 ยกเว้นใน / tmp
ขอบคุณIlmari Karonen ที่ชี้ให้เห็นการใช้งานทั่วไป!
วิ่ง:
chmod +x /path/to/file.sh
หากต้องการยกเลิกการปฏิบัติการให้รัน:
chmod -x /path/to/file.sh
ตัวอย่างเช่นฉันสร้าง.sh
ไฟล์:
vi tester12.sh
หลังจากที่ฉันเขียนโค้ดลงบนตัวแก้ไข vi ฉันจะออกจากตัวแก้ไข vi:
:wq!
chmod +x tester12.sh
./tester12.sh