wake-up-neo.net

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

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.)

10
Adam Lear

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

Ho ottenuto un elenco di opzioni usando gnome-terminal --help dalla 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 --tab per le schede) e imposta le directory di lavoro (relative a home) e i titoli per ciascuna, avvia il comando tail 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 finestre e schede del terminale aperte (inclusi titoli, directory di lavoro e così via). Avviare gnome-terminal con l'opzione --load-config ricrea il layout.

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

9
jbowtie

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)

8
maco

Potresti anche automatizzarlo usando uno script. Ti consiglio di leggere Advanced Bash Scripting Guide o Bash Programming HOWTO, insieme alla pagina man per qualunque terminale tu stia usando.

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
4
anonymous