سیس ادمین سادهی ساده
لینوکسی بشیم: مدیریت فایلها و کار در فایل سیستم لینوکس - قسمت اول
تو این قسمت دستورهایی رو یاد میگیریم که با محتوای فایل کاری ندارن. این دستورها برای بررسی و مدیریت پوشهها و فایلها به کار میرن. این مبحث مهمه تو لینوکس و به این دلیل هر کسی کارش قراره به لینوکس بیفته میتونه استفاده کنه. چه سیس ادمین باشه چه برنامهنویس و چه کاربر معمولی.
تو این نوشته فرض میشه یه سیستم لینوکسی دارید که به خط فرمانش دسترسی دارید و همچنین یه کمی هم در این زمینه آشنایی دارید.
اول یه سری به فایل سیستم لینوکسی بزنیم. تو لینوکس همه مسیرها از روت یا / شروع میشه:
دستور tree رو دیدید که به شکل درختی ساختار پوشهها رو نشون میده. با L- بهش گفتم که داخل پوشهها نره و فقط همون سطح اول رو نشون بده. بدون این آپشن خروجیش خیلی زیاد میشه. اگه خواستیم مسیر یه فایل یا پوشه رو بدیم اول / رو میذاریم بعد دونه دونه پوشهها رو مینویسیم و هر کدوم رو با / از بعدی جدا میکنیم تا به انتها برسیم. مثلا مسیر کامل پوشه paasino به شکل زیره:
/home/aliakbar/paasino
میتونیم مسیرها رو نسبی هم بگیم؛ مثلا وقتی من تو پوشه home/aliakbar/ هستم میتونم با نوشتن paasino خالی به اون پوشه اشاره کنم. برای نشون دادن پوشه فعلی میشه از نقطه هم استفاده کرد؛ مثلا بگم paasino/. به جای paasino خالی. میتونم به پوشه بالایی با دو نقطه اشاره کنم. مثلا اگه مسیر مطلق یه پوشه تو home/rio/ باشه و من تو home/aliakbar/ باشم میتونم با rio/.. بهش اشاره کنم.
خب یه کم زیاد بحث تئوری شد. بریم سراغ دستورها تا دستور یاد بگیریم و این مفاهیم رو هم عملی ببینیم.
برای تغییر پوشه فعلی از cd استفاده میشه که مخفف change directory هست. جلوش اسم پوشهی مقصد رو مینویسیم که میتونه مطلق باشه یا نسبی:
اینجا میشه دید که چجوری از اون مسیرها استفاده میکنیم. دستور pwd که استفاده شده مسیر مطلق پوشه فعلی رو بهمون میده. برای تغییر پوشه یک سری shortcutهایی موجوده. دو تا نقطه رو که دیدیم. نکات بعدی که میگم در مورد بش هست و در مورد شلهای دیگه باید مستنداتش رو بخونید. اگر هیچی نزنیم جلوی cd ما رو به پوشه home میبره:
پوشه home چیه؟ وقتی یه کاربر تو لینوکس میسازیم معمولا یه پوشه به نام اون کاربر توی home/ ساخته میشه. تو تصویر قبلی aliakbar پوشه home یه کاربر با همون نام هستش. اگر خط فاصله بذاریم جلوش، میره به جای قبلی که توش بودیم. در مسیر دادن میشه از تیلدا یا ~ استفاده کرد تا پوشه home رو نشون داد. تو عکسای بالا اونجایی که دستور میزنم وقتی تو home هستم با رنگ آبی نوشته ~ که منظورش همون home من هست. البته تیلدا رو برای دستورات دیگه هم میشه استفاده کرد و مختص cd نیست.
با ls محتوای یه پوشه رو میبینیم:
پوشهها و فایلهایی که با نقطه شروع میشن با ls نشون داده نمیشن و بهشون فایل hidden میگن. با یه آپشن میشه اونها رو دید:
آپشن رو با خط فاصله مشخص میکنم. بعد خط فاصله هم حرف مربوط به اون آپشن رو میذارم که اینجا a هست. خیلی جاها a آپشنی هست که همه چی رو نشون میده و مخفف all هست. اینجا هم یکی از اون جاهاست.
اگه جلوی ls اسم یه پوشه رو بذارم محتوای اون رو نشون میده و اگر اسم فایل بذارم خود اون فایل رو نشون میده:
با ls میشه اطلاعات بیشتری هم بدست آورد. این کارو با آپشن l انجام میدم:
آپشنها رو میشه ترکیبم کرد و مثلا بنویسیم al- تا هم اطلاعات زیادی بده و هم فایلهای مخفی رو. بذارید ستونهایی که نمایش داده شده رو بررسی کنیم. ستون اول ده بخش داره و اولیش میگه این یه فایله یا پوشه. البته حالات دیگه هم داره که فعلا به اونا نمیپردازیم. اگه فایل باشه - میذاره و اگه پوشه باشه d. نه قسمت بعدی دسترسیهای فایل یا پوشه رو میگن که الان باهاشون کاری نداریم و ایشالا بعدا میبینیم. ستون دوم برای یه پوشه نشون میده چند تا فایل یا پوشه داخلش هست. برای یه فایل نشون میده چند تا hard link به اون فایل هست. این مفهوم رو هم بعدا میبینیم. دو ستون بعدی مالک فایل و گروهی که فایل به اون تعلق داره رو میده. اینم امیدوارم بعدا ببینیم. بعدش حجم فایل هست. با اضافه کردن آپشن h این ستون human readable میشه و واحدهاش تر و تمیز میشن. سه تا ستون بعدی تاریخ آخرین تغییر فایل رو میدن. میشه با آپشن t بر اساس این زمان خروجی رو مرتب کرد.
حالا که تا اینجا اومدیم بذارید یه سوالم بپرسم. اگه جلوی دستور ls اسم پوشه بذارم محتواش رو میده. اگه بخوام مشخصات خود پوشه رو (همونطوری که در مورد فایل نشون میده) نشون بده چه آپشنی استفاده کنم؟ قطعا فکر کردنی نیست و باید دنبالش بگردین.
حالا دیگه بریم یه کم فایلها رو جابهجا کنیم. دستور cp که مخفف copy هست فایلی رو از مبدا به مقصد کپی میکنه:
دو تا آدرس میدیم بهش. اولی مبدا هست و دومی مقصد. جفتش میتونه مطلق یا نسبی باشه. واسه مقصد میتونیم فقط اسم پوشه رو بدیم که با این کار یه فایل به نام فایل اصلی توش ایجاد میکنه. اگرم اسم فایل بدیم اون فایل رو میسازه برامون. تو مثال بالا مسیر پوشه رو دادم.
اگر فایلی با نام فایل اصلی تو مقصد باشه چی؟ cp هیچ کاری نمیکنه مگر اینکه ما آپشن i رو زده باشیم. در این حالت از ما میپرسه مطمئنی میخوای اون فایل مقصد رو overwrite کنی؟ ما هم میگیم بله یا خیر:
تو این مثال با y گفتم بله.
با آپشن R- یا r- کل محتوای پوشه کپی میشه:
تو این حالت مقصد باید حتما پوشه باشه و نه فایل.
این مطلب هم تموم شد. امیدوارم استفاده کرده باشین. در قسمت بعد ادامه مباحث این قسمت رو خواهیم دید. اگر سوال یا نظری دارید این پایین بفرمایید.
مطلبی دیگر از این انتشارات
لینوکسی بشیم: جستجو در فایل با grep (کار با regex)
مطلبی دیگر از این انتشارات
لینوکسی بشیم: توابع در bash
مطلبی دیگر از این انتشارات
لینوکسی بشیم: متغیرها در bash