Sådan gør du en fil (f.eks. et .sh-script) eksekverbar, så den kan køres fra en terminal
Jeg har en script.sh-fil, og typen af denne fil er shellscript-fil. Jeg ønsker at gøre denne fil til en applikation/x-eksekverbar fil. Hvordan kan jeg gøre det?
252
3
Du kan markere filen som eksekverbar:
Du kan derefter udføre den på denne måde:
Hvis du ønsker at bruge en anden kommando til at starte den, kan du tilføje et alias:
Tilføj dette i slutningen af filen:
Åbn en ny terminalsession eller skriv
source ~/.bashrc
i din terminal for at anvende den. Derefter skal du blot bruge det nye navn til at starte scriptet.Der er to måder at gøre en fil eksekverbar på:
GUI-metode:
Gå til fanen tilladelser, og sæt kryds i feltet `Execute: [ ] Tillad eksekvering af fil som program.
Terminal / Kommandometode:
Du kan enten bruge:
Du kan enten bruge:
cd /to/my/required/directory
ellercd /to/my/required/directory
.Derefter kan du køre
chmod +x filnavn.udvidelse
Eller bare kør:
chmod +x /path/to/your/filename.extension`
chmod
har også nogle mere avancerede muligheder:Mellemrummene viser, at den er opdelt:
- rwx --- --- ---
Det første sæt af
---
er User. Det andet er Group og det sidste er Other (alle andre)r står for Read (læse), w for Write (skrive) og x for eXecute (udføre).
Så at tillade alle at læse den, men kun Group at udføre og User at læse og skrive den (men af en eller anden grund ikke at udføre) ville være:
-rw- rx- r--
Men dette ville blive tilføjet til kommandoen som:-rw- rx- r--
:chmod +rw-rx-r-- /sti/til/fil.extension
.chmod
kan også gøre dette i tal. Den er baseret på binær (tror jeg, da det er 1,2 og 4)Så der er disse tal:
Udfør af brugeren er
100
. Eksekvering efter gruppe er010
. Execute by other er 001Skrivning af brugeren er
200
. Skrivning af gruppe er020
. Skrivning af andre er002
.Læsning af bruger er
400
. Læsning af gruppe er040
. Læsning af andre er004
.Derefter lægger du disse sammen for at få den ønskede kombination.
Så for at tillade alle at læse det, men kun Group at udføre og User at skrive det (men af en eller anden grund ikke at udføre) ville det være:
400 + 040 + 004
og010
og200
.Det giver 600 + 050 + 004 = 654.
Du kan derefter køre kommandoen.
chmod +654 /path/to/file.extension
for at indstille den.Og for at indstille alle tilladelser kan du skrive:
Hvis du vil indstille alle tilladelser:
chmod +rwxrwxrwx /path/to/file.extension
.Eller (dette er lidt nemmere at skrive, men sværere at huske hver enkelt):
chmod +777 /path/to/file.extension
.Endelig kan du gøre:
chmod -777 /sti/til/fil.extension
For at tage alle tilladelser fra alle.
Og:
chmod +300 /path/to/file.extension`
For at tilføje læse- og skrivetilladelser til brugeren, uden at det påvirker andre tilladelser (f.eks. udførelsestilladelser).
Dette websted har en meget nyttig lille checkbox-ting, hvor du kan afkrydse de muligheder du ønsker, og den giver dig kommandoen:
Det er dog ikke alle de mulige kombinationer, der er fornuftige at bruge; de vigtigste, der bruges, er følgende:
755 -
Owner
har alt, ogGroup
ogOther
kan læse og udføre700 -
Ejer
har alle644 -
Owner
kan læse og skrive, ogGroup
ogOther
kan læse og skrive600 -
Ejer
kan læse og skriveOg, hvis du bruger ikke-trivielle brugergrupper:
775 -
Owner
kan læse og skrive, ogGroup
ogOther
kan læse770 -
Owner
ogGroup
har alle, ogOther
kan læse og udføre750 -
Ejer
har alle, ogGruppe
kan læse og udføre664 -
Ejer
ogGruppe
kan læse og skrive, ogAndre
kan kun læse660 -
Ejer
ogGruppe
kan læse og skrive640 -
Ejer
kan læse og skrive, ogGruppe
kan læse777 og 666 bruges sjældent, undtagen i /tmp.
Tak Ilmari Karonen for [at påpege dem, der er i almindelig brug!
Mine pronominer er He / Him
Kør:
For at gøre den uudførlig, skal du køre:
For eksempel har jeg oprettet
.sh
-filen:Når jeg har skrevet noget kode på vi editor, afslutter jeg vi editor: