السلام عليكم ورحمة الله وبركاته
من أكثر المهام إلحاحا التي قد يحتاجها سواء مديرو الأنظمة أو المستخدمون العاديون هو استعراض وتحرير الملفات وخصوصا ملفات الإعدادات ومن هذا المنطلق سنتعرض في هذا الموضوع لعشرة أوامر تُعنى باستعراض محتوى الملفات على لينكس ، وفي نهاية الموضوع ستجد مجموعة من التمارين العملية لتتدرب على استخدامها .
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 ابتداء
من السطر الذي يتواجد به اسم المستخدم
الخاص بنا .
لاتنسوا مشاركتنا الحلول التي قد توصّلتم لها في التعليقات.