Chsh বা / etc / passwd অ্যাক্সেস না থাকলে আমি কীভাবে আমার ডিফল্ট শেলটিকে ব্যাশে পরিবর্তন করব?


8

আমি একটি বিশ্ববিদ্যালয়ের রিমোট লিনাক্স অ্যাকাউন্টে কাজ করছি এবং ডিফল্ট শেলটি দুঃখজনকভাবে cshট্যাব সম্পূর্ণ না করেই চলছে । আমি কীভাবে আমার অ্যাকাউন্টের ডিফল্ট শেল এতে পরিবর্তন করতে পারি bash? chshপাওয়া যায় না।


1
অ্যাকাউন্ট সংরক্ষণের জন্য বিশ্ববিদ্যালয় কোন সিস্টেম ব্যবহার করে? ldapmodifyকাজ করতেও পারে.
ব্যবহারকারী1686

অথবা, যদি তারা এনআইএস ব্যবহার করে থাকে ypchshতবে সঠিক কমান্ড হওয়া উচিত।
m000

আপনি শুধু ট্যাব সমাপ্তির চান তাহলে আপনাকে আপনার ~ / .cshrc এই যোগ করতে পারিনি set filecএবং set autolist
হেনেস

উত্তর:


11

আপনার সিস্টেমেডমিনদের জিজ্ঞাসা করার চেষ্টা করা উচিত যদি তারা আপনার জন্য আপনার ডিফল্ট শেলটি পরিবর্তন করতে পারে। যদি তারা না পারে বা না পারে (যেমনটি আমি কলেজে ছিলাম তখন), আমি যে ওয়ার্কআরন্ডটি ব্যবহার করতাম তা হ'ল

# Exec bash if using an interactive shell.
if ($?prompt) then
    setenv SHELL /path/to/bash
    exec $SHELL
endif

to .cshrc। ( /path/to/bashঅবশ্যই একটি বাস্তব পথের সাথে প্রতিস্থাপনের বিষয়টি নিশ্চিত করুন This এটি bashআপনার হোম ডিরেক্টরিতে অন্তর্ভূক্ত সংস্করণের একটি সংস্করণও হতে পারে , যদি সিস্টেম-সরবরাহিত সংস্করণ আপনার স্বাদের জন্য খুব পুরানো হয় is) দক্ষতার জন্য, এটি সেরা এটি .cshrcসম্ভবপর যত তাড়াতাড়ি সম্ভব তা করার জন্য, যাতে আপনি অতিরিক্ত .cshrcপ্রক্রিয়াজাতকরণ bashএড়ান যা cshপ্রক্রিয়াটি একবার প্রতিস্থাপনের পরে মোটা হয়ে যায় ।


এটি আমার বিশ্ববিদ্যালয়ে আমার পক্ষে কাজ করেনি। আমাকে সম্ভবত সিসাদমিনের সাথে কথা বলতে হবে।
2rs2ts

3

আপনি কেবল সাথে যোগাযোগ করতে পারে

ssh -t yourhost bash

আপনি লগ ইন করার পরে বাশ শেলটি স্বয়ংক্রিয়ভাবে কার্যকর করতে।


নীচের মন্তব্যগুলি থেকে আপনি বিকল্পটি দেখতে পারেন

ssh -t yourhost exec bash

execএকটি নতুন প্রক্রিয়া চালাবে এবং পুরানোটি থেকে প্রস্থান করবে, সুতরাং cshপ্রক্রিয়াটি সরাসরি প্রস্থান করবে।

-lকমান্ডের শেষে বাশকে যুক্তি হিসাবে যুক্ত করা হলে এটি লগইন শেল হিসাবে গণ্য হবে, তবে সম্ভবত এটির প্রয়োজন নেই।


1
ssh -t yourhost exec -a bash -l bashপ্রাথমিক শেলটি সম্পূর্ণরূপে প্রতিস্থাপন করতে, প্রাথমিক শেলের ভিতরে একটি প্রক্রিয়া হিসাবে চালিত না হয়ে।
চিপনার

@ চেপনার: মজার, আমি ssh -t host bashএকই রকম পরিস্থিতিতে নিজেকে একটি সহজ সমাধান ব্যবহার করছি , তবে আপনার উপায়টি আরও ভাল। আমি মোটেও ভেবে দেখিনি exec, ধন্যবাদ! আমি আপনার পরামর্শ দিয়ে পোস্ট আপডেট করব।
ড্যানিয়েল অ্যান্ডারসন

bashবিল্ট ইন কমান্ডের পক্ষে যুক্তি ব্যবহার করে আমি কিছুটা অভিনবতা পেয়েছি exec
চিপনার

@chepner, হায় হ্যাঁ, আমি এটা এখন ডিফল্ট শেল হিসেবে zsh সঙ্গে একটি হোস্ট চেষ্টা এবং এটি উভয় ব্যর্থ হলে -aএবং -l। আমি আমার উত্তরে উদাহরণটি পরিবর্তন করব।
ড্যানিয়েল অ্যান্ডারসন

0

আমি যে সর্বোত্তম সমাধানটি পেয়েছি তা হ'ল স্ট্যাকেক্সচেঞ্জের ওভার। এখানে লিঙ্কটি স্ট্যাকেক্সচেঞ্জ এবং এখানে সমাধান রয়েছে:

আপনার বাড়ির ডায়ারে একটি প্রোফাইল ফাইল তৈরি করুন এবং নিম্নলিখিতটিতে আটকান বা আপনার প্রোফাইল প্রোফাইলের শেষে যুক্ত করুন যদি আপনার কাছে ইতিমধ্যে একটি থাকে।

case $- in
  *i*)
    # Interactive session. Try switching to bash.
    if [ -z "$BASH" ]; then # do nothing if running under bash already
      bash=$(command -v bash)
      if [ -x "$bash" ]; then
        export SHELL="$bash"
        exec "$bash"
      fi
    fi
esac

0

আপনি যখন প্যামের মাধ্যমে এলএডিপি প্রমাণীকরণ ব্যবহার করছেন তখন আমি অনেক অনুসন্ধান করেছি, আমি মনে করি সবচেয়ে ভাল সমাধান হ'ল আপনার ব্যবহারকারী হোম ডিরেক্টরিতে। প্রোফাইল ফাইলটিতে শেল = / বিন / ব্যাশ এক্সিকিট / বিন / ব্যাশ স্থাপন করা ash

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