জুডি অ্যান সূর্যের লাইফ Grepa মাধ্যমে সুরক্ষিত জীবন সম্পর্কে আলোচনা
সুচিপত্র:
- গ্রেপ কমান্ড সিনট্যাক্স
- ফাইলগুলিতে একটি স্ট্রিং সন্ধান করতে কীভাবে
grep
ব্যবহার করবেন - উল্টানো ম্যাচ (বাদ দিন)
- কমান্ড আউটপুট-এ স্ট্রিং অনুসন্ধান করতে কীভাবে গ্রেপ ব্যবহার করবেন
- পুনরাবৃত্ত অনুসন্ধান
- কেবল ফাইলের নাম দেখান
- কেস সংবেদনশীল অনুসন্ধান
- পূর্ণ শব্দ অনুসন্ধান করুন
- লাইন নম্বর প্রদর্শন করুন
- ম্যাচ গণনা
- একাধিক স্ট্রিং (প্যাটার্নস) অনুসন্ধান করুন
- শান্ত ভাব
- বেসিক নিয়মিত এক্সপ্রেশন
- বর্ধিত নিয়মিত অভিব্যক্তি
- ম্যাচের আগে লাইনগুলি মুদ্রণ করুন
- একটি ম্যাচের পরে লাইনগুলি মুদ্রণ করুন
- উপসংহার
“গ্লোবাল রেগুলার এক্সপ্রেশন প্রিন্ট” এর জন্য দাঁড়িয়ে থাকা
grep
কমান্ডটি লিনাক্সের অন্যতম শক্তিশালী এবং সাধারণভাবে ব্যবহৃত কমান্ড।
গ্রেপ একটি প্রদত্ত প্যাটার্নের সাথে মেলে এমন প্রতিটি লাইনের জন্য এক বা একাধিক ইনপুট ফাইল সন্ধান করে এবং প্রতিটি মিলে যাওয়া লাইনটি স্ট্যান্ডার্ড আউটপুটে লেখায়। যদি কোনও ফাইল নির্দিষ্ট না করা থাকে তবে
grep
স্ট্যান্ডার্ড ইনপুট থেকে পড়ে, যা সাধারণত অন্য কমান্ডের আউটপুট।
এই টিউটোরিয়ালে, আমরা আপনাকে ব্যবহারিক উদাহরণগুলির মাধ্যমে
grep
কমান্ডটি কীভাবে ব্যবহার করতে হবে এবং সর্বাধিক সাধারণ জিএনইউ
grep
বিকল্পগুলির বিশদ বিবরণ প্রদর্শন করব।
গ্রেপ কমান্ড সিনট্যাক্স
grep
কমান্ডটি কীভাবে ব্যবহার করা যায় তার আগে আসুন বেসিক সিনট্যাক্সটি পর্যালোচনা করে শুরু করা যাক।
grep
ইউটিলিটি এক্সপ্রেশন নিম্নলিখিত ফর্মটি গ্রহণ করে:
grep PATTERN
বর্গাকার বন্ধনীগুলির আইটেমগুলি areচ্ছিক।
- বিকল্পগুলি - জিরো বা আরও বিকল্প। গ্রেপ এমন অনেকগুলি বিকল্প সরবরাহ করে যা এর আচরণ নিয়ন্ত্রণ করে। প্যাটার্ন - অনুসন্ধানের
PATTERN
।FILE
- জিরো বা আরও ইনপুট ফাইলের নাম।
ফাইলটি অনুসন্ধানে সক্ষম হতে, কমান্ডটি ব্যবহারকারী ব্যবহারকারীর অবশ্যই ফাইলটিতে অ্যাক্সেস পড়তে হবে।
ফাইলগুলিতে একটি স্ট্রিং সন্ধান করতে কীভাবে
grep
ব্যবহার করবেন
grep
কমান্ডের সর্বাধিক প্রাথমিক ব্যবহার হ'ল কোনও ফাইলের স্ট্রিং (পাঠ্য) অনুসন্ধান করা।
উদাহরণস্বরূপ, স্ট্রিং
/etc/passwd
ফাইলের লাইনগুলি প্রদর্শন করতে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:
grep bash /etc/passwd
আউটপুটটি দেখতে কিছুটা দেখতে পাওয়া উচিত:
root:x:0:0:root:/root:/bin/bash linuxize:x:1000:1000:linuxize:/home/linuxize:/bin/bash
যদি স্ট্রিংয়ের স্পেস থাকে তবে আপনাকে এটি একক বা ডাবল উদ্ধৃতি চিহ্নগুলিতে আবদ্ধ করতে হবে:
grep "Gnome Display Manager" /etc/passwd
উল্টানো ম্যাচ (বাদ দিন)
কোনও প্যাটার্নের সাথে মেলে না এমন লাইনগুলি প্রদর্শন করতে
-v
(বা
--invert-match
) বিকল্পটি ব্যবহার করুন।
উদাহরণস্বরূপ,
/etc/passwd
ফাইলের লাইনগুলি প্রদর্শন করতে যেখানে স্ট্রিং
nologin
আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:
grep -v nologin /etc/passwd
root:x:0:0:root:/root:/bin/bash colord:x:124:124::/var/lib/colord:/bin/false git:x:994:994:git daemon user:/:/usr/bin/git-shell linuxize:x:1000:1000:linuxize:/home/linuxize:/bin/bash
কমান্ড আউটপুট-এ স্ট্রিং অনুসন্ধান করতে কীভাবে গ্রেপ ব্যবহার করবেন
ইনপুট ফাইলগুলি নির্দিষ্ট করার পরিবর্তে, আপনি অন্য কমান্ডের আউটপুটটি গ্রেপ করতে পাইপ করতে পারেন এবং তারপরে একটি নির্দিষ্ট প্যাটার্নের সাথে মিলিয়ে কেবল লাইন প্রদর্শন করতে পারেন।
উদাহরণস্বরূপ, ব্যবহারকারী
www-data
হিসাবে আপনার সিস্টেমে কোন প্রক্রিয়াগুলি চলছে তা
www-data
আপনি নীচের
ps
কমান্ডটি ব্যবহার করতে পারেন:
ps -ef | grep www-data
www-data 18247 12675 4 16:00 ? 00:00:00 php-fpm: pool www root 18272 17714 0 16:00 pts/0 00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn www-data www-data 31147 12770 0 Oct22 ? 00:05:51 nginx: worker process www-data 31148 12770 0 Oct22 ? 00:00:00 nginx: cache manager process
আপনি কমান্ডে একাধিক পাইপ চেইন করতে পারেন। আপনি উপরের আউটপুটে দেখতে পাচ্ছেন সেখানে
grep
প্রক্রিয়া সম্বলিত একটি লাইনও রয়েছে। আপনি যদি না চান যে লাইনটি দেখানো হোক তবে নীচের মত প্রদর্শিত আউটপুটটিকে অন্য
grep
উদাহরণগুলিতে পাস করুন।
ps -ef | grep www-data | grep -v grep
www-data 18247 12675 4 16:00 ? 00:00:00 php-fpm: pool www root 18272 17714 0 16:00 pts/0 00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn www-data www-data 31147 12770 0 Oct22 ? 00:05:51 nginx: worker process www-data 31148 12770 0 Oct22 ? 00:00:00 nginx: cache manager process
পুনরাবৃত্ত অনুসন্ধান
পুনরাবৃত্তভাবে কোনও প্যাটার্নটি অনুসন্ধান করতে,
-r
বিকল্পটি (বা
--recursive
) ব্যবহার করুন। এটি নির্দিষ্ট ডিরেক্টরিতে থাকা সমস্ত ফাইলগুলির মধ্যে অনুসন্ধান করবে এবং পুনরাবৃত্তভাবে সম্মুখীন হওয়া সিমলিঙ্কগুলি এড়িয়ে চলে। সমস্ত প্রতীকী লিঙ্কগুলি অনুসরণ করতে
-R
বিকল্পটি (বা
--dereference-recursive
) ব্যবহার করুন।
নিম্নলিখিত উদাহরণে আমরা
/etc
ডিরেক্টরিতে সমস্ত ফাইলের স্ট্রিং
linuxize.com
অনুসন্ধান করছি:
grep -r linuxize.com /etc
কমান্ডটি ফাইলের পুরো পথ দ্বারা উপস্থাপিত মেলা লাইনগুলি মুদ্রণ করবে।
/etc/hosts:127.0.0.1 node2.linuxize.com /etc/nginx/sites-available/linuxize.com: server_name linuxize.com www.linuxize.com;
এর পরিবর্তে
-r
আপনি
-R
বিকল্প ব্যবহার করুন
-R
সমস্ত প্রতীকী লিঙ্কগুলি অনুসরণ করবে:
grep -R linuxize.com /etc
আউটপুট এর শেষ লাইন লক্ষ্য করুন। উপরের উদাহরণে সেই লাইনটি প্রিন্ট করা হয়নি কারণ এনগিনেক্সের
sites-enabled
ডিরেক্টরিতে থাকা ফাইলগুলি
sites-available
ডিরেক্টরিতে কনফিগারেশন ফাইলের প্রতীক sy
/etc/hosts:127.0.0.1 node2.linuxize.com /etc/nginx/sites-available/linuxize.com: server_name linuxize.com www.linuxize.com; /etc/nginx/sites-enabled/linuxize.com: server_name linuxize.com www.linuxize.com;
কেবল ফাইলের নাম দেখান
ডিফল্ট
grep
আউটপুট দমন করতে এবং মেলে প্যাটার্নযুক্ত ফাইলগুলির নাম মুদ্রণ করতে আপনি
-l
(বা -
--files-with-matches
) বিকল্পটি ব্যবহার করতে পারেন।
উদাহরণস্বরূপ বর্তমান ওয়ার্কিং ডিরেক্টরিতে
.conf
দিয়ে শেষ হওয়া সমস্ত ফাইল অনুসন্ধান করতে এবং কেবলমাত্র
linuxize.com
ফাইলগুলির নাম মুদ্রণ করতে হবে:
grep -l linuxize.com *.conf
আউটপুটটি এরকম কিছু দেখবে:
tmux.conf haproxy.conf
-l
বিকল্পটি সাধারণত পুনরাবৃত্তির বিকল্পের সাথে সংমিশ্রণে ব্যবহৃত হয়
-R
:
কেস সংবেদনশীল অনুসন্ধান
ডিফল্টরূপে,
grep
কমান্ডটি কেস সেনসিটিভ। এর অর্থ হ'ল বড় হাতের অক্ষর এবং ছোট হাতের অক্ষরগুলি পৃথক হিসাবে বিবেচনা করা হয়।
অনুসন্ধানের ক্ষেত্রে কেস উপেক্ষা করার জন্য,
-i
বিকল্পটি (বা
--ignore-case
) ব্যবহার করুন।
উদাহরণস্বরূপ, কোনও বিকল্প ছাড়াই
Zebra
অনুসন্ধান করার সময়, নিম্নলিখিত কমান্ডটি কোনও আউটপুট প্রদর্শন করবে না যেখানে মেলানো লাইন রয়েছে:
grep Zebra /usr/share/words
তবে আপনি যদি
-i
বিকল্পটি ব্যবহার করে কোনও কেস সংবেদনশীল অনুসন্ধান করেন তবে এটি উচ্চ এবং নিম্ন উভয় অক্ষরের সাথে মিলবে:
grep -i Zebra /usr/share/words
"জেব্রা" উল্লেখ করে সেই স্ট্রিংয়ের জন্য "জেব্রা", "জেব্রা" বা আপার এবং লোয়ার কেস অক্ষরের কোনও অন্য সমন্বয় মিলবে।
পূর্ণ শব্দ অনুসন্ধান করুন
"Gnu" অনুসন্ধান করার সময়,
grep
সেই লাইনগুলিও প্রিন্ট করবে যেখানে "gnu" বৃহত্তর শব্দের এমবেড করা আছে, যেমন "সাইগনাস" বা "ম্যাগনাম"।
grep gnu /usr/share/words
cygnus gnu interregnum lgnu9d lignum magnum magnuson sphagnum wingnut
কেবলমাত্র সেই রেখাগুলিই ফিরিয়ে দিতে যেখানে নির্দিষ্ট স্ট্রিংটি পুরো শব্দ (নন-শব্দের অক্ষর দ্বারা আবদ্ধ) থাকে,
-w
(বা -
--word-regexp
) বিকল্পটি ব্যবহার করুন।
AZ
,
AZ
এবং
0-9
) এবং আন্ডারস্কোর (
_
) অন্তর্ভুক্ত থাকে। অন্যান্য সমস্ত অক্ষরকে শব্দহীন অক্ষর হিসাবে বিবেচনা করা হয়।
grep -w gnu /usr/share/words
লাইন নম্বর প্রদর্শন করুন
একটি প্যাটার্নের সাথে মেলে এমন স্ট্রিং রয়েছে এমন রেখার সংখ্যাটি দেখানোর জন্য,
-n
(বা
--line-number
) বিকল্পটি ব্যবহার করুন। এই বিকল্পটি ব্যবহার করার সময়,
grep
এটির যে লাইন নম্বরটি পাওয়া গিয়েছিল তার সাথে প্রিফিক্সড স্ট্যান্ডার্ড আউটপুটে মিলগুলি মুদ্রণ করবে।
উদাহরণস্বরূপ, স্ট্রিং
bash
/etc/services
ফাইল থেকে রেখাগুলি প্রদর্শন করার জন্য আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:
grep -n 10000 /etc/services
নীচের ফলাফলটি দেখায় যে ম্যাচগুলি 10423 এবং 10424 লাইনে পাওয়া যায়।
10423:ndmp 10000/tcp 10424:ndmp 10000/udp
ম্যাচ গণনা
মানক আউটপুটে মিলের লাইনের একটি গণনা মুদ্রণ করতে,
-c
(বা
--count
) বিকল্পটি ব্যবহার করুন।
নীচের উদাহরণে, আমরা শেল হিসাবে
/usr/bin/zsh
থাকা অ্যাকাউন্টগুলির সংখ্যা গণনা করছি।
grep -c '/usr/bin/zsh' /etc/passwd
একাধিক স্ট্রিং (প্যাটার্নস) অনুসন্ধান করুন
দুই বা ততোধিক অনুসন্ধান নিদর্শনগুলি ওআর অপারেটর ব্যবহার করে যোগ দেওয়া যায় ।
ডিফল্টরূপে,
grep
প্যাটার্নটিকে একটি বেসিক নিয়মিত প্রকাশ হিসাবে ব্যাখ্যা করে যেখানে মেটা-অক্ষর যেমন
|
তাদের বিশেষ অর্থ হারিয়ে ফেলুন এবং তাদের ব্যাকস্ল্যাশড সংস্করণগুলি অবশ্যই ব্যবহার করা উচিত।
নীচের উদাহরণে আমরা এনজিনেক্স লগ ত্রুটি ফাইলটিতে
fatal
,
error
, এবং
critical
শব্দগুলির সমস্ত উপস্থিতি সন্ধান করছি:
grep 'fatal\|error\|critical' /var/log/nginx/error.log
grep -E 'fatal|error|critical' /var/log/nginx/error.log
শান্ত ভাব
--quiet
(বা
--quiet
)
--quiet
টার্মিনালে কিছু না লিখতে বলে (স্ট্যান্ডার্ড আউটপুট)। যদি কোনও মিল খুঁজে পাওয়া যায়, কমান্ডটি
0
সাথে প্রস্থান করবে। শেল স্ক্রিপ্টগুলিতে
grep
ব্যবহার করার সময় এটি দরকারী যেখানে আপনি কোনও ফাইলের স্ট্রিং রয়েছে কিনা তা পরীক্ষা করে দেখতে চান এবং ফলাফলের উপর নির্ভর করে একটি নির্দিষ্ট ক্রিয়া সম্পাদন করতে চান।
একটি
if
স্টেটমেন্টে টেস্ট কমান্ড হিসাবে শান্ত মোডে
grep
ব্যবহারের উদাহরণ এখানে রয়েছে:
if grep -q PATTERN filename then echo pattern found else echo pattern not found fi
বেসিক নিয়মিত এক্সপ্রেশন
জিএনইউ গ্রেপের দুটি নিয়মিত এক্সপ্রেশন বৈশিষ্ট্য সেট রয়েছে, বেসিক এবং এক্সটেন্ডেড। ডিফল্টরূপে,
grep
প্যাটার্নটিকে একটি বেসিক নিয়মিত অভিব্যক্তি হিসাবে ব্যাখ্যা করে।
যখন বেসিক নিয়মিত এক্সপ্রেশন মোডে ব্যবহৃত হয়, তখন মেটা-অক্ষরগুলি বাদে অন্য সমস্ত অক্ষর আসলে নিয়মিত প্রকাশ হয় যা নিজের সাথে মেলে। নীচে সর্বাধিক ব্যবহৃত মেটা-অক্ষরের তালিকা রয়েছে:
-
একটি লাইনের শুরুতে অভিব্যক্তি মেলে match (ক্যারেট) চিহ্নটি ব্যবহার করুন। নিম্নলিখিত উদাহরণে, স্ট্রিং
^kangaroo
কেবল তখনই মিলবে যদি এটি কোনও লাইনের একেবারে শুরুতে ঘটে occursgrep "^kangaroo" file.txt
একটি রেখার শেষে অভিব্যক্তি মেলে
$
(ডলার) চিহ্নটি ব্যবহার করুন। নিম্নলিখিত উদাহরণে, স্ট্রিংkangaroo$
match কেবল তখনই মিলবে যদি এটি কোনও লাইনের একেবারে শেষে ঘটে।grep "kangaroo$" file.txt
ব্যবহার করুন
.
(পিরিয়ড) প্রতীক কোনও একক অক্ষরের সাথে মেলে। উদাহরণস্বরূপ,kan
দিয়ে শুরু হওয়া যেkan
সাথে দুটি অক্ষর রয়েছে এবং তার সাথে স্ট্রিংroo
দিয়ে শেষ হবে, আপনি নিম্নলিখিত প্যাটার্নটি ব্যবহার করতে পারেন:grep "kan..roo" file.txt
ব্যবহার
accept
বা "accent
" যুক্ত লাইনগুলি সন্ধান করুন, আপনি নিম্নলিখিত প্যাটার্নটি ব্যবহার করতে পারেন:grep "accet" file.txt
ব্যবহার
co(any_letter_except_l)a
, যেমনcoca
,cobalt
এবং এর মতো স্ট্রিংগুলির কোনও সংমিশ্রণের সাথেco(any_letter_except_l)a
লাইনের সাথে মেলে না,grep "coa" file.txt
পরবর্তী অক্ষরের বিশেষ অর্থ থেকে বাঁচতে
\
(ব্যাকস্ল্যাশ) প্রতীকটি ব্যবহার করুন।
বর্ধিত নিয়মিত অভিব্যক্তি
বর্ধিত নিয়মিত এক্সপ্রেশন হিসাবে প্যাটার্নটি ব্যাখ্যা করতে,
-E
(বা -
--extended-regexp
) বিকল্পটি ব্যবহার করুন। প্রসারিত নিয়মিত এক্সপ্রেশনগুলিতে আরও জটিল এবং শক্তিশালী অনুসন্ধান নিদর্শন তৈরি করতে অতিরিক্ত মেটা-অক্ষরগুলির সাথে বুনিয়াদি সমস্ত মেটা-অক্ষর অন্তর্ভুক্ত। নীচে কয়েকটি উদাহরণ দেওয়া হল:
-
একটি প্রদত্ত ফাইল থেকে সমস্ত ইমেল ঠিকানা মিল এবং বের করুন:
grep -E -o "\b+@+\.{2, 6}\b" file.txt
একটি প্রদত্ত ফাইল থেকে সমস্ত বৈধ আইপি ঠিকানাগুলি মিল এবং সরিয়ে নিন:
grep -E -o '(25|2|??)\.(25|2|??)\.(25|2|??)\.(25|2|??)' file.txt
-o
বিকল্পটি কেবল মেলানো স্ট্রিং মুদ্রণের জন্য ব্যবহৃত হয়।
ম্যাচের আগে লাইনগুলি মুদ্রণ করুন
মিলের লাইনের আগে নির্দিষ্ট সংখ্যক লাইনের মুদ্রণ করতে
-B
(বা -
--before-context
) বিকল্পটি ব্যবহার করুন।
উদাহরণস্বরূপ, মিলের লাইনের আগে পাঁচটি শীর্ষস্থানীয় প্রসঙ্গটি প্রদর্শন করতে, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করবেন:
একটি ম্যাচের পরে লাইনগুলি মুদ্রণ করুন
মিলের লাইনের পরে নির্দিষ্ট সংখ্যক লাইনের মুদ্রণ করতে,
-A
(বা
-A
after
--after-context
) বিকল্পটি ব্যবহার করুন।
উদাহরণস্বরূপ লাইনের সাথে মিলে যাওয়ার পরে চলার প্রসঙ্গে পাঁচটি লাইন প্রদর্শন করতে, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করবেন:
উপসংহার
grep
কমান্ড আপনাকে ফাইলের অভ্যন্তরের
grep
অনুসন্ধান করতে দেয় allows যদি কোনও মিল পাওয়া যায়, গ্রেপ নির্দিষ্ট প্যাটার্নযুক্ত লাইনগুলি মুদ্রণ করবে।
গ্রেপ সম্পর্কে গ্রেপ ব্যবহারকারীর ম্যানুয়াল পৃষ্ঠাতে আরও অনেক কিছু জানতে হবে।
গ্রেপ টার্মিনালকোনও পাঠ্য সহ কল প্রত্যাখ্যান করুন এবং ডাব্লুপিপি 8-তে ডিফল্ট পাঠ্য পরিবর্তন করুন

উইন্ডোজ ফোন 8 (ডাব্লুপি 8) ডিভাইসগুলিতে একটি পাঠ্য সহ কলগুলি কীভাবে প্রত্যাখ্যান করতে হবে এবং ডিফল্ট পাঠ্যগুলি পরিবর্তন করবেন তা এখানে।
কমান্ড লাইনটি ব্যবহার করে কীভাবে লিনাক্সে ফাইলগুলি সন্ধান করা যায়

লিনাক্স সিস্টেম অ্যাডমিনিস্ট্রেটরদের অস্ত্রাগারগুলির অন্যতম কার্যকর সরঞ্জাম ফাইন্ড কমান্ড। এটি কোনও ব্যবহারকারী প্রদত্ত অভিব্যক্তির ভিত্তিতে ডিরেক্টরি হায়ারার্কিতে ফাইল এবং ডিরেক্টরি অনুসন্ধান করে এবং প্রতিটি ম্যাচ করা ফাইলটিতে ব্যবহারকারী-নির্দিষ্ট ক্রিয়া সম্পাদন করতে পারে।
লিনাক্সে কমান্ড সন্ধান করুন

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