টার্মিনাল প্রম্পটে টাইমস্ট্যাম্প যুক্ত করা হচ্ছে?


53

আমি ভাবছিলাম যে টার্মিনাল প্রম্পটে টাইমস্ট্যাম্প যুক্ত করা সম্ভব ছিল এবং যদি তা হয় তবে আমি কীভাবে এটি অর্জন করতে পারি?


চলমান ঘড়িটি সিঙ্কে প্রদর্শন করতে এই লিঙ্কটি দেখুন
মানা

উত্তর:


60

এই লাইনটি ~/.bashrcফাইলটিতে যুক্ত করুন:

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "

সুতরাং আউটপুট কিছু হবে:

[07:00:31] user@name:~$

কখনও কখনও আমি পরীক্ষা করে দেখি যে সময়টি সঠিক নয় এবং এটি আরও পুরানো like আমি যদিও এটি ব্যবহার করতে পারি তা দেখতে নির্দিষ্ট আদেশগুলি কতক্ষণ সময় নেয় (গ্রুঞ্জ ..)। যথোপযুক্ত সৃষ্টিকর্তা?
কেভিন সিম্পার

2
@ দেবভ ২: টাইমজোনটি নির্দিষ্ট করার কোনও উপায় আছে কি?
হিপ্পো

আপনি যখন রুটটি ব্যবহার করছেন তখন টার্মিনালে টাইম স্ট্যাম্প যুক্ত করার কোনও উপায় আছে? আমি যখন একজন সাধারণ ব্যবহারকারী তখন আমার কাছে কেবল সময় স্ট্যাম্প থাকে। ধন্যবাদ
ইউফেনিউই ভিয়েহ দিদার

4
জন্য dateকমান্ড, আপনি প্রতিস্থাপন করতে পারেন +%H:%M:%Sসঙ্গে +%T
স্ন্যাপফ্র্যাক্টলপপ

5
এটি আমার টার্মিনাল মোড়কের সাথে জটিল, তাই আমি তার পরিবর্তে এখানে বিশদটি ব্যবহার করেছি। এটি আপনার
PS1-

25

আমার সমাধানটি ছিল .bashrc এ দেওয়ার জন্য এই PS1 লাইনটি তৈরি করতে http://bashrcgenerator.com/ ব্যবহার করা:

export PS1="\t [\u@\h \W]\\$ \[$(tput sgr0)\]"

যা দেখতে ভালো লাগবে

13:05:54 [chad@work-laptop:~/Downloads]$ ls -al

PROMPT_COMMAND ব্যবহার করা আমার জন্য ইতিহাসকে বিশৃঙ্খল করে। ইতিহাসে সাইকেল চালানোর সময় যখন একটি দীর্ঘ লাইন আসে তখন এটি সামনের সংযোজন টাইমস্ট্যাম্পের মতো একই সংখ্যার অক্ষর দ্বারা প্রম্পটের শেষটি কেটে দেয়। যেমন

13:14:38 [chad@work-laptop:~/Doexport PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\\] "

এবং এই লাইনটি সম্পাদনা করা যায় না কারণ এটি সঠিক জায়গায় অক্ষরগুলি প্রদর্শন করে না, যেমনটি আপনি টাইপ করছেন না যেখানে এটি টাইপ করা দেখে মনে হচ্ছে।

আমি অনুমান করছি যে এটি PROMPT_COMMAND এর সাথে সম্পন্ন হতে পারে, সম্ভবত [$ (টিপুট এসজিআর0)] অংশটি ব্যবহার করে, তবে পিএস 1 কাজ করে।


স্ট্যাম্পগুলি আরও কাস্টমাইজ করার জন্য এখানে লিঙ্কটি দুর্দান্ত।
cellepo

16

প্রম্পটে নিজেই তারিখটি যুক্ত করার পরিবর্তে, নীচের লাইনটি আপনার উপরে রেখে আপনার প্রম্পটের ঠিক আগে আপনি তারিখটি যুক্ত করতে পারেন । এটি কাজের জন্য আপনাকে ইনস্টল করতে হবে । একটি সংক্ষিপ্ত প্রম্পট রাখার সময় তারিখটি প্রদর্শনের এটি একটি মজাদার উপায় :.bashrccowsay

cowsay "Welcome $USER! It's now $(date '+%A %B %d %Y %r')"

তার বর্তমান ফর্ম এটা সংশোধনী ছাড়া কারো সিস্টেমে কাজ করবে যেমন লেখা আছে $USERএবং dateবর্তমান পরিবেশ থেকে পরিবর্তনশীল।

এখানে চিত্র বর্ণনা লিখুন


8
এটি প্রম্পটে রাখার বিষয়টি হ'ল আপনি নির্দিষ্ট কমান্ডটি শেষবার কখন কার্যকর করেছিলেন তা জানতে to
জেমস ওল্টম্যানস 21

6

যেহেতু আমার কাছে এটির উন্নতি করার জন্য উত্তরে একটি মন্তব্য যুক্ত করার মতো পর্যাপ্ত খ্যাতি পয়েন্ট নেই। দেখে মনে হবে যে আমি যুক্ত করার একমাত্র উপায় হ'ল দ্বিতীয় উত্তর তৈরি করা। সুতরাং, আমি উত্তর হিসাবে যা বলেছিল তার পুনরাবৃত্তি করব এবং এটির উপরে তৈরি করব।

আপনি যে তারিখের স্ট্যাম্পটি সংশোধন করতে চান তার জন্য .bashrc ফাইলটি সম্পাদনা করুন Edit

যদি আপনি "ব্যবহারকারী @ হোস্ট: ~ $" দেখেন তবে আপনি আপনার বর্তমান ব্যবহারকারীর হোম ডিরেক্টরিতে রয়েছেন। .Bashrc ফাইলটি একটি গোপন ফাইল, যেহেতু এটি বিন্দুর সাথে পূর্বনির্ধারিত। এটি একটি তালিকায় দেখতে আপনার একটি দীর্ঘ তালিকা ব্যবহার করতে হবে।

আপনি "ls -a" ব্যবহার করতে পারেন এবং তারপরে ".bashrc" ফাইলটি দেখা উচিত।

একটি পাঠ্য সম্পাদক দিয়ে ফাইলটি সম্পাদনা করুন। এক্সম্যাপল এর জন্য, "ন্যানো .বাশ্রাক", "ভিএম .বাশার্ক", "ভিআই .Bashrc", "পিকো .বাশ্রাক" বা আপনি যে কোনও সম্পাদক ব্যবহার করতে চান।

আপনি যদি এটির স্ক্রিপ্ট করতে চান এবং এটি অনেক ব্যবহারকারীর জন্য এটি অনেকগুলি শেলের সাথে যুক্ত করার পরিকল্পনা করে থাকেন তবে অ্যাপেন্ড ">>" অপারেটরের সাথে একত্রে "ইকো" কমান্ডটি ব্যবহার করা সুবিধাজনক হতে পারে। উদাহরণ স্বরূপ,

echo "export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\\"" >> .bashrc

আপনি যদি সেই পদ্ধতিটি ব্যবহার করেন তবে নিশ্চিত হন যে আপনি যে ব্যবহারকারীটির জন্য এটি পরিবর্তন করতে চান তার বর্তমান ওয়ার্কিং ডিরেক্টরিতে আছেন। এটি পরীক্ষা করতে আপনি "pwd" বা ওয়ার্কিং ডিরেক্টরি কমান্ড মুদ্রণ করতে পারেন।

আপনি যদি "]" শেষ বন্ধনী এবং ব্যবহারকারীর নামের মধ্যে অতিরিক্ত স্থান পছন্দ না করেন তবে কেবল এটি সামান্য পরিবর্তিত রেজেক্স ব্যবহার করুন:

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\\"

আপনি যদি সরাসরি ফাইলটি সম্পাদনা করেন তবে এটি ব্যবহার করুন।


1
আপনি সম্পাদনাগুলির পরামর্শ দিতে পারেন।
মুড়ু

4
export PROMPT_COMMAND=date

প্রতিটি প্রম্পট দেওয়ার আগে তারিখটি মুদ্রণ করে।


1

আপনার .bashrcমাধ্যমে খুলুন

vim ~/.bashrc

এবং তারপরে নিম্নলিখিতগুলিতে যুক্ত করুন .bashrc:

#PS1="[\A \u@\h \W\a]$" 

\Aসময়ের জন্য কোথায় ( \Wকেবলমাত্র পথের শেষের জন্য, আপনি যদি বর্তমানের বর্তমান কার্যকরী ডিরেক্টরি পথ চান তবে সরিয়ে ফেলুন)। তারপরে টাইপ করুন

source ~/.bashrc

আপনি এরকম কিছু দেখতে পাবেন:

[16:04 trwood@cobalt04 ~/MCEq_dev]$

1
অপসারণ \Wকোনও পথ দেখায় না। \wপুরো পথ দেবে।
জান্না

0

কেবলমাত্র @ devav2 এর উত্তরে যুক্ত করতে:

নববিদের জন্য সহজেই পঠনযোগ্য ইকো কমান্ডটি হ'ল:

export PROMPT_COMMAND='echo -n "$(date +%H:%M:%S) "'

পরিবর্তে

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "

ইকো কমান্ডটি রফতানির সময় মূল্যায়ন করার অর্থ নয়, এটি ডাবল কোটের পরিবর্তে আক্ষরিক উদ্ধৃতির জন্য একক উদ্ধৃতি ব্যবহার করা আরও বোধগম্য করে। পুরো কমান্ডটি উদ্ধৃত করার জন্য একক উদ্ধৃতি ব্যবহার করে ইকো কমান্ডের পক্ষে যুক্তিটি উদ্ধৃত করার জন্য ডাবল কোটস ব্যবহার করার সুযোগ দেয় , যেমন বিশেষ অক্ষরের হাত থেকে বাঁচার প্রয়োজনীয়তা বাদ দেয় [এবং$


1
পলায়নগুলি বিন্যাসের জন্য ব্যবহার করা হচ্ছে (বন্ধনীগুলি)। এটি গ্রহণযোগ্য উত্তরে
এল্ডার গিক

আপনি এগুলিকে 'ইকো-এন "$ (তারিখ +% এইচ:% এম:% এস)" "তেও যুক্ত করতে পারেন:' ইকো-এন" [$ (তারিখ +% এইচ:% এম:% এস)] "'ছাড়াই তাদের পালাতে হবে। প্রতিধ্বনি কমান্ডটির যুক্তি হিসাবে স্ট্রিংটি ব্যবহার করার সুবিধাটি হ'ল এখন আপনাকে যা পড়া দরকার তা সহজ নয় বলে বাশ মূল্যায়নযোগ্য escape
কিওয়ারটিজডাব্লু

@ ওল্ডারগিক আমি আরও স্পষ্টতা যুক্ত করেছি। আমি আশা করি এটি সাহায্য করবে.
কিওয়ারটিজডাব্লু

0

আমি মনে করি এগিয়ে যাওয়ার সঠিক উপায় হ'ল $HOME/.bashrcকোডগুলি চিহ্নিত করা, সেগুলিতে PS1মন্তব্য করা এবং ব্যক্তিগতগুলি যুক্ত করা। উদাহরণস্বরূপ এটি আমার ব্লক:

PS1_DATE="\D{%Y-%m-%d %H:%M:%S}"

if [ "$color_prompt" = yes ]; then
    PS1="[$PS1_DATE \[\e]0; \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[\033[00m\]\[\033[01;34m\]\w \[\033[00m\]\$] "
    #PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='[$PS1_DATE ${debian_chroot:+($debian_chroot)}\w \$] '
    #PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

আউটপুট:

[2019-06-18 15:54:29 ~/Desktop $] echo "It's late!"

0

কমান্ড প্রম্পটে টাইমস্ট্যাম্প প্রদর্শনের সবচেয়ে সহজ বাক্য গঠন সম্ভবতঃ

    PS1='\D{%F} \t $...'

কোথায়

\D{format}তারিখটি ফর্ম্যাট হয়েছে (দেখুন man bash, বিভাগটি দেখুন)

%Fপুরো তারিখ; % Y-% m-% d (দেখুন man date, ফর্ম্যাট বিভাগ) এর মতো এবং

\t24 ঘন্টা এইচএইচ: এমএম: এসএস ফর্ম্যাটটিতে বর্তমান সময় (দেখুন man bash, বিভাগটি দেখুন)

nano ~/.bashrc

উপরের মত PS1 ভেরিয়েবলে পরিবর্তন করুন

source ~/.bashrc

0

আমার সময় cowsayউপরের উত্তর অনুরূপ । nowআপনার নিজের লাগাতে হবে ~/.bashrcতবে টাইপ করে আপনি টার্মিনাল থেকে কল করতে পারেন now

এখানে একটি স্ক্রিনশট:

now.png

ব্যাশ কোডটি এই খুব বিস্তারিত উত্তরে পোস্ট করা হয়েছে:


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