Bagaimana menjalankan perintah secara otomatis pada terminal gnome setelah masuk?

11

Setelah setiap login, ada perintah tertentu yang saya jalankan pada tab tertentu dari terminal gnome. Ini adalah proses yang membosankan, jadi bisakah ini dilakukan secara otomatis?

tepang
sumber

Jawaban:

5

Ya ada jalan. Anda perlu memberi tahu terminal gnome untuk meluncurkan tab dengan profil tertentu; profil ini harus diatur untuk memulai shell dengan perintah yang Anda inginkan.

Pertama, Anda perlu membuat skrip (atau ikon peluncur) yang akan dimulai gnome-terminal --tab-with-profile=Dev. "Dev" adalah nama profil yang akan Anda buat, jadi gantilah dengan apa pun yang Anda inginkan. Juga, Anda dapat menentukan sebanyak yang --tab-with-profileAnda inginkan: itu akan membuka tab untuk masing-masing.

Sekarang, Anda memerlukan profil yang baru saja dirujuk. Ini dibuat dengan membuka gnome-terminal, dan menemukan Edit->Profiles...di menu. Buat profil baru dan berikan nama yang Anda tentukan di langkah sebelumnya. Selanjutnya, Anda perlu mengatur preferensi. Sorot profil yang baru dibuat dan klik tombol Edit. Ketika dialog Preferensi Profil aktif, aktifkan tab "Judul dan Perintah", centang "Jalankan perintah khusus ..." dan di kotak teks terkait, masukkan sh -c "ENV=$HOME/.dev_profile sh". Tentu saja, Anda dapat mengatur ENV ke jalur apa pun yang Anda inginkan, selama Anda konsisten pada langkah berikutnya. Ini mulai sh, dan sh akan menjalankan perintah apa pun yang ada di dalamnya$HOME/.dev_profile

Selanjutnya, Anda perlu membuat file profil shell itu. Jadi edit $ HOME / .dev_profile (atau file apa pun yang Anda tentukan pada langkah sebelumnya). Tempatkan perintah apa pun yang Anda inginkan di sana; mereka akan dieksekusi ketika shell dimulai. Perlakukan ini seperti Anda menggunakan .bashrc - ini akan menggantikannya. Bergantung pada bagaimana .bashrc Anda diatur, Anda mungkin ingin source $HOME/.bashrcdalam profil untuk menyalin semua fungsi dari profil sh normal Anda.

Shawn J. Goff
sumber
3
Omong-omong, saya akan sangat merekomendasikan Layar tmux atau GNU. Mereka adalah multiplexer terminal yang sedikit lebih mudah diatur untuk hal semacam ini, dan Anda dapat menggunakannya melalui koneksi ssh. Satu-satunya kelemahan adalah bahwa mereka tidak memiliki tab untuk Anda klik, tetapi Anda bisa mendapatkan daftar menu windows atau sesi yang dapat Anda navigasikan naik dan turun melalui dan untuk beralih ke satu. Mereka juga memiliki opsi mewah lainnya seperti layar terpisah, monitor aktivitas / tidak aktif, dan kemampuan untuk menjaga sesi tetap terbuka tanpa terminal terpasang.
Shawn J. Goff 8-10
1
Layar memiliki kelebihan, tetapi juga memiliki kelemahan. Salah satunya adalah bahwa menggulir kembali ke keluaran sebelumnya lebih sulit daripada kebanyakan emulator terminal X. Lain adalah bahwa Anda tidak dapat dengan mudah memiliki dua jendela dari sesi layar yang sama ditampilkan pada waktu yang sama (ini bukan masalah jika Anda menggunakan sesi layar terpisah, tetapi kemudian Anda perlu beralih di antara mereka, yang memisahkan tab atau jendela terminal emulator membuat lebih mudah).
Gilles 'SANGAT berhenti menjadi jahat'
@ Giles: Atau Layar lebih mudah digulir: itu tergantung pada cara Anda ingin bekerja. Saya tidak yakin apa yang Anda maksud tentang dua jendela - saya selalu melakukannya: ^ a S ^ a <tab> ^ ac
Shawn J. Goff
2
ya itu jauh lebih sederhana daripada mengklik dua kali tab bar
Falmarri
2
@ Falmarri: sebenarnya itu. Saya jarang menyentuh mouse sehingga sensor optik mati sendiri sehingga saya harus melambaikannya sekitar 1,5 detik sebelum saya dapat mengklik apa pun. (Belum lagi itu berarti memindahkan tangan saya dari keyboard dan harus menemukan lokasi rumah di keyboard lagi.)
Shawn J. Goff
7

Anda dapat memulai banyak perintah pada baris perintah gnome-terminal yang sama dengan menentukan --tab-with-profileopsi beberapa kali, diikuti setiap kali dengan satu -eperintah yang menentukan perintah apa yang harus dijalankan pada tab itu. Anda juga dapat menggunakan --window-with-profilebeberapa jendela. Misalnya, perintah berikut memulai dua jendela dengan masing-masing dua tab; jendela pertama menjalankan bash di setiap tab, mengatur variabel lingkungan TABke 1 atau 2; jendela kedua berjalan htopdi satu tab dan iotopdi tab lainnya. shDoa eksplisit , dengan kutipan yang benar, diperlukan untuk beberapa alasan.

gnome-terminal --tab-with-profile="Default" -e 'sh -c '\''export TAB=1; exec bash'\' \
               --tab-with-profile="Default" -e 'sh -c '\''export TAB=2; exec bash'\' \
               --window-with-profile="Default" -e 'htop' \
               --tab-with-profile="Default" -e 'iotop'

Jika Anda ingin perintah dijalankan ketika Anda masuk, letakkan di skrip shell (misalnya ~/bin/my_gnome_login_commands, dan daftarkan di "Sistem / Preferensi / Aplikasi Startup" di menu Gnome. Atau, buat file yang ~/.config/autostart/my_commands.desktopberisi

[Desktop Entry]
Type=Application
Exec=/home/tshepang/bin/my_gnome_login_commands
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true

(Anda harus menggunakan jalur lengkap ke direktori home Anda di Exec=telepon, Anda tidak bisa menggunakan ~.)

(Jawaban ini telah diuji dengan Gnome 2.30 di Ubuntu 10.04. Karena Gnome kadang-kadang merusak kompatibilitas, mungkin atau mungkin tidak berlaku untuk versi lain.)

Gilles 'SANGAT berhenti menjadi jahat'
sumber
0

Saya melihat banyak hal di sini. Mungkin Anda tidak membutuhkan ini.

Ini adalah langkah-langkah yang saya lakukan di Oracle 5.9 Linux saya:

  1. Buat ikon terminal gnome di Desktop Anda.
  2. Buka terminal gnome Anda.
  3. Pergi ke Edit -> Profil.
  4. Pilih profil Default Anda dan klik Edit.
  5. Buka tab "Judul dan Perintah".
  6. Pilih opsi "Jalankan perintah sebagai shell masuk".
  7. Klik tombol Tutup.

Ini berhasil untuk saya. Tentu saja, dalam kasus saya, saya hanya ingin menjalankan. Profil untuk mengatur lingkungan terminal saya.

CesarDBA
sumber