আমার উপন্যাসটি এসএস-এর কাজ করে না কেন?


9

আমার একটি সংজ্ঞা দেওয়া আছে .bashrc

alias l.='ls -d .* --color=auto'

এটি খুব দরকারী :) তবে এটি এর মাধ্যমে কার্যকর হয় না ssh:

$ ssh localhost l.
bash: l.: command not found

কেন এমন?


1
.bashrcশেলটি ইন্টারেক্টিভ হলেই কেবল তা পড়তে হবে।
ব্যবহারকারী 4556274

1
আপনার উপন্যাসের ওপরে এসএসএস সহ, সম্ভবত কোনও রঙ থাকবে না, যেখানে আপনি যদি নিজের নামটি পরিবর্তন করেন alias l.='ls -d .* --color'তবে রং উপস্থিত হয়। শুধু ভেবেছিলাম আমি এটি যুক্ত করব। কমপক্ষে আমি এটি অভিজ্ঞতা ছিল।
টেরেন্স

@ টেরেন্স আমি সে সম্পর্কে ভাবছিলাম ... আমি এখনও রঙ (এবং কোনও কলাম) পাই না যদিও আমার বর্ণটি (এবং কলামগুলি) পেয়েছে যেমন উলাম পরিবর্তন করার পরে (এবং করছেন source .bashrc)
জান্না

1
আহ হা! আমি মনে করি এটি পেয়েছি। alias l.='ls -dC .* --color'যেখানে আপনার কাস্টমগুলি Cকলাম দেখায় তার নাম ব্যবহার করুন ।
টেরেন্স

1
আমি বর্ণটি সমাধান করার জন্য উত্তরটি সম্পাদনা করেছি।
মেটেই ডেভিড

উত্তর:


10

চেষ্টা করুন:

ssh localhost -t bash -ci l.

বিঃদ্রঃ:

  • উপনামটি ~/.bashrcআপনার স্থানীয় মেশিনে নয়, দূরবর্তী সার্ভারে থাকা উচিত ।

  • -iবিকল্প বলে bashএকটি ইন্টারেক্টিভ শেল চালানোর জন্য। এলিয়াসগুলি কেবল ইন্টারেক্টিভ শেলগুলিতে ডিফল্টরূপে সক্ষম হয়।

  • -tঅপশন বলে sshএকটি সিউডো-TTY বরাদ্দ করা। এটি ছাড়া, bashইন্টারেক্টিভ মোডে শুরু করার সময় একটি সতর্কতা বার্তা প্রেরণ করে। এটি রঙগুলিকে সক্ষম lsকরে। এটি ছাড়া, আপনাকে ব্যবহার করতে হবে --color=always, দেখুন man ls

  • ইন্টারেক্টিভ ফ্ল্যাগ সেট না করেই, এলিয়াসগুলি সক্ষম করার আরও একটি উপায় রয়েছে shopt -s expand_aliases। সুতরাং আপনি চেষ্টা করতে পারেন:

    ssh localhost 'bash -c "shopt -s expand_aliases; l."'

    যাহোক:

    • আপনার .bashrcশেল সোর্সিংটি ইন্টারেক্টিভ হলে কেবলমাত্র এলিয়াসগুলি সংজ্ঞায়িত করতে পারে। এই উদাহরণে, শেলটি তখন ইন্টারেক্টিভ হবে না।

    • আপনি একই লাইনে alias লেখা সংজ্ঞায়িত করতে চেষ্টা করুন, দেখুন এই


1
এটি কার্যকর .... আপনার ব্যাখ্যায়, অবশ্যই, তবে আমি sshনিজের সাথে যুক্ত আছি :)
Zanna

1
আমি সাধারণভাবে বলতে চাইছি যখন ব্যবহার করছি ssh। হ্যাঁ, localhostএটি কোনও সমস্যা নয়।
মেটেই ডেভিড

ssh ... <cmd>যখন প্রস্থান করে <cmd>সম্পন্ন করা হয়। আপনি যদি শেলটি পরে রাখতে চান তবে lsচেষ্টা করুন ssh localhost -t 'bash -ci "l.; exec bash"'
মেটেই ডেভিড

আহা বুঝি। অনেক ধন্যবাদ. আমি আমার মন্তব্যগুলি মুছতে চলেছি :)
Zanna
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.