برای اینکه قادر به کار کردن با بخش های گوناگون سیستم باشید٬ لازم است بدانید که چگونه در اطراف سیستم حرکت کنید! در این بخش به دستورهای پایه نگاه می کنیم.
برای مدیریت فایل ها و دایرکتوری ها در لینوکس بسیار با دستورات زیر تعامل خواهید داشت:
ls لیست کردن و یا نمایش محتویات یک پوشه cp کپی کردن فایل و دایرکتوری ها از یک محل به محل دیگر
mv انتقال یا تغییر نام فایل و دایرکتوری ها cd تغییر محل دایرکتوری
rm پاک کردن فایل ها و دایرکتوری ها touch ساخت یک فایل خالی
mkdir ساخت یک پوشه pwd نشان دادن مسیری که هم اکنون در آن حضور دارید
file نشان دادن نوع یک فایل head نشان دادن ابتدای یک فایل
tail نشان دادن پایان یک فایل
لیست کردن محتویات دایرکتوری که در آن هستید
دستور ls محتویات دایرکتوری که در آن حضور دارید را برایتان لیست می کند.
pouyasazan@tarimehr:~$ ls allfiles.txt dmesg.txt services stuff summer.txt pouyasazan@tarimehr:~$
دستور ls دارای سوئیچ ها یا اپراتورهای بسیار زیادی است که از پرکاربرد ترین آنها ls -a می توان نام برد که تمام فایل ها را برایتان لیست می کند(از جمله فایل های مخفی)
pouyasazan@tarimehr:~$ ls -a . allfiles.txt .bash_profile dmesg.txt .lesshst stuff .. .bash_history .bashrc services .ssh summer.txt pouyasazan@tarimehr:~$
ممکن است شما وارد دایرکتوری شوید که تعداد زیادی فایل در ان وجود داشته باشد.
برای مثال ما یک دایرکتوری داریم که در آن 400 فایل بکاپ و 400 فایل متا برای آن وجود دارد. در صورت استفاده از دستور ls بسته به اینکه چند ستون در ترمینال قابل چینش باشد، فایل ها را در کنار هم لیست می کند. چنانچه بخواهیم هر فایل در یک خط لیست شود و اطلاعات کاملی از سطوح دسترسی و owner یا مالک آن فایل در دست داشته باشیم می توانیم از دستور ls -l استفاده کنیم.
در تصویر فوق از ls استفاده شده است و تمام فایل ها در کنار هم لیست شده اند.
در تصویر زیر با دستور ls -l هر خط یک فایل با مشخصات بخشی از header آن به نمایش در آمده است.
pouyasazan@tarimehr:~$ ls -l total 17296 -rw-r--r-- 1 tarimehr tarimehr 17584442 Sep 17 00:03 allfiles.txt -rw-r--r-- 1 tarimehr tarimehr 96650 Sep 17 00:03 dmesg.txt -rw-r--r-- 1 tarimehr tarimehr 19558 Sep 17 00:04 services drwxr-xr-x 2 tarimehr tarimehr 4096 Sep 17 00:04 stuff -rw-r--r-- 1 tarimehr tarimehr 0 Sep 17 00:04 summer.txt
اگر به تصاویر بالا با دقت نگاه داشته باشید، یکسری موارد در آن قید شده است از جمله rw در ادامه tarimehr در ادامه یکسری اعداد و تاریخ و ساعت و نام فایل
rw منظور سطح دسترسی فایل است که read یا write شناخته می شود (در فصل های بعدی مفصل در این خصوص خواهیم گفت)
دو بار یوزر tarimehr اشاره شده است که اشاره به نام کاربری مالک این فایل و گروه مالک این فایل دارد(در خصوص گروه های کاربری مفصل خواهیم گفت)
یک رشته عددی مشاهده می کنید که حجم فایل را بیان می کند. برای اینکه حجم فایل در فرمت های قابل فهم برایمان به نمایش در آید از جمله کیلو باید یا مگابایت و گیگابایت می بایست در کنار دستور فوق از سوئیچ h استفاده شود. ls – l -h
ترکیب این دستور می تواند در صورت های مختلفی بکار گرفته شود.
ls – h – l
ls -l -h
ls – hl
ls -lh
تفاوتی ندارد با چه ترکیبی این دستور بکار رود، در هر صورت خروجی ان یکی خواهد بود که حجم فایل ها را بر اساس فرمت آنها (کیلوبایت، مگابایت ، گیگابایت) لیست خواهد کرد.
pouyasazan@tarimehr:~$ ls -l -h total 17M -rw-r--r-- 1 tarimehr tarimehr 17M Mar 13 00:03 allfiles.txt -rw-r--r-- 1 tarimehr tarimehr 95K Mar 13 00:03 dmesg.txt -rw-r--r-- 1 tarimehr tarimehr 20K Mar 13 00:04 services drwxr-xr-x 2 tarimehr tarimehr 4.0K Mar 13 00:04 stuff -rw-r--r-- 1 tarimehr tarimehr 0 Mar 13 00:04 summer.txt pouyasazan@tarimehr:~$ ls -lh total 17M -rw-r--r-- 1 tarimehr tarimehr 17M Mar 13 00:03 allfiles.txt -rw-r--r-- 1 tarimehr tarimehr 95K Mar 13 00:03 dmesg.txt -rw-r--r-- 1 tarimehr tarimehr 20K Mar 13 00:04 services drwxr-xr-x 2 tarimehr tarimehr 4.0K Mar 13 00:04 stuff -rw-r--r-- 1 tarimehr tarimehr 0 Mar 13 00:04 summer.txt pouyasazan@tarimehr:~$ ls -hl total 17M -rw-r--r-- 1 tarimehr tarimehr 17M Mar 13 00:03 allfiles.txt -rw-r--r-- 1 tarimehr tarimehr 95K Mar 13 00:03 dmesg.txt -rw-r--r-- 1 tarimehr tarimehr 20K Mar 13 00:04 services drwxr-xr-x 2 tarimehr tarimehr 4.0K Mar 13 00:04 stuff -rw-r--r-- 1 tarimehr tarimehr 0 Mar 13 00:04 summer.txt pouyasazan@tarimehr:~$ ls -h -l total 17M -rw-r--r-- 1 tarimehr tarimehr 17M Mar 13 00:03 allfiles.txt -rw-r--r-- 1 tarimehr tarimehr 95K Mar 13 00:03 dmesg.txt -rw-r--r-- 1 tarimehr tarimehr 20K Mar 13 00:04 services drwxr-xr-x 2 tarimehr tarimehr 4.0K Mar 13 00:04 stuff -rw-r--r-- 1 tarimehr tarimehr 0 Mar 13 00:04 summer.txt pouyasazan@tarimehr:~$
mkdir
قدم زدن اطراف سیستم لینوکس بسیار لذت بخش است. شما با دستور ساده mkdir به سادگی می توانید پوشه دلخواه تان را ایجاد نمایید. کافیست پس از این دستور نام پوشه مورد نظرتان را قید نمایید:
mkdir mehrdad
این دستور یک پوشه بنام mehrdad در مسیری که هستیم ایجاد می کند. در خروجی زیر یک سری پوشه بنام تهران و ایران ایجاد و با دستور لیست آنها را برایتان نمایش داده ایم:
pouyasazan@tarimehr:~$ mkdir mehrdad pouyasazan@tarimehr:~$ cd mehrdad pouyasazan@tarimehr:~/mehrdad$ ls -al total 8 drwxr-xr-x 2 root root 4096 Mar 13 00:07 . drwxr-xr-x 48 root root 4096 Mar 13 00:07 .. pouyasazan@tarimehr:~/tarimehr$ mkdir tehran pouyasazan@tarimehr:~/tarimehr$ mkdir iran pouyasazan@tarimehr:~/tarimehr$ ls -l total 8 drwxr-xr-x 2 root root 4096 Mar 13 00:08 tehran drwxr-xr-x 2 root root 4096 Mar 13 00:08 iran pouyasazan@tarimehr:~/tarimehr$
mkdir -p
لینوکس به ما این اجازه را می دهد تا چند پوشه بصورت توالی ایجاد کنیم. برای مثال قصد داریم یک پوشه بنام 2018 ایجاد کنیم که در آن تصاویر مربوط به مسافرت اصفهان را قرار دهیم. بنابراین ما سه پوشه تودرتو باید ایجاد کنیم >> 2018 سپس tasavir سپس esfahan
همه این ها را میتوانیم با یک دستور ایجاد کنیم.
mkdir 2018/tasavir/esfahan
با دستور بالا باید طبیعتا ابتدا پوشه 2018 سپس در درون آن پوشه تصاویر و در درون آن پوشه اصفهان ایجاد شود. اما با زدن دستور بالا، خطایی مشابه زیر خواهید دید:
mkdir: cannot create directory ‘2018/tasavir/esfahan’: No such file or directory
این دستور بدین دلیل اجرا نشده است که می گوید پوشه بالادستی یا به قول برنامه نویس ها والدین، وجود ندارد.
حال اگر از سوئیچ p استفاده کنیم چطور؟ این اپراتور نقش parent را بر عهده می گیرد و اجازه ایجاد پوشه های بالادستی یا والدین را به سیستم می دهد.
بنابراین دستور صحیح این خواهد بود:
mkdir -p 2018/tasavir/esfahan
حالا می توانید پوشه به پوشه در سیستم جلو رفته تا مشاهده کنید که همگی ایجاد شده اند:
[root@servers accounts]# cd 2018/ [root@servers 2018]# ls tasavir [root@servers 2018]# cd tasavir/ [root@servers tasavir]# ls esfahan [root@servers tasavir]# cd esfahan/ [root@servers esfahan]# ls [root@servers esfahan]#
برای حذف پوشه خالی نیز می توانید از دستور rmdir استفاده کنید.
rmdir 2018/tasavir/esfahan
این دستور صرفا پوشه ی آخر یعنی esfahan را حذف خواهد نمود.
اگر بخواهید 2018 و هر آنچه که در آن است را حذف کنید، دستور rm را برای remove می توانید استفاده کنید.
برای حذف بی چون و چرا که سیستم هیچ سوالی از شما نپرسد و فورا اقدام به حذف کند، از سوئیچ rf می توانید استفاده کنید.
هشدار: با سوئیچ rf بلافاصله حذف انجام خواهد شد و راه بازگشتی برایتان باقی نمی گذارد. لذا با دقت از این دستور استفاده شود.
rm -rf 2018
همانطور که شما می توانید با دستور cd در سیستم جلو رفته و پوشه ها را وارد شوید، با همین دستور می توانید به عقب هم بازگردید.
یک پوشه دو لایه با نام های folder1 و سپس در درون آن folder2 ایجاد کنید:
mkdir -p folder1/folder2
حالا وارد فولدر 2 شوید:
cd folder1/folder2
برای اینکه یک پوشه به عقب بازگردید، می توانید از .. استفاده کنید:
cd ..
شما را یک پوشه به عقب باز خواهد گرداند.
می توانید با این دستور چند لایه هم به عقب تر بازگردید:
cd ../..
این سطح می تواند تا ریشه ادامه داده شود و محدودیتی ندارد.
[root@servers tarimehr]# mkdir -p folder1/folder2/folder3/folder4 [root@servers tarimehr]# cd folder1/folder2/folder3/folder4 [root@servers folder4]# cd ../.. [root@servers folder2]# ls folder3 [root@servers folder2]# pwd /root/tarimehr/folder1/folder2 [root@servers folder2]#
با توجه به طولانی شدن این فصل، موارد دیگر را در مقاله های بعدی با شما خواهیم بود.
در پایان خسته نباشید برای دوستان عزیزی که با حوصله و دقت این مطالب را مطالعه می کنند و مشتاق به بالا بردن توان خود در یادگیری لینوکس هستند.