انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: سوال در مورد دستورات ترمینال  (دفعات بازدید: 1784 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین desatir7316

  • Sr. Member
  • *
  • ارسال: 499
  • جنسیت : پسر
سوال در مورد دستورات ترمینال
« : 23 امرداد 1391، 03:42 ب‌ظ »
سلام دوستان ببخشید سوالمو ایجا می پرسم
نمی دونم چرا قسمت تازه کارها توش نمی شه تاپیک جدید زد
می خواستم بپرسم علامت نقطه و اون علامتی که شبیه or هستن توی دستورات ترمینال چی کار می کنن
مثل:dmesg | egrep hd.\|sd.یا:rsync -r /cdrom/* .نمی خوام دستورات تفسیر بشن، می خوام کار این دو مورد(. و | ) رو بفهمم
ممنون

آفلاین سعید رسولی

  • ilius, saeedgnu
  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1543
  • جنسیت : پسر
پاسخ : سوال در مورد دستورات ترمینال
« پاسخ #1 : 23 امرداد 1391، 03:53 ب‌ظ »
علامت نقطه نماد دایرکتوری جاری (خروجی pwd) هست
بهش میگن dynamic current directory چون هر موقع یه مسیری هست (دایرکتوری جاری رو تغییر بدید با cd ، نقطه به دایکتوری جاری جدید اشاره می‌کنه)

علامت | هم بستگی داره کجا استفاده بشه، اینجا که توی egrep استفاده کردید قسمتی از regular expression هست و نماد or هست (یعنی یا این رشته یا اون رشته هر کدوم باشن)
ولی توی خود شل (بین دستورات، نه بعنوان آرگومان) نماد PIPE (لوله) هست یعنی خروجی دستور اول رو بعنوان ورودی به دستور دوم می‌فرسته، مثلا
ls -1 | grep foo
پ.ن: دستور اول که نوشتید، چون قبل از | علامت بک‌اسلش گذاشتید، بعنوان PIPE حساب نمی‌کنه (بک‌اسلش رو بردارید خراب میشه) میشه بجای بک‌اسلش گذاشتن قبلش، کل رشته رو توی single quote بذارید یعنی:
dmesg | egrep 'hd.|sd.'

آفلاین desatir7316

  • Sr. Member
  • *
  • ارسال: 499
  • جنسیت : پسر
پاسخ : سوال در مورد دستورات ترمینال
« پاسخ #2 : 23 امرداد 1391، 04:58 ب‌ظ »
علامت نقطه نماد دایرکتوری جاری (خروجی pwd) هست
بهش میگن dynamic current directory چون هر موقع یه مسیری هست (دایرکتوری جاری رو تغییر بدید با cd ، نقطه به دایکتوری جاری جدید اشاره می‌کنه)

علامت | هم بستگی داره کجا استفاده بشه، اینجا که توی egrep استفاده کردید قسمتی از regular expression هست و نماد or هست (یعنی یا این رشته یا اون رشته هر کدوم باشن)
ولی توی خود شل (بین دستورات، نه بعنوان آرگومان) نماد PIPE (لوله) هست یعنی خروجی دستور اول رو بعنوان ورودی به دستور دوم می‌فرسته، مثلا
ls -1 | grep foo
پ.ن: دستور اول که نوشتید، چون قبل از | علامت بک‌اسلش گذاشتید، بعنوان PIPE حساب نمی‌کنه (بک‌اسلش رو بردارید خراب میشه) میشه بجای بک‌اسلش گذاشتن قبلش، کل رشته رو توی single quote بذارید یعنی:
dmesg | egrep 'hd.|sd.'
دوست عزیز ممنون
خیلی خوب توضیح دادین
همچین اطلاعاتی رو از کجا میتونم پیدا کنم که دیگه به مشکل بر نخورم
ممنون

آفلاین سعید رسولی

  • ilius, saeedgnu
  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1543
  • جنسیت : پسر
پاسخ : سوال در مورد دستورات ترمینال
« پاسخ #3 : 23 امرداد 1391، 05:39 ب‌ظ »
دوست عزیز ممنون
خیلی خوب توضیح دادین
همچین اطلاعاتی رو از کجا میتونم پیدا کنم که دیگه به مشکل بر نخورم
ممنون
خواهش می‌کنم

http://wiki.linuxreview.ir/Shell-scripting-tutorial
اخیرا این راهنما رو داشتیم تکمیل می‌کردیم. مفصله ولی قطعاً ضرر نمی‌کنید اگه کامل بخونید.