PDA

View Full Version : آموزش: آموزش خط فرمان لینوکس



reza_noei
پنج شنبه 23 بهمن 1393, 16:14 عصر
سلام،
در این مبحث قصد دارم خط فرمان لینوکس رو آموزش بدم.
مرجع مورد استفاده من کتاب خط فرمان لینوکس نوشته آقای ویلیام شاتز است.
این کتاب به صورت رایگان در دسترس است و شما میتوانید این کتاب رو از آدرس زیر به صورت pdf دریافت کنید:
http://linuxcommand.org/tlcl.php

به شخصه من تا فصول 9-10 این کتاب رو مسلط هستم و اگر دوستان علاقمندی نشان بدهند فصول بعدی را هم کار میکنم
تا آموزش این کتاب رو کامل کنم.

از ویژگی های این کتاب میشه به موارد زیر اشاره کرد :
* متن ساده و روان کتاب.
* جامعیت کتاب (محصور به توزیع خاصی از لینوکس نیست و در همه ی توزیع ها قابل استفاده است).
* رایگان بودن کتاب.
* پر مغز بودن کتاب.

reza_noei
پنج شنبه 23 بهمن 1393, 16:15 عصر
چرا خط فرمان ؟
تا به حال فیلم هایی را دیده اید که در آن یک هکر حرفه ای کامپیوتری رو بدست میگیره و در کمتر از 30 ثانیه به بزرگترین ابر کامیوترهای فوق ایمن رخنه میکنه ؟ اون هرگز ماوس رو لمس نمیکنه و فقط تایپ میکنه
علت اینکه کارگردان ها از این صحنه ها برای نمایش یک حرفه ای استفاده میکنند در حقیقت اینه که مردم فکر می کنند با کیبورد میشود هر کاری را انجام داد!
اکثر کاربران امروزی با GUI آشنا هستند ولی کارشناسان و مهندسان اونها رو از کار کردن با واسط کاربری متنی میترسانند؛ که این خود مسئله ی ناخوشایندی است.
خط فرمان به شما اجازه میدهد که با زبان کامپیوتر با کامپوتر ارتباط برقرار کنید همانند ارتباط نوشتاری بین دو انسان.
گفته میشود که واسط گرافیکی انجام کارهای آسان را آسانتر کرده، در حالی که واسط خط فرمان انجام کارهای دشوار را ممکن میسازد و این حرف تاکنون صادق بوده است.

مطالعه خط فرمان برای چکسانی مناسب است ؟
این مبحث برای کاربرانی که جدیدا لینوکس را برای کار انتخاب کرده اند و سابقه فعالیت حرفه ای در سایر پلتفرم ها را دارند مناسب است. شاید رئیس شما از شما خواسته باشد که یک سرور لینوکس را مدیریت کنید
یا شاید از مشکلات امنیتی خسته شده اید و به لینوکس روی آورده اید به هر حال همگی خوش آمدید.
گفته میشه که برای تسلط به لینوکس هیچ راه میانبری وجود ندارد. در حقیقت یاد گیری خط فرمان چالشی است که تلاش واقعی طلب میکند. سخت نیست ولی وسعت زیادی دارد.
در لینوکس هزاران برنامه وجود دارد که شما میتوانید از طریق خط فرمان اونها رو به خدمت بگیرید. یک تذکر رو هم بدم که: یادگیری خط فرمان یک امر گاه به گاه نیست و نیاز به تلاش مستمر دارد.

