যখন আপনি প্রায়শই লিনাক্স কমান্ড লাইন ব্যবহার করেন, তখন ইতিহাসকে কার্যকরভাবে ব্যবহার করা একটি বড় উৎপাদনশীলতা বৃদ্ধি করতে পারে। আসলে, আমি এখানে যে 15টি উদাহরণ দিয়েছি তা আপনি আয়ত্ত করার পরে, আপনি কমান্ড লাইন ব্যবহার করে আরও উপভোগ্য এবং মজা পাবেন।
1. HISTTIMEFORMAT
ব্যবহার করে টাইমস্ট্যাম্প প্রদর্শন করুনসাধারণত আপনি যখন কমান্ড লাইন থেকে ইতিহাস টাইপ করেন, এটি কমান্ড # এবং কমান্ড প্রদর্শন করে। নিরীক্ষার উদ্দেশ্যে, নীচে দেখানো কমান্ডের সাথে টাইমস্ট্যাম্প প্রদর্শন করা উপকারী হতে পারে।
# export HISTTIMEFORMAT='%F %T ' # history | more 1 2008-08-05 19:02:39 service network restart 2 2008-08-05 19:02:39 exit 3 2008-08-05 19:02:39 id 4 2008-08-05 19:02:39 cat /etc/redhat-release
2. Control+R
ব্যবহার করে ইতিহাস অনুসন্ধান করুনআমি দৃঢ়ভাবে বিশ্বাস করি, এটি আপনার ইতিহাসের সবচেয়ে বেশি ব্যবহৃত বৈশিষ্ট্য হতে পারে। যখন আপনি ইতিমধ্যে একটি খুব দীর্ঘ কমান্ড কার্যকর করেছেন, আপনি কেবল একটি কীওয়ার্ড ব্যবহার করে ইতিহাস অনুসন্ধান করতে পারেন এবং সম্পূর্ণরূপে টাইপ না করেই একই কমান্ড পুনরায় চালাতে পারেন। Control+R টিপুন এবং কীওয়ার্ড টাইপ করুন . নিম্নলিখিত উদাহরণে, আমি লাল অনুসন্ধান করেছি , যা পূর্ববর্তী কমান্ড “cat /etc/redhat-release প্রদর্শন করে " যে ইতিহাসে লাল শব্দটি রয়েছে৷
৷# [Press Ctrl+R from the command prompt, which will display the reverse-i-search prompt] (reverse-i-search)`red': cat /etc/redhat-release [Note: Press enter when you see your command, which will execute the command from the history] # cat /etc/redhat-release Fedora release 9 (Sulphur)
কখনও কখনও আপনি এটি চালানোর আগে ইতিহাস থেকে একটি কমান্ড সম্পাদনা করতে চান। যেমন আপনি httpd অনুসন্ধান করতে পারেন , যা service httpd stop প্রদর্শন করবে কমান্ড ইতিহাস থেকে, এই কমান্ডটি নির্বাচন করুন এবং শুরু করতে স্টপ পরিবর্তন করুন এবং নীচের দেখানো হিসাবে এটি পুনরায় কার্যকর করুন।
# [Press Ctrl+R from the command prompt, which will display the reverse-i-search prompt] (reverse-i-search)`httpd': service httpd stop [Note: Press either left arrow or right arrow key when you see your command, which will display the command for you to edit, before executing it] # service httpd start
3. 4টি ভিন্ন পদ্ধতি
ব্যবহার করে দ্রুত পূর্ববর্তী কমান্ডের পুনরাবৃত্তি করুনকিছু সময় আপনি বিভিন্ন কারণে পূর্ববর্তী কমান্ড পুনরাবৃত্তি করতে পারেন। শেষ সম্পাদিত কমান্ডের পুনরাবৃত্তি করার 4টি ভিন্ন উপায় নিচে দেওয়া হল।
- উপরের তীর ব্যবহার করুন পূর্ববর্তী কমান্ড দেখতে এবং এটি চালানোর জন্য এন্টার টিপুন।
- টাইপ করুন !! এবং কমান্ড লাইন থেকে এন্টার টিপুন
- টাইপ করুন !-1 এবং কমান্ড লাইন থেকে এন্টার টিপুন।
- Control+P টিপুন পূর্ববর্তী কমান্ড প্রদর্শন করবে, এটি চালানোর জন্য এন্টার টিপুন
4. ইতিহাস থেকে একটি নির্দিষ্ট কমান্ড চালান
নিম্নলিখিত উদাহরণে, আপনি যদি #4 কমান্ডটি পুনরাবৃত্তি করতে চান, আপনি !4 করতে পারেন নীচে দেখানো হিসাবে।
# history | more 1 service network restart 2 exit 3 id 4 cat /etc/redhat-release # !4 cat /etc/redhat-release Fedora release 9 (Sulphur)
5. পূর্ববর্তী কমান্ড চালান যা একটি নির্দিষ্ট শব্দ দিয়ে শুরু হয়
টাইপ! কমান্ডের শুরুর কয়েকটি অক্ষর দ্বারা অনুসরণ করুন যা আপনি পুনরায় কার্যকর করতে চান। নিম্নলিখিত উদাহরণে, !ps এবং এন্টার টাইপ করে, ps দিয়ে শুরু হওয়া পূর্ববর্তী কমান্ডটি কার্যকর করা হয়েছে, যা 'ps aux | grep yp’.
# !ps ps aux | grep yp root 16947 0.0 0.1 36516 1264 ? Sl 13:10 0:00 ypbind root 17503 0.0 0.0 4124 740 pts/0 S+ 19:19 0:00 grep yp
6. HISTSIZE
ব্যবহার করে ইতিহাসের মোট লাইনের সংখ্যা নিয়ন্ত্রণ করুন.bash_profile-এ নিম্নলিখিত দুটি লাইন যুক্ত করুন এবং পরিবর্তনটি দেখতে আবার ব্যাশ শেলে পুনরায় লগইন করুন। এই উদাহরণে, ব্যাশ ইতিহাসে শুধুমাত্র 450 কমান্ড সংরক্ষণ করা হবে।
# vi ~/.bash_profile HISTSIZE=450 HISTFILESIZE=450
7. HISTFILE
ব্যবহার করে ইতিহাস ফাইলের নাম পরিবর্তন করুনডিফল্টরূপে, ইতিহাস ~/.bash_history-এ সংরক্ষণ করা হয় ফাইল .bash_profile-এ নিম্নলিখিত লাইন যোগ করুন এবং bash_history ফাইলের পরিবর্তে .commandline_warrior ফাইলে ইতিহাস কমান্ড সংরক্ষণ করতে ব্যাশ শেলে পুনরায় লগইন করুন। আমি এখনও এর জন্য একটি ব্যবহারিক ব্যবহার বের করতে পারিনি। আপনি যখন বিভিন্ন ইতিহাস ফাইলের নাম ব্যবহার করে বিভিন্ন টার্মিনাল থেকে নির্বাহিত কমান্ড ট্র্যাক করতে চান তখন আমি এটি ব্যবহার করা দেখতে পাচ্ছি।
# vi ~/.bash_profile HISTFILE=/root/.commandline_warrior
যদি আপনার কাছে ইতিহাস ফাইলের নাম পরিবর্তন করার উপযুক্ত কারণ থাকে, তাহলে অনুগ্রহ করে এটি আমার সাথে শেয়ার করুন, কারণ আপনি কীভাবে এই বৈশিষ্ট্যটি ব্যবহার করছেন তা জানতে আমি আগ্রহী।
8. HISTCONTROL
ব্যবহার করে ইতিহাস থেকে ক্রমাগত পুনরাবৃত্ত এন্ট্রি বাদ দিননিম্নলিখিত উদাহরণে pwd তিনবার টাইপ করা হয়েছে, যখন আপনি ইতিহাস করবেন, আপনি এটির তিনটি ধারাবাহিক ঘটনা দেখতে পাবেন। সদৃশগুলি নির্মূল করতে, HISTCONTROL কে উপেক্ষা করার জন্য নীচের দেখানো হিসাবে সেট করুন৷
৷# pwd # pwd # pwd # history | tail -4 44 pwd 45 pwd 46 pwd [Note that there are three pwd commands in history, after executing pwd 3 times as shown above] 47 history | tail -4 # export HISTCONTROL=ignoredups # pwd # pwd # pwd # history | tail -3 56 export HISTCONTROL=ignoredups 57 pwd [Note that there is only one pwd command in the history, even after executing pwd 3 times as shown above] 58 history | tail -4
9. HISTCONTROL
ব্যবহার করে সমগ্র ইতিহাস জুড়ে সদৃশগুলি মুছুন৷উপরে দেখানো উপেক্ষা করা ডুপ্লিকেটগুলিকে সরিয়ে দেয় শুধুমাত্র যদি সেগুলি পরপর কমান্ড হয়। পুরো ইতিহাস জুড়ে সদৃশগুলি মুছে ফেলার জন্য, HISTCONTROL কে নীচে দেখানো হিসাবে মুছে ফেলার জন্য সেট করুন৷
# export HISTCONTROL=erasedups # pwd # service httpd stop # history | tail -3 38 pwd 39 service httpd stop 40 history | tail -3 # ls -ltr # service httpd stop # history | tail -6 35 export HISTCONTROL=erasedups 36 pwd 37 history | tail -3 38 ls -ltr 39 service httpd stop [Note that the previous service httpd stop after pwd got erased] 40 history | tail -6
10. HISTCONTROL
ব্যবহার করে ইতিহাসকে একটি নির্দিষ্ট কমান্ড মনে না রাখতে বাধ্য করুনআপনি যখন একটি কমান্ড চালান, আপনি HISTCONTROL কে উপেক্ষা করে স্পেস সেট করে কমান্ডটিকে উপেক্ষা করার জন্য ইতিহাসকে নির্দেশ দিতে পারেন এবং কমান্ডের সামনে একটি স্পেস টাইপ করতে পারেন যা নীচে দেখানো হয়েছে। আমি দেখতে পাচ্ছি অনেক জুনিয়র সিসাডমিন এই বিষয়ে উত্তেজিত হচ্ছে, কারণ তারা ইতিহাস থেকে একটি আদেশ লুকিয়ে রাখতে পারে। উপেক্ষা কিভাবে কাজ করে তা বোঝা ভাল। তবে, একটি সর্বোত্তম অনুশীলন হিসাবে, ইতিহাস থেকে উদ্দেশ্যমূলকভাবে কিছু লুকাবেন না।
# export HISTCONTROL=ignorespace # ls -ltr # pwd # service httpd stop [Note that there is a space at the beginning of service, to ignore this command from history] # history | tail -3 67 ls -ltr 68 pwd 69 history | tail -3
11. বিকল্প -c
ব্যবহার করে সমস্ত পূর্ববর্তী ইতিহাস সাফ করুনকখনও কখনও আপনি অতীতের সমস্ত ইতিহাস মুছে ফেলতে চান, কিন্তু ইতিহাসকে এগিয়ে নিয়ে যেতে চান৷
# history -c
12. ইতিহাস কমান্ড থেকে শব্দ সাবটাইটিউট করুন
আপনি যখন ইতিহাসের মাধ্যমে অনুসন্ধান করছেন, তখন আপনি একটি ভিন্ন কমান্ড চালাতে চাইতে পারেন কিন্তু আপনি এইমাত্র যে কমান্ডটি অনুসন্ধান করেছেন তার থেকে একই প্যারামিটার ব্যবহার করতে পারেন৷
নীচের উদাহরণে, !!:$ vi কমান্ডের পাশে আগের কমান্ড থেকে বর্তমান কমান্ডের আর্গুমেন্ট পাওয়া যায়।
# ls anaconda-ks.cfg anaconda-ks.cfg # vi !!:$ vi anaconda-ks.cfg
নীচের উদাহরণে, !^ vi কমান্ডের পাশে পূর্ববর্তী কমান্ড (অর্থাৎ cp কমান্ড) থেকে বর্তমান কমান্ডে (অর্থাৎ vi কমান্ড) প্রথম আর্গুমেন্ট পায়।
# cp anaconda-ks.cfg anaconda-ks.cfg.bak anaconda-ks.cfg # vi !^ vi anaconda-ks.cfg
13. একটি নির্দিষ্ট কমান্ডের জন্য একটি নির্দিষ্ট যুক্তি প্রতিস্থাপন করুন।
নীচের উদাহরণে, !cp:2 ইতিহাসে পূর্ববর্তী কমান্ডের জন্য অনুসন্ধান করে যা cp দিয়ে শুরু হয় এবং cp-এর দ্বিতীয় আর্গুমেন্ট নেয় এবং নীচে দেখানো হিসাবে ls -l কমান্ডের জন্য প্রতিস্থাপন করে।
# cp ~/longname.txt /really/a/very/long/path/long-filename.txt # ls -l !cp:2 ls -l /really/a/very/long/path/long-filename.txt
নীচের উদাহরণে, !cp:$ ইতিহাসে আগের কমান্ডের জন্য অনুসন্ধান করে যা cp দিয়ে শুরু হয় এবং cp-এর শেষ আর্গুমেন্ট (এই ক্ষেত্রে, যা উপরে দেখানো হিসাবে দ্বিতীয় আর্গুমেন্টও) নেয় এবং নীচে দেখানো হিসাবে ls -l কমান্ডের জন্য এটি প্রতিস্থাপন করে।
# ls -l !cp:$ ls -l /really/a/very/long/path/long-filename.txt
14. HISTSIZE
ব্যবহার করে ইতিহাসের ব্যবহার অক্ষম করুনআপনি যদি একসাথে ইতিহাস অক্ষম করতে চান এবং ব্যাশ শেল আপনার টাইপ করা কমান্ডগুলি মনে রাখতে না চান তবে নীচে দেখানো হিসাবে HISTSIZE 0 এ সেট করুন৷
# export HISTSIZE=0 # history # [Note that history did not display anything]
15. HISTIGNORE
ব্যবহার করে ইতিহাস থেকে নির্দিষ্ট কমান্ড উপেক্ষা করুনকখনও কখনও আপনি pwd এবং ls এর মতো মৌলিক কমান্ডগুলির সাথে আপনার ইতিহাস বিশৃঙ্খল করতে চান না। আপনি ইতিহাস থেকে উপেক্ষা করতে চান এমন সমস্ত কমান্ড নির্দিষ্ট করতে HISTIGNORE ব্যবহার করুন। অনুগ্রহ করে মনে রাখবেন যে হিস্টিগনোরে ls যোগ করলে শুধুমাত্র ls উপেক্ষা করা হয় এবং ls -l নয়। সুতরাং, আপনাকে সঠিক কমান্ড প্রদান করতে হবে যা আপনি ইতিহাস থেকে উপেক্ষা করতে চান।
# export HISTIGNORE="pwd:ls:ls -ltr:" # pwd # ls # ls -ltr # service httpd stop # history | tail -3 79 export HISTIGNORE="pwd:ls:ls -ltr:" 80 service httpd stop 81 history [Note that history did not record pwd, ls and ls -ltr]
প্রস্তাবিত পড়া
Bash 101 হ্যাকস, রমেশ নটরাজন . আমি আমার বেশিরভাগ সময় লিনাক্স পরিবেশে ব্যয় করি। সুতরাং, স্বাভাবিকভাবেই আমি ব্যাশ কমান্ড লাইন এবং শেল স্ক্রিপ্টিংয়ের একটি বিশাল ভক্ত। 15 বছর আগে, যখন আমি *nix-এর বিভিন্ন ফ্লেভারে কাজ করতাম, তখন আমি C shell এবং Korn shell-এ প্রচুর কোড লিখতাম। পরবর্তী বছরগুলিতে, যখন আমি সিস্টেম প্রশাসক হিসাবে লিনাক্সে কাজ শুরু করি, তখন আমি ব্যাশ শেল স্ক্রিপ্টিং ব্যবহার করে সম্ভাব্য প্রতিটি কাজ স্বয়ংক্রিয়ভাবে করেছি। আমার ব্যাশ অভিজ্ঞতার উপর ভিত্তি করে, আমি ব্যাশ 101 হ্যাকস ইবুক লিখেছি যাতে ব্যাশ কমান্ড লাইন এবং শেল স্ক্রিপ্টিং উভয় ক্ষেত্রেই 101টি ব্যবহারিক উদাহরণ রয়েছে। আপনি যদি ব্যাশকে আয়ত্ত করার কথা ভাবছেন, তাহলে নিজের উপকার করুন এবং এই বইটি পড়ুন, যা আপনাকে আপনার ব্যাশ কমান্ড লাইন এবং শেল স্ক্রিপ্টিংয়ের নিয়ন্ত্রণ নিতে সাহায্য করবে৷
অসাধারণ লিনাক্স প্রবন্ধ
নিচে কয়েকটি দুর্দান্ত 15টি উদাহরণ দেওয়া হল নিবন্ধগুলি যা আপনি সহায়ক বলে মনে করতে পারেন৷
৷- Unix LS কমান্ড:15টি ব্যবহারিক উদাহরণ
- গ্রেপের উপর আঁকড়ে ধরুন! – 15টি ব্যবহারিক গ্রেপ কমান্ডের উদাহরণ
- লিনাক্স ক্রন্টাব:15টি দুর্দান্ত ক্রোন কাজের উদাহরণ
- মা, আমি খুঁজে পেয়েছি! — 15টি ব্যবহারিক লিনাক্স কমান্ডের উদাহরণ খুঁজুন