#00 - آشنایی با خط فرمان

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

۱. تفاوت میان بزرگی و کوچکی حروف

برخلاف خط فرمان سیستم‌های دیگر (مثل cmd در ویندوز) خط فرمان گنو/لینوکس به بزرگی و کوچکی حروف حساس است، این خود یک مزیت بزرگ به‌شمار می‌رود که باعث انعطاف فوق‌العاده‌ای در استفاده از نام‌ها و دستورات شده است.

به‌طور مثال فرض کنید محتویات پوشه‌ای چنین است:

bash.txt

در ویندوز اگر بخواهید فایل دیگری به نام BASH.TXT به این پوشه اضافه کنید، تنها با یک خطا به این مضمون مواجه می‌شوید: «نام فایل تکراری است، لطفا نام دیگری برگزینید!» اما ایجاد یک فایل با این نام در گنو/لینوکس هیچ مشکلی ایجاد نمی‌کند. وجوه مختلف یک دستور ساده دو حرفی مانند cd (که عبارتند از cd، CD، Cd، cD) می‌توانند نماینده چهار عمل مجزا (چهار دستور یکتا) باشند حال آن‌که در خط فرمان دیگر سیستم‌ها چنین انعطافی به‌چشم نمی‌خورد. اکنون بیایید وجوه مجاز فایل bash.txt را بررسی کنیم:

bash.txt  basH.TxT  baSH.tXt  bAsh.TXT  bASH.Txt  BaSh.txT  BAsh.TXt  BASh.tXT
bash.txT  basH.TXt  baSH.tXT  bAsH.txt  bASH.TxT  BaSh.tXt  BAsh.TXT  BASh.Txt
bash.tXt  basH.TXT  baSH.Txt  bAsH.txT  bASH.TXt  BaSh.tXT  BAsH.txt  BASh.TxT
bash.tXT  baSh.txt  baSH.TxT  bAsH.tXt  bASH.TXT  BaSh.Txt  BAsH.txT  BASh.TXt
bash.Txt  baSh.txT  baSH.TXt  bAsH.tXT  Bash.txt  BaSh.TxT  BAsH.tXt  BASh.TXT
bash.TxT  baSh.tXt  baSH.TXT  bAsH.Txt  Bash.txT  BaSh.TXt  BAsH.tXT  BASH.txt
bash.TXt  baSh.tXT  bAsh.txt  bAsH.TxT  Bash.tXt  BaSh.TXT  BAsH.Txt  BASH.txT
bash.TXT  baSh.Txt  bAsh.txT  bAsH.TXt  Bash.tXT  BAsh.txt  BAsH.TxT  BASH.tXt
basH.txt  baSh.TxT  bAsh.tXt  bAsH.TXT  Bash.Txt  BAsh.txT  BAsH.TXt  BASH.tXT
basH.txT  baSh.TXt  bAsh.tXT  bASH.txt  Bash.TxT  BAsh.tXt  BAsH.TXT  BASH.Txt
basH.tXt  baSh.TXT  bAsh.Txt  bASH.txT  Bash.TXt  BAsh.tXT  BASh.txt  BASH.TxT
basH.tXT  baSH.txt  bAsh.TxT  bASH.tXt  Bash.TXT  BAsh.Txt  BASh.txT  BASH.TXt
basH.Txt  baSH.txT  bAsh.TXt  bASH.tXT  BaSh.txt  BAsh.TxT  BASh.tXt  BASH.TXT

من تعداد ۱۰۴ فایل مجاز با حروف bash.txt در خط فرمان ایجاد کردم به این معنی که لینوکس این‌ها را به‌عنوان ۱۰۴ فایل متفاوت درنظر می‌گیرد، تنها برای چند لحظه تصور کنید «در ویندوز فقط یکی از این‌ها می‌توانست وجود داشته باشد». به امپراطوری قدرت خوش آمدید! :)

۲. در گنو/لینوکس «همه چیز» فایل است

یکی از مهم‌ترین چیزهایی که در مورد ساختار لینوکس باید بدانید این است: «در گنو/لینوکس هر چیزی یک فایل است». در ابتدا ممکن است ساده به‌نظر بیاید، به‌طور عادی یک سند متنی، یک عکس یا فایل موسیقی فایل هستند ولی پوشه‌ها چطور؟ لینوکس پوشه‌ها را نیز یک فایل درنظر می‌گیرد، فایلی که شامل اطلاعاتی راجع به فایل‌های دیگر است.

در نگاه لینوکس CPU یک فایل است، همان‌گونه که یک پرونده ویدئویی را فایل می‌پندارد. پروسه‌های درحال اجرا و پارتیشن‌ها نمونه‌های دیگری از فایل‌ها هستند.

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

۳. حداکثر طول‌نام یک فایل

اگر کاربر MS-DOS بوده باشید، احتمالا به‌خاطر دارید حداکثر طول نام یک فایل ۸ حرف بود. در یونیکس شما می‌توانید نام‌هایی به درازای ۲۵۵ کاراکتر برای فایل‌هایتان انتخاب کنید.

۴. کاراکترهای غیرمجاز در نام‌گذاری فایل‌ها

در هر سیستمی برای نام‌گذاری فایل‌ها قوانینی وجود دارد، به‌طور مثال در ویندوز نام یک فایل نمی‌تواند شامل \ باشد. لینوکس نیز مثل دیگر سیستم‌عامل‌ها قوانینی در این رابطه دارد. شما همیشه می‌توانید از حروف (کوچک و بزرگ)، اعداد، زیر خط _ و نقطه . در نام فایل‌هایتان استفاده کنید.

استفاده از این کاراکترها در نام فایل‌ها توصیه نمی‌شود:

کاراکتر پیشنهاد
/ فکر استفاده از / را از سرتان بیرون کنید، هیچ راهی برای کار با فایلی که شامل / باشد وجود ندارد.
\ استفاده از این کاراکتر دردسرهای زیادی به‌همراه دارد.
- به هیچ وجه از خط فاصله در ابتدای نام فایل‌ها استفاده نکنید.
[]  
{}  
*  
?  
'  
"