نمایش نتایج: از شماره 1 تا 2 , از مجموع 2

موضوع: یه سری دستور لینوکس

  1. #1
    مدیر کل Vahid آواتار ها
    تاریخ عضویت
    Aug 2008
    نوشته ها
    2,724
    تشکر تشکر کرده 
    435
    تشکر تشکر شده 
    6,976
    تشکر شده در
    2,085 پست

    پیش فرض یه سری دستور لینوکس

    ls -l > lsoutput.txt$

    این دستور، خروجی دستور ls را داخل فایلی به نام lsoutput.txt می ریزد. با عملگر> تقریبا همه خروجی ها را می توان منتقل کرد. و اگر فایل مقصد از قبل وجود داشته باشد، در این صورت فایل جدید جایگزین آن خواهد شد. برای این که خروجی را به انتهای فایل اضافه کنیم، اما فایل قبلی پاک نشود، از عملگر> استفاده کنید:

    $ls << lsoutput.txt

    این دستور، نتیجه را به انتهای فایل قبلی اضافه خواهد کرد.

    انتقال ورودیدرست مانند انتقال خروجی دستورات، می توان ورودی ها را هم منتقل کرد و از ورودی استاندارد استفاده نکرد. برای نمونه:

    more > lsoutput.txt$

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

    پایپ هامی توانید پروسس ها را با عملگر پایپ (1) به همدیگر وصل کنید. برخلاف سیستم عامل داس، در لینوکس می توان به کمک پایپ ها، پروسس ها را همزمان با هم اجرا کرد و به طور خودکار با انتقال جریان داده در میان آن ها، زمان بندی کرد. یک مثال ساده: می توانید به سادگی خروجی حاصل از دستور ps را به دستور sort بدهید. اگر از پایپ ها استفاده نکنید، دستور چند گام به درازا خواهد کشید:

    ps < psout.txt$
    <$sort psout.txt pssort.out

    حالا راه بهتر و تر و تمیزتر این است که این دو پروسس را با یک پایپ به هم وصل کنیم:

    ps1 sort < pssort.out$

    لابد می خواهید خروجی کار هم، صفحه بندی شده باشد، پس حتما از دستور سومی استفاده خواهید کرد به نام more و آن را با پایپ به دو دستور قبلی وصل می کنید:

    $ps1 sort 1 more

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

    $ps-xo comm1 sort 1 uniq
    grep -v sh1 more

    این دستور چه کار می کند؟

    خروجیps را می گیرد، به ترتیب الفبا مرتب می کند، پروسس ها را با استفاده ازuniq استخراج می کند، با استفاده از grep -v sh پروسسی که اسمش sh است را حذف می کند و دست آخر به صورت صفحه بندی شده به خروجی (نمایشگر) می فرستد. این روش، همان طور که شما هم می بینید، عجب روش تر و تمیزی است برای پیوندانیدن چند دستور به همدیگر! تازه بدون این که به دردسر بیافتیم و فایل های موقت ایجاد بکنیم! هرچند، حسابی مراقب یک چیز باشید: اگر رشته ای از دستورها داشتید و قرار بود خروجی را به یک فایل بفرستید، هیچ وقت از یک نام فایل دوبار در رشته دستوری استفاده نکنید. برای مثال اگر چنین دستوری بنویسید:

    cat mydata.txt 1 sort 1 uniq < mydata.txt$

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

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

    برنامه های تعاملی
    (Interactive Programs)نوشتن و اجرا کردن دستورها، یکی از راه های سریع و آسان آزمایش تکه های کوچک کد است، برای یادگرفتن مناسب. فرض بگیرید تعداد زیادی فایلC دارید و می خواهید فایل هایی که شامل رشتهPOSIX هستند را شناسایی کنید، به جای این که تک تک و از طریق دستور grep بخواهیم این کار را انجام دهیم، می توانیم همه این کارها را داخل اسکریپتی تعاملی بنویسیم، این پایین را نگاه کنید:

    for file in *$
    do <
    if grep -l POSIX $file<
    then<
    more $file<
    fi<
    done<

    نگاه کنید که چقدر طبیعی $ برنامه پوسته به < تبدیل می شود و پوسته منتظر اطلاعات بعدی است. می توانید تایپ کردن را بس کنید و به پوسته اجازه بدهید خودش تصمیم بگیرد که شما کارتان تمام شده است و بعد اسکریپت فورا اجرا می شود. پوسته همچنین ازWildcard expansion ها نیز پشتیبانی می کند. دیگر قریب به یقین شما می دانید که * یعنیWildcard برای همه کاراکترها. ممکن است این را ندانید که برای یک حرف نیزWildcard به نام داریم، همچنین]set[ مجموعه ای از کاراکترها را در خود می گیرد که قرار است چک شوند. برعکس آن اگر 8 بیاید، مثل]set[ در این صورت، هر چیزی را شامل می شود جز آن هایی که داخل براکت اند. نشان آکولاد ت ت هم به شما اجازه می دهد تا چند رشته را در مجموعه ای کنار هم قرار دهید تا کار خاصی انجام بدهید:

    ls my- تfinger, toeتs$

    این دستور فایل های myfingers و mytoes را لیست می کند. این دستور از پوسته استفاده می کند تا هر فایلی که داخل دایرکتوری فعلی است را بررسی کند.

    ساختن یک اسکریپت با هر ویرایشگر متنی که میلتان می کشد، می توانید فایلی شامل دستورات بسازید، فایلی بسازید به نام first که شبیه مثال زیر باشد:

    /bin/shَ#
    firstَ#
    This file looks throughَ#
    all the files in the current
    directory for the string POSIX,َ#
    and then prints the names of
    those files to the standard output.َ#
    for file in *
    do
    file$if grep -q POSIX
    then
    file$echo
    fi
    done
    0exit

    توضیحات (comment) ها با نماد آغاز می شوند و تا پایان خط به عنوان توضیح به حساب می آیند؛ هر چند عرف است که در ستون اول همیشه بگذارند. حال در خط بعدی به دستور َbin/sh/! بر می خوریم که فرم خاصی از توضیح است. کاراکترهای َ به سیستم می گویند که آرگومان هایی که در ادامه می آیند، برنامه ای است که برای اجرای این فایل باید دنبال شودbin/sh/ . برنامه پوسته پیش فرض است.

    نکته: مسیر پس از َ مسیر قطعی(Absolute) است. با هم توافق کرده اند که این رشته را از 32 کاراکتر کمتر نگه دارند تا با سیستم های قدیمی تر همخوان باشد، چون برخی از یونیکس های قدیمی از تعداد محدودی از کاراکترهایی که بعد از ! می آیند، بهره می بردند. واضح است که لینوکس های امروزی دیگر این محدودیت را ندارند. از آن جایی که اسکریپت وارده، به عنوان ورودی استانداردی در پوسته مطرح است. در این صورت می تواند شامل هر دستوری باشد که متغیر محیطی PATH شما مسیر آن را در خود دارد.

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

    اجرایی کردن یک اسکریپت حالا فایل اسکریپت مان را ساختیم، می توانیم به دو صورت آن را اجرا کنیم. راه ساده تر این است که اسم فایل را به پوسته بدهیم.

    /bin/sh first $

    این دستور باید عمل کند، اما چقدر خوب می شود که اسکریپت را فقط با صدا کردن نامش استفاده کنیم و از اینbin/sh/ خلاص شویم. این کار را با تغییر حالت فایل (chmod) به سادگی می توان انجام داد:

    $chmod+xfirst

    این دستور، فایل first را با +x اجرایی می کند. و پس از این، تنها کافی است با دستور زیر اسکریپت را اجرا کنید:

    $first

    اگر پیغامی گرفتید که "چنین دستوری یافت نشد!" متغیر محیطی PATH احتمالا به مسیر فایل های اسکریپت شما اشاره نمی کند. برای رفع این مشکل، یا تایپ کنیدPATH=$PATH: یا فایل bash-profile را ویرایش کنید و این دستور را به انتهای آن بیفزایید. سپس یک بارlog out کنید و دوباره به سیستم برگردید. این هم نشد،first/. را در دایرکتوری ای که اسکریپت داخلش است، بنویسید تا مسیر کامل نسبی به اسکریپت را به فایل بدهید.
    استفاده از ./ یک سود دیگر هم دارد، آن این است که شما تصادفا دستور دیگری با این نام را اجرا نخواهید کرد. اگر دیدید که اسکریپت شما با موفقیت اجرا شد، می توانید به جای مطمئنی منتقلش کنید، اگر از این دستور فقط خودتان استفاده می کنید، می توانید یک دایرکتوری bin در فولدر home خود بسازید و مسیرش را بهPATH اضافه کنید. اگر می خواهید بقیه کاربران هم از آن استفاده کنند، آن را داخل فولدرusr/local/bin/ قرار دهید. اگر دسترسیRoot ندارید، باید از سرپرست سیستم درخواست کنید این کار را برای شما انجام دهد. اگر هم مایل نیستید که کسی آن را تغییر دهد، می توانید دسترسی نوشتن در آن فایل را بردارید. دستوراتی که سرپرست سیستم طی آن مالکیت و دسترسی های نرم افزار را مشخص می کند، چیزی شبیه این خواهد بود:

    cp first /usr/local/binَ#
    chown root /usr/local/bin/firstَ#
    chgrp root /usr/local/bin/firstَ#
    َchmod557 /usr/local/bin/first #
    توجه داشته باشید که از شکل کلی دستور chmod استفاده کردیم، چون دقیقا می دانستیم که چه سطح دسترسی ای می خواهیم بدهیم. اما شما می توانید از شکل طولانی تر، اما شاید واضح تر دستور chmod استفاده کنید:

    َ chmod u=rwx,go=rx /usr/local/bin/first #

    برای اطلاعات بیشتر از راهنمای دستور chmod استفاده کنیدman chmod.
    برای پیش رفت در علم آسانسوری وجود ندارد پله ها را باید پیاده رفت /./ همیشه این یادتان باشد که دست بالای دست بسیار است.
    يادمان باشد براي يك بار ايستادن صد ها بار افتاده ايم /./ بک آپ مهمترین رمز موفقیت هاستینگ /./ امنیت مطلق نیست.
    ارتباط مستقیم با من :
    Admin -{(@)}- WebHostingTalk . ir

  2. تعداد تشکر ها ازVahid به دلیل پست مفید


  3. # ADS




     

  4. #2
    مدیر کل Vahid آواتار ها
    تاریخ عضویت
    Aug 2008
    نوشته ها
    2,724
    تشکر تشکر کرده 
    435
    تشکر تشکر شده 
    6,976
    تشکر شده در
    2,085 پست

    پیش فرض پاسخ : یه سری دستور لینوکس

    کافی است در داخل Shell دستورات زیر را وارد نمایید

    Ls » این دستور را می‌توان کاربردیترین و اساسی‌ترین دستور پایه نام برد. ls به منظور نمایش فایلهای موجود در دایرکتوری که در آن هستید به کار می‌رود.

    who » از این دستور برای نمایش افرادی که هم اکنون داخل سیستم Login کرده‌اند استفاده می‌شود.

    cd » دستور cd شما را به مسیر اصلی دایرکتوری که هم اکنون در آن هستید هدایت می‌کند.

    ifconfig » این دستور امکان مشاهده کلیه قسمت‌های مربوط به شبکه همانند آدرس IP شما ، Netword Device های فعال و ... را به شما میدهد.

    man » این دستور خود یک دستور راهنماست ، به این شکل که در صورتی که از دستوری اطلاع نداشتند با تایپ man و سپس دستور مورد نظر ، کاربرد دستور فوق را در یک فایل متنی مشاهده خواهید کرد.

    tar » دستور tar به منظور خارج کردن فایلها و دایرکتوری‌ها از حالت فشرده به کار میرود. به فرض مثال شما ممکن است یک فایل rar را دانلود کرده باشید. با استفاده از این دستور می‌توانید این فایل‌ها را به فایل‌ها و فولدرهای معمولی تبدیل کنید.

    gzip » با استفاده از دستور gzip شما ابزاری مناسب برای فشرده‌سازی و خارج سازی فایلهای فشرده خواهید داشت.

    echo » این دستور جالب باعث می‌شود هر دستوری که پس از echo تایپ نمایید در یک خط جدید از Command Prompt نمایش پیدا کند. این دستور همچنین برای گرفتن خروجی از اسکریپتهای Shell بسیار مورد استفاده است.

    df -h » این دستور مقدار فضای خالی شما در داخل درایو مورد نظر را برای شما نمایش میدهد.

    apt-get, yum, emerge, etc » این دستورات هر کدام بر روی یکی از توزیع‌های لینوکس قابل اجراست. apt-get در ubuntu یا emerge برای gentoo. با این دستورات شما امکان فراخوانی هر یک بسته‌های مدیریتی از اینترنت و دانلود آنها برای کار بهتر در لینوکس را خواهید داشت.
    برای پیش رفت در علم آسانسوری وجود ندارد پله ها را باید پیاده رفت /./ همیشه این یادتان باشد که دست بالای دست بسیار است.
    يادمان باشد براي يك بار ايستادن صد ها بار افتاده ايم /./ بک آپ مهمترین رمز موفقیت هاستینگ /./ امنیت مطلق نیست.
    ارتباط مستقیم با من :
    Admin -{(@)}- WebHostingTalk . ir

  5. تعداد تشکر ها ازVahid به دلیل پست مفید


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 123
    آخرين نوشته: September 2nd, 2018, 22:20
  2. مشکل در دستور ssh
    توسط rotana007 در انجمن سوالات و مشکلات
    پاسخ ها: 5
    آخرين نوشته: October 31st, 2014, 02:25
  3. یک دستور
    توسط M-Sadeghi در انجمن سوالات و مشکلات
    پاسخ ها: 5
    آخرين نوشته: June 11th, 2014, 10:42
  4. مشکل در رستور کردن
    توسط L0cal در انجمن سوالات و مشکلات
    پاسخ ها: 5
    آخرين نوشته: February 18th, 2012, 22:27

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •