12 লিনাক্সে কার্যকর ফাইল অপারেশনের জন্য পাঠ্য ফিল্টার করার জন্য দরকারী কমান্ড
এই নিবন্ধে, আমরা লিনাক্সে ফিল্টার হিসাবে কাজ করে এমন অনেকগুলি কমান্ড লাইন সরঞ্জাম পর্যালোচনা করব। একটি ফিল্টার এমন একটি প্রোগ্রাম যা মানক ইনপুট পড়ে, এটির উপর একটি ক্রিয়া সম্পাদন করে এবং ফলাফলগুলি স্ট্যান্ডার্ড আউটপুটে লিখে দেয়।
এই কারণে, এটি কার্যকর রিপোর্ট তৈরি করার জন্য আউটপুট পুনর্গঠন, ফাইলগুলিতে পাঠ্য পরিবর্তন এবং আরও অনেক সিস্টেম প্রশাসনের কার্য হিসাবে শক্তিশালী উপায়ে তথ্য প্রক্রিয়া করতে ব্যবহৃত হতে পারে।
এই কথাটি বলেই নীচে লিনাক্সে দরকারী কিছু ফাইল বা পাঠ্য ফিল্টার রয়েছে।
1. আওক কমান্ড
আওক একটি উল্লেখযোগ্য প্যাটার্ন স্ক্যানিং এবং প্রক্রিয়াকরণ ভাষা, এটি লিনাক্সে দরকারী ফিল্টারগুলি তৈরি করতে ব্যবহার করা যেতে পারে। আপনি আমাদের পটভূমি সিরিজ পর্ব 1 থেকে পার্ট 13 এর মাধ্যমে এটি ব্যবহার শুরু করতে পারেন।
অধিকতর, আরও তথ্য এবং ব্যবহারের বিকল্পগুলির জন্য অ্যাডকে ম্যান পৃষ্ঠাটি পড়ুন:
$ man awk
2. শেড কমান্ড
পাঠ্য ফিল্টারিং এবং রূপান্তর করার জন্য সেড একটি শক্তিশালী স্ট্রিম সম্পাদক। আমরা ইতিমধ্যে সেডের উপর দুটি দরকারী নিবন্ধ লিখেছি, আপনি এটি এখানে যেতে পারেন:
- লিনাক্সে ফাইলগুলি তৈরি, সম্পাদনা এবং পরিচালনা করার জন্য জিএনইউ ‘সেড’ কমান্ড কীভাবে ব্যবহার করবেন
- 15 প্রতিদিনের লিনাক্স সিস্টেম অ্যাডমিনিস্ট্রেশন টাস্কের জন্য দরকারী 'সেড' কমান্ড টিপস এবং কৌশল >
সেড ম্যান পৃষ্ঠাটিতে কন্ট্রোল অপশন এবং নির্দেশাবলী যুক্ত করা হয়েছে:
$ man sed
৩. গ্রেপ, এগ্রেপ, এফগ্রিপ, আরগ্রিপ কমান্ড
প্রদত্ত প্যাটার্নের সাথে মিলে এই ফিল্টারগুলি আউটপুট লাইনগুলি। তারা কোনও ফাইল বা স্ট্যান্ডার্ড ইনপুট থেকে লাইন পড়েন এবং মানক আউটপুটে ডিফল্টরূপে সমস্ত মিলিত লাইনগুলি মুদ্রণ করেন।
দ্রষ্টব্য: মূল প্রোগ্রামটি নীচের মতো নির্দিষ্ট গ্রেপ বিকল্পগুলি ব্যবহার করছে (এবং সেগুলি এখনও পশ্চাদপটে সামঞ্জস্যের জন্য ব্যবহৃত হচ্ছে):
$ egrep = grep -E $ fgrep = grep -F $ rgrep = grep -r
নীচে কয়েকটি বেসিক গ্রেপ কমান্ড দেওয়া হল:
[email ~ $ grep "aaronkilik" /etc/passwd aaronkilik:x:1001:1001::/home/aaronkilik: [email ~ $ cat /etc/passwd | grep "aronkilik" aaronkilik:x:1001:1001::/home/aaronkilik:
আপনি লিনাক্সে গ্রেপ, এগ্রেপ এবং এফগ্রেপের মধ্যে পার্থক্য সম্পর্কে আরও পড়তে পারেন।
৪. হেড কমান্ড
একটি ফাইলের প্রথম অংশগুলি প্রদর্শন করতে মাথা ব্যবহার করা হয়, এটি ডিফল্টরূপে প্রথম 10 লাইন আউটপুট করে। প্রদর্শিত লাইনের সংখ্যা নির্দিষ্ট করতে আপনি -n
নম্বর পতাকাটি ব্যবহার করতে পারেন:
[email ~ $ head /var/log/auth.log Jan 2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session opened for user root by (uid=0) Jan 2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session closed for user root Jan 2 10:51:34 TecMint sudo: tecmint : TTY=unknown ; PWD=/home/tecmint ; USER=root ; COMMAND=/usr/lib/linuxmint/mintUpdate/checkAPT.py Jan 2 10:51:34 TecMint sudo: pam_unix(sudo:session): session opened for user root by (uid=0) Jan 2 10:51:39 TecMint sudo: pam_unix(sudo:session): session closed for user root Jan 2 10:55:01 TecMint CRON[4099]: pam_unix(cron:session): session opened for user root by (uid=0) Jan 2 10:55:01 TecMint CRON[4099]: pam_unix(cron:session): session closed for user root Jan 2 11:05:01 TecMint CRON[4138]: pam_unix(cron:session): session opened for user root by (uid=0) Jan 2 11:05:01 TecMint CRON[4138]: pam_unix(cron:session): session closed for user root Jan 2 11:09:01 TecMint CRON[4146]: pam_unix(cron:session): session opened for user root by (uid=0) [email ~ $ head -n 5 /var/log/auth.log Jan 2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session opened for user root by (uid=0) Jan 2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session closed for user root Jan 2 10:51:34 TecMint sudo: tecmint : TTY=unknown ; PWD=/home/tecmint ; USER=root ; COMMAND=/usr/lib/linuxmint/mintUpdate/checkAPT.py Jan 2 10:51:34 TecMint sudo: pam_unix(sudo:session): session opened for user root by (uid=0) Jan 2 10:51:39 TecMint sudo: pam_unix(sudo:session): session closed for user root
লিনাক্সে কার্যকর ব্যবহারের জন্য লেজ এবং বিড়াল কমান্ড সহ হেড কমান্ড কীভাবে ব্যবহার করবেন তা শিখুন।
5. লেজ কমান্ড
লেজ কোনও ফাইলের শেষ অংশগুলি (ডিফল্টরূপে 10 লাইন) আউটপুট করে। প্রদর্শিত লাইনের সংখ্যা নির্দিষ্ট করতে -n
নাম স্যুইচ ব্যবহার করুন।
নীচের কমান্ডটি নির্দিষ্ট ফাইলের শেষ 5 লাইন আউটপুট দেবে:
[email ~ $ tail -n 5 /var/log/auth.log Jan 6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22. Jan 6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22. Jan 6 13:01:27 TecMint sshd[1269]: Received SIGHUP; restarting. Jan 6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22. Jan 6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.
অতিরিক্তভাবে, রিয়েল-টাইমে (বিশেষত লগ ফাইলগুলি) কোনও ফাইলের পরিবর্তনগুলি দেখার জন্য লেজের একটি বিশেষ বিকল্প -ফ
রয়েছে।
নিম্নলিখিত কমান্ড আপনাকে নির্দিষ্ট ফাইলটিতে পরিবর্তনগুলি নিরীক্ষণ করতে সক্ষম করবে:
[email ~ $ tail -f /var/log/auth.log Jan 6 12:58:01 TecMint sshd[1269]: Server listening on :: port 22. Jan 6 12:58:11 TecMint sshd[1269]: Received SIGHUP; restarting. Jan 6 12:58:12 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22. Jan 6 12:58:12 TecMint sshd[1269]: Server listening on :: port 22. Jan 6 13:01:27 TecMint sshd[1269]: Received SIGHUP; restarting. Jan 6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22. Jan 6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22. Jan 6 13:01:27 TecMint sshd[1269]: Received SIGHUP; restarting. Jan 6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22. Jan 6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.
ব্যবহারের বিকল্প এবং নির্দেশাবলীর সম্পূর্ণ তালিকার জন্য টেল ম্যান পৃষ্ঠাটি পড়ুন:
$ man tail
6. সাজান কমান্ড
পাঠ্য ফাইলের লাইন বা স্ট্যান্ডার্ড ইনপুট থেকে বাছাই করতে সাজানো ব্যবহৃত হয়।
নীচে ডোমেন.লিস্ট নামের একটি ফাইলের সামগ্রী রয়েছে:
[email ~ $ cat domains.list linux-console.net linux-console.net news.linux-console.net news.linux-console.net linuxsay.com linuxsay.com windowsmint.com windowsmint.com
ফাইল কন্টেন্টকে এর মতো সাজানোর জন্য আপনি একটি সরল বাছাই কমান্ড চালাতে পারেন:
[email ~ $ sort domains.list linuxsay.com linuxsay.com news.linux-console.net news.linux-console.net linux-console.net linux-console.net windowsmint.com windowsmint.com
আপনি সাজ্ট কমান্ডটি বিভিন্ন উপায়ে ব্যবহার করতে পারেন, সাজ্ট কমান্ডের কয়েকটি দরকারী নিবন্ধটি নিম্নরূপ যান:
- লিনাক্সের 14 টি কার্যকর উদাহরণ ‘সাজান’ আদেশ - অংশ 1
- 7 আকর্ষণীয় লিনাক্স ‘সাজান’ কমান্ড উদাহরণ - পার্ট 2
- পরিবর্তনের তারিখ এবং সময়ের উপর ভিত্তি করে ফাইলগুলি কীভাবে সন্ধান করতে এবং বাছাই করা যায়
- সর্বশেষ পরিবর্তিত তারিখ এবং সময় অনুসারে ‘ls’ কমান্ডের আউটপুট কীভাবে সাজানো যায়
7. ইউনিট কমান্ড
ইউনিীক কমান্ডটি পুনরাবৃত্তি করা লাইনগুলি প্রতিবেদন করতে বা বাদ দিতে ব্যবহৃত হয়, এটি স্ট্যান্ডার্ড ইনপুট থেকে লাইনগুলি ফিল্টার করে এবং ফলাফলটি স্ট্যান্ডার্ড আউটপুট পর্যন্ত লিখে দেয়।
কোনও ইনপুট স্ট্রিমে বাছাইয়ের পরে, আপনি নীচের উদাহরণের মতো ইউনিকের সাথে পুনরাবৃত্তি করা লাইনগুলি সরাতে পারেন।
একটি লাইনের উপস্থিতির সংখ্যা নির্দেশ করতে -c
বিকল্পটি ব্যবহার করুন এবং -i
বিকল্পটি অন্তর্ভুক্ত করে তুলনা করার ক্ষেত্রে পার্থক্য উপেক্ষা করুন:
[email ~ $ cat domains.list linux-console.net linux-console.net news.linux-console.net news.linux-console.net linuxsay.com linuxsay.com windowsmint.com [email ~ $ sort domains.list | uniq -c 2 linuxsay.com 2 news.linux-console.net 2 linux-console.net 1 windowsmint.com
আরও ব্যবহারের তথ্য এবং পতাকাগুলির জন্য ইউনিক ম্যান পৃষ্ঠাটি পড়ুন:
$ man uniq
8. fmt কমান্ড
এফএমটি সাধারণ সর্বাধিক পাঠ্য বিন্যাসক, এটি নির্দিষ্ট ফাইলে অনুচ্ছেদে পুনরায় ফর্ম্যাট করে এবং ফলাফলগুলি স্ট্যান্ডার্ড আউটপুটে প্রিন্ট করে।
নিম্নলিখিত ফাইল ডোমেন- list.txt ফাইল থেকে নিষ্কাশিত সামগ্রী:
1.linux-console.net 2.news.linux-console.net 3.linuxsay.com 4.windowsmint.com
উপরের বিষয়বস্তুকে স্ট্যান্ডার্ড তালিকায় পুনরায় ফর্ম্যাট করতে, -w
স্যুইচটি সর্বাধিক লাইনের প্রস্থ নির্ধারণ করতে ব্যবহৃত হয়:
[email ~ $ cat domain-list.txt 1.linux-console.net 2.news.linux-console.net 3.linuxsay.com 4.windowsmint.com [email ~ $ fmt -w 1 domain-list.txt 1.linux-console.net 2.news.linux-console.net 3.linuxsay.com 4.windowsmint.com
9. pr কমান্ড
PR কমান্ড প্রিন্টের জন্য পাঠ্য ফাইল বা মান ইনপুট রূপান্তর করে। দেবিয়ান সিস্টেমে উদাহরণস্বরূপ, আপনি সমস্ত ইনস্টল করা প্যাকেজগুলি নিম্নলিখিত হিসাবে তালিকাভুক্ত করতে পারেন:
$ dpkg -l
মুদ্রণের জন্য প্রস্তুত পৃষ্ঠাগুলি এবং কলামগুলিতে তালিকাটি সংগঠিত করতে, নিম্নলিখিত কমান্ডটি জারি করুন।
[email ~ $ dpkg -l | pr --columns 3 -l 20 2017-01-06 13:19 Page 1 Desired=Unknown/Install ii adduser ii apg | Status=Not/Inst/Conf- ii adwaita-icon-theme ii app-install-data |/ Err?=(none)/Reinst-r ii adwaita-icon-theme- ii apparmor ||/ Name ii alsa-base ii apt +++-=================== ii alsa-utils ii apt-clone ii accountsservice ii anacron ii apt-transport-https ii acl ii apache2 ii apt-utils ii acpi-support ii apache2-bin ii apt-xapian-index ii acpid ii apache2-data ii aptdaemon ii add-apt-key ii apache2-utils ii aptdaemon-data 2017-01-06 13:19 Page 2 ii aptitude ii avahi-daemon ii bind9-host ii aptitude-common ii avahi-utils ii binfmt-support ii apturl ii aview ii binutils ii apturl-common ii banshee ii bison ii archdetect-deb ii baobab ii blt ii aspell ii base-files ii blueberry ii aspell-en ii base-passwd ii bluetooth ii at-spi2-core ii bash ii bluez ii attr ii bash-completion ii bluez-cups ii avahi-autoipd ii bc ii bluez-obexd .....
এখানে ব্যবহৃত পতাকাগুলি হ'ল:
-
- কলাম/
আউটপুটে তৈরি কলামগুলির সংখ্যা নির্ধারণ করে -
-l
পৃষ্ঠা দৈর্ঘ্য নির্দিষ্ট করে (ডিফল্ট 66 লাইনের)
10. টিআর কমান্ড
এই সরঞ্জামটি স্ট্যান্ডার্ড ইনপুট থেকে অক্ষরগুলি অনুবাদ করে বা মুছে দেয় এবং ফলাফলকে স্ট্যান্ডার্ড আউটপুটে লিখে দেয়।
ট্র ব্যবহার করার জন্য সিনট্যাক্সটি নিম্নরূপ:
$ tr options set1 set2
নীচের উদাহরণগুলি দেখুন, প্রথম কমান্ডে set1 ([: উপরের:])
ইনপুট অক্ষরের ক্ষেত্রে (সমস্ত উচ্চতর ক্ষেত্রে) প্রতিনিধিত্ব করে।
তারপরে সেট 2 ([: নিম্ন:])
ফলাফলের অক্ষরগুলির ক্ষেত্রে কেসটি উপস্থাপন করে। এটি দ্বিতীয় উদাহরণে এবং পলায়ন অনুক্রমের একই জিনিস \n
মানে একটি নতুন লাইনে মুদ্রণ আউটপুট:
[email ~ $ echo "WWW.TECMINT.COM" | tr [:upper:] [:lower:] linux-console.net [email ~ $ echo "news.linux-console.net" | tr [:lower:] [:upper:] NEWS.TECMINT.COM
11. আরও কমান্ড
আরও কমান্ড হ'ল একটি কার্যকর ফাইল পার্সাল ফিল্টার যা মূলত শংসাপত্র দেখার জন্য তৈরি করা হয়। এটি ফর্ম্যাটের মতো পৃষ্ঠায় ফাইলের সামগ্রী দেখায় যেখানে ব্যবহারকারীরা আরও তথ্য দেখতে [এন্টার] টিপতে পারেন।
আপনি এটির মতো বৃহত ফাইলগুলি দেখতে এটি ব্যবহার করতে পারেন:
[email ~ $ dmesg | more [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 4.4.0-21-generic ([email ) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generic 4.4.6) [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-21-generic root=UUID=bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b ro quiet splash vt.handoff=7 [ 0.000000] KERNEL supported cpus: [ 0.000000] Intel GenuineIntel [ 0.000000] AMD AuthenticAMD [ 0.000000] Centaur CentaurHauls [ 0.000000] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256 [ 0.000000] x86/fpu: Supporting XSAVE feature 0x01: 'x87 floating point registers' [ 0.000000] x86/fpu: Supporting XSAVE feature 0x02: 'SSE registers' [ 0.000000] x86/fpu: Supporting XSAVE feature 0x04: 'AVX registers' [ 0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format. [ 0.000000] x86/fpu: Using 'eager' FPU context switches. [ 0.000000] e820: BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d3ff] usable [ 0.000000] BIOS-e820: [mem 0x000000000009d400-0x000000000009ffff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000a56affff] usable [ 0.000000] BIOS-e820: [mem 0x00000000a56b0000-0x00000000a5eaffff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000a5eb0000-0x00000000aaabefff] usable --More--
12. কম কমান্ড
কম উপরের আরও কমান্ডের বিপরীত তবে এটি অতিরিক্ত বৈশিষ্ট্য সরবরাহ করে এবং এটি বড় ফাইলগুলির সাথে কিছুটা দ্রুত।
এটি আরও হিসাবে একইভাবে ব্যবহার করুন:
[email ~ $ dmesg | less [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 4.4.0-21-generic ([email ) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generic 4.4.6) [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-21-generic root=UUID=bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b ro quiet splash vt.handoff=7 [ 0.000000] KERNEL supported cpus: [ 0.000000] Intel GenuineIntel [ 0.000000] AMD AuthenticAMD [ 0.000000] Centaur CentaurHauls [ 0.000000] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256 [ 0.000000] x86/fpu: Supporting XSAVE feature 0x01: 'x87 floating point registers' [ 0.000000] x86/fpu: Supporting XSAVE feature 0x02: 'SSE registers' [ 0.000000] x86/fpu: Supporting XSAVE feature 0x04: 'AVX registers' [ 0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format. [ 0.000000] x86/fpu: Using 'eager' FPU context switches. [ 0.000000] e820: BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d3ff] usable [ 0.000000] BIOS-e820: [mem 0x000000000009d400-0x000000000009ffff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000a56affff] usable [ 0.000000] BIOS-e820: [mem 0x00000000a56b0000-0x00000000a5eaffff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000a5eb0000-0x00000000aaabefff] usable :
লিনাক্সে কার্যকর ফাইল নেভিগেশনের জন্য কেন ‘কম’ দ্রুত ‘আরও’ কম্যান্ড শিখুন।
এটি এখনকার জন্য, আসুন এখানে উল্লিখিত না এমন কোনও দরকারী কমান্ড লাইন সরঞ্জাম সম্পর্কে আমাদের জানা যাক, যা নীচের মন্তব্য বিভাগের মাধ্যমে লিনাক্সে একটি পাঠ্য ফিল্টার হিসাবে কাজ করে।