الثلاثاء، 20 مارس 2012

كتاب أوبونتور لينكس للمبتدئين

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

كتاب أوبونتو لينكس للمبتدئين للكاتب صبري عبدالله حسين , يقدم لك الخطوات الأولى في نظام لينكس أوبتونو (ubuntu) , من التركيب حتى تثبيت البرامج , و أن انصح بقراءته لمن يريد التعرف على لينكس و الانضمام لمستخدمي هذا النظام الرائع .

التعامل مع المصفوفات في لغة BASH

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

ستتعلم في هذا الموضوع كيفية التصريح و التعامل مع المصفوفات في لغة باش سكريبت في نظام التشغيل لينكس بأمثلة :

1 . التصريح عن مصفوفة :

يتم إنشاء مصفوفة عند تصريح عن متغير بهذه الصيغة :

name[index]=value
  • name : أسم المتغير .
  • index : قيمة الفهرس .
  • value : قيمة المتغير .
و هذا مثال عن أستخدام المصفوفات في هذا السكريبت:

#!/bin/bash

name[1]="mohmmed"

name[2]="salem"

name[3]="abdullah"

echo ${name[2]} #Print the value number 2

ترى في السطر الأخير أننا قمنا بطباعة القيمة و أستدعاءها بأستخدم "{}$"  .

2 . التصريح عن المصفوفة و تعيين جيمع قيمها في سطر واحد :

تستطيع التصريح عن مصفوفة و تعيين جيمع قيمها بواسطة الأمر declare كهذا المثال :

#!/bin/bash

declare -a name=("mohmmed" "salem" "abdullah")



echo ${name[2]}



3 .  طباعة جميع عناصر المصفوفة :

لطباعة جميع عناصر المصفوفة تستطيع أستخدام الحرف @  كقيمة للفهرس كهذا المثال :

#!/bin/bash

declare -a name=("mohmmed" "salem" "abdullah")



echo ${name[@]}



4 . طباعة طول المصفوفة :

لطباعة عدد عناصر المصفوفة تستطيع أستخدام الحرف "#" و "@" كهذا المثال :

#!/bin/bash

declare -a name=("mohmmed" "salem" "abdullah")



