لطفا وارد شوید یا ثبت‌نام کنید تا به انجمن‌ها دسترسی کامل داشته باشید.



 
امتياز موضوع :
  • 0 رأي - معدل امتيازات : 0
  • 1
  • 2
  • 3
  • 4
  • 5
سوال در مورد BASH
2010-11-16, 05:28 PM,
ارسال : #1
سوال در مورد BASH
با سلام خدمت دوستان

در حال مطالعه یک کتاب هستم که یکجا را خوب نفهمیدم. آیا دستور

COMMAND1 < COMMAND2

به معنی آن است که خروجی Standard Output مربوط به COMMAND2 به Standard Input مر بوط به COMMAND1 متصل می شود؟

ضمنا آیا دسور

COMMAND1 | COMMAND2

به معنی آن است که خروجی Standard Output مربوط به COMMAND1 به ورودی Standard Input مربوط به COMMAND2 انتقال می یابد؟

میتوان گفت A < B دقیقا معادل B | A است یا خیر؟

با تشکر
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-11-16, 05:36 PM,
ارسال : #2
پاسخ: سوال در مورد BASH
توی مثال اول COMMAND2 دستور نیست . بلکه یک فایل هستش .
مثل :
کد :
less < /etc/passwd
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-11-16, 05:53 PM,
ارسال : #3
پاسخ: سوال در مورد BASH
این مثال رو ببین :
یک مثال خوب از کاربردهای redirect در پوسته لینوکس :
کد :
head -c 512 < /dev/sda > mbr.backup
ببینم ! میتونی تفسیرش کنی ؟ (توجه داشته باش که این دستور رو باید با کاربر root اجرا کنی)

Debian GNU/Linux System Administrator
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-11-16, 06:38 PM,
ارسال : #4
پاسخ: سوال در مورد BASH
آهان.... الان متوجه شدم.... دست شما درد نکنه

در مورد اون مثال به نظرم میرسه که از اونجا که Master boot record در واقع ۵۱۲ بایت اول دیست است در واقع ابتدا head -c 512 < /dev/sda مستر بوت رکورد رو به Standad output stdout میفرسته و بعدش خروجی به mbr.backup لوله کشی میشه.... درسته؟

حالا یه سوال: در واقع من خیلی از دستوراتی مثل

find | grep THE-FILE-NAME

استفاده میکردم و حالا دارم درک میکنم چطور کار میکنه. ابتدا find کل فایل های موجود رو به stdout میفرسته و بعد grep اون سطرایی که حاوی THE-FILE-NAME هستند رو سوا میکنه. درسته؟

حال دستور grep THE-TEXT-TO-FIND رو که اجرا میکنم درست مثل یه ادیتور میشه. دلیلش اونه که منتظر فایله؟؟؟؟ درسته دیگه؟؟؟؟

چطور میتونم خودم یه متن چند سطری همونجا تایپ کنم تا داخلش SEARCH کنه؟؟؟

EOF رو چطور خودم ایجاد کنم و بهش بفهمونم؟

همیشه پیشگام ... همیشه بهترین ... همیشه فدورا
http://persian-foss-legal.blogspot.com
http://www.tesla-sanat.com
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-11-16, 07:58 PM,
ارسال : #5
پاسخ: سوال در مورد BASH
نه دیگه ... نشد ... !
دستور grip می گرده توی یک فایل و دنبال اون بخش مورد نظر میگرده . یا اینکه خروجی یک دستور رو میگیره و در این خروجی دنبال چیز خاصی می گرده .
مثلا :
کد :
grep root /etc/passwd
find /etc | grep hal
در رابطه با EOF هم باید بگم که من تا الان باهاش کار نکردم ولی اگه درست گفته باشم یک جور متغیر هستش که حتما هم نباید اسمش EOF باشه . این متغیر شامل یک سری دستورات و خطوط هستش .
مثلا :
کد :
cat >> test << EOF
line 1
line 2
line 3
EOF
البته این نکته رو هم بگم که از این متغیر به چند روش استفاده میشه .
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-11-16, 08:09 PM,
ارسال : #6
پاسخ: سوال در مورد BASH
آقا خودم پیداش کردم... کلید CTRL+D هستش که معادل End of file رو به buffer تفهیم میکنه.... امتحان کن
یادمه قدیما که یکم C کار میکردم در DOS کلید CTRL+Z بود ولی خب در لینوکس ظاهری CTRL+D هستش....

همیشه پیشگام ... همیشه بهترین ... همیشه فدورا
http://persian-foss-legal.blogspot.com
http://www.tesla-sanat.com
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-11-16, 08:17 PM,
ارسال : #7
پاسخ: سوال در مورد BASH
آقا جان من قاطی کردی . چرا دوتا پست مجزا نوشتی که الان اینجوری بشه ؟

Debian GNU/Linux System Administrator
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-11-16, 08:32 PM,
ارسال : #8
پاسخ: سوال در مورد BASH
آقا باور کن کار میکنه....
مثلا این کارو بکن:

کد :
[bahman@intel-system ~]$ sed 's/mesal/azmayesh/'
in yek mesal baraye barresi mibashad.
in yek azmayesh baraye barresi mibashad.

در انتهای خط کلید ctrl+d رو بزن. درست مثل این میمونه.

کد :
[bahman@intel-system ~]$ echo 'in yek mesal baraye barresi mibashad.'>test
[bahman@intel-system ~]$ cat test | sed 's/mesal/azmayesh'
sed: -e expression #1, char 16: unterminated `s' command
[bahman@intel-system ~]$ cat test | sed 's/mesal/azmayesh/'
in yek azmayesh baraye barresi mibashad.
[bahman@intel-system ~]$
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ


رفتن به انجمن :


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