|
راهنمای کار با خط فرمان متنی لینوکس – بخش دوم
استفاده از پوسته فرمان در لینوکس
هنگامی که یک فرمان را در پوسته فرمان تایپ میکنید، میتوانید به آن
کاراکترهای دیگری اضافه کنید تا چگونگی کارکرد دستور مورد نظر را تغییر
دهید. علاوه بر خود دستور، موارد دیگری که میتوانید در خط فرمان تایپ کنید
عبارتند از :
-گزینه ها (Options)
:
اکثر فرامین دارای یک یا چند گزینه هستند که با اضافه کردن و بکار بردین
این گزینه ها میتوانید نحوه رفتار فرمان را تغییر دهید. برای مثال همانطور
که قبلا هم دیدید، در فرمان
ls
-la
گزینه
l
برای نمایش لیست مشروح فایلها و دایرکتوری ها و گزینه
a
برای نمایش فایلهای مخفی که با نقطه شروع میشدند، بکار رفت.ضمنا گزینه هایی
که مخفف یک کلمه هستند با یک - شروع میشوند در صورتی که گزینه هایی که یک
کلمه کامل هستند با -- شروع میشوند . برای مثال
ls --help
.
- آرگومان ها (Arguments):
بسیاری از فرامین، علاوه بر گزینه ها ، آرگومانهایی را نیز قبول میکنند. یک
آرگومان یک بخش شامل نوعی اطلاعات مانند مسیر یا نام فایل میباشد. برای
مثال در فرمان
ls -la /home
بخش
home
آرگومان فرمان
ls
به شمار میرود.
- متغییر های محیطی (Environment
Variables):
خود پوسته اطلاعاتی را در بر دارد که برای کاربر مفید است. به این اطلاعات
متغییرهای محیطی می گویند. برای مثال متغییر
SHELL
نمایانگر نوع پوسته مورد استفاده ،
SP1
نشاندهنده اعلان فرمان و
MAIL
نشاندهنده محل صندوق پستی شما است :
$ echo $SHELL
/bin/bash
$ echo $MAIL
/var/spool/mail/Alan
توجه داشته باشید که برای فراخوانی متغییر ها به ابتدای آنها علامت $ اضافه
میشود.
|
نکته
: برای نمایش تمام متغییرهای محیطی میتوانید از دستور
declare
استفاده کنید. برای نمایش یک متغییر خاص میتوانید همانند
بالا از دستور
echo
استفاده کنید.
|
- کاراکترهای ویژه (Metacharacters):
کاراکترهایی وجود دارند که دارای معنای خاصی برای پوسته فرمان هستند. این
کاراکترها میتوانند برای هدایت خروجی یک فرمان به یک فایل ، لوله بندی
خروجی یک فرمان و یا اجرای فرمان در پس زمینه استفاده شوند. کاراکترهای
ویژه در این فصل توضیح داده خواهند شد.
برای صرفه جویی در مقدار تایپ و آسانتر شدن کار ، پوسته فرمان دارای
ویژگیهایی است که دستورات قبلی تایپ شده را نگهداری میکند. همچنین شما
میتوانید برای آسانتر شدن، نامهای مستعاری برای دستورات ایجاد کنید. پوسته
فرمان دستوراتی که قبلا وارد کرده اید ذخیره میکند و میتوانید بجای تایپ
مجدد دستورات ، دستورات قبلی را فراخوانی نمایید. این موضوع نیز جلوتر
بررسی خواهد شد.
در صورتی که پوسته فرمان را تغییر داده نباشید، پوسته
bash
پوسته ای است که همراه با لینوکس استفاده میکنید. پوسته
bash
از نظر امکانات و قابلیتها قویتر از انواع دیگر پوسته های فرمان است. در
این فصل بیشتر قابلیتهای پوسته فرمان
bash
بررسی خواهند شد. ولی در صورتی که نیاز به اطلاعات بیشتری داشتید، میتوانید
از دستور
man bash
برای نمایش راهنمای پوسته
bash
استفاده کنید.
یافتن فرمانهای لینوکس
در صورتی که بدانید که یک دستور در کجای سیستم فایل لینوکس قرار دارد،
میتوانید آنرا با تایپ مسیر کامل اجرا نمایید. برای مثال برای اجرای دستور
date
:
$ /bin/date
البته در صورتی که دستوری در مسیرهای سخت و طولانی قرار داشته باشد ، این
کار دشوار خواهد بود. بهترین راه حل این مشکل، نگهداری فرامین در یک
دایرکتوری خاص است. سپس میتوانید این دایرکتوری را به مسیر جستجوی پوسته
فرمان خود اضافه کنید تا هنگام تایپ یک فرمان، خود پوسته بطور خودکار
دایرکتوری فوق را برای وجود فرمان کاوش کند :
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/Alan/bin
خروجی فرمان فوق مسیرهای تعریف شده برای پوسته فرمان را برای یک کاربر خاص
نشان میدهد. همانطور که می بینید دایرکتوری ها توسط یک کلون از هم جدا شده
اند. بیشتر دستوراتی که همراه با لینوکس ارائه میشوند، در دایرکتوری های
bin
،
usr/bin
یا
usr/local/bin
قرار دارند. دستورات گرافیکی که با محیطهای گرافیکی استفاده میشوند در
مسیرهای
usr/bin/X11
و
usr/X11R6/bin
قرار دارند. آخرین دایرکتوری نشان داده شده در خروجی فرمان، در دایرکتوری
خانگی کاربر قرار دارد.
|
نکته
: در صورتی که مایلید دستوراتی که خود ایجاد میکنید
مستقیما در خط فرمان اجرا شوند، میتوانید یک دایرکتوری به
نام
bin
در دایرکتوری خانگی خود ایجاد کنید و این دستورات را در
آنجا ذخیره کنید. لینوکس این دایرکتوری را بطور خودکار به
مسیرهای تعریف شده اضافه میکند.
|
در صورتی که شما کاربر ریشه هستید، دستورات مربوط به مدیریت سیستم در
دایرکتوری های
sbin
و
usr/sbin
قرار دارند.
ترتیب دایرکتوری های موجود در مسیرهای تعریف شده نیز مهم است. این
دایرکتوری ها از چپ به راست بررسی میشوند. بنابراین اگر دستوری به نام
foo
هم در دایرکتوری
usr/bin
و هم در دایرکتوری
bin
قرار داشته باشد، اولی اجرا خواهد شد. برای اجرای دستور دوم
foo
باید مسیر کامل آنرا تایپ کنید و یا مسیرهای تعریف شده را تغییر دهید.
چگونگی این کار جلوتر توضیح داده خواهد شد.
تمام فرامینی که تایپ میکنید، در دایرکتوری های مسیرهای تعریف شده شما قرار
ندارند. برخی فرامین بصورت درونی در پوسته فرمان گنجانده شده اند. در صورتی
که برای یک فرمان خاص یک نام مستعار همراه با گزینه ها و آرگومانهای خاص
ایجاد کنید، ابتدا آن اجرا میشود. همچنین راههایی برای ایجاد توابعی که
شامل چندی فرمان هستند نیز وجود دارد. ترتیب بررسی محلهای مختلفی که پوسته
فرمان برای پیداکردن یک دستور انجام میدهد به شرح زیر است :
- نامهای مستعار :
نامهایی که با دستور
alias
ایجاد شده اند و نشانگر یک دستور به همراه گزینه ها و آرگومانهای احتمالی
میباشند.
- کلمات رزرو شده پوسته فرمان :
کلماتی هستند که برای استفاده های مخصوص رزرو شده اند. بیشتر این کلمات
دستوراتی هستند که معمولا در زبانهای برنامه نویسی استفاده میشوند مانند
do
،
while
،
case
و غیره.
- توابع :
دسته ای از دستورات که همراه هم در پوسته فرمان اجرا میشوند.
- دستورات درونی :
دستوراتی که درون خود پوسته فرمان گنجانده شده اند.
- دستورات سیستم فایل :
دستورات معمولی که بصورت فایلهایی در سیستم فایل لینوکس قرار دارند.
مسیرهای این دستورات در متغییر محیطی
PATH
گنجانده شده است.
|
نکته
: برای نمایش لیستی از فرامین درونی
bash
و گزینه های آن میتوانید از دستور
help
استفاده کنید. برای نمایش اطلاعات بیشتر در مورد دستور
مورد نظر از دستور
info
بعلاوه نام دستور مورد نظر استفاده کنید.
|
برای اینکه بفهمید که یک دستور در کجا قرار دارد، میتوانید از دستور
type
برای این منظور استفاده کنید. برای مثال :
$type bash
bash is /bin/bash
از دستور بالا برای یافتن محل فرامیت دیگری مانند
which،
case
و ... استفاده کنید. در صورتی که دستوری در چندین دایرکتوری قرار دارد،
میتوانید با اضافه کردن گزینه
a
به دستور
type،
تمام محلهای وجود آنرا چاپ کنید.
|
نکته
:گاهی اوقات هنگام اجرای یک فرمان با خطاهایی مانند "این
فرمان پیدا نشد" و یا "شما مجوز استفاده از این فرمان را
ندارید" مواجه میشوید. برای مورد اول بررسی کنید که دستور
را صحیح تایپ کرده اید و مسیر آن در مسیر
PATH
شما قرار داشته باشد. ممکن است فرمان مورد نظر اجرایی
نباشد. در بخش کارکردن با فایلها، چگونگی اجرایی کردن یک
فایل تشریح خواهد شد.
|
اجرای مجدد یک فرمان
تصور کنید یک فرمان بسیار طولانی را تایپ کرده اید و پس از اجرای آن متوجه
میشوید که مرتکب اشتباه شده اید. مطمئنا چیزی دردآور تر از این وجود ندارد!
پوسته فرمان دارای قابلیتهایی است که میتوانید بوسیله آن دستوراتی که قبلا
اجرا کرده اید فراخوانی کرده و در صورت لزوم پس از اصلاح یا تغییر وحتی
بدون تغییر آنها را مجددا اجرا کنید.
پوسته فرمان دارای قسمتی به نام تاریخچه
(History)
است که فرامینی که
قبلا وارد کرده اید را نگهداری میکند.
شما
میتوانید این فرامین را از تاریخچه فراخوانی کرده و استفاده
کنید.
ویرایش خط فرمان
در صورتی که در تایپ یک دستور مرتکب اشتباه شده اید، میتوانید به آسانی
آنرا فراخوانی کرده و مجددا پس از ویرایش ، آنرا اجرا کنید. میتوانید از
برخی کلیدهای میانبر برای راحت تر کردن این کار استفاده کنید. مثلا کلیدهای
Ctrl+a
اشاره گر را به ابتدای فرمان و
Ctrl+E
به انتهای فرمان حرکت می دهد. همین کار را کلیدهای
Home
و
End
نیز انجام میدهند. ویرایش کردن فرمان مانند کارکردن در ویرایش گرهای متنی
است و بسیار ساده است. پس اتمام ویرایش دستور، کافی است کلید
Enter
را برای اجرای آن فشار دهید.
کامل کردن خودکار فرمان
برای اینکه مقدار تایپ شما به حداقل برسد، پوسته فرمان فرمان ناقص شما را
به روشهایی کامل میکند. . برای بکارگیری این قابلیت کافی است که ابتدا چند
حرف اول فرمان مورد نظر را تایپ کرده و کلید
tab
را فشار دهید. در زیر برخی موارد را که میتوانید ناقص تایپ کنید می بینید :
- متغییر های محیطی :
در صورتی که متن با یک علامت دلار شروع شود، با فشردن کلید
tab
، پوسته فرمان آنرا با یک متغییر محیطی کامل خواهد کرد.
- نام کاربری :
در صورتی که متن بوسیله یک کاراکتر ~ شروع شود، پوسته فرمان آن را بوسیله
یک نام کاربری کامل خواهد کرد.
- دستورات، نامهای مستعار یا توابع :
در صورتی که متن با یک کاراکتر عادی شروع شود، پوسته فرمان آنرا بوسیله یک
دستور، نام مستعار یا تابع کامل خواهد کرد.
- نام میزبان :
در صورتی که متن با یک علامت @ شروع شود، پوسته فرمان آنرا بوسیله یک نام
میزبان که از فایل
etc/hosts
می خواند، کامل میکند.
مواقعی وجود دارد که برای کامل کردن یک فرمان چندین گزینه وجود دارد . مثلا
چندین متغییر محیطی وجود دارد که با حرف
P
شروع میشود. در این موارد در صورتی که شما دوبار کلید
Tab
را فشار دهید و یا کلیدهای
Esc+?
را فشار دهید، تمام حالتهای ممکن به شما نشان داده میشود :
$ echo $P<tab><tab> or <Esc+?>
$PATH $PPID $PS1 $PS4
$PIPESTATUS $PROMPT_COMMAND $PS2 $PWD
فراخوانی مجدد یک فرمان
پس از اینکه یک دستور را تایپ کردید، همانطوری که قبلا گفتم این دستور بطور
کامل در تاریخچه پوسته فرمان ذخیره میشود. برای نمایش محتویات تاریخچه
پوسته فرمان میتوانید از دستور
history
استفاده کنید. در صورتی که پس از آن یک عدد اضافه کنید، به تعداد آن عدد
دستورات تایپ شده را نشان خواهد داد :
$ history 5
1023 ls
1024 cd Fonts/
1025 man more
1026 date
1027 history 5
برای فراخوانی دستورات تایپ شده میتوانید از روشهای زیر استفاده کنید:
-کلیدهای مکان نما :
از کلیدهای بالا و پایین مکان نما میتوانید برای حرکت کردن در لیست تاریخچه
استفاده کنید. بجای آن از کلیدهای
Ctrl+n
و
Ctrl+p
نیز میتوانید استفاده کنید.
-کلیدهای
Ctrl+r:
برای جستجوی آخر به اول یک رشته در تاریخچه استفاده میشود. برای مثال با
تایپ یک یا چند حرف، دستوری که دارای آن حروف است نمایش داده میشود.
-کلیدهای
Ctrl+s:
مشابه بالا ولی جستجو بصورت اول به آخر صورت میگیرد.
روش دیگری که میتوانید از آن برای کار کردن با فرامین استفاده کنید، دستور
fc
است. با استفاده از این دستور، که پس از آن میتوانید شماره دستور مورد نظر
در تاریخچه یا بازه ای از شماره ها را ذکر کنید، این دستورات در یک
ویرایشگر متنی باز میشوند که میتوانید آنها را ویرایش کرده و خارج شوید.
برای مثال دستور زیر دستورات ۱۰۰ ام تا ۱۵۰ ام تاریخچه را در ویرایشگر باز
خواهد کرد :
$ fc 100 150
لیست تاریخچه در فایلی به نام .bash_history
که در دایرکتوری خانگی شما قرار دارد، ذخیره میشود و در آن تا ۱۰۰۰ دستور
نگهداری میشود.
بخش سوم بزودی...
با تشکر
موفق باشید.A.M
|