روشنی‌های راه

شب سرودش را خواند، نوبت پنجره‌هاست ...

شب سرودش را خواند، نوبت پنجره‌هاست ...

آخرین مطالب

آموزش خط فرمان لینوکس - قسمت پنجم

يكشنبه, ۱۸ مهر ۱۳۸۹، ۱۲:۰۳ ق.ظ
سلام. باز هم خیلی طول کشید تا وقت کنم یک قسمت جدید از آموزش شل رو ترجمه/تایپ کنم. به هر حال خودمم این بی‌نظمی رو دوست ندارم.
در خدمتتون هستم با قسمت جدید. اینجا بد نیست به خوانندگان این پست‌ها و کلا علاقه‌مندهای لینوکس یادآوری کنم که این سری از پست‌های من صرفا ترجمه مطالب سایت linuxcommand.org است و شما می‌تونید این مطالب رو از همون جا دنبال کنید.

دستکاری فایل‌ها
این درس شما رو با دستورات زیر آشنا می‌کند:
دستور cp- برای کپی کردن فایل‌ها و شاخه‌ها
دستور mv- برای تغییر نام و یا جابجایی فایل‌ها و شاخه‌ها
دستور rm- برای پاک کردن فایل‌ها و شاخه‌ها
دستور mkdir- برای ساخت شاخه‌ها
این چهار دستور از پرکاربردترین دستورات لینوکس و دستورات پایه‌ای برای دستکاری و تغییر فایل و شاخه‌ها هستند.
باید صریحا بگویم که تعدادی از کارهایی که این دستورات برای ما انجام می‌دهند خیلی ساده‌تر از طریق رابط کاربری و یک مدیر فایل قابل انجام هستند. با استفاده از یک مدیر فایل به سادگی می‌توانید فایل‌ها را از شاخه‌ای به شاخه‌ی دیگر بکشید، آنها را ببرید و بچسبانید یا از بین ببرید یا خیلی کارهای دیگر، اما چرا باید از این دستورات قدیمی در لینوکس استفاده کنیم؟!
پاسخ این سوال قدرت و انعطاف‌پذیری این دستورات است. با اینکه دستکاری‌های ساده در فایل‌ها به سادگی در مدیر فایل قابل انجام هستند،‌ کارهای پیچیده‌تر در خط فرمان با این دستورات، ساده‌تر از رابط گرافیکی صورت می‌گیرند. برای مثال وقتی می‌خواهیم فقط فایل‌هایی با فرمت html را به شاخه‌ی دیگری انتقال دهیم،‌ اما فقط آنهایی که در شاخه‌ی مقصد موجود نیستند یا نسخه‌ی قدیمی آنها در آنجا موجود است،‌ با استفاده از رابط گرافیکی این کار خیلی زمان‌بر و سخت است، اما با یک دستور خط فرمان این کار قابل انجام است:
cp -u *html destination
کاراکترهای ویژه

قبل از اینکه بخواهم راجع به دستورات این بخش توضیح دهم، می‌خواهم راجع به امکانی در شل صحبت کنم که این دستورات را خیلی قدرتمند ساخته است. در حالیکه شل مدام از نام فایل‌ها استفاده می‌کند، از کاراکتر‌های ویژه‌ای پشتیبانی می‌کند که به شما برای مشخص کردن گروهی از فایل‌ها کمک می‌کند. این کاراکتر‌ها را کاراکتر‌های ویژه می‌نامیم. (واقعا ترجمه‌ی سلیسی برای wildcard پیدا نکردم!) کاراکتر‌های ویژه به ما اجازه می‌دهند تعدادی فایل‌ را از میان انبوهی از فایل‌ها بر اساس الگوی خاصی در نام‌های آنها انتخاب کنیم. جدول زیر، کاراکتر‌های خاص و آنچه را که آنها انتخاب می‌کنند لیست کرده است:

 
کاراکتر‌ ویژه معنی و مفهوم
* تطابق با هر نوع از کاراکتر‌ها
?

تطابق با هر کاراکتر تکی

[characters]

تطابق با هر کاراکتری که عضوی از مجموعه‌ی characters محسوب می‌شود. مجموعه‌ی کاراکتر‌ها می‌تواند به صورت یک کاراکتر POSIX هم بیان شود که می‌تواند یکی از موارد زیر باشد:

 
[:alnum:]

