সাইগউইন .bashrc উত্স হচ্ছে না কারণ সাইগউইন উইন্ডোজ হোম থেকে শুরু হচ্ছে


9

দ্রষ্টব্য: সমস্যার আপডেটের জন্য দয়া করে নীচে আমার দ্বিতীয় সম্পাদনাটি দেখুন।

সাইগউইন আমার জন্য গত সপ্তাহ পর্যন্ত ভাল কাজ করছিলেন। এখন .বাশার্ক সোর্স হচ্ছে না। আমি অবশ্যই কিছু ইনস্টল করেছি বা কিছু পরিবর্তন করেছি তবে সমস্যাটি কী কারণে ঘটেছে ঠিক তা মনে করতে পারছি না। আমি যখন সাইগউইন শুরু করি, তখন আমি আমার উইন্ডোজ হোমে থাকি এবং আমার কোনও এলিয়াস কাজ করে না। আমি নিজে .bashrc উত্স করতে হবে। নিম্নলিখিতটি আমার সাইগউইন.বাট:

@echo off

C:
chdir C:\cygwin\bin

set CYGWIN=tty notitle glob

bash --login -i

কোন ধারনা?

সম্পাদনা: আমার .বাশ_ প্রোফাইলে নিম্নলিখিতটি রয়েছে,

# source the users bashrc if it exists
if [ -f "${HOME}/.bashrc" ] ; then
  source "${HOME}/.bashrc"
fi

সম্পাদনা 2: গুরুত্বপূর্ণ! যখন আমি সাইগউইন শুরু করেছি এটি আমার উইন্ডোজ হোম ফোল্ডারে শুরু হয়। আমি এই ফোল্ডারে আমার .bash_profile এবং .Bashrc রাখার চেষ্টা করেছি এবং সেগুলি সঠিকভাবে উত্সাহিত হয়েছিল! এর অর্থ হ'ল সাইগউইন উইন্ডোজ হোম ফোল্ডারে কেন সাধারণ সাইগউইন হোম ফোল্ডারটি নয়, তা কেন শুরু করে তা জানার ক্ষেত্রে সমস্যাটি হ্রাস পেয়েছে।

এডিআইটি 3: চলমান গ্রেপ গুলশান / ইত্যাদি / পাসডাব্লু /

$ grep Gulshan /etc/passwd
Administrator:unused:500:513:U-Gulshan-HP\Administrator,S-1-5-21-1235613160-4193452482-2032876723-500:/home/Administrator:/bin/bash
Guest:unused:501:513:U-Gulshan-HP\Guest,S-1-5-21-1235613160-4193452482-2032876723-501:/home/Guest:/bin/bash
Gulshan:unused:1000:513:U-Gulshan-HP\Gulshan,S-1-5-21-1235613160-4193452482-2032876723-1000:/home/Gulshan:/bin/bash

যখন আপনার বাশ শেলটি শুরু হয় (এবং আপনাকে আপনার উইন্ডোজ হোম ডিরেক্টরিতে রাখে) তখন কী echo $HOMEমুদ্রণ করে?
কিথ থম্পসন

এটি আমার সাইগউইনের হোম নয়, আমার উইন্ডোজ হোম প্রতিধ্বনিত করে।
gsingh2011

কিন্তু সাইগউইন সিনট্যাক্স ব্যবহার করছেন, তাই না? ( /cygdrive/c/Users/fooপরিবর্তে C:\Users\foo)
কেথ থমসন

হ্যাঁ, সাইগউইন সিনট্যাক্স ব্যবহার করছেন।
gsingh2011

HOME=/home/yourname bash -lটার্মিনাল প্রম্পটে টাইপ করলে কী হবে ? আমি যদি সঠিক হয়ে থাকি তবে এটি আপনাকে সঠিকভাবে কাজ করার শেল দেয়। দ্রষ্টব্য যে এটি একটি ডায়াগোনস্টিক, বা সর্বোত্তমভাবে কাজ করা, কোনও সমাধান নয়; আপনার $HOMEপ্রথম স্থানে কেন ভুল রয়েছে তা আমাদের এখনও খুঁজে বের করতে হবে। মূল সমস্যাটি হ'ল ভুল সেটিংস $HOME; বাশ সঠিকভাবে আচরণ করছে।
কেথ থম্পসন

উত্তর:


9

Cygwin প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী ব্যাখ্যা $HOMEসেট করা হয়:

উইন্ডোজ থেকে সাইগউইন শুরু HOMEকরার সময়, অগ্রাধিকার হ্রাসের জন্য নিম্নলিখিত হিসাবে নির্ধারিত হয়:

  • HOME উইন্ডোজ পরিবেশ থেকে, পসিক্স ফর্মটিতে অনুবাদ করা।
  • প্রবেশ /etc/passwd
  • /home/USERNAME

নেটওয়ার্ক থেকে সাইগউইন ব্যবহার করার সময় (টেলনেট, এসএসএস, ...) HOMEসেট করা আছে /etc/passwd

যদি আপনার HOMEকোনও মান যেমন সেট করা /cygdrive/cথাকে তবে সম্ভবত এটি উইন্ডোজে সেট করা হয়েছিল। একটি ডস কমান্ড উইন্ডোটি শুরু করুন এবং set HOMEযদি এটি হয় তবে তা যাচাই করতে টাইপ করুন।

