Έχω ένα αρχείο script.sh και ο τύπος αυτού του αρχείου είναι αρχείο shellscript. Θέλω να μετατρέψω αυτό το αρχείο σε εκτελέσιμο αρχείο application/x. Πώς μπορώ να το κάνω;
Μπορείτε να επισημάνετε το αρχείο ως εκτελέσιμο:
chmod +x filename.sh
Στη συνέχεια, μπορείτε να το εκτελέσετε ως εξής:
./filename.sh
Αν θέλετε να χρησιμοποιήσετε μια διαφορετική εντολή για την εκκίνησή της, μπορείτε να προσθέσετε ένα ψευδώνυμο:
gedit ~/.bashrc
Προσθέστε το στο τέλος του αρχείου:
alias <new name>='/home/<full path to script>/filename.sh'
Ανοίξτε μια νέα συνεδρία τερματικού ή πληκτρολογήστε source ~/.bashrc
στο τερματικό σας για να το εφαρμόσετε.
Στη συνέχεια, απλά χρησιμοποιήστε το νέο όνομα για να ξεκινήσετε το σενάριο.
Υπάρχουν δύο τρόποι για να γίνει ένα αρχείο εκτελέσιμο:
Μέθοδος GUI:
Μεταβείτε στην καρτέλα δικαιωμάτων και, στη συνέχεια, τσεκάρετε το πλαίσιο `Εκτέλεση: [ ] Να επιτρέπεται η εκτέλεση του αρχείου ως πρόγραμμα.
Μέθοδος τερματικού / εντολών:
Μπορείτε είτε να χρησιμοποιήσετε:
cd /to/my/required/directory
Στη συνέχεια, εκτελέστε
chmod +x filename.extension
Ή απλά τρέξτε:
chmod +x /path/to/your/filename.extension
Το chmod
έχει επίσης κάποιες πιο προηγμένες επιλογές:
Τα κενά είναι για να δείξουν ότι έχει χωριστεί: - rwx --- --- ---
Το πρώτο σετ του ---
είναι το User. Το δεύτερο είναι το Group και το τελευταίο είναι το Other (οποιοσδήποτε άλλος).
Το r σημαίνει Read (ανάγνωση), το w Write (εγγραφή) και το x eXecute (εκτέλεση).
Έτσι, για να επιτρέψετε σε όλους να το διαβάσουν, αλλά μόνο στο Group να το εκτελέσει και στο User να το διαβάσει και να το γράψει (αλλά για κάποιο λόγο όχι να το εκτελέσει) θα ήταν:
-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 +rwxrwxrwxrwx /path/to/file.extension
Ή (αυτό είναι λίγο πιο εύκολο να το γράψετε, αλλά πιο δύσκολο να θυμάστε το καθένα):
chmod +777 /path/to/file.extension
Τέλος, μπορείτε να κάνετε:
chmod -777 /path/to/file.extension
Για να αφαιρέσετε όλα τα δικαιώματα από όλους.
Και:
chmod +300 /path/to/file.extension
Για να προσθέσετε δικαιώματα ανάγνωσης και εγγραφής για τον χρήστη, χωρίς να επηρεαστούν άλλα δικαιώματα (π.χ. δικαιώματα εκτέλεσης).
Αυτός ο ιστότοπος έχει ένα πολύ χρήσιμο μικρό πλέγμα με κουτάκια ελέγχου, όπου μπορείτε να τσεκάρετε τις επιλογές που θέλετε και σας δίνει την εντολή:
Ωστόσο, δεν είναι λογικό να χρησιμοποιούνται όλοι οι πιθανοί συνδυασμοί- οι κυριότεροι που χρησιμοποιούνται είναι οι ακόλουθοι:
755 - Ο ιδιοκτήτης
έχει όλα, και η Ομάδα
και ο Άλλος
μπορούν να διαβάζουν και να εκτελούν
700 - Ο "Ιδιοκτήτης" έχει όλα τα δικαιώματα.
644 - Ο "Ιδιοκτήτης" μπορεί να διαβάζει και να γράφει, και η "Ομάδα" και οι "Άλλοι" μπορούν να διαβάζουν
600 - Ο "Ιδιοκτήτης" μπορεί να διαβάζει και να γράφει
Και, αν χρησιμοποιείτε μη τετριμμένες ομάδες χρηστών:
775 - Ο ιδιοκτήτης
μπορεί να διαβάζει και να γράφει, και οι Ομάδα
και Άλλος
μπορούν να διαβάζουν
770 - Ο ιδιοκτήτης
και η Ομάδα
έχουν όλα, και ο Άλλος
μπορεί να διαβάσει και να εκτελέσει
750 - Ο "Ιδιοκτήτης" έχει όλα, και η "Ομάδα" μπορεί να διαβάσει και να εκτελέσει.
664 - Ο "Ιδιοκτήτης" και η "Ομάδα" μπορούν να διαβάζουν και να γράφουν και ο "Άλλος" μπορεί μόνο να διαβάζει.
660 - Ο "Ιδιοκτήτης" και η "Ομάδα" μπορούν να διαβάζουν και να γράφουν
640 - Ο "Ιδιοκτήτης" μπορεί να διαβάζει και να γράφει και η "Ομάδα" μπορεί να διαβάζει
Τα 777 και 666 χρησιμοποιούνται σπάνια, εκτός από το /tmp.
Ευχαριστούμε τον Ilmari Karonen για την επισήμανση αυτών που χρησιμοποιούνται συνήθως!
Οι αντωνυμίες μου είναι He / Him
Τρέξτε:
chmod +x /path/to/file.sh
Για να το κάνετε μη εκτελέσιμο, εκτελέστε το εξής: {{{{F}}:
chmod -x /path/to/file.sh
Για παράδειγμα, δημιούργησα το αρχείο .sh
:
vi tester12.sh
Αφού γράψω κάποιο κώδικα στον επεξεργαστή vi, θα βγω από τον επεξεργαστή vi:
:wq!
chmod +x tester12.sh
./tester12.sh