المكتبة الأمبوابة البحث والمعرفة
زائر للمكتبة—
← العودة إلى المكتبةقراءة أو تحميل الكتاب

أمن المعلومات وإدارة مخاطر تقنية المعلومات

غير معروف

صفحة ٣٤ من ٤٩

البرمجة النصية لقشرة نظام التشغيل 529 إن اس ومعقد أمر أساسي في تصميم نظام ينكس. وقد لخص المطور الأساسي لنظام إعادة توجيه Doug McIlroyت والمخرجات في ينكس، دوغ ماكل�المدخ « تعمل مع الصحيح .)2لأن ذلك يعدّ واجهة شاملة معالجة النص: ولأن اس التش الجيش نتي يسالس ووص حجمه. أمر القص ستجد نفسك تتعامل غالباً مع بيانات عمودية تستخدم شكلاً من أشكال الفواصل، مثل علام أمر القص تحتاج إليه فقط. وفي هذا المثال سنستخدم ملف جداول البيانات إكسل الذي يحتوي على بيانات مفصولة )، كما يحتوي على الحقول التالية: الاس Comma-Separated Value( )CSVبفواصل الأول، واس : ي من خلال ما ينالإلكتروني لجميع المستخدم )2( Peter, S. A Quarter-Century of Unix, Addison-Wesley, 1994

عدد الصفحات ٥٣٠

الفصل العا 530 [alice@sunshine ~]$ head -3 /opt/book/scripting/users.csv Ian,Cook,ian.cook,ian.cook@sunshine.edu Christine,Riggs,christine.riggs,christine.riggs@sunshine.edu Lindsay,Fishbein,lindsay.fishbein,lindsay.fishbein@sunshine.edu [alice@sunshine ~]$ cut -d, -f4 /opt/book/scripting/users.csv ian.cook@sunshine.edu christine.riggs@sunshine.edu lindsay.fishbein@sunshine.edu . . . كما نس grep( [alice@sunshine ~]$ cut -d, -f1,2,4 /opt/book/scripting/users.csv | grep john John,Jayavelu,john.jayavelu@sunshine.edu Jennifer,Johnson,jennifer.johnson@sunshine.edu John,Altier,john.altier@sunshine.edu وكما ترى فإنه تم اس السجلات التي تحتوي فقط على نص أمر الفرز أمر الفرز

عدد الصفحات ٥٣١

البرمجة النصية لقشرة نظام التشغيل أمن المعلومات وإدارة مخاطر تقنية المعلومات53( [alice@sunshine ~]$ cat /opt/book/scripting/words.txt eyes record explosive spice prison videotape leg ice magnet printer [alice@sunshine ~]$ sort /opt/book/scripting/words.txt explosive eyes ice leg magnet printer prison record spice videotape ونلف يجب استخدام المفتاح

عدد الصفحات ٥٣٢

الفصل العا 532 [alice@sunshine ~]$ sort /opt/book/scripting/numbers.txt 1 1002 1234567 356 4 8675309 99 [alice@sunshine ~]$ sort -n /opt/book/scripting/numbers.txt 1 4 99 356 1002 1234567 8675309 أمر إزالة السطور المكررة وظيفتها، فإن الأمر �ها ع�وبمواصلة الحديث عن الأوامر البس uniq( في السطور المجاورة للعثور على التكرار لذا يجب في البداية فرز المدخلات

عدد الصفحات ٥٣٣

البرمجة النصية لقشرة نظام التشغيل 533 [alice@sunshine ~]$ cat /opt/book/scripting/duplicates.txt apple banana orange orange kiwi banana kiwi apple [alice@sunshine ~]$ sort /opt/book/scripting/duplicates.txt | uniq apple banana kiwi orange أمر الاستبدال يقوم الأمر بح :ي) عند وجودها في ملف نصي من خلال ما يبالحروف

عدد الصفحات ٥٣٤

الفصل العا 534 alice@sunshine ~]$ cat /opt/book/scripting/original.txt The quick brown fox jumps over the lazy dog. [alice@sunshine ~]$ cat /opt/book/scripting/original.txt | tr »abc« »xyz« The quizk yrown fox jumps over the lxzy dog. [alice@sunshine ~]$ cat /opt/book/scripting/original.txt | tr -d »abc« The quik rown fox jumps over the lzy dog. ة في النص إلى حروف�) هي تحويل الحروف الصغ والوظيفة الأكثر ش بالعكس: كبيرة و alice@sunshine ~]$ cat /opt/book/scripting/original.txt | tr »[:lower:]« »[:upper:]« THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. من مجموعات الرموز، وهي عبارة عن طريقة[:upper:] و[:Iower:]وتُعد المجموعات التوالي. وللحصول على قائمة كاملة �سريع لمجموعات الرموز، انظر صفحة الأمر المتغيرات: هو تمثيل لجزء من البيانات (رقم، اس�المتغ جهاز الحاسب الآلي. ولإنشاء متغير جديد نحتاج فقط إلى اسم المتغير والبيانات التي يمثلها: قيمة تلك البيانات.

عدد الصفحات ٥٣٥

البرمجة النصية لقشرة نظام التشغيل 535 [alice@sunshine ~]$ myVariable=20 [alice@sunshine ~]$ echo $myVariable 20 قيمة المتغير. ولذلك فإننولا يسمح بالمسافات بعد أو قبل علامة يساوي (=) عند تعي نتيجة العبارات التالية كلها ستكون خاطئة: [alice@sunshine ~]$ myVariable = 20 [alice@sunshine ~]$ myVariable =20 [alice@sunshine ~]$ myVariable= 20 نص أو متغير آخر كقيمة للمتغنويمكنك أيضاً تعي [alice@sunshine ~]$ hello=»Hello World« [alice@sunshine ~]$ world=$hello [alice@sunshine ~]$ echo $hello Hello World [alice@sunshine ~]$ echo $world Hello World نن مخرجات أحد الأوام�اً يمكنك تعي�وأخ commandن وعلامة الدولار $()، والمعروفة باس�الأمر باس expansion

عدد الصفحات ٥٣٦

الفصل العا 536 [alice@sunshine ~]$ now=$)date( [alice@sunshine ~]$ echo $now Wed Dec 19 10:41:40 EST 2012 1-10 الجدول النتيجةمثالالوصفالعامل 5+5(($(0 ))طرح(5(($4 2*3(($6 2/(0(($5 3%(0(($( 2**6(($36 يمكنك أيضاً القيام بالعمليات الحس�ك � )) والتي تش ) وذلك باستخدام $((دون كسور) في قشرة نظام التشغيل ) قائمة بالعمليات (-(0إلى التمديد الحسا الحسابية التي يمكن القيام بها في قشرة نظام التشغيل

عدد الصفحات ٥٣٧

البرمجة النصية لقشرة نظام التشغيل 537 [alice@sunshine ~]$ myVariable=20 [alice@sunshine ~]$ myBigVariable=$)) $myVariable * 100 (( [alice@sunshine ~]$ echo myBigVariable 2000 [alice@sunshine ~]$ echo $)) $myBigVariable + 1 (( 2001 الاقتباس علامتن ب�وض ›) يؤدي إلى استخدام اسم المتغير حرفياً بدلاً من استبدال قيمة المتغير. ‹التنصيص المفردة ( قائمة bin/bash name=Alice echo »My name is $name and the date is $)date +%m-%d-%Y(« echo ‘My name is $name date is $)d ate +%m-%d-%Y(’ [alice@sunshine ~]$ /opt/book/scripting/quoting My name is Alice and the date is 122012-19- My name is $name and the date is $)date +%m-%d-%Y(

عدد الصفحات ٥٣٨

الفصل العا 538 وكما ترى فإن اس أن استبدال المتغير تم في السطر الأول. ولاحظ أيضاً أن التاريخ الحالي نالمتغير حرفياً، في ح اسم المتغير. ويتم تشغيل ن)$ دون الحاجة إلى تعيdate +%m-%d-% Y( �تم اس الأوام القيمة بشكل متجدد. متغيرات البيئة: بعض المتغيرات تُنشَ ت افتراضية �ات البيئي�وه للمس باستخدام الأمر [alice@sunshine ~]$ env HOSTNAME=sunshine.edu SHELL=/bin/bash USER=alice PATH= )/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/ sbin:/usr/sbin:/sbin:/home/alice/bin … PWD=/home/alice TERM=xterm وفي النتائج سترى عدة شاشات من البيانات، ومعظم تلك البيانات لها علاقة بالتطبيقات، 2-(0لكن هناك بعض المتغيرات التي تستحق الذكر (الجدول

عدد الصفحات ٥٣٩

البرمجة النصية لقشرة نظام التشغيل 539 ويمكن استخدام هذه المتغيرات في سطر الأوامر تماماً مثل المتغيرات العادية alice@sunshine ~]$ echo »My name is $USER and my current directory is $PWD« My name is alice and my current directory is /home/alice كما يمكننا الاس سبيل المثال، انظر القائمة قائمة bin/bash echo »Hello $USER« echo »You are calling this program from $PWD« echo »Your home directory is $HOME« ولأن متغيرات البيئة تُنشَ مخرجات متجددة تعتمد على المس عندما قامت أليس [alice@sunshine Desktop]$ /opt/book/scripting/env_variable_example Hello alice You are calling this program from /home/alice/Desktop Your home directory is /home/alice وهنا تجد المخرجات عندما قام بوب

عدد الصفحات ٥٤٠

الفصل العا 540 [bob@sunshine tmp]$ /opt/book/scripting/env_variable_example Hello bob You are calling this program from /tmp Your home directory is /home/bob 2-10 الجدول الوصفالمتغير المستخدم الحالي الدليل الرئيسي للمستخدم الحالي الدليل الحالي قائمة بالأدلة (مفصولة بنقطتين متعامدتين) والتي ستقوم قشرة نظام التشغيل بالبحث فيها عند البحث عن أحد التطبيقات PATH( ير�ويختل اس مباشرة من قبل قشرة نظام التش مثلاً إدخال فايرفوكس تبحث عن هذا الأمر في كل دليل مُدرج w hich(

عدد الصفحات ٥٤١

البرمجة النصية لقشرة نظام التشغيل أمن المعلومات وإدارة مخاطر تقنية المعلومات54( [alice@sunshine ~]$ which firefox /usr/bin/firefox [alice@sunshine ~]$ which ThisProgramDoesNotExist /usr/bin/which: no ThisProgramDoesNotExist in )/usr/lib/qt- 3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/ home/alice/bin( المتغيرات المدمجة BASHات البيئة، تحتوي قشرة نظام التش �بالإضاف ات المفيدة. وهذه المتغيرات مجتمعة تُدعى بالمتغيرات المدمجة. وتُقدم المتغيرات �المتغ المدمجة مجموعة واس يعمل ووصولاً لاس يمكننا الاختيار من بينها (انظر دليل قشرة نظام التش 3-(0سوف نعمل في هذا الكتاب على مجموعة صغيرة من تلك المتغيرات (الجدول ً على كيفية استخدام هذه المتغيرات. ويوضح النص البرمجي في القائمة

عدد الصفحات ٥٤٢

الفصل العا 542 :)قائمة bin/bash echo »This script is executing with process ID: $$« echo »OS: $OSTYPE Hardware: $MACHTYPE« echo »This is he current date and time:« date echo »The exit value from date was $?« echo »This command should fail:« ls -l NoFile echo »The exit value was $?« echo »Wait 2 seconds« sleep 2 echo »Here are 3 random numbers:« echo $RANDOM echo $RANDOM echo $RANDOM echo »Wait 3 seconds« sleep 3 echo »This script has run for $SECONDS seconds«

عدد الصفحات ٥٤٣

البرمجة النصية لقشرة نظام التشغيل 543 [alice@sunshine ~]$ /opt/book/scripting/builtin_variable_example This script is executing with process ID: 10380 OS: linux-gnu Hardware: i386-redhat-linux-gnu This is the current date and time: Wed Dec 19 11:41:40 EST 2012 The exit value from date was 0 This command should fail: ls: cannot access NoFile: No such file or directory The exit value was 2 Wait 2 seconds Here are 3 random numbers: 10549 319 20535 Wait 3 seconds This script has run for 5 seconds الوصفالمتغير $?اس تشير أي قيمة أخرى إلى وجود خطأ. وكل قيمة لها معنى مرتبط بتطبيق محدد. استعادة الرقم التعريفي للنص البرمجي الذي يعمل حالياً.$$ استعادة هيكلة الجهاز المستخدم استعادة نظام التشغيل المستخدم استعادة الفترة الزمنية بالثواني والذي عمل خلالها النص البرمجي الحالي استعادة رقم عشوائي بين

عدد الصفحات ٥٤٤

الفصل العا 544 الجمل الشرطية $ ووضحنا استعادة قيمة الخروج من آخر الأوامر التي ?استعرضنا في القسم السابق متغير $ يساوي?تم تشغيلها. ماذا لو كنت تريد أن تأخذ إجراء معيناً في حال نجاح الأمر ( أن تأخذ إجراء آخر في حال فش ف بناء صر المعينة ومن ثم الت طBASH( على نتيجة الاختبار الجملة الشرطية أبسط شكل من أشكال الجمل الشرطية هو شكل ات المقارنة. فإذا كانت قيمة الخروج تس�قيمة الخروج لسلس الأوامر في مقطع bin/bash if [ »$USER« = »alice« ] then echo »Good Morning, Alice!« fi وإذا كان المس ) فإنه يتم تنفيذ الأمرalice( )»$USER« = »alice«( شيئاً آخر فإن النص البرمجي ينتهي دون تنفيذ أي أمر إن بناء الجملة الشرطية . والخطأ الأكثر شيوعاً عند كتابة جملة )3عن بناء الجمل الشرطية في معظم لغات البرمجة BASH قشرة نظام التشغيل )3( http://tldp.org/LDP/abs/html/testconstructs.html

عدد الصفحات ٥٤٥