echo ${#name[@]}


و لعرض طول عنصر في المصفوفة كالتالي بأستخدام الحرف "#" و رقم الفهرس الخاص بالعنصر :
#!/bin/bash

declare -a name=("mohmmed" "salem" "abdullah")

echo ${#name[1]}


5 . الحصول على عدد من العناصر بواسطة البعد :

تستطيع أستخدام بأستخدام ترقيم العناصر طباعة العناصر المختارة كهذا المثال :
#!/bin/bash

declare -a name=("mohmmed" "salem" "abdullah")

echo ${name[@]:1:2}


سيتم طباعة العنصرين رقم 1 و 2 (تذكر أن ترقيم العناصر يبدأ من الصفر ).

6 . الحصول على جزء من العنصر :

للحصول على جزء من العنصر كهذا المثال :
#!/bin/bash

declare -a name=("mohmmed" "salem" "abdullah")

echo ${name[1]:1:2}


ستيم طباعة الحروف "al" فقط من العنصر 1 .

7. البحث و الأستبدال في المصفوفة :

للبحث عن قيمة في المصفوفة و أستبدالها تستطيع أستخدام الطريقة التالية :
#!/bin/bash

declare -a name=("mohmmed" "salem" "abdullah")

echo ${name[1]/salem/ahmed}


استخدمنا "salem/ahmed/" حيث أبتدئنا بالقيمة التي نريد تغيرها ثم القيمة الجديدة .

8. أضافة عنصر لمصفوفة موجودة :
#!/bin/bash

declare -a name=("mohmmed" "salem" "abdullah")

name=("${name[@]}" "Ahmed") #هذا السطر سيضيف قيمة جديد للمصفوفة

echo ${name[3]}


لأضافة قيمة جديدة للمصفوفة تستطيع أستخدام الطريقة الموجودة في السطر الثالث في المثال .

9. حذف عنصر من المصفوفة:

لحذف عنصر تستطيع أستخدام الأمر unset كالتالي :
#!/bin/bash

declare -a name=("mohmmed" "salem" "abdullah")

unset name[1]


سيتم حذف العنصر رقم 1 من المصفوفة .


10 . البحث عن عنصر بواسطة القيمة و حذفه :

#!/bin/bash

declare -a name=("mohmmed" "salem" "abdullah")

echo ${#name[1]/salem*/}


 في السطر الثالث سيتم حذف القيمة التي تبدأ بـ"salem" أو تساويها من المصفوفة بسبب وجود النجمة في نهاية القيمة في المثال  ,طبعا للحفظ الناتج يجب أتباع الخطوات في التالي بأستخدام الأمر declare :

#!/bin/bash

declare -a name=("mohmmed" "salem" "abdullah")

declare -a  name2=(${name[1]/salem*/})



11 . حذف مصفوفة كاملة :

لحذف مصفوفة بكملها تستطيع أستخدام الأمر unset كالتالي :
#!/bin/bash

declare -a name=("mohmmed" "salem" "abdullah")

unset name



 12 . أستخدام الحلقة التكرارية for للتعامل مع المصفوفات :

تستطيع أستخدام الحلقة التكرارية for للوصول لعناصر المصفوفة كهذا المثال :
#!/bin/bash
declare -a name=("mohmmed" "salem" "abdullah")

for i in ${name[@]}

do
echo $i > filetxt.txt
done


في هذا المثال سيتم حفظ قيم المصفوفة في الملف filetxt.txt .


هذا نهاية هذا المقال و أذا كان لديك أخي القارىء أي أضافة أو تعديل أو سؤال فلا تتردد شاركنا .

الجمعة، 9 مارس 2012

لينكس : الأمر tr بالأمثلة

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

يستخدم الأمر tr للبحث عن نمط معين في النصوص و أستبداله أو حذف من النص و يكون شكل الأمر  كهذا المثال :
echo "linux" | tr "l" "L"
  • tr  : الأمر tr
  • "l" : المجموعة الأولى و التي يتم البحث عنها في الكلمة "linux".
  • "L": المجموعة الثانية و التي سيتم أستبدالها مكان المجموعة الأولى .
هذا هو الشكل العادي للأمر tr و يمكن أستبدال أكثر من حرف أو مجموعة أحرف معرفة من قبل البرنامج كالتالي :

cat file1 | tr "ael" "AEL"

لحذف مجموعة من الأحرف تستطيع أستخدام الوظفية "d\" كهذا المثال :

echo "linux" | tr -d "l" 

هذا هو الشرح البسيط لهذه الأداة , و تحتوي هذه الأداة على مجموعات من الأحرف المعرفة لحفظ الوقت :

  • [:alnum:] :جميع الأحرف و الأرقام .
  • [:alpha:]  : جميع الأحرف الإنجليزية a-z و ِA-Z (بدون الأرقام )
  • [:blank:]  : الأسطر الفارغة .
  • [:cntrl:]   : حروف التحكم ( لا تظهر هذه الأحرف للمستخدم ) مثل (Ctrl+c) .
  • [:digit:] : الأرقام من 0 إلى 9 .
  • [:graph:] : جميع الحروف المطبوعة ما عدا المسافات .
  • [:lower:] : محموعة الأحرف من a-z 
  • [:upper:] : مجموعة الأحرف من ِA-Z
  • [:space:] : المسافة .

الخميس، 8 مارس 2012

لينكس : الأمر wc

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

يستخدم الأمر wc للتقديم أحصائيات عن أعداد الأحرف و الكلمات و الأسطر في الملفات النصية و هذه قائمة بمجموعة من الوظائف الموجودة في هذا الأمر :
  • c-       : طباعة عدد البت "bits" الموجودة في الملف, و يمكن أستخدمه على الملفات الثنائية "binary" .
  • m-      : طباعة عدد الأحرف .
  • w-      : طباعة عدد الكلمات .
  • l-        : طباعة عدد الأسطر .
  • L-       : طباعة عدد أحرف أطول سطر .
  • help-- : طباعة المساعدة الخاصة ببرنامج .
و هذا مثال لطباعة عدد الأحرف و الكلمات و الأسطر و البايت للملف file.txt :

wc -cwml examples.desktop

9  12 179 179 examples.desktop


و هذا تفصيل المخرجات بالترتيب ( لن يتغير ترتيب البيانات مع تغير ترتيب الوظائف):

  • 9 : عدد الأسطر .
  • 12 : عدد الكلمات
  • 179: عدد الأحرف.
  • 179:عدد البت .

الأربعاء، 7 مارس 2012

لينكس : الأمر cat بالأمثلة

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

يستخدم الأمر cat في لينكس لعرض و الأضافة للملفات النصية , و سوف أعرض أستخدامات الأمر cat بالأمثلة :

  • عرض محتويات ملف نصي :
cat text_file.txt

سيتم طباعة محتويات الملف النصي text_file.txt للشاشة .

  • نسخ محتويات ملف و حفظها في ملف جديد أو موجود :
cat text_file.txt > new_file.txt

سيتم طباعة محتويات الملف text_file.txt و تحويل البيانات للملف new_file.txt بواسطة الأشارة < .

  • دمج الملفات :
cat file1.txt file2.txt > new_file.txt

سيتم طباعة الملفات الموجودة بحسب الترتيب و أضافتها إلى الملف الجديد "new_file.txt" .

  • الأضافة لملف نصي موجود :
cat >> file.txt

سيتم أضافة النص الذي يتم طباعته إلى الملف file.txt إلى أن يقوم المستخدم بضغط "Ctrl+C" .

  • أنشاء ملف جديد و أضافة نص إليه :
cat > file.txt
 
سيتم أنشاء الملف file.txt و في حالة وجوده سيتم حذف النص الموجود و أضافة النص من قبل المستخدم إلى ان يتم ضغط "Ctrl+C" .
 
  • طباعة ملف نصي مع ترقيم الأسطر :
cat -n file.txt
 

الأحد، 4 مارس 2012

تنزيل الفيديو من مواقع HTML5

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

لتنزيل الفيديو من المواقع التي تعمل بتقنية HTML5 ( و منها موقع اليوتيوب )تستطيع أستخدام هذه الطريقة في متصفح فايرفكس :

  • أضغط على في الصفحة بأستخدام زر الماوس اليمين , ستظهر لك القائمة التالية :
  • من القائمة أختر "media" , و أبحث في القائمة عن ملف يكون من النوع فيديو :
  • أضغط على زر "Save As" , و قم بتغير الملف إلى الامتداد "flv" :

تثبيت متصفح قوقل كروم في ubuntu 11.12

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

لتثبيت متصفح قوقل كروم في نظام تشغيل ubuntu أتبع هذه الخطوات :

  • قم بتنزيل المتصفح من هذا الرابط .
  • من موجه الأوامر قم بتفيذ الأمر التالي بعد تغير المجلد الحالي للمجلد الذي يوجد فيه الملف deb الخاص بالبرنامج 
 
sudo dpkg -i google-chrome-stable_current_i386.deb

  • لتثبيت المكتبات اللازمة لتشغيل المتصفح قم بتفيذ الأمر التالي :
sudo apt-get install -f

الخميس، 1 مارس 2012

تعلم لغة Prolog

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

هذه مجموعة من الدروس للغة prolog حصلتها في موقع اليوتيوب للدكتور عبد الله المطوع (جزاه الله خيراً) , و لمن لا يعرف لغة Prolog فهي لغة برمجة منطقية تهتم بالعلاقات بين البيانات و ترابطها , و تستخدم في برامج الذكاء الأصطناعي , و هذا رابط الصفحة الخاص بالمادة التعليمية

 http://www.youtube.com/user/DoctorMutawa/videos?query=prolog 

و هذا مقال لكيفية تثبيت مترجم اللغة في ubuntu :

الاثنين، 27 فبراير 2012

كتاب "تعلم البرمجة لغير المبرمجين"

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

 كتاب "Programming for Non-Programmers" يقدم لك البرمجة باللغة البايثون بطريقة سهلة  و بسيطة مع شمولية في التتطرق لجوانب البرمجة و تطبيقاتها , و أنا أنصح به أي شخص يريد البدأ في تعلم البرمجة بواسطة لغة البايثون , و لكن يلزمك معرفة باللغة الأنجليزية .

* الكتاب منشور تحت ترخيص "Creative Commons License"
لتنزيل الكتاب :