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?

Løsning

Du kan markere filen som eksekverbar:

chmod +x filename.sh

Du kan derefter udføre den på denne måde:

./filename.sh

Hvis du ønsker at bruge en anden kommando til at starte den, kan du tilføje et alias:

gedit ~/.bashrc

Tilføj dette i slutningen af filen:

alias ='/home//filename.sh'

Å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.

Kommentarer (5)

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 eller cd /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 er 010. Execute by other er 001

Skrivning af brugeren er 200. Skrivning af gruppe er 020. Skrivning af andre er 002.

Læsning af bruger er 400. Læsning af gruppe er 040. Læsning af andre er 004.

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 og 010 og 200.

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, og Group og Other kan læse og udføre

700 - Ejer har alle

644 - Owner kan læse og skrive, og Group og Other kan læse og skrive

600 - Ejer kan læse og skrive

Og, hvis du bruger ikke-trivielle brugergrupper:

775 - Owner kan læse og skrive, og Group og Other kan læse

770 - Owner og Group har alle, og Other kan læse og udføre

750 - Ejer har alle, og Gruppe kan læse og udføre

664 - Ejer og Gruppe kan læse og skrive, og Andre kan kun læse

660 - Ejer og Gruppe kan læse og skrive

640 - Ejer kan læse og skrive, og Gruppe kan læse

777 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

Kommentarer (2)

Kør:

chmod +x /path/to/file.sh

For at gøre den uudførlig, skal du køre:

chmod -x /path/to/file.sh

For eksempel har jeg oprettet .sh-filen:

vi tester12.sh

Når jeg har skrevet noget kode på vi editor, afslutter jeg vi editor:

:wq!
chmod +x tester12.sh
./tester12.sh
Kommentarer (0)