السبت، 25 فبراير 2012

لينكس :أدوات ضغط الملفات في موجه الأوامر

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

قمت في هذا المقال بجمع أدوات ضغط الملفات في لينكس و شرح لأستخدامها الأساسي :

gzip  (1
     يستخدم هذا الأمر لضغط الملفات كالتالي :

    gzip file.txt

    سيتم أنشاء ملف مضغوط بالأمتداد gz كالتالي "file.txt.gz" .

    أغرب أسم لأمر في لينكس !!


    "toilet" هو أمر حقيقي في سطر الأوامر في لينكس , رغم غرابة الأسم فهذا الأمر وظيفيته هو عرض كلمات من المبرمج بشكل رسومات ملونة كهذه الصورة :



    لتثبيت الأمر في ubuntu أستخدم الأمر التالي :



    sudo apt-get install toilet


    إنشاء شجرة مجلدات بأستخدام mkdir

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

    تستطيع أستخدام أمر mkdir لإنشاء شجرة مجلدات كالتالي :
    mkdir -p p1/{sub1,sub2,sub3}/{doc,src,bin}

    في هذا المثال سيتم أنشاء المجلد p1 ثم المجلدات sub1 و sub2 و sub3 و سيحتوي كل مجلد من المجلدات السابقة على المجلدات ( bin , src ,doc) .

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

    BASH:كود لعرض الملفات المحتوية على كلمة معينة

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

    هذا الكود البرمجي الذي يستخدم البرنامج find و grep للطباعة أسماء الملفات المحتوية على كلمة معينة من قبل المبرمج :

    find $HOME -type f -exec grep -q "void" {} \; -print

    و هذه مقالة كاملة عن الأمر find في لينكس (http://abgoor.blogspot.com/2010/10/find.html) .

    إيقاف خاصية تذكر كلمة السر في اﻷمر sudo

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

    يستخدم الأمر sudo في نظام لينكس لتنفيذ الأوامر بأستخدام حساب المستخدم الجذر "Root" و هو أقوى حساب في نظام لينكس كالتالي :

    sudo ls

    و في حالة تنفيذ الأمر sudo مرة أخرى في موجه الأوامر "terminal" لوقت محدد , سوف لن يطالبك البرنامج بكلمة السر , و لألغاء هذه الخاصية قم بأستخدام هذا الأمر :

    sudo visudo

    و أضف السطر التالي :

    Defaults    timestamp_timeout = 0


    الأحد، 12 فبراير 2012

    مجموعة من صيغ البحث بواسطة لينكس (Regular expression)

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

    هذه مجموعة من صيغ البحث ( Regular expression ) التي توصلت لها أو قرأتها في أحد المواقع و جمعتها في هذا الموضوع , و جميع هذه الصيغ تستخدم بواسطة الأداة grep :

    1 . البحث عن عناوين الأي بي :

    grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' example.txt

    2. العثور على روابط صفحات الأنترنت في النص :

    grep -o 'http://[^"]*' example.html

    3 . العثور على عناوين البريد الألكتروني :

    grep -o '[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*' test.txt

    ماسح لمنافذ البرتوكول UDP بواسطة البايثون

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

    هذا كود بسيط قمت ببرمجته لعرض المنافد المتاحة للبرتوكول UDP بأستخدام لغة البايثون :
    #!/usr/bin/python
    #abgoor.blogspot.com
    import socket
    import sys
    try:
        Site=sys.argv[1]
    except:
        print "<Site or IP address>"
        sys.exit(1)
    for i in range(0,65535): #the range of the ports
        sos=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
        sos.settimeout(0.1) #The time the program will wait for the connection
        sos.connect((Site,i))
        try:
            sos.send(b'H')
            sos.send(b'i')
        except socket.error:
            pass

        else:
            print "Port:%d"%(i)
        sos.close()
        del(sos)

    السبت، 11 فبراير 2012

    دمج ملف مضغوط مع سكريبت باش (BASH)

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

    قمت بترجمة مقالة وجدنها في هذا الموقع  (http://www.stuartwells.net/slides/selfextract.htm)  عن كيفية لإنشاء ملف مضغوط ذاتي التشغي بأتباع هذه الخطوات :

    1 . إنشاء ملف السكريبت :
    #!/bin/bash

    echo ""

    echo "Self Extracting Tar File"

    echo ""

    echo "Example by Stuart Wells"

    echo ""

    echo "Extracting file into `pwd`"

    SKIP=`awk '/^__TARFILE_FOLLOWS__/ { print NR + 1; exit 0; }' $0`


    #مسار و اسم الملف

    THIS=`pwd`/$0



    # إرسال البيانات المدمج إلى برنامج tar

    tail -n +$SKIP $THIS | tar -xz



    #
    # أي سكريبت بعد هذا السطر سيتم تنفيذه بعد أنتهاء فك ضغط الملف المدمج

    echo "Finished"

    exit 0

    # لا تضع أي سطور جديد بعد السطر التالي
    __TARFILE_FOLLOWS__

    الجمعة، 10 فبراير 2012

    البحث في wiki بواسطة برتوكول DNS

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

    يستخدم برتوكول DNS لتحويل أسماء المواقع من الصيغة المقرؤة مثل "www.example.com" إلى  "127.0.0.1" , و لكن قام أحد المطورين بأستخدام هذا البرتوكول كطريقة للبحث في موسوعة الأنترنت "Wiki" .

    و للبحث في لينكس تستطيع أستخدام الأمر dig في موجه الأوامر "terminal" الذي يستخدم للتعامل مع برتوكول DNS كالتالي :

    dig +short txt hacker.wp.dg.cx

    "Hacker may refer to: Hacker (computer security), someone involved in computer security/insecurity, Hacker (programmer subculture), a programmer subculture originating in the US academia in the 1960s, which is nowadays mainly notable for the free software/" "open source movement, Hacker (hobbyist), an enthusiastic home computer hobbyist http://a.vu/w:Hacker" 

    فقط قم بكتابة الكلمة المراد البحث عنها بعد الأمر dig , متبوعاً بالعنوان الألكتروني  "wp.dg.cx" , وللبحث عن أكثر من كلمة قم بفصل الكلمات بأستخدام "\" ثم مسافة كهذا المثال :

    dig +short txt C\ programming\ language.wp.dg.cx

    إنشاء القوائم في bash بواسطة الأمر select

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

    يوفر الأمر select إمكانية أنشاء قوائم للتفاعل مع المستخدم و تسهيل أستخدام البرنامج , و هذا مثال بسيط على أستخدام هذا الأمر :

    #!/bin/bash

    select opt in "Hello" "Exit" ; do

    if [ "$opt" = "Exit" ]; then
    echo Exit
    exit

    elif [ "$opt" = "Hello" ]; then
    echo Hello World


    else
    clear
    echo "Error"
    fi

    done