‏إظهار الرسائل ذات التسميات أوامر الطرفية. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات أوامر الطرفية. إظهار كافة الرسائل

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


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




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


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 ابتداء من السطر الذي يتواجد به اسم المستخدم الخاص بنا .

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

البحث عن الملفات و المجلدات باحترافية باستخدام الامر Find

بسم الله الرحمن الرحيم



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

وفي سلسلة من المواضيع سأحاول طرح عدد من الاوامر الهامة التي على كل مستخدم أن يحفظها، و بالأخص المبتدئين. و سأفتتح بأمر find للبحث عن المجلدات و الملفات.

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

الصيغة العامة 
$ find location comparison-criteria search-term
location = مسار البحث
comparison-criteria = خصائص البحث
search-term= اسم الملف

عند تطبيق الامر بدون اي اضافة


البحث في مجلد معين "في هاته الحالة سيعرض لنا الأمر كل الملفات المتواجدة في هذا المسار و بطريقة تشعبية"
find /home/testing/linux
 البحث في مجلد عن ملف معين
find /home/testing/linux -name "abc.html"
البحث في المجلد عن الملف/الملفات من نوع محدد
find /home/testing/linux -name "*.html"
 البحث عن ملفات بشرط عدم تحقق الشرط عليه أي ألا يكون ملف html في هاته الحالة
find /home/testing/linux -not -name "*.html"
أو
 find /home/testing/linux ! -name "*.html"
يمكن البحث باستخدام الشرطين مثلا
find /home/testing/linux -name "abc*" ! -name "*.html"
 يمكن أيضا البحث بوضع شرطين لكن بطريقة اختيارية أي سيظهر أي نتيجة تحقق شرط واحد
find /home/testing/linux -name "*.html" -o -name "*.txt"
بالإضافة إلى إمكانية وضع شرطين إجباريين باستبدال خاصية o- ب and- أي سيظهر النتائج التي تحقق الشرطين معا


 البحث عن الملفات فقط
find /home/testing -type f -name "linux"
 البحث عن المجلدات فقط
find /home/testing -type d -name "abc.html"
البحث عن الملفات المخفية في Home
find ~ -type  f ".*"
 البحث عن ملفات التي تحقق الصلاحيات المطلوبة ، في هذا المثال سنقوم ببحث عن ملفات ذات صلاحيات 777
find . -type f -perm -777
 يمكن أيضا البحث عن ملفات التي لا تتضمن صلاحيات معينة مثلا777-
find . -type f ! -perm -777
 يمكن كذلك البحث انطلاقا من الصلاحيات بطريقة مختلفة مثلا فقط التنفيذ
find /bin -perm /a=x
 البحث عن مجلدات/ملفات تم حفضها في مدة تقل عن 50 يوم مثلا
find / -mtime 50
 البحث عن مجلدات/ملفات تم الولوج اليها مدة تقل عن 50 يوم مثلا
find / -atime 50
البحث عن مجلدات/ملفات حفضت في مدة زمنية معينة مثلا ما بين 50 الى 100 يوم
find / -mtime +50 -mtime -100
البحث ‫عن مجلدات/ملفات تم تعديل فيها (خصائص، صلاحيات ...)
 find ~ -cmin 27


البحث عن مجلدات/ملفات عن طريق الحجم
find / -size 50M
البحث عن مجلدات/ملفات حجمها محصور بين قيمتين
find / -size +50M -size -100M
يمكن أيضا تغيير وحدة الحجم التخزينية كما يوجد في الجدول الأتي:


 مسح ملفات ضمن  شروط خاصة مثلا ذات الامتداد .BAK
find / -type f -name "*.BAK" -delete
و يمكنكم أيضا أن تتعرفو أكثر على هذا أمز من man الخاص به :

man find

اتمنى ان اكون قد قمت بتغطية كل ما يلزم لاستخدام الأمر find ، ألقاكم في درس آخر إن شاء الله. بالتوفيق

أهم عشرة أوامر لجمع المعلومات عن النظام والجهاز في اللينكس

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



موضوعنا في هذا اليوم سيكون عن أهم الأوامر التي يجب عليك معرفتها لجمع المعلومات حول الجهاز والنظام الذي تستخدمه وذلك يشمل جميع القطع الموصولة بالجهاز وسواء كانت خاصة بالشبكة أو أجهزة التخزين وغيرها وهذا الأمر يساعدنا كثيرا في إيجاد التعريفات في حالة لم تشتغل القطع الخارجية الموصولة بالجهاز , ومعرفة المواصفات الخاصة بالجهاز الذي تريد شرائه , وكذا معرفة معلومات حول النظام والتوزيعة التي تستخدمها وكذا معلومات عن النواة والعديد من الامور التي سنتحدث عنها في هذا الموضوع فابقوا معنا

أول ما سنتعرف عليه هو معلومات عن النظام والتوزيعة وذالك يتلخص في الخصائص التي يتميز بها الأمر uname بحيث يتيح لنا الأمر معرفة الكثير من المعلومات الخاصة بالنظام منها إسم النظام والتوزيعة وكذا إصدار النواة ومعمارية الجهاز هل 32bit أو 64bit والعديد من المعلومات الأخرى 

لمعرفة إسم النظام يكفي طباعة الأمر uname في سطر الأوامر كالتالي
uname
ولمعرفة الإصدار الخاص بالنواة قم بطباعة الامر متبوعا بالخاصية -r 
uname -r
ولمعرفة معمارية الجهاز قم بتمرير الخيار -m بعد الامر 
uname -m
و الخاصية -a إختصار لجميع الخصائص الاخرى التي تعرض المعلومات التي ذكرناها مع عرض hostname الخاص بالجهاز 
uname -a

وفي حالة أردت الحصول على المعلومات عن طريق الواجهة الرسومية فيمكنك الذهاب إلى مركز إدارة الاعدادات الخاص بالتوزيعة والنقر على أيقونة System Information وستجد هناك بعض المعلومات الخاصة بالنظام 


الحصول على معلومات حول أجهزة التخزين الموصلة بالجهاز سواء الداخلية مثل الهارد ديسك أو الخارجية  كمفاتح usb وغيرها من اجهزة التخزين , يسمح لنا الأمر lsblk بعرض معلومات عن أجهزة التخزين المتصلة و الغير متصلة اقصد بدالك التي لم يعمله mount بعد , ويعرض لنا أيضا نقطة وصل المفتاح او الهارد ديسك كدا الحجم التخزيني له ولمعرفة هاته المعلومات يكفي طباعة الأمر lsblk وسيقوم بعرض هاته المعلومات الأخرى
lsblk

الحصول على المعلومات حول الاجهزة المتصلة بالجهاز عبر منفد usb وذالك يشمل أجهزة التخزين و بطاقات الشبكة ذات مدخل usb وغيرها مع عرض id الخاص بها وإسمها طبعا , ولفعل ذالك نستخدم الامر lsusb 
lsusb


وللحصول على معلومات حول المعالج الخاص بالجهاز والتي تخص عدد الأنوية الحقيقية للمعالج وعدد الخيوط  threads و كذا cache والعديد من المعلومات الأخرى مستعينا بالأمر lscpu الذي يعرض محتويات الملف /proc/cpuinfo
lscpu


وللحصول على جميع المعلومات الخاصة بالجهاز ندعوك لاستخدام الأمر lshw الذي سبق وتطرقنا له في موضوع : معرفة مواصفات جهازك وعرضها بالمتصفح ، والأمر يعرض العديد من المعلومات في آن واحد والتي تشمل جميع قطع الحاسوب من الcpu و ram وبطاقة الشبكة والهارد ديسك وغيرها من المعلومات المهمة ولكن الامر يشتغل بصلاحيات الجذر لهذا سنستخدم sudo متبوعا بالأمر lshw كالآتي 
sudo lshw 


وللحصول على معلومات حول الجهاز بشكل محدد نستخدم الأمر dmidecode الذي يقوم بعرض المعلومات حول قطع الجهاز بشكل محدد بإستخدام الخاصية -t متبوعة بالجزء الذي تريد المعلومات حوله مثل system او processor وram كذالك وغيرها من المعلومات الأخرى
sudo dmidecode -t system


للحصول على معلومات حول القطع الموصولة بمنافذ pci و التي تشمل بطاقات الشاشة و بطاقات الشبكة كذالك ولهذا نستخدم الأمر lspci والذي يعرض معلومات عن هاته البطاقات بحيث يعرض الإسم الخاص بها وغيرها من المعلومات الأخرى
lspci

و للحصول على معلومات حول بطاقة الشبكة الموصولة بالجهاز نستخدم الامر ifconfig والذي سيقوم بعرض معلومات تخص الإسم الفيزيائي للبطاقة  و ip الخاص بها وكذا mac وغيرها من المعلومات الأخرى
ifconfig


و للحصول على معلومات حول الهارد ديسك الخاص بك والموصول بالجهاز نقوم بالإستعانة بالامر hdparm والذي يقوم بعرض السعة التخزينية للهارد وبعض المعلومات الأخرى , وذالك بإضافة الخاصية -i متبوعة بالمسار الخاص بالهارد كالتالي
sudo hdparm -i /dev/sda


