اﻷوامر المهمة في نظام لينكس

أحضر لي أحد الزملاء (عبد الغني) جهاز لابتوب لتثبيت نظم أوبونتو له، وأعطيته كتاب أوبونتو ببساطة، لكنه لا يحتوي على أوامر نظام لينكس. لذلك احببت أن أقدم له بعض اﻷوامر المهمة التي سوف يحتاجها، خصوصاً أنه مبرمج كمبيوتر، ويريد الدخول إلى عالم المصادر المفتوحة. والمبرمج لا يستغني عن سطر اﻷوامر في نظام لينكس. خصوصاً عند التعامل مع مخدم لينكس أو الوصول لجهاز لينكس في الشبكة بإستخدام ssh. في هذه الحال يكون الحل الوحيد هو استخدام سطر اﻷوامر.

ووجدت كتابتها في تدوينة أفضل حتى تكون الفائدة منها متعدية وتستمر لفترة طويلة إن شاء الله.

  • ls

أكثر اﻷوامر استخداماً هو عرض الملفات باستخدام اﻷمر ls لكن أفضل إضافة بعض المُدخلات وهي:

ls -lh

motaz@motaz-T400:~/Documents/Downloads/Ubuntu$ ls -lh
total 3.0G
-rw-r--r-- 1 motaz motaz 688M May 11 19:23 ubuntu-12.04-alternate-i386.iso
-rw-rw-r-- 1 motaz motaz 702M Apr 26 18:01 ubuntu-12.04-desktop-i386.iso
-rw-rw-r-- 1 motaz motaz 1.7G Apr 10 14:10 ubuntu-for-tasjeel-11.10.2-64.iso

والباراميتر l يعني عرضها في شكل قائمة بتفاصيل وهي زمن تعديل الملف، حجمه و الصلاحيات. والباراميتر h يُظهر التفاصيل في شكل مقروء، مثل 1.7G للحجم بدلاً من 1733480448 بايت.

  • chown

يُستخدم هذا اﻷمر لتغيير مالك الملف Owner أو الدليل الفرعي. مثلاً لجعل قاعدة البيانات فيربيرد تستطيع الوصول للدليل الفرعي /home/mydata وذلك لإنشاء والتعامل مع قواعد بياناتها، فيجب أن تكون لها الصلاحية المناسبة لذلك، وأسهل طريقة هي جعل المستخدم firebird يتملك هذا الدليل الفرعي. في هذا المثال نستعرض الدليل /home فنجد أن المالك للدليل mydata هو المتستخدم root:

motaz@motaz-T400:/home$ ls -lh
total 20K
drwxr-xr-x 85 motaz motaz  16K Aug 19 15:08 motaz
drwxr-xr-x  2 root  root  4.0K Aug 19 17:58 mydata

واسم المالك هو مايظهر باليسار، أما اﻹسم على اليمين فهو المجموعة التي لها صلاحية على هذا الدليل.
نقوم بتنفيذ اﻷمر التالي:

sudo chown firebird mydata

يطلب نظام التشغيل في هذه الحالة كلمة المرور للـ Administrator. بعدها نستعرض الملفات مرة أخرى لنجد تغيير ملكية الدليل mydata:

motaz@motaz-T400:/home$ ls -lh
total 20K
drwxr-xr-x 85 motaz    motaz  16K Aug 19 15:08 motaz
drwxr-xr-x  2 firebird root  4.0K Aug 19 17:58 mydata

  • chgrp

يُستخدم هذا اﻷمر لتغيير المجموعة التي لها صلاحية على الملف أو الدليل الفرعي. وبهذه الطريقة يُمكن إعطاء أكثر من مستخدم الصلاحية على ملف معين، وذلك بإعطاء الصلاحية لمجموعة، ثم إدخال المستخدم في تلك المجموعة:

motaz@motaz-T400:/home$ sudo chgrp dbadmins mydata
motaz@motaz-T400:/home$ ls -lh
total 20K
drwxr-xr-x 85 motaz    motaz     16K Aug 19 15:08 motaz
drwxr-xr-x  2 firebird dbadmins 4.0K Aug 19 17:58 mydata

