it-swarm-eu.dev

Jak spustím skripty .sh?

Kdykoli otevřu soubor .sh, otevře jej v geditu místo terminálu. Nemohu najít žádnou možnost podobnou kliknutí pravým tlačítkemotevřít pomocíjiná aplikace ...terminál .

Jak mohu otevřít tento soubor v terminálu?

374
Alex

Dejte svému skriptu oprávnění ke spuštění:

chmod +x /path/to/yourscript.sh

A ke spuštění skriptu:

/path/to/yourscript.sh

Od té doby . odkazuje na aktuální adresář: if yourscript.sh je v aktuálním adresáři, můžete to zjednodušit:

./yourscript.sh
574
karthick87

Skripty Shell musíte označit jako spustitelné, abyste je mohli spustit ze správce souborů:

  1. Klikněte pravým tlačítkem na .sh file a vyberte Properties:

    enter image description here

  2. Na kartě Oprávnění zaškrtněte Povolit spouštění souboru jako program:

    enter image description here

  3. Zavřete okno Vlastnosti a poklepejte na soubor. Zobrazí se dialogové okno s možností spuštění skriptu v terminálu:

    enter image description here

94
Isaiah

Otevřete terminál a přejděte do složky, kde .sh soubor je umístěn. Pak zadejte:

sh <name of file>.sh
40
italianfoot

Předpoklad

Než budete moci spustit soubor .sh, musíte jej učinit spustitelným:

  1. Klepněte pravým tlačítkem myši na soubor
  2. Vyberte Vlastnosti
  3. Vyberte Oprávnění
  4. Vyberte Povolit spuštění souboru jako program

Varování

Ujistěte se, že důvěřujete zdroji, ze kterého jste soubor získali. Může to být virus.

Velmi jednoduchý způsob

  1. Poklepejte na soubor
  2. Klikněte na Spustit v terminálu

To má problém. Terminál se okamžitě uzavře a nebudete moci vidět výstup.

Jednoduchý způsob

  1. Otevřete aplikace -> Příslušenství -> Terminál
  2. Přetáhněte soubor .sh do terminálu a stiskněte klávesu Enter

Způsob, jakým to profesionálové dělají

  1. Otevřete aplikace -> Příslušenství -> Terminál
  2. Vyhledejte, kde je soubor .sh

    • Použijte příkazy ls a cd
    • ls zobrazí seznam souborů a složek v aktuální složka. Zkuste to: zadejte „ls“ a stiskněte klávesu Enter.
    • Jakmile uvidíte složku, do které chcete vstoupit, spusťte cd, následované mezerou, následovanou názvem složky
    • Pokud jste do složky, kterou jste nechtěli, spusťte cd .. jít o jednu úroveň nahor
  3. Spusťte soubor .sh

    • Jakmile uvidíte například script1.sh s ls spusťte toto:

      ./script.sh
      

Proč to složitě?

Terminál má bohatou sadu výkonných nástrojů, které jsou přístupné zadáním příkazů. Odborníci vyhledají soubor .sh zadáním ls a cd. Jakmile budete ve správné aktuální složka, můžete skript spustit takto:

./script1.sh

nebo můžete spustit a přesměrovat výstup do souboru:

./script1.sh > out.txt

nebo můžete filtrovat výstup pro klíčová slova (např. „jablka“) a poté přesměrovat na soubor:

./script1.sh | grep apples > ./only-apples

Existují tisíce věcí, které můžete do tohoto souboru pouhým zadáním několika příkazů.

Dalším můžete stáhnout soubor z Internetu jedním jednoduchým příkazem:

wget www.google.com/images/logos/ps_logo2.png

A pak otevřete soubor takto:

shotwell ps_logo2.png
26

Na Ubuntu 13.04 jsou spustitelné soubory otevřené v Nautilus nyní ve výchozím nastavení otevřeny v geditu, místo aby vyzval uživatele k jejich provedení. Chcete-li povolit klasické chování, musíte upravit předvolby:

Nautilus → Nabídka Úpravy → Předvolby → karta Chování → Pokaždé klepněte na přepínač u možnosti Zeptat se.

18
imjustmatthew

Přejděte do adresáře, kde .sh soubor je pomocí cd. V tomto příkladu jsem uložil svůj soubor sh jako ~/Desktop/Shell_practice/test.sh

nejprve udělejte pwd, abyste zjistili, kde jste, a pokud se vrátí /home/username (kde username je vaše skutečné uživatelské jméno), můžete spustit

cd Desktop/Shell/practice

Pokud se zdáte být někde jinde, můžete použít absolutní cestu

cd ~/Desktop/Shell/practice

nebo

cd $HOME/Desktop/Shell/practice

nebo dokonce

cd /home/$USER/Desktop/Shell/practice

to jsou všechny způsoby, jak popsat stejné místo. Poté, co jste se dostali do umístění skriptu, napište

ls

Pokud vidíte soubor sh ve výstupu, můžete použít chmod, aby byl spustitelný. V mém případě si pamatujte, že název souboru je test.sh, takže bych běžel

chmod u+x test.sh

