B.1. الصَدَفة (shell) والأوامر الأساسية
في عالم يونِكس، يضطر كل مدير نظم إلى استخدام سطر الأوامر عاجلاً أو آجلاً؛ مثلاً، عندما يخفق النظام في الإقلاع بشكل صحيح ويكون وضع الإنقاذ النصي متوفرًا فقط. وبالتالي، فإن القدرة على التحكم بمثل هذه الواجهة هي مهارة إنقاذ أساسية في مثل هذه الحالات.
يلقي هذا القسم نظرة سريعة على الأوامر فقط. كل هذه الأوامر لها العديد من الخيارات التي لم نذكرها هنا، لذلك نرجو أن تتطلع على الوثائق الوافرة في صفحات الدليل (manual pages) الخاصة بها.
B.1.1. استعراض شجرة المجلدات وإدارة الملفات
بمجرد فتح جلسة جديدة، يعرض الأمر pwd
(اختصاراً للعبارة print working directory أو طباعة مجلد العمل) الموقع الحالي في نظام الملفات. يتم تغيير المجلد الحالي باستخدام الأمر cd directory
(الأمر cd
يعني change directory أي تغيير المجلد). يرمز للمجلد الأب بنقطتين دائماً ( ..
)، في حين يرمز للمجلد الحالي بنقطة واحدة ( .
). يسمح الأمر ls
بسرد (listing) محتويات المجلد. إذا لم يُعطَى أية متغيرات، فسيَعرضُ محتويات المجلد الحالي.
$
pwd
/home/rhertzog
$
cd Desktop
$
pwd
/home/rhertzog/Desktop
$
cd .
$
pwd
/home/rhertzog/Desktop
$
cd ..
$
pwd
/home/rhertzog
$
ls
Desktop Downloads Pictures Templates
Documents Music Public Videos
يمكن إنشاء مجلد جديد باستخدام الأمر mkdir directory
، ويمكن إزالة مجلد (فارغ) موجود سابقًا بالأمر rmdir directory
. يسمح الأمر mv
بنقل move و/أو إعادة تسمية الملفات والمجلدات؛ ولإزالة الملفات remove استخدم الأمر rm file
.
$
mkdir test
$
ls
Desktop Downloads Pictures Templates Videos
Documents Music Public test
$
mv test new
$
ls
Desktop Downloads new Public Videos
Documents Music Pictures Templates
$
rmdir new
$
ls
Desktop Downloads Pictures Templates Videos
Documents Music Public
B.1.2. استعراض وتعديل الملفات النصية
يقرأ الأمر cat file
(يعني concatenate ملف إلى جهاز الإخراج القياسي أي ربطه معه) ملفاً ويعرض محتوياته على الطرفية. إذا كان الملف أكبر من أن يتسع في الشاشة، استعمل أمرَ تصفّحٍ مثل less
(أو more
) لعرضه صفحة بعد أخرى.
يشغل الأمر editor
محرر نصوص (مثل vi
أو nano
) ويسمح بإنشاء، وتعديل وقراءة الملفات النصية. يمكن إنشاء الملفات البسيطة أحيانًا من مفسِّر الأوامر مباشرة بفضل خاصية إعادة التوجيه: ينشئ الأمر echo "text" >file
ملفاً باسم file يحتوي على ”text“. من الممكن إضافة سطر إلى آخر هذا الملف أيضًا، باستخدام الأمر echo "moretext" >>file
. لاحظ استخدام >>
في هذا المثال.
B.1.3. البحث عن الملفات، والبحث ضمن الملفات
يبحث الأمر find directory criteria
عن ملفات تحت المجلد directory وفقاً لعدة معايير. المعيار الأكثر استخداماً هو -name name
: الذي يسمح بالبحث عن ملف حسب الاسم.
يبحث الأمر
grep expression files
في محتويات الملفات ويستخلص السطور التي تطابق التعبير النظامي. (انظر الملاحظة الجانبية
أساسيات التعابير المنتظمة). تمكّن إضافة الخيار
-r
البحث التعاودي على جميع الملفات المحتواة في المجلد المعطى كمتغير. هذا يسمح بالعثور على ملف عندما نعلم جزءًا من محتوياته فقط.
يسرد الأمر ps aux
العمليات التي تعمل حالياً ويساعد على التعرف عليها من خلال عرض رقم pid الخاص بها (process id أي معرِّف العملية). بمجرد معرفة pid إحدى العمليات، يسمح الأمر kill -signal pid
بإرسال إشارة إليها (إذا كانت العملية خاصة بالمستخدم الحالي). توجد عدة إشارات؛ أكثرها استخداماً TERM
(طلب إنهاء العملية بلطف) و KILL
(إنهاء قسري).
يسمح مفسر الأوامر أيضاً بتشغيل البرامج في الخلفية إذا اتبعت الأمر بعلامة ”&“. باستخدام هذه العلامة (ampersand)، يتابع المستخدم تحكمه بالصدفة مباشرة بالرغم من أن الأمر لا يزال يعمل (وهو مخفي عن المستخدم؛ كعملية في الخلفية). يسرد الأمر jobs
العمليات التي تعمل في الخلفية حالياً؛ إن تشغيل الأمر fg %job-number
(اختصاراً لكلمة foreground أي الواجهة) يستعيد البرنامج إلى الواجهة. عندما يعمل البرنامج في الواجهة (سواء لأن تشغيله كان عادياً، أو تمت إعادته إلى الواجهة باستخدام fg
)، يوقف المفتاحان Control+Z العملية مؤقتاً ويسمحان بمتابعة التحكم بسطر الأوامر. يمكن بعدها إعادة تشغيل العملية في الخلفية باستخدام bg %job-number
(اختصاراً لكلمة background أي الخلفية).
B.1.5. معلومات النظام: الذاكرة، مساحة الأقراص، الهوية
يعرض الأمر free
معلومات عن الذاكرة؛ يعطي الأمر df
(disk free) تقاريراً عن المساحة المتوفرة على كل واحد من الأقراص المركبة على نظام الملفات. يحوّل خيار -h
(اختصاراً للعبارة human readable) الخاص به الأحجام إلى وحدة أكثر وضوحاً (عادة ميبي بايت أو غيبي بايت). وبنفس الأسلوب، يدعم الأمر free
الخيار -m
والخيار -g
، ويعرض بياناته إما بالميبي بايت أو بالغيبي بايت، على التوالي.
$
free
total used free shared buff/cache available
Mem: 16279260 5910248 523432 871036 9845580 9128964
Swap: 16601084 240640 16360444
$
df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 8108516 0 8108516 0% /dev
tmpfs 1627928 161800 1466128 10% /run
/dev/mapper/vg_main-root 466644576 451332520 12919912 98% /
tmpfs 8139628 146796 7992832 2% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 8139628 0 8139628 0% /sys/fs/cgroup
/dev/sda1 523248 1676 521572 1% /boot/efi
tmpfs 1627924 88 1627836 1% /run/user/1000
يعرض الأمر id
هوية المستخدم الذي يشغل الجلسة، بالإضافة إلى قائمة بالمجموعات التي ينتمي إليها. بما أن الوصول إلى بعض الملفات أو الأجهزة قد يكون محدوداً بأعضاء مجموعة ما، فقد يكون التحقق من عضوية المجموعات مفيداً.
$
id
uid=1000(rhertzog) gid=1000(rhertzog) groups=1000(rhertzog),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),108(netdev),109(bluetooth),115(scanner)