লিনাক্স সম্পর্কে ভাল জিনিস হল যে আপনি বুট প্রক্রিয়া থেকে শুরু করে সফ্টওয়্যার প্যাকেজ ইনস্টল করা পর্যন্ত সবকিছু সহজেই দেখতে এবং পরিচালনা করতে পারেন। এখানে আমরা আলোচনা করব কিভাবে আপনি লিনাক্সে lsof কমান্ড ব্যবহার করে খোলা ফাইল এবং সেগুলি ব্যবহার করে প্রসেস দেখতে পারেন। এটি কীভাবে দেখতে হয় তা জানা আপনাকে সিস্টেম কীভাবে কাজ করে তা বুঝতে এবং নির্দিষ্ট প্রক্রিয়াগুলির জন্য প্রয়োজনীয় পদক্ষেপ নিতে সহায়তা করতে পারে৷
Lsof কমান্ড
খোলা ফাইল এবং তাদের জন্য দায়ী ব্যবহারকারী বা প্রক্রিয়াগুলি দেখতে, আমরা lsof
ব্যবহার করি ইউটিলিটি ডিফল্টরূপে, lsof
বেশিরভাগ ডিস্ট্রিবিউশনে আগে থেকে ইনস্টল করা আছে।
যাইহোক, যদি আপনি এটি ইনস্টল না করে থাকেন, তাহলে আপনি এটিকে আপনার সিস্টেমে ইনস্টল করতে প্যাকেজ ম্যানেজার ব্যবহার করতে পারেন৷
ডেবিয়ান/উবুন্টু
ডেবিয়ানে, কমান্ডটি চালান:
sudo apt-get install lsof
খিলান/মাঞ্জারো
মাঞ্জারো এবং অন্যান্য আর্চ-ভিত্তিক ডিস্ট্রিবিউশনে, কমান্ডটি চালিয়ে প্যাকম্যান ব্যবহার করুন:
sudo pacman -S lsof
CentOS/REHL/Fedora
CentOS এবং REHL পরিবারের জন্য, আপনি dnf:
ব্যবহার করতে পারেনsudo dnf lsof ইনস্টল করুন
একটি লিনাক্স প্রক্রিয়ার জন্য খোলা ফাইলগুলি তালিকাভুক্ত করতে lsof কমান্ড ব্যবহার করুন
বেশিরভাগ লিনাক্স কমান্ডের মতো, lsof ইউটিলিটি ব্যবহার করা অবিশ্বাস্যভাবে সহজ। lsof
কমান্ড টাইপ করে শুরু করুন :
sudo lsof
একবার আপনি উপরের কমান্ডটি চালালে, lsof সিস্টেমে খোলা ফাইলগুলি সম্পর্কে তথ্য ফেরত দেবে।
কমান্ড পিআইডি টিআইডি টাস্কসিএমডি ইউজার এফডি টাইপ ডিভাইস সাইজ/অফ নোড NAMEinit 1 রুট cwd DIR 8,48 4096 2 /init 1 রুট rtd DIR 8,48 4096 2 /init 1 রুট txt REG 69628144ini /6928474 root 0u CHR 1,3 0t0 15362 /dev/nullinit 1 root 1u CHR 1,3 0t0 15362 /dev/nullinit 1 root 2u CHR 1,3 0t0 15362 /dev/nullinit 1 রুট 3w 1/ CHR 5/dev10 kmsginit 1 root 4u sock 0,8 0t0 22689 প্রোটোকল:AF_VSOCKinit 1 রুট 5r REG 0,4 0 4026532185 mntinit 1 root 6r REG 0,4 0 4026532201 mntinit 1 root 7r DIR 8,48 4096 240 /home/capinit 1 root 8u DIR 8,48 4096 2 /init 1 root 9u sock 0,8 0t0 21853 proto:AFCK_Vpreদ্রষ্টব্য: আপনার যদি sudo সুবিধা থাকে তবে
sudo
দিয়ে কমান্ডটি চালান নির্দিষ্ট ফাইলগুলিতে "অনুমতি অস্বীকার" ত্রুটিগুলি এড়াতে।উপরের আউটপুটে যেমন দেখানো হয়েছে, lsof আউটপুটে নিম্নলিখিত কলাম রয়েছে:
কলাম | প্রতিনিধিত্ব |
---|---|
কমান্ড | টার্গেট ফাইল ব্যবহার করে প্রক্রিয়ার নাম দেখায়। |
PID | ফাইল ব্যবহার করে প্রক্রিয়াটির জন্য অনন্য শনাক্তকারী। |
TID | কলামটি থ্রেড শনাক্তকারীকে দেখায়। |
TASKCMD | টাস্ক কমান্ডের নাম। |
ব্যবহারকারী | প্রক্রিয়া চালাচ্ছেন ব্যবহারকারীর ব্যবহারকারীর নাম বা UID। |
FD | ফাইল এবং মোডের ফাইল বর্ণনাকারী। |
TYPE | লক্ষ্য ফাইলের সাথে যুক্ত নোড। |
ডিভাইস | কমা দিয়ে আলাদা করা ডিভাইস নম্বর। |
SIZE/OFF | ফাইলের আকার অফসেট আকারের ফাইলের বাইটে |
নোড | স্থানীয় ফাইলের ইনোড মান। আপনি inode দেখানোর জন্য stat কমান্ড ব্যবহার করতে পারেন ফাইলের জন্য তথ্য। |
NAME | ফাইলের মাউন্ট পয়েন্ট। |
এখন আপনি বুঝতে পেরেছেন যে lsof কমান্ড প্রিন্টআউটের বিষয়বস্তু কী উপস্থাপন করে, আসুন নির্দিষ্ট তথ্যের জন্য ফিল্টার করতে কমান্ডটি ব্যবহার করি।
নির্দিষ্ট প্রক্রিয়ার জন্য কীভাবে ফিল্টার করবেন
নির্দিষ্ট প্রক্রিয়া দ্বারা খোলা শুধুমাত্র নির্দিষ্ট ফাইলের জন্য ফিল্টার করতে, আমরা প্রক্রিয়ার নাম বা PID মান ব্যবহার করতে পারি।
উদাহরণস্বরূপ, ফায়ারফক্স প্রক্রিয়া দ্বারা ব্যবহৃত ফাইলগুলি দেখানোর জন্য, আমরা কমান্ডটি ব্যবহার করতে পারি:
sudo lsof -c ফায়ারফক্স
কমান্ডটি ফায়ারফক্স প্রক্রিয়া দ্বারা খোলা সমস্ত ফাইল দেখাবে।
প্রক্রিয়া আইডি দ্বারা ফিল্টার করতে, আমরা -p
ব্যবহার করতে পারি বিকল্প এবং প্রক্রিয়া আইডি পাস. আপনি top
ব্যবহার করতে পারেন লক্ষ্য প্রক্রিয়ার প্রক্রিয়া আইডি পেতে কমান্ড।
উদাহরণস্বরূপ, ফায়ারফক্স প্রক্রিয়ার পিআইডি পেতে, আমরা কমান্ডটি ব্যবহার করতে পারি:
sudo ps aux | grep ফায়ারফক্স
একবার আপনার কাছে টার্গেট প্রক্রিয়ার পিআইডি হয়ে গেলে, খোলা ফাইলগুলি দেখানোর জন্য lsof ব্যবহার করুন:
sudo lsof -p 2121
উপরের কমান্ডটি নির্দিষ্ট পিআইডি সহ প্রক্রিয়ার মাধ্যমে খোলা ফাইলগুলিকে প্রিন্ট করবে।
একটি নির্দিষ্ট ব্যবহারকারীর জন্য কীভাবে ফিল্টার করবেন
শুধুমাত্র একটি নির্দিষ্ট ব্যবহারকারীর খোলা ফাইলগুলি দেখতে, আমরা -u
ব্যবহার করতে পারি পতাকা উদাহরণস্বরূপ, ডেবিয়ান ব্যবহারকারীর জন্য ফিল্টার করতে, কমান্ডটি ব্যবহার করুন:
sudo lsof -u debian
একটি নির্দিষ্ট ফাইলের জন্য কীভাবে ফিল্টার করবেন
ধরুন আপনি শুধুমাত্র প্রক্রিয়াটি জানতে চান এবং যে ব্যবহারকারী একটি নির্দিষ্ট ফাইল খুলেছেন। এটি করার জন্য, ফাইলের নাম lsof:
-এ পাস করুনsudo lsof /bin/sleep
উপরেরটি শুধুমাত্র নির্দিষ্ট ফাইলের জন্য ফিল্টার করবে এবং ব্যবহারকারী, প্রসেস আইডি এবং আরও অনেক কিছু সহ সম্পর্কিত তথ্য প্রদান করবে।
র্যাপিং আপ
এই সহজ টিউটোরিয়ালে, আমরা আলোচনা করেছি কিভাবে লিনাক্সে lsof কমান্ড ব্যবহার করে ওপেন ফাইল সম্পর্কে তথ্যের জন্য সিস্টেমকে জিজ্ঞাসা করতে হয়। টার্মিনালে একটি ডিরেক্টরির বিষয়বস্তু তালিকাভুক্ত করার জন্য এখানে কিছু অতিরিক্ত কমান্ড রয়েছে৷