راهنمای کامل خط فرمان لینوکس – بخش دوم(3041 مجموع کلمات موجود در متن) (15140 بار مطالعه شده است) 
استفاده از
پوسته فرمان در لینوکس
هنگامی که یک
فرمان را در پوسته فرمان تایپ میکنید،
میتوانید به آن کاراکترهای دیگری اضافه
کنید تا چگونگی کارکرد دستور مورد نظر را
تغییر دهید.
علاوه
بر خود دستور، موارد دیگری که میتوانید
در خط فرمان تایپ کنید عبارتند از :
-گزینه
ها (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 </tab></tab>
$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
که در
دایرکتوری خانگی شما قرار دارد، ذخیره
میشود و در آن تا ۱۰۰۰ دستور نگهداری
میشود. |