آموزش‌های خط فرمانی

این وبلاگ تلاش می‌کند گامی در حد بضاعت در جهت آموزش خط فرمان و اسکریپت‌نویسی پوسته گنو-لینوکس بردارد.

آموزش‌های خط فرمانی

این وبلاگ تلاش می‌کند گامی در حد بضاعت در جهت آموزش خط فرمان و اسکریپت‌نویسی پوسته گنو-لینوکس بردارد.

جعبه ابزار

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

اسکریپت نویسی پوسته نیز مشابه این مورد است. ابزارهایی که در اینجا به کار گرفته می‌شوند، دستورات یا برنامه‌های سودمند می‌باشند. در اینجا هم ابزارهای ساده‌ای مانند ls و cd تا ابزارهای قدرتمندی چون sed و awk و خود shell وجود دارند.

ابزارهای ساده برای یادگیری، آسان هستند. و احتمالاً شما با بسیاری از آن‌ها آشنا هستید، اما برنامه‌های قدرتمند، زمان بیشتری برای یادگیری می‌طلبند، لیکن وقتی بر آن‌ها تسلط بیابید، قادر خواهید شد هر مشکلی را مهار کنید. ما تلاش خواهیم کرد چگونگی استفاده از هم ابزارهای ساده و هم ابزارهای قدرتمند را یاد بگیریم

می‌خواهم سهمی داشته باشم


بسیاری از کاربران شنیده یا خوانده‌اند که گنو-لینوکس یعنی آزادی. اما آزادی واقعاً به چه معناست؟ آزادی در اینجا، یعنی قدرت تصمیم‌گیری در باره آنچه کامپیوتر شما انجام می‌دهد. یعنی امکان دانستن هرآنچه که لازم می‌باشد، در باره کامپیوترتان و اعمال آن اگر به اندازه کافی علاقمند و پیگیر باشید.

امروزه اکثر کاربران کامپیوتر با رابط گرافیکی کاربر( GUI ) آشنا هستند، اما شاید شنیده باشند و در این تصور غلط باشند که رابط خط فرمان( CLI ) چیزی وحشتناک و مربوط به گذشته می‌باشد. این مایه تأسف است، زیرا یک رابط خط فرمانی خوب، کارآمدترین استفاده از قدرت سیستم را در اختیار شما قرار می‌دهد. چه خوب گفته‌اند که« رابط گرافیکی کاربر وظایف ساده را آسان می‌کند و رابط خط فرمانی امور دشوار را ممکن می‌سازد ». و این یعنی امکان دستیابی به آن آزادی واقعی که گفته شد.

شاید لازم باشد اضافه گردد که CLI می‌تواند مرعوب کننده و محیط بی‌رحمی باشد. زیرا یک واقعیت است که خط فرمان از انجام کارهایی توسط شما که می‌تواند موجب خسارات جبران ناپذیر در سیستم گردد پیش‌گیری نمی‌کند و شما بایستی آگاهانه از آن استفاده نمایید.

بنابراین می‌خواهم به سهم خود، در باره خط فرمان در گنو-لینوکس به صورت جزئی( دستورات ) و کلان( اسکریپت‌ها ) بنویسم. درباره پوسته( shell ) و با گرایش بیشتر بر پوسته گنو یعنی Bash و به‌ویژه اسکریپت‌نویسی با آن، زیرا کمبود منابع فارسی‌زبان در این بخش بیشتر احساس می‌شود.که البته بیشتر به ترجمه منابع معتبر موجود پرداخته خواهد شد.

مقدمه‌ای برای شروع

در این وبلاگ قصد ندارم بگویم که چگونه در سال ۱۹۹۱ لینوس توروالدز اولین نسخه از هسته سیستم لینوکس را نوشت. همچنین نمی‌خواهم بگویم که چطور چندسال قبل از آن بزرگ مردی به نام ریچارد استالمن پروژه GNU را برای ایجاد یک سیستم عامل یونیکس مانند شروع کرد. این‌ها با اهمیت هستند لیکن در بسیاری از مقالات و کتاب‌های تألیف و ترجمه شده به زبان فارسی و سایت‌ها و وبلاگ‌های فارسی زبان طرفدار گنو-لینوکس و نرم‌افزارهای آزاد به خوبی توسط استادان فن بیان گردیده‌اند.

از زمانی که دانشجوی جوانی بودم و از انجام برخی عملیات پیچیده‌تر ریاضی به وسیله ماشین حساب تازه خریداری شده‌ام حیرت می‌کردم و برنامه‌های کوچک نوشته شده به زبان فرترن را در کارت‌های پانچ شده از طریق دریچه‌ای به متصدی سایت کامپیوتر دانشگاه تحویل می‌دادم و فقط در آن لحظه امکان رؤیت فضای سایت را می‌یافتم، چهار دهه می‌گذرد. امروز جهان بسیار متفاوت است. کامپیوترها در همه جا حضور دارند و علاوه بر آن از طریق شبکه جهانی به یکدیگر متصل می‌گردند.

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

خوشبختانه مردمانی از سراسر جهان تلاشی در جهت رفع این تحمیل سوداگرانه انجام دادند. آن‌ها با نوشتن برنامه‌های خود برای به دست گرفتن کنترل کامپیوترهایشان جنگیدند، آن‌ها گنو-لینوکس را ساختند.