کاراکتر‌های الفبایی و رقم‌ها

 

[:alpha:]

کاراکتر‌های الفبایی

 

[:digit:]

رقم‌ها

 

[:upper:]

حروف بزرگ

 

[:lower:]

حروف کوچک

 
[!characters]

تطابق با هر کاراکتری که عضو مجموعه‌ی characters نباشد.

با استفاده از کاراکتر‌های ویژه، می‌توان انتخاب‌های بسیار قدرتمندی از بین نام فایل‌ها داشت. در جدول زیر، مثال‌هایی از الگو‌ها و مفهوم آنها را می‌بینید:

 
الگو مفهوم
 
* همه‌ی نام‌ها
 
g* نام‌هایی که با حرف g شروع می‌شوند.
 

b*.txt

نام‌هایی که با حرف b شروع شده و به حروف txt. خاتمه می‌یابند.
 

Data???

همه‌ی فایل‌هایی که با عبارت Data شروع شده و دقیقا ۳ کاراکتر بعد از آنها می‌آیند.
 

[abc]*

هر فایلی که نام آن با یکی از سه کاراکتر a، b و c شروع می‌شوند.

 

[[:upper:]]*

هر فایلی که نام آن با یک حرف بزرگ شروع شود.

 

BACKUP.[[:digit:]][[:digit:]]

هر فایلی که نام آن با عبارت BACKUP شروع شده و به دنبال آن دقیقا دو رقم بیاید.
 

*[![:lower:]]

هر فایلی که نام آن با حرف کوچک پایان نپذیرد.

شما می‌توانید کاراکتر‌های ویژه را با هر دستوری که نام فایل‌ها را به عنوان ورودی می‌گیرد استفاده کنید.

دستور cp

برنامه‌ی cp فایل‌ها و شاخه‌ها را کپی می‌کند. در ساده‌ترین فرمش، یک فایل را کپی می‌کند:

cp file1 file2

همچنین می‌تواند برای کپی کردن چند فایل به یک شاخه‌ی دیگر نیز مورد استفاده قرار بگیرد:

cp file1 file2 file3 directory

مثال‌های مفید دیگر در مورد دستور cp و امکاناتش در زیر آمده است:

 

دستور

نتیجه

cp file1 file2

محتویات file1 را در file2 کپی می‌کند. اگر فایل دوم وجود نداشته ساخته می‌شود در غیر این صورت file2 با محتویات file1 جایگزین می‌شود.

 
cp -i file1 file2

مانند قبلی با این تفاوت که سوییچ i- به معنی interactive به آن اضافه شده است. اگر فایل دوم موجود باشد، از کاربر برای جایگزین شدن اطلاعاتش با فایل اول سوال می‌شود.

 
cp file1 dir1

محتویات file1 را درون شاخه‌ی dir1 با همان نام کپی می‌کند.

 
cp -R dir1 dir2

محتویات شاخه‌ی dir1 را کپی می‌کند. در صورتی که dir2 وجود نداشته باشد، ساخته می‌شود. در غیر این صورت یک شاخه به نام dir1 درون شاخه‌ی dir2 ساخته می‌شود.

دستور mv

دستور mv دو کار متفاوت را با توجه به شیوه‌ی استفاده شدن از آن انجام می‌دهد. این دستور هم می‌تواند یک فایل یا بیشتر را به شاخه‌ی دیگری منتقل کند، یا می‌تواند یک فایل یا شاخه را تغییر نام دهد. برای تغییر نام، دستوری شبیه دستور زیر اجرا می‌شود:

mv filename1 filename2

برای انتقال فایل‌ها به شاخه‌ی دیگر:

mv file1 file2 file3 directory

تعدادی مثال از دستور mv و امکاناتش:

 
دستور نتیجه
mv file1 file2

اگر file2 وجود نداشته باشد، file1 به file2 تغییر نام پیدا می‌کند. اگر file2 موجود باشد، محتویاتش با محتویات file1 جایگزین می‌شود.

 
mv -i file1 file2

مانند مثال قبل، اما با سوییچ interactive

 
mv file1 file2 file3 dir1

فایل‌های file1 و file2 و file3 به شاخه‌ی directory انتقال داده می‌شوند. dir1 باید وجود داشته باشد وگر نه یک خطا برمی‌گردد.

 
mv dir1 dir2

