Linux فارسی


دستورهاي لينوکس

خط فرمان قدرتمندترين راه تعامل با لينوکس است. با اين حال اگر به ان عادت ندريد، فرايند يادگيري ممکن است کمي دشوار باشد. بهترين روش شروع به کار با چند دستور ساده است. سعي نکنيد که بلافاصله تمام کارهايتان را از طريق خط فرمان انجام دهيد. چند دستور را ياد بگيريد، آنها را به کار ببريد و به مرور زمان دانش خود را در مورد کارکرد آنها بيفزاييد. سپس مي­توانيد به تدريج دستورات بيشتري را که نياز داريد ياد بگيريد. در زير چند دستور ساده آمده است که مي­توانيد کار خود را با انها آغاز کنيد. سعي نکنيد که تمام آنها را به يکباره ياد بگيريد. تنها چند مورد را انتخاب کرده و آنها را تمرين کنيد.

  • man

  • ls

  • cd

  • mkdir

  • mv

  • rm

  • locate / slocate

  • ping

  • cp

  • pwd

  • tab

چند دستور ديگر که بهتر است بدانيد

  • ldconfig

  • updatedb

  • ./configure

  • make

  • make install

  • tar

  • more

  • whereis

بياييد نگاهي به هر کدام داشته باشيم. براي کسب تجربه در مورد اين دستورها راحت باشيد. کمي دقت کنيد زيرا در صورت بي احتياطي ممکن است به فايل­ها، فئلدرها و حتي سيستم عامل خود آسيب برسانيد. اگر امکان بروز خرابي توسط دستورها وجود داشته باشد، من به شما گوشزد خواهم کرد. بنابراين تعدادي از اين دستورها را در ترمينال امتحان کنيد:

 

Man

اين دستور براي شروع مناسب است، زيرا به buult در صفحات راهنمايي لينوکس دسترسي پيدا مي­کند. Man مخفف manual است و اگر اين دستور و پس از آن يک فاصله و سپس نام يک دستور ديگر را تايپ کنيد، صفحه­ي راهنمايي در ترمينال برايتان باز مي­شود که شامل توضيحات آن دستور است. به عنوان مثال تايپ کنيد :

man ls

دستور بالا صفحه­اي پر از اطلاعات در مورد دستور Ls را براي شما باز مي­کند. قالب اين صفحه­ي راهنما ممکن است کمي گيج کننده باشد، بنابراين تنها کمي مرور کرده و زياد نگران نشويد. بخشي که بايد بيشتر به آن توجه کنيد، توضيحات دستور است. (به عنوان مثال کاري که دستور انجام مي­دهد) براي scrollکردن به پايين صفحه­ي راهنما کليد space را فشار داده و براي خارج شدن از صفحه­ي راهنما q را بزنيد.

چند دستور Man را امتحان کرده و سپس در مورد ديگر دستوراتي که در بالا به آنها اشاره شد بخوانيد. سيستم ديگري نيز براي راهنمايي وجود دارد که به همين روش کار مي­کند، ولي به جاي تايپ Man بايد info وسپس دستور را به صورت زير تايپ کنيد:

info ls

آزمايش کنيد!

ls

دستور ls مخفف دستور 'list' است. مي­توانيد از اين دستور براي ليست کردن محتواي هر دايرکتوري که در آن هستيد استفاده کنيد. اين دستور را در يک پنجره­ي ترمينال تايپ کرده و نتيجه را ببينيد. هم اکنون يکي از ويژگي­هاي دستورهاي لينوکس قابليت اضافه کردن پارامتر­هاي مختلف به آنهاست. اين کار بسيار ساده است و روش استفاده­ي شما را از دستور بهتر مي-کند. معمولا اضاه کردن پارامترها به دستور به قرار دادن يک '-' بلافاصله پس از دستور و بعد تايپ کردن نام پارامترها يا مخفف آنها انجام مي­شود. به عنوان مثال اگر من دستور زير را تايپ کنم:

 ls -l

پارامتر l را به دستور ls پاس کرده­ام. پرامتر L مخفف 'long list' بوده و نشان دهندهي نوعي قالب براي نمايش اطلاعات ls است. اين قالب نسبت به Ls بدون پارامتر اطلاعات بيشتري مي­دهد... دو دستور را امتحان کرده و نتيجه را مقايسه کنيد.

ممکن است بپرسيد چطور پارامترهاي يک دستور را بشناسم؟ اين اطلاعات در صفحات Man هر دستور موجود بوده و دسترسي به انها آسان است. (بالا را ببينيد)

در مورد دستور Lsپيشنهاد مي­کنم از طريق به کار بردن 'ls' همچنين ls -al و ls -l با قالب ها آشنا شويد.

Cd

Cd رايج­ترين دستور براي راهيابي در سيستم فايل روي کامپيوترتان است. Cd مخفف change directory است. اين دستور را با تايپ کردن Ls و گرفتن ليستي از فايل­ها و فولدر­هاي دايرکتوري که هم اکنون در آن هستيد، انتحان کنيد. حالاls و پس از آن نام يکي از فايل­هاي کوجود در ليست را تايپ کنيد. براي مثال اگر فايلي به نام 'me.txt' وجود داشته باشد، ميتوانم تايپ کنم

cd me.txt

اين دستور يک خطا توليد مي­کند. چرا؟ زيرا نمي­توتن دايرکتوري را به يک فايل تغيير داد. اين دستور را انتحان کنيد تا متوجه شويد که به خاطر اشتباد در دستور cd هيچ خرابي به بار نميآيد. براي تغيير دايرکتوري ابتدا Cd و سپس نام دايرکتوري که مي­خواهيد به آن برويد را تايپ کنيد. اگر در نتيجه­ي دستور Ls دايرکتوري به نام 'src' وجود داشته باشد، ميتوانم دستور زير را تايپ کنم:

cd src

اگر اين دستور موفقت آميز باشد، ترمينال هيچ خطايي نمي­گيرد. اين دستور را با يک دايرکتوري واقعي در کامپيوترتان امتحان کنيد. اگر شکست بخوريد احتمالا اجازه­ي راهيابي به آن دايرکتوري را نداريد، نام دايرکتوري را اشتباه تايپ کرده اي يا اينکه دايرکتوري وجود ندارد.

چند کلمه در مورد سيستم فايل در لينوکس: معمولا اگر سيستم به خوبي براي شما راه اندازي شده باشد، شما در دايرکتوري home خود کار خواهيد کرد. اين دايرکتوري به صورت نرمال در يک مکان ثابت در لينوکس قرار گرفته است. براي يافتن دايرکتوري home خود ابتدا اين دستور را تايپ کنيد

cd /

اين دستو را شما را به بالاترين دايرکتوري در سيستم فايل کامپيوترتان مي­برد.

حالا اگر Ls را تايپ کنيد، ليست دايرکتوري­ها در بالاترين سطح از سيستم فايل کامپيوتر برايتان نمايش داده مي­شود. چند دايرکتوري مهم اينجا هستند، ولي شما بيشتر به مار با دايرکتوري home نياز خواهيد داشت. براي رفتن به اين ايرکتوري مي­توانيم از دستور ls که پيش­تر ياد گرفتيم استفاده کنيم:

cd home

اگر حالا ls را تايپ کنيد، ليستي شامل تعداد بيشتري دايرکتوري خواهيد ديد که احتمالا يکي از انها همنام نام کاربري شما خواهد بود. اين دايرکتوري home شماست. ما با استفاده از مکان يابي نسبي (relative positioning) به اين دايرکتوري راه پيدا کرده­ايم، به اين معني که اگر من در دايرکتوري سطح بالا باشم و cd home را تايپ کنم، به دايرکتوري خواهم رفت مه دايرکتوري home شخصي تمام کاربران در آن نگهداري مي­شود.

اگر من در جاي ديگري از سيستم فايل باشم و cd home را تايپ کنم، خطا توليد مي­شود. در صورت نياز مي­توانيد از مسير­هاي مطلق يا absolute براي رفتن به دايرکتوري مورد نظرتان استفاده کنيد. به عنوان مثال اگر در مکان ناشناخته­اي از سيستم فايل بوده و بخواهم سريعا به دايرکتوري home بروم بايد تايپ کنم

 cd /home

