أهم عشرة أوامر لاستعراض محتوى الملفات على لينكس


السلام عليكم ورحمة الله وبركاته




من أكثر المهام إلحاحا التي قد يحتاجها سواء مديرو الأنظمة أو المستخدمون العاديون هو استعراض وتحرير الملفات وخصوصا ملفات الإعدادات ومن هذا المنطلق سنتعرض في هذا الموضوع لعشرة أوامر تُعنى باستعراض محتوى الملفات على لينكس ، وفي نهاية الموضوع ستجد مجموعة من التمارين العملية لتتدرب على استخدامها .


cat


من أكثر الأوامر شعبية في جنو لينكس، يقوم بنسخ محتوى مجرى الدخل القياسي نحو مجرى الخرج القياسي الذي هو افتراضيا الشاشة ، باستغلال الإمكانيات التي يوفرها shell بإمكاننا فعل العديد من الأمور بcat

الاستخدام الأبسط له هو عرض محتوى ملف معين كالتالي :


otmangx@20:15:[~]: cat /etc/issue
Ubuntu 14.04.5 LTS \n \l

 
وكون أنّ الأمر يقبل أكثر من ملف كوسيط فيمكننا تمرير أكثر من ملف مع الأمر لعرضهم جميعا :

otmangx@20:33:[~]: cat /etc/issue /etc/resolv.conf
Ubuntu 14.04.5 LTS \n \l

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 208.67.222.222
nameserver 208.67.220.220


وبهذا يمكننا مثلا إنشاء ملف يضم محتويات الملفين السابقين معا على التوالي بعد توجيه المخرجات إلى ملف معين  :


otmangx@20:34:[~]: cat /etc/issu/etc/resolv.conf > file.txt
otmangx@20:37:[~]: cat file.txt
Ubuntu 14.04.5 LTS \n \l

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 208.67.222.222
nameserver 208.67.220.220



يمكننا كذلك عن طريق cat إنشاء ملفات نصية تحتوي على نصوص ندخلها عن طريق لوحة المفاتيح كالتالي :


otmangx@20:37:[~]: cat > text.txt
Hello
I am fine
otmangx@20:40:[~]: cat text.txt
Hello
I am fine



إذن فكما ترى فالأمر إن لم نقم بتمرير ملف له فيقوم بالقراءة من مجرى الدخل القياسي ألا وهو لوحة المفاتيح وقمنا بتمرير المخرجات للملف text.txt

عند تطبيق الأمر نقوم بإدخال النصوص التي نريد وللانتقال للسطر التالي نضغط enter وللحفظ والخروج نقوم بالضغط على ctrl+d فينتج لنا الملف text.txt



هناك الكثير من الأمور الأخرى التي بإمكاننا فعلها بcat ربما نتعرض لموضوع في المستقبل يتناول الكثير من هذه التقنيات .



tac


عكس cat فهو يقوم بعرض الملف ابتداء من آخر سطر


otmangx@20:49:[~]: cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
otmangx@20:49:[~]: tac /etc/shells
/bin/rbash
/bin/bash
/bin/dash
/bin/sh
# /etc/shells: valid login shells



nl


يقوم بعرض الملف مع ترقيم الأسطر ، كما يمكنك عمل نفس الشيء بcat عن طريق الخاصية -n



otmangx@20:48:[~]: nl /etc/shells
1 # /etc/shells: valid login shells
2 /bin/sh
3 /bin/dash
4 /bin/bash
5 /bin/rbash



head


يقوم افتراضيا بعرض عشرة أسطر الأولى من ملف

otmangx@20:50:[~]: head /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin


otmangx@20:53:[~]: head -5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync





tail


عكس head فهو يقوم بعرض آخر عشرة أسطر مع إمكانية تحديد عدد الأسطر للعرض كما هو الحال بالنسبة لhead



otmangx@20:53:[~]: tail /etc/passwd
mysql:x:999:999::/home/mysql:
pulse:x:105:122:PulseAudio daemon,,,:/var/run/pulse:/bin/false
rtkit:x:109:124:RealtimeKit,,,:/proc:/bin/false
lightdm:x:107:115:Light Display Manager:/var/lib/lightdm:/bin/false
postgres:x:110:120:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash
statd:x:111:65534::/var/lib/nfs:/bin/false
usr1:x:1001:1001:,,,:/home/usr1:/bin/bash
usr2:x:1002:1002::/home/usr2:
usr3:x:1003:1003::/home/usr3/usr3:
usr:x:1004:1004:,,,:/home/usr:/bin/bash

