جستجو برای:
سبد خرید 0
  • صفحه اصلی
  • دوره‌های آموزشی
  • وبلاگ
  • درباره ما
  • قوانین و مقررات
  • همکاری با ما
  • تماس با ما
محتوای باز
ورود
[suncode_otp_login_form]
گذرواژه خود را فراموش کرده اید؟
عضویت
[suncode_otp_registration_form]
  • خانه
  • کتاب آنلاین
  • درباره سایت
  • درباره لوگو
  • تماس با ما
محتوای باز
  • صفحه اصلی
  • دوره‌های آموزشی
  • وبلاگ
  • درباره ما
  • قوانین و مقررات
  • همکاری با ما
  • تماس با ما
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0
[wcas-search-form]

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

3 تیر 1399
ارسال شده توسط فرشید نوتاش حقیقت
خط فرمان، گنو/لینوکس
کار کردن با فرمان‌ها

در این آموزش به کار کردن با فرمان‌ها اعم از type، which، man، apropos، info، whatis و alias خواهیم پرداخت.

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

  • یک برنامه اجرایی مانند فایل‌های موجود در /usr/bin که در این دسته می‌توان به برنامه‌هایی که قابلیت کامپایل دارند از قبیل برنامه‌های نوشته شده در C و C++ یا برنامه‌های نوشته شده در زبان‌های اسکریپت‌نویسی شامل Shell، Perl، Python، Ruby و نظایر آن اشاره داشت.
  • فرمان تولید شده توسط خود پوسته (Shell). Bash از تعدادی از فرمان‌ها پشتیبانی می‌کند که فرمان‌های درون‌ساخت پوسته (shell builtins) نامیده می‌شوند. به‌عنوان مثال فرمان cd یک فرمان shell builtins نامیده می‌شود.
  • یک تابع پوسته (shell function). توابع پوسته شامل اسکریپت‌های پوسته بوده که در محیط قرار گرفته‌اند. پیکربندی محیط و نوشتن توابع پوسته در آموزش‌های بعدی تحت پوشش قرار خواهند گرفت.
  • یک نام مستعار (alias). alias فرمانی است که خودمان به کمک دیگر فرمان‌ها می‌توانیم تعریف کنیم.

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

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

روش اول، فرمان type که نوع فرمان را نمایش می‌دهد.

فرمان type یک فرمان shell builtin بوده که نوع فرمان را با توجه به نام فرمان نشان می‌دهد که به شکل زیر به کار گرفته می‌شود:

type command

که به جای command می‌بایست نام فرمانی را که می‌خواهید بررسی شود قرار دهید. در ادامه چندین مثال از فرمان type آورده شده است:

[me@linuxbox ~]$ type type
type is a shell builtin
[me@linuxbox ~]$ type ls
ls is aliased to `ls --color=tty'
[me@linuxbox ~]$ type cp
cp is /bin/cp

روش دوم، فرمان which که محل اجرای فرمان را مشخص می‌کند.

گاهی اوقات چندین نسخه از برنامه اجرایی بر روی یک سیستم نصب می‌شود. به منظور تعیین محل دقیق یک فرمان اجرایی، فرمان which کاربرد دارد که بدین صورت استفاده می‌شود:

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

فرمان which فقط مختص برنامه‌های اجرایی است نه builtin و یا نام مستعاری که برای برنامه‌های اجرایی است. هنگامی که ما سعی می‌کنیم از یک فرمان builtin به عنوان مثال، فرمان cd استفاده کنیم هیچ پاسخی دریافت نکرده و یا با پیغام خطا مواجه خواهیم شد:

[me@linuxbox ~]$ which cd
/usr/bin/which: no cd in (/opt/jre1.6.0_03/bin:/usr/lib/qt-3.3/bin:/usr/kerber
os/bin:/opt/jre1.6.0_03/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/home
/me/bin)

پیغام فوق به‌طور فانتزی می‌گوید: «فرمان پیدا نشد! (command not found)»

دریافت مستندات فرمان‌های لینوکس با کمک فرمان help

بش (bash) دارای یک مرکز درونی کمک برای فرمان‌های shell builtin می‌باشد. برای استفاده از آن help را به همراه نام فرمان مورد نظر تایپ نموده و اجرا نمایید. برای مثال:

[me@linuxbox ~]$ help cd
cd: cd [-L|-P] [dir]
Change the current directory to DIR. The variable $HOME is the default DIR.
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, i.e. `.'. 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, then try the word as a variable name.
If that variable has a value, then cd to the value of that variable. The -P
option says to use the physical directory structure instead of following
symbolic links; the -L option forces symbolic links to be followed.

