Bende bir tane var. script.sh dosya ve bu dosyanın türü shellscript dosyasıdır. Bu dosyayı application / x yürütülebilir dosyası olarak yapmak istiyorum. Bunu nasıl yapabilirim?
Dosyayı yürütülebilir olarak işaretleyebilirsiniz:
chmod +x filename.sh
Daha sonra bu şekilde yürütebilirsiniz:
./filename.sh
Başlatmak için farklı bir komut kullanmak isterseniz, bir takma ad ekleyebilirsiniz:
gedit ~/.bashrc
Bunu dosyanın sonuna ekleyin:
alias <new name>='/home/<full path to script>/filename.sh'
Yeni bir terminal oturumu açın veya yazın source ~/.bashrc
başvurmak için terminalinizde.Ardından, komut dosyasını başlatmak için yeni adı kullanmanız yeterlidir.
Bir dosyayı yürütülebilir hale getirmenin iki yolu vardır:
GUI Yöntemi:
Dosyayı sağ tıklatın ve Özellikler'i seçin.İzinler sekmesine gidin ve kutuyu işaretleyin Execute: [ ] Allow executing file as program
veya Nautilus'ta Program: [ ] Allow this file to run as a program
Thunar içinde.
Terminal / Komut yöntemi:
Her ikisini de kullanabilirsiniz:
cd /to/my/required/directory
Sonra koş
chmod +x filename.extension
Ya da sadece koş:
chmod +x /path/to/your/filename.extension
chmod
ayrıca bazı daha gelişmiş seçenekler var mı:
Boşluklar ayrıldığını göstermek içindir.: - rwx --- ---
İlk set ---
kullanıcıdır. İkincisi Gruptur ve sonuncusu Diğeridir (başkası)
r okuma, w yazma ve x yürütme anlamına gelir.
Herkes tek Grup okumak, ama Kullanıcı yürütmek ve okuma yazma (ama nedense değil yürütme) izin vermek olurdu yani :
-rw- rx- r--
Ancak bu, komuta şu şekilde eklenecektir:
chmod +rw-rx-r-- /path/to/file.extension
chmod
bunu sayılarla da yapabilirsiniz. İkili (1,2 ve 4 olduğu için sanırım) dayanmaktadır.
Yani bu sayılar var:
Kullanıcı tarafından çalıştır 100
.Gruba göre çalıştır 010
.Diğer tarafından yürütülür 001
.
Kullanıcı tarafından yazma 200
.Gruba göre yaz 020
.Başkaları tarafından yazmak 002
.
Kullanıcı tarafından okunan 400
.Gruba göre oku 040
.Başkaları tarafından okunan 004
.
Ardından istediğiniz kombinasyonu elde etmek için bunları bir araya getirirsiniz.
Herkes tek Grup okumak, ama Kullanıcı çalıştırıp (ama nedense yürütmek değil) yazmak için izin vermek olurdu yani :
400 + 040 + 004
ve 010
ve 200
Bu kadar ekler 600 + 050 + 004 = 654.
Daha sonra komutu çalıştırabilirsiniz.
chmod +654 /path/to/file.extension
bunu ayarlamak için.
Ve yazabileceğiniz tüm izinleri ayarlamak için:
chmod +rwxrwxrwx /path/to/file.extension
Veya (bu yazmak biraz daha kolay, ancak her birini hatırlamak daha zor):
chmod +777 /path/to/file.extension
Son olarak, şunları yapabilirsiniz:
chmod -777 /path/to/file.extension
Tüm izinleri herkesten almak için.
Ve:
chmod +300 /path/to/file.extension
Başka izinleri etkilemeden (örn. Yürütme izinleri) kullanıcı için okuma ve yazma eklemek için kullanılır.
Bu web sitesi istediğiniz seçenekleri işaretleyebileceğiniz çok kullanışlı küçük bir ızgara onay kutusu var ve size komutu veriyor:
Bununla birlikte, olası tüm kombinasyonların kullanılması mantıklı değildir; kullanılan başlıca kombinasyonlar şunlardır:
755 - Owner
her şeye sahiptir ve Group
ve Other
okuyabilir ve yürütebilir
700 - Owner
tüm
644 - Owner
okuyabilir ve yazabilir ve Group
ve Other
okuyabilir
600 - Owner
okuma yazma
Ve önemsiz olmayan kullanıcı grupları kullanıyorsanız:
775 - Owner
okuyabilir ve yazabilir ve Group
ve Other
okuyabilir
770 - Owner
ve Group
hepsine sahip ol ve Other
okuyabilir ve yürütebilir
750 - Owner
her şeye sahiptir ve Group
okuyabilir ve yürütebilir
664 - Owner
ve Group
okuyabilir ve yazabilir ve Other
sadece okuyabilir
660 - Owner
ve Group
okuma yazma
640 - Owner
okuyabilir ve yazabilir ve Group
okuyabilir
ın / tmp dışında 777 ve 666 nadiren kullanılır.
Teşekkürler Ilmari Karonen için işaret etmek ortak kullanımda olanlar!
Koşmak:
chmod +x /path/to/file.sh
Çalıştırılamaz hale getirmek için şunu çalıştırın:
chmod -x /path/to/file.sh
Örneğin ben yarattım .sh
dosya:
vi tester12.sh
Vi editörüne kod yazdıktan sonra, vi editöründen çıkacağım:
:wq!chmod +x tester12.sh./tester12.sh
Tüm kullanıcıların komut dosyanızı çalıştırmasına izin verin
Belirtildiği gibi, dosyanın yürütme bitini çalıştırılabilir hale getirmek için ayarlayabilirsiniz chmod +x
. Ama aynı zamanda kullanabilirsiniz chmod a+x
:
$ ll file_command.txt-rw-rw-r-- 1 rick rick 17 Sep 19 08:55 file_command.txt$ chmod a+x file_command.txt$ ll file_command.txt-rwxrwxr-x 1 rick rick 17 Sep 19 08:55 file_command.txt*
notlar:
- Bir senaryo ile bitmek zorunda değildir
.sh
sonunda olabilir.txt
burada gösterilen veya hiç bir uzantısı var. - Sadece yerine
+x
(yalnızca komut dosyasını çalıştırabilirsiniz), kullana+x
böylece tüm kullanıcılar komut dosyasını çalıştırabilir. - Dosya adı bir
*
yürütülebilir olduğunu belirtmek için eklenir. Ayrıca dosya adı çoğu sistemde rengi yeşile çevirir.
Bir komut dosyasını çalıştırılabilir hale getirmeden çalıştırma
Bash betiğini çalıştırılabilir hale getirmeden yine de çalıştırabilirsiniz. Örneğin:
$ echo "echo Hello World" > file_command.txt$ cat file_command.txtecho Hello World$ bash file_command.txtHello World
notlar:
- Önce aşağıdakileri içeren bir komut dosyası oluşturuyoruz
echo Hello World
. - Sonra çağrılan betiği onaylıyoruz
file_command.txt
doğru. - Son olarak, komut dosyasını arayarak çalıştırıyoruz
bash
ve ona senaryo adını iletiyorum. Bubash
komut aslında şu şekilde saklanır/bin/bash
ve tüm Ubuntu sistemlerinde çalıştırılabilir. - Komut dosyası oluşturmak, komut dosyasını eklemekten kurtarır. bar
#!/bin/bash
bir senaryonun ilk satırı olarak. - Bir komut dosyası oluşturmak sizi çalıştırılabilir hale getirmekten kurtarır
chmod +x
veyachmod a+x
.
Bu bir kopya değil, çünkü özellikle application / x-çalıştırılabilir hale getirilmesini istedim. Diğer soru sadece terminalde sh dosyasını açmak için sorar.