আমি কীভাবে সমস্ত ব্যবহারকারীর জন্য উপকরণ পূর্বনির্ধারণ করতে পারি?


38

আমার উবুন্টু 14.04.2 আছে। আমি এটি তৈরি করতে চাই যাতে সমস্ত ব্যবহারকারীর স্বয়ংক্রিয়ভাবে একটি পৃথক উপকরণের সেট থাকে। আমার ব্যক্তিগত আমার .Bashrc এ আমার উপাত্তগুলি সেট আছে তবে আমি অন্য ব্যবহারকারীদের মধ্যে সেগুলি ম্যানুয়ালি অনুলিপি করতে চাই না। আদর্শভাবে এটি নতুন তৈরি ব্যবহারকারীদের জন্য স্বয়ংক্রিয়ভাবে এগুলি সেট করা উচিত।


1
"প্রিসেট," দ্বারা আপনি কী বোঝাতে চেয়েছেন যে আপনি সমস্ত নতুন ব্যবহারকারীকে কিছু নির্দিষ্ট এলিয়াস দিয়ে তৈরি করতে চান যা তারা সহজেই পুনরায় কনফিগার করতে পারে? বা আপনি কী বোঝাতে চেয়েছেন যে আপনি বিশ্বব্যাপী উপকরণ তৈরি করতে চান, যেমন সমস্ত ব্যবহারকারী তাদের কাছে সর্বদা থাকবেন (এবং তাদের পুনরায় সংজ্ঞা দিতে / অপরিবর্তিত করতে সক্ষম হবেন ... তবে তারা তাদের নিজস্ব কনফিগারেশন ফাইলগুলি সন্ধান করার সময় তাদের দেখতে পাবেন না, যা তারা খুঁজে পেতে পারে befuddling)? অথবা অন্য কিছু? সম্পর্কিত: আন্ডারআন্ডারিং .বাশার্ক এবং .বাশ_প্রফাইলে (এর বিজোড় শিরোনাম সত্ত্বেও, আমি বিশ্বাস করি যে প্রশ্নটি এবং এটি আসলে বেশ একই রকম)।
এলিয়াহ কাগান

উত্তর:


50

আপনি /etc/profile.d/সমস্ত ব্যবহারকারীর জন্য উপকরণ তৈরি করতে একটি স্ক্রিপ্ট তৈরি করতে পারেন :

  1. 00-aliases.sh(বা অন্য কোনও অভিনব নাম) নামে একটি ফাইল তৈরি করুন /etc/profile.d:

    gksu gedit /etc/profile.d/00-aliases.sh
    
  2. আপনাকে এই ফাইলটিতে ডাকনাম দিন। উদাহরণ:

    alias foo='bar --baz'
    alias baz='foo --bar'
    
  3. ফাইলটি সংরক্ষণ করুন

  4. পরিবর্তনগুলি প্রয়োগ করতে কোনও খোলা টার্মিনাল পুনরায় চালু করুন।
  5. উপভোগ করুন!

কিছু নোট:

  • /etc/profileএটি একটি গ্লোবাল ফাইল যা আগে চালিত হয় ~/.profile
  • /etc/profile.d/ এমন একটি ফোল্ডার যা স্ক্রিপ্ট দ্বারা ডাকা হয় /etc/profile
  • যখন /etc/profileডাকা হয় (আপনি যখন শেলটি শুরু / লগইন করেন) তখন এটি শেষ হওয়া কোনও ফাইল অনুসন্ধান .shকরে /etc/profile.d/এবং এই আদেশগুলির মধ্যে একটি দিয়ে এগুলি চালায়:

    source /etc/profile.d/myfile.sh
    

    . /etc/profile.d/myfile.sh
    
  • 00-বাকী স্ক্রিপ্টগুলির আগে এটি কার্যকর করতে আমি ফাইলের নাম রাখছি ।
  • আপনি নিজের এলিয়াসগুলি এতে যুক্ত করতে পারেন তবে /etc/profileএটি প্রস্তাবিত নয়।

2
পুরোপুরি কাজ করে! /Etc/profile.d এর উদ্দেশ্য কী তা সম্পর্কে একটি সংক্ষিপ্ত বিবরণ দিতে পারেন?
ব্রায়ান সাইজমোর

1
@ ব্রায়ানসিজমোর: আমি কয়েকটি ব্যাখ্যা দিয়ে আমার উত্তর আপডেট করেছি। আপনার কি আরও প্রশ্ন আছে?
হেলিও

1
এটি এটি খুব ভালভাবে ব্যাখ্যা করে। স্পষ্টতা আমাকে অন্যান্য ব্যবহারগুলিও বিকাশ করতে সহায়তা করে। সব ধরনের সাহায্য করার জন্য ধন্যবাদ!
ব্রায়ান সাইজমোর