آیتم‌هایی که درون براکت هستند، آیتم‌هایی اختیاری هستند. علامت | (خط عمودی) نیز نشان‌دهنده آیتم‌های اختصاصی و انحصاری است.

فرمان –help نمایش اطلاعات مفید فرمان

بسیاری از برنامه‌های اجرایی از فرمان –help  پشتیبانی می‌کنند که توضیح نحو (syntax) و گزینه‌های (options) پشتیبانی شده یک فرمان را نشان می‌دهد. به‌عنوان مثال:

[me@linuxbox ~]$ 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
Report bugs to <bug-coreutils@gnu.org>.

نمایش صفحه راهنمای برنامه‌های لینوکس به کمک فرمان man

اکثر برنامه‌های اجرایی که برای استفاده از خط فرمان در نظر گرفته شده مستندات رسمی به نام man page ارائه می‌دهند. شکل اجرای این فرمان به‌صورت زیر است:

man program

کافی است به جای program فرمان مورد نظر را برای مشاهده تایپ نمایید.

Man pageها تا حدودی در فرمت متفاوت هستند، اما به‌طور معمول شامل یک عنوان، خلاصه‌ای از نحو (syntax) فرمان، شرحی از هدف فرمان و فهرست یا توضیحاتی از گزینه‌های فرمان می‌باشند.

با این حال man pageها معمولاً مثالی را شامل نمی‌شوند و به عنوان یک مرجع، نه یک آموزش در نظر گرفته می‌شوند.

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

بخشمحتویات
1فرمان‌های کاربر
2رابط‌های برنامه‌نویسی برای تماس‌های سیستم هسته
3رابط‌های برنامه‌نویسی برای کتابخانه C
4فایل‌های ویژه مثل نودهای دیوایس و درایوها
5فرمت فایل‌ها
6بازی‌ها و آرگومان‌هایی مثل اسکرین‌سیورها
7متفرقه
8فرمان‌های مدیریت سیستم

گاهی اوقات نیاز داریم تا به یک بخش از صفحه manual نگاه کنیم تا چیزی که دنبال آن هستیم را پیدا کنیم. اگر که شماره بخش مورد نظر را در فرمان تعیین نکنیم، همیشه اولین نمونه منطبق را دریافت خواهیم کرد که به احتمال زیاد در بخش ۱ باشد. برای تخصیص شماره بخش به فرمان، به شکل زیر عمل می‌کنیم:

man section search_term

که در اینجا search_term همان مورد جستجوی ماست. به عنوان مثال:

[me@linuxbox ~]$ man 5 passwd

با اجرای صفحه راهنمایی را خواهیم دید که فرمت فایل /etc/passwd را شرح می‌دهد.

نمایش فرمان‌های مناسب با کمک فرمان apropos

گاهی اوقات نیاز داریم که لیست صفحات manual را برای یک مورد خاص جستجو نماییم. در ادامه مثالی از جستجوی صفحات راهنما را برای floppy آورده شده است:

[me@linuxbox ~]$ apropos floppy
create_floppy_devices (8) - udev callout to create all possible
floppy device based on the CMOS type
fdformat (8) - Low-level formats a floppy disk
floppy (8) - format floppy disks
gfloppy (1) - a simple floppy formatter for the GNOME
mbadblocks (1) - tests a floppy disk, and marks the bad
blocks in the FAT
mformat (1) - add an MSDOS filesystem to a low-level
formatted floppy disk

فیلد اول در هر خط خروجی نام صفحه راهنماست و فیلد دوم نشان‌دهنده بخش مورد نظر می‌باشد. به یاد داشته باشید که گزینه –k با فرمان man دقیقاً مانند عملکرد apropos عمل خواهد کرد.

نمایش توصیفی مختصر از یک فرمان با کمک فرمان whatis

فرمان whatis نام و شرحی یک خطی از یک صفحه راهنما را مطابق با یک کلمه مشخص، نمایش می‌دهد.

[me@linuxbox ~]$ whatis ls
ls (1) - list directory contents

نمایش اطلاعات ورودی یک برنامه با کمک فرمان info

پروژه GNU یک جایگزین برای صفحات man با نام info page ارائه نموده است. صفحات اطلاعات در برنامه‌ای با نام info نمایش داده می‌شود. صفحات info مانند صفحات وب دارای لینک‌هایی هستند.

برنامه info فایل‌های صفحات info را می‌خواند و در یک ساختار درختی در nodeهای جداگانه نشان می‌دهد. هر نود شامل یک عنوان جداگانه است. فایل‌های info شامل لینک‌هایی هستند که شما را به nodeهای دیگر هدایت می‌کند. لینک‌ها از طریق علامت * (ستاره در اولشان) شناسایی شده و با قرار دادن نشانگر بر روی آن‌ها و فشار دادن کلید Enter اجرا می‌شوند. برای دریافت اطلاعات اطلاعات می‌توانید info را به دنبال نام برنامه تایپ کنید، به عنوان مثال:

File: coreutils.info, Node: ls invocation, Next: dir invocation, Up:
Directory listing
10.1 `ls': List directory contents
==================================
The `ls' program lists information about files (of any type, including
directories). Options and file arguments can be intermixed arbitrarily, as
usual.
For non-option command-line arguments that are directories, by default `ls'
lists the contents of directories, not recursively, and omitting files with
names beginning with `.'. For other non-option arguments, by default `ls'
lists just the filename. If no non-option argument is specified, `ls' operates
on the current directory, acting as if it had been invoked with a single
argument of `.'.
By default, the output is sorted alphabetically, according to the
--zz-Info: (coreutils.info.gz)ls invocation, 63 lines --Top----------

جدول زیر فرمان‌هایی که به منظور کنترل صفحه هنگام خواندن صفحات info استفاده می‌شود را نشان می‌دهد:

فرمانعملکرد
?نمایش راهنمای فرمان
PAGE UP یا BACKSPACEنمایش صفحه قبل
PAGE DOWN یا Spacebarنمایش صفحه بعد
nبعدی - نمایش نود بعد
pقبلی - نمایش نود قبل
uبالا - نمایش نود والد از نود اخیر نمایش داده شده
ENTERلینک را در موقعیت مکان‌نما دنبال می‌کند
qخروج

ایجاد فرمان‌ها به کمک فرمان alias

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

command1; command2; command3..

به عنوان مثال:

[me@linuxbox ~]$ cd /usr; ls; cd -
bin games kerberos lib64 local share tmp
etc include lib libexec sbin src
/home/me
[me@linuxbox ~]$

همانطور که مشاهده می‌شود سه فرمان را در یک خط قرار داده‌ایم. ابتدا دایرکتوری را به مسیر /usr تغییر داده‌ایم، سپس لیست محتویات دایرکتوری را نمایش داده‌ایم و در نهایت با کمک فرمان cd به دایرکتوری اصلی بازگشتیم.

اولین چیزی که بایستی برای دستور خود تصور کنیم یک نام برای فرمان جدید است. چون این فقط یک آزمایش است نام test را انتخاب می‌نماییم. البته بهتر است تست کنیم که کسی قبلاً از این اسم استفاده نکرده است. با فرمان type می‌توان به این مطلوب رسید:

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

