خط فرمان لینوکس

ترجمه فارسی LinuxCommand.org

خط فرمان لینوکس

ترجمه فارسی LinuxCommand.org

کار با فرمانها

کار با فرمانها

تا اینجا شما تعدادی از فرمانها با گزینه‌ها و شناسه‌های مبهم آنها را دیده‌اید. در این درس، کوشش خواهیم کرد مقداری از آن ابهام را برطرف نماییم. این درس فرمانهای زیر را معرفی خواهد نمود.

  • type - اطلاعاتی در باره نوع فرمان نمایش می‌دهد
  • which - محل یک فرمان را مشخص می‌کند
  • help - صفحه مرجع داخلی پوسته را نمایش می‌دهد
  • man - برای نمایش یک مرجعِ فرمانِ حین کار است

«فرمانها» کدامند؟

فرمانها می‌توانند در یکی از این چهار دسته متفاوت باشند:

  1. یک برنامه اجرایی مانند تمام فایلهایی که ما در ‎ /usr/bin‎ دیدیم. در داخل این دسته، برنامه‌ها می‌توانند باینری‌های کامپایل شده از قبیل برنامه‌های نوشته شده در C و ‎C++‎ باشند، یا برنامه‌های نوشته شده در زبانهای اسکریپت‌نویسی، از قبیل پوسته، پرل، پایتون، روبی و غیره باشند.
  2. یک فرمان ساخته شده در داخل خود پوسته. bash یک تعداد فرمان از درون فراهم می‌کند که builtinهای پوسته نامیده می‌شوند. برای مثال، فرمان cd یک builtin (داخلی) پوسته است.
  3. یک تابع پوسته. اینها اسکریپت‌های پوسته کوچکی هستند که در داخل محیط ترکیب شده‌اند. ما در درسهای بعدی، پیکربندی محیط و نوشتن توابع پوسته را پوشش خواهیم داد، اما برای حالا، فقط مطلع باشید که آنها وجود دارند.
  4. یک مستعار. فرمانهایی که شما خودتان می‌توانید با ساختن از سایر فرمانها تعریف کنید، این مورد بعداً در یک درس پوشش داده خواهد شد.

شناسایی فرمانها

اغلب دانستن آن که دقیقاً کدامیک از چهار نوع فرمان استفاده می‌شود مفید است و لینوکس دو روش برای پی بردن به آن ارایه می‌کند.

type

فرمان type یک دستور داخلی پوسته است و نوع فرمانی را نمایش می‌دهد که پوسته با یک نام فرمان داده شدهِ بخصوص اجرا خواهد نمود. به این طریق کار می‌کند:

   type command

که در آن «command» نام فرمانی است که شما می‌خواهید بررسی کنید.این هم چند مثال:

[me@linuxbox me]$ type type
type is a shell builtin

