Kako narediti datoteko (npr. skripto .sh) izvršljivo, da jo lahko zaženete iz terminala
Imam datoteko script.sh in tip te datoteke je datoteka lupine. To datoteko želim narediti kot aplikacijo/x-izvedljivo datoteko. Kako lahko to naredim?
252
3
Datoteko lahko označite kot izvršljivo:
Nato jo lahko izvedete na naslednji način:
Če želite za zagon uporabiti drug ukaz, lahko dodate vzdevek:
Dodajte ga na konec datoteke:
Odprite novo sejo terminala ali v terminal vnesite
source ~/.bashrc
, da jo uporabite. Nato preprosto uporabite novo ime za zagon skripte.Datoteko lahko naredite izvršljivo na dva načina:
Metoda uporabniškega vmesnika:
Pojdite na zavihek Dovoljenja in označite polje `Izvrši: [ ] Dovoli izvajanje datoteke kot programa.
Metoda terminala / ukaza:
Uporabite lahko:
cd /to/my/required/directory
Nato zaženite
chmod +x ime datoteke.razširitev
Ali pa preprosto zaženite:
chmod +x /path/to/your/filename.extension
chmod
ima tudi nekaj naprednejših možnosti:S presledki je prikazano, da je razcepljen:
- rwx --- ---
Prvi niz
---
je Uporabnik. Drugi niz je Skupina, zadnji pa Drugi (kdor koli drug).r pomeni Branje, w pomeni Pisanje in x pomeni Izvajanje.
Če bi torej vsem dovolili branje, samo Skupini pa izvajanje, Uporabniku pa branje in pisanje (vendar iz nekega razloga ne izvajanje), bi bilo naslednje:
To bi v ukaz dodali kot:
-rw- rx- r--
:chmod +rw-rx-r-- /path/to/file.extension
chmod
lahko to stori tudi v številkah. Temelji na binarni obliki (mislim, da je 1,2 in 4).Torej obstajajo te številke:
Izvedba s strani uporabnika je
100
. Izvršitev po skupini je010
. Izvedba po drugih je 001Pisanje s strani uporabnika je
200
. Zapis po skupini je020
. Pisanje po drugih je002
.Uporabnikovo branje je
400
. Branje po skupini je040
. Branje s strani drugih je004
.Nato jih seštejete, da dobite želeno kombinacijo.
Če bi torej vsem omogočili branje, a samo skupini izvajanje, uporabniku pa pisanje (vendar iz nekega razloga ne izvajanje), bi bilo to naslednje:
400 + 040 + 004
ter010
in200
.To pomeni 600 + 050 + 004 = 654.
Nato lahko zaženete ukaz.
chmod +654 /path/to/file.extension
, da ga nastavite.Za nastavitev vseh dovoljenj pa lahko vnesete:
/path/to/file.extension
:
chmod +rwxrwxrwx /path/to/file.extension`Ali (to je nekoliko lažje napisati, vendar si je težje zapomniti vsakega od njih):
chmod +777 /pot/do/datoteka.razširitev
Nazadnje lahko naredite:
chmod -777 /smer/do/file.extension
Če želite vsem odvzeti vsa dovoljenja.
In:
chmod +300 /pot/do/file.extension
Če želite dodati branje in pisanje za uporabnika, ne da bi to vplivalo na druga dovoljenja (npr. dovoljenja za izvajanje).
Ta spletna stran ima zelo uporabno majhno mrežo, v kateri lahko označite želene možnosti in dobite ukaz:
tukaj vpišite opis slike
Vendar pa ni smiselno uporabljati vseh možnih kombinacij; glavne, ki se uporabljajo, so naslednje:
755 -
Owner
ima vse,Group
inOther
pa lahko bereta in izvajata700 -
Vlastnik
ima vse644 -
Ovlastnik
lahko bere in piše,Group
inOther
pa lahko bereta in pišeta600 -
Vlastnik
lahko bere in pišeIn če uporabljate netrivialne skupine uporabnikov:
775 -
Owner
lahko bere in piše,Group
inOther
pa lahko bereta770 -
Ovlastnik
inGroup
imata vse,Other
pa lahko bere in izvaja750 - `
lastnik
ima vse,skupina
pa lahko bere in izvaja664 -
Vlastnik
inGroup
lahko bereta in pišeta,Other
pa lahko samo bere660 -
Vlastnik
inSkupina
lahko bereta in pišeta640 -
Vlastnik
lahko bere in piše,Skupina
pa lahko samo bere777 in 666 se redko uporabljata, razen v /tmp.
Hvala Ilmari Karonen za opozorilo na tiste, ki se pogosto uporabljajo!
Moji zaimki so He / Him
Teči:
Če ga želite onemogočiti, zaženite:
Za primer sem ustvaril datoteko
.sh
:Ko napišem nekaj kode v urejevalniku vi, izstopim iz urejevalnika vi: