2012-05-11 26 views
9

Sono nuovo di Sublime Text 2 e c'è qualcosa che non ho ancora capito, come posso eseguire un comando bash su SSH?Sublime text 2 - Come eseguire un comando shell su ssh?

Ad esempio, per visualizzare il Apache log errore sul mio server dev, mi piacerebbe essere in grado di eseguire:

ssh [email protected] "tail -10 /var/log/httpd-error-user.log" 

Invece di dover aprire un terminale, mi piacerebbe eseguilo dall'interno dell'editor con una scorciatoia da tastiera.

Ho letto su build systems, ma non sono sicuro che sia la strada da percorrere, anche sembra permettere un solo comando.

risposta

13

Risponderò alla mia domanda. Si può facilmente creare una build che punta a qualsiasi script, quindi tutto quello che dovevo fare era creare myscript.sh contenente:

#!/bin/bash 
ssh [email protected] "tail -10 /var/log/httpd-error-user.log" 

e quindi creare una nuova Build System in ST2 chiamarlo:

{ 
    "cmd": ["./myscript.sh"] 
} 

Nota: in questo esempio (io sono su Linux), myscript.sh si trova nel /home/mike/.config/sublime-text-2/Packages/User/

+2

È possibile migliorare ulteriormente creando un sistema di generazione che funzioni genericamente. ho chiamato il mio '' 'rsync local a remote.sublime-build''' e in esso ho messo:' '{{cmd": ["$ project_path/rsync.sh"]} '' '. Questo eseguirà '' 'rsync.sh''' nella radice del tuo Progetto Sublime. allora puoi avere diversi flag, server e percorsi rsync per progetto. – Arron

2

Hai provato esaminando Sublime SFTP plug-in?

+0

non è possibile eseguire comandi sul plug-in sftp sublime –

9

Se sei su un computer Windows, puoi provare questo:

  1. Installa Putty. Avremo bisogno di plink da questo pacchetto.
  2. aggiornare la variabile PATH con stucco directory di installazione.
  3. Creare un sistema di compilazione in Sublime

    { 
    "cmd": ["plink", "-pw", "<password>", "<userid>@<remotehost>", "./your-script.sh"] 
    } 
    

lo uso per distanza make, funziona abbastanza bene.

Nota che la password è semplice testo qui. So che non va bene;]. Questo è solo un esempio. Per risolvere il problema potrebbe essere utilizzato il login basato su chiave. Google puttygen e autologin.

+0

fare attraverso SSH era esattamente ciò di cui avevo bisogno. Grazie :) –