4
এই উত্তরের পদ্ধতিটি ব্যবহার করা উচিত নয়। (বা ) এর .shফাইলগুলির উপকরণগুলি কেবল লগইন শেলগুলির জন্য সংজ্ঞায়িত করা হবে এবং তারা ইন্টারেক্টিভ নন-লগইন শেলগুলিতে কাজ করবে না। পরিবেশের ভেরিয়েবলের বিপরীতে, বাশ চাইল্ড প্রসেসগুলিতে এলিয়াসগুলি রফতানি করতে পারে না, এমনকি শিশু বাশ শেলও নয়। এই পদ্ধতিটি সঠিকভাবে কাজ করে মনে হতে পারে যদি এটি কেবল লগইন শেলগুলিতে পরীক্ষা করা হয় যেমন ভার্চুয়াল কনসোলে বা এসএসএইচ দিয়ে লগিন করে প্রাপ্ত আসল শেল, তবে এটি তাদের শিশু শেলগুলিতে ব্যর্থ হয় এবং জিইউআই টার্মিনাল উইন্ডো দ্বারা শুরু শেলগুলিতেও ব্যর্থ হয়। /etc/profile.d//etc/profile
এলিয়াহ কাগান

2
@Helio আমার উত্তর করতে Undertanding .bashrc এবং .bash_profile কি লক্ষ্য উপর নির্ভর করে, বিস্তারিত ব্যাখ্যা সহ দুটি পৃথক পদ্ধতি দেয়। আমি নিশ্চিত নই যদি এই বা সেই প্রশ্নটিকেই নকল হিসাবে বিবেচনা করা যায়। ওপি থেকে তাদের প্রয়োজনীয়তা সম্পর্কে স্পষ্টতা পেতে আমি এই প্রশ্নে মন্তব্য করেছি। এই প্রশ্নটির চেয়ে এই প্রশ্নটি আরও সংকীর্ণভাবে ধরা পড়েছে তাই আমি অনুমান করি যে এখানে আমার দীর্ঘ প্রশ্নের কিছু অংশ coveringেকে রেখে একটি ছোট উত্তর পোস্ট করা আমার পক্ষে ঠিক হবে। (আপাতত, আমি আমার মন্তব্যে ওপি দ্বারা একটি উত্তর পাওয়ার প্রত্যাশা করছি))
এলিয়াহ কাগন

6

হিসাবে নির্দিষ্ট এখানে , এটা বিশ্বব্যাপী alias লেখা যোগ করার জন্য সম্ভবত ভালো /etc/bash.bashrc:

alias foo='bar --baz'
alias baz='foo --bar'

, কারণ স্ক্রিপ্টগুলি/etc/profile.d নির্দিষ্ট (লগ-ইন না করে) শেলের জন্য উপেক্ষা করা যেতে পারে/etc/profile.dকাজ হয়নি কেন তা বুঝতে কয়েক ঘন্টা সময় লাগল ।

শেলগুলির মধ্যে পার্থক্যের জন্য যেমন https://askubuntu.com/a/606882/ এবং বোঝার .Bashrc এবং .bash_profile দেখুন


5

একটি শেল এর ভিতরে থাকা অবস্থায় একটি উপনাম কেবল কাজ করবে। আপনি যদি এক্সিকিউটেবলের মতো বহুল পরিমাণে অ্যাক্সেসযোগ্য কিছু চান তবে আপনি একটি ছোট শর্টকাট স্ক্রিপ্ট যুক্ত করতে পারেন /usr/bin, যেমন:

#!/bin/sh
ls -l "$@"

"$@"এক্সিকিউটেবল করার মাধ্যমে আর্গুমেন্ট প্রেরণ করা হয়। স্ক্রিপ্টের নাম এক্সিকিউটেবলের নাম হবে।

সূত্র: https://unix.stackexchange.com/a/52509/15954


এই উত্তরটি সম্পর্কিত নয় বলে মনে হচ্ছে। গৃহীত উত্তর সঠিকভাবে প্রশ্নের উত্তর দেয় যখন মনে হয় এটি কার্যকরভাবে সরবরাহ করে।
ব্রায়ান সাইজমোর 21

3
@ ব্রায়ানসাইজমোর আমার একই প্রশ্ন ছিল তবে আমি এই সমাধানটিকে হোঁচট খেয়েছি যা আমার ক্ষেত্রে আরও উপযুক্ত; আশা করি এটি অন্যদেরকেও একই রকম পরিস্থিতিতে সহায়তা করবে। অনেক লোকের জন্য, উপনামটি ঠিক থাকবে।
jtpereyda

1
@ ব্রায়ানসাইজমোর এই উত্তরটি একটি সাধারণ ভুল ধারণা (যা আমারও ছিল) পরিষ্কার করে এবং এটি দরকারী এবং সরাসরি সম্পর্কিত।
a20

0

জন্য / etc / bashrc

  • সিস্টেমের প্রশস্ত ফাংশন এবং উপাধি
  • পরিবেশ স্টাফগুলি / ইত্যাদি / প্রোফাইলে যায়

আপনি কী করছেন তা যদি না জানেন তবে এই ফাইলটি পরিবর্তন করা ভাল ধারণা নয়। আপনার পরিবেশে কাস্টম পরিবর্তন করতে /etc/profile.d/ এ একটি কাস্টম.শ শেল স্ক্রিপ্ট তৈরি করা আরও ভাল, কারণ এটি ভবিষ্যতের আপডেটগুলিতে মার্জ হওয়ার প্রয়োজনীয়তা রোধ করবে।

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