Nyní, když jsme ve stejném adresáři jako skript, musíme specifikovat prostředí, ve kterém chceme soubor spustit, zadáním jeho umístění ./ (aktuální adresář, za nímž následuje oddělovač cesty, aby se odlišil od názvu souboru). Chcete-li spustit můj soubor, zadejte:

./test.sh

Pokud byl váš skript správně napsán, bude spuštěn bez chyb ...

Zde je živý příklad: Here is live example

7
TheExorcist

2 hlavní kroky.

  1. v terminálu použijte gedit k zápisu a uložení skriptu s příponou „.sh“ na plochu. (ale lze použít libovolný textový editor)

  2. otevřete Nautilus a klikněte pravým tlačítkem myši na soubor script.sh.

    • ve vlastnostech zaškrtněte políčko „povolit spouštění souboru ..“

    • v nabídce Nautilus klikněte na soubor, pak na předvolby a pak na chování

    • zaškrtněte "spouštět spustitelné textové soubory, když jsou otevřeny".

Nyní, když poklepete na soubor na ploše, měl by se spustit. není potřeba . nebo ./

4
rob

Existuje několik způsobů, jak toho dosáhnout.

Možnost 1

  1. V terminálu otevřete adresář, ve kterém je soubor Bash, pomocí cd (změnit adresář).

    Př. cd Downloads

  2. Spustit bash <filename>.sh

    To také funguje se soubory .run. Příklad tohoto použití na této webové stránce při aktualizaci Rhythmboxu

Možnost 2

  1. V terminálu přejděte do adresáře, ve kterém je bash soubor.

  2. Spustit chmod +x <filename>.sh

  3. V aplikaci Nautilus otevřete soubor.

4
Kenny Stier

Pro Ubuntu 18.04 existuje malá modifikace, protože se vám nezobrazí vyskakovací dialogové okno.

To, co musíte udělat, je:

Klikněte pravým tlačítkem myši na soubory, vyberte Předvolby> Vyberte kartu Chování> Označte možnost „Zeptat se, co dělat“ pod spustitelným textovým souborem.

Nyní, když dvakrát kliknete na libovolný soubor .sh, dostanete vyskakovací okno, kde si můžete vybrat možnost „run in terminal“ pro spuštění vašeho .sh souboru.

enter image description here

3
  1. Klepněte pravým tlačítkem myši na .sh soubor a učinit jej spustitelným.

  2. Otevřete terminál (Ctrl+Alt+T).

  3. Přetáhněte .sh soubor do okna terminálu a sledujte v úžasu.

3
1p_bunny

V Ubuntu 16.04 je to jak otevřít v Terminálu:

Přejít na File Manager > Edit > Preferences > Behavior pro Executable Text Files a vyberte Ask each time.

Problém je, že je ve výchozím nastavení nastaven na View Executable Files when they are opened.

2
Leniel Maccaferri

Pokud umístíte skript Shell nebo jiný spustitelný soubor, který vytvoříte do/usr/local/bin, bude nalezen a proveden, aniž by bylo nutné zadávat cestu ke složce v příkazovém řádku nebo k názvu přidávat ./. Například jsem vytvořil následující jednoduchý 3-řádkový bash skript pro zobrazení diskových UUID:

#!/bin/bash
echo "* UUIDs must match in /etc/fstab and /boot/grub/menu.lst"
Sudo blkid

Nazval jsem soubor uuid a umístil jej do/usr/local/bin. Na příkazovém řádku potřebuji pouze zadat:

uuid
1
fragos

No, také jsem čelil stejnému problému. Chtěl jsem spustit soubor .sh a otevřel se s Geditem na CentOS 7. Takže jsem udělal následující:

  1. Navigoval jsem na cestu .sh soubor, který jsem chtěl provést.
  2. Otevřel jsem terminál.
  3. A jednoduše jsem přetáhl okno okna terminálu a ten soubor automaticky vzal spolu s cestou jako vstup.
  4. Hit Enter a je dobré jít!
0
Jen Bates

Problém, který jsem našel na několika distribucích, je to, že skryli možnost preferencí v Nautilusu, ale opravit ji v Ubuntu a dalších distribucích pomocí Gnome3 je stejné (doslova právě udělal verzi Fedory a zveřejnil skutečnou opravu, aby mi připomněl jak v budoucnosti).

  1. Nainstalujte dconf-editor

    Sudo apt-get install dconf-editor
    
  2. Spustit dconf-editor pomocí uživatelského účtu, na kterém to chcete, tj. NE root

    dconf-editor
    
  3. Přejděte na následující schéma:

    org.gnome.nautilus.preferences

  4. Změňte výchozí možnost tak, aby se ve výchozím nastavení neotevřela:

    Najít executable-text-activation klikněte na slovo display a změňte na ask

to vám dá možnost upravit, zobrazit nebo spustit soubor do budoucna

0
Snider

Jsem v Linuxu noob a právě jsem měl stejný problém. Pokud vše ostatní selže:

  1. Otevřete terminál
  2. Otevřete složku obsahující soubor .sh
  3. Přetáhněte soubor do okna terminálu
  4. Cesta k souboru se objeví v terminálu. lis Enter.
  5. Voila, váš soubor .sh je spuštěn.
0
Linux_noob