Slik gjør du en fil (f.eks. et .sh-skript) kjørbar, slik at den kan kjøres fra en terminal.

Jeg har en script.sh-fil, og filtypen er shellscript-fil. Jeg ønsker å gjøre denne filen til en applikasjon/x-kjørbar fil. Hvordan kan jeg gjøre det?

Løsning

Du kan markere filen som kjørbar:

chmod +x filename.sh

Deretter kan du kjøre den slik:

./filename.sh

Hvis du vil bruke en annen kommando til å starte den, kan du legge til et alias:

gedit ~/.bashrc

Legg til dette på slutten av filen:

alias ='/home//filename.sh'

Åpne en ny terminaløkt eller skriv source ~/.bashrc i terminalen for å bruke den. Deretter er det bare å bruke det nye navnet til å starte skriptet.

Kommentarer (5)

Det finnes to måter å gjøre en fil kjørbar på:

GUI-metoden:

Gå til tillatelsesfanen, og kryss av i boksen `Kjør: [ ] Tillat kjøring av fil som program.

.

Terminal / kommandometode:

Du kan enten bruke:

cd /to/my/required/directory.

Deretter kjører du

chmod +x filnavn.extension.

Eller bare kjør:

chmod +x /sti/til/ditt/filnavn.extension.

chmod har også noen mer avanserte alternativer:

Mellomrommene er for å vise at den er delt opp: - rwx --- --- ---

Det første settet med --- er User. Det andre er Group og det siste er Other (alle andre).

r står for Read, w for Write og x for eXecute.

Så for å tillate alle å lese den, men bare Gruppe å utføre og Bruker å lese og skrive den (men av en eller annen grunn ikke utføre), ville det være:

-rw- rx- r-- Men dette legges til i kommandoen som:

chmod +rw-rx-r-- /sti/til/fil.extension.

chmod kan også gjøre dette i tall. Den er basert på binær (tror jeg, siden det er 1,2 og 4).

Så det er disse tallene:

Utførelse etter bruker er 100. Utførelse av gruppe er 010. Utførelse av andre er 001

Skriving av bruker er 200. Skriving av gruppe er 020. Skriving av andre er 002.

Lesing av bruker er 400. Lesing av gruppe er 040. Lesing av andre er 004.

Deretter legger du disse sammen for å få den ønskede kombinasjonen.

Så for å tillate at alle kan lese den, men bare gruppe kan utføre den og bruker kan skrive den (men av en eller annen grunn ikke utføre den), blir det:

400 + 040 + 004 og 010 og 200.

Det gir 600 + 050 + 004 = 654.

Deretter kan du kjøre kommandoen.

chmod +654 /path/to/file.extension for å angi det.

Og for å angi alle tillatelser kan du skrive:

chmod +rwxrwxrwx /sti/til/fil.utvidelse.

Eller (dette er litt enklere å skrive, men vanskeligere å huske hver enkelt):

chmod +777 /sti/til/fil.utvidelse.

Til slutt kan du gjøre følgende:

chmod -777 /sti/til/fil.utvidelse.

for å fjerne alle tillatelser fra alle.

Og:

chmod +300 /sti/til/fil.utvidelse.

For å legge til lese- og skrivetillatelser for brukeren, uten å påvirke andre tillatelser (f.eks. kjøretillatelser).

Dette nettstedet har en veldig nyttig liten avkrysningsrute, der du kan krysse av for de alternativene du ønsker, og du får kommandoen:

.

Det er imidlertid ikke alle de mulige kombinasjonene som er fornuftige å bruke; de viktigste som brukes, er følgende:

755 - Owner har alle, og Group og Other kan lese og utføre

700 - Eier har alle

644 - Owner kan lese og skrive, og Group og Other kan lese og skrive.

600 - Eier kan både lese og skrive

Og hvis du bruker ikke-trivielle brukergrupper:

775 - Owner kan lese og skrive, og Group og Other kan lese og skrive.

770 - Owner og Group har alle, og Other kan lese og utføre

750 - Eier har alt, og Gruppe kan lese og utføre

664 - Eier og Gruppe kan lese og skrive, og Andre kan bare lese

660 - Eier og Gruppe kan både lese og skrive

640 - Eier kan lese og skrive, og Gruppe kan lese

777 og 666 brukes sjelden, bortsett fra i /tmp.

Takk Ilmari Karonen for å påpeke de som er i vanlig bruk!

Mine pronomen er Han / Ham

Kommentarer (2)

Løp:

chmod +x /path/to/file.sh

For å gjøre den ukjørbar, kjør:

chmod -x /path/to/file.sh

Jeg opprettet for eksempel filen .sh:

vi tester12.sh

Etter at jeg har skrevet litt kode i vi-editoren, går jeg ut av vi-editoren:

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