উত্তর:
কমান্ডগুলি ভিতরে রাখুন ~/.bashrc
। আপনি লগইন করার সময় সেখানে যে কোনও কিছু কার্যকর করা হয়।
আপনার যদি কেবল ssh- এর মাধ্যমে লগ ইন করার সময় চালানোর জন্য কমান্ডগুলির প্রয়োজন হয় (তবে শারীরিকভাবে লগ ইন করার সময় নয়), আপনি সম্ভবত SSH_CONNECTION
পরিবেশের পরিবর্তনশীল উপস্থিতির জন্য পরীক্ষা করতে পারেন , এবং যদি এটির সন্ধান পান তবে কেবল কমান্ডগুলি চালনা করতে পারেন।
আপনি যদি সমস্ত ব্যবহারকারীর জন্য এটি চান তবে এটি কেবল ~ / .bashrc বা /etc/bash.bashrc এ রাখুন:
if [[ -n $SSH_CONNECTION ]] ; then
echo "I'm logged in remotely"
fi
screen
আপনার উত্তরটি ব্যবহার করতে এবং screen
প্রতিধ্বনির পরিবর্তে সেখানে রেখে দিতে পারি । এর সাথে সমস্যা হ'ল স্ক্রিন সেশনটি শেষ করে লগ আউট না করে এসএসএইচ প্রম্পটে ফিরে আসবে। কেবল এই মন্তব্যটি লিখে আমার উত্তর দিয়েছে, যদিও: logout
কমান্ডের পরে screen
কমান্ড যুক্ত করুন।
exec command
বর্তমান শেলটি আপনার যা কিছু রান করে তা প্রতিস্থাপন করবে।
বিকল্প হিসাবে, আপনি এর অনুরোধের সময় চালিত একটি কমান্ড নির্দিষ্ট করতে পারেন ssh
:
$ ssh -t server 'cmd; exec bash -l'
তালিকার শেষ কমান্ডটি আপনার পছন্দসই শেলটিতে একটি ইন্টারেক্টিভ সেশন শুরু করা উচিত। আপনার চালনার প্রচুর কমান্ড থাকলে আপনার এসএসএইচ সার্ভারে একটি স্ক্রিপ্ট ফাইল তৈরি করার বিষয়টি বিবেচনা করুন।
~/.ssh/rc
কমান্ড যুক্ত করার জন্য আসলে আপনার পক্ষে সঠিক জায়গা
~/.ssh/rc
Commands in this file are executed by ssh when the user logs in,
just before the user’s shell (or command) is started. See the
sshd(8) manual page for more information.
প্রথমে রিমোট হোস্টে .bashrc কার্যকর করতে, তারপরে কমান্ড লাইনে পাস হওয়া কমান্ডগুলি কার্যকর করুন (যা আপনার .bashrc রিমোট হোস্টে সংজ্ঞায়িত এলিয়াস এবং ফাংশন ব্যবহার করতে সক্ষম হবে), তারপরে আপনাকে বাশ প্রম্পটে ছেড়ে যাবে (ধরে নিলে কমান্ডগুলি আপনি প্রম্পটে ফিরে বেরিয়ে যান):
$ ssh user@host "bash -lc cmd; cmd; ..."
-l বিকল্প এটি এটিকে একটি লগইন শেল করে তোলে (যেমন .bashrc চালান)
-c বিকল্পটি সরবরাহ করে সুস্পষ্ট কমান্ড বাশ চলবে
man bash
) এ পড়তে হবে ।