[me@linuxbox me]$ type ls
ls is aliased to `ls --color=tty'

[me@linuxbox me]$ type cp
cp is /bin/cp

در اینجا ما نتایج برای سه فرمان متفاوت را می‌بینیم. توجه کنید که در آن مورد مربوط به ls (اخذ شده از یک سیستم فدورا) چطور فرمان ls در حقیقت یک مستعار برای فرمان ls همراه با گزینه افزوده شده ‎-- color=tty‎ است. اکنون می‌دانیم که چرا خروجی ls رنگی نمایش داده می‌شود!

which

گاهی اوقات بیش از یک نگارشِ برنامه قابل اجرای نصب شده روی یک سیستم وجود دارد. در حالیکه این مطلب در سیستم های میزکار رایج نیست، در سرویس‌دهنده‌های بزرگ غیر معمول نیست. برای تعیین محل دقیق یک برنامه اجراشدنیِ مفروض، فرمان which استفاده می‌شود:

[me@linuxbox me]$ which ls
/bin/ls

which تنها برای برنامه‌های قابل اجرا کار می‌کند، نه برای داخلی‌ها و نه برای مستعارهایی که جایگزین برنامه‌های اجرایی واقعی می‌گردند.

دریافت مستندات فرمان

با این آگاهی که یک فرمان از کدام دسته است، اکنون ما می‌توانیم مستندات در دسترس برای هر نوع فرمان را جستجو کنیم.

help

bash دارای یک وسیله help درون ساختِ قابل دسترس برای هر فرمان داخلی پوسته است. برای استفاده آن، help و به دنبال آن نام فرمان داخلی انتخابی پوسته را تایپ کنید، می‌توانید گزینه ‎-m‎ را برای تغییر قالب خروجی اضافه نمایید. برای مثال:

[me@linuxbox me]$ help -m cd

NAME
    cd - Change the shell working directory.

SYNOPSIS
    cd [-L|-P] [dir]

DESCRIPTION
    Change the shell working directory.
    
    Change the current directory to DIR.  The default DIR is the value of the
    HOME shell variable.
    
    The variable CDPATH defines the search path for the directory containing
    DIR.  Alternative directory names in CDPATH are separated by a colon (:).
    A null directory name is the same as the current directory.  If DIR begins
    with a slash (/), then CDPATH is not used.
    
    If the directory is not found, and the shell option `cdable_vars' is set,
    the word is assumed to be  a variable name.  If that variable has a value,
    its value is used for DIR.
    
    Options:
        -L	force symbolic links to be followed
        -P	use the physical directory structure without following symbolic
    	links
    
    The default is to follow symbolic links, as if `-L' were specified.
    
    Exit Status:
    Returns 0 if the directory is changed; non-zero otherwise.

SEE ALSO
    bash(1)

IMPLEMENTATION
    GNU bash, version 4.1.5(1)-release (i486-pc-linux-gnu)
    Copyright (C) 2009 Free Software Foundation, Inc.

یادداشتی در باره نشانه‌گذاری: وقتی براکت‌ها در تعریف ترکیب دستوری پوسته ظاهر می‌شوند، نشان‌دهنده انتخابی بودن اقلام هستند. یک کاراکتر میله عمودی بیانگر اقلام انحصاری دوطرفه (دوگانه غیرقابل جمع) هستند. در مورد فرمان cd فوق:

    cd [-L|-P] [dir]

این نشانه‌گذاری می‌گوید که فرمان cd ممکن است با یکی از گزینه‌های انتخابی ‎-L‎ یا ‎-P‎ و بعلاوه شناسه انتخابی «dir» دنبال شود.

‎--help‎

بسیاری از برنامه های اجرایی از گزینه ‎--help‎ پشتبانی می‌کنند که شرحی از ترکیب دستوری حمایت شدهِ فرمان و گزینه‌هایش را نمایش می‌دهد. برای مثال:

[me@linuxbox me]$ mkdir --help


Usage: mkdir [OPTION] DIRECTORY...
Create the DIRECTORY(ies), if they do not already exist.

   -Z, --context=CONTEXT (SELinux) set security context to CONTEXT
Mandatory arguments to long options are mandatory for short options
too.
   -m, --mode=MODE   set file mode (as in chmod), not a=rwx – umask
   -p, --parents     no error if existing, make parent directories as
                     needed
   -v, --verbose     print a message for each created directory
   --help            display this help and exit
   --version         output version information and exit

بعضی برنامه‌ها گزینه ‎--help‎ را پشتیبانی نمی‌کنند، اما به هرحال آن را امتحان کنید. اغلب به یک پیغام خطایی منجر می‌گردد که مشابه اطلاعات کاربرد فرمان است.

man

اکثر برنامه‌های اجراییِ نامزد به کار رفتن در خط فرمان، یک بخشِ مستندات رسمی فراهم می‌کنند که یک manual یا صفحه man نامیده می‌شود. یک برنامه صفحه‌بندی خاص به نام man برای دیدن آنها به کار می‌رود. این برنامه به این شکل استفاده می‌شود:

    man program

که در آن «program» نام فرمان مورد نظر برای دیدن مستندات آن است. قالب صفحه‌های Man تا اندازه‌ای تغییر می‌کند اما به طور کلی یک عنوان، یک خلاصه ترکیب دستوری فرمان، یک شرح در باره هدف فرمان، و فهرستی از گزینه‌های فرمان با شرحی در باره هر یک از آنها را شامل می‌گردد. به هر حال صفحه‌های Man، معمولاً شامل مثال نیستند، و به عنوان یک مرجع در نظر گرفته می‌شوند، نه راهنمای آموزشی. به عنوان یک مثال، بیایید مشاهده صفحه man برای فرمان ls را امتحان کنیم:

[me@linuxbox me]$ man ls

در اکثر سیستم‌های لینوکس، برنامه man از less برای نمایش صفحه مستندات استفاده می‌کند، بنابراین تمام فرمانهای آشنای less در خلال نمایش صفحه کار می‌کنند.

README و سایر فایلهای مستندات

بسیاری از برنامه‌های نرم‌افزاری نصب شده در سیستم شما دارای فایلهای مستنداتِ مقیم در دایرکتوری ‎/usr/share/doc‎ هستند. بیشتر این مستندات در قالب متن ساده ذخیره می‌شوند و می‌توانند با برنامه less مشاهده بشوند. برخی از فایلها در قالب HTML هستند و می‌توانند با مرورگر وب شما دیده شوند. شما ممکن است با فایلهایی روبرو شوید که به پسوند ‎.gz‎ ختم می‌شوند. این پسوند نشان دهنده آن است که آنها با برنامه فشرده سازی gzip فشرده گردیده‌اند. بسته gzip یک نگارش خاص از برنامه less به نام zless را شامل می‌شود که محتویات فایلهای متن فشرده شده با gzip را نمایش می‌دهد.