Ilekroć otwieram plik .sh, otwiera go w gedit zamiast w terminalu. Nie mogę znaleźć żadnej opcji podobnej do Kliknięcia prawym przyciskiem → Otwórz za pomocą → Inna aplikacja ... → Terminal .
Jak mogę otworzyć ten plik w terminalu?
ruby foo.rb
Ilekroć otwieram plik .sh, otwiera go w gedit zamiast w terminalu. Nie mogę znaleźć żadnej opcji podobnej do Kliknięcia prawym przyciskiem → Otwórz za pomocą → Inna aplikacja ... → Terminal .
Jak mogę otworzyć ten plik w terminalu?
ruby foo.rb
Odpowiedzi:
Zezwól na wykonanie skryptu:
chmod +x /path/to/yourscript.sh
Aby uruchomić skrypt:
/path/to/yourscript.sh
Ponieważ .
odnosi się do bieżącego katalogu: jeśli yourscript.sh
znajduje się w bieżącym katalogu, możesz uprościć to do:
./yourscript.sh
bash /path/to/yourscript.sh
, to nie potrzebujeszchmod +x
. /path/to/yourscript.sh
jeśli skrypt musi skonfigurować niektóre zmienne środowiskowe.
./path/to/yourscript.sh
(bez spacji po .
)? Uważam, że jeden jest najprostszy i najłatwiejszy w użyciu ... Ale tak czy inaczej, oto moja alternatywa, która powinna zrobić prawie to samo, co ./
zrobiłbym, chociaż nie rozumiem, dlaczego nie używałbyś ./
: (FILENAME=~/rem4space.sh;SLL=$(cat $FILENAME|head -1|sed 's:^#!\(.*\):\1:g');[ ! -z $SLL ] && exec $SLL $FILENAME;sh $FILENAME)
... edytuj FILENAME
według własnych upodobań . Należy również pamiętać, że sh
zostanie użyty, jeśli nie ma alternatywy.
Musisz zaznaczyć skrypty powłoki jako pliki wykonywalne, aby uruchomić je z menedżera plików:
Kliknij .sh
plik prawym przyciskiem myszy i wybierz Właściwości :
Na karcie Uprawnienia zaznacz Zezwalaj na uruchamianie pliku jako programu :
Zamknij okno Właściwości i kliknij dwukrotnie plik. Pojawi się okno dialogowe z opcją uruchomienia skryptu w terminalu:
Otwórz terminal i przejdź do folderu, w którym .sh
znajduje się plik. Następnie wpisz:
sh <name of file>.sh
Zanim będziesz mógł uruchomić plik .sh, musisz go uruchomić:
Upewnij się, że ufasz źródłu, z którego pochodzi plik. To może być wirus .
To ma problem. Terminal zamknie się natychmiast i nie będzie widać wyjścia.
Znajdź, gdzie plik .sh
ls
icd
ls
wyświetli listę plików i folderów w bieżącym folderze . Spróbuj: wpisz „ls” i naciśnij klawisz Enter.cd
, następnie spację, a następnie nazwę folderucd ..
przejdziesz do folderu, którego nie chciałeś, biegnij, aby przejść o jeden poziom wyżejUruchom plik .sh
Gdy zobaczysz na przykład script1.sh
z ls
uruchom to:
./script.sh
Terminal ma bogaty zestaw potężnych narzędzi, które są dostępne po wpisaniu poleceń. Specjaliści zlokalizują plik .sh, wpisując ls
i cd
. Po znalezieniu się w odpowiednim bieżącym folderze możesz uruchomić skrypt w następujący sposób:
./script1.sh
lub możesz uruchomić i przekierować dane wyjściowe do pliku:
./script1.sh > out.txt
lub możesz filtrować dane wyjściowe pod kątem słów kluczowych (np. „jabłka”), a następnie przekierować do pliku:
./script1.sh | grep apples > ./only-apples
Istnieją tysiące rzeczy, które możesz zrobić w tym pliku, wpisując kilka poleceń.
Kolejny: możesz pobrać plik z Internetu za pomocą jednego prostego polecenia:
wget www.google.com/images/logos/ps_logo2.png
A następnie otwórz plik w ten sposób:
shotwell ps_logo2.png
W systemie Ubuntu 13.04 pliki wykonywalne otwarte w Nautilus są teraz domyślnie otwierane w gedit, zamiast monitować użytkownika o ich wykonanie. Aby włączyć klasyczne zachowanie, musisz dostosować preferencje:
Nautilus → menu Edycja → Preferencje → karta Zachowanie → Kliknij przycisk opcji obok Pytaj za każdym razem.
Przejdź do katalogu, w którym .sh
znajduje się plik, używając cd
. W tym przykładzie zapisałem mój sh
plik jako~/Desktop/shell_practice/test.sh
najpierw zrób, pwd
aby dowiedzieć się, gdzie jesteś, a jeśli powróci /home/username
(gdzie username
jest twoja prawdziwa nazwa użytkownika), możesz uruchomić
cd Desktop/shell/practice
Jeśli wydajesz się być gdzieś indziej, możesz użyć ścieżki absolutnej
cd ~/Desktop/shell/practice
lub
cd $HOME/Desktop/shell/practice
lub nawet
cd /home/$USER/Desktop/shell/practice
to wszystkie sposoby na opisanie tego samego miejsca. Po dotarciu do lokalizacji skryptu wpisz
ls
Jeśli widzisz sh
plik na wyjściu, możesz użyć chmod
go, aby był wykonywalny. W moim przypadku pamiętaj, że nazwa pliku to test.sh
, więc bym uruchomił
chmod u+x test.sh
Teraz, gdy jesteśmy w tym samym katalogu co skrypt, musimy określić w powłoce, że chcemy wykonać plik, podając jego lokalizację ./
(bieżący katalog poprzedzony jest separatorem ścieżek, aby odróżnić go od nazwy pliku). Aby uruchomić mój plik, wpisałbym:
./test.sh
Jeśli skrypt został poprawnie napisany, będzie działał bez błędów ...
2 główne kroki.
w terminalu użyj gedit do napisania i zapisania skryptu z rozszerzeniem „.sh” na pulpicie. (ale można użyć dowolnego edytora tekstu)
otwórz Nautilus i kliknij prawym przyciskiem myszy plik script.sh.
w obszarze właściwości zaznacz pole „zezwól na uruchamianie pliku ..”
w menu Nautilus kliknij plik, następnie preferencje, a następnie zachowanie
zaznacz „uruchamiaj wykonywalne pliki tekstowe po ich otwarciu”.
Teraz, po dwukrotnym kliknięciu pliku na pulpicie, powinien on zostać wykonany. nie ma potrzeby .
lub./
Kliknij .sh
plik prawym przyciskiem myszy i uczyń go wykonywalnym.
Otwórz terminal ( Ctrl+ Alt+ T).
Przeciągnij .sh
plik do okna terminala i patrz z podziwem.
Można to zrobić na kilka sposobów.
W terminalu przejdź do katalogu, w którym znajduje się plik Bash cd
(zmień katalog).
Dawny. cd Downloads
Biegać bash <filename>.sh
Działa to również z plikami .run. Na tej stronie znajduje się przykład tego użycia przy aktualizacji Rhythmbox.
W terminalu przejdź do katalogu, w którym znajduje się plik bash.
Biegać chmod +x <filename>.sh
W Nautilus otwórz plik.
W przypadku Ubuntu 18.04 wprowadzono niewielką modyfikację, ponieważ nie pojawia się wyskakujące okno dialogowe.
Musisz więc:
Kliknij prawym przyciskiem myszy Pliki, wybierz Preferencje> Wybierz kartę Zachowanie> Zaznacz opcję „Zapytaj, co zrobić” w obszarze Plik wykonywalny.
Teraz, po dwukrotnym kliknięciu dowolnego pliku .sh, pojawi się wyskakujące okienko, w którym możesz wybrać opcję „uruchom w terminalu”, aby uruchomić plik .sh
W Ubuntu 16.04 jest to, jak otworzyć go w terminalu:
Idź do File Manager > Edit > Preferences > Behavior
do Executable Text Files
i wybierz Ask each time
.
Problem polega na tym, że domyślnie jest ustawiony na View Executable Files when they are opened
.
Jeśli umieścisz skrypt powłoki lub inny plik wykonywalny, który utworzysz w / usr / local / bin, zostanie on znaleziony i wykonany bez konieczności podawania ścieżki folderu w wierszu poleceń lub dodawania ./ do nazwy. Na przykład utworzyłem następujący prosty 3-wierszowy skrypt bash, aby wyświetlić UUID dysku:
#!/bin/bash
echo "* UUIDs must match in /etc/fstab and /boot/grub/menu.lst"
sudo blkid
Nazwałem plik uuid i umieściłem go w / usr / local / bin. W wierszu poleceń muszę tylko wpisać:
uuid
Cóż, ja też stanąłem przed tym samym problemem. Chciałem uruchomić plik .sh, który otworzył się za pomocą Gedit na CentOS 7. Więc oto co zrobiłem:
.sh
pliku, który chciałem wykonać.Problem, który znalazłem w kilku dystrybucjach, polega na tym, że ukryli opcję preferencji w Nautilusie, ale naprawa tego w Ubuntu i innych dystrybucjach za pomocą Gnome3 jest taka sama (dosłownie właśnie zrobiłem tę wersję Fedory i opublikowałem poprawkę, aby mi przypomnieć jak w przyszłości).
zainstalować dconf-editor
sudo apt-get install dconf-editor
Uruchom dconf-editor
używając konta użytkownika, na którym chcesz to zrobić, tj. NIE root
dconf-editor
Przejdź do następującego schematu:
org.gnome.nautilus.preferences
Zmień domyślną opcję, aby domyślnie się nie otwierała:
Znajdź executable-text-activation
kliknij słowo display
i zmień naask
dzięki czemu będziesz mógł edytować, przeglądać lub uruchamiać plik w przyszłości
W Linuksie jestem noobem i właśnie miałem ten sam problem. Jeśli wszystko inne zawiedzie:
Możesz także użyć .
sztuczek z sugestiami innych odpowiedzi.
Na przykład:
chmod +x filename.sh
, zakładając, że już przeszedłeś do ścieżki do pliku, a następnie uruchom plik za pomocą dowolnej z następujących komend:
sh filename.sh
./filename.sh
. filename.sh