مشاهده می‌شود که این نام قبلاً انتخاب و استفاده شده است. حال foo را آزمایش می‌کنیم:

[me@linuxbox ~]$ type foo
bash: type: foo: not found

خوشبختانه foo در بین فهرست فرمان‌های لینوکس موجود نیست. در ادامه با کمک فرمان alias فرمان جدید را ایجاد می‌کنیم:

[me@linuxbox ~]$ alias foo='cd /usr; ls; cd -'

ساختار این فرمان بدین شکل است:

alias name='string'

پس از فرمان alias نامی را برای فرمان جدید تایپ کرده و بدون هیچ فاصله‌ای با قرار داد یک علامت مساوی دو علامت کوتیشن را قرار می‌دهیم و درون آن رشته‌ای را که می‌خواهیم اجرا شود را قرار می‌دهیم. پس از این کار، فرمان جدید همواره قابل اجراست.

[me@linuxbox ~]$ foo
bin games kerberos lib64 local share tmp
etc include lib libexec sbin src
/home/me
[me@linuxbox ~]$

می‌توانیم فرمان foo را با کمک فرمان type بررسی کنیم:

[me@linuxbox ~]$ type foo
foo is aliased to `cd /usr; ls ; cd -'

برای حذف آن نیز می‌توان از فرمان unalias کمک گرفت:

[me@linuxbox ~]$ unalias foo
[me@linuxbox ~]$ type foo
bash: type: foo: not found

در تعریف فرمان‌ها با کمک alias مشکلی وجود دارد به‌طوریکه با بستن ترمینال همه چیز پاک می‌شود! در این درس کار کردن با فرمان‌ها را آموزش دادیم و در درس‌های بعدی خواهید آموخت که چگونه فرمان‌های alias خود را در قالب فایل‌هایی به محیط اضافه کنید تا هر زمان که وارد سیستم می‌شویم این فرمان‌ها به‌صورت خودکار تعریف شوند.

منبع: لینوکس سیزن نوشته فرشید نوتاش حقیقت
برچسب ها: CLICommand Lineخط فرمانخط فرمان لینوکسگنو/لینوکسلینوکس
درباره فرشید نوتاش حقیقت

همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرم‌افزارهای آزاد/ متن‌باز و سیستم‌عامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.

نوشته‌های بیشتر از فرشید نوتاش حقیقت
قبلی مدیریت فایل‌ها و دایرکتوری‌ها در خط فرمان
بعدی هدایت و تغییر مسیر در خط فرمان لینوکس

دیدگاهتان را بنویسید لغو پاسخ

این سایت از اکیسمت برای کاهش جفنگ استفاده می‌کند. درباره چگونگی پردازش داده‌های دیدگاه خود بیشتر بدانید.

جستجو
جستجو برای:
دسته‌بندی موضوعی مقالات
  • برنامه‌نویسی
    • پایتون
    • دواپس
  • پایگاه‌داده
    • MariaDB
    • MySQL
  • تجارت الکترونیک
    • بازاریابی اینترنتی
    • دیجیتال مارکتینگ
    • شبکه‌های اجتماعی
  • جامعه کاربری
    • لاگ
  • دسته‌بندی نشده
  • شبکه و امنیت
  • طراحی وب
    • سئو
    • سیستم مدیریت محتوا
      • وردپرس
  • فناوری‌های نوظهور
    • اینترنت اشیاء
    • رایانش ابری
      • OpenStack
    • کلان‌داده‌ها
  • گنو/لینوکس
    • توزیع
      • CentOS
      • اوبونتو
      • دبیان
      • فدورا
    • چیست
    • خط فرمان
  • مهاجرت به آزاد/متن‌باز
  • نرم‌افزار
    • اداری
      • لیبره آفیس
        • ایمپرس
        • بیس
        • دراو
        • رایتر
        • کالک
    • کاربردی
    • گرافیک و انیمیشن
      • بلندر
      • گیمپ
نماد الکترونیکی (اینماد)
پرداخت‌یار

محتوای باز؛ مرجع آموزشی نرم‌افزارهای آزاد/ متن‌باز

از اینکه قصد همکاری با رسانه «محتوای باز» را دارید بسیار خرسندیم و این مایه مباهات ماست.

نحوه همکاری با ما چندان پیچیده نیست و شرایط آن در ادامه، ارائه گردیده است.

دستمزد مدرسین

پیش از بیان شرایط ضبط ویدئو شایان ذکر است اشاره‌ای به دستمزد مدرسین سایت داشته باشیم.

شما ممکن است در دو حالت تمایل به نشر ویدئو خود را داشته باشید: یا آن را رایگان در اختیار عموم قرار دهید و یا اینکه در قبال فروش آن از خریدار وجه مربوطه محصول را اخذ نمایید.

صرف نظر از هر حالت ممکنه، می‌بایست شرایطی که در ادامه ذکر شده‌اند را رعایت کرده باشید.

در حالت اول (رایگان) رسانه محتوای باز (Open Content)، نه وجهی از شما برای نشر ویدئو می‌گیرد و نه وجهی به شما پرداخت می‌نماید و دوره آموزشی شما را به رایگان منتشر می‌کند.

اما در حالت بعدی طریقه همکاری به روش درآمد از فروش خواهد بود، به گونه‌ای که 70 درصد از کل مبلغ فروش دوره آموزشی متعلق به مدرس دوره بوده و 30 درصد مابقی به رسانه محتوای باز تعلق می‌گیرد.

شرایط کلی ضبط دوره آموزشی

دوره آموزشی مربوطه، صرف نظر از هر محتوایی که دارد می‌بایست در یکی از توزیعات گنو/لینوکسی ضبط شده باشد. (به‌عنوان مثال دوره دروپال در اوبونتو، دوره آموزشی کار با آردوینو در دبیان و امثالهم). اگر دوره آموزشی شما در محیط ویندوز و یا هر پلتفرم/سیستم‌عامل دیگری ضبط شده باشد از همکاری با شما معذوریم.

پیشنهاد می‌گردد برای ضبط دوره آموزشی در توزیع گنو/لینوکس از ابزار قدرتمند OBS استفاده نمایید. البته این صرفا یک پیشنهاد است و شما می‌توانید از هر ابزار مناسب دیگری برای این کار بهره ببرید.

برای آشنایی یا تسلط بیشتر می‌توانید دوره رایگان آموزش OBS محمد عابدینی را ببینید:

مشاهده دوره آموزش OBS
شرایط کیفی ضبط دوره آموزشی

کیفیت صدا از اهمیت ویژه‌ای برخوردار می‌باشد و می‌بایست فاقد هر گونه نویز یا صدای اضافی دیگری (صدای محیط پیرامون) باشد.

دوره آموزشی تهیه شده صرفا باید برای رسانه محتوای باز تدوین شده باشد و در هیچ سایت مشابه دیگری قرار نگرفته باشد.

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

دوره آموزشی ضبط شده می‌باید فاقد هر گونه لوگو یا آدرس سایت دیگری (در گوشه تصویر یا بک‌گراند صفحه دسکتاپ و هر جای دیگری) باشد.

در حین دوره، مدرس نباید به برند خاصی اشاره کند که جز رقبای ما به‌شمار می‌آیند.

مدرس باید در ابتدا در اواسط و در انتهای دوره به برند ما یعنی رسانه محتوای باز (Open Content) بصورت کلامی اشاره نماید.

مدرس، هنگام تدریس نباید تپق زده، سرفه یا عطسه کند یا صدای قورت دادن بزاقش شنیده شود و بایستی با صدای رسا، دوستانه و پرانرژی به تدریس بپردازد.

قبل از تدوین دوره آموزشی حتما با ما در تماس باشید و یک ویدیوی چنددقیقه‌ای (ترجیحا 5 الی 10 دقیقه)، بصورت نمونه‌کار برای ما بفرستید.

از همکاری با شما سپاسگزاریم.

فراخوان همکاری