اگر بخواهم به دايرکتوري تحت دايرکتوري home بروم (رضا دايرکتوري به نام adam در انجا دارم) ميتوانم بنويسم

cd /home/adam

Mkdir

اين دستوري است که شما براي ايجاد يک دايرکتوري از آن استفاده مي­کرديد و مخفف make directory است. براي استفاده از اين دستور تنها نام دايرکتوري را که مي­خواهيد ايجاد کنيد پس از دستور Mkdir به صورت زير تايپ کنيد

mkdir bleep

دستور بالا يک دايرکتوري به نام bleep در دايرکتوري که هم اکنون در آن هستيم ايجاد خواهيد کرد. اگر يک دايرکتوري با همين نام از قبل وجود داشته باشد، من با خطا مواجه مي­شوم و کامپيوتر دايرکتوري موجود را بازنويسي نخواهد کرد. سعي کنيد چند دايرکتوري ايجاد کنيد.

Pwd

اگر در سيستم ايل گم شويد و ندانيد کجت هستيد، همواره مي­توانيد دستور Pwd را تايپ کنيد و از مکان فعلي خود مطلع شويد. اين دستور مسير موقعيت يا مسير مطلق مکاني را که در آن هستيد به شما خواهد داد. براي مثال اگر من در دايرکتوري home خود به نام adam باشم، خروجي دستور Pwd به صورت زير خواهد بود

/home/adam

سعي کنيد دايرکتوري ها را با تايپ کردن دستور cd عوض کرده و با استفاده از pwd از مکان خود مطلع شويد.

Mv

اين دستور مخفف move است. همانطور که به نظر مي­آيد Mv امکان انتقال فايل­ها را در سيستم فايل فراهم مي­کند. اين دستور مانند عمليات 'cut' و 'paste' در Mac و ويندوز است که در يک دستور جمع شده است. براي استفاده از mv ابتدا دستور را تايپ کنيد، پس از آن فايلي را که مي­خواهيد منتقل کنيد (با استفاده از مسيرهاي نسبي يا مطلق که شامل نام فايل باشد) و سپس مکاني را که مي­خواهيد فايل به آم منتقل شود (به صورت مسيرهاي نسبي يا مطلق) را وارد کنيد. به عنوان مثال اگر بخواهم فايلي به نام "me.txt" را از دايرکتوري فعلي خود به دايرکتوري "/usr/bin" منتقل کنم، دستور زير را تايپ خواهم کرد:

mv me.txt /usr/bin

اگر بخواهم نام فايل را بدون تغيير دادن مکان آن عوض کنم، به صورت زير از دستور Mv استفاده مي­کنم:

Mv me.txt you.txt

به خاطر داشته باشيد زماني که از mv استفاده مي­کنيد، فايل را منتقل مي­کنيد نه کپي. بنابراين نسخه­ي اصلي قايل منتقل شده و در مکان اوليه موجود نخواهد بود. حالا نيز کمي دقت کنيد، زيرا ممکن است به صورت تصادفي فايل­ها را بازنويسي کنيد. به عنوان مثال اگر يک فايل را به دايرکتوري انتقال دهم که شامل ايلي با همان نام است، فايلي که منتقل مي­کنم، فايل موجود در دايرکتوري را بازنويسي خواهد کرد. در اين صورت ممکن است دچار مشکل شويد بنابراين کمي دقت کنيد.

rm

از سويي ديگر دستوري وجود دارد که موقع استفاده از آن بايد دقت زيادي بکنيد. Rm مخفف remove بوده ودستوري است که براي حذف يک فايل يا دايرکتوري (و محتويات آن) از آن استفاده مي­شود. برلاي استفاده از اين دستور rm و پس از آن نام فايلي را که مي­خواهيد براي هميشه حذف شود، تايپ کنيد. براي حذف يک دايرکتوري مي­توانيد از همان دستور همراه با پارامتر -R به صورت زير استفاده کنيد:

