إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

كيف اشغل سكربت يونكس في لينكس

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • كيف اشغل سكربت يونكس في لينكس

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


    احتاج لتشغيل هذا السكربت في لينكس سوزي للتعلم حيث ان لدي مجموعة من السكربتات تعمل على Hp_unix واريد ان اقوم بفحصها وتجبرتها على لينكس ...حاولت بس ما أشتغل ...فأرجو المساعدة

    بأمكاني ادراج محتويات السكربت اذا أحببتم ...

    بألانتظار

  • #2
    أخي الفاضل

    ليس شرطاً أن يعمل السكريبت ، فكما تعلم السكريبت عبارة عن أوامر لينكس مجمعة ومرتبة بطريقة معينة لتقوم بهدف معين .

    كما أن الأوامر هي برامج ، فإن كان البرنامج غير مثبت لديك فكيف سيعمل ؟

    أمر آخر وهو أن الشل أنواع ولكل نوع خصائص قد ﻻ تتوافر في الأنواع الاخرى .

    أرجوا عرض السكريبت ليقوم الأعضاء بمساعدتك

    ومرحباً بك معنا

    أخوك محمد ،،،
    RHCE


    Before you asking


    for q in $(ls /usr/bin/)
    do man $q
    done

    تعليق


    • #3
      أهلا وسهلا اخي محمد ..

      السكربت عبارة عن قائمة Menu بها اختيارات لطبع الملفات /نقل/ ألغاء / الخ ..على العموم سوف اقوم بادراج السكربت حتى نرى من امرنا رشدا ويستفيد الاخوة الاخرون .....

      تعليق


      • #4

        ################################################## #######################
        # XXXXXXXXXXXXX #
        # Copyright (c) 2000 #
        # Author : R. XXXXXXXXXXXXXXXXX #
        # Modified by XXXXXX on 25 April 2001 #
        # Function : Script to generate and print reports in interactive mode #
        ################################################## #######################
        handler() {
        echo "Please choose a valid option or '0' to Exit"
        }
        trap handler 1 2 3 4 5 6 12 25
        today=`date`
        stty erase "^H" kill "^U" eof "^D" kill "^C"
        stty echoe

        function mg_success
        {
        echo "\nPrinting $1 successfully in $2 printer"
        sleep 5
        return
        }
        function mg_failure
        {
        echo "\nFilename $1 not exist in $2 or \c"
        echo "Permission not granted.."
        sleep 10
        return
        }
        while [ true ]
        do
        clear
        echo "\t\t\t\t\t $today"
        echo "\n\t\t\t XXXXXXX XXXXXXXX MEUN XXXXXXX"
        echo "\t\t\t ------------------------------\n"
        echo "\t\t\t REPORT MAINTENANCE MENU\n"
        echo "\t\t 1. Execute Program from /obj "
        echo "\t\t 2. Execute Program from /reports "
        echo "\t\t 3. Printing Spool file in HP 840"
        echo "\t\t 4. Printing Spool file in HP 8402"
        echo "\t\t 5. Printing Spool file in XEROX1"
        echo "\t\t 6. Copy Utility "
        echo "\t\t 7. Execute Program from Script "
        echo "\t\t 8. Directory listing (ll) give full path"
        echo "\t\t 9. View Files (pg) give full path"
        echo "\t\t 10. Printing Status"
        echo "\t\t 11. Alter Printing Queue "
        echo "\t\t 12. Cancel Print Queue "
        echo "\t\t 13. FTP File "
        echo "\t\t 0. EXIT\n"
        echo "\t\t\t Enter your option -> \c"
        read ans
        dir1=/mnt1/bmrel6/data/branch00/spool/
        dir2=/mnt1/bmrel6/programs/inhouse/obj/
        dir3=/mnt1/bmrel6/programs/inhouse/reports/
        dir4=/mnt1/bmrel6/scripts/
        if [ "$ans" != "" ]
        then
        case $ans in
        "1") echo "\n"
        cd $dir2
        v_prg=N
        while [ $v_prg = N ]
        do
        read -s prg_name?"Enter Program name for Execution - "
        if [ -x ${dir2}$prg_name ]
        then
        v_prg=Y
        ${dir2}$prg_name
        if [ $? -ne 0 ]
        then
        mg_failure $prg_name $dir2
        fi
        else
        mg_failure $prg_name $dir2
        fi
        done
        ;;

        "2") echo "\n"
        cd $dir3
        v_prg=N
        while [ $v_prg = N ]
        do
        read -s prg_name?"Enter Program name for Execution - "
        if [ -x ${dir3}$prg_name ]
        then
        v_prg=Y
        ${dir3}$prg_name
        if [ $? -ne 0 ]
        then
        mg_failure $prg_name $dir3
        fi
        else
        mg_failure $prg_name $dir3
        fi
        done
        ;;

        "3")
        trap handler 1 2 3 4 5 6 12 25
        prt_name='hp840'
        echo "\n"
        read -s sp_name?"Enter spool filename to print at $prt_name - "
        if [ -r ${dir1}$sp_name ]
        then
        lp -d${prt_name} ${dir1}${sp_name}
        if [ $? -ne 0 ]
        then
        echo "print not successfull"
        sleep 3
        else
        mg_success $sp_name $prt_name
        fi
        else
        mg_failure $sp_name $dir1
        fi;;
        "4")
        prt_name='hp8402'
        echo "\n"
        read -s sp_name?"Enter spool filename to print at $prt_name - "
        if [ -r ${dir1}$sp_name ]
        then
        lp -d${prt_name} ${dir1}${sp_name}
        if [ $? -ne 0 ]
        then
        echo "print not successfull"
        sleep 3
        else
        mg_success $sp_name $prt_name
        fi
        else
        mg_failure $sp_name $dir1
        fi;;
        "5")
        prt_name='xerox1'
        echo "\n"
        read -s sp_name?"Enter spool filename to print at $prt_name - "
        if [ -r ${dir1}$sp_name ]
        then
        lp -d${prt_name} /mnt1/bmrel6/data/branch00/spool/temp/${sp_name}
        ################lp -d${prt_name} ${dir1}${sp_name}
        if [ $? -ne 0 ]
        then
        echo "print not successfull"
        sleep 3
        else
        mg_success $sp_name $prt_name
        fi
        else
        mg_failure $sp_name $dir1
        fi;;

        "6")
        from_inp=N
        while [ $from_inp = N ]
        do
        read -s from_name?"Enter Copy from filename - "
        if [ -r $from_name ]
        then
        from_inp=Y
        else
        echo "File $from_name does not exist, Re-Enter Copy from filename"
        break
        fi
        done

        to_inp=N
        while [ $to_inp = N ]
        do
        read -s to_name?"Enter New Filename - "
        if [ -d $to_name ]
        then
        to_inp=Y
        else
        if [ -e $to_name ]
        then
        echo "File $to_name already exists \c"
        read over_wt?"Press [Y/N] to overwrite "
        if [ $over_wt = Y -o $over_wt = y ]
        then
        to_inp=Y
        fi
        else
        to_inp=Y
        break
        fi
        break
        fi
        done

        if [ $from_inp = Y -a $to_inp = Y ]
        then
        cp $from_name $to_name
        if [ $? -ne 0 ]
        then
        echo "Copy Operation unsuccessfull"
        sleep 5
        else
        echo "Copy Operation successfull"
        sleep 3
        fi
        else
        echo "Copy Operation unsuccessfull"
        sleep 5
        fi;;

        "7") echo "\n"
        cd $dir4
        v_prg=N
        while [ $v_prg = N ]
        do
        read -s prg_name?"Enter Script name for Execution - "
        if [ -x ${dir4}$prg_name ]
        then
        v_prg=Y
        #${dir4}$prg_name
        /mnt1/bmrel6/scripts/$prg_name
        if [ $? -ne 0 ]
        then
        mg_failure $prg_name $dir4
        fi
        else
        mg_failure $prg_name $dir4
        fi
        done
        ;;

        "8") ecHo "\n"
        # cd $dir4
        v_prg=N
        while [ $v_prg = N ]
        do
        read -s prg_name?"Enter complete directory for ll - "
        v_prg=Y
        ll -t $prg_name | pg
        if [ $? -ne 0 ]
        then
        mg_failure $prg_name $dir2
        fi
        done
        ;;


        "9") ecHo "\n"
        v_prg=N
        while [ $v_prg = N ]
        do
        read -s prg_name?"Enter complete path for pg - "
        v_prg=Y
        pg $prg_name
        if [ $? -ne 0 ]
        then
        mg_failure $prg_name $dir2
        fi
        done
        ;;

        "10") ecHo "\n"
        v_prg=N
        lpstat -o | pg
        if [ $? -ne 0 ]
        then
        mg_failure
        fi
        ;;


        "11") ecHo "\n"
        v_prg=N
        while [ $v_prg = N ]
        do
        read -s que_name?"Enter Queue-id - "
        read -s dest_name?"Enter Destination - "
        v_prg=Y
        lpalt $que_name $dest_name
        if [ $? -ne 0 ]
        then
        mg_failure $que_name $dest_name
        fi
        done
        ;;


        "12") ecHo "\n"
        v_prg=N
        while [ $v_prg = N ]
        do
        read -s que_name?"Enter Queue-id for Cancellation - "
        v_prg=Y
        cancel $que_name
        if [ $? -ne 0 ]
        then
        mg_failure $que_name $dest_name
        fi
        done
        ;;

        "13") ecHo "\n"
        v_prg=N
        while [ $v_prg = N ]
        do
        ftp 80.0.0.1
        v_prg=Y
        done
        ;;

        "0") trap 1 2 3 4 5 6 12 25
        exit
        ;;

        "*") echo "\n\n\tInvalid option, Please choose option between 0 & 13"
        echo "\n\t Press Enter Key to continue..."
        read dum
        ########## exit;;
        esac
        fi
        done
        trap 1 2 3 4 5 6 12 25
        ###exit 0
        exit


        تعليق


        • #5
          صورة للسكربت بعد تشغيله
          الملفات المرفقة

          تعليق


          • #6
            من النظرة اﻷولي يبدو باش سكريبت، شغله هكذا:
            كود:
            bash script_name
            حيث script_name هو اسمه، إذا لم يعمل جرب اضافة الخيار -x ليطبع لك تفاصيل أكثر،هكذا:
            كود:
            bash -x script_name

            تعليق


            • #7
              يا المبرمجين ...كلامكم عويص ...

              يا اخي ...سهلها علي وأبــن وأفصح يا اخ العرب

              تعليق


              • #8
                المشاركة الأصلية بواسطة linuxom مشاهدة المشاركة
                يا المبرمجين ...كلامكم عويص ...

                يا اخي ...سهلها علي وأبــن وأفصح يا اخ العرب
                ﻻ أعلم هل أنت زعلان أم ماذا :thinking:
                أخي الكريم بعد تنفيذ السكربت على لينوكس سوزي ظهر لي التالي:
                \t\t\t\t\t Fri Nov 3 00:45:30 GMT+1 2006
                \n\t\t\t XXXXXXX XXXXXXXX MEUN XXXXXXX
                \t\t\t ------------------------------\n
                \t\t\t REPORT MAINTENANCE MENU\n
                \t\t 1. Execute Program from /obj
                \t\t 2. Execute Program from /reports
                \t\t 3. Printing Spool file in HP 840
                \t\t 4. Printing Spool file in HP 8402
                \t\t 5. Printing Spool file in XEROX1
                \t\t 6. Copy Utility
                \t\t 7. Execute Program from Script
                \t\t 8. Directory listing (ll) give full path
                \t\t 9. View Files (pg) give full path
                \t\t 10. Printing Status
                \t\t 11. Alter Printing Queue
                \t\t 12. Cancel Print Queue
                \t\t 13. FTP File
                \t\t 0. EXIT\n
                \t\t\t Enter your option -> \c
                وبعد أن ألقيت نظرة على الصورة المرفقة من قبلك وجدت إنه لم تظهر لي أمور كثيرة ... أخي الكريم على ما أعتقد إنه هذه السكربت مخصصة الى العمل على HP-UX ﻷنها تطلب الكثير من الأمور الموجودة هناك وقد ﻻ تكون موجودة على لينوكس ... ﻷنه ﻻ تنسى لينوكس ويونكس ليسوا متشابهين 100% ويوجد فوارق بينهما ...
                إِنَّمَـا الأُمَـمُ الأَخْـلاقُ مَا بَقِيَـتْ ... فَـإِنْ هُمُ ذَهَبَـتْ أَخْـلاقُهُمْ ذَهَبُـوا

                إذا المرء لا يرعاك إلا تكلفاً ... فدعه ولا تكثر عليه التأسفا
                ففي الناس أبدال وفي الترك راحة ... وفي القلب صبر للحبيب ولو جفا
                فما كل من تهواه يهواك قلبه ... ولا كل من صافيته لك قد صفا
                إذا لم يكن صفو الوداد طبيعة ... فلا خير في خل يجيء تكلفا
                ولا خير في خل يخون خليله ... ويلقاه من بعد المودة بالجفا
                وينكر عيشاً قد تقادم عهده ... ويظهر سراً كان بالأمس في خفا

                [ مواقع مفيدة: أروع موقع القرآن الكريم |مدونتي |Twitter |نظام طارق ]

                تعليق


                • #9
                  اهلا أخي الكريم ....

                  الله لا يجيب الزعل بين الاخوان ...........:khaleje_guns:

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

                  عموما امر جيد انه أشتغل معاك ...كيف شغلته هنا السؤال ...فأرجو منك التكرم بالشرح البسيط ...

                  شكرا لك مقدما ...
                  :lotsocoffee:

                  تعليق


                  • #10
                    أخي أظن هناك من سبقني في تشغيل السكربت لك ...
                    أقرأ رد الأخ الدكتور توكس ... dr_tux ...
                    إِنَّمَـا الأُمَـمُ الأَخْـلاقُ مَا بَقِيَـتْ ... فَـإِنْ هُمُ ذَهَبَـتْ أَخْـلاقُهُمْ ذَهَبُـوا

                    إذا المرء لا يرعاك إلا تكلفاً ... فدعه ولا تكثر عليه التأسفا
                    ففي الناس أبدال وفي الترك راحة ... وفي القلب صبر للحبيب ولو جفا
                    فما كل من تهواه يهواك قلبه ... ولا كل من صافيته لك قد صفا
                    إذا لم يكن صفو الوداد طبيعة ... فلا خير في خل يجيء تكلفا
                    ولا خير في خل يخون خليله ... ويلقاه من بعد المودة بالجفا
                    وينكر عيشاً قد تقادم عهده ... ويظهر سراً كان بالأمس في خفا

                    [ مواقع مفيدة: أروع موقع القرآن الكريم |مدونتي |Twitter |نظام طارق ]

                    تعليق


                    • #11
                      السلام عليكم

                      قمت بعمل تعديلات بسيطة جدا على الاسكريبت بحيث يظهر بشكل لائق وازلت بعض الطرق القديمة المستخدمة فيه.

                      ارجو ان لا تفهم من هذا يا اخي اني اقوم بتقديم دعم فني لهذا الاسكريبت، صراحة لم اجد اي ضرورة له، ولكن كونه موجود احببت اعدل اشياء بسيطة عليه

                      كود:
                      #!/bin/sh
                      
                      today="$(date)"
                      
                      # Really we want to trap signals??
                      # if yes, uncomment these lines (not recommended)
                      #
                      #handler() { echo "Please choose a valid option or '0' to Exit"; }
                      #trap handler 1 2 3 4 5 6 12 25
                      #stty erase "^H" kill "^U" eof "^D" kill "^C"
                      #stty echoe
                      
                      mg_success() {
                      	echo ""
                      	echo "Printing $1 successfully in $2 printer"
                      	sleep 5
                      	return
                      }
                      
                      mg_failure() {
                      	echo ""
                      	echo "Filename $1 not exist in $2"
                      	echo "Permission not granted.."
                      	sleep 10
                      	return
                      }
                      
                      while [ true ]; do
                      
                      	clear
                      cat << EOF
                      
                      	$today
                      
                      	     XXXXXXX MEUN XXXXXXX
                      	------------------------------
                      
                       REPORT MAINTENANCE MENU
                      
                       [1]  Execute Program from /obj
                       [2]  Execute Program from /reports
                       [3]  Printing Spool file in HP 840
                       [4]  Printing Spool file in HP 8402
                       [5]  Printing Spool file in XEROX1
                       [6]  Copy Utility
                       [7]  Execute Program from Script
                       [8]  Directory listing (ll) give full path
                       [9]  View Files (pg) give full path
                       [10] Printing Status
                       [11] Alter Printing Queue
                       [12] Cancel Print Queue
                       [13] FTP File
                       [0]  EXIT
                      
                      EOF
                      echo -n " Enter your option -> "
                      read ans
                      
                      dir1="/mnt1/bmrel6/data/branch00/spool"
                      dir2="/mnt1/bmrel6/programs/inhouse/obj"
                      dir3="/mnt1/bmrel6/programs/inhouse/reports"
                      dir4="/mnt1/bmrel6/scripts"
                      
                      if [ "$ans" != "" ]; then
                      
                      case $ans in
                      
                      1)
                      echo ""
                      cd $dir2
                      v_prg=N
                      while [ $v_prg = N ]; do
                      echo -n "Enter Program name for Execution:  "
                      read prg_name
                      
                      if [ -x $dir2/$prg_name ]; then
                      v_prg=Y
                      exec $dir2/$prg_name
                      if [ "$?" != "0" ]; then
                      mg_failure $prg_name $dir2
                      fi
                      else
                      mg_failure $prg_name $dir2
                      fi
                      done
                      ;;
                      
                      2)
                      echo ""
                      cd $dir3
                      v_prg=N
                      while [ $v_prg = N ]; do
                      echo -n "Enter Program name for Execution: "
                      read prg_name
                      
                      if [ -x $dir3/$prg_name ]; then
                      v_prg=Y
                      exec $dir3/$prg_name
                      if [ "$?" != "0" ]; then
                      mg_failure $prg_name $dir3
                      fi
                      else
                      mg_failure $prg_name $dir3
                      fi
                      done
                      ;;
                      
                      3)
                      trap handler 1 2 3 4 5 6 12 25
                      prt_name='hp840'
                      echo ""
                      echo -n "Enter spool filename to print at $prt_name: "
                      read sp_name
                      
                      if [ -r $dir1/$sp_name ]; then
                      lp -d$prt_name $dir1/$sp_name
                      
                      if [ "$?" != "0" ]; then
                      echo "print not successfull"
                      sleep 3
                      else
                      mg_success $sp_name $prt_name
                      fi
                      
                      else
                      mg_failure $sp_name $dir1
                      fi
                      ;;
                      
                      4)
                      prt_name='hp8402'
                      echo ""
                      echo -n "Enter spool filename to print at $prt_name: "
                      read sp_name
                      
                      if [ -r $dir1/$sp_name ]; then
                      lp -d$prt_name $dir1/$sp_name
                      
                      if [ "$?" != "0" ]; then
                      echo "print not successfull"
                      sleep 3
                      else
                      mg_success $sp_name $prt_name
                      fi
                      
                      else
                      mg_failure $sp_name $dir1
                      fi
                      ;;
                      
                      5)
                      prt_name='xerox1'
                      echo ""
                      echo -n "Enter spool filename to print at $prt_name: "
                      read sp_name
                      
                      if [ -r $dir1/$sp_name ]; then
                      
                      lp -d$prt_name /mnt1/bmrel6/data/branch00/spool/temp/$sp_name
                      
                      if [ "$?" != "0" ]; then
                      echo "print not successfull"
                      sleep 3
                      else
                      mg_success $sp_name $prt_name
                      fi
                      
                      else
                      mg_failure $sp_name $dir1
                      fi
                      ;;
                      
                      6)
                      from_inp=N
                      while [ $from_inp = N ]; do
                      echo -n "Enter Copy from filename: "
                      read from_name
                      
                      if [ -r $from_name ]; then
                      from_inp=Y
                      else
                      echo "File $from_name does not exist, Re-Enter Copy from filename"
                      break
                      fi
                      done
                      
                      to_inp=N
                      while [ $to_inp = N ]; do
                      echo -n "Enter New Filename: "
                      read to_name
                      
                      if [ -d $to_name ]; then
                      to_inp=Y
                      else
                      
                      if [ -e $to_name ]
                      then
                      echo "File $to_name already exists! "
                      echo -n "Press [Y/N] to overwrite "
                      read over_wt
                      
                      if [ "$over_wt" = "Y" -o "$over_wt" = "y" ]; then
                      to_inp=Y
                      fi
                      
                      else
                      to_inp=Y
                      break
                      fi
                      
                      break
                      fi
                      done
                      
                      if [ "$from_inp" = "Y" -a "$to_inp" = "Y" ]; then
                      cp -a $from_name $to_name
                      
                      if [ "$?" != "0" ]; then
                      echo "Copy Operation unsuccessfull"
                      sleep 5
                      else
                      echo "Copy Operation successfull"
                      sleep 3
                      fi
                      else
                      echo "Copy Operation unsuccessfull"
                      sleep 5
                      fi
                      ;;
                      
                      7)
                      echo ""
                      cd $dir4
                      v_prg=N
                      while [ $v_prg = N ]; do
                      echo -n "Enter Script name for Execution: "
                      read prg_name
                      
                      if [ -x $dir4/$prg_name ]; then
                      v_prg=Y
                      exec /mnt1/bmrel6/scripts/$prg_name
                      
                      if [ "$?" != "0" ]; then
                      mg_failure $prg_name $dir4
                      fi
                      else
                      mg_failure $prg_name $dir4
                      fi
                      done
                      ;;
                      
                      8) 
                      echo ""
                      v_prg=N
                      while [ $v_prg = N ]; do
                      echo -n "Enter complete directory for ll: "
                      read prg_name
                      
                      v_prg=Y
                      ll -t $prg_name | pg
                      if [ $? -ne 0 ]; then
                      mg_failure $prg_name $dir2
                      fi
                      done
                      ;;
                      
                      
                      9) 
                      echo ""
                      v_prg=N
                      while [ $v_prg = N ]; do
                      echo -n "Enter complete path for pg: "
                      read prg_name
                      
                      v_prg=Y
                      pg $prg_name
                      
                      if [ $? -ne 0 ]; then
                      mg_failure $prg_name $dir2
                      fi
                      done
                      ;;
                      
                      10) 
                      echo ""
                      v_prg=N
                      lpstat -o | pg
                      if [ $? -ne 0 ]; then
                      mg_failure
                      fi
                      ;;
                      
                      11) 
                      echo ""
                      v_prg=N
                      while [ $v_prg = N ]; do
                      echo -n "Enter Queue-id: "
                      read que_name
                      
                      echo -n "Enter Destination: "
                      read dest_name
                      
                      v_prg=Y
                      lpalt $que_name $dest_name
                      
                      if [ $? -ne 0 ]; then
                      mg_failure $que_name $dest_name
                      fi
                      done
                      ;;
                      
                      
                      12) 
                      echo ""
                      v_prg=N
                      while [ $v_prg = N ]; do
                      
                      echo -n "Enter Queue-id for Cancellation: "
                      read que_name
                      v_prg=Y
                      cancel $que_name
                      
                      if [ $? -ne 0 ]; then
                      mg_failure $que_name $dest_name
                      fi
                      done
                      ;;
                      
                      13)
                      echo ""
                      v_prg=N
                      while [ $v_prg = N ]; do
                      
                      ### WHAT'S THIS!!
                      ftp 80.0.0.1
                      v_prg=Y
                      done
                      ;;
                      
                      0)
                      exit 0
                      ;;
                      
                      *) 
                      echo ""
                      echo "Invalid option, Please choose option between 0 & 13"
                      echo -n "Press Enter to continue..."
                      read dum
                      
                      esac
                      
                      fi
                      
                      done
                      
                      # Disable trap, uncomment if you uncomment first lines of this script.
                      # trap 1 2 3 4 5 6 12 25
                      
                      
                      exit 0
                      موقع وثائق لينوكس العربية
                      موقع مختص بتوثيق لينكس

                      ((شاركنا بمواضيعك، أفكارك، إقتراحاتك، ومساعدتك لنا هي أساس إستمرارنا ... فلا تبخل علينا بما لديك ولو كان بنظرك قليل، فهو بنظرنا الكثير))





                      تعليق


                      • #12
                        لتنفيذ الاسكريبت:

                        كود:
                        chmod +x script
                        ./script
                        or 
                        sh script
                        موقع وثائق لينوكس العربية
                        موقع مختص بتوثيق لينكس

                        ((شاركنا بمواضيعك، أفكارك، إقتراحاتك، ومساعدتك لنا هي أساس إستمرارنا ... فلا تبخل علينا بما لديك ولو كان بنظرك قليل، فهو بنظرنا الكثير))





                        تعليق

                        يعمل...
                        X