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

سكريبت لإعادة تسمية أكثر من ملف من نفس النوع

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

لإعادة تسمية أكثر من ملف من نفس النوع تستطيع أستخدام هذا السكريبت :
#!/bin/bash
#written by abgoor.blogspot.com
#under GPL license
 
if [ $# -ne 2 ];then

echo "Usage:<name><file type 'jpg'>"

exit 0

fi


counter=0

for i in *.$2

do

mv $i $1$counter.$2

counter=$((counter+1))

done

تستطيع أستخدام هذا السكريبت كالتالي :
./rename text txt

القيمة الأولى هي الأسم المستخدم و القيمة الثانية هي أمتداد الملفات التي تريد تغير أسمها و سيكون ناتج السكريبت ملفات مرقمة كالتالي :text1.txt و text2.txt و text3.txt إلى أخره .

aspell : كشف الأخطاء الأملائية في BASH

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

يستخدم الأمر aspell في موجه الأوامر للتدقيق الأملائي , وتستطيع أستخدمه كما في المثال التالي :
echo "Appele" | aspell -a

يستخدم "a-" لدلالة بان البيانات تأتي من pipe .

سيتم طباعة الكلمات الصحيحة بدل الكلمة Appele كالتالي:

& appele 23 0: Apple, apple, appeal, apply, appall, applier, appealed, Opel, apples, applet, Pele, appeals, appear, appease, dapple, rappel, ample, Adele, Aspell, ampule, appeal's, Apple's, apple's


و لتدقيق على البيانات من ملف يجب أستخدام الأمر كالتالي :

aspell check filename


تفعيل التغيرات في ملف .bashrc

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

يستخدم الملف bashrc. لحفظ الإعدادت و تفيضلات المستخدم لموجه الأوامر bash و لتفعيل التحديثات في ملف bashrc. بدون اعادة تشغيل موجه الأوامر تستطيع أستخدام الأمر source كالتالي :
source ~/.bashrc

الدوال في باش سكريبت "BASH Script"

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

  • ما هي الدالة ؟
الدالة عبارة عن مجموعة من الأوامر البرمجية التي يتم تنفيذها معاً

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

  • تعريف دالة :
لتعريف دالة يجب أستخدام الأمر function ثم أسم الدالة متبوعا بالقوسين () , ويتم تضمين النص البرمجي بين القوسين { } كهذا المثال :
function hello(){

echo "Hello,World!"

}

  • استدعاء الدالة :
لأستدعاء الدالة يجب كتابة أسم الدالة فقط بدون اﻷقواس:
function hello(){

echo "Hello,World!"

}

hello

  • تمرير الوسائط :
تستطيع أرسال المعلومات لدالة من برنامج بواسطة الوسائط كما في هذا المثال :

function hello(){

echo $1

echo $2

}


hello "Hello" "World"

  • تضمين الدوال في ملف :
تستطيع تضمين الدوال في ملف و أستدعاءها لبرامجك , و لتوضيح سننشأ ملف بأسم func1.sh يحتوي على الدالة hello التي قمنا بأستخدمها في مثالنا :

#!/bin/bash

#func1.sh

function hello(){

echo $1

echo $2

}

و سنقوم بأستدعاء الملف و تحميل جميع الدوال الموجودة فيه بأستخدام "." التي توازي الأمر include في لغة C :

#!/bin/bash

. func1.sh
hello "1" "2"


لا تنسى ان تضع مسافة بين النقطة و مسار الملف , كما تذكر في مثالنا أفترضت بأن الملف func1.sh في نفس المجلد التي يتواجد في السكريبت و لكن في حالة أخرى يجب ذكر المسار كاملاً .



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

كيف تصنع نظام تشغيل ؟

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

هذه مصادر لتعلم برمجة أنظمة التشغيل من الصفر ,لكن لازم يكون عندك تمكن من اللغة الأنجليزية و لغة السي و الأسمبلي و كيفية عمل الكمبيوتير :


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

الأقلاع (boot) من الفلاش

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

في موضوع سابق كتبت عن كيفية تثبيت لينكس على فلاش و قد رأيت أن أشرح كيفية تعديل البيوس "BIOS" للأقلاع من الفلاش بدل الهاردسك .

نظام البيوس "BIOS" : أختصار لـ"basic input output system" نظام الأدخال و الأخراج الاساسي , و هدف هذا النظام هو التهيئة لعملية الأقلاع , و كما يوفر نظام البيوس وظائف تستخدمها بعض أنظمة التشغيل للتخاطب مع الأجهزة .

أبحث عن الثغرات في موقعك

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

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

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

و هذه صورة لنتائج البحث في مدونتي :


الثلاثاء، 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:] : المسافة .