-
درج متن در ابتدای فایل
چهارشنبه 27 شهریورماه سال 1392 16:03
پرسش و پاسخ شماره ۹۰ چگونه میتوانم متنی را در ابتدای یک فایل درج کنم(برعکسِ >> )؟ نمیتوانید آنرا به تنهایی با تغییر مسیر bash انجام دهید، برعکسِ >> وجود ندارد.... برای درج محتویات در ابتدای فایل، میتوانید از یک ویرایشگر استفاده کنید، برای مثال ex : ex file << EOF 0a header line 1 header line...
-
مشکل خواندن فایل توام با اجرای ffmpeg
دوشنبه 25 شهریورماه سال 1392 16:03
پرسش و پاسخ شماره ۸۹ من در حال خواندن سطر به سطر یک فایل, و اجرای ssh یا ffmpeg هستم، فقط سطر اول پردازش میشود! خواندن سطر به سطر فایل ، اگر یک دستور در داخل حلقه نیز stdin را بخواند، میتواند فایل ورودی را تهی کند، برای مثال: # مثالی که کار نمیکند while IFS= read -r file; do ffmpeg -i "$file" -vcodec libxvid...
-
حفظ تمام سطرهای فایل history
شنبه 23 شهریورماه سال 1392 16:03
پرسش و پاسخ شماره ۸۸ چطور میشود از فقدان هر یک از سطرهای تاریخچه اجتناب نمود؟ این روش برای آن طراحی شده تا به شما امکان بدهد ثبت وقایع کامل دوستانهای از تمام فرمانهای اجرا شده توسط کاربر را ذخیره کنید، مقصود از آن حسابرسی امن فرمانها نمیباشد -صفحه امنیت bash در برابر پاکسازی تاریخچه را ببینید. به طور پیشفرض، Bash...
-
پرسش و پاسخ شماره ۸۷
پنجشنبه 21 شهریورماه سال 1392 16:03
پرسش و پاسخ شماره ۸۷ بدون استفاده از تفکیک خروجی ls -l از چه طریق میتوانم مجوزها(یا سایراطلاعات) یک فایل را دریافت کنم؟ تعدادی روش اختیاری وجود دارد، اکثر آنها اختصاصی سیستم هستند. همچنین دقیقاً بستگی به آن دارند که چرا اطلاعات را میخواهید، در اکثر حالتها، روشهای دیگری برای انجام هدف واقعی شما وجود...
-
پرسش و پاسخ شماره ۸۶
چهارشنبه 20 شهریورماه سال 1392 16:03
پرسش و پاسخ شماره ۸۶ چگونه میتوان هنگام اجرای یک فرمان از مستعارها یا توابع صرفنظر کرد؟ گاهی اوقات صرف نظر کردن از مستعار ها (و توابع، از جمله توابع داخلی پوسته) سودمند است. به عنوان مثال، شاید در سیستم خود این تنظیم را داشته باشید: alias grep='grep --color=auto' اما گاهی اوقات، شما به انجام یک فرمان یک سطری به طرف...
-
نوشتن مکرر در یک فایل fifo باز
دوشنبه 18 شهریورماه سال 1392 16:03
پرسش و پاسخ شماره ۸۵ چگونه میتوان چند مرتبه در فایل fifo بدون باز کردن مجدد آن، نوشت؟ در یک حالت کلی، یک توصیفگرفایل (FD) جدید باز خواهید نمود که به fifo اشاره کند، و از طریق آن مینویسید. برای موقعیتهای ساده، شاید پرش از این مرحله امکان پذیر باشد. اصلیترین روش، استفاده از لولههای با نام است: mkfifo myfifo cat...
-
برگشت یک رشته یا نتیجهای از یک تابع
شنبه 16 شهریورماه سال 1392 16:03
پرسش و پاسخ شماره ۸۴ چگونه یک رشته (یا عدد بلند، یا عدد منفی) را در نتیجه یک تابع برگشت بدهم؟ return فقط استفاده از اعداد 0 تا 255 را اجازه میدهد. توابع در Bash (همچنین سایر پوستههای هم خانواده شل Bourne) مانند فرمانها کار میکنند: یعنی، آنها فقط یک وضعیت خروج برگشت میدهند که منحصر به اعداد صحیح از 0 تا 255 است....
-
Defined، Declared، و Undefined
پنجشنبه 14 شهریورماه سال 1392 04:03
پرسش و پاسخ شماره ۸۳ چگونه می توانم تعیین کنم که آیا یک متغیر قبلاً تعریف شده است؟ چندین روش بر حسب موارد نیاز، برای بررسی یک متغیر تعریف شده یا غیرتهی یا تابع وجود دارد. محتویات چگونه تعیین کنم که آیا متغیری از قبل تعریف شده است؟ یا یک تابع؟ "Declared"، "Defined"، و "Undefined" بررسی برای متغیر/پارامتر تعریف شده یا...
-
ارجحیت ترکیب $(...) نسبت به `...`
سهشنبه 12 شهریورماه سال 1392 04:03
پرسش و پاسخ شماره ۸۲ چرا $( ... ) نسبت به ` ... ` (نقلقول برعکس) ارجحیت دارد؟ `...` ترکیب دستوری موروثی است که فقط در پوستههای خیلی قدیمی ناسازگار با POSIX لازم میشود. چندین دلیل برای ترجیح دادن همیشگی ترکیب $(...) وجود دارد: تفاوتهای مهم داخل نقلقولهای وارونه(backticks) با ممیزهای برعکس (\)به یک حالت...
-
کنترل وجود یک فرمان در مسیر PATH
یکشنبه 10 شهریورماه سال 1392 04:03
پرسش و پاسخ شماره ۸۱ چگونه میتوانم تعیین کنم که یک فرمان آیا در جایی از PATH من وجود دارد؟ POSIX فرمان داخلی به نام command تعیین میکند، که میتواند برای این منظور به کار برود: # POSIX if command -v qwerty >/dev/null; then echo qwerty exists else echo qwerty does not exist fi در BASH، یک زوج دستور داخلی بیشتر نیز...
-
پرسش و پاسخ شماره ۸۰
شنبه 9 شهریورماه سال 1392 04:03
پرسش و پاسخ شماره ۸۰ چگونه میتوانم مستعاری ایجاد کنم که یک شناسه دریافت کند؟ نمی توانید. مستعارها در bash بینهایت ابتدایی هستند، و در حقیقت برای هیچ مقصود مهمی مناسب نمیباشند. حتی صفحه مستندات bash به طور صریح میگوید: هیچ مکانیسمی برای استفاده از شناسهها در جایگزینی متن وجود ندارد. اگر شناسهها مورد نیاز هستند،...
-
کاربرد grep جهت یافتن کلمات در فایل
پنجشنبه 7 شهریورماه سال 1392 16:03
پرسش و پاسخ شماره ۷۹ چطور میتوانم grep را برای یافتن سطرهای شامل foo و bar همچنین foo یا bar به کار ببرم؟ یا برای فایلهای شامل foo و bar، احتمالاً در سطرهای جداگانه؟ این در واقع سه پرسش مختلف است، بنابراین ما پاسخ را به سه قسمت تفکیک کردهایم. foo و bar در یک سطر آسانترین روش برای مطابقت با سطرهایی که شامل هر دو...
-
تخصیص کلمه عبور توسط اسکریپت!
سهشنبه 5 شهریورماه سال 1392 16:03
پرسش و پاسخ شماره ۷۸ من میخواهم با استفاده ازفرمان passwd یونیکس یک کلمه عبور کاربر را تنظیم کنم، اما چطور آن را اسکریپت کنم؟ ورودی استاندارد را نمیخواند! خوب، اول از همه، من میدانم ممکن است افردای نیز هم اکنون درحال خواندن این مطلب باشند که حتی پرسش را متوجه نمیشوند. اینجا، این کد کار نمیکند : { echo oldpass;...
-
نظارت بر عملکرد کاربران
یکشنبه 3 شهریورماه سال 1392 16:03
پرسش و پاسخ شماره ۷۷ از چه طریق میتوانم تاریخچه را در فایل log ثبت کنم یا bash را در برابر پاک کردن آن ایمن نمایم؟ اگر شما یک کاربر پوسته هستید که میخواهد فعالیتهای خود را ضبط نماید، FAQ #88 را ملاحظه کنید. اگر شما یک مدیر سیستم میباشید که میخواهد بداند، موقعی که یک کاربر تاریخچه پوستهاش را به ...
-
حاصل جمع اعداد یک فیلد فایل
شنبه 2 شهریورماه سال 1392 16:03
پرسش و پاسخ شماره ۷۶ چگونه میتوانم حاصل جمع تمام اعداد در یک ستون را به دست آورم؟ این سؤال و تمام پرسشهای مشابه آن با یک AWK یک سطری پاسخ داده میشوند. awk '{sum += $1} END {print sum}' myfile یک تقلای کوچک میتواند این خط دستور را با اکثر وظایف مشابه (یافتن میانگین، پرش از سطرهایی با تعداد فیلدهای اشتباه، غیره) وفق...
-
استفاده از find
پنجشنبه 31 مردادماه سال 1392 16:04
UsingFind کاربرد find مندرجات نظر اجمالی جستجو بر اساس نام جستجو به نسبت زمان جستجو بر حسب اندازه عملیات عملیات پیچیده عملیات انبوه: xargs و -print0 و -exec + باگ ناخوشآیند OS X عملیات انبوه: GNU Parallel کنترل مجوزهای فایل منطق عبارت Find و عمل پیش فرض "-print" -prune مطالعه اضافی find(1) یک...
-
پرسش و پاسخ شماره ۷۵
پنجشنبه 31 مردادماه سال 1392 16:03
پرسش و پاسخ شماره ۷۵ چطور میتوانم از فرمان find استفاده کنم؟ من به هیچ وجه نمیتوانم صفحه man را درک کنم! بخش کاربرد Find را ملاحظه کنید.(یا post بعدی) پرسش و پاسخ 75 (آخرین ویرایش 2008-11-22 23:24:26 توسط GreyCat ) راهنمای آموزشی » « فهرست پرسش و پاسخها
-
بسط پارامترها در شلهای قدیمی
سهشنبه 29 مردادماه سال 1392 16:03
پرسش و پاسخ شماره ۷۴ چگونه میتوانم اثرات بسط پارامترهای جالب Bash را درپوستههای قدیمیتر داشته باشم؟ اکثر بسط پارامترها ی توسعه یافته، در پوسته قدیمیتر BourneShell کار نمیکنند. اگر لازم است کُد شما به خوبی قابل حمل به آن شل باشد، اغلب sed و expr میتوانند استفاده شوند. برای مثال، برای حذف قسمت پسوند از نام فایل:...
-
کاربرد بسط پارامتر در تجزیه رشتهها
یکشنبه 27 مردادماه سال 1392 16:03
پرسش و پاسخ شماره ۷۳ چگونه میتوانم از بسط پارامتر استفاده کنم؟ چطور زیر رشتهها را ایجاد کنم؟ چگونه میتوانم نام فایل را بدون پسوند، یا فقط پسوند فایلها را به دست آورم؟ بسط پارامتر یک مبحث مهم است. این صفحه شامل یک مرور کلی و فشرده برای بسط پارامتر است. راهنمای Bash شامل مقدمهای برای نوآموزان است. آموزش دستکاری...
-
پرسش و پاسخ شماره ۷۲
شنبه 26 مردادماه سال 1392 16:03
پرسش و پاسخ شماره ۷۲ چگونه میتوانم مطمئن شوم که محیط من برای برنامههای cron، batch، و jobs پیکربندی شده است؟ اگر یک اسکریپت پوسته یا سایر اسکریپتهای فراخواننده دستورات پوسته، به طور محاورهای به خوبی اجرا شود، اماموقعی که به طور غیر محاورهای اجرا میشود در اثر پیکربندی محیط شکست بخورد (فرض کنید: یک ...
-
تبدیل کاراکتر به دسیمال یا هگزا
پنجشنبه 24 مردادماه سال 1392 16:03
پرسش و پاسخ شماره ۷۱ چطور میتوانم یک کاراکتر اسکی را به مقدار دسیمال(یا هگزادسیمال) آن و برعکس تبدیل نمایم؟ اگر شما یک مقدار معین هگزادسیمال یا اُکتال دارید(در زمان نوشتن اسکریپت)، دقیقاً میتوانید printf را به کار ببرید: # POSIX printf '\x27\047\n' این کُد دو کاراکتر لفظی ' (27 مقدار هگزادسیمال کاراکتر اسکی و 47...
-
Unix timestamp
سهشنبه 22 مردادماه سال 1392 16:03
پرسش و پاسخ شماره ۷۰ چطور میتوانم زمان یونیکس(epoch) را به مقادیر قابل خواندن انسانی تبدیل نمایم؟ تنها روش سالم مدیریت مقادیر زمان در داخل یک برنامه، تبدیل آنها به مقیاس خطی است. شما نمیتوانید "January 17, 2005 at 5:37 PM" را در متغیری ذخیره کنید و انتظار انجام کاری را با آن داشته باشید.... بنابراین، هر...
-
ارسال کلمه عبور!
یکشنبه 20 مردادماه سال 1392 16:03
پرسش و پاسخ شماره ۶۹ میخواهم یک ارتباط ssh (یا scp، یا sftp) را خودکار نمایم، اما نمیدانم چطور کلمه عبور را ارسال کنم ایست! اول از همه، اگر شما واقعاً کلمه عبور خود را در جایی از اسکریپت تعبیه کنید، میتواند در تمام جهان قابل رؤیت بشود(یا حداقل، برای هر شخصی که بتواند فایلهای سیستم شما را بخواند). این امر تمامی هدف...
-
timeout برای انصراف از اجرای فرمان
جمعه 18 مردادماه سال 1392 16:03
پرسش و پاسخ شماره ۶۸ چگونه میتوانم فرمانی را اجرا کنم و انصراف از آن پس از N ثانیه را داشته باشم(timeout) نخست بررسی کنید آیا میشود به فرمانی که اجرا میکنید به طور مستقیم گفته شود، زمان مورد نظر به پایان رسید. روشهای تشریح شده در اینجا فرافکنی hack مانندی برای مجبور نمودن دستور، به خاتمه یافتن پس از سپری شدن یک...
-
حذف زواید از متغیر
چهارشنبه 16 مردادماه سال 1392 16:03
پرسش و پاسخ شماره ۶۷ چطور میتوانم فضای سفید قبل یا بعد یکی از متغیرهایم را پاک کنم؟ برای انجام این کار چند راه وجود دارد. بعضی از از این روشها ترفندهای خاصی را شامل میگردند که فقط با فضای سفید کار میکنند. برخی دیگر بیشتر عمومیت دارند، و میتوانند برای جدا کردن صفرها به کار بروند، و غیره. در اینجا یکی از آنها که فقط...
-
پرسش و پاسخ شماره ۶۶
دوشنبه 14 مردادماه سال 1392 16:03
پرسش و پاسخ شماره ۶۶ میخواهم عبارت if [[ $ var == foo || $ var == bar || $ var == more ... ]] را بدون n مرتبه تکرار $ var ، بررسی کنم. چاره کار استفاده از case میباشد: # Bourne case "$var" in foo|bar|more) ... ;; esac در Bash و ksh همین کار را، globهای توسعه یافته نیز میتوانند در داخل فرمان [[ انجام...
-
pause در اسکریپت
شنبه 12 مردادماه سال 1392 16:03
پرسش و پاسخ شماره ۶۵ آیا یک دستور "PAUSE" مانند آن که در اسکریپتهای MSDOS هست، در bash وجود دارد؟ که به کاربر اعلام نماید جهت ادامه کلیدی را بزند؟ کُد زیر را برای انتظار تا فشردن کلید اینتر توسط کاربر به کار ببرید: # Bash read -p "Press [enter] to continue..." # Bourne echo "Press [enter] to continue..." read junk یا...
-
پرسش و پاسخ شماره ۶۴
پنجشنبه 10 مردادماه سال 1392 16:03
پرسش و پاسخ شماره ۶۴ چرا دریافت پاسخ پرسشی که من در #bash پرسیدم، تا این اندازه دشوار است؟ شاید هیچ کس جواب را نداند( یا افرادی که میدانند مشغول هستند). شاید شما توضیح کافی در باره مشکل ندادهاید، یا شما مشکل را به طور شفاف بیان نکردهاید . شاید سؤالی که پرسیدهاید در این FAQ، یا در تلههای Bash ، یا در...
-
XyProblem
سهشنبه 8 مردادماه سال 1392 16:03
مشکل X-Y مشکل X-Y چنانکه گاهی اوقات XyProblem نامیده شده، هذیانی است که برای افراد در هر دو طرف متقاضی کمک و ارائه دهنده کمک، منجر به اتلاف وقت و انرژی بسیار زیاد میگرد. این مورد غالباً به صورتی مشابه این پیش میرود: کاربر میخواهد X را انجام بدهد. کاربر نمیداند X را چطور انجام بدهد، اما فکر میکند اگر آنها فقط...
-
آداب معاشرت در اینترنت
یکشنبه 6 مردادماه سال 1392 16:18
Net Etiquette آداب معاشرت در شبکه اینترنت (یا 'Net، یا Net) شبکهای تشکل یافته از بسیاری شبکههای متمایز و کوچکترِ کامپیوترها میباشد. گر چه، نگاه به آن تنها به عنوان مجموعهای از کامپیوترها، گمراه کننده است، زیرا اکثر آن کامپیوترها در حال استفاده توسط انسانها میباشند. آگاهی از اینکه چطور با یک کامپیوتر رفتار شود یک...