اصطلاحات
أنا عارف إن كلمة اصطلاح دية بتعبرلك عن كل حاجة ملهاش معنى ... ومتأكد إنك ياما سألت ناس عاملين نفسهم بيعلموك ويقولولك هما اصطلحوا عليها كده ... اصبحت كلمة اصطلاح الوجه اﻵخر ﻷي شئ مالوش معني ... بس انا بأوعدك باسم اﻷمة وباسم الشعب ... إنه ﻷ .. خلاص جه اليوم اللي هتقول فيه ﻷ كفاية ...
انفع اروح مجلس الشعب صح !!!
أول اصطلاح :
انا قاعد اقولك مجلدات وملفات وشجرة مجلدات وهياكل متنظمة من المجلدات والملفات مرصوصة تحت بعضيها ... وحاجة كده جميلة قوي ... بس طبعا الالنواة بتتعاملش مع نظام الملفات بالطريقة دية خالص ... النواة متفهمش غير رقم اسمه ال inode بمعني file index ... والرقم ده فريد داخل نظام الملفات الواحد فقط ... بمعنى انه هيكرر في أكتر من نظام ملفات زي مثلا البارتيشين اﻷولاني عندك ext3 والبارتيشين التاني ext2 ... طبعا الرقم هيكرر .. ﻷنه زي موضحنا الرقم فريد داخل نظام الملفات الواحد فقط الخاص بالبارتشين كذا
طبعا النواة بمجرد متباصلها الرقم ده --- وينج يمين طبعا ---- هتعرف كل حاجة عن الملف ده
طبعا من كتر كلمة هتعرف مختش بالك إن الinode مفيهاش أهم معلومة الا وهي اسم الملف واسم المجلد الذي يحويه ... المعلوميتن دول بالذات موجودين داخل كل مجلد ... يعني كل لما هتعرض مجلد على انه ملف عادي هتلاقى جواه لسته أو قايمة بكل الملفات اللي جواها ... وبالتالي النواة هتستخد الدليلين دول في انشاء هذه الشجرة من الملفات بالطريقة اللي انت بتشوفها دية ... لو عايز تشوف الinode بتاع الملف استخدم الخيار i مع اﻷمر ls
تاني اصطلاح :
ما هو المسار ؟ طبعا كل كلامنا دلوقتي على الملفات وبالتالي كل ملف موجودة في شجرة معينة ... محتاجين مسار عشان نحدده .. بمعني إني انت لو عايز تعرض محتويات ملف نصي موجود مثلا في المجلد بتاعك هتقولhome/your-username/filename.txt /
واضح كده إني انت قاعد بتحدد الملف من خلال حاجة اسمها المسار صح كده ؟
زي ما كنت بتقول عالويندوز عندك فيلم على السي ... كنت بتحدده كده c:\my_movie.asf
دلوقتي بقى فيه حاجة عجيبة ... هو ازاي اﻷوامر اللي كنا قاعدين نستخدمها بتشتغل لوحديها من غير ما تعرف القشرة هي مكانها فين ... بالمسار الكامل يعني .. ازاي كانت بتعرف ؟؟
طبعا الموضوع ولا سحر ولا شعوذه ... كان فيه متغير يحتوي على كل المجلدات اللي هتقعد تدور فيها القشرة لغاية لما تشغل اﻷمر بتاعك ...
يعني مثلا أمر زي ls بنكتبه فبيتنفذ علطول من غير ما تشتكي القشرة وتقولك انا عايزة المسار الكامل
ولو عايزين نعرف المسار الكامل ﻷي أمر نستخدم اﻷمر which
الخيار a عشان يعرض كل الملفات اللي باﻷسم ده .. مش أول واحد بس ... الخيار ده مهم وتفصيله قادم في السطور القادمة
طيب ايه هو المتغير ده ... المتغير ده من اوائل المتغيرات اللي هتعرفها خاصة بالقشرة ... هو اسمه PATH$ وموجود فيه كل المجلدات اللي بتدور فيها القشرة على أي امر انت بتكتبه
طيب اشوف اللي جواها ازاي ... بسيطة استخدم اﻷمر echo
طب انا دلوقتي عايز ازود مجلدات القشرة تدور فيهم ... استخدم اﻷمر export
طبعا واضح إني احنا بنضيف على قيمة المتغير نفسه PATH$ وبعدين بنحط الفاصل المعتمد لمتغير المسار : وبعدين بنزود الللي احنا عايزينه .. ومن غير كده طبعا انت هتمسح كل اللي متسجل جوة المتغير وهيتبقى بس اللي انت ضفته ...
لكن طبعا مش هقولك نزل ويندوز لو غلطت الغلطة دية ... التغير ده مش دائم .. ده تغير مؤقت خاص بالجلسة اللي انت قاعدها على القشرة دلوقتي ... وبمجرد ما هتخرج وترجع تاني وتشوف المتغير ده بقى جواها ايه ... هتلاقيه رجع ﻷصله بالظبط ... وتغييرك مش موجود
طب والعمل ؟
لازم تغير في ملفات الباش نفسها وتعدل المتغير ده ... بحيث يبقى متعرف زي ما انت عايز
ازاي ؟
من المفضل بلاش دلوقتي ...
قبل ما نسيب اﻷصطلاح ده ... عايزين ننوه لحاجة !!
مدام طبعا سيبنالك التعديل على البحري في متغير المسار ده ... اكيد متوقع إني انت تسمي اسم للملف بتاعك يتصادف إنه نفس اﻷسم للأوامر واﻷدوات اﻷساسية لنظام الباش ... هيحصل ايه ؟
طبعا الباش هتقول يا واد طنش خالص ... ولا اكن فيه حاجة حصلت وبمجرد ما هتوصل للملف اللي متكرر مرتين وتوصل لأول تكرار فيهم ... هتنفذه من غير تفاهم ... وانت وحظك بقى لو هو الملف اللي انت كنت عايزه مش هتحس بحاجة ... اما لو كان الملف اللي هو وظيفته مختلفة هتلاقى عبط طبعا ....
دلوقتي انت اخترت تعمل برنامج وبسخافتك قلت اسميه ls ... عاشت اﻷسامي يا سيدي ... ما هي خلصت اﻷسامي عشان تختار اﻷسم اللي هو اشهر اداة في الباش ...
طبعا حضرتك بتشتغل في مجلد معين وليكن test ... فقلت اضيف المجلد ده لمتغير المسار PATH ... وبالفعل دلوقتي كتبت ls ودوست انتر ... ايه اللي هيحصل ؟
زي ما قولتلك لو الملف اللي انت عالمه بأيديك هو اللي اتلاقى اﻷول هو اللي هيشتغل ... متلاقش اﻷول هينفذ وظيفة برنامج ls ويقعد يعرض محتويات المسار الحالي ... وحضرتك طبعا تفتكر إن ده اختراع وتتطلع في الصحافة العربية وتقول أول شاب يبرمج برامج بالنية ويتحدى نظام اللينكس وويوفر بديل متاح ... انها العقول الملوخية التي لو توفرت لها امكانيات ... وووو ...وبلادي بلادي بلادي ... لك فخري واعتزازي
انا آسف بجد على الفاصل السخيف ده .. بس اعمل ايه ... احنا بقينا في زمن اللي بيولع فيه الفرن يبقى اخترع ... كلمة اخترع بقت سهلة قوي مش عارف ليه ؟؟؟
تالت اصطلاح :
خاص برده بالمسار ... طبعا احنا متعودين إني احنا نعرض المجلدات والملفات من اول ما بدأنا بأمر ls -al ... وطبعا لاحظت إن اﻷمر ده بيعرض كل حاجة ومعاه نقطة وبعدين نقطتين ... يمكن مختش بالك أو خت بالك ... دول هما مقدمة موضوع المسار النسبى والمسار المطلق
--ملخوظة جانبية --
الملفات والمجلدات المخفية تكون مسبوقة بنقطة ايضا .. وهذه ملحوطة خارج السياق
بمعني اني انت دلوقتي بعد لما عرفت إني أمر ls موجود في المجلد bin ممكن دلوقتي تروح هناك المجلد ده وتشغل اﻷمر ls من هناك ... ازاي؟
هو ده المسار النسبي ... النقطة بتعبر عن المسار الحالى والنقطتين بتعبر عن المسار اﻷعلى
بمعني إني انت داخل أي مسار حالى ... طبعا بتعرفه عن طريق امر pwd ... بيبقى ليك حاجتين مرتبطين بيه ﻷما نقطة ... ودية بتعبر عن المجلد اللي انت واقف عليه حاليه ... ﻷما نقطيتن ودية بتعبر على المجلد اللي فوقيه
متلخبط ؟
يعني شوية ... بص يلا نرجع تاني لمثال أمر ls .. مش عايزين نعتمد على متغير المسار وعايزين نشغله من مكانه .. نعمل كده ازاي !
طيب دلوقتي عايز افهم ازاي النقطتين بيشاورو على المجلد اﻷعلى ... بسيطة
وبكده ننتهي بعنوانين مهمين ... العنوان اﻷولاني هو المسار النسبي ... وهو عملية نسب الملف للمجلد الحالى ...
والعنوان التاني ... هو المسار المطلق ... هو عملية تحديد الملف من أول الشجرة /
مثلا bin/ls /
انفع اروح مجلس الشعب صح !!!
أول اصطلاح :
انا قاعد اقولك مجلدات وملفات وشجرة مجلدات وهياكل متنظمة من المجلدات والملفات مرصوصة تحت بعضيها ... وحاجة كده جميلة قوي ... بس طبعا الالنواة بتتعاملش مع نظام الملفات بالطريقة دية خالص ... النواة متفهمش غير رقم اسمه ال inode بمعني file index ... والرقم ده فريد داخل نظام الملفات الواحد فقط ... بمعنى انه هيكرر في أكتر من نظام ملفات زي مثلا البارتيشين اﻷولاني عندك ext3 والبارتيشين التاني ext2 ... طبعا الرقم هيكرر .. ﻷنه زي موضحنا الرقم فريد داخل نظام الملفات الواحد فقط الخاص بالبارتشين كذا
طبعا النواة بمجرد متباصلها الرقم ده --- وينج يمين طبعا ---- هتعرف كل حاجة عن الملف ده
- هتعرف نظام طلاحيات الملف ده
- هتعرف نوع الملف ده ... ملف عادى - مجلد - كارت صوت ...
- هتعرف المستخدم اللي عمله والمجموعة بتاعته
- هتعرف كل التواريخ الخاصة بيه ... انشاء -تعديل - آخر استخدام
- هتعرف حجم الملف
- هتعرف الروابط اللي بتشاور على الملف ده
- هتعرف جميع العناوين المتخزن فيها البيانات الخاصة بالملف ده ...
طبعا من كتر كلمة هتعرف مختش بالك إن الinode مفيهاش أهم معلومة الا وهي اسم الملف واسم المجلد الذي يحويه ... المعلوميتن دول بالذات موجودين داخل كل مجلد ... يعني كل لما هتعرض مجلد على انه ملف عادي هتلاقى جواه لسته أو قايمة بكل الملفات اللي جواها ... وبالتالي النواة هتستخد الدليلين دول في انشاء هذه الشجرة من الملفات بالطريقة اللي انت بتشوفها دية ... لو عايز تشوف الinode بتاع الملف استخدم الخيار i مع اﻷمر ls
andalusy@linux-box:~ $ ls -i
....................................
....................................
907709 bin
913015 Desktop
907682 public_html
913024 Mail
....................................
....................................
تاني اصطلاح :
ما هو المسار ؟ طبعا كل كلامنا دلوقتي على الملفات وبالتالي كل ملف موجودة في شجرة معينة ... محتاجين مسار عشان نحدده .. بمعني إني انت لو عايز تعرض محتويات ملف نصي موجود مثلا في المجلد بتاعك هتقولhome/your-username/filename.txt /
واضح كده إني انت قاعد بتحدد الملف من خلال حاجة اسمها المسار صح كده ؟
زي ما كنت بتقول عالويندوز عندك فيلم على السي ... كنت بتحدده كده c:\my_movie.asf
دلوقتي بقى فيه حاجة عجيبة ... هو ازاي اﻷوامر اللي كنا قاعدين نستخدمها بتشتغل لوحديها من غير ما تعرف القشرة هي مكانها فين ... بالمسار الكامل يعني .. ازاي كانت بتعرف ؟؟
طبعا الموضوع ولا سحر ولا شعوذه ... كان فيه متغير يحتوي على كل المجلدات اللي هتقعد تدور فيها القشرة لغاية لما تشغل اﻷمر بتاعك ...
يعني مثلا أمر زي ls بنكتبه فبيتنفذ علطول من غير ما تشتكي القشرة وتقولك انا عايزة المسار الكامل
andalusy@linux-box:~ $ ls -l
drwxrwxrwx 3 qasem users 4096 bin
drwxrwxrwx 2 qasem users 4096 Desktop
drwxrwxrwx 4 qasem users 4096 Documents
drwxrwxrwx 2 qasem users Mail
drwxr-xr-x 2 qasem users Music
drwxrwxrwx 4 qasem users Pictures
ولو عايزين نعرف المسار الكامل ﻷي أمر نستخدم اﻷمر which
andalusy@linux-box:~ $ which -a ls
bin/ls/
andalusy@linux-box:~ $
الخيار a عشان يعرض كل الملفات اللي باﻷسم ده .. مش أول واحد بس ... الخيار ده مهم وتفصيله قادم في السطور القادمة
طيب ايه هو المتغير ده ... المتغير ده من اوائل المتغيرات اللي هتعرفها خاصة بالقشرة ... هو اسمه PATH$ وموجود فيه كل المجلدات اللي بتدور فيها القشرة على أي امر انت بتكتبه
طيب اشوف اللي جواها ازاي ... بسيطة استخدم اﻷمر echo
andalusy@linux-box:~ $ echo $PATH
/home/andalusy/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/mit/bin
طب انا دلوقتي عايز ازود مجلدات القشرة تدور فيهم ... استخدم اﻷمر export
andalusy@linux-box:~$ export PATH=$PATH:/home/andalusy/test
طبعا واضح إني احنا بنضيف على قيمة المتغير نفسه PATH$ وبعدين بنحط الفاصل المعتمد لمتغير المسار : وبعدين بنزود الللي احنا عايزينه .. ومن غير كده طبعا انت هتمسح كل اللي متسجل جوة المتغير وهيتبقى بس اللي انت ضفته ...
لكن طبعا مش هقولك نزل ويندوز لو غلطت الغلطة دية ... التغير ده مش دائم .. ده تغير مؤقت خاص بالجلسة اللي انت قاعدها على القشرة دلوقتي ... وبمجرد ما هتخرج وترجع تاني وتشوف المتغير ده بقى جواها ايه ... هتلاقيه رجع ﻷصله بالظبط ... وتغييرك مش موجود
طب والعمل ؟
لازم تغير في ملفات الباش نفسها وتعدل المتغير ده ... بحيث يبقى متعرف زي ما انت عايز
ازاي ؟
من المفضل بلاش دلوقتي ...
قبل ما نسيب اﻷصطلاح ده ... عايزين ننوه لحاجة !!
مدام طبعا سيبنالك التعديل على البحري في متغير المسار ده ... اكيد متوقع إني انت تسمي اسم للملف بتاعك يتصادف إنه نفس اﻷسم للأوامر واﻷدوات اﻷساسية لنظام الباش ... هيحصل ايه ؟
طبعا الباش هتقول يا واد طنش خالص ... ولا اكن فيه حاجة حصلت وبمجرد ما هتوصل للملف اللي متكرر مرتين وتوصل لأول تكرار فيهم ... هتنفذه من غير تفاهم ... وانت وحظك بقى لو هو الملف اللي انت كنت عايزه مش هتحس بحاجة ... اما لو كان الملف اللي هو وظيفته مختلفة هتلاقى عبط طبعا ....
دلوقتي انت اخترت تعمل برنامج وبسخافتك قلت اسميه ls ... عاشت اﻷسامي يا سيدي ... ما هي خلصت اﻷسامي عشان تختار اﻷسم اللي هو اشهر اداة في الباش ...
طبعا حضرتك بتشتغل في مجلد معين وليكن test ... فقلت اضيف المجلد ده لمتغير المسار PATH ... وبالفعل دلوقتي كتبت ls ودوست انتر ... ايه اللي هيحصل ؟
زي ما قولتلك لو الملف اللي انت عالمه بأيديك هو اللي اتلاقى اﻷول هو اللي هيشتغل ... متلاقش اﻷول هينفذ وظيفة برنامج ls ويقعد يعرض محتويات المسار الحالي ... وحضرتك طبعا تفتكر إن ده اختراع وتتطلع في الصحافة العربية وتقول أول شاب يبرمج برامج بالنية ويتحدى نظام اللينكس وويوفر بديل متاح ... انها العقول الملوخية التي لو توفرت لها امكانيات ... وووو ...وبلادي بلادي بلادي ... لك فخري واعتزازي
انا آسف بجد على الفاصل السخيف ده .. بس اعمل ايه ... احنا بقينا في زمن اللي بيولع فيه الفرن يبقى اخترع ... كلمة اخترع بقت سهلة قوي مش عارف ليه ؟؟؟
تالت اصطلاح :
خاص برده بالمسار ... طبعا احنا متعودين إني احنا نعرض المجلدات والملفات من اول ما بدأنا بأمر ls -al ... وطبعا لاحظت إن اﻷمر ده بيعرض كل حاجة ومعاه نقطة وبعدين نقطتين ... يمكن مختش بالك أو خت بالك ... دول هما مقدمة موضوع المسار النسبى والمسار المطلق
--ملخوظة جانبية --
الملفات والمجلدات المخفية تكون مسبوقة بنقطة ايضا .. وهذه ملحوطة خارج السياق
بمعني اني انت دلوقتي بعد لما عرفت إني أمر ls موجود في المجلد bin ممكن دلوقتي تروح هناك المجلد ده وتشغل اﻷمر ls من هناك ... ازاي؟
هو ده المسار النسبي ... النقطة بتعبر عن المسار الحالى والنقطتين بتعبر عن المسار اﻷعلى
بمعني إني انت داخل أي مسار حالى ... طبعا بتعرفه عن طريق امر pwd ... بيبقى ليك حاجتين مرتبطين بيه ﻷما نقطة ... ودية بتعبر عن المجلد اللي انت واقف عليه حاليه ... ﻷما نقطيتن ودية بتعبر على المجلد اللي فوقيه
متلخبط ؟
يعني شوية ... بص يلا نرجع تاني لمثال أمر ls .. مش عايزين نعتمد على متغير المسار وعايزين نشغله من مكانه .. نعمل كده ازاي !
andalusy@linux-box:~ $ cd /bin
andalusy@linux-box:/bin $ ./ls
طيب دلوقتي عايز افهم ازاي النقطتين بيشاورو على المجلد اﻷعلى ... بسيطة
andalusy@linux-box:~ $ ls -l
.
..
bin
Desktop
andalusy@linux-box:~ $cd ..
andalusy@linux-box:/home$
وبكده ننتهي بعنوانين مهمين ... العنوان اﻷولاني هو المسار النسبي ... وهو عملية نسب الملف للمجلد الحالى ...
والعنوان التاني ... هو المسار المطلق ... هو عملية تحديد الملف من أول الشجرة /
مثلا bin/ls /
- مدونة قاسم
- لُجأو سجل لتعلق
- قراءة(1110)
