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.shznajduje 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.shjeś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 FILENAMEwedług własnych upodobań . Należy również pamiętać, że shzostanie użyty, jeśli nie ma alternatywy.
Musisz zaznaczyć skrypty powłoki jako pliki wykonywalne, aby uruchomić je z menedżera plików:
Kliknij .shplik 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 .shznajduje 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
lsicdlswyś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.shz lsuruchom to:
./script.shTerminal ma bogaty zestaw potężnych narzędzi, które są dostępne po wpisaniu poleceń. Specjaliści zlokalizują plik .sh, wpisując lsi 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 .shznajduje się plik, używając cd. W tym przykładzie zapisałem mój shplik jako~/Desktop/shell_practice/test.sh
najpierw zrób, pwdaby dowiedzieć się, gdzie jesteś, a jeśli powróci /home/username(gdzie usernamejest 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 shplik na wyjściu, możesz użyć chmodgo, 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 .shplik prawym przyciskiem myszy i uczyń go wykonywalnym.
Otwórz terminal ( Ctrl+ Alt+ T).
Przeciągnij .shplik 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 > Behaviordo Executable Text Filesi 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:
.shpliku, 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-editorUruchom dconf-editorużywając konta użytkownika, na którym chcesz to zrobić, tj. NIE root
dconf-editorPrzejdź do następującego schematu:
org.gnome.nautilus.preferences
Zmień domyślną opcję, aby domyślnie się nie otwierała:
Znajdź executable-text-activationkliknij słowo displayi 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