[/sourcecode

في حالة أن المجلد به ملفات فإن اﻷمرين السابقين: chown و chgrp يقومان فقط بتغيير صلاحية المجلد دون تغيير صلاحيات الملفات التي بداخلهما. ولتغيير مابداخل المجلد نقوم بإضافة الباراميتر -R والذي يعني recursive:


sudo chgrp dbadmins mydata -R
  • chmod +x

في حالة التعامل مع الملفات التنفيذية سواءً كانت script أم ملفات ثنائية ناتجة من لغات البرمجة مثل سي وأوبجكت باسكال فلا بد أن تكون للملف صلاحية للتنفيذ، مثلاً في هذا المثال الملف hejri ليس لديه صلاحية تنفيذ (لا يوجد الحرف x) في عمود الصلاحيات:

-rw-rw-r-- 1 motaz motaz 3.3M Jul 19 17:09 hejri

وبعد تنفيذ اﻷمر chmod +x hejri نجد أنه يمكن تنفيذه:

-rwxrwxr-x 1 motaz motaz 3.3M Jul 19 17:09 hejri

ويمكن تنفيذه بكتابة

./hejri

في نفس الدليل أو كتابة الدليل كاملاً.
يمكن سحب صلاحية التنفيذ من الملف بواسطة اﻷمر

chmod -x hejri

موضوع الصلاحيات وإستخدام اﻷمر chmod مازال في بدايته وبه عدة جوانب سوف أتكلم عنها إن شاء الله بالتفصيل عندما تُتاح لي الفرصة مرة أخرى إن شاء الله.

  • cat /proc/cpuinfo

يُستخدم هذا اﻷمر لعرض تفاصيل المعالج أو المعالجات الموجودة في الجهاز الحالي، مثلاً:

motaz@motaz-T400:~/Temp/hejri$ cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 23
model name	: Intel(R) Core(TM)2 Duo CPU     T9600  @ 2.80GHz
stepping	: 6
microcode	: 0x60c
cpu MHz		: 800.000
cache size	: 6144 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 2
apicid		: 0
initial apicid	: 0
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm dtherm tpr_shadow vnmi flexpriority
bogomips	: 5586.12
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 23
model name	: Intel(R) Core(TM)2 Duo CPU     T9600  @ 2.80GHz
stepping	: 6
microcode	: 0x60c
cpu MHz		: 800.000
cache size	: 6144 KB
physical id	: 0
siblings	: 2
core id		: 1
cpu cores	: 2
apicid		: 1
initial apicid	: 1
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm dtherm tpr_shadow vnmi flexpriority
bogomips	: 5585.95
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual

ويمكن معرفة أن المعالج من نوع 64 أم لا بوجود lm والتي تعني long mode. وبدلاً من بحثها في هذا النص الطويل يمكن البحث عنها في الناتج بإستخدام اﻷمر التالي:

cat /proc/cpuinfo | grep lm
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm dtherm tpr_shadow vnmi flexpriority
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm dtherm tpr_shadow vnmi flexpriority
m

فإذا لم تكن هُناك نتيجة فهذا يعني أن المعالج 32 بت.

  • top

يُستخدم هذا اﻷمر لإستعراض البرامج التي تعمل اﻵن في نظام التشغيل، ويمكن معرفة أيها يستخدم ذاكرة أكبر أو دورات أكبر من المعالج:

top - 20:15:24 up  5:07,  2 users,  load average: 0.15, 0.16, 0.14
Tasks: 175 total,   1 running, 174 sleeping,   0 stopped,   0 zombie
Cpu(s):  4.5%us,  2.0%sy,  0.0%ni, 92.4%id,  1.1%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2973948k total,  2047880k used,   926068k free,   317564k buffers
Swap:  2928636k total,        0k used,  2928636k free,  1011608k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 4080 motaz     20   0  661m 164m  34m S    4  5.7  16:01.69 firefox
 5087 root      20   0     0    0    0 S    2  0.0   0:15.77 kworker/1:0
 5427 motaz     20   0  135m  26m  15m S    2  0.9   1:27.02 plugin-containe
 6346 motaz     20   0  2832 1164  868 R    2  0.0   0:00.02 top
    1 root      20   0  3632 2052 1312 S    0  0.1   0:00.71 init
    2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd
    3 root      20   0     0    0    0 S    0  0.0   0:00.92 ksoftirqd/0
    6 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/0
    7 root      RT   0     0    0    0 S    0  0.0   0:00.11 watchdog/0
    8 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/1
   10 root      20   0     0    0    0 S    0  0.0   0:00.84 ksoftirqd/1
   12 root      RT   0     0    0    0 S    0  0.0   0:00.10 watchdog/1
   13 root       0 -20     0    0    0 S    0  0.0   0:00.00 cpuset
   14 root       0 -20     0    0    0 S    0  0.0   0:00.00 khelper
   15 root      20   0     0    0    0 S    0  0.0   0:00.00 kdevtmpfs
   16 root       0 -20     0    0    0 S    0  0.0   0:00.00 netns
   18 root      20   0     0    0    0 S    0  0.0   0:00.04 sync_supers
   19 root      20   0     0    0    0 S    0  0.0   0:00.00 bdi-default
   20 root       0 -20     0    0    0 S    0  0.0   0:00.00 kintegrityd

ويمكن إغلاق برنامج top بواسطة الحرف q.
يمكن كذلك إغلاق أي برنامج بواسطة الضغط على الحرف k ثم كتابة رقم البرنامج PID

  • df -h

يُستخدم هذا اﻷمر لعرض نظام الملفات المعرفة اﻵن (mounted)  بتفاصيلها، مثل الحجم المستخدم والمتبقي ودليل التعريف mount point:

motaz@motaz-T400:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6       154G   49G   98G  34% /
udev            1.5G  4.0K  1.5G   1% /dev
tmpfs           581M  1.1M  580M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            1.5G  316K  1.5G   1% /run/shm
  • sudo rm mydata -R

يُستخدم هذا اﻷمر لحذف دليل فرعي بمايحتويه من ملفات ودلائل فرعية أخرى.

 

  •  ps -ef

يُستخدم هذا اﻷمر لعرض البرامج التي تعمل في نظام لينكس، سواءً كانت برامج ظاهرة أو تعمل في الخلفية. يمكن إدخال مخرجاتها إلى اﻷمر grep للبحث عن برنامج معين. مثلاً نقوم بتشغيل اﻵلة الحاسبة ثم نبحث عنها بهذا اﻷمر:


ps -ef | grep calc

لتظهر لنا مخرجات كالتالي:


motaz     4337     1  4 08:06 ?        00:00:00 gcalctool
motaz     4343  4222  0 08:06 pts/0    00:00:00 grep --color=auto calc

منها رقم البرنامج process id وهو 4337 في هذا المثال. نلاحظ أنه يوجد سطر آخر يحمل رقم البرنامج رقم 4343، وهو يُمثل أمر البحث نفسه الذي استخدمناه، إذ يوجد فيه كلمة calc. يختلف رقم البرنامج process id في كل مرة نقوم فيها بتشغيل البرنامج. يُمكننا اﻹستفادة من ذلك الرقم لإغلاق البرنامج بواسطة اﻷمر kill

  • kill

يُستخدم هذا اﻷمر لإغلاق البرامج التي تعمل في نظام لينكس  بواسطة أرقامها. مثلاً: لإغلاق برنامج اﻵلة الحاسبة بعد التحصل على رقمه بواسطة اﻷمر ps -ef نقوم بتنفيذ


kill 4337

إحياناً نحتاج لإضافة الباراميتر -9 لإجبار البرامج على اﻹغلاق مثلاً:


sudo kill -9 4337

Advertisements

5 thoughts on “اﻷوامر المهمة في نظام لينكس

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s