নেটওয়ার্ক থেকে শুরু করার সময় ভাগ করে নেওয়া ড্রাইভে অ্যাক্সেস প্রায়শই সীমাবদ্ধ থাকে, সুতরাং ডোমেন ব্যবহারকারীরা HOMEউইন্ডোজ এনভায়রনমেন্টে (শেয়ারড ড্রাইভে) এর চেয়ে /etc/passwd(লোকাল ড্রাইভে) চেয়ে আলাদা থাকতে চান to নোট করুন যে ssh কেবল বিবেচনা করে /etc/passwd, উপেক্ষা করে HOME

আমার সেরা অনুমানটি হ'ল আপনি নিজের /etc/passwdফাইলটি গোলমাল করেছেন । (উইন্ডোজ হোম ডিরেক্টরিটি নেই %USERPROFILE%, নয় %HOME%))

কী grep USERNAME /etc/passwdমুদ্রণ করে ( USERNAMEআপনার ব্যবহারকারীর নামের সাথে প্রতিস্থাপন )?


আমি আমার প্রশ্নের আউটপুট যুক্ত করেছি যাতে এটি পড়া সহজ। দেখে মনে হচ্ছে এটি ঠিকভাবে সেট করা আছে। যাইহোক, আমি আমার উইন্ডোজ এনভায়রনমেন্ট ভেরিয়েবলগুলি খোলার জন্য দেখতে পেয়েছিলাম যে সেখানে কোনও% হোম% ভেরিয়েবল রয়েছে এবং এটি% USERPATH% তে সেট করা আছে। আমি এটিকে সরিয়েছি, তবে এটি আমার সমস্যাটির সমাধান করেনি। এটি আবার চালু করতে হবে?
gsingh2011

1
আপনি কি এটি সিস্টেম কন্ট্রোল প্যানেল থেকে, বা উইন্ডোজ কমান্ড শেল ব্যবহার করে সরিয়েছেন set HOME=? সিস্টেম কন্ট্রোল প্যানেল ব্যবহার করা বেশি কাজ করার সম্ভাবনা রয়েছে তবে তারপরেও পুনরায় চালু করার প্রয়োজন হতে পারে।
কিথ থম্পসন

আমি এটি স্টার্ট মেনুতে কম্পিউটারে ডান ক্লিক করে, বৈশিষ্ট্যগুলিতে ক্লিক করে, উন্নত সিস্টেম সেটিংসে ক্লিক করার পরে, পরিবেশের ভেরিয়েবলগুলি এবং তারপরে হোম সরিয়ে এটিকে সরিয়েছি। একটি পুনঃসূচনা প্রয়োজন ছিল। এখন সাইগউইন সঠিক হোম ডিরেক্টরিটি লোড করে। সাহায্যের জন্য ধন্যবাদ.
gsingh2011

1

আপনার যদি একটি। প্রোফাইল বা .বাশ_প্রোফাইল থাকে তবে তা লগইন শেলগুলিতে উত্সাহিত হয় এবং পাস করার পরে আপনি একটি লগইন শেল পান --login। আপনি যদি সূত্র। প্রোফাইলে হন তবে বাশ উত্সটি সরবরাহ করবে না ash

আমি রাখার চেষ্টা করব:

[ -f $HOME/.bashrc ] && source $HOME/.bashrc

আপনার। প্রোফাইলে, দেখুন কিনা এটি সাহায্য করে। অন্যান্য। লগইন শেল আমন্ত্রণগুলিতে আপনার .bashrc এখনও স্বাভাবিক হিসাবে উত্সাহিত করা উচিত।

এবং -iবাশ উপর যেতে না ; তোমার দরকার নেই হ্যাশ ধরণের যে আপনি -iকমান্ড লাইনে দেওয়া ভান করে।


আমার .বাশ_প্রোফাইল এবং। প্রোফাইলে কোডের অনুরূপ লাইন রয়েছে। আমার আপডেট হওয়া প্রশ্নটি দেখুন।
gsingh2011

মাফ করবেন, রিচ হোমোলকা, তবে আমি জানতে চাই আপনি কেন -iএটি প্রয়োজনীয় নন বলে জানাচ্ছেন । ধন্যবাদ।
সোপালাজো ডি অ্যারিরিজ

@ সোপালাজোডেআরিরিজেজ যদি আপনার ইন্টারেক্টিভ (কোনও স্ক্রিপ্ট নয়, তবে টার্মিনালে সক্রিয়) থাকে তবে বাশ ভান করে আপনি -iকমান্ড লাইনে এটি দিয়েছেন । একটি বাশ শেল উইন্ডো খোলার চেষ্টা করুন, তারপরে echo $-, আপনার দেখতে পাওয়া উচিত i(সম্ভবত অন্যান্য পতাকাগুলির মধ্যে)
সমৃদ্ধ হোমোলকা

1

আমি একই আচরণটি অনুভব করেছি - সম্ভবত গিট (উইন্ডোজ) ইনস্টল করার পরে।

সিস্টেম সেটিংয়ে আমি ব্যবহারকারীর ভেরিয়েবল হোম = সি: \ ব্যবহারকারী \ পেয়েছি এবং এটি হোম = ডি: \ হোম এ রিসেট করেছি

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