0

استادي با دستورات ترمينال

 
samsam
samsam
کاربر طلایی1
تاریخ عضویت : بهمن 1387 
تعداد پست ها : 50672
محل سکونت : یزد

استادي با دستورات ترمينال

 

 
«در لينوكس، همه مي‌دانند كه مي‌شود فلان كار را با يك دستور ترمينالي انجام داد.» اين جمله درست است، اما اين كه آن دستور را بشود پيدا كرد اصلا آسان نيست؛ بخصوص در مورد مديريت بسته‌ها در سيستم‌هاي دبياني.

ابزارهاي بسته‌هاي دبيان(dpkg، مجموعه نرم‌افزاري ATP و ابزارهايي چونaptitude) امور پايه‌اي نصب و مديريت بسته‌ها را بسادگي انجام مي‌دهد. حتي اگر بخواهيم كارهاي پيچيده‌تر را هم انجام دهيم، ‌به كمك اين ابزارها مي‌توان آنها را ساده‌تر كرد، اما آپشن‌ها و ابزارهايي كه براي اين كار لازم است، خيلي مشهور نيستند.

 

يكي از كارهاي مفيدي كه مي‌توان انجام داد فهميدن اين موضوع است كه چرا فلان بسته نصب شده است؟ براي پاسخ به اين سوال، مي‌خواهيم از ابزار Aptitude استفاده كنيم كه اين كار را بسادگي و سرعت انجام مي‌دهد. كافي است از دستور زير استفاده كنيم تا متوجه شويم اين بسته مورد استفاده چه برنامه‌اي است:

Aptitude why packagename

 

اگر براي مدت طولاني ابزارهاي سيستم خود را به‌روز نكرده‌ايد، احتمالا از اطرافيان خود شنيده‌ايد كه مي‌گويند، بهتر است توزيع خود را ارتقا بدهيد و به‌جاي دستور upgrade ازdist-upgrade استفاده كنيد. هر چند كه راه بهتري است و بعد از انجام اين دستور، ديگر با تعداد زيادي از بسته‌هاي ارتقا يافته بي‌مصرف روبه‌رو نخواهيد شد، اما تنها كافي است به‌جاي استفاده از ابزار apt، از aptitude استفاده كنيد.

 

گاهي اوقات پيش مي‌آيد كه بخواهيد بدانيد فايل‌هاي موجود در يك بسته چه هستند يا اين كه آيا فلان فايل به بسته خاص وابسته هست يا خير. براي اين منظور، از دستور dpkg –S filename استفاده مي‌كنيم. مثلا اگر بسته Sendmail در سيستم شما نصب نشده باشد و بخواهيد بدانيد كه چه بسته‌اي است كه دارد لينك ‌/‌usr‌/‌lib‌/‌sendmail را كنترل مي‌كند، مي‌توانيد دستور زير را اجرا كنيد:‌

Dpkg –S ‌/‌usr‌/‌lib‌/‌sendmail

 

كه براي مثال، جوابي معادل زير مي‌دهد:

 

postfix: ‌/‌usr‌/‌lib‌/‌sendmail

 

حالا اگر بخواهيم بدانيم كه كدام بسته چه فايلي را نصب مي‌كند، بايد چه كنيم؟ اين كاري است كه دستور apt-file انجام مي‌دهد. توجه داشته باشيد اين دستور ممكن است به‌صورت پيش‌فرض نصب نشده باشد و بايد آن را نصب كنيم. بعد از نصب بايد حافظه كش آن را به‌روز كنيم (با تايپ دستور apt-file update). حالا اگر دستور apt-file filename را تايپ كنيم، اطلاعات آن فايل را دريافت مي‌كنيم.

 

بهتر است اطلاعاتي كه مي‌دهيم بسيار جزئي باشد، چرا كه ممكن است پاسخ برگشتي شامل چند جواب شود اما وقتي آدرس دقيق مي‌دهيم، مثلا نشاني ‌/‌usr‌/‌lib‌/‌xml2Conf.sh را به‌عنوان filename به آن دستور بدهيم، تنها يك پاسخ بيرون مي‌دهد. در نتيجه اگر فايل /etc/apache2/apache2.conf را با اين دستور جستجو كنيم، حتي اگر آپاچي روي سيستم نصب نشده باشد هم، پاسخ apache2.2-common را بر مي‌گرداند. آخرين ترفند ترمينالي هم برمي‌گردد به يك موضوع جالب و آن هم گزارش‌گيري از تمام نرم‌افزارهايي است كه تاكنون نصب شده است. به فرض بخواهيم يك نصب تميز از سيستم عامل داشته باشيم، اما نه حوصله و نه وقت اين كار را داريم كه يكي يكي يادمان بيايد چه نرم‌افزارهايي را قبلا نصب كرده‌ بوديم. براي اين منظور ‌مي‌توان با اجراي دستور dpkg –get-selections فهرست بسته‌هايي را كه نصب ‌شده‌اند، بيابيم. نتيجه را در يك فايل متني ذخيره كنيم و بعد از اين كه سيستم عامل نصب شد، دستور زير را اجرا كنيم:

dpkg --set-selections » installed-packages.txt

 

 
جمعه 6 مرداد 1391  1:04 PM
تشکرات از این پست
دسترسی سریع به انجمن ها