আমার লিনাক্স প্রম্পটটিতে লগইন নাম এবং পথের পরিবর্তে কেন একটি show প্রদর্শিত হয়?


13

আমার সার্ভারগুলির একটিতে প্রম্পটটি হ'ল [ব্যবহারকারী @ হোস্ট পাথ] ... এবং আমি আসলে "ট্যাব" টিপতে পারি স্বয়ংক্রিয়ভাবে পূরণ করতে।

কিন্তু আমার নতুন উবুন্টু সার্ভারে, এটি কেবল একটি ডলারের চিহ্ন?


1
আপনি সর্বদা pwdবর্তমান কার্যকারী ডিরেক্টরিটির নাম মুদ্রণের জন্য টাইপ করতে পারেন । এবং আপনি কি বলছেন যে ট্যাব-সমাপ্তি কাজ করছে না? (আমি যে কয়েকটি মেশিন ব্যবহার করি সেগুলিতে আমি কেবলমাত্র রুট হিসাবে লগইন করলেই আমি সেই সংক্ষিপ্ত প্রম্পটটি পাই এবং আমি খুশির সাথে সেই জায়গাটিকে একটি দুর্দান্ত সতর্কতা হিসাবে রেখেই চলেছি one , আপনি?)
আরজান

আপনি কী ডিস্ট্রো ব্যবহার করছেন তা অ্যালেক্স বলতে পারেন?
বিপরীতমুখী

আমি উবুন্টু ব্যবহার করছি
অ্যালেক্স

সর্বশেষ উবুন্টু? এবং আপনি কি বলছেন যে ট্যাব-সমাপ্তি কাজ করছে না?
আরজান

আপনি দুটি প্রশ্ন জিজ্ঞাসা করছেন বলে মনে হচ্ছে: কেন রাস্তাটি স্বয়ংক্রিয়ভাবে পূরণ করবে না এবং [ব্যবহারকারী @ হোস্ট পাথ] এর পরিবর্তে প্রম্পটটি কেবলমাত্র একটি ডলার সাইন। উভয়ই উত্তর দেয় না বলে উত্তরের পক্ষে ভোট দেওয়া একটু কঠিন।
জোসেফ হোলস্টেন

উত্তর:


27

যেহেতু আপনি দুটি প্রশ্ন জিজ্ঞাসা করছেন, তাই আমি উভয়ের উত্তর দেব।

ট্যাব স্বয়ংক্রিয়রূপে ফাইলের পাথগুলি কেন দেয় না?

কারণ আপনি শেলটি এটি সমর্থন করে না, বা ট্যাব সমাপ্তি চালু হয় না।

এটি সমাধানের জন্য, আপনাকে প্রথমে আপনার শেলটি কী তা আবিষ্কার করতে হবে। আপনি যে শেলটি উপভোগ করেন, সেই মেশিনে চালান

echo $SHELL

আপনি দেখতে পাচ্ছেন সাধারণ /bin/bash, বা খুব কম সাধারণ কিছু /bin/tcsh, /bin/zshবা অন্য কোনও কিছু entire

এখন, আপনি উবুন্টু মেশিনে আপনার শেল পরিবর্তন করতে পারেন। সেই মেশিনে, প্রথমে নিশ্চিত হয়ে নিন যে আপনি যে শেলটি চান তা বিদ্যমান আছে। যেহেতু শেলটি অন্যটির মতো উবুন্টু মেশিনে একই জায়গায় নাও থাকতে পারে, টাইপ করে লোকেশনটি পরীক্ষা করুন

 which bash

এই আপনি শেল যদি আপনি চান পথে, ভালো কিছু দিতে হবে /bin/bash, /usr/bin/bashঅথবা /usr/local/bin/bash। অবশ্যই, যদি আপনি ব্যাশ ছাড়া অন্য কোনো শেল চান, আপনি বলবো which tcsh, which zshবা অনুরূপ।

আপনি যদি কোনও পথ না দেখেন, তবে পরিবর্তে দেখতে পান bash not foundতবে আপনাকে উপযুক্ত প্যাকেজটি ইনস্টল করতে হবে এবং whichশেলটি কোথায় ইনস্টল করা হয়েছে তা আবার খুঁজে বের করতে হবে।

আপনার নির্বাচিত শেলটির পথ দিয়ে, আপনি অবশেষে চালিয়ে নিজের শেল পরিবর্তন করতে পারেন

chsh -s /bin/bash

/bin/bashআপনার পছন্দের শেলটির উপযুক্ত পথটি যাই হোক না কেন তার সাথে প্রতিস্থাপন করা।

প্রম্পটটি কেন [ইউজার @ হোস্ট পাথ] এর পরিবর্তে ডলার সাইন হয়?

কারণ আপনার দ্রুত এনভায়রনমেন্ট ভেরিয়েবল এর $PS1, $PS2, এবং তাই। এই জিনিসগুলি শাঁসের মধ্যে বহনযোগ্য হতে পারে না, তাই সম্ভাব্য প্রার্থীদের জন্য কয়েকটি লিঙ্ক এখানে দেওয়া হয়েছে:

bashএকটি হয়েছে ব্যাপক ম্যানুয়াল , উপর পৃষ্ঠাগুলির সাথে ব্যাশ ভেরিয়েবল (তত্সহ PS1, সি) এবং মুদ্রণ একটি প্রম্পট (যা বর্ণনা করে PROMPT_COMMAND, দীর্ঘ জন্য নাম PS1)। নিম্নলিখিতটি আপনার লাইনে যুক্ত করুন~/.bashrc

export PS1='[\u@\h \w] '

tcshপ্রম্পট পরিবেশের ভেরিয়েবলের একটি বিভাগ সহ একটি অনলাইন ম্যানুয়াল রয়েছে (কেবল এটির ম্যান পৃষ্ঠা) । নিম্নলিখিতটি আপনার লাইনে যুক্ত করুন~/.tcshrc

set prompt='[%n@%m %~] '

zshএকটি আছে ইউজার গাইড , একটি সঙ্গে অনুরোধ জানানো সহজ নির্দেশিকা , সেইসাথে একটি ম্যানুয়াল একটি তথ্যসমৃদ্ধ রেফারেন্স সঙ্গে, প্রম্পট সম্প্রসারণ । নিম্নলিখিতটি আপনার লাইনে যুক্ত করুন~/.zshrc

export PS1='[%n@%m %~] '

6

বাশ একমাত্র শেল নয়।

আপনার ইস্যুটি PS1 সেট করে এমন একটি প্রোফাইলে বা .bashrc না থাকার একটি সহজ বিষয় হতে পারে বা এটি হতে পারে যে আপনার লগইন শেলটি মোটেই বাশ না।

gnu readlineট্যাব সমাপ্তির মতো জিনিসগুলির জন্য ব্যাশ ব্যবহার করে । এটি একটি জটিল বিষয় এবং রিডলাইনের এমনকি নিজস্ব-ব্যবহারকারী কনফিগার ফাইল রয়েছে।

দেখুন man bash, man shএবং man 3 readline। বাশ সাড়া দেয় --version। অনেকগুলি লিনাক্স সিস্টেমে /bin/shআসলে বাশ হয় না, তবে এটি সাধারণত একটি পঙ্গু সংস্করণ ash


1
dashপরিবর্তে না ash? আমি ভেবেছিলাম আমি এই জাতীয় কিছু পড়েছি
নিটল

2
একটি প্রোফাইলে বা .বাশার্ক না থাকার জন্য +1 - যদি না উলেক্ট উবুন্টু ইনস্টল করার সময় প্রথমে তার অ্যাকাউন্ট সেট আপ করেন, তবে ডিফল্টরূপে, নতুন ব্যবহারকারীদের কাছে .bashrc নেই বা পিএস 1 সেট নেই।
Cory প্লাস্টেক

4

আমার ধারণা, আপনি ব্যাশ ব্যবহার করছেন না, তবে sh এবং আপনার প্রম্পটটি সঠিকভাবে সেট করা নেই (যদি এটি sh এর মাধ্যমেও সম্ভব হয়)।

আপনি টাইপ করে আপনার বর্তমান শেলটি পেতে পারেন: echo $SHELL

আপনি যদি বাশ শুরু করতে চান তবে টাইপ করুন bash


আপনি অন্যান্য শেলগুলির সাথে প্রম্পট সেট করতে পারেন। কোন শেল বলা হয় না sh। প্রতিধ্বনি $SHELLএকটি এনভায়রনমেন্ট ভেরিয়েবল প্রিন্ট করবে SHELL। এই পরিবেশের পরিবর্তনশীলটি কেবল শেলের দিকে নির্দেশ করে এবং কেবল বাশ দ্বারা সেট করা হয়। কোন শেলটি চলছে তা নির্ধারণে এটি প্রায় অকেজো, কারণ এটি কেবলমাত্র দুর্বলভাবেই বোঝায় যে বর্তমান প্রক্রিয়ার কিছু পিতামাতাকে বশ করা হতে পারে।
ডিজিটালরোস

ভাল, শেলের প্রোগ্রামের নাম sh (ইন / বিন / শ)। এবং হ্যাঁ, প্রতিধ্বনি $ শেল সাধারণত সেট করা চলক শেল প্রিন্ট করবে।
নিটল

প্রতিটি ইউনিক্স সিস্টেমে একটি এক্সিকিউটেবল বলে ডাকে /bin/sh, হ্যাঁ। তবে আমি জানি না যার নাম কোন শেল sh। আমি মনে করতে পারেন ash, ksh, csh, bash, zsh, এবং tcsh। প্রথমটি হ'ল লিনাক্স এবং নেটবিএসডি-তে স্বাভাবিক / বিন / শ, সর্বশেষে সর্বশেষ ফ্রিবিএসডি শেল, এবং অন্যান্যগুলি alচ্ছিক শেল। অনেকগুলি ডেস্কটপ এনভায়রনমেন্টমেন্ট ব্যবহারকারীরা লগইন শেলকে বাশ এ পরিবর্তন করে / /
ডিজিটালরোস

2
@ ডিজিটালরোস shবোর্ন শেল। en.wikedia.org/wiki/Bourne_shell কিছু সিস্টেম (সোলারিস) এখনও বোর্ন শেলের একটি সংস্করণ নিয়ে আসে যা কেবল পুনরায় বাস্তবায়নগুলির একটির অনুলিপি নয় (অ্যাশ, ড্যাশ, বাশ, Ksh, zsh)।
ক্রিস জনসন

... এবং বাশ "বোর্ন পুনরায় শেল" নামে পরিচিত, যা বোর্ন শেল, সিএসএস এবং কেএসএস থেকে কিছু বৈশিষ্ট্য উত্তরাধিকার সূত্রে পেয়েছে।
বিপরীতমুখী

2

আপনার লগইন স্ক্রিপ্টের একটিতে আপনাকে PS1 নামক একটি ভেরিয়েবল সেট করতে হবে, উদাহরণস্বরূপ / ইত্যাদি / প্রোফাইল বা ~ / .brcrc। এটি আপনার বিতরণের উপর নির্ভর করবে।

উদাহরণ: http://www.cyberciti.biz/tips/howto-linux-unix-bash- Shell-setup-prompt.html


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