B.1. خط فرمان و دستورات ابتدایی
در دنیای یونیکس، هر مدیر سیستمی دیر یا زود باید با خط فرمان ارتباط برقرار کند؛ برای نمونه، زمانی که سیستم عملکرد صحیح خود را از دست داده و به حالت اضطراری در خط فرمان برده میشود. توانایی مدیریت رابط خط فرمان، یک مهارت حیاتی برای نجات سیستم در چنین شرایطی به حساب میآید.
این قسمت تنها به بررسی اجمالی برخی دستورات میپردازد. تمامی آنها شامل گزینههایی هستند که اینجا به آنها نمیپردازیم، پس برای جزئیات بیشتر به مستندات موجود در صفحات راهنمای آنها مراجعه کنید.
B.1.1. مرور ساختار درختی و مدیریت فایلها
زمانی که ترمینال باز میشود، دستور pwd
(که مخفف print working directory است) مسیر جاری در فایل سیستم را نمایش میدهد. این مسیر توسط cd
قابل تغییر است (که مخفف change directory است). دایرکتوری پدر همیشه با علامت ..
(دو نقطه) فراخوانده میشود، در صورتی که مسیر جاری با علامت .
(یک نقطه) شناخته میشود. دستور ls
جهت نمایش محتویات داخل یک دایرکتوری استفاده میشود. اگر پارامتری داده نشود، بر روی دایرکتوری جاری عمل میکند.
$
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
امکان جابجایی یا نامگذاری مجدد فایلها و دایرکتوریها را به عهده دارد؛ حذف یک فایل توسط دستور rm
انجام میشود.
$
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
(که با هدف الحاق فایلها به خروجی استاندارد ایجاد شده) یک فایل را خوانده و محتویاتش را روی ترمینال نمایش میدهد. اگر فایل بیش از اندازه بزرگ باشد تا محتویاتش روی یک صفحه قابل نمایش باشند، از یک ابزار صفحهبندی مانند 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
به جستجوی محتویات داخل یک فایل پرداخته و خطهایی را که با عبارت باقاعده (regex) همخوانی دارند استخراج میکند (به قسمت کنار صفحهای
بازگشت به مقدمات عبارت منظم مراجعه کنید). اضافهکردن گزینه
-r
امکان جستجو به صورت بازگشتی درون فایلهای یک دایرکتوری را میدهد که نام آن در انتهای دستور ذکر میشود. این امکان به جستجوی فایلهایی کمک میکند که تنها برخی از محتویات آنها قابل دسترسی هستند.
B.1.4. مدیریت فرآیندها (پروسهها)
دستور ps aux
فهرستی از فرآیندهای جاری در سیستم را نمایش میدهد و با نمایش pid (شناسه فرآیند) به شناسایی هر چه بهتر آنها یاری میرساند. زمانی که pid یک فرآیند شناخته شود، دستور kill -signal pid
امکان ارسال یک سیگنال را به آن میدهد (اگر فرآیند به کاربر جاری تعلق داشته باشد). سیگنالهای متفاوتی وجود دارند؛ پرکاربردترین آنها عبارتند از TERM
(درخواست نابودسازی مودبانه) و KILL
(نابودسازی خشن).
مفسر دستور همچنین میتواند برنامهها را در پسزمینه اجرا کند در صورتی که عبارت “&” بعد از دستور قرار بگیرد. با استفاده از امپرسند، کاربر کنترل مجدد خط فرمان را بر عهده میگیرد با اینکه دستور در پسزمینه در حال اجرا است (از دید کاربر مخفی است؛ به عنوان یک فرآیند پسزمینه). دستور jobs
فهرستی از فرآیندهای موجود در پسزمینه را ارائه میدهد؛ اجرای دستور fg %job-number
(برای پیشزمینه) یک کار را به پیشزمینه منتقل میکند. وقتی دستوری در پیشزمینه اجرا میشود (خواه به صورت معمولی اجرا شده باشد، خواه با فراخوانی دستور fg
) ترکیب کلیدهای Control+Z فرآیند را به حالت توقف درآورده و کنترل خط فرمان را به کاربر انتقال میدهد. این فرآیند میتواند با اجرای دستور bg %job-number
(برای پسزمینه) به ادامه فعالیت خود بپردازد.
B.1.5. اطلاعات سیستم: حافظه، فضای ذخیرهسازی، هویت
دستور free
اطلاعات مربوط به حافظه را نمایش میدهد؛ دستور df
(که مخفف disk free است) گزارش میزان فضای باقیمانده روی دیسک در تمام دیسکهای نصب شده روی فایل سیستم را میدهد. گزینه -h
آن (که مخفف human readble است) اندازهها را به واحد خواناتری تبدیل میکند (معمولا مگابایت یا گیگابایت). به روشی مشابه، دستور free
از گزینههای -m
و -g
بهره میبرد و دادهها را به صورت مگابایت یا گیگابایت نمایش میدهد.
$
free
total used free shared buffers cached
Mem: 1028420 1009624 18796 0 47404 391804
-/+ buffers/cache: 570416 458004
Swap: 2771172 404588 2366584
$
df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 9614084 4737916 4387796 52% /
tmpfs 514208 0 514208 0% /lib/init/rw
udev 10240 100 10140 1% /dev
tmpfs 514208 269136 245072 53% /dev/shm
/dev/sda5 44552904 36315896 7784380 83% /home
دستور 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)