Cara mengotomatisasi instance terminal mulai untuk tugas tertentu

10

Saya akan melalui beberapa tutorial pemrograman dan untuk setiap sesi, saya harus memulai setidaknya 3 terminal windows (satu untuk file log tail, satu untuk menguji output, satu untuk menjalankan berbagai perintah shell, dll.)

Saat ini saya memulai semuanya secara manual: klik ikon Terminal, cd ke folder kanan, ketik perintah, dan ubah judul jendela menjadi sesuatu yang bermakna.

Apakah ada cara untuk menulis naskah atau sesuatu yang akan mengotomatisasi itu untuk saya? Dan jika demikian, bagaimana?

(Saya keren dengan tidak mendapatkan naskah yang lengkap sebagai jawaban. Petunjuk di mana untuk mulai membaca akan bekerja juga.)

Adam Lear
sumber

Jawaban:

9

Karena Anda mengklik ikon Terminal, saya menganggap Anda menggunakan gnome-terminal.

Saya mendapat daftar opsi dengan menggunakan gnome-terminal --helpdi baris perintah dan membaca dari sana.

Membangun berdasarkan jawaban maco, saya mungkin menyarankan sesuatu seperti ini:

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

Contoh ini memulai tiga jendela (meskipun Anda bisa --tabmenggunakan tab) dan menetapkan direktori kerja (relatif ke rumah) dan judul untuk masing-masing, memulai tailperintah dalam satu dan membuat jendela ketiga aktif.

Tentu saja Anda mungkin lebih suka menggunakan baris terpisah untuk membuka setiap jendela, terutama jika Anda memiliki banyak argumen.

Hal lain yang bermanfaat untuk dilakukan, setelah Anda mengatur jendela sesuai dengan keinginan Anda, adalah menggunakan

gnome-terminal --save-config=FILE

Ini menciptakan file konfigurasi dengan informasi tentang semua jendela dan tab terminal terbuka (termasuk judul, direktori kerja, dan sebagainya). Meluncurkan gnome-terminal dengan --load-configopsi kemudian akan membuat ulang tata letak Anda.

Banyak pengembang yang bekerja dengan banyak terminal suka menggunakan Terminator karena ia menambahkan fitur seperti tata letak kotak dan pintasan keyboard.

jbowtie
sumber
Akankah melakukannya dengan flag -e menyebabkan jendela menutup segera setelah perintah dieksekusi? Dan jika demikian, apakah mungkin menyebabkan jendela tetap terbuka?
emf
8

Emulator terminal apa pun yang Anda gunakan harus dapat menerima perintah sebagai argumen. Sebagai contoh:

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

Cukup tambahkan perintah seperti itu ke autostart Anda di System -> Preferences -> Sessions (Ubuntu) atau System Settings -> Autostart (Kubuntu)

maco
sumber
4

Anda juga dapat mengotomatiskannya menggunakan skrip. Saya sarankan membaca Panduan Script Advanced Bash atau HOWTO Pemrograman Bash, bersama dengan halaman manual untuk terminal mana pun yang Anda gunakan.

Berikut ini contoh sederhana:

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

Maka buat saja itu dapat dieksekusi:

$ chmod +x your-script
anonim
sumber
tidakkah kamu perlu execsemua itu?
maco
Ya, kecuali gnome-terminal sudah berjalan, maka perintah hanya membuka jendela baru untuk proses yang berjalan lainnya dan kemudian ditutup.
LassePoulsen