Setiap kali saya masuk ke server Linux saya, saya ingin beberapa perintah dijalankan secara otomatis (mengatur beberapa variabel, mengubah lokasi, dll.)
Ini perlu dilakukan pada login pengguna, bukan pada sistem start.
Bagaimana saya mengaturnya untuk melakukan ini?
man bash
).Jawaban:
Masukkan perintah
~/.bashrc
. Apa pun di sana dieksekusi setiap kali Anda masuk.Jika Anda memerlukan perintah untuk hanya berjalan ketika masuk melalui ssh (tetapi tidak ketika masuk secara fisik), Anda mungkin bisa menguji keberadaan
SSH_CONNECTION
variabel lingkungan, dan hanya menjalankan perintah jika Anda menemukannya.sumber
Masukkan saja ini ke ~ / .bashrc atau /etc/bash.bashrc jika Anda menginginkan ini untuk semua pengguna:
sumber
screen
saya, saya mungkin menggunakan jawaban Anda dan meletakkannya discreen
sana sebagai gantinya. Masalahnya adalah bahwa menyelesaikan sesi layar akan kembali ke SSH prompt bukannya logout. Hanya menuliskan komentar ini memberi saya jawaban, meskipun: tambahkanlogout
perintah setelahscreen
perintah.exec command
akan mengganti shell saat ini dengan apa pun yang Anda jalankan.Atau, Anda dapat menentukan perintah yang akan dijalankan selama doa
ssh
:Perintah terakhir dalam daftar harus memulai sesi interaktif di shell pilihan Anda. Jika Anda memiliki banyak perintah untuk dijalankan, pertimbangkan untuk membuat file skrip di server SSH Anda.
sumber
Sebenarnya
~/.ssh/rc
adalah tempat yang tepat bagi Anda untuk menambahkan perintahsumber
Untuk terlebih dahulu menjalankan .bashrc pada host jarak jauh, kemudian jalankan perintah yang Anda lewati pada baris perintah (yang akan dapat menggunakan alias dan fungsi yang didefinisikan dalam .bashrc host jarak jauh Anda), kemudian meninggalkan Anda di bash prompt (dengan asumsi perintah yang Anda jalankan exict kembali ke prompt):
Opsi -l menjadikannya shell login (mis. jalankan .bashrc)
Opsi -c menyediakan perintah eksplisit yang akan dijalankan oleh bash
sumber