Come automatizzare l'avvio delle istanze del terminale per attività specifiche


10

Sto seguendo alcuni tutorial di programmazione e per ogni sessione, devo avviare almeno 3 finestre di terminale (una per la coda di un file di registro, una per testare l'output, una per eseguire vari comandi shell, ecc.)

In questo momento li avvio tutti manualmente: fare clic sull'icona Terminale, cd nella cartella giusta, digitare i comandi e cambiare il titolo della finestra in qualcosa di significativo.

C'è un modo per scrivere una sceneggiatura o qualcosa che possa automatizzarla per me? E se sì, come?

(Sono bravo a non ottenere una sceneggiatura completa come risposta. Anche un puntatore da cui iniziare a leggere funzionerebbe.)

Risposte:


9

Dato che stai facendo clic sull'icona Terminale, suppongo che lo stai utilizzando gnome-terminal.

Ho ottenuto un elenco di opzioni usando gnome-terminal --helpdalla riga di comando e leggendo da lì.

Basandomi sulla risposta di maco, potrei suggerire qualcosa del genere:

gnome-terminal --window --title=Log -e "tail -f /var/log/syslog" --window --title=Output --working-directory=output --window --active --title=Dev --working-directory=dev/project

Questo esempio avvia tre finestre (sebbene sia possibile passare --tabper le schede) e imposta le directory di lavoro (relative alla home) e i titoli per ciascuna, avvia il tailcomando in una e rende attiva la terza finestra.

Ovviamente potresti preferire utilizzare linee separate per avviare ciascuna finestra, in particolare se hai molti argomenti.

Un'altra cosa utile da fare, una volta sistemate le finestre a proprio piacimento, è usare

gnome-terminal --save-config=FILE

Questo crea un file di configurazione con informazioni su tutte le finestre e le schede del terminale aperto (inclusi titoli, directory di lavoro e così via). Avviare gnome-terminal con l' --load-configopzione ricrea il layout.

A molti sviluppatori che lavorano con più terminali piace usare Terminator in quanto aggiunge funzionalità come il layout della griglia e le scorciatoie da tastiera.


Farlo in questo modo con il flag -e farà chiudere la finestra non appena il comando viene eseguito? E se è così, è possibile far rimanere aperta la finestra?
emf

8

Qualsiasi emulatore di terminale che stai usando dovrebbe essere in grado di accettare un comando come argomento. Per esempio:

gnome-terminal -e "tail -f /var/log/syslog"

Basta aggiungere tali comandi all'avvio automatico in Sistema -> Preferenze -> Sessioni (Ubuntu) o Impostazioni di sistema -> Avvio automatico (Kubuntu)


4

Potresti anche automatizzarlo usando uno script. Consiglio di leggere la Guida agli script avanzati di Bash o l'HOWTO di programmazione Bash, insieme alla pagina man per qualsiasi terminale che si sta utilizzando.

Ecco un semplice esempio:

$ vi your-script
#!/bin/bash
gnome-terminal -e "tail -f /var/log/syslog"
gnome-terminal --working-directory=/foo/bar
gnome-terminal --whatever-else

Quindi rendilo eseguibile:

$ chmod +x your-script

non hai bisogno di exectutti quelli?
maco,

Sì, a meno che gnome-terminal non sia già in esecuzione, il comando apre una nuova finestra per l'altro processo in esecuzione e quindi si chiude.
LassePoulsen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.