اگر شاخه‌ی dir2 وجود نداشته باشد، شاخه‌ی dir1 به dir2 تغییر نام می‌دهد، در غیر این صورت شاخه‌ی اول درون شاخه‌ی دوم ساخته می‌شود.

دستور rm
دستور rm که مخفف remove است، فایل‌ها یا شاخه‌ها را پاک می‌کند.
rm file
همچنین می‌تواند برای پاک کردن یک شاخه مورد استفاده قرار گیرد:
rm -r directory

مثال‌هایی از rm و امکاناتش در جدول زیر آمده‌ است:

 

دستور

نتیجه

 

 

rm file1 file2

فایل‌های file1 و file2 را پاک می‌کند.

Delete file1 and file2.

 

rm -i file1 file2

مانند مثال قبل اما برای پاک کردن هر فایل از کاربر تایید می‌گیرد. (interactive است.)

 

rm -r dir1 dir2

شاخه‌های dir1 و dir2 به همراه همه‌ی زیرشاخه‌هایشان پاک می‌شوند.

هنگام کار با دستور rm مراقب باشید. لینوکس دستوری برای بازیابی فایل‌ها پاک شده ندارد. وقتی فایلی را با دستور rm حذف می‌کنید، برای همیشه می‌رود! شما ممکن است ضربه‌های جبران ناپذیری با استفاده‌ی نادرست از rm به سیستم خود وارد کنید. مخصوصا وقتی از کاراکتر‌های خاص استفاده می‌کنید.

وقتی دستور rm را با کاراکتر‌های خاص استفاده می‌کنید، از این حقه‌ی کمکی استفاده کنید: ابتدا با دستور ls فایل‌هایی را که با کاراکتر‌های خاص فیلتر می‌شوند، ببینید، بعد به جای ls از rm استفاده کنید.

دستور mkdir

دستور mkdir برای ساخت شاخه‌ها مورد استفاده قرار می‌گیرد. برای استفاده از به سادگی تایپ کنید:

mkdir directory_name
=-=-=-=-=
Powered by Blogilo
موافقین ۰ مخالفین ۰ ۸۹/۰۷/۱۸
مجید عسگری

نظرات  (۱۱)