rm -R directoryname

به طور قطع directoryname نام directoryname است که مي­خواهيد حذف کنيد. همچنين مي­توانيد از rmdir که مخفف remove directory است استفاده کنيد. هنگام استفاده از اين دستورات دقت بسيار زيادي داشته باشيد، زيرا ايتفاده­ي نادرست از انها مي­تواند موجب توقف کار سيستم عاملتان شود.

Locate/slocate

اين دستورها در يافتن فايل­هاي روي سيستم فايل به شما کمک مي­کنند. مکان تمام فايل­ها در سيستم شما در يک پايگاه داده ذخيره شده است که توسط دستور updatedb به طور متناوب بهنگام مي­شود. براي يافتن يک فايل، locate يا slocate (بسته به اينکه کداميک روي کامپيوتر شما نصب شده است) و سپس قسمتي از نام فايل يا directoryname را که به دنبال آن هستيد تايپ کنيد. به عنوان مثال اگر من در جستجوي فايلي به نام "icecast.conf' باشم، دستور زير را تايپ مي­کنم :

Slocate icecast.conf

اگر با اجراي اين دستور هيچ پاسخي توليد نشود، به اين معني اسن که يا فايل در سيستم من وجود ندارد و يا اينکه پايگاه داده از مکان آن بي اطلاع است. در حالت دوم من updatedb را تايپ کرده و دوباره انتحان مي­کنم. با دستورات locate و slocate نمي­توانيد هيچ چيزي را از بين ببريد، بنابراين هرچقدر که دوست داريد تمرين کنيد. بعضي اوقات ممکن است اجراي دستور updatedb به خاطر اينکه اخيرا آن را اجرا نکرده ايد يا ماشين کندي داشته باشيد، طول بکشد. اجراي اين دستور ممکمن است مقدار زيادي از توان CPT را در ماشين­هاي کند بگيرد. بنابراين هرگز اين دستور را زماني که يک برنامه­ي مهم را اجرا مي­کنيد، به کار نبريد. همچنين يافتن فايل­ها روي کامپيوترتان را با دستورات whereis و find آزمايش کنيد.

cp

حدس بزنيد اين دستور مخفف چيست؟ copy. روش ايتفاده از اين دستور مانند mv است، با اين تفاوت کهخ اين دستور فايل اصلي را نگهداشته و يک کپي از آن ايجاد مي­کند.

Ping

اين دستور معمولا جزء ده دستور اولي که نياز به يادگيري آنها داريد، نيست.ولي براي دانستن اينکه آنلاين هستيد بسيار کارامد است. Ping درخواستي را به هر يک از کامپيوترهاي روي شبکه ارسال مي­کند، اگر آن کامپيوتر درخواست را بگيرد جواب مي­دهد. ابتدا ping و پس از ان يک URL را که مي­شناسيد تايپ کنيد. به عنوان مثال بهتر است دستور زير را امتحان کنيد

ping www.cnn.com

اگر آن کامپيوتر درخواست را دريافت کند، اطلاعات ارسالي از طرف آن از طريق ترمينال براي شما نمايش داده مي­شود. اين اطلاعاتبه طور مداوم scroll خواهد کرد، براي توقف آن ctrl و c را تايپ کنيد تا فرايند Ping متوقف شود.

اگر از ping هيچ پاسخي دريافت نکنيد، احتمالا Offline هستيد. با اين حال بعضي ماشين­هاي آنلاين با دلايل امنيتي و ... به درخواست­هاي ping پاسخ نم­دهند. بنابراين مطمئن شويد که ماشيني که ping مي­کنيد، واقعا به درخواست­هاي ping پاسخ ميدهد.

به علاوه برخي اتصال­هاي اينترنتي به ترافيک Ping اجازه­ي عبور نميدهند... به عنوان مثال هم اکنون که من اين راهنما را مي­نويسم، در يم کافي نت در Riga هستم که سرعت ارتباطي آن زياد است، ولي نمي­توانم Ping کنم.شايد به اين دليل که آنها فکر مي­کنند تنها خرابکارهاي بدانديش از Ping استفاده مي­کنند، بنابراين از نوعي امنيت شبکه­ي پارانويايي استفاده مي­کنند که اجازه­ي انجام هيچ کار مفيدي را نمي­دهد.

Tab

Tab بيشتر به عنوان يککليد مطرح بوده و يک دستور نيست. کليد Tab در هر صفحه کليدي وجود دارد و داشتن آن در لينوکس بسيار مفيد است. ممکن است پيش تر از اين کليد براي دندانه گذاري کلمات در يک کلمه­پرداز استفاده کرده باشيد. ميتوانيد از اين کليد به همين شکل در کلمه­پرداز­هاي لينوکس نيز استاده کنيد. ولي اگر در ترمينال لينوکس از اين کليد استفاده کنيد، به قدري در زمان صرفه­جويي مي­کند که پس از کسب مهارت همواره از آن استفاده خواهيد کرد.

کليد Tab لزوما يک auto-complee است. به عنوان مثال اگر بخواهم فايلي به نام 'dsjkdshdsdsjhds_ddsjw22.txt' را با استفاده از دستور mv به جاي ديگري منتقل کنم، مي­توانم تک تک حروف نام فايل را تايپ کن يا اينکه پس از دستور Mv (به معني MOVE) چند حرف اول نام فايل را تايپ کرده و Tab بزنم. بقيه­ي اسم قايل به طور خودکار نوشته مي­شود. اگر نام فايل به صورت خودکار نوشته نشود، به اين معني است که چند فايل (يا دايرکتوري) وجود دارند که نام آنها با همان چند حرف شروع مي­شود. براي حل اين مشکل مي­توانم چند حرف ديگر از اسم فايل را تايپ کرده و tab بزنم يا براي کمک گرفتن ميتوانم دوبار Tab بزنم تا ليستي از فايل­هايي که نامشان با اين چند حرف شروع مي­شئد برايم نشان داده شود.

Tab دوست شماست، از آن زياد استفاده کنيد.

دستورهاي ديگر

در ابتداي اين بخش گفتم که تعدادي دستور ديگر نيز وجود دارند که بهتر است انها را بدانيد. اين دستورات عبارتند از:

  • ldconfig

  • updatedb

  • ./configure

  • make

  • make install

  • tar

  • more

  • whereis

منقبلا در مورد بعضي از انها مانند whereis و updatedb صحبت کرده ام. ديگر دستورها براي تصب نرم­افزار کاربرد دارند.

More

دستور More در حالتي که بخواهيد خروجي طولاني هر دستوري را در ترمينال کنترل کنيد، مفيد است. براي مثال اگر من در دايرکتوري شمل هزار فايل باشم، خروجي دستور Ls به صورت مناسبي در پنجره­ي کوچک ترمينال فرار نمي­گيرد و اطلاعات با سرعتي غير قابل خواندن توليد شده و پايين خواهد رفت. براي کند کردن گذشتن اطلاعات به نحوي که قابل خواندن باشد، مي­توانيم از دستور More به شکل زير استفاده کنيم:

ls | more

اگر در دايرکتوري هزار فايلي از اين دستور استاده کنم، در هر لحظه يک صفحه از خروجي نشان داده مي­شود و با فشردن کليد space صفحه­ي بعدي ظاهر مي­شود. فشردن q ، more را متوقف مي­کند. ممکن است در مورد خط راست خنده دار در دستور بالا تعجب کنيد، اين دستور pipe نام دارد.

Pipe امکان ترکيب کردن دستورها را براي کنترل نوع خروجي فراهم مي­کند و معمولا براي اصلاح يک دستور به کار مي­رود (کاري که پارامترهاي دستور نيز انجام مي­دهند). بنابراين زماني که مهارت لازم را در استفاده از دستورها کسب کنيد، مي­توانيد چيز­هايي بنويسيد که شبيه به معادله هستند ولي در واقع راه­هايي کارا براي استفاده از دستورات استاندارد هستند. pipe نقش مهمي در افزايش کارايي شما دارد.