تعرف على سبب أن ‘less’ أسرع من أمر ‘more’ للتنقل الفعال في الملفات

مور هو أمر سطر الأوامر في نظام التشغيل يونكس يستخدم لعرض محتويات ملف في وحدة التحكم. الاستخدام الأساسي لأمر مور هو تشغيل الأمر ضد ملف كما هو موضح أدناه:

اقرأ أيضًا: تعلم الفرق بين أوامر ‘cat’ و ‘tac’ مع الأمثلة

تعلم أمر ‘مور’ في لينكس

# more /var/log/auth.log
View Contents of auth.log File
Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session closed for user root
Apr 12 11:55:01 tecmint CRON[7159]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session closed for user root
Apr 12 11:55:02 tecmint CRON[7159]: pam_unix(cron:session): session closed for user root
Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session closed for user root
Apr 12 12:05:01 tecmint CRON[7435]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session closed for user root
Apr 12 12:05:02 tecmint CRON[7435]: pam_unix(cron:session): session closed for user root
Apr 12 12:09:01 tecmint CRON[7542]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:09:01 tecmint CRON[7542]: pam_unix(cron:session): session closed for user root
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session closed for user root
....

طريقة أخرى لاستخدام أمر مور بالتزامن (الأنبوب) مع أوامر أخرى، مثل أمر القط، كما هو موضح في المثال أدناه:

# cat /var/log/auth.log | more
View and Navigate Contents of File

للتنقل عبر الملف سطرًا بسطر اضغط على مفتاح Enter أو اضغط على مفتاح Spacebar للتنقل صفحة واحدة في كل مرة، حيث تكون الصفحة هي حجم شاشة الطرفية الحالية الخاصة بك. للخروج من الأمر، ما عليك سوى الضغط على مفتاح q.

A useful option of more command is the -number switch which allows you to set the number of line a page should contain. As an example display the auth.log file as a page of 10 lines:

# more -10 /var/log/auth.log
Show Only First 10 Lines of File

أيضًا، يمكنك عرض صفحة تبدأ من رقم سطر معين باستخدام الخيار +الرقم كما هو موضح أدناه:

# more +14 /var/log/auth.log
Show Only First 14 Lines of auth.log File
Apr 12 12:09:01 tecmint CRON[7542]: pam_unix(cron:session): session closed for user root
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session closed for user root
Apr 12 12:16:01 tecmint mate-screensaver-dialog: gkr-pam: unlocked login keyring
Apr 12 12:17:01 tecmint CRON[7793]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:17:01 tecmint CRON[7793]: pam_unix(cron:session): session closed for user root
Apr 12 12:20:01 tecmint CRON[7905]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:20:01 tecmint CRON[7905]: pam_unix(cron:session): session closed for user root
Apr 12 12:25:01 tecmint CRON[8107]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:25:01 tecmint CRON[8108]: pam_unix(cron:session): session opened for user root by (

تعلم أمر ‘ليس’ في لينكس

مشابه لـ مور، يتيح أمر ليس عرض محتويات ملف والتنقل من خلال الملف. الفارق الرئيسي بين مور و ليس هو أن أمر ليس أسرع لأنه لا يحمل الملف بالكامل دفعة واحدة ويسمح بالتنقل في الملف باستخدام مفاتيح الصفحة السابقة/التالية.

يمكن استخدام الأمر كأمر مستقل يصدر ضد ملف أو استخدامه مع الأنابيب مع العديد من أوامر Linux لتضييق النتائج المعروضة على الشاشة مما يتيح لك التمرير خلال النتائج.

# less /var/log/auth.log
# ls /etc | less

يمكنك التنقل في الملف سطراً بسطر بالضغط على مفتاح Enter. يمكن التنقل بين الصفحات باستخدام مفتاح spacebar. يتم تمثيل حجم الصفحة بحجم شاشة الطرفية الحالية الخاصة بك. للخروج من الأمر اكتب q, بنفس الطريقة كأمر more.

A useful feature of less command is the use of /word-to-seach option. For instance you can search and match all sshd messages from a log file by interactively specifying the /sshd string.

View File Content Using less Command

لعرض ملف بدءاً من رقم سطر محدد، استخدم الصيغة التالية:

# less +5 /var/log/auth.log

إذا كنت بحاجة لتتبع عدد كل سطر مع أمر less استخدم الخيار -N.

# less -N /var/log/daemon.log
Show Number for Every Line in File
      1 Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session opened for user root by (uid=0)
      2 Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session closed for user root
      3 Apr 12 11:55:01 tecmint CRON[7159]: pam_unix(cron:session): session opened for user root by (uid=0)
      4 Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session opened for user root by (uid=0)
      5 Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session closed for user root
      6 Apr 12 11:55:02 tecmint CRON[7159]: pam_unix(cron:session): session closed for user root
      7 Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session opened for user root by (uid=0)
      8 Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session closed for user root
      9 Apr 12 12:05:01 tecmint CRON[7435]: pam_unix(cron:session): session opened for user root by (uid=0)
     10 Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session opened for user root by (uid=0)
     11 Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session closed for user root

بشكل افتراضي، الطريقة الوحيدة للخروج من أمر less هي الضغط على مفتاح q. لتغيير هذا السلوك والخروج تلقائيًا عند الوصول إلى نهاية الملف، استخدم الخيار -e أو -E:

# less -e /var/log/auth.log
# less -E /var/log/auth.log

لفتح ملف في أول حدوث لنمط معين، استخدم الصيغة التالية:

# less +/sshd /var/log/auth.log
Show Given Matching String in File
Apr 12 16:19:39 tecmint sshd[16666]: Accepted password for tecmint from 192.168.0.15 port 41634 ssh2
Apr 12 16:19:39 tecmint sshd[16666]: pam_unix(sshd:session): session opened for user tecmint by (uid=0)
Apr 12 16:19:39 tecmint systemd-logind[954]: New session 1 of user tecmint.
Apr 12 16:19:48 tecmint sshd[16728]: Received disconnect from 192.168.0.15: 11: disconnected by user
Apr 12 16:19:48 tecmint sshd[16666]: pam_unix(sshd:session): session closed for user tecmint
Apr 12 16:20:01 tecmint CRON[16799]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 16:20:02 tecmint CRON[16799]: pam_unix(cron:session): session closed for user root
Apr 12 16:25:01 tecmint CRON[17026]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 16:25:01 tecmint CRON[17025]: pam_unix(cron:session): session opened for user root by (uid=0)

الأمر السابق يخبر less بفتح ملف auth.log في أول تطابق لسلسلة sshd.

لإلحاق المحتوى للملف المفتوح في أمر less استخدم مفتاح Shift+f أو قم بتشغيل less بالصيغة التالية.

# less +F /var/log/syslog

هذا يجعل less يعمل بوضع تفاعلي (حي) ويعرض محتوى جديد على الطاير أثناء انتظار كتابة بيانات جديدة إلى الملف. هذا السلوك مشابه لأمر tail -f command.

بالاشتراك مع نمط يمكنك مشاهدة ملف السجل تفاعليًا باستخدام مفتاح Shift+f أثناء تطابق كلمة مفتاحية. للخروج من وضع البث المباشر، ما عليك سوى الضغط على مفاتيح Ctrl+c.

# less +/CRON /var/log/syslog

سواء قررت استخدام أكثر أو أقل، وهو اختيار شخصي، تذكر أن الأقل هو أكثر بـ المزيد من الميزات.

اقرأ أيضًا: إدارة الملفات بفعالية باستخدام أوامر head و tail و cat

Source:
https://www.tecmint.com/linux-more-command-and-less-command-examples/