مجید جان به نظرم یه پستی هم د رمورد ویرچوال باکس شرکت سان بزن ... بعدش اینا تو اوبونتو هم کاربرد دارند ؟ :-" قربونت داش علی D:
۱۸ مهر ۸۹ ، ۲۱:۵۲ یکی از همین آدم ها
چشم ویرچوال باکسم می‌نویسم. البته چیز خاصی که نداره. اون سوالتم که جواب نمی‌دم :دی
با سلام مطالب خیلی طولانی بود
لطفا در چند قسمت ارائه شود
در ضمن لطفا جمعیتتون رو برای من بفرستید.
۱۵ آبان ۸۹ ، ۱۹:۲۳ حامد رضائی
سلام بر مجید عزیر
من فدورا نصب دارم!
حالا درایور ATI mobility radeon hd 5470 کارت گرافیک رو چجوری پیدا کنم؟
کلا برای کارت گرافیک تو لینوکس چیکار میشه کرد؟
Open GL چی هست؟ کارسازه؟
ممنون
البته اگر وقت کردی.
نیاز به قالب دفتر برنامه ریزی شما دارم
۰۷ آذر ۸۹ ، ۰۵:۰۸ یکی از همین آدم ها
شاید باورتون نشه اما من همه‌ی فایل‌ها رو گم کردم متاسفانه. اما می‌تونید اینجا ( http://roshaniha.files.wordpress.com/2009/03/manual.jpg ) یک صفحه از اونو ببینید و تغییر بدید. اگه می‌خواهید این دفتر رو بهتر کنید من می‌تونم بقیه‌ی قسمت‌هاش رو هم ازش عکس بگیرم و براتون بفرستم.
اما کلیت اون دفتر این بود:
صفحه‌ی شروع: دفتر خاطرات روزانه و برنامه‌ریزی شخصی سال ۱۳۸۸
صفحه‌ی ارتباط با من: اولا نوشته بودم که این دفترچه حاوی مطالب خصوصیه و اگر پیدا شد توسط کسی چه جوری با من تماس بگیره
صفحه‌ی agenda (منظورم همون عکسیه که لینکش داده شده)
صفحه‌ی اهداف بلندمدت امسال
اهداف میان مدت ماهانه (تصمیماتی برای سلامت افکار، سلامت جسمی و علم آموزی) (طبیعتا در ابتدای هر ماه -> ۱۲ صفحه)
۳۶۵ صفحه‌ی مربوط به هر روز طبق الگو. هر چهار روز یک صفحه‌ی آ-۴ پشت و رو
در کنار این دفترچه یک دفترچه شبیه دفتر برنامه‌ریزی قلم‌چی فابل استفاده است که می‌تونه حتی حاوی تفریحاتم باشه. اما تجربه به من ثابت کرده همین یادداشت روزانه کافیه و برای مثلا یک دانشجو، دفتر برنامه‌ریزی قلم‌چی کمی وقت‌گیره و کم استفاده. (البته من یک سال به طور موفق ازش استفاده کردم اما کم کم روش‌های آزادانه‌تر رو ترجیح دادم)
$ sodu apt-get install MajidAsgari .... :D
۱۳ آذر ۸۹ ، ۰۳:۳۱ یکی از همین آدم ها
ببخشید من این کامتت رو ندیده بودممممم نمی دونم چرا منتظر تایید بود این کامنت.
والا تا جایی که می‌دونم ATI تا چند وقت پیش درایور کارت گرافیکی برای لینوکس نمی‌داد که بعد از مدتی تصمیم گرفت این کارو انجام بده و می‌تونی درایوراشو از سایتش به راحتی دانولد کنی و نصب کنی:
http://support.amd.com/us/gpudownload/Pages/index.aspx
اگه کارت گرافیکیت نصب بشه کلا لینوکس از ویندوز خیلی قشنگتر و سریعتر خواهد بود. OpenGL هم یه لایبریری برای کارای گرافیکیه که خیلی جاها و خیلی بازی‌ها استفاده می‌شه. این نکته هم قابل توجهه که سیستم عامل لینوکس روی پلی استیشن ۳ هم وجود داره!
۱۳ آذر ۸۹ ، ۰۳:۳۳ یکی از همین آدم ها
عاشق این حرکات بانمکتم داش علی!
salam khedmat e nevisandeye in matlab.
jenab kheili matalebe khubi hastan va mamnun ke ina ro vase ma karbar ha free tarjome mikonid o minvisid.
vali ye khahesh:
man har ja raftam o dar morede Terminal e Linux & CMD windows khundam ta ye had e kheili kam touzih dadan....maalan ta hamin had ee ke shoma ta hala touzih dadin...
mikhastam azatun bekham in karo edame bedin va post haye bishtari o dar in mored bezarid,taze Command Line az inja shooroo mishe :D ina ke faghat dar had e ashnayee bud
baad ham : age khodetun tu terminal herfe ee hastid...mitunid az dastoor e help estefade konid jozeeyat har dastoor o bebinid va tak tak vase ma karbar ha tozih bedin,injuri daghigh tar mishe va ye manba kamel dorost kardin.
mamnun misham age in amoozesh o edame bedin...khoda ghovvat
سلام
دوست عزیز خیلی خیلی زحمت میکشی که وقت میزاری. واقعا کار خسته کننده ایه. من هم می خواستم این ترجمه رو انجام بدم تا به صورت اصولی یاد بگیرم اما خیلی کم حوصله ام. اما یک کمی حوصله کار تمیز تر در میاد؛ مثلا در اینجا که ترجمه کردی:
«برای مثال وقتی می‌خواهیم فقط فایل‌هایی با فرمت html را به شاخه‌ی دیگری انتقال دهیم،‌ اما فقط آنهایی که در شاخه‌ی مقصد موجود نیستند یا نسخه‌ی قدیمی آنها در آنجا موجود است»
صحیح ترش میشه:
«برای مثال، چگونه می خواهید تمام فایل های html را از یک دایرکتوری به دایرکتوری دیگر کپی کنید، بطوری که فقط فایل هایی کپی شوند که در دایرکتوری مقصد موجود نیستند یا فقط فایل هایی کپی شوند که جدیدتر از نسخه موجود در دایرکتوری مقصد باشند؟»
البته شما که این ترجمه رو انجام میدی مطمئنن اینقدر توانایی داری که چطور ترجمه کنی اما گاهی وقتا از حوصله خارجه. فقط قصدم بهتر شدن کار بود.
متشکرم.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی