Saya ingin membuka Terminator di direktori tertentu, misalnya /home/downloads/
, dan kemudian jalankan perintah.
Saya melakukan bagian pertama dengan "perintah khusus" ini: cd /home/downloads; bash
Terminator sekarang mulai di direktori ini, tetapi bagaimana saya bisa melakukan bagian kedua?
Sekarang terminator sudah dimulai di direktori unduhan, saya ingin menjalankan perintah yang saya inginkan, misalnya ls
atau rake
perintah atau menggunakan beberapa alias sebagai perintah. Bagaimana saya bisa melakukan ini?
Saya menekan tombol kanan mouse di terminator dan memilih Parameters, lalu Layouts, lalu saya menambahkan teks di bagian Custom command.
Semua ini harus dilakukan secara otomatis setelah terminator mulai.
Jawaban:
Jalankan
cd /home/downloads; exec bash
sebagai perintah khusus. (exec
Builtin memastikan bahwa itubash
akan menjadi anak dari emulator terminal; tanpanya, itu mungkin berakhir menjadi cucu.) Anda dapat berjalanterminator -e 'cd /home/downloads; exec bash'
pada baris perintah.Anda tidak dapat menggunakan alias dalam perintah khusus karena alias Anda ditentukan oleh
~/.bashrc
, tetapi file itu hanya dimuat oleh shell interaktif, bukan oleh shell scripting yang digunakan sebagai lem di sini antara emulator terminal dan shell scripting. Jika Anda ingin menggunakan alias, Anda harus memuatnya secara eksplisit. Jika Anda menyimpannya di file terpisah, itu akan menjadi sesuatu sepertiatau di baris perintah
Jika alias Anda ada di dalamnya
~/.bashrc
, maka gunakan. ~/.bashrc
, tetapi berhati-hatilah karena ada beberapa hal di dalam Anda.bashrc
yang menyebabkan kesalahan karena shell tidak interaktif. Jika ini terjadi, solusi termudah adalah dengan membagi alias Anda (dan fungsi dan pengaturan lain yang ingin Anda gunakan dalam kode lem) menjadi file terpisah dan gunakan.
untuk memasukkan yang dari.bashrc
.sumber
Saya memiliki masalah yang sama untuk mengaktifkan lingkungan virtual dengan Terminator .
Caranya adalah dengan melakukan segala sesuatu hanya dengan perintah "satu":
bash
. Mengambil keuntungan dari-i
opsinya (interaktif) dan menggunakan kebiasaan--rcfile
yangPROMPT_COMMAND
diatur untuk apa pun yang ingin kita jalankan. Hasilnya akan seperti ini:Cukup ganti
your commands; go here;
dengan perintah Anda yang sebenarnya. Lihat jawaban ini untuk penjelasan .sumber
Cukup tambahkan perintah lain dengan cara yang sama Anda menambahkan yang pertama. Misalnya, untuk menjalankan
ls
:Anda dapat menambahkan ini ke opsi "perintah" profil Anda:
Alasan yang tidak Anda dapatkan
rake
adalah karena tidak ada di jalur default. Untuk menggunakannya, Anda perlu menentukan path. Jadi, pertama jalankan perintah ini di terminal Anda:Itu akan mengembalikan sesuatu seperti
/foo/bin/rake
. Itulah jalan yang Anda butuhkan. Ambil dan tambahkan ke perintah Kustom di atas:Ini tidak akan berfungsi untuk alias. Alias diatur oleh shell Anda dan tidak akan tersedia di sini. Solusinya adalah dengan menggunakan skrip. Jadi, jika Anda memiliki alias seperti ini:
Buat skrip, panggil
foo.sh
dan simpan/home/youruser/bin
, dengan konten ini:Dan membuatnya dapat dieksekusi:
Kemudian, di bagian "Perintah khusus", gunakan:
sumber
rake
harus jika Anda menggunakan path lengkap/path/to/rake
.cd /path/to/rake; rake; bash
lakukan/path/to/rake; rake; bash
.Jika Anda mengklik kanan pada jendela Terminator yang terbuka, Anda dapat memilih "Preferensi." Pilih "Profil" dan dari sana, tab "Command". Ada kotak centang berjudul "Jalankan perintah khusus, bukan shell saya."
Saya percaya itulah yang Anda cari.
sumber
Hanya saja jangan gunakan '
command =
' untuk mengubah direktori. Gunakan untuk perintah Anda yang sebenarnya!Saat mengedit
.config/terminator/config
, cukup tentukandirectory = <dir>
' ketika Anda ingin terminal secara otomatis cd ke satu dir yang diberikan, ataucommand = <cmd>; <your_shell>
' ketika Anda ingin mengeksekusi perintah kustom, dan tidak hanya mengubah direktoriSebagai contoh:
Jika Anda hanya ingin terminal melakukan cd
<dir>
saat startup, maka tentukan 'direktori' dan biarkan 'perintah' kosong:Jika Anda hanya ingin menjalankan perintah khusus, hanya tentukan perintah:
Jika Anda ingin keduanya melakukan cd ke DIR dan menjalankan perintah:
sumber