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?

Rešitev

Datoteko lahko označite kot izvršljivo:

chmod +x filename.sh

Nato jo lahko izvedete na naslednji način:

./filename.sh

Če želite za zagon uporabiti drug ukaz, lahko dodate vzdevek:

gedit ~/.bashrc

Dodajte ga na konec datoteke:

alias ='/home//filename.sh'

Odprite novo sejo terminala ali v terminal vnesite source ~/.bashrc, da jo uporabite. Nato preprosto uporabite novo ime za zagon skripte.

Komentarji (5)

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 je 010. Izvedba po drugih je 001

Pisanje s strani uporabnika je 200. Zapis po skupini je 020. Pisanje po drugih je 002.

Uporabnikovo branje je 400. Branje po skupini je 040. Branje s strani drugih je 004.

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 ter 010 in 200.

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 in Other pa lahko bereta in izvajata

700 - Vlastnik ima vse

644 - Ovlastnik lahko bere in piše, Group in Other pa lahko bereta in pišeta

600 - Vlastnik lahko bere in piše

In če uporabljate netrivialne skupine uporabnikov:

775 - Owner lahko bere in piše, Group in Other pa lahko bereta

770 - Ovlastnik in Group imata vse, Other pa lahko bere in izvaja

750 - `lastnik ima vse, skupina pa lahko bere in izvaja

664 - Vlastnik in Group lahko bereta in pišeta, Other pa lahko samo bere

660 - Vlastnik in Skupina lahko bereta in pišeta

640 - Vlastnik lahko bere in piše, Skupina pa lahko samo bere

777 in 666 se redko uporabljata, razen v /tmp.

Hvala Ilmari Karonen za opozorilo na tiste, ki se pogosto uporabljajo!

Moji zaimki so He / Him

Komentarji (2)

Teči:

chmod +x /path/to/file.sh

Če ga želite onemogočiti, zaženite:

chmod -x /path/to/file.sh

Za primer sem ustvaril datoteko .sh:

vi tester12.sh

Ko napišem nekaj kode v urejevalniku vi, izstopim iz urejevalnika vi:

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