و للحصول على المعلومات حول عدد أقسام الهارد سواء خارجي أو داخلي ونوع التقسيم وسعة كل قسم مع نظام الملفات الخاص بهم  نستخدم الامر fdisk متبوعا بالخاصية -l  ولأنها أداة متقدمة فستحتاج إلى صلاحيات الجذر
sudo fdisk -l


طبعا هناك العديد من الادوات الأخرى ولكن نكتفي بهذا القدر إلى موضوع قادم إن شاء الله

أوامر المساعدة في نضام جنو/لينكس

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




السلام عليكم اخترت لكم في تدوينة اليوم موضوع طريقة الحصول على توثيق للأوامر , في بعض الأحيان يواجه البعض منا أوامر غريبة وغامضة لا يعرفها , مع خصائص متقدمة لا يعرفها أيضا وهنا يأتي دور التوثيق أي دليل الاستخدام أو الإستعمال طبعا هاته الأوامر تسهل كثيرا معرفة طريقة استخدام الأمر وأيضا الخصائص والتي هي جزء مهم للإستخدام الأمر و يمكن أيضا أن تعطيك أمثلة يمكن الإستفادة منها وأيضا هناك بعض الأوامر يمكن أن تعطيك مكان الملف التنفيذي , طبعا هاته الأوامر يمكن ان تكون إما مضمنة في صدفة الباش أو عبارة عن ملفات تنفيذية التي يمكن أن تجدها في المجلد /user/bin والتي تكون عبارة عن ملفات ثنائية كتبة بلغات السي أو البيثون أو سكريبت شيل , أو أنها عبارة عن أوامر بديلة والتي تكون بدورها مبنية عن أوامر أخرى أو أنها دوال الشل والآن لننتقل إلى الشرح 

type

في البداية قد تحتاج مثلا إلى معرفة أمر ls إلى أي مجموعة ينتمي من المجموعات الأربع التي ذكرناها ويمكننا دالك باستعمال الأمر type متبوعا بالأمر ls 


type ls
الناتج يخبرنا أن الأمر ls عبارة عن أمر بديل أي أنه في مجموعة الأوامر البديلة مع خيار ls –color=auto وهو اللون الذي نراه عند طباعة الأمر في الطرفية 
which

والآن إدا أردنا معرفة مكان تواجد الملف التنفيذي للأمر ls فيمكننا معرفته عبر الأمر which والدي يعرض مسار الملفات التنفيذية التابعة للأمر( والدي لا يمكنه عرض سوى مسار الملفات التنفيذية فقط ) فيمكننا تنفيذه على الشكل التالي


which ls 
help

ولأن بعد أن تعرفنا على أوامر معرفة المجموعة التي تنتمي إليها الأوامر, ننتقل إلى أوامر المساعدة التي بدورها تعتمد على معرفتك بالمجموعة التي ينتمي إليها الأمر الذي تريد معرفته للآن الأوامر المساعدة ليست كلها مصممة لكل الأوامر فأمر help مثلا سيعطيك المساعدة فقط في ما يخص لأوامر المضمنة في الباش لأنه بدوره مجرد خاصية مضمنة في الباش مصممة لدالك فقط أي أنه لا تستطيع الحصول على المساعدة في الأوامر التابعة للملفات تنفيذية من خلال help , للحصول على المساعدة في ما يخص الأوامر المضمنة في الباش فيمكنك تنفيذ الأمر help متبوعا بالأمر الذي تريد كالأتي  

help echo
هنالك أيضا خاصية تأتي غالبا مضمنة في الملفات التنفيذية التابعة للأوامر وهي خاصية --help وهي خاصية أو بالأحرى خيار من الخيارات التابعة للأمر وطريقة تنفيذه على الشكل التالي 

wget --help

man

تأتي في غالب الأحيان البرمجيات التي تستخدم في سطر الأوامر بما يسمى صفحات دليل الاستخدام أو man ولهدا تم تطوير برنامج يشتغل على الطرفية لقراءة هدا الدليل و اسمه كدالك man وهو برنامج يعتمد بدوره على برنامج أو أمر less الذي يستعرض النصوص , ويستخدم كالأتي 


man cd
info

ولأن نأتي إلى أمر هو أشبه إلى ما يكون man لاكنه متميز قليلا وهو عبارة عن برمجية تابعة للمشروع غنو و أسموها info وهي تؤدي نفس العمل ولكن بطريقة رائعة ويتم التحكم فيه عبر الكيبورد طبعا بالأسهم وخيرات أخرى يمكنك اكتشافها بنفسك وطريقة استعماله كالتالي 


info tar
apropos

يعرض الأمر
apropos أمثلة للأوامر تؤدي نفس المهمة الأمر الذي تبحث عنه ويأتي دور هدا الأمر في حالة نسيت أمر ما فتبحث عنه بأمر أخر يؤدي نفس المهمة وطريقة استعماله كالأتي 
apropos wget

whatis

أما الأمر
whatis فهو يعرض معلومات مبسطة عن الأمر الدي تبحث عنه ولا تتعدى السطر وطريقة إستخدامه كالاتي 
whatis rpm
والآن نأتي إلى نهاية الشرح انتظرونا في الموضوع القادم إن شاء الله إلى اللقاء

الأمر tr لتحويل أو حذف المحارف


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



تعرفنا سابقا في موضوع الأمر cut لقص واستخراج جزء من النص على أداة فلترة النصوص cut وبعض استخداماتها كما التمسنا في موضوع تعرف على أكثر الأوامر التي تستخدمها على Terminal
قوة أدوات الفلترة عند دمجها مع بعض ؛ واليوم بإذن الله سنتعرف على الأمر tr لتحويل واستبدال المحارف مع أمثلة عملية لاستخدامه .




أمثلة عن استخدام الأمر tr 



سأذكر مجموعة من الأمثلة مستخدما الأمر tr لإبراز إمكانياته في فلترة النصوص :

-نستطيع بواسطة tr استبدال محرف واحد أو قائمة من المحارف إلى محارف أخرى ، وكمثال على هذا :

echo OtmangX | tr "OX" "ox"

بحيث يتم استبدال O بo و X ب x 

-اسبتدال الأحرف الكبيرة بالصغيرة وذلك من خلال استخدام المجالات a-z و A-z 

cat /etc/issue
cat /etc/issue | tr A-Z a-z
tr A-Z a-z /etc/issue
tr A-Z a-z < /etc/issue

الأمر tr يقبل المدخلات فقط من مجرى الدخل القياسي وبالتالي لا نستطيع تمرير ملف ما كبارامتر ولحل هذه المشكلة نستخدم المعامل < لجعل مدخلات الأمر من ملف ما . 


ناتج الأوامر السابقة:


-يستعمل الملف /etc/passwd نقطة التفسير ":" لفصل الحقول بعضها عن بعض، يمكننا تغيير هذا الفاصل برمز آخر مثلا علامة التعجب ! عن طريق التالي :

head /etc/passwd
head /etc/passwd | tr ':' '!'
ناتج الأوامر السابقة:


-الآن سنقوم بإظهار خمس أسطر الأولى من ملف /etc/passwd وإجراء بضع تعديلات
سنقوم بترقيم الأسطر عن طريق الأمر   nl

head -5 /etc/passwd
head -5 /etc/passwd | nl


-الآن مذا لو أردنا بدل الأرقام وضع الحروف لتعداد الأسطر

head -5 /etc/passwd | nl | tr '1-9' 'a-e'
head -5 /etc/passwd | nl | tr '1-9' 'A-E'

ناتج الأوامر السابقة:


خصائص الأمر tr



-d : حذف قائمة المحارف أو الرموز أو الفئات الممررة مع الأمر
-s : لحذف تكرار الأحرف .

فكما ترون فالأمر nl يقوم بوضع مسافات فارغة في الهامش وكذلك بعد الرقم ، ونود حذف كل هذه المسافات بدون الخوض في خصائص الأمر nl، ومن أجل هذا سنستعين بالفئة [:blank:]
التي ترمز للفراغات الأفقية :
head -5 /etc/passwd | nl | tr -d [:blank:]
كما يمكننا بدل حذف كل المسافات الفارغة حذف تكرارها فقط والإبقاء على مسافة فارغة واحدة

head -5 /etc/passwd | nl | tr -s [:blank:] ' '

ناتج الأوامر السابقة:



هناك فئات أخرى متاحة للاستعمال كما في المثال التالي لو أردنا حذف تكرارات الأحرف:

echo LLinuxx | tr -s Lx
echo LLiiiinnnuxx | tr -s [:alpha:]


حذفنا جميع التكرارات الزائدة للحرفين "L" و "x" في الأمر الأول، وفي المثال الثاني جعلنا الأمر أكثر شمولية ليشمل جميع الأحرف المكررة .


استخدمنا في هذه الأمثلة الأخيرة ما يسمى بالفئات ، وهذه أمثلة عنها :


وكمثال أخير ، سنتطرق إلى كيفية تحويل ملف نصي من صيغة DOS إلى صيغة UNIX


tr -d '\r' file_dos > file_unix


استخدمنا الرمز \r وهناك غيرها، وهذه قائمة بالرموز مع معانيها :




إلى موضوع آخر إن شاء الله