يونيو 21، 2010

شرح أساسيات آرتش لينكس و الأدوات و الأوامر المستخدمة في تثبيته و إعداده

! هذا الموضوع تطرق إلى طريقة تثبيت آرتش لينكس إصدار 2011.08.19 و هو غير مناسب لتثبيت الإصدارات الحديثة لأن خطوات التثبيت إختلفت كثيرا!
 
في هذه التدوينة سأشرح الأوامر و الملفات التي استخدمتها في تثبيت و إعداد آرتش لينوكس (Arch Linux) و لينوكس عموما.

  • mount : هو المكلف بربط "تعريف جزء" معين من القرص الصلب أو تعريف سواق كسواق القرص المدمج  cdrom بـالمجلد الذي يمثله. مثلا تعريف الجزء الأول على القرص الصلب هو /dev/sda1 و لربطه بالمجلد disk1 المتواجد بالمجلد /media علينا تنفيذ الأمر التالي:


    mount /dev/sda1 /media/disk1

    لكن هذا الأمر لن يعمل دائما لأننا لم نحدد نوع نظام الملفات مما سيجعله إما يحاول إكتشافه بشكل تلقائي و هذه عملية قد تحمل بعض المخاطر، أو يرجع إلى الملف /etc/fstab لتعرف على مواصفاته هناك.

    الاستخدام الصحيح يجب أن يكون شبيه بما يلي:


    mount /dev/sda1 -t ext2 /media/disk1

    لتفاصيل أكثر نفد الأمر التالي:


    man mount

    أكمل بقية الموضوع





  • الملف /etc/fstab
    عبارة عن جدول يضم كل تعريفات/تسميات الأجزاء و السواقات و المجلدات التي تمثلها بالإضافة إلى معايير تشغيلاها. مثال:


    # -file system-        -dir-         -type-    -options-          -dump- -pass-
    none                   /dev/pts      devpts    defaults            0      0
    none                   /dev/shm      tmpfs     defaults            0      0

    #/dev/cdrom             /media/cd   auto    ro,user,noauto,unhide   0      0
    #/dev/dvd               /media/dvd  auto    ro,user,noauto,unhide   0      0
    #/dev/fd0               /media/fl   auto    user,noauto             0      0

    /dev/sda1    /boot          ext2   defaults  0 1
    /dev/sda2    /              ext4   defaults,noatime  0 1
    /dev/sda3    /media/disk2   ext4   defaults,noatime,data=journal  0 1
    /dev/sda4    swap           swap   defaults  0 0

    /dev/sdb1    /media/disk3   ntfs-3g   defaults  0 0
    /dev/sdb4    /media/disk4   ntfs-3g   defaults  0 0

  • nano : عبارة عن محرر نصي يستخدم على سطر الأوامر. يفضل أن نشغله بالمعيار -w حتى لا يقوم بالتصفيف التلقائي (dynamic text wrapping) للأسطر النصية. مثال :


    nano -w /etc/fstab

    لحفظ التغيرات نضغط على Ctrl+O و للخروج نضغط على Ctrl+X

  • الملف /boot/grub/menu.lst
    يضم كل المعلومات المتعلقة بإقلاع نواة النظام لينوكس و باقي الأنظمة المتعرف عليها كويندوز أو أنظمة لينوكس أو بي إس دي المجاورة. نادرا ما نحتاج إلى تعديل هذا الملف يدويا و عليك معرفة ما تفعل إن عدلته.

  • man : يوفر المساعدة و الشرح التقني بخصوص الأوامر و الملفات التي تريد أن تتعلم استخدامها أو نسيت المعايير التي تستخدم و وظيفتها. طريقة الإستخدام هي كالتالي:
    إدا أردنا معرفة شرح الأمر fdisk ننفذ


    man fdisk
    أو شرح ifconfig


    man ifconfig

    للخروج من الشرح يكفي الضغط على q

  • fdisk : و هي الأداة التي تسمح لنا بعرض الأقراص و أجزائها المكتشفة، كما تستخدم في تجزئة الأقراص. بديله الأكثر سهولة هو cfdisk الذي استخدمناه لتجزئة القرص الصلب أثناء تثبيت آرتش لينوكس. لكي نعرض كل الأجزاء المكتشفة يكفي أن ننفذ:


    fdisk -l

  • ifconfig : تسمح لنا بعرض و إعداد كروت الشبكات السلكية. لعرض كل شيء تعرفت عليه ننفذ:


    ifconfig -a

  • iwconfig : تسمح لنا بعرض و إعداد كروت الشبكات اللاسلكية. لعرض كل شيء تعرفت عليه ننفذ:


    iwconfig

  • التسميات eth0, eth1, lo, wlan1, wlan2, ppp0


    • بطائق الشبكات السلكية يرمز لها بـ ethX مثال eth0, eth1,..
    • بطائق الشبكات اللاسلكية يرمز لها بـ wlanX مثال wlan0, wlan1,..
    • الموديمات (modems) يرمز لها بـ pppX مثال ppp0, ppp1,..
    • lo تمثل ما يعرف بالاسترجاع و هي كرت وهمية تحاكي وجود كرت حقيقة تصلح بالدرجة الأولى لاختبار الخدمات و برامج الاتصال بالشبكات لمعرفة هل تعمل بشكل صحيح على الجهاز المستخدم أما لا. بمعنى آخر lo تمثل وجود شبكة متصلة بجهازك و تستطيع التواصل مع و الرد على طلباتك.

  • dhcpcd : تتكفل بإعداد بطائق الشبكات بشكل تلقائي إدا كانت متصلة بمزود - مثل الراوتر - يوفرها بواسطة خدمة DHCP. لإعداد بطاقة eth0 يكفي تنفيذ الامر التالي :


    dhcpcd eth0

    إدا أردت أنت تحافظ على إعداد ثابت لبطائق الشبكة عليك إعداد ملف /etc/rc.conf بالإضافة إلى ملف /etc/resolv.conf

  • الملف /etc/resolv.conf
    يضم أسماء خوادم DNS التي تقوم بترجمة أسماء النطاقات إلى أي بي (IP). عموما هذا الملف يتم إعداده من طرف dhcpcd إلا إدا كنت تستخدم إعداد ثابت للشبكة. مثال:


    #search -yourdomain.tld-
    #nameserver -ip-

    #nameserver 8.8.8.8
    #nameserver 8.8.4.4
    #nameserver 208.67.222.222
    #nameserver 208.67.220.220
    nameserver 212.217.0.1
    nameserver 212.217.0.12
    nameserver 212.217.0.17

    بالتسبة لـ 8.8.8.8 و 8.8.4.4 فتمثل خادم غوغل Google
    بالتسبة لـ 208.67.222.222 و 208.67.220.220 فتمثل خادم خادم أوبن دي إن إس OpenDNS
    بالتسبة لـ 212.217.0.1 و 212.217.0.12 و 212.217.0.17 فهي تمثل خادم إتصالات المغرب MarocTelecom

  • الملف /etc/rc.conf
    هن أهم ملفات توزيعة آرتش لينوكس لأنه أضم أغلب إعدادات النظام في مكان واحد على عكس أغلب توزيعات لينوكس الأخرى التي تفضل استخدام مجموعة من الملفات المتفرقة.

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

    أهم التسميات:


    • LOCALE وتحدد نوع اللغة المستخدمة كالإنجليزية "en_US.utf8" أو الفرنسية "fr_FR.utf8" أو العربية المغربية "ar_MA.utf8". لكن قبل أن تغير هذه القيمة عليك أن تفّعل اللغة المرغوب فيها على ملف /etc/locale.gen يليها تنفيذ الأمر locale-gen. أيضا إدا رغبت في معرفة أي لغات مفعلة على النظام يكفي تنفيذ locale -a

    • KEYMAP خريطة المفاتيح المستخدمة على الطرفية (Console). يمكن اختيار إحدى الخرائط المتواجدة داخل المجلد /usr/share/kbd/keymaps مثل "fr-latin1", "fr", "us", "de"

    • MODULES توفر إمكانية التصريح بالوحدات التي تود تشغيلاها أو عدم تشغيلاها أثناء إقلاع النظام. مثال:


      MODULES=(fuse vboxnetadp vboxnetflt !kvm !kvm-intel)

      لاحظ جيدا أن علامة ! التي تسبق اسم الوحدة kvm و kvm-intel تعني عدم الرغبة في تشغيلاها.

    • HOSTNAME يمثل اسم الجهاز على الشبكة. مثال: "archy"
      تذكر جيدا, الاسم الذي تستخدمه لتعريف الجهاز يجب أن يكون مذكورا أيضا على ملف /etc/hosts مثال:


      #-ip-address-   -hostname.domain.org-   -hostname-
      127.0.0.1               localhost.localdomain   localhost  archy

    • بالنسبة لـeth0, INTERFACES, gateway, ROUTES فتصلح لإعداد بطاقات الشبكة السلكية إما بشكل ثابت يدوي أو تلقائي أثناء الإقلاع.

      مثال للإعداد الثابت:


      eth0="eth0 192.168.1.109 netmask 255.255.255.0 broadcast 192.168.1.255"
      INTERFACES=(eth0)
      gateway="default gw 192.168.1.1"
      ROUTES=(gateway)

      مثال للإعداد تلقائي من خلال DHCP للراوتر (Router):


      eth0="dhcp"
      INTERFACES=(eth0)
      gateway="default gw 192.168.0.1"
      ROUTES=(!gateway)

      لاحظ وجود علامة ! في بداية ROUTES و التي تعني أنها ليست كما هي مذكورة في gateway بمعنا آخر أنها ستكون تلقائية.

      إضافة: إدا كنت تستخدم أكثر من بطاقة شبكة يكفي إضافة السطر الخاص بها كـ eth1="" و تضيفها إلى INTERFACE

    • NETWORKS و هي تستخدم لتحديد معرفات (profiles) الربط بالشبكة التي تريد استخدامها.

    • DAEMONS و هي تمثل الخدمات (Services) التي تريد أن تعمل أثناء الإقلاع. مثال:


      DAEMONS=(syslog-ng network net-profiles @netfs @crond @alsa dbus hal @kdm @vboxdrv @samba)

      إدا أضفنا علامة ! قبل إسم الخدمة يعني عدم رغبتنا في تشغيلها.
      إدا أضفنا علامة @ قبل اسم الخدمة يعني أننا نريد أن تعمل بشكل موازي (in parallel) حتى نسرع إقلاع النظام. لكن يجب عليك أن تعلم أنه ليس بإمكاننا تشغيل كل الخدمات على التوازي لأن بعضها لا تمكن أن تبدأ حتى تتكون الخدمة التي تعتمد عليها قد بدأت.

      لقراءة المزيد حول أسماء تلك الخدمات طالع هذا الرابط.


  • cat و هي أداة تعرض محتوى ملف معين على الطرفية. مثال:


    cat /etc/resolv.conf
  • ls و هي أداة تعرض محتوى المجلدات. مثال يعرض كل الملفات حتى المخفي منها في المجلد الحالي (أي الذي نشتغل عليه):


    ls -a

    مثال يعرض محتوى المجلد /etc على شكل قوائم


    ls -al /etc
  • grep و هي أداة تسمح لك بالبحث على معلومة نصية في مخرجات أداة أخرى أو ملف.

    مثال يبحث عن كلمة "HOSTNAME" داخل الملف /etc/rc.conf


    grep "HOSTNAME" -i /etc/rc.conf

    مثال يبحث عن اسم معالج الحاسوب (CPU) داخل مخرجات الملف /proc/cpuinfo


    cat /proc/cpuinfo | grep "model name"

    لاحظ جيدا علامة |. هذه العلامة تسمى أنبوب (pipe) و هي تسمح بتشغيل أداة تلو الأخرى ممررتا مخرجات كل أداة للتي تليها
  • wget هذه الأداة تستخدم في تحميل (download) الملفات من الطرفية. مثال:


    wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.3.tar.bz2

    يمكن استخدام معايير إضافية مثل:
    -c لإكمال التحميل حتى لو حصل توقف أو إنقطع الإتصال
    --limit-rate= لتحديد سرعة التحميل
    -O destination لتحديد مكان الذي سيوضع فيه الملف

    مثال:


    wget -c --limit-rate=160K http://mango.org.ua/archbang/archbang-2.01-BetBeta1-i686.iso -O /media/disk-302/ISOs/archbang-2.01-Beta1-i686.iso
  • dmesg : و هي أداة تعرض رسائل نواة النظام لينوكس عند الإقلاع و أثناء عملها. في أغلب الأحيان تستخدم هذه الرسائل لمعرفة ما الذي تعرفة عليه النواة أو المشاكل التي واجهتها مع العتاد.
    و في أغلب الأوقات نستخدم dmesg مع grep أو tail لعرض فقط الرسائل التي نرغب فيها. مثال لعرض آخر رسائل النواة:


    dmesg | tail
  • reboot : لإعادة تشغيل النظام. في أغلب الأوقات reboot تحتاج إلى صلاحيات عالية (صلاحيات إدارة الطاقة، أو المدير root أو بواسطة sudo) كي تعيد تشغيل النظام.

  • shutdown : لإيقاف النظام بشكل فوري أو بعد مدة زمنية معينة. مثال لإيقاف النظام فورا.
    مثال لإيقاف عمل الحاسوب بشكل كلي و فوري:


    shutdown -P now -h
    مثال لإيقاف عمل الحاسوب بشكل كلي بعد 30 دقيقة من تنفيذ الأمر:


    shutdown -P +30 -h

    shutdown مثلها مثل reboot تحتاج إلى صلاحيات كافية لتعمل

  • sudo : هده الأدات تسمح للمستخدم العادي -- الذي لا يتوفر على صلاحيات لتعديل النظام -- تسمح له بتنفيذ أوامر بصلاحيات أعلى دون الرجوع إلى حساب مدير النظام في كل مرة.

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

    لإستخدام sudo مع أمر يتطلب صلاحيات عالية يكفي أن نكتب sudo أولا ثم الأمر. مثال:


    sudo pacman -Syu

    للحصول على صلاحية إستخدام sudo يجب أن تثبتها أولا ثم تعدل ملف الصلاحيات sudoers من خلال تنفيذ الأمر visudo ثم إضافة إسم المستخدم الذي تريده أن يحصل على تلك الصلاحية:


    visudo

    desired_username ALL=(ALL) ALL

  • pacman هي الأداة التي نستخدمها لتثبيت، حدف، ترقية و البحث عن الحزم/البرامج. هذه الأدات من مميزات آرتش لينوكس. تتعدد طرق استخداماتها كما دكرت لكن من أهمها:
    تثبيت برنامج ما:


    pacman -S gimp

    حدف برنامج ما:


    pacman -R pidgin

    ترقية كافة برامج النظام إلى آخر الإصدارات المستقرة:


    pacman -Syu

    البحث عن عن برنامج معين:


    pacman -Ss skype

    الإطلاع على بيانات برنامج معين:


    pacman -Qi gedit

    لحذف ملفات الحزم القديمة المتواجدة داخل مجلد الإختباء (cache folder) المتواجد على /var/cahe/pacman/pkg/ لتوفير المساحة


    pacman -Sc

    لتثبيت ملف حزمة متواجد على المجلد الحالي نستخدم -U مثال:


    pacman -U bauerbill-2010.03.14.1-1-any.pkg.tar.gz

  • mkdir هذا الأمر يسمح لنا بإنشاء مجلد ما من على سطر الأوامر. مثال لإنشاء مجلد downloads في المكان الذي نتواجد فيه:


    mkdir downloads

    مثال لإنشاء مجلد trance داخل مجلد music على مجلد حسابنا حتى لو لم يكن التشجر متواجد بعد:


    mkdir -p ~/music/trance

    لاحظ جيدا وجود علامة ~ التي تعني مجلد حساب المستخدم الحالي
  • cp هذه الأداة نستخدمها لنسخ الملفات من مكان إلى آخر. مثال ننسخ فيه الملف report-2010.odt إلى المجلد reports المتواجد داخل المجلد mydocuments على حسابنا


    cp report-2010.odt ~/mydocuments/reports/

  • mv هذه الأداة نستخدمها لنقل الملفات من مكان إلى آخر. مثال ننقل فيه الملف armin_van_buuren_-_a_state_of_trance_-_455.mp3 إلى المجلد trance المتواجد داخل المجلد music على حسابنا


    mv armin_van_buuren_-_a_state_of_trance_-_455.mp3 ~/music/trance/

  • wpa_passphrase و wpa_supplicant و هما أداتين نستخدمها في إعداد معرف للربط اللاسلكي محمي بتقنية WPA و WPA2

  • sleep هذه الأداة تسمح لك بتحديد مدة الانتظار ما بين أمر و آخر. مثال للانتظار 5 ثوان قبل عرض رسالة ترحيب:


    sleep 5 && echo Hi there!

  • netcfg و هي أداة تستخدم لإعداد، تسيير و تفعيل الربط بالشبكات على مختلف أنواعها مستخدمة معرفات (profiles).

  • /etc/network.d/examples هذا المجلد يحتوي على معرفات جاهزة مسبقا صالحة لمجموعة من أنواع الربط السلكي و/أو اللاسلكي.

  • ping هذه الأداة تستخدم للحصول على صدى من حاسوب أو خادم أرسلنا إليه ما يشبه برنة على الشبكة. إدا حصلنا على رد فيمكننا معرفة المدة -- بأجزاء الثانية -- التي أخدتها كل رنه و ذلك كمقياس بسيط لمعرفة أداء الربط بين نقطتين في الشبكة؛ و إدا لم نحصل على رد فذلك يعني إمكانية وجود عطل بالكابل (cable) أو أن الطرف الأخر يتخفى وراء جدار ناري أو عدم وجود ربط خارجي في الأصل.

    طريقة الإستخدام إما مع اسماء النطاقات (DNS) أو أي بي (IP):


    ping -c 3 google.com

    ping 192.168.1.1 -c 3

    المعيار -c يستخدم لتحديد عدد الرنات التي نريد أن نرسلها إلى الطرف الآخر.

  • /etc/issue هذا الملف يسمح لك بتخصيص شاشة (logon screen) الولوج من على على سطر الأوامر (الطرفية)

  • df هذه الأداة تعرض المساحة الإجمالية للأقسام و الأقرص و المساحة المساحة المتبقية منها. مثال:


    df -h

  • top هذه الأداة تعرض كل البرامج التي تعمل على النظام بكل تفاصيلها التقنية التي تهم العاملين على تتبع و صيانة النظام. مثال:


    top

  • useradd لإضافة حساب مستخدم جديد. مثال:


    useradd -m -G users -s /bin/bash guest

  • passwd لإضافة، تعديل أو إزالة كلمة السر الخاصة بحساب معين. مثال لإضافة أو تعديل كلمة سر حساب المستخدم guest


    passwd guest

  • powerpill و bauerbill تُغَلف أداة pacman و تقدم خصائص إضافية لبناء، تحميل و تثبيت الحزم.

  • yaourt أداة أبسط و بالتالي أسهل من powerpill و bauerbill تُغَلف هي أيضا أداة pacman و تسمح ببناء، تحميل و تثبيت الحزم.

  • export مستخدمها لإنشاء المتغيرات الخاصة بالنظام (Environment Variables)

  • /etc/rc.local هذا الملف يستخدم أحيانا لتشغيل بعض البرامج أو السكريبتات أثناء إقلاع النظام.
  •  
  • echo تستخدم لعرض الرسائل على الشاشة و هي غالبا ما تستخدم داخل السكريبتات (scripts)

  • vi محرر نصي متقدم يستخدمه من تعود على أنظمة لينوكس و يونكس، يفضله المبرمجون لأنه يسرع العمل لقدرته على التحرك بشكل أسرع من خلال أوامر على شكل حروف و رموز. vi أسوء محرر نصي قد يصادفه مبتدئ في عالم جنو/لينوكس :)

    أكثر الأوامر أهمية بالنسبة لأي مبتدئ هي:


    • الحرف a يسمح بتعديل سطر معين إلى أن تتحرك أو تضغط على الزر ESC.
    • الأحرف التالية :qw متبوعة بـ الزر enter تحفظ الملف و تخرج من vi.
    • الأحرف التالية :q! متبوعة بـ الزر enter تخرج من vi دون حفظ التغييرات.
    • الأحرف التالية :q متبوعة بـ الزر enter تخرج من vi إن لم تعدل شيء في الملف.

    المزيد من التعليمات تجدونها هنا و هنا.

  • /etc/xog.conf هذا الملف يستخدم تحديد إعدادات العرض و التعريف المستخدم.

  • /etc/xorg.conf.d/ هذا المجلد يضم إعدادات  أجهزت الإدخال مثل لوحة المفاتيح، الفأرة و موصلات أخرى

  • /etc/rc.d/ هذا المجلد يضم الخدمات المتوفرة على النظام. هذه الخدام يمكن تشغيلها إما يدويا أو تلقائيا أثناء إقلاع النظام. 
  • التشغيل اليدوي:
    /etc/rc.d/service_name start
    الإيقاف اليدوي:
    /etc/rc.d/service_name stop
    إعادة تشغيل الخدمة:
    /etc/rc.d/service_name restart
    للتشغيل التلقائي أثناء إقلاع النظام يجب عليك إضافة إسم الخدمة إلى DAEMONS على الملف /etc/rc.conf

ليست هناك تعليقات:

إرسال تعليق