Mam plik script.sh, a typem tego pliku jest plik shellscript. Chcę, aby ten plik był plikiem wykonywalnym application / x. Jak mogę to zrobić?
Mam plik script.sh, a typem tego pliku jest plik shellscript. Chcę, aby ten plik był plikiem wykonywalnym application / x. Jak mogę to zrobić?
Odpowiedzi:
Możesz oznaczyć plik jako wykonywalny:
chmod +x filename.sh
Następnie możesz wykonać to w następujący sposób:
./filename.sh
Jeśli chcesz użyć innego polecenia, aby go uruchomić, możesz dodać alias:
gedit ~/.bashrc
Dodaj to na końcu pliku:
alias <new name>='/home/<full path to script>/filename.sh'
Otwórz nową sesję terminala lub wpisz source ~/.bashrcswój terminal, aby go zastosować. Następnie po prostu użyj nowej nazwy, aby uruchomić skrypt.
./filename.shnie tylko filename.sh?
filenamei nie./filename
./filename.shokreśla plik w bieżącym katalogu, a użycie filename.shokreśla plik w bieżącym katalogu lub dowolnym katalogu ŚCIEŻKI. Pierwsze użycie usuwa wszelką niepewność, do którego pliku można uzyskać dostęp. W takim przypadku próbujesz wykonać skrypt za pomocą bash lub innego interpretera (na podstawie założonego #!/bin/bashpierwszego wiersza skryptu), po prostu wpisując nazwę pliku. To użycie wymaga podania katalogu. Alternatywnie możesz spróbować, bash filename.shktóry wydaje się działać z nieokreślonym katalogiem.
Istnieją dwa sposoby na wykonanie pliku:
Metoda GUI:
Przejdź do karty uprawnień, a następnie zaznacz pole `Wykonaj: [] Zezwól na uruchamianie pliku jako programu.

Metoda terminala / polecenia:
Możesz użyć:
cd /to/my/required/directory
Następnie uruchomić
chmod +x filename.extension
Lub po prostu uruchom:
chmod +x /path/to/your/filename.extension
chmod ma również kilka bardziej zaawansowanych opcji:
Spacje mają pokazywać, że jest on podzielony: - rwx --- ---
Pierwszy zestaw ---to Użytkownik. Drugi to Grupa, a ostatni Inny (każdy inny)
r oznacza Odczyt, w dla Zapis i x dla eXecute.
Aby więc umożliwić wszystkim odczytanie, ale tylko Grupie do wykonania, a Użytkownikowi do odczytu i zapisu (ale z jakiegoś powodu nie można go wykonać), byłoby:
-rw- rx- r-- Ale zostanie to dodane do polecenia jako:
chmod +rw-rx-r-- /path/to/file.extension
chmodmoże to również zrobić w liczbach. Opiera się na binarnym (myślę, że to 1,2 i 4)
Są więc te liczby:
Wykonanie przez użytkownika to 100. Wykonaj według grupy to 010. Wykonane przez inny to 001
Napisz przez użytkownika to 200. Pisz według grup to 020. Napisz innym jest 002.
Odczytany przez użytkownika to 400. Odczytany przez grupę to 040. Czytane przez innych jest 004.
Następnie dodajesz je razem, aby uzyskać pożądaną kombinację.
Aby umożliwić wszystkim odczytanie, ale tylko Grupę do wykonania, a Użytkownik do napisania (ale z jakiegoś powodu nie do wykonania):
400 + 040 + 004i 010i200
Daje to w sumie 600 + 050 + 004 = 654.
Następnie możesz uruchomić polecenie.
chmod +654 /path/to/file.extension ustawić.
Aby ustawić wszystkie uprawnienia, możesz wpisać:
chmod +rwxrwxrwx /path/to/file.extension
Lub (jest to trochę łatwiejsze do napisania, ale trudniejsze do zapamiętania):
chmod +777 /path/to/file.extension
Wreszcie możesz wykonać:
chmod -777 /path/to/file.extension
Aby odebrać wszystkie uprawnienia wszystkim.
I:
chmod +300 /path/to/file.extension
Aby dodać odczyt i zapis dla użytkownika, bez wpływu na jakiekolwiek inne uprawnienia (np. Wykonaj uprawnienia).
Ta strona ma bardzo przydatne małe pole wyboru siatki, w którym możesz zaznaczyć żądane opcje i daje ci polecenie:

Jednak nie wszystkie możliwe kombinacje są rozsądne w użyciu; główne z nich są następujące:
755 - Ownerma wszystko Groupi Othermoże czytać i wykonywać
700 - Ownerma wszystko
644 - Ownerpotrafi czytać i pisać Grouporaz Otherpotrafi czytać
600 - Ownerpotrafi czytać i pisać
A jeśli używasz nietrywialnych grup użytkowników:
775 - Ownerpotrafi czytać i pisać Grouporaz Otherpotrafi czytać
770 - Owneri Groupmają wszystko, i Othermogą czytać i wykonywać
750 - Ownerma wszystko i Groupmoże czytać i wykonywać
664 - Owneri Groupumie czytać i pisać, i Othermoże po prostu czytać
660 - Owneri Groupumie czytać i pisać
640 - Ownerpotrafi czytać i pisać oraz Grouppotrafi czytać
777 i 666 są rzadko używane, z wyjątkiem / tmp.
Dziękuję Ilmari Karonen za wskazanie najczęściej używanych!