خانه
عناوین مطالب
تماس با من
آموزش اسکریپت نویسی
آموزش اسکریپت نویسی پوسته گنو-لینوکس
آموزش اسکریپت نویسی
آموزش اسکریپت نویسی پوسته گنو-لینوکس
روزانهها
همه
راهنمای آموزشی Steve Parker
پیوندها
راهنمای Bash برای مبتدیان
راهنمای آموزشی Steve Parker
برگهها
راهنمای اسکریپت نویسی BashGuide
دستورات و شناسه ها
کاراکترهای خاص
پارامترها
پوسته گنو
الگوها
شرطها و بررسیها
آرایهها
ورودی و خروجی
دستورات مرکب
Sourcing
کنترل Job
Bourne شل
تکنیکها
پرسش و پاسخهای رایج در Bash
پرسش و پاسخ ۱
پرسش و پاسخ شماره ۲
پرسش و پاسخ شماره ۳
پرسش و پاسخ شماره ۴
پرسش و پاسخ شماره ۵
پرسش و پاسخ شماره ۶
پرسش و پاسخ شماره ۷
پرسش و پاسخ شماره ۸
پرسش و پاسخ شماره ۹
پرسش و پاسخ شماره ۱۰
پرسش و پاسخ شماره ۱۱
پرسش و پاسخ شماره ۱۲
پرسش و پاسخ شماره ۱۳
پرسش و پاسخ شماره ۱۴
پرسش و پاسخ شماره ۱۵
پرسش و پاسخ شماره ۱۶
پرسش و پاسخ شماره ۱۷
پرسش و پاسخ شماره ۱۸
پرسش و پاسخ شماره ۱۹
پرسش و پاسخ شماره ۲۰
پرسش و پاسخ شماره ۲۱
پرسش و پاسخ شماره ۲۲
پرسش و پاسخ شماره ۲۳
پرسش و پاسخ شماره ۲۴
پرسش و پاسخ شماره ۲۵
پرسش و پاسخ شماره ۲۶
پرسش و پاسخ شماره ۲۷
شل korn
پرسش و پاسخ شماره ۲۸
پرسش و پاسخ شماره ۲۹
پرسش و پاسخ شماره ۳۰
پرسش و پاسخ شماره ۳۱
پرسش و پاسخ شماره ۳۲
پرسش و پاسخ شماره ۳۳
پرسش و پاسخ شماره ۳۴
پرسش و پاسخ شماره ۳۵
پرسش و پاسخ شماره ۳۶
پرسش و پاسخ شماره ۳۷
پرسش و پاسخ شماره ۳۸
مجوزهای یونیکس
پرسش و پاسخ شماره ۳۹
فایلهای نقطهای
پرسش و پاسخ شماره ۴۰
پرسش و پاسخ شماره ۴۱
پرسش و پاسخ شماره ۴۲
پرسش و پاسخ شماره ۴۳
پرسش و پاسخ شماره ۴۴
پرسش و پاسخ شماره ۴۵
پاسخ همکارانه به پرسش شماره ۴۵
پرسش و پاسخ شماره ۴۶
پرسش و پاسخ شماره ۴۷
پرسش و پاسخ شماره ۴۸
پرسش و پاسخ شماره ۴۹
پرسش و پاسخ شماره ۵۰
پرسش و پاسخ شماره ۵۱
پرسش و پاسخ شماره ۵۲
پرسش و پاسخ شماره ۵۳
پرسش و پاسخ شماره ۵۴
پرسش و پاسخ شماره ۵۵
پرسش و پاسخ شماره ۵۶
پرسش و پاسخ شماره ۵۷
پرسش و پاسخ شماره ۵۸
پرسش و پاسخ شماره ۵۹
وضعیت مسابقه
پرسش و پاسخ شماره ۶۰
پرسش و پاسخ شماره ۶۱
پرسش و پاسخ شماره ۶۲
پرسش و پاسخ شماره ۶۳
Bad Questions
آداب معاشرت در شبکه
مشکل X-Y
پرسش و پاسخ شماره ۶۴
پرسش و پاسخ شماره ۶۵
پرسش و پاسخ شماره ۶۶
پرسش و پاسخ شماره ۶۷
پرسش و پاسخ شماره ۶۸
پرسش و پاسخ شماره ۶۹
پرسش و پاسخ شماره ۷۰
پرسش و پاسخ شماره ۷۱
پرسش و پاسخ شماره ۷۲
پرسش و پاسخ شماره ۷۳
پرسش و پاسخ شماره ۷۴
BashShell
پرسش و پاسخ شماره ۷۵
کاربرد find
پرسش و پاسخ شماره ۷۶
پرسش و پاسخ شماره ۷۷
پرسش و پاسخ شماره ۷۸
پرسش و پاسخ شماره ۷۹
پرسش و پاسخ شماره ۸۰
پرسش و پاسخ شماره ۸۱
پرسش و پاسخ شماره ۸۲
پرسش و پاسخ شماره ۸۳
پرسش و پاسخ شماره ۸۴
پرسش و پاسخ شماره ۸۵
پرسش و پاسخ شماره ۸۶
پرسش و پاسخ شماره ۸۷
پرسش و پاسخ شماره ۸۸
پرسش و پاسخ شماره ۸۹
پرسش و پاسخ شماره ۹۰
پرسش و پاسخ شماره ۹۱
پرسش و پاسخ شماره ۹۲
پرسش و پاسخ شماره ۹۳
پرسش و پاسخ شماره ۹۴
پرسش و پاسخ شماره ۹۵
پرسش و پاسخ شماره ۹۶
پرسش و پاسخ شماره ۹۷
پرسش و پاسخ شماره ۹۸
پرسش و پاسخ شماره ۹۹
پرسش و پاسخ شماره ۱۰۰
پرسش و پاسخ شماره ۱۰۱
Answers105
پرسش و پاسخ شماره ۱۰۲
پرسش و پاسخ شماره ۱۰۳
پرسش و پاسخ شماره ۱۰۴
پرسش و پاسخ شماره ۱۰۵
پرسش و پاسخ شماره ۱۰۶
پرسش و پاسخ شماره ۱۰۷
پرسش و پاسخ شماره ۱۰۸
پرسش و پاسخ شماره ۱۰۹
پرسش و پاسخ شماره ۱۱۰
BackSlash
شناسهها
عبارت محاسباتی
تجزیه کننده Bash
صفحه گرافیگی تجزیه کننده bash
تجزیه ls
سطرهای فایل را با for نخوانید
تعویض رشتهها
محیط
پوسته فرعی
بسط ابرو
جایگزینی فرمان
جایگزینی پردازش
عبارت منظم
globs
نقلقول ها
توصیفگرهای فایل
CategoryShell
CategoryUnix
HereDocument
HereString
NamedPipes
Redirection
NoClobber
NullGlob
IFS
حالت vi و emacs
فایلهای الگو
منظقه
سیگنالها و trapها
ssh keys
Process Management
اسکریپت wrapper
BashLoadable
BashLoadable_diff_4
BashLoadable_diff_4_2
قابلیت تست اسکریپت
CompilingBad
bashism
Bashism
BashWeaknesses
اشتباهات رایج در برنامهنویسی Bash
مرجع سریع Bash
تفکیک کلمه
جدیدترین یادداشتها
همه
راهنمای آموزش شل و اسکریپتنویسی
پایان یک طرح
Bash FAQ
فهرست پرسش و پاسخهای bash
راهنمای آموزشی BashGuide
بایگانی
بهمن 1392
2
آبان 1392
1
فروردین 1392
1
آذر 1391
1
آمار : 116851 بازدید
Powered by Blogsky
فهرست پرسش و پاسخهای bash
فهرست پرسش و پاسخها
◯ فهرست
چطور میتوانم یک فایل(جریان داده، متغیر) را سطر به سطر بخوانم(و یا فیلد به فیلد)؟
چگونه میتوانم مقدار برگشتی یا خروجی دستوری را در یک متغیر ذخیره نمایم؟
چطور میتوانم آخرین(جدیدترین، قدیمیترین، مسنترین) فایل در یک دایرکتوری را پیدا کنم؟
چگونه بررسی نمایم که آیا یک شاخه، خالی است یا خیر؟ چطور هر فایل
*
.mpg
را بررسی کنم، یا تعداد آنها را شمارش کنم؟
چگونه می توانم از متغیرهای آرایهای استفاده کنم؟
چطور میتوانم از متغیرهای بیثبات(متغیرهای غیر مستقیم، اشارهگرها، مرجعها) یا آرایههای شرکتپذیر استفاده کنم؟
آیا تابعی وجود دارد که طول یک رشته را بازگرداند؟
چگونه میتوانم تمام فایلها را به طور بازگشتی برای یک رشته جستجو نمایم؟
میانگیری(buffering) چیست؟ یا، چرا این سطر فرمان من خروجی ندارد:
tail
-f
logfile
|
grep
'foo bar'
|
awk
...
چطور میتوانم یک ساختار دایرکتوری سلسله مراتبی بدون فایل ایجاد نمایم؟
چگونه میتوانم سطر شماره n از یک فایل را چاپ کنم؟
به چه طریق میتوانم یک فرمان شل را از یک برنامه غیرپوستهای فراخوانی نمایم؟
چگونه میتوانم دو متغیر را به هم الحاق کنم؟ چگونه یک رشته را در یک متغیر اضافه(پیوست) کنم؟
چطور میتوانم چند دستور را در یک مرحله تغییر مسیر بدهم؟
چگونه میتوانم یک دستور را با تمام فایلهای دارای پسوند .gz اجرا کنم؟
چگونه میتوانم از AND/OR/NOT منطقی در الگو(جانشین) پوسته استفاده کنم؟
چگونه میتوانم عبارتها را گروهبندی کنم، مثل (a AND b) OR c؟
چگونه میتوانم از اعدادی که با صفر شروع میشوند مثل 01 و 02 در یک حلقه استفاده کنم؟
به کدام طریقه میتوانم یک فایل را به محدودههایی از سطرها، مانند سطرهای 1-10، 11-20، 21-30 تجزیه کنم؟
چطور میتوانم نام فایلهای شامل کاراکتر فاصله یا سطر جدید یا هر دو را پیدا کرده وبا آنها کار کنم؟
چگونه میتوانم یک رشته را با رشته دیگری در یک متغیر، جریان داده، یک فایل، یاتمام فایلهای یک شاخه، تعویض نمایم؟
چگونه میتوانم به جای فقط اعداد صحیح، اعداد با ممیز شناور را در محاسبه استفاده کنم؟
من میخواهم به پوسته محاورهای که مستعارها و توابع ویژهای دارد، نه آنها که در
~
/.bashrc
کاربر هست، متصل شوم.
من متغیرهایی را در حلقه تنظیم میکنم. چرا به طور ناگهانی پس از اتمام حلقه آنها ناپدید میشوند؟ یا، چرا نمیتوانم داده را برای خواندن لولهکشی کنم؟
چطور میتوانم پارامترهای موضعی(مکانی) بعد از
$
9
را دستیابی کنم
از چه طریق میتوانم ترتیب سطرهای فایلی را تصادفی نمایم(بُر زدن)؟(یا یک سطر اتفاقی از فایل را انتخاب کنم، یا انتخاب یک فایل به طور تصادفی از یک شاخه.)
چطور میتوان دو پردازش جداگانه را به هم ارتباط داد؟
چگونه میتوانم محل اسکریپت خود را تعیین کنم؟ میخواهم فایلهای پیکربندی را از همان محل بخوانم.
به چه طریق میتوانم مقصد یک پیوند نمادین را نمایش بدهم؟
چگونه میتوانم تمام فایلهای
*.foo
را به
*.bar
تبدیل نمایم، یا فاصلهها را به خط زیر تبدیل کنم، و یا حروف بزرگ نام فایلها را به حروف کوچک تبدیل کنم؟
تفاوت بین
test
و
[
و
[[
چیست؟
چطور میتوانم خروجی 'time' را به یک متغیر یا فایل تغییر مسیر بدهم؟
چگونه میتوانم شماره شناسایی پردازشی با دادن نام آن پردازش به دست آورم؟
آیا میتوانم در Bash یک چرخنده اجرا کنم؟
چگونه میتوانم شناسههای( گزینههای ) خطفرمان را به آسانی مدیریت کنم؟
چطور میتوانم تمام سطرهایی را به دست آورم که: در هر دو فایل هستند(فصل مشترک) یا فقط در یکی از دوفایل میباشند(تفاوتها).
چطور میتوانم متن را با رنگهای مختلف چاپ کنم؟
مجوزهای فایل در یونیکس چگونه کار میکنند؟
تمام فایلهای نقطهای که bash میخواند کدام هستند؟
چگونه میتوانم از dialog برای دریافت ورودی کاربر استفاده کنم؟
چطور میتوانم تعیین نمایم که آیا یک متغیر شامل یک زیر رشته هست؟
چگونه میتوانم دریابم که یک پردازش هنوز در حال اجرا است؟
چرا job من در crontab ناموفق است؟
0 0
* * *
some command
>
/var/log/mylog.
`
date
+%Y%m%d
`
چطور میتوانم نوار پیشروی ایجاد کنم؟ چگونه میتوانم موقع کپی یا انتقال فایلها، نمایشگر پیشروی را ببینم؟
به چه طریق میتوانم مطمئن شوم که فقط یک نمونه از اسکریپت در یک زمان معین در حال اجرا است(ممانعت دوطرفه)؟
میخواهم بررسی کنم که آیایک کلمه در یک لیست وجود دارد( یایک عنصر عضوی از یک مجموعه هست).
چطور میتوانم stderr را به یک لوله تغییر مسیر بدهم؟
فرمان eval و مسائل امنیت
چگونه میتوانم به روزرسانیهای دورهای یا پیوست کردنها به یک فایل راببینم؟(مثل: رشد فایل log )
من سعی دارم دستوری را در یک متغیر قرار بدهم، اما موارد پیچیده همیشه ناموفق است!
من جستجوی تاریخچه درست مانند آن در tcsh میخواهم. چطور میتوانم آن را به کلیدهای up و down مربوط کنم؟
چطور میتوانم یک فایل را از فرمت DOS به فرمت UNIX تبدیل کنم( CRها را از CR-LF خاتمه دهنده سطرها حذف کنم)؟
من یک اعلان فرمان تفننی رنگی دارم، اما حالا به نظر نمیرسد bash بداند پهنای ترمینال من چقدر است. سطرها به طور نادرستی شکسته میشوند.
چگونه میتوانم بگویم که یک متغیر آیا محتوی یک عدد معتبر هست؟
به طور کلی در باره
2
>&
1
بگویید -- تفاوت بین
2
>&
1
>
foo
و
>
foo 2
>&
1
چیست، و چهوقت میتوانم از هرکدام استفاده کنم؟
چطور میتوانم چند فایل را به طور یکجا untar (یا unzip) نمایم؟
چطور میتوانم اقلام را گروهبندی نمایم(در یک فایل با پیشوندهای مشترک)؟
آیا bash میتواند دادههای باینری را اداره کند؟
من این دستور را در جایی دیدم:
:()
{
:|:&
}
(بمب خوشهای). این چطور کار میکند؟
من سعی میکنم اسکریپتی بنویسم که دایرکتوری جاری را تغییر دهد( یا یک متغیر را تنظیم کند)، اما بعد از به پایان رسیدن اسکریپت، در همان جایی هستم که از آنجا شروع کرده بودم(یا متغیر من نیست)!
آیا لیستی از ویژگیهای اضافه شده به یک نگارش معین Bash وجود دارد؟
چطور میتوانم در یک حالت ایمِن، یک فایل موقتی ایجاد کنم؟
وقتی من میخواهم بعد از اجرای یک job پسزمینهای راه دور قطع ارتباط کنم، سرویسگیرنده ssh من هنگ میکند !
چرا دریافت پاسخ پرسشی که من در
#bash
پرسیدم، تا این اندازه دشوار است؟
آیا یک دستور "PAUSE" مانند آن که در اسکریپتهای MSDOS هست، در bash وجود دارد؟ که به کاربر اعلام نماید جهت ادامه کلیدی را بزند؟
میخواهم عبارت
if [[
$
var
==
foo
||
$
var
==
bar
||
$
var
==
more ...
]]
را بدون n مرتبه تکرار
$
var
، بررسی کنم.
چطور میتوانم فضای سفید قبل یا بعد یکی از متغیرهایم را پاک کنم؟
چگونه میتوانم فرمانی را اجرا کنم و انصراف از آن پس از N ثانیه را داشته باشم(timeout)؟
میخواهم یک ارتباط ssh (یا scp، یا sftp) را خودکار نمایم، اما نمیدانم چطور کلمه عبور را ارسال کنم
چطور میتوانم زمان یونیکس(epoch) را به مقادیر قابل خوندن انسانی تبدیل نمایم؟
چطور میتوانم یک کاراکتر اسکی را به مقدار دسیمال(یا هگزادسیمال) آن و برعکس تبدیل نمایم؟
چگونه میتوانم مطمئن شوم که محیط من برای برنامههای cron، batch، و jobs پیکربندی شده است؟
چگونه میتوانم از بسط پارامتر استفاده کنم؟ چطور زیر رشتهها را ایجاد کنم؟ چگونه میتوانم نام فایل را بدون پسوند کنم، یا فقط پسوند فایلها را به دست آورم؟
چگونه میتوانم اثرات بسط پارامترهای جالب Bash را درپوستههای قدیمیتر داشته باشم؟
چطور میتوانم از فرمان
find
استفاده کنم؟ من به هیچ وجه نمیتوانم صفحه man را درک کنم!
چگونه میتوانم حاصل جمع تمام اعداد در یک ستون را به دست آورم؟
از چه طریق میتوانم تاریخچه را در فایل log ثبت کنم یا bash را در برابر پاک کردن آن ایمن نمایم؟
من میخواهم یک کلمه عبور کاربر را با استفاده ازفرمان
passwd
یونیکس ایجاد کنم، اما چطور آن را در اسکریپت قرار بدهم؟ ورودی استاندارد را نمیخواند!
چطور میتوانم
grep
را برای یافتن سطرهای شاملfoo
و
bar همچنین foo
یا
bar به کار ببرم؟ یا برای فایلهای شامل foo
و
bar، شاید در سطرهای جداگانه؟
چگونه میتوانم مستعاری ایجاد کنم که یک شناسه دریافت کند؟
چگونه میتوانم تعیین کنم که یک فرمان آیا در جایی از
PATH
من وجود دارد؟
چرا
$(
...
)
نسبت به
`
...
`
(نقلقول برعکس) ارجحیت دارد؟
چگونه می توانم تعیین کنم که یک متغیر آیا قبلاً تعریف شده است؟
چگونه یک رشته (یا عدد بلند، یا عدد منفی) از یک تابع باز گردانم؟
return
فقط استفاده از اعداد 0 تا 255 را اجازه میدهد.
چگونه میتوان چند مرتبه در فایل
fifo
بدون باز کردن مجدد آن، نوشت؟
چگونه میتوان هنگام اجرای یک فرمان از مستعارها یا توابع صرفنظر کرد؟
از چه طریقی بدون استفاده از تفکیک خروجی
ls
-l
میتوانم مجوزها(یا سایراطلاعات) فایلی را دریافت کنم؟
چطور میشود از فقدان هر یک از سطرهای تاریخچه اجتناب نمود؟
من در حال خواندن سطر به سطر یک فایل, و اجرای
ssh
یا
ffmpeg
هستم، اما فقط سطر اول پردازش میشود!
چگونه میتوانم متنی را در ابتدای یک فایل درج کنم(برعکس
>>
)؟
من تلاش میکنم تعداد سطرها و ستونهای ترمینال خود را دریافت کنم، اما متغیرهای
COLUMNS
و
LINES
همیشه تهی هستند
چگونه یک اسکریپت CGI بنویسم که پارامترها را بپذیرد؟
چطور میتوانم محتویات نوار عنوان ترمینال خود را تنظیم نمایم؟
میخواهم وقتی دیسک پُر میشود یک هشدار دریافت کنم(با تجزیه خروجی
df
).
میخواهم لیست خیلی بلند شناسهها را دریافت کنم. چطور میتوانم یک لیست بزرگ قابل توجه را پردازش نمایم؟
ssh
کرانههای کلمات مرا میخورد! نمیتوانم
ssh
remotehost
make
CFLAGS
=
"
-g -O
" را انجام بدهم!
چطور میتوانم تعیین کنم که یک پیوند نمادین آیا منفصل (شکسته) است؟
چگونه پشتیبانی محلی را به اسکریپتهای bash اضافه میکنید؟
چطور میتوانم جدیدترین(یا قدیمیترین) فایل یک شاخه را به دست آورم؟
در bash چگونه میتوانم رشتهها را دستکاری کنم؟
توابع سودمند عمومی(warn و die)
چگونه اختلاف بین دو تاریخ را به دست آورم؟
چطور بررسی نمایم که فایل دریک ماه معین یا در یک محدوده تاریخی ویرایش شده است؟
چرا
foo
=
bar
echo
"
$
foo
" رشته bar را چاپ نمیکند؟
چرا
set
-e
(یا set -o errexit یا trap ERR) آنچه را انتظار دارم انجام نمیدهد؟
میخواهم از داخل اسکریپت
stdout
را به یک فایل ثبت وقایع
tee
نمایم. و شاید
stderr
را به همچنین.
چگونه به هر سطر یک جریان مُهرتاریخ بزنم؟
چطور در انتظار انجام چند پردازش فرزند بمانم؟
چگونه میتوانم بگویم که اسکریپت من آیا منبع شده(به طور نقطهای) یا اجرا گردیده است؟
آیا میتوانم چیزی مشابه قالبها(templates) را با bash به کار ببرم؟
◯
محمود
دوشنبه 26 فروردینماه سال 1392 ساعت 06:04 ب.ظ
0
لایک
نظرات
0
+ ارسال نظر
نام
ایمیل
آدرس وبسایت
مشخصات مرا به خاطر بسپار
ایمیل شما بعد از ثبت نمایش داده نخواهد شد
ارسال نظر