پیش نیازها
برای شروع شما به یکی از توزیع های لینوکس نیاز دارید. اگر یک کاربر تازه کار هستید توزیع آبونتو پیشنهاد میشود. حداقل 256 مگابایت حافظه اصلی (Ram) و 6 گیگابایت حافظه جانبی (HDD) برای نصب لینوکس مورد نیاز است. به سه صورت میتوانید لینوکس رو مورد استفاده قرار بدهید :
روش اول : استفاده از دیسک های Live لینوکس است. شما میتوانید یک توزیع را دانلود کنید سپس آنرا برروی یک دیسک رایت کنید و سپس با آن دیسک بوت شوید.
روش دوم : نصب سیستم عامل لینوکس است. بسته به سخت افزار شما ممکن است بسیار آسان و یا بسیار دشوار باشد حدالامکان از نصب بروی لپ تاپ و استفاده از وایرلس اجتناب کنید.
روش سوم : نصب سیستم عامل لینوکس بر روی یک فلش حداقل 2 گیگابایتی است. ترجیحا از حافظه های فلش نوع usb 3 استفاده کنید. برای انجام این کار از نرم افزار unetbootin یا نرم افزارهای مشابه استفاده کنید.
در این روش همانند استفاده از دیسک Live سیستم عامل به روی کامپیوتر شما نصب نخواهد شد بعلاوه اینکه اطلاعات شما به صورت پایدار برروی حافظه فلش ثبت خواهد شد.

reza_noei
شنبه 25 بهمن 1393, 13:36 عصر
پوسته چیست؟
وقتی از خط فرمان سخن به میان می آورد موضوع ما در حقیقت پوسته است. پوسته برنامه ای است که دستورات را از صفحه کلید دریافت کرده و برای اجرا به سیستم عامل منتقل میکند. در سیستم عامل لینوکس
پوسته های بسیاری وجود دارد اما پوسته bash پوسته ای است که در اغلب توزیع ها قرار گرفته است. پوسته اصلی سیستم عامل یونیکس پوسته SH بود که توسط Stephan Bourne نوشته شده بود. در سیستم عامل لینوکس یک جانشین پیشرفته برای این پوسته معرفی شد، این پوسته Bash نام گرفت که مخفف کلمات Bourne Again SHell بود. اگر بخواهیم جور دیگری این کلمات را معنی کنیم میشود "تولد دوباره sh". این پوسته را brian fox به زبان C نوشته است.

مقلدهای ترمینال
در محیط گرافیکی ما برای کار با پوسته به یک برنامه واسط نیاز داریم این برنامه مقلد ترمینال نام دارد. واسط گرافیکی KDE از مقلد Konsole و واسط Gnome از Gnome-terminal بهره میبرد. بهرحال، معمولا این برنامه ها را با نام "Terminal" در منوهای توزیع مورد استفاده مان، خواهیم یافت. هیچ تفاوتی بین این مقلدها وجود ندارد و همه ی آنها اساساً یک کار برای ما انجام میدهند؛ اجازه میدهند که با پوسته ارتباط برقرار کنیم.

اولین تجربه استفاده از خط فرمان
وقتی شما یکی از برنامه های مقلد ترمینال را اجرا کنید و برنامه آماده کار شود پیغامی به مانند زیر برای شما نمایش داده میشود:

[me@linuxbox ~]$

این پیغام، پیغام پوسته نام دارد و زمانی ظاهر میشود که پوسته آماده گرفتن دستورات باشد. اجزای این پوسته به این ترتیب هستند : نام کاربری (در این مثال me) نویسه @ و سپس نام ماشین مورد استفاده شما (در این مثال linuxbox) و آدرس محل جاری که در مثال بالا با '~' نمایش داده شده است. در آخر این پیغام هم یک نویسه دلار نمایش داده شده که بیانگر این است که شما در سطح یک کاربر معمولی اجازه فعالیت در سیستم را دارید. اگر این علامت، علامت پوند '#' بوده باشد معنی آن این است که شما در سطح یک superuser قادر به فعالیت هستید. نگران ابهامات بوجود آمده نباشید در فصول بعدی این موارد را طور کاملتری توضیح خواهیم داد.

اگر شما دستوری را به اشتباه وارد کتید پوسته پیغامی به شما میدهد و از شما میخواهد دوباره تلاش کنید.

حافظه دستورات
وقتی از کلیدهای جهت دار (Arrow key) بالا و پائین استفاده کنید میبینید که امکان استفاده از دستورات پیشین وجود دارد. این ویژگی حافظه دستورات نام دارد. در اغلب توزیع ها این حافظه 500 دستور استفاده شده اخیر را نگهداری میکند. از کلیدهای جهت دار چپ و راست نیز برای ویرایش دستورات استفاده کنید.

استفاده از ماوس
شما میتوانید در کنار کیبورد از ماوس نیز برای سرعت دادن به کارتان بهره گیرید. x windows این امکان را به شما میدهد. x windows موتوری است که به واسط گرافیکی قدرت اجرا شدن میدهد. برای انتخاب یک کلمه میتوانید دوبار بر روی آن کلمه کلیک کنید یا از معمول بهره گیرید. وقتی متنی را انتخاب میکنید. x windows آن متن را در یک حافظه میانی ذخیره میکند. با فشردن کلید وسطی ماوس (scroll) میتوانید متن ذخیره شده را به محل ورود دستور منتقل نمائید.
نکته : از کلیدهای ترکیبی ctrl-C و ctrl-V برای انجام عملیات Copy و Paste خودداری کنید زیرا این کلیدها خیلی قبل تر از ظهور مایکروسافت ویندوز برای انجام کارهای اختصاص داده شده بودند.

چند دستور ساده را امتحان کنید
حال که نحوه وارد کردن دستورات را یاد گرفته ایم اجازه دهید چند دستور ساده را امتحان کنیم. دستور اول دستور date است. این دستور برای نمایش تاریخ و زمان فعلی استفاده میشود:
[me@linuxbox ~]$date
Thu Oct 25 13:51:54 EDT 2007


مشابه دستور فعلی دستور دیگری به نام cal (مخفف calendar) وجود دارد که برای نمایش تقویم ماه جاری استفاده میشود :
[me@linuxbox ~]$ cal
October 2007
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31


برای مشاهده میزان حافظه خالی دیسک (hdd) از دستور df استفاده کنید:
[me@linuxbox ~]$df

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/sda2 15115452 5012392 9949716 34% /
/dev/sda5 59631908 26545424 30008432 47% /home
/dev/sda1 147764 17370 122765 13% /boot
tmpfs 256856 0 256856 0% /dev/shm


دستور مشابهی نیز برای مشاهده میزان حافظه خالی در حافظه اصلی (ram) به نام free نیز وجود دارد :
[me@linuxbox ~]$free

total used free shared buffers cached

Mem: 513712 503976 9736 0 5312 122916

-/+ buffers/cache: 375748 137964

Swap: 1052248 104712 947536


خاتمه دادن به یک جلسه جاری
میتوانیم با بستن پنجره مقلد به جلسه جاری، خاتمه دهیم. اما راه بهتری هم وجود دارد و آن استفاده از دستور exit است :
[me@linuxbox ~]$ exit


کنسولی در پشت پرده
حتی وقتی که هیچ جلسه مقلد ترمینالی هم در حال اجرا نداشته باشیم چند مقلد ترمینال در پس واسط گرافیکی در حال اجرا خواهند بود. این جلسات مقلدها یا کنسول های مجازی نام دارد. شما میتوانید بافشردن کلیدهای ctrl-alt-f1 الی f6 به یکی از آنها دسترسی داشته باشید. برای جا به جایی بین آنها میتوانید از کلیدهای alt-f1 الی f6 بهره بگیرید و برای بازگشت به واسط گرافیکی نیز میتوانید از کلیدهای alt-f7 استفاده کنید.

برای مطالعه بیشتر
برای ادامه مطالب این فصل میتوانید به پیوندهای زیر مراجعه کنید:

http://en.wikipedia.org/wiki/Stephen_R._Bourne

http://en.wikipedia.org/wiki/Shell_%28computing%29