طبق مقاله های پیشین در این مقاله پر قدرت به سراغ دستورات لینوکس خواهیم رفت….
برای دانستن اینکه از کدام توزیع لینوکس استفاده می کنیم یکی از دستورات لینوکس که شما را به پاسخ می رساند
lsb_release -a
است.
برای اینکه دریابیم با چه نوع کاربری login کرده ایم از دستور
whoami
استفاده می کنیم .
همانطور که پیش تر گفتیم ساختار درختی فایلها در لینوکس باعث می شود گاهی اوقات برای فهمیدن اینکه دقیقاً در چه مسیری هستیم دچار مشکل شویم پس، از دستور
Pwd
که مختصر شدۀ عبارت present working directory می باشد استفاده خواهیم کرد.
برای آنکه متوجه بشویم محتوایی که پیش روی ماست از نوع فایل یا دایرکتوری است از دستور
File Downloads
استفاده می کنیم .در دستور بالا نوع فایل directory است.اگر نوع فایل regular directory باشد پس از اعمال دستور file ،خروجی نوع دقیق فایل را نشان میدهد.
توجه داشته باشید ! در لینوکس اکستنشن ها مانند ویندوز اهمیت ندارند. فایلی با پسوند .jpg و .mp3 در لینوکس با یکدیگر تفاوتی ندارند.
به نمایش در آوردن لیست فایلها یک دایرکتوری
دستور ls دارای چند option کاربردی است و ضروری است تا قبل از پرداختن به آنها ابتدا بدانیم لیستی که به ما نشان داده می شود شامل چه اطلاعاتی است. پس از زدن دستور ls -l با تصویر زیر مواجه خواهید شد که در ادامه با توجه به شماره هر ستون آن توضیح خواهیم داد.
انواع فایل ها در لینوکس
شایان ذکر است که ستون قبل از شماره گذاری ( حرف d نوشته شده) نوع فایل را نشان می دهد و انواع فایل می تواند”d” برای directory و “-” برای regular file و “l” برای symbolic link باشد که در لینوکس مورد مثال ما همه ی محتویات از نوع directory هستند.ما به عنوان کاربر با این نوع فایل ها درگیر هستیم.”s”برای socket و “p”برای pip است و کرنل با این فایل ها سر و کار دارد. “c” و “b” مخصوص special device است که ادمین با آنها در مواقعی کار خواهد داشت.
شماره ۱ : دسترسی های مجاز برای هر فایل را نشان می دهد که هر ۳ کاراکتر به ۱ کاربر اختصاص دارد ۳ کاراکتر اول مخصوص owner ، کاراکترهای بعدی مخصوص group و ۳ کاراکتر آخر به other اختصاص دارد.w مخففwrite r مخفف read وx مخفف execute به معنی قابل اجرا می باشد.
شماره۲: تعدادhard link را نشان می دهد که در آینده به آن خواهیم پرداخت.
شماره۳: نام مالک فایل (file owner)است.نکته مهم اینکه مالک فایل لزوماً سازنده فایل نیست.
شماره۴:نام گروه مالک فایل(group owner) است؛ در مقالات قبل اشاره کردیم که با ساختن هر کاربر ، گروه آن نیز ساخته می شود.
شماره ۵:سایز فایل را نشان می دهد که بر اساس Byte(B)نمایش داده می شود.در برخی از توزیعهای لینوکس نشان داده نمیشود.
شماره۶: تاریخ اعمال آخرین تغییر روی فایل( modify time) می باشد.
شماره۷:نام فایل در این ستون نمایش داده می شود.
برای اینکه اعداد مربوط به سایز فایل را با واحد اندازه گیری مناسب خودش ببینیم باید پس از زدن l- از option، -h” human readable “ استفاده کنیم؛ لازم به ذکر است که هر دستور دارای تعدادی option وتعدادی switch است و دستورات صرفاً با زدن option خروجی برای ما نمایش نمی دهند برای مثال در دستور
ls -l -h
“l” سوییچ و “h” آپشن می باشد و اگر ما به عنوان کاربر دستور را به صورت
ls -h
خروجی نخواهد داد.
بطور کلی هر دستور از در کنار هم قرار گرفتن چند آرگومان تشکیل می شود و خود دستور آرگومان صفر می باشد
برای مثال دستور ls -l -h شامل ۳ آرگومان می باشد که دستور اصلی(ls) آرگومان صفر می باشد و از لحظ ترتیب نمی توانیم آن را عوض کنیم اما باقی آرگومان ها در بعضی از دستورات قابل جابجایی و در بعضی ثابت هستند.
آیا موارد نشان داده شده در تصویر تمام فایل هایی است که در این مسیر وجود دارد؟ جواب خیر است، برای دیدن تمام فایل ها باید از switch a استفاده کنیم.
ls -l -a
همانطور که در تصویر مشاهده می کنیم یک سری فایل که همه آنها با “.” شروع شده اند(که اصطلاحاً به آنها dotfile گفته می شود) نمایش داده می شوند. در بعضی از سیستم ها بسته به نوع تنظیمات، رنگ بندی فایل ها متفاوت است . این امر به خاطر تفاوت در نوع مجوزها یا تفاوت در نوع فرمت فایل نسبت به بقیه است.
مورد آخر در مورد دستور ls این است که برای دیدن محتویات درون یک مسیر نیاز نیست تا ابتدا وارد مسیر بشوید و سپس دستور را اعمال کنید بلکه از هردایرکتوری که باشید با نوشتن مسیر مورد نظر جلوی دستور ls محتویات همان مسیر را بدون رفتن در آن خواهید دید.
نکته در مورد جابجایی بین Terminalها
برای اینکه بتوانید چند ترمینال برای دستورات لینوکس در کنار یکدیگر باز کنید از کلید های ترکیبیctrl + alt + f1……f6 استفاده کنید.در بعضی از توزیع های دیگر باctrl + f1…..f6 راست، این کار صورت می گیرد.
دایرکتوری های پر اهمیت در لینوکس
توضیحات | دایرکتوری |
ریشه فایل سیتم بوده و تمام لینوکس ها آن را دارند. | / |
فایل هایی که هنگام بوت شدن لینوکس لازم هستند مانندkernel , bootloader | Boot/ |
home directory کاربر ارشد در این مسیر قرار دارد. | Root / |
home directory باقی کاربران بصورت پیش فرض در این مسیر هستند. | home/ |
فایل اجرایی دستورات (user commands) لینوکس که توسط همه کاربران قابل اجرا هستند در این مسیر قرار دارد مانندmkdir, cp, و …. | bin/ |
فایل اجرایی دستورات (administration commands) سیستمی که فقط کاربرroot می تواند آنها را اجرا کند در مسیر قرار دارند. | sbin/ |
کتابخانه های سیستم و ماژول های کرنل در این مسیر هستند. | lib/ |
محل نصب برنامه های شخص ثالث یا third-party | opt/ |
محل ذخیره فایل هایی که سیستم بصورت موقت از آنها استفاده میکند و با reboot شدن سیستم پاک خواهد شد. | tmp/ |
محل قرار گیری فایل های پیکر بندی همین ماشین در اینجا قرار دارند.
| etc/ |
به ازای هر device یک فایل معادل در این مسیر قرار می گیرد.
| dev/ |
محلی جهت اتصال و آدرس دهی دستگاه های جانبی(peripherals)
| mnt/ media/ |
محلی جهت قرار گیری سرویس هایی که نیاز به تغیرات مدام دارند مانند فایل های وب سرور یا میل سرور یا بعضی از انواع کش ها
| var/ |
فایل برنامه هایی که کد منبع زبان سی آنها توسط شرکت های توسعه دهنده توزیع های مختلف، تغییر داده و مجدداً کامپایل کرده اند و ساختار درونی آن مانند دایرکتوری”/” است.
| usr/ |
لاگ های کرنل بصورت لحظه ای در این دو دایرکتوری ثبت می شوند. | proc/ sys/ |
خوب است تا در میان مطالب اصلی به عنوان فردی که با لینوکس سر و کار دارد با دو اصطلا ح زیر آشنا باشید:
LSB(Linux standard base):به این معنی که این نسخه از لینوکس FHS یا ساختار درختی را پشتیبانی میکند.
LTS(long term support):به این معنی که کمپانی توسعه دهنده بین ۵ تا ۱۰ سال از نسخه ارائه داده شده پشتیبانی می کند.
هر توزیع لینوکس می تواند حالت های مختلفی از مجوزهای بالا را داشته باشد به عنوان مثال Debian دارای مجوز LTS بوده اما از LSB پشتیبانی نمی کند.
عملگر پایپ |
در این عملگر پر کاربرد در دستورات لینوکس، عبارت سمت چپ مقداری برای متغیر سمت راست است یعنی خروجی دستور سمت راست ورودی برای دستور سمت چپ است برای مثال دستور less مخصوص زمانی است که کاربر قصد مشاهده فایل متنی طولانی را دارد و از طرفی برای جابجایی بین متن، موس در اختیار ندارد این دستور کل متن را قسمت بندی کرده تا کاربر با کیبورد بتواند بین متن به راحتی جابجا بشود و برای خروج نیز دکمه q را فشار بدهد.فرض کنید در دایرکتوری bin قرار داریم که شامل فایل های بسیار زیادی است و حالا دستور ls -l |less را میزنیم حالا تمام محتویاتbin را میتوانیم بصورت تکه تکه با کلید های جهت نمای کیبورد پیمایش کینم.
اگر بخواهیم مستقیم محتویات درون یک فایل را ببینیم از دستور
Cat
به خاطر داشته باشید که دستور less مستقیم روی فایل نیز اعمال می شود.
اگر بخواهیم پس از نمایش محتویات، کنار هر خط، شماره آن خط را داشته باشیم میتوانیم از عملگر پایپ استفاده کرده و خروجی فایل را به دستورnl بدهیم .بصورت زیر
ls /bin | nl | less
ساختن دایرکتوری
برای ساختن دایرکتوری از دستور
mkdir /root/new
همانطور که مشاهده می کنید می توانیم مسیر دلخواهی که قصد ساخت دایرکتوری را داریم وارد کنیم.
ساختن فایل
برای ساختن فایل از دستور touch استفاده می کنیم و اگر قصدمان ساخت فایل در مسیر دیگری باشد از دستورtouch به این صورت استفاده می کنیم
touch /opt/newfile
اگر بخواهیم در لینوکس فایل مخفی بسازیم به اول اسم فایل ”.” اضافه می کنیم. نکته حائز اهمیت اینکه فقط دات اول باعث مخفی شدن فایل خواهد شد و اگر شما بصورت…..new دستور را وارد کنید دات های بعدی تاثیری در مخفی شدن فایل نخواهند داشت و جزئی از اسم فایل خواهد شد.
حذف دایرکتوری خالی
برای حذف دایرکتوری خالی که چندی پیش ساختیم از دستور
rmdir /root/new
اگر بخواهیم دایرکتوری دارای محتویات را حذف کنیم باید دستور را بصورت rm -r تایپ میکنیم.
حذف فایل
rm /opt/newfile
توجه داشته باشید که در برخی از توزیع های لینوکس قبل از پاک کردن از شما سوال پرسیده نمی شود ؛ پس برای اطمینان rm -i را اضافه می کنیم.مورد بعد اینکه اگر توزیع نصب شده روی سیستم شما بصورت پیش فرض قبل از عمل حذف سوال بپرسد و شما قصد پاک کردن تعداد فایل های زیادی را داشته باشید جواب به این سوال وقت گیر است پس برای جلوگیری از تکرار سوال در هر مورد از option “-f” استفاده می کنیم.
امیدوارم از مطالب بهره کافی برده باشید ، مسیر یادگیری دستورات لینوکس ادامه دارد….
برای فراگیری مطالب بیشتر میتوانید به wiki مجموعه ما نیز سر بزنید