otmangx@20:54:[~]: tail -3 /etc/passwd
usr2:x:1002:1002::/home/usr2:
usr3:x:1003:1003::/home/usr3/usr3:
usr:x:1004:1004:,,,:/home/usr:/bin/bash

يستخدم غالبا لعرض سجلات log لمعرفة آخر التغييرات .

pg


عرض ملف نصي صفحة بصفحة بالضغط على space وللخروج تضغط على q ثم enter . 


more


يقوم باستعراض ملف نصي في وضع الشاشة الكاملة مع إمكانية التنقل صفحة بصفحة بالضغط على الزر space أو التنقل سطرا بسطر بالضغط على enter وللخروج تضغط على q .



less


من أوامر الشاشة الكاملة مثله مثل more ،ويعتبر الخيار الافتراضي لعرض صفحات المساعدة وقد تمّ تصميمه لكي يكون بديلا أفضل من more وأسرع منه وهذا يتجلى في كون الأداة less لاتقوم بتحميل الملف كاملا وتنتقل بين سطوره عن طريق الضغط على السّهم العلوي أو السّفلي ، أو يمكنك كذلك التنقل بالصفحات عن طريق الزر space بهذا فالأمر يخول لك التنقل للأمام والخلف عكس more الذي يسمح فقط بالانتقال للأمام

وللخروج من less تضغط على q . 


otmangx@21:04:[~]: less /etc/passwd



يتوفر less على نظام تفاعلي يمكّنك من تنفيذ بضعة تعليمات عند عرضك لملف ما ، حيث يمكنك على سبيل المثال لاالحصر البحث عن كلمة معينة من خلال كتابة التعليمة التالية : /word أو?word هذا النظام التفاعلي قريب نوعا ما لما عند vi لكن هناك اختلاف في الأوامر كذلك بالنسبة للأوامر المتوفرة لless هي نفسها تقريبا يمكنك تنفيذها على كل من more و pg كذلك 

strings

أمر يقوم بعرض نصوص ascii المقروءة في الملفات الثنائية

في هذا المثال سنستخدم strings لعرض المحتوى المقروء من /usr/bin/less



otmangx@20:58:[~]: strings /usr/bin/less
/lib/ld-linux.so.2
libtinfo.so.5
_ITM_deregisterTMCloneTable
__gmon_start__
_Jv_RegisterClasses
_ITM_registerTMCloneTable
_init
tgetnum
tgetstr
tgetent
...

vi

فكما هو معلوم فvi أو نسخته المطورة vim محرر نصوص أكثر من كونه مستعرضا لها كما سبق وتعرفنا عليه وعلى محررات أخرى في موضوع أفضل ثمانية محررات نصوص في لينكس لكننا في حالتنا هذه سنستخدمه فقط لاستعراض النصوص بتمرير الخيار -R معه لتشغيل الأمر بصلاحيات القراءة فقط وهو بهذا لن يسمح بأي تعديل يجري على الملف ، طبعا استعراض محتوى ملف ما بvi سيسمح لنا بالاستفادة من الإمكانيات الرهيبة التي يوفرها لنا هذا المحرر .






الآن نكون قد وصلنا لنهاية الموضوع، وقبل التطرق للتمارين نذكِّركم إلى أنّه قد سبق وتطرقنا إلى أدوات الفلترة tr و cut التي قد تحتاجها لفلترة المخرجات وأنت تستعرض محتوى الملفات 
كما ندعوكم لزيارة موضوع أوامر المساعدة في نظام جنو/لينكس
الشيء الذي قد تحتاجه لامحالة للتعرف أكثر على خصائص الأوامر وإرشادات تخصها كما هو الحال للأوامر التي سبق وذكرناها في هذا الموضوع فلم نقم بذكر إلا نبذة عن استخداماتها وتبقى لك الفرصة للتعرف عليها أكثر .



تمارين

عن طريق استخدام الأوامر التي ذكرناها في هذا الموضوع فقط قم بإنجاز التمارين التالية :


1- عن طريق cat قم بنسخ الملف /etc/group على مجلد المنزل تحت إسم : groupbckp

2- قم بإظهار 12 أسطر الأولى من الملف groupbckp

3-قم بعرض السطر الأخير من الملف groupbckp

4-قم بعرض الملف groupbckp من السطر 10 إلى السطر 20 .

5-قم بعرض الملف /etc/passwd ابتداء من السطر 10 .

6-قم بعرض الملف /etc/passwd ابتداء من السطر الذي يتواجد به اسم المستخدم الخاص بنا .

لاتنسوا مشاركتنا الحلول التي قد توصّلتم لها في التعليقات.


الإبتساماتإخفاء