Ogni volta che apro un file .sh, lo apre in gedit anziché nel terminale. Non riesco a trovare alcuna opzione simile a Fare clic destro → Apri con → Altre applicazioni ... → Terminale .
Come faccio ad aprire questo file nel terminale?
ruby foo.rb
Ogni volta che apro un file .sh, lo apre in gedit anziché nel terminale. Non riesco a trovare alcuna opzione simile a Fare clic destro → Apri con → Altre applicazioni ... → Terminale .
Come faccio ad aprire questo file nel terminale?
ruby foo.rb
Risposte:
Autorizza l'esecuzione del tuo script:
chmod +x /path/to/yourscript.sh
E per eseguire il tuo script:
/path/to/yourscript.sh
Poiché si .
riferisce alla directory corrente: se si yourscript.sh
trova nella directory corrente, è possibile semplificare questo per:
./yourscript.sh
bash /path/to/yourscript.sh
, non ti servechmod +x
. /path/to/yourscript.sh
se lo script deve impostare alcune variabili di ambiente.
./path/to/yourscript.sh
(senza lo spazio dopo .
)? Trovo che uno sia il più semplice e facile da usare ... Ma comunque, ecco la mia alternativa che dovrebbe fare quasi lo stesso di quanto ./
farebbe, anche se non vedo perché non dovresti usare ./
: (FILENAME=~/rem4space.sh;SLL=$(cat $FILENAME|head -1|sed 's:^#!\(.*\):\1:g');[ ! -z $SLL ] && exec $SLL $FILENAME;sh $FILENAME)
... modifica FILENAME
a tuo piacimento . Si noti inoltre che sh
verrà utilizzato se non ci sono alternative.
È necessario contrassegnare gli script di shell come eseguibili per eseguirli dal file manager:
Fare clic con il tasto destro sul .sh
file e selezionare Proprietà :
Nella scheda Autorizzazioni , selezionare Consenti esecuzione file come programma :
Chiudi la finestra Proprietà e fai doppio clic sul file. Apparirà una finestra di dialogo che ti darà la possibilità di eseguire lo script in un terminale:
Apri un terminale e vai alla cartella in cui .sh
si trova il file. Quindi digitare:
sh <name of file>.sh
Prima di poter eseguire il file .sh, è necessario renderlo eseguibile:
Assicurati di fidarti della fonte da cui hai ottenuto il file. Potrebbe essere un virus .
Questo ha un problema. Il terminale si chiuderà immediatamente e non sarà possibile vedere l'output.
Trova dove il file .sh
ls
ecd
ls
elencherà i file e le cartelle nella cartella corrente . Provalo: digita "ls" e premi Invio.cd
, seguito da uno spazio, seguito da un nome di cartellacd ..
andare un livello altoEsegui il file .sh
Una volta che si può vedere, per esempio script1.sh
con ls
run questo:
./script.sh
Il terminale ha un ricco set di potenti strumenti accessibili digitando i comandi. I professionisti individuano il file .sh digitando ls
e cd
. Una volta che sei nella cartella corrente corretta puoi eseguire lo script in questo modo:
./script1.sh
oppure puoi eseguire e reindirizzare l'output su un file:
./script1.sh > out.txt
oppure puoi filtrare l'output per parole chiave (ad esempio "mele") e quindi reindirizzare a un file:
./script1.sh | grep apples > ./only-apples
Ci sono migliaia di cose che puoi fare su quel file semplicemente digitando alcuni comandi.
Un altro, è possibile scaricare un file da Internet con un semplice comando:
wget www.google.com/images/logos/ps_logo2.png
E quindi apri il file in questo modo:
shotwell ps_logo2.png
Su Ubuntu 13.04 i file eseguibili aperti in Nautilus sono ora aperti in gedit per impostazione predefinita anziché richiedere all'utente di eseguirli. Per abilitare il comportamento classico è necessario regolare le preferenze:
Nautilus → menu Modifica → Preferenze → scheda Comportamento → Fai clic sul pulsante di opzione vicino a Chiedi ogni volta.
Vai alla directory in cui si trova il .sh
file utilizzando cd
. In questo esempio ho archiviato il mio sh
file come~/Desktop/shell_practice/test.sh
prima fai pwd
per capire dove sei, e se ritorna /home/username
(dov'è il username
tuo vero nome utente), puoi correre
cd Desktop/shell/practice
Se sembri essere altrove, puoi usare il percorso assoluto
cd ~/Desktop/shell/practice
o
cd $HOME/Desktop/shell/practice
o anche
cd /home/$USER/Desktop/shell/practice
questi sono tutti modi per descrivere lo stesso posto. Dopo aver raggiunto la posizione del tuo script, digita
ls
Se riesci a vedere il sh
file nell'output, puoi usarlo chmod
per renderlo eseguibile. Nel mio caso, ricorda, il nome del file è test.sh
, quindi vorrei eseguire
chmod u+x test.sh
Ora che siamo nella stessa directory dello script, dobbiamo specificare alla shell che vogliamo eseguire il file specificandone la posizione ./
(la directory corrente seguita da un separatore di percorso, per distinguerlo dal nome del file). Per eseguire il mio file, digitare:
./test.sh
Se lo script è stato scritto correttamente, verrà eseguito senza errori ...
2 passaggi principali.
nel terminale, usa gedit per scrivere e salvare lo script con estensione ".sh" sul desktop. (ma è possibile utilizzare qualsiasi editor di testo)
apri Nautilus e fai clic con il pulsante destro del mouse sul file script.sh.
nelle proprietà, selezionare la casella di controllo "consenti l'esecuzione del file .."
nel menu Nautilus, fare clic su file, quindi preferenze, quindi comportamento
controlla "esegui file di testo eseguibili quando vengono aperti".
Ora, quando fai doppio clic sul file sul desktop, dovrebbe essere eseguito. non c'è bisogno di .
o./
Fare clic con il tasto destro del mouse sul .sh
file e renderlo eseguibile.
Apri un terminale ( Ctrl+ Alt+ T).
Trascina il .sh
file nella finestra del terminale e osserva in soggezione.
Ci sono alcuni modi per farlo.
Nel terminale, accedi alla directory in cui si trova il file Bash cd
(cambia directory).
Ex. cd Downloads
Correre bash <filename>.sh
Questo funziona anche con file .run. C'è un esempio di questo utilizzo in questa pagina web sull'aggiornamento di Rhythmbox.
Nel terminale, vai alla directory in cui si trova il file bash.
Correre chmod +x <filename>.sh
In Nautilus, apri il file.
Per Ubuntu 18.04 , c'è una piccola modifica, in quanto non si ottiene una finestra di dialogo pop-up.
Quindi quello che devi fare è:
Fare clic con il tasto destro su File, selezionare Preferenze> Seleziona scheda Comportamento> Contrassegna l'opzione "Chiedi cosa fare" in File di testo eseguibile.
Ora, quando fai doppio clic su qualsiasi file .sh, otterrai un popup, lì puoi selezionare l'opzione "esegui nel terminale" per eseguire il tuo file .sh.
In Ubuntu 16.04 ecco come aprirlo nel Terminale:
Vai a File Manager > Edit > Preferences > Behavior
per Executable Text Files
e seleziona Ask each time
.
Il problema è che è impostato di default su View Executable Files when they are opened
.
Se inserisci lo script della shell o altro eseguibile che crei in / usr / local / bin, questo verrà trovato ed eseguito senza dover fornire un percorso di cartella nella riga di comando o aggiungendo ./ al nome. Ad esempio, ho creato il seguente semplice script bash a 3 righe per visualizzare gli UUID del disco:
#!/bin/bash
echo "* UUIDs must match in /etc/fstab and /boot/grub/menu.lst"
sudo blkid
Ho chiamato il file uuid e l'ho inserito in / usr / local / bin. Tutto quello che devo inserire sulla riga di comando è:
uuid
Bene, anch'io ho affrontato lo stesso problema. Volevo eseguire il file .sh e si è aperto con Gedit su CentOS 7. Quindi ecco cosa ho fatto:
.sh
file che volevo eseguire.Il problema che ho riscontrato in alcune distribuzioni è che hanno nascosto l'opzione delle preferenze in Nautilus, ma correggerlo in Ubuntu e altre distribuzioni usando Gnome3 è lo stesso (letteralmente ho appena fatto la versione Fedora di questo e postando la correzione effettiva per ricordarmi di me come in futuro).
Installare dconf-editor
sudo apt-get install dconf-editor
Esegui dconf-editor
utilizzando l'account utente su cui desideri questo, ovvero NON root
dconf-editor
Passa al seguente schema:
org.gnome.nautilus.preferences
Modifica l'opzione predefinita per non aprirla per impostazione predefinita:
Trova executable-text-activation
fai clic sulla parola display
e cambia inask
che ti darà la possibilità di modificare, visualizzare o eseguire il file in futuro
Sono un noob in Linux e ho avuto lo stesso problema. Se tutti gli altri falliscono:
Puoi anche usare i .
trucchi, con il suggerimento di altre risposte.
Per esempio:
chmod +x filename.sh
, supponendo che tu sia già passato al percorso del file, quindi esegui il file con uno di questi comandi:
sh filename.sh
./filename.sh
. filename.sh