googl

أخبار الانترنت

news

أوامر لينكس أساسية للإستعمال اليومي جزء 2/4

مرحباً بكم يا جماعة ، اليوم و في هذا الجزء من سلسلة "أوامر لينكس أساسية للإستعمال اليومي" سأركز على الأوامر الخاصة بالتعامل مع الملفات خاصةً و ذلك يضم أوامر البحث و إستخراج المعلومات... فإذا كنت جديد هنا فأنصحك بقراءة الجزء الأول لكي تفهم الأوامر القادمة و تحصل معرفة كاملة , رابط الجزء الأول من السلسلة :

~  أوامر لينكس أساسية للإستعمال اليومي جزء 1/4  ~

 

طيب ننتقل إذاً إلى الدرس ,و لا تملوا لأن الدرس سيكون طويل قليلاً لأني حسب تجربتي الخاصة اعتبر التعامل مع الملفات على لينكس يعتبر من أهم مؤهلات احتراف هذا النظام .

الأمر touch

  يستخدم هذا الأمر اما لانشاء ملف فارغ أو تغيير وقت انشاء الملف او المجلد
touch file.txt
من خلال الأمر السابق تم انشاء ملف اسمه file وامتداده txt
وكذلك يمكن انشاء اكثر من ملف بمختلف الامتدادات في سطر واحد كالتالي:
touch text.txt web_page.html data
من خلال الأمر السابق تم انشاء ثلاث ملفات الأول اسمه text وامتداده txt والثاني اسمه web_page وامتداده html و الثالث none بدون امتداد .
حسناً فالنتقدم أكثر
 راقبوا معي , لانشاء عدة ملفات متشابهة بالاسماء وتختلف فقط في أواخر الحروف يكون الأمر كالتالي:
touch file{1,2,3,4}
من خلال الأمر السابق تم انشاء اربع ملفات هي : file1 , file2 , file3 , file4
فهي متشابهة في بدايتها (file) ومختلفة الآخِر (1,2,3,4)

اما لانشاء ملفات تختلف اسماءها في البداية وتتشابه بالنهاية كالتالي:
 touch {system,internet}_files
من خلال هذا الأمر تم انشاء ملفين تختلف اسماءهم في البداية system , internet وتتشابه في النهاية وهي: system_files , internet_files

و بالتالي يمكنك تحديد امتدادات الملفات
touch {file1,file2,file3}.txt
و هذا كود أخر جربه و أنظر النتيجة ، أترك لكم فهمه 
touch file{1,2,3}{_system,_internet,_command}.txt

طريقة تغيير وقت انشاء الملف


اولا نضع الأمر ls الذي ذكرناه في الجزء السابق و نفحص نتيجته  :
ls -l a.txt
-rw-r--r-- 1 3rabGeeks 3rabGeeks 0 2015-06-15 23:51 a.txt
مثل ما لاحظت تم انشاء الملف في الخامس عشر من شهر يونيو من سنة 2015 في الساعة الحادية عشرة و واحد و خمسين دقيقة مساء .

 راقبوا سنقوم بتغير وقت انشاء الملف الى :
الخامس والعشرين من شهر فبراير من عام 1985 (15/2/1985) في الساعة التاسعة وخمسة اربعين دقيقة (09:45) .

  الأمر سيكون كالتالي :
touch -t 198502150945 a.txt
  - اول اربع ارقام تعبر عن السنة 1985
  - الرقم الخامس والسادس تعبر عن الشهر 02
  - الرقم السابع والثامن تعبر عن عدد ايام الشهر 15
  - الرقم التاسع والعاشر تعبر عن الساعة 09
  - والرقم الحادي عشر والثاني عشر تعبر عن الدقيقة 45
  ثم تكتب اسم الملف , وللتأكد من تنفيذ العملية بنجاح :
ls -l a.txt
-r-- 1 3rabGeeks 3rabGeeks 0 1985-02-15 09:45 a.txt
و يمكن تنفيذ نفس الأمر في المجلدات كذلك بنفس الطريقة تماماً  . 

الأمر head

 إظهار بداية ملف ما يستعمل هكذا head -nx العلم أن "n" هو عدد و "x" يكون إما :

l : السطور

c : الحروف
head -14l file.txt

يعني هذا الأمر : أظهر السطور 14 الأولى من الملف file.txt
head -55c file.txt

يعني هذا الأمر  : أظهر الحروف ال 55 الأولى من الملف المذكور ..

الأمر tail

هذا الأمر هو عكس الأمر السابق head حيث يبدأ من آخر الملف يكتب هكذا :

tail + (-) NX filename

+n  : تعني من  العدد n  إلى الآخر
-n   :  تعني خذ من أخر الملف n سطر أو حرف
مثال: أظهر الخمسة حروف الأخيرة من الملف

tail -5c file.txt


مثال: أظهر السطور ابتداء من السطر 66 حتى النهاية
tail + 66L file.txt

مثال: إعرض ما بين السطرين 15 و 20 من الملف file.txt
head -20l text.txt | tail + 15L

الأمر wc

هذا الأمر يمثل عداد الكلمات ( word counter ) سنأخذ أهم استعمالاته فقط .
مثال : أحسب عدد كلمات الملف  file.txt
wc -w file.txt

مثال : أحسب عدد حروف الملف  file.txt

 wc  -c file.txt
لإستعمال wc كعداد أسطر لملف معين الخيار -c كما في الأمر التالي :
wc -l file.txt

طيب الأن سننتقل إلى بعض الأوامر التي يمكن أن تكتب كتب كاملة حولها و ليس تدوينة أو إثنين ^^ سأحاول الوصول إلى أهم استعمالاتهم فقط ..

الأمر sort

لشرح طريقة عمل هذا الأمر فسنستعين بملف، وليكن اسمه file، يحوي الأسطر التالية:
3rabGeeks
samir
ahmad
ali
muhammad
geeks
test
كما ترون كل سطر يحوي اسما. لنستخدم أمر sort لترتيب هذه الأسماء :
sort file

النتيجة هي ظهور الأسطر مرتبّةً ترتيبا ألفبائيا. إن أردنا الاحتفاظ بهذه النتيجة في ملف جديد فيمكننا ذلك عن طريق إعادة توجيه نتيجة الأمر أعلاه كما يلي:
sort file > sorted_file
العلامة < تعني أننا نُريد أن نحتفِظ بناتج الأمر قبلها (sort file) في ملف اسمه sorted_file. إذا كان هذا الملف موجودا في مجلّد العمل فإن مُحتواه سيُبدل بناتج الأمر sort file، إما إن لم يكن موجودا فإنه سيُنشأ. استخدام علامة < ليسَ خاصا بأمر sort.

خيار r- لقلب الترتيب

إذا أردنا قلبَ الترتيب فالخيار r- يفي بهذا الغرض:
 sort -r file
 النتيجة هي ظهور الأسطر مرتبّةً ترتيبا ألفبائيا معكوس .

خيار n- للترتيب العددي


في الفقرات السّابقة كان مُحتوى الملف نصيا، ماذا لو كان لدينا أعداد بدلا من كلمات أو جمل ؟ فلنجرِّب.
محتوى الملف الآن هو كالتالي:
5
2
12
1
8
56
نُنفِّذ الأمر
sort -n file
الترتيب هنا سيكون ترتيب ألفبائي ولكنّنا نبحث عن الترتيب العددي، لذلك نستخدم الخيار n- :
 sort -n file
 و النتيجة ستكون ترتيب الأعداد من الأصغر إلى الأكبر .
يمكننا الأمر sort كذلك من إلغاء الأسطر المتكرّرة وذلك باستخدام خيار u- كما يلي:
 sort -u file
 نتوقف هنا مع الأمر sort .

الأمر grep


grep هي أداة تستخدم للبحث في الملفات النصية أو المعطيات من برنامج أخر في نظام لينكس و أظهار الأسطر الموافقة للتعبير (Regular Expression)  إلى الشاشة أو حفظها في ملف نصي .
و أريد أن أؤكد أن فهم أداة grep يمتد إلى فهم ال  Regular Expression .
إلى من أراد الإطلاع على ال   Regular Expression فيمكنه إلقاء نظرة على هذا الرابط :

الاستخدام الأساسي :

  • البحث عن كلمة في ملف نصي :

grep "localhost" file.txt
سيقوم هذا الأمر بالبحث عن الأسطر المحتوية على الكلمة "localhost" في الملف "file.txt" .
  • البحث في معطيات برنامج :

ls -l | grep "root"
بواسطة الحرف ( | ) الذي يقوم بتحويل معطيات الأمر ls إلى الأمر grep  الذي يبحث عن الكلمة root في المعطيات .

 إستعمال الأمر grep مع  التعبيرات المنتظمة (Regular Expressions) :

  • البحث عن كلمة في بداية السطر :

grep "^google" file.txt
باستخدام الإشارة  ^  سيظهر الأمر الأسطر التي تبدأ بالكلمة google فقط .
  • البحث عن كلمة في نهاية السطر :

grep "root$" file.txt
باستخدام الإشارة $ سيطبع البرنامج الأسطر التي تنتهي بالكلمة root .
  • أظهار عدد الأسطر الفارغة في الملف :   

grep -c "^$" file.txt
بدمج الإشارتين ^$ سيبحث البرنامج عن الأسطر الفارغة ويطبع عدد الأسطر الفارغة وفي حالة  كتابة الأمر كالتالي $root^ بدون الأمر c- سيطبع البرنامج الأسطر المحتوية على الكلمة root فقط .
  • استخدام أشارة النقطة ( . ) في البحث :

grep "root." file.txt
يقوم البرنامج باستبدال النقطة بحرف واحد و البحث عن الكلمات المتوافقة في هذه الحالة سيبحث البرنامج عن الكلمات(rooto,root1,rootg,....) .

  • استخدام أشارة النجمة ( * ) في البحث :

ls -l |grep "*.txt"
تختلف هذه الإشارة عن سابقتها في أنها لا تحدد عدد الأحرف ,ففي الأمر السابق قمنا بتحويل معطيات الأمر ls إلى البرنامج وباستخدام ( * ) سيطبع البرنامج الملفات المنتهية بالامتداد txt كالتالي (a.txt, abc.txt , ab1.txt , aaa111.txt,.....).

  • استخدام أشارة  ( +\ ) في البحث :

grep "hi \+hello" input.txt
ستعرض هذه الإشارة الأسطر التي تحتوي على الكلمتين  hi و hello و يفصل بينها حرف مسافة واحد على الأقل أو أكثر , و ستكون المعطيات كالتالي :
  1. hi hello
  2. hi      hello
  3. hi   hello
و تستطيع وضع أي حرف بدل المسافة كالتالي :

grep "hih\+hello" input.txt
.(hihhello,hihhhhello,....) و ستكون النتائج كالتالي

  • البحث عن النصوص المحتوية على الإشارات الخاصة بالبحث :

grep 127\.1\.1\.1 file.txt
لكي تستطيع البحث عن الكلمات المحتوية على الإشارات الخاصة بالبحث (*,.) يجب أن تسبقها بالإشارة (\), كما في الأمر السابق حيث سنبحث عن عنوان الأي بي :127.1.1.1   .
  • البحث ضمن مدى معين من الأحرف باستخدام [ ] :

grep "user[1-5]" input.txt
grep "user[a-zA-Z]" input.txt
grep "user[acey123]" input.txt
في المثال الأول سيقوم البرنامج بعرض الكلمة user المنهية بالأرقام برقم واحد من مجموعة الأرقام 1 إلى 5 كالتالي (user1,user2,....), أما في المثال الثاني سيعرض البرنامج الكلمة user المنتهي بحرف واحد من المجموعة a إلى z و A ألى Z , و في المثال الأخير قمنا بتحديد الأحرف بشكل فردي من المجموعة الحروف التالية (a,c,e,y,1,2,3) التي ستكون في نهاية الكلمة user.
  • استخدام التعليمة {\}\ :

grep "A\{2,5\}" input.txt
سيقوم هذا الأمر بالبحث عن الأسطر المحتوية على مجموعة تتكون من حرفين A ألى خمس أحرف كحد أقصى كالتالي (AA,AAA,..) , تستطيع دمج هذه التعليمة مع التعليمة "[]" كالتالي :
grep "[0-9]\{9\}" input.txt
grep "th[a-z]\{2,5\}" input.txt
grep "h\{3,}" input.txt
grep "h\{,5}" input.txt
في المثال الأول سيقوم البرنامج بالبحث عن الأرقام المكونة من 9 أرقام تلاحظ أننا وضعنا رقم واحد في الإشارة "\{\}" , أما في المثال الثاني سيبحث البرنامج عن الكلمات التي تبدأ بالحرفين th وتنتهي بحرفين أو خمس حروف على الأكثر , أما في المثال الثالث سيبحث البرنامج عن الكلمات التي تبدأ بالحرف h وتتكون من حرفين على الأقل أو أكثر , لاحظ كيف قمنا بكتابة الأمر , أما المثال الأخير فالبرنامج سيبحث عن كلمة تتكون من 5 أحرف على الأكثر .
  • عرض الأسطر التي لا تحتوي على كلمة معينة :

grep -v user1 input.txt
لعرض الأسطر التي لا تحتوي على الكلمة user1 يجب فقط أن تضيف المعامل "v-" بعد الأمر grep , كما تستطيع استخدام التعبيرات السابقة في هذا الأمر .

سأتوقف هنا مع هذا الأمر فيكفي أن تفهموا ما تم شرحه في هذا الدرس بنسبة لليوم ، أنا أعلم أن هناك بعض الأوامر المعقدة لكن هذه هي قوة نظام اللينكس يا سادة فما أن تتقن هذه الأوامر جيداً فستستطيع عمل ما يفعله شخص عادي في نصف ساعة في 10 ثواني فقط ! نعم تلك هي قوة سطر أوامر لينكس ;) فقط لاتبخلوا يا سادة و حاولوا أن تركزوا و تطبقوا ما أشرح و ستلاحظون تقدمكم يومياً  .
  في الدرس القادم سأواصل مع بقية أوامر التعامل مع الملفات نظراً لأهميته  .


أوامر لينكس أساسية للإستعمال اليومي جزء 2/4 Reviewed by MedEttayeb on يونيو 16, 2015 Rating: 5

ليست هناك تعليقات:

نموذج الاتصال

الاسم

بريد إلكتروني *

رسالة *

يتم التشغيل بواسطة Blogger.