برای اینکه قادر به کار کردن با بخش های گوناگون سیستم باشید٬ لازم است بدانید که چگونه در اطراف سیستم حرکت کنید! در این بخش به دستورهای پایه نگاه می کنیم.

برای مدیریت فایل ها و دایرکتوری ها در لینوکس بسیار با دستورات زیر تعامل خواهید داشت:

 

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]#

 

با توجه به طولانی شدن این فصل، موارد دیگر را در مقاله های بعدی با شما خواهیم بود.

در پایان خسته نباشید برای دوستان عزیزی که با حوصله و دقت این مطالب را مطالعه می کنند و مشتاق به بالا بردن توان خود در یادگیری لینوکس هستند.

طبقه بندی شده در:

مبانی لینوکس,

آخرین به روز رسانی: 5 شهریور 1403