বাশ শেলের লিনাক্সের "ইতিহাস কমান্ড"


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

ডিফল্টরূপে তারিখ এবং টাইমস্ট্যাম্প ইতিহাস কমান্ড কার্যকর করার সময় দেখা যাবে না। তবে, ব্যাশ শেলটি ব্যবহারকারীর কমান্ডের ইতিহাস সম্পাদনার জন্য সি এল এল সরঞ্জাম সরবরাহ করে। আসুন কয়েকটি << ইতিহাস কমান্ডের কার্যকর টিপস এবং কৌশল এবং শক্তি দেখুন।

1. লিনাক্সের সর্বশেষ/সমস্ত কার্যকর আদেশের তালিকা দিন

টার্মিনাল থেকে সহজ ইতিহাস কমান্ড কার্যকর করা আপনাকে লাইন সংখ্যা সহ শেষ সম্পাদিত কমান্ডের একটি সম্পূর্ণ তালিকা প্রদর্শন করবে।

[[email  ~]$ history

    1  PS1='\e[1;35m[\[email \h \w]$ \e[m '
    2  PS1="\e[0;32m[\[email \h \W]$ \e[m "
    3  PS1="\[email \h:\w [\j]$ "
    4  ping google.com
    5  echo $PS1
    6   tail -f /var/log/messages
    7  tail -f /var/log/messages
    8  exit
    9  clear
   10  history
   11  clear
   12  history

২. তারিখ এবং টাইমস্ট্যাম্প সহ সমস্ত কমান্ড তালিকাভুক্ত করুন

কমান্ডের বিরুদ্ধে তারিখ এবং টাইমস্ট্যাম্প কীভাবে পাবেন? 'এক্সপোর্ট' কমান্ডের সাথে ভেরিয়েবল সহ কমান্ড কার্যকর হওয়ার সাথে সাথে একই টাইমস্ট্যাম্পের সাথে ইতিহাস কমান্ড প্রদর্শিত হবে।

[[email  ~]$ export HISTTIMEFORMAT='%F %T  '

      1  2013-06-09 10:40:12   cat /etc/issue
      2  2013-06-09 10:40:12   clear
      3  2013-06-09 10:40:12   find /etc -name *.conf
      4  2013-06-09 10:40:12   clear
      5  2013-06-09 10:40:12   history
      6  2013-06-09 10:40:12   PS1='\e[1;35m[\[email \h \w]$ \e[m '
      7  2013-06-09 10:40:12   PS1="\e[0;32m[\[email \h \W]$ \e[m "
      8  2013-06-09 10:40:12   PS1="\[email \h:\w [\j]$ "
      9  2013-06-09 10:40:12   ping google.com
     10  2013-06-09 10:40:12   echo $PS1
%F Equivalent to %Y - %m - %d
%T Replaced by the time ( %H : %M : %S )

3. ইতিহাসে ফিল্টার কমান্ড

যেমন আমরা দেখতে পাচ্ছি উপরের আউটপুটে একই কমান্ড বারবার পুনরাবৃত্তি হচ্ছে। ইতিহাসে কীভাবে সহজ বা অ-ধ্বংসাত্মক কমান্ডগুলি ফিল্টার করা যায় ?. HISTIGNORE = ’ls -l: pwd: তারিখ:’ এ কমান্ড নির্দিষ্ট করে নিম্নলিখিত ‘রফতানি’ কমান্ডটি ব্যবহার করুন সিস্টেমের দ্বারা সংরক্ষণ করা হবে না এবং ইতিহাস কমান্ডে প্রদর্শিত হবে না।

[[email  ~]$ export HISTIGNORE='ls -l:pwd:date:'

৪. ইতিহাসে সদৃশ আদেশগুলি উপেক্ষা করুন

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

[[email  ~]$ export HISTCONTROL=ignoredups

5. আনসেট রফতানি কমান্ড

ফ্লাইতে আনসেট রফতানি কমান্ড। রফতানি কমান্ডের মাধ্যমে যে কোনও কমান্ড রফতানি করা হয়েছে তার দ্বারা আনসেট রফতানি কমান্ড কার্যকর করুন one

[[email  ~]$ unset export HISTCONTROL

6. স্থায়ীভাবে এক্সপোর্ট কমান্ড সংরক্ষণ করুন

রফতানি কমান্ড স্থায়ীভাবে সংরক্ষণ করতে .Bash_profile এ নিম্নলিখিত হিসাবে একটি এন্ট্রি করুন।

[[email  ~]$ vi .bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

export HISTCONTROL=ignoredups

PATH=$PATH:$HOME/bin
export PATH

7. নির্দিষ্ট ব্যবহারকারীর সম্পাদিত আদেশগুলি তালিকাভুক্ত করুন

নির্দিষ্ট ব্যবহারকারীর দ্বারা নির্বাহ করা কমান্ডের ইতিহাস কীভাবে দেখা যায়। বাশ ইতিহাসের রেকর্ড একটি ‘।/.Bash_history’ ফাইলে রাখে। কমান্ডের ইতিহাস দেখতে আমরা ফাইলটি দেখতে বা খুলতে পারি।

[[email  ~]$ vi .bash_history

cd /tmp/
cd logstalgia-1.0.3/
./configure
sudo passwd root
apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc
./configure
make
apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc++
apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc
apt-get install make
mysql -u root -p
apt-get install grsync
apt-get install unison
unison

8. কমান্ডগুলির সংরক্ষণের ইতিহাস অক্ষম করুন

সংস্থার সুরক্ষা নীতিমালার কারণে কিছু সংস্থা আদেশের ইতিহাস রাখে না। এই ক্ষেত্রে, আমরা ব্যবহারকারীর .bash_profile ফাইল (এটি লুকানো ফাইল) সম্পাদনা করতে পারি এবং নীচের মত একটি এন্ট্রি করতে পারি।

[[email  ~]$ vi .bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
HISTSIZE=0
export PATH
.bash_profile (END)

নীচের কমান্ডের সাহায্যে ফাইল সংরক্ষণ করুন এবং পরিবর্তনগুলি লোড করুন।

[[email  ~]$ source .bash_profile

দ্রষ্টব্য: আপনি যদি টাইপ করেছেন এমন কমান্ডগুলি মনে রাখার জন্য যদি সিস্টেমটি না চান তবে কেবল নীচের আদেশটি সম্পাদন করুন যা ফ্লাইতে ইতিহাস অক্ষম করবে বা রেকর্ডিং ইতিহাস বন্ধ করবে।

[[email  ~]$ export HISTSIZE=0

টিপস: সুপারিশকারীর সাহায্যে 'HISSIZE' অনুসন্ধান করুন এবং ‘/ ইত্যাদি/প্রোফাইল’ ফাইলটিতে সম্পাদনা করুন। ফাইলের পরিবর্তন বিশ্বব্যাপী কার্যকর হবে।

9. আদেশগুলি মুছুন বা সাফ করুন

উপরে এবং ডাউন তীরের সাহায্যে আমরা পূর্বে ব্যবহৃত কমান্ডটি দেখতে পাই যা সহায়ক হতে পারে বা আপনাকে বিরক্ত করতে পারে। ‘-সি’ বিকল্পের সাহায্যে বাশ ইতিহাসের তালিকা থেকে সমস্ত এন্ট্রি মুছে ফেলা বা সাফ করা।

[[email  ~]$ history -c

10. গ্রেপ কমান্ড ব্যবহার করে ইতিহাসে অনুসন্ধান কমান্ডগুলি

নীচে হিসাবে আপনার ইতিহাস ফাইলটি "গ্রেপ" তে পাইপ করে ‘.বাশ_ইস্টিরির’ মাধ্যমে অনুসন্ধান কমান্ডটি সন্ধান করুন। উদাহরণস্বরূপ, নীচের কমান্ডটি ইতিহাসের তালিকা থেকে ‘pwd’ কমান্ড অনুসন্ধান করবে এবং খুঁজে পাবে।

[[email  ~]$ history | grep pwd

  113  2013-06-09 10:40:12     pwd
  141  2013-06-09 10:40:12     pwd
  198  2013-06-09 15:46:23     history | grep pwd
  202  2013-06-09 15:47:39     history | grep pwd

১১. শেষ অবধি কার্যকর আদেশটি অনুসন্ধান করুন

‘সিটিআরএল + আর’ কমান্ডের সাথে পূর্বে সম্পাদিত আদেশটি অনুসন্ধান করুন। আপনি যে কমান্ডটি সন্ধান করছেন তা পেয়ে গেলে, একই কার্যকর করতে ‘এন্টার’ চাপুন অন্যথায় এটি বাতিল করতে ‘এসকে’ চাপুন।

(reverse-i-search)`source ': source .bash_profile

12. শেষ সম্পাদিত কমান্ডটি পুনরায় স্মরণ করুন

পূর্বে ব্যবহৃত নির্দিষ্ট কমান্ডটি স্মরণ করুন। Bang এবং 8 (! 8) কমান্ডের সংমিশ্রণটি আপনি কার্যকর করেছেন এমন 8 নম্বর কমান্ডকে পুনরায় স্মরণ করবে।

[[email  ~]$ !8

13. শেষ অবধি কার্যকর করা কমান্ডটি প্রত্যাহার করুন

পূর্বে ব্যবহৃত কমান্ড (নেটট্যাট-এনপি | গ্রেপ 22) ‘!’ এর সাথে স্মরণ করুন এবং তার পরে সেই নির্দিষ্ট কমান্ডের কয়েকটি অক্ষর অনুসরণ করুন।

[[email  ~]$ !net
netstat -np | grep 22
(No info could be read for "-p": geteuid()=501 but you should be root.)
tcp        0     68 192.168.50.2:22             192.168.50.1:1857           ESTABLISHED -
tcp        0      0 192.168.50.2:22             192.168.50.1:2516           ESTABLISHED -
unix  2      [ ]         DGRAM                    12284  -                   @/org/freedesktop/hal/udev_event
unix  3      [ ]         STREAM     CONNECTED     14522  -
unix  2      [ ]         DGRAM                    13622  -
unix  3      [ ]         STREAM     CONNECTED     12250  -                   @/var/run/hald/dbus-ujAjOMNa0g
unix  3      [ ]         STREAM     CONNECTED     12249  -
unix  3      [ ]         STREAM     CONNECTED     12228  -                   /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     12227  -

আমরা ইতিহাসের কমান্ডের শক্তিটি হাইলাইট করার চেষ্টা করেছি। তবে এটি এর শেষ নয়। নীচের আমাদের মন্তব্য বাক্সের মাধ্যমে আমাদের সাথে ইতিহাসের কমান্ডের আপনার অভিজ্ঞতাটি ভাগ করুন।