پرکاربردترین دستورات لینوکس

پرکاربردترین دستورات لینوکس برای افراد مبتدی

4.1/5 - (9 امتیاز)

آشنایی با کاربرد و نحوه استفاده از دستورات لینوکس پرکاربرد باعث می شود که قدرت بیشتری در استفاده از امکانات این سیستم عامل فوق العاده داشته باشید.

سیستم عامل لینوکس به عنوان یکی از محبوب ترین سیستم عامل های موجود در دنیا، در توزیع های متنوعی عرضه می شود اما دستورات لینوکس برای تمام توزیع ها یکسان است. قدرت و سرعت بالای دستورات لینوکس، این امکان را به کاربران می دهد که اقدامات لازم را در زمان کمتر و با کیفیت بیشتری انجام دهند.

با این که استفاده از دستورات برای انجام برخی از کارها در مقایسه با استفاده از رابط کاربری کمی پیچیده تر است اما زمانی که بتوانید با کاربرد و طرز استفاده از آنها آشنا شوید، کارهای خود را با سرعت بیشتری جلو خواهید برد. در واقع، داشتن مهارت در کار کردن با دستورات لینوکس، راه را برای پیشرفت در زمینه شغلی یا هر زمینه موردنیاز دیگر باز می کند.

دلایل یادگیری دستورات لینوکس

موضوع اصلی این مقاله، بررسی دستورات لینوکس پرکاربرد برای افراد مبتدی است اما بهتر است با یادآوری برخی نکات، متوجه جایگاه سیستم عامل لینوکس و اهمیت یادگیری دستورات آن شویم.

ویژگی هایی که باعث تشویق اکثر کاربران به یادگیری لینوکس و استفاده از آن می شود:

  • امنیت بالا
  • پایداری بالا
  • مدیریت آسان
  • قابل اجرا بر روی هر نوع سخت افزار
  • رایگان
  • متن باز
  • استفاده آسان و انعطاف پذیری بالا
  • قابلیت سفارشی سازی
  • قابلیت پشتیبانی به خاطر استفاده گسترده

اگر علاقمند به کسب اطلاعات بیشتر در مورد ویژگی های این سیستم عامل پرطرفدار هستید، می توانید مقاله ” سیستم عامل لینوکس چیست؟” را مطالعه کنید.

پرکاربردترین دستورات لینوکس

کاربران با استفاده از دستورات لینوکس به راحتی از عهده انجام کارهای ساده و پیشرفته برمی آیند. کافی است دستورات لازم را یاد بگیرید و متناسب با نیاز خود، دستور موردنظر را در ترمینال لینوکس وارد کنید. منظور از ترمینال، همان خط فرمانی است که برای تعامل با سیستم استفاده می شود.

نکته: دستورات لینوکس نسبت به حروف کوچک و بزرگ حساس هستند.

رابط خط فرمان لینوکس در مقایسه با سایر سیستم عامل ها، بسیار قدرتمند است. انجام کارهایی مثل ایجاد فایل، نصب پکیج، مدیریت کاربر، مدیریت تسک های امنیتی و … با استفاده از خط فرمان لینوکس کار بسیار راحتی است. فقط کافی است دستورات لازم را یاد بگیرید و برای اجرای آنها از ترمینال کمک بگیرید. برای اینکه یادگیری دستورات لینوکس با بازدهی بیشتری همراه باشد، کل دستورات را به بخش های مجزا تقسیم کرده ایم تا متناسب با نیاز خود به دستورات بخش دلخواه دسترسی پیدا کنید:

* برای اینکه درک بهتری از نحوه کارکرد هر کدام از دستورات داشته باشید، سعی کنید هر کدام از آنها را با نمونه های مختلف تست کنید.

دستورات مدیریت فایل در لینوکس

دستورات لینوکس مدیریت فایل

1. pwd

این دستور برای نمایش لوکیشن دایرکتوری فعلی استفاده می شود. منظور از لوکیشن همان مسیری است از دایرکتوری روت تا دایرکتوری فعلی وجود دارد.

Syntax: pwd [option]


نمایش مسیر منطقی

pwd -L $


نمایش مسیر فیزیکی

pwd -P $


نمایش ورژن pwd

$ pwd -version

2. mkdir

کاربر با استفاده از این دستور دایرکتوری جدیدی را به مسیر موردنظر اضافه می کند. گزینه های متنوعی وجود دارد که با استفاده از آنها می توان ویژگی های مختلفی برای این دستور لحاظ کرد.

Syntax: mkdir [options] [directories]


ایجاد دایرکتوری جدید در مسیر فعلی

mkdir mydirct_name $


ایجاد چند دایرکتوری به صورت همزمان در مسیر فعلی (بین کاما و اسم دایرکتوری نباید هیچ فاصله ای باشد)

mkdir {dir1,dir2,dir3} $


ایجاد دایرکتوری به صورت تو در تو (از پدر به فرزند)

mkdir –p first/second/third $


مجوز دادن به دایرکتوری جدید

mkdir -m a=rwx [directory] $


نمایش اطلاعات مفید در مورد دستور mkdir

mkdir –help $

3.cd

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

به عنوان مثال اگر در مسیر /home/username/Documents قرار دارید و می خواهید به دایرکتوری Photos موجود در آن مسیر بروید، کافی است دستور cd Photos را وارد کنید.

Syntax: cd [options] directories


قرار گرفتن در لوکیشن موردنظر

$ cd dir_1/dir_2/dir_3 


تغییر دایرکتوری فعلی به دایرکتوری ریشه (نقطه شروع هر مسیر)

$ cd /


تغییر دایرکتوری به دایرکتوری home

cd یا ~ cd $


انتقال به دایرکتوری parent

$ cd ..


انتقال به دایرکتوری قبلی که کاربر اخیراً در آنجا حضور داشت.

$ cd -

4. ls

این دستور برای نمایش لیستی از محتویات دایرکتوری موردنظر استفاده می شود. کاربر با تایپ ls در ترمینال، لیست فایل ها و دایرکتوری های تو در تو را مشاهده می کند.

Syntax: ls [options] [directory]


نمایش لیست محتویات موجود در مسیر موردنظر

$ ls path


نمایش محتویات دایرکتوری پدر دایرکتوری فعلی

$ ls ..


نمایش لیست دایرکتوری ها به همراه زیر دایرکتوری ها

$ ls *


نمایش لیست محتویات دایرکتوری به همراه نام فایل یا دایرکتوری، مجوز، تعداد لینک ها، اندازه محتوا و …

$ ls –l

5. rmdir

دستور rmdir برای حذف دایرکتوری استفاده می شود. البته، به این نکته نیز توجه داشته باشید که با این دستور فقط می توانید دایرکتوری های خالی را حذف کنید. اگر دایرکتوری موردنظر خالی نباشد، یک پیام خطا دریافت خواهید کرد.

Syntax: rmdir [-p] [-v | –verbose] [–ignore-fail-on-non-empty] directories


با p، آرگومان های موجود در بخش دایرکتوری به عنوان مسیر در نظر گرفته می شوند و در صورت خالی بودن به ترتیب (از اول تا آخر) حذف می شوند.

rmdir –p $


با استفاده از گزینه v، اطلاعات مربوط به هر دایرکتوری در حال پردازش، نمایش داده می شود.

rmdir -v, –verbose $


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

rmdir –ignore-fail-on-non-empty $

6. grep

کاربر از این دستور برای پیدا کردن عبارت موردنظر در داخل فایل یا فایل های موردنظر استفاده می کند.

به عنوان مثال، دستور grep blue notepad.txt تمام جملات موجود در داخل فایل که دارای کلمه blue هستند را برمی گرداند.

Syntax: grep [options] کلمه مورد جستجو یا الگوی عبارت منظم directories


آپشن هایی که به کاربر کمک می کند جستجوی خود را به صورت بهینه تر انجام دهد:

c- : نمایش تعداد خط هایی که دارای کلمه موردنظر یا عبارت متناسب با الگو می باشند.

h- : نمایش خطوط موردنظر بدون اسم فایل

v- : نمایش لیستی اسم فایل های که مطابق با الگوی موردنظر نیستند.

 

7. cat

cat یکی از دستورات لینوکس چند منظوره است است و برای موارد مختلفی بکار می رود. ایجاد فایل، نمایش محتوای فایل، کپی محتوای یک فایل در فایل دیگر و … از جمله کاربردهای این دستور است.


نمایش محتوای یک فایل یا چند فایل

$ cat file_name

$ cat file1,file2, …


ایجاد فایل جدید

cat > newfile


کپی محتوای یک فایل در فایل دیگر

cat [Origin filename] > [destination filename]


اضافه کردن محتوای یک فایل به به انتهای فایل دیگر

cat file1 >> file2


ادغام محتوای چند فایل

cat file1 file2 file3 > merged_file


اضافه کردن متن جدید به انتهای فایل موجود

cat >> file.txt

 new text

8. chmod

chmod یکی دیگر از دستورات لینوکس است که با استفاده از آن می توان نوع دسترسی و مجوز فایل را تغییر داد. منظور از مجوز همان نوع دسترسی است که جهت خواندن، نوشتن یا اجرای فایل لحاظ می شود.

Syntax: chmod [reference][operator][mode] files


آرگومان reference برای تعیین کاربرانی است که مجوزهای دسترسی فایل به آنها اختصاص داده می شود.

در کل، برای مجوز دهی به فایل از دو روش نمادی و عددی استفاده می شود که در ادامه موردبررسی قرار می گیرد:

جدول مجوز دستورات لینوکس

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

عملگرهایی که برای روش نمادی بکار می روند:


ارائه مجوز های موردنظر به کلاس ها به صورت نمادی

$ chmod u=rwx,g=rx,o=r myfile


اضافه کردن مجوز های جدید به تمام کاربران به صورت نمادی

$ chmod ugo+rwx folder_name


ارائه مجوز خواندن، نوشتن و اجرا به همه کاربران به صورت عددی

$ chmod 777 folder_name

(7 سمت چپ برای کاربر ایجاد کننده فایل، 7 وسط برای اعضای گروه و 7 سمت راست برای کاربران (به جز صاحب فایل یا فولدر و اعضای گروه)


ارائه مجوز های خواندن، نوشتن و اجزا به کاربر ایجاد کننده فایل

$ chmod 700 folder_name


ارائه مجوز نوشتن و اجرا به کاربر ایجاد کننده فایل، مجوز نوشتن به اعضای گروه و مجوز خواندن، نوشتن و اجرا به کل کاربران (به جز مالک فایل یا فولدر و اعضای گروه)

chmod 327 folder_name $

9. chown

این دستور برای تغییر مالکیت فایل، دایرکتوری یا لینک سمبلیک استفاده می شود.

Syntax: chown [options] user[:group] files


تغییر مالکیت فایل

$ chown owner_name file_name

بررسی گزینه های مربوط به این دستور به همراه مثال:

c- : ارائه گزارشات مربوط به پروسه تغییر مالکیت

$ chown -c owner_name file_name

f- : در صورت وجود هر گونه خطا یا نداشتن مجوز برای تغییر مالکیت، استفاده از این گزینه باعث می شود که مالکیت به صورت اجباری تغییر پیدا کند.

chown -f owner_name file_name $


انتقال مالکیت فایل به یک گروه

$ chown :group_name file_name


انتقال مالکیت فایل به یک گروه و کاربر

chown user_name:group_name file_name $


کپی مالکیت یک فایل به فایل دیگر

$ chown --reference=file1 file2

mv .10

این دستور برای انتقال فایل به دایرکتوری موردنظر و همچنین تغییر نام فایل بکار می رود.

Syntax: mv [option] source destination


انتقال فایل به دایرکتوری

mv a.txt path_of_directory $


تغییر نام فایل متنی از a به b

$ mv a.txt b.txt $

11. find

این دستور برای پیدا کردن یک فایل خاص در داخل دایرکتوری موردنظر به کار می رود. پشتیبانی از گزینه های متنوع مثل جستجو بر اساس اسم، نوع فایل، اندازه، مجوز، کاربر، گروه، تاریخ و … باعث می شود که این دستور در بین کاربردی ترین دستورات لینوکس قرار بگیرد.

Syntax: find [شروط لازم برای عمل جستجو]  [محل شروع جستجو] [options] [محتوای موردنظر]


جستجوی فایل بر اساس نام در دایرکتوری فعلی

$ find . -name file.txt


جستجوی دایرکتوری هایی با اسم asam در دایرکتوری ریشه

$ find / -type d -name asam


جستجوی فایل های php در دایرکتوری فعلی

$ find . -type f -name "*.php"


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

find . -type f -perm 777 –print $


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

– نمایش تعداد کلمات، خط ها و کاراکترهای موجود در داخل یک فایل

wc file.txt $

– نمایش محتوای یک فایل در فرمت مشخص (هگزادسیمال، اکتال و کاراکترهای اسکی)

$ od -b < file.txt >  // فرمت اکتال

$ od -t x1 < file.txt >  //فرمت هگزا دسیمال

$ od -c < file.txt >   // فرمت کاراکتر اسکی

– فشرده سازی فایل تحت قالب zp

$ gzip files

– خارج کردن فایل zip از حالت فشرده

$ gunzip files

12. diff

diff همان مخفف difference است که برای مقایسه خط به خط فایل ها و نمایش تفاوت های آنها استفاده می شود. حتی این دستور به کاربر می گوید که تغییر کدام خط ها باعث یکی شدن دو فایل می شود و این کار با سمبل ها و دستورات خاصی انجام می شود.

سمبل ها:

a : add

c : chage

d : delete

Syntax: diff [options] File1 File2


نمایش تفاوت های دو فایل

$ diff a.txt b.txt

مثلاً اگر محتوای دو فایل به صورت زیر باشد:

a.txt:

Apple

Orange

Banana

Water

melon

Chery

b.txt:

Orange

Peach

Apple

Banana

Melon

Cherry

خروجی diff a.txt b.txt به صورت زیر خواهد بود:

1d0 – خط اول (1) از فایل اول باید حذف شود (d). اگر حذف نشود، در خط شماره 0 فایل دوم قرار بگیرد.

Apple > – محتوایی که بنابه 1d0، باید حذف شود.

2a2,3 – با سمبل a یا همان add، سطرهای 2 و 3 (2،3) فایل دوم را به خط اول فایل 2 اضافه کنید.

 Peach, < Apple >  – محتوایی که باید بنابه 2a2,3، اضافه شوند.

4c5  – خط چهارم فایل اول باید با خط پنجم فایل دوم عوض شود.

Watermelon >  – محتوایی که باید عوض شود.

Melon > – محتوایی که باید با Watermelon عوض شود.

گزینه هایی دیگری هم وجود دارند که می توانند تفاوت های بین دو فایل را با فرمت دیگری نشان دهند که یکی از آنها –c است:

$ diff -c file1 file2

c- : قرار دادن علامت های + (add)، – (delete) و ! (change) در کنار خطوطی که بین دو فایل متفاوت هستند.

13. file

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

تست فایل سیستم: نتیجه این تست بر اساس یک فراخوانی سیستمی مشخص می شود. ابتدا، خالی یا پر بودن فایل بررسی می شود، سپس نوع فایل چاپ می شود.

تست جادویی: این تست برای بررسی نوع فایل هایی که داده هایی با فرمت ثابت و خاص دارند، استفاده می شود.

تست زبان: این تست با جستجوی یک سری رشته خاص از چند بلوک اول، نوع فایل را شناسایی می کند.

Syntax: file [option] [filename]


نمایش نوع فایل

$ file file-name


نمایش نوع فایل با حالت مختصر

$ file -b filename


نمایش نوع تمام فایل ها

$ file *


نمایش نوع فایل های یک دایرکتوری

$ file directoryname*/

14. rm

این دستور برای حذف آبجکت هایی مثل فایل ها، دایرکتوری ها و … از فایل سیستم استفاده می شود. دستور rm تمام ارجاعات به آن فایل را هم حذف می کند و در کل موقع استفاده از این دستور باید کمی مراقب باشید چون امکان بازیابی بعد از حذف وجود ندارد.

Syntax: rm [option] filename


حذف یک فایل

$ rm a.txt


حذف چند فایل

$ rm a.txt b.txt c.txt


حذف تعاملی فایل بر اساس تایید نهایی کاربر (فشردن y برای تایید)

$ rm -i d.txt


حذف اجباری فایل در صورت نیاز به مجوز نوشتن

$ rm -f e.txt


حذف تمام زیرشاخه ها و فایل ها از دایرکتوری والد به صورت بازگشتی

$ rm -r *

cp .15

cp مخفف copy است که برای کپی کردن فایل ها یا دایرکتوری ها استفاده می شود. این دستور یک نسخه مشابه فایل اصلی روی دیسک ایجاد می کند و در کل حداقل به دو اسم فایل به عنوان آرگومان نیاز دارد.

Syntax: cp [option] Source Destination


کپی فایل اصلی در فایل دیگر

$ cp Src_file Dest_file


کپی چند فایل با همان اسم در دایرکتوری دیگر

$ cp Src_file1 Src_file2 Src_file3 Dest_directory


کپی تمام فایل های یک دایرکتوری در دایرکتوری دیگر به صورت بازگشتی 

$ cp -R Src_directory Dest_directory


کپی یک فایل در فایل دیگر به صورت اجباری و بدون نیاز به مجوز نوشتن

$ cp -f a.txt b.txt

16. locate 

این دستور برای پیدا کردن فایلی با اسم مشخص استفاده می شود. locate نسبت به find سریعتر و بهتر عمل می کند چون به جای فایل سیستم جستجوی خود را از طریق دیتابیس انجام می دهد.

Syntax: locate [OPTION] PATTERN


جستجوی یک فایل با اسم مشخص

$ locate sample.txt


نمایش نتایج تا یک حد مشخص (مثلاً 20 نتیجه)

$ locate "*.html" -n 20


نمایش تعداد نتایج مطابق با فایل یا پسوند مشخص

$ locate -c [.txt]*


نادیده گرفتن حساسیت مربوط به بزرگ یا کوچک بودن حروف

$ locate -i *SAMPLE.txt*

17. nano

در واقع، nano یک ویرایشگر متنی کاربرپسند و ساده است که معمولاً در اکثر سیستم های لینوکس به طور پیش فرض نصب شده است. این ویرایشگر با خط فرمان کار می کند و دستورات خاص آن عملیات ساده ای مثل ایجاد فایل یا جستجو، جایگزینی و … را انجام می دهند.

Syntax: nano [operation]


نصبnano

$ sudo apt install nano /اوبونتو و دبیان

$ sudo yum install nano / CentOS و RHEL

$ sudo dnf install nano /فدورا


ایجاد یک فایل جدید

$ nano file-name

این دستور یک ویرایشگر خالی را با اسم فایل را باز می کند که در کنسول پایینی مجموعه ای از میانبرهای کیبورد لحاظ شده اند. مثل تصویر زیر:

ویرایشگر nano

مثلاً o^ نشاندهنده این است که باید کلید ترکیبی ctrl+o را فشار دهید تا فایل موردنظر را در دیسک بنویسید. برای آشنایی با همه shortcut های کیبورد می توانید g^ یا همان ctrl+g را فشار دهید.


باز کردن یک فایل

اگر قبلاً ویرایشگر را باز نکرده اید، دستور زیر فایل موردنظر باز می کنید:

$ nano existing-file-name

اگر در فضای nano قرار دارید، با فشردن  Ctrl+R شما خواسته می شود که نام فایلی که در لوکیشن فعلی قرار دارد را وارد کنید. Ctrl+T هم مرورگر فایل داخلی nano  را باز می کند تا فایل موردنظر را پیدا کرده و باز کنید.


جستجو و جایگزینی متن

برای جستجو در فایل متنی کافی است Ctrl + w را فشار دهید و بعد از تایپ کلمه موردنظر، Enter را فشار دهید.

اگر قصد جستجو و جایگزینی یک رشته با رشته دیگر را دارید، ابتدا باید کلید ترکیبی/+Ctrl را فشار دهید و Enter را بزنید. بعد، کلمه موردنظر را وارد کنید و Enter را بزنید. الان نوبت وارد کردن در کلمه  ای است که می خواهید با کلمه قبلی جایگزین کنید، بعد از این که در بخش مشخص آن کلمه را وارد کردید، دوباره Enter را بزنید تا جایگزینی انجام شود.

18. vim

vim هم یک ویرایشگر متنی است که به عنوان یک نسخه پیشرفته Vi، قابلیت های بیشتری دارد. عمل undo چند سطحی، برجسته سازی Syntax، ویرایش command line و … فقط چند مورد از این قابلیت ها هستند. این ویرایشگر از انواع فایل ها پشتیبانی می کند و به عنوان ویرایشگر برنامه نویسی هم شناخته می شود.

این ویرایشگر 2 حالت دارد:

حالت insert: با فشار دادن کلید i می توان وارد این حالت شد.

حالت Command: با فشار دادن کلید ESC می توان وارد این حالت شد.

که هر کدام از این حالت ها عملیات مربوط به خود را دارند که با وارد کردن یک یا چند کاراکتر خاص، این عملیات به صورت خودکار انجام می شوند.

Syntax: vim [options] [filelist]


باز کردن یک فایل و شروع ادیت

$ vim file-name

x – حذف یک کاراکتر خاص

u –undo کردن دستور قبلی

A – اضافه کردن متن به انتهای فایل

!q: – حذف تمام تغییرات

a – اضافه کردن متن به بخش بعد از نقطه ای که اشاره گر قرار دارد.

O – باز کردن یک خط در بالای اشاره گر

دستورات کاربری لینوکس

دستورات کاربری لینوگس

1. sudo

sudo یکی از پرکاربردترین دستورات لینوکس است که برای ارائه مجوز دسترسی ادمین استفاده می شود. اگر می خواهید دستوری را به عنوان ادمین اجرا کنید، با کمک این دستور اجازه دسترسی پیدا می کنید. کاربری که امتیازات پایین تری دارد، با استفاده از این دستور، اقدام لازم را به عنوان ادمین اجرا می کند. این دستور معادل گزینه run as administrator در ویندوز است.

Syntax: sudo [options] command

برخی از گزینه هایی که برای دستورات sudo لحاظ می شوند:

v- : نمایش اطلاعات مربوط به ورژن sudo

l- : نمایش امتیازات کاربر یا بررسی یک دستور خاص

k- : ریست کردن timestamp کاربر و حذف احراز هویت او

u- : اجرای دستور موردنظر به عنوان یک کاربر دیگر


ریستارت سیستم به عنوان کاربر روت

$ sudo shutdown -r now


تغییر کاربر به کاربر روت بدون تغییر مسیر دایرکتوری

$ sudo –s


اجرای هر دستور خاص مثل ایجاد کاربر یا گروه جدید به عنوان ادمین نیاز به اضافه کردن دستور sudo قبل از دستور موردنظر است.

 

2. useradd

از آنجایی که لینوکس یک سیستم عامل چند منظوره است، دستور useradd برای اضافه کردن کاربران جدید به سیستم استفاده می شود. البته بهتر است به این نکته نیز توجه داشته باشید که نام کاربری با useradd و رمز عبور با دستور passwd مشخص می شود. حذف کاربر نیز با دستور userdel انجام می شود.

Syntax: useradd [options] user_name


اضافه کردن کاربر ساده

$ sudo useradd user_name


اختصاص دایرکتوری home به کاربر جدید

$ sudo useradd -d /home/ user_name


ایجاد کاربر جدید با شناسه کاربری مشخص

$ sudo useradd -u 1234 user_name


ایجاد کاربر جدید با شناسه گروه مشخص

$ sudo useradd -g 1000 user_name


ایجاد کاربر جدید با تاریخ انقضا

sudo useradd -e 2023-05-30 user_name $

3. passwd

دستور passwd برای تغییر رمز کاربران استفاده می شود. کاربر روت می تواند علاوه بر رمز خود، رمز کاربران دیگر را نیز تغییر دهد. در حالی که یک کاربر معمولی فقط قادر به تغییر رمز عبور خودش است. البته همانطور که قبلاً نیز اشاره کردیم، دستور sudo اختیارات کاربر روت را در اختیار کاربر معمولی قرار می دهد.

Syntax: passwd [options] [username]


تغییر رمز توسط کاربر معمولی توسط خودش

$ passwd


تغییر رمز کاربر معمولی توسط کاربر روت

$ passwd user1


تغییر رمز کاربر دیگر توسط کاربر معمولی

$ sudo passwd user1


چند گزینه پرکاربرد برای دستور passwd:

d- یا delete: این گزینه رمز کاربر را حذف می کند تا حساب کاربری بدون رمز عبور باشد.

e- یا expire- : با این گزینه، رمز کاربر منقضی می شود و کاربر برای ورود بعدی خود مجبور است رمز خود را تغییر دهد.

l- یا lock- : این گزینه برای قفل رمز عبور کاربر استفاده می شود. منظور از قفل، غیر فعال سازی نیست بلکه از ورود کاربر با رمز عبور جلوگیری می کند.

S- یا status- : با این گزینه، وضعیت رمز کاربری با قالبی که دارای 7 فیلد است، نمایش داده می شود.

q- یا quite- : با لحاظ کردن این گزینه، دستور passwd بدون نمایش خروجی کار می کند.

R- یا root- : این گزینه مخصوص کاربران پیشرفته است و با استفاده از آن می توان تغییراتی را در CHROOT_DIR ایجاد کرد از فایل های پیکربندی آن استفاده کرد.

4. groupadd

امکان تعامل همزمان چند کاربر با سیستم باعث می شود که نیاز به ایجاد گروه باشد. در واقع، مجوز دادن به تک تک کاربران به صورت مجزا کار دشواری است. به کمک groupadd می توان کاربران با سطوح یکسان را در یک گروه قرار داد.

Syntax: groupadd [option] group_name

گزینه هایی که می توان برای ایجاد گروه در نظر گرفت:

f- یا force- : هر گروه، ID منحصر به فرد خود را دارد و در صورتی که هنگام ایجاد گروه از GID تکراری استفاده شود، f- پیام مربوط به این عملیات را نشان داده و عمل خروج از پروسه ایجاد گروه با موفقیت انجام می شود.

sudo groupadd -f g_name $

g- یا gid- : این گزینه برای اختصاص یک شناسه منحصر به فرد به گروه جدید استفاده می شود. این شناسه باید یک عدد مثبت باشد. اگر شناسه خاصی را برای گروه در نظر نگیرید، سیستم به طور پیش فرض یک شناسه بزرگتر از شناسه گروه های موجود را برای گروه جدید درنظر می گیرد.

$ sudo groupadd g_name -g 1100

o- یا non-unique– : این گزینه باعث می شود که قانون منحصربه فرد بودن شناسه گروه برای گروه جدید لحاظ نشود و گروهی با ID غیر منحصر بفرد اضافه شود.

groupadd -o g_name sudo $

r- یا system- : استفاده از این گزینه باعث ایجاد گروه سیستمی می شود. شناسه های گروه سیستمی جدید باید در بازه SYS_GID_MIN و SYS_GID_MAX (به جای GID_MIN و GID_MAX مربوط به گروه های معمولی) تعریف شده در login.defs، انتخاب شود. معمولاً شناسه های 0 تا 999 برای گروه های سیستمی اختصاص داده می شوند.

groupadd -r g_name sudo $

K- یا key- : کاربر با استفاده از این گزینه می تواند پیش فرض های مربوط به فایل login.defs (GID_MIN، GID_MAX و …) را لغو و آنها را دوباره مقدار دهی کند.

$ sudo groupadd g_name -K GID_MIN=8000 -K GID_MAX=9999

دستورات عملیاتی لینوکس

دستورات لینوکس کاربردی

1. apt –get

apt یک ابزار مدیریت بسته قدرتمند و رایگان برای لینوکس است. این ابزار برای نصب بسته های نرم افزاری جدید، حذف بسته های موجود و ارتقا نرم افزارها استفاده می شود. برای اجرای این دستور نیز نیاز به دسترسی مدیریتی دارید که با استفاده از sudo فراهم می شود.

نصب یک بسته جدید

$ apt-get install pack_name

یا

$ apt install pack_name


حذف بسته موجود

apt-get remove pack_name

یا

apt remove pack_name


حذف بسته به همراه فایل های پیکربندی مربوط به آن

apt-get purge pack_name

یا

apt purge pack_name


حذف تمام بسته های بدون استفاده

apt-get autoremove

یا

apt autoremove

2. date، time و cal

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

3. zcat

دسترسی به محتوای یک فایل زیپ، بدون نیاز به خارج کردن از حالت زیپ، با دستور zcat امکان پذیر است.

Syntax: zcat [options] files

گزینه هایی که می توان برای نمایش محتوا با zcat لحاظ کرد:

l- : نمایش اطلاعاتی مثل اندازه فایل اصلی، اندازه فایل فشرده شده، نرخ فشرده سازی مربوط به دو فایل

$ zcat –l file1.gz file2.gz

q- : حذف همه پیام های اضافی به غیر از محتوای اصلی فایل

$ zcat -q file.gz

4. df

کاربر با استفاده از این دستور می تواند از میزان فضای مصرفی فایل سیستم اطلاع پیدا کند. البته وارد کردن نام فایل در این دستور باعث می شود که فضای دیسک مصرفی مربوط به فایل سیستم فایل موردنظر نمایش داده شود. وارد نکردن اسم فایل باعث نمایش تمام فایل سیستم های نصب شده می شود.

Syntax: df [option] [file]

برخی از گزینه هایی که می توان برای این دستور در نظر گرفت:

h- یا human-readable– : نمایش فضای حافظه با فرمت قابل خواندن توسط کاربر

نمایش فضای مصرفی فایل سیستم هایی با نوع مشخص : -t یا –type=TYPE

sync– : جهت انجام همگام سازی قبل از نمایش اطلاعات


نمایش فضای مصرفی فایل سیستم مربوط به فایل موردنظر

df file.txt $


نمایش اطلاعات مربوط به فضای مصرفی تمام فایل سیستم ها

$ df --total


نمایش فضای مصرفی فایل سیستم مربوط به فایل موردنظر به صورت قابل خواندن برای کاربر

df -h /home/file $

فضای فایل سیستم با دستورات لینوکس

5. mount

همه فایل های سیستم عامل لینوکس به شکل یک درخت بزرگ با ریشه «/» مرتب شده اند. این فایل ها بر اساس جدول پارتیشن بندی پخش می شوند. ابتدا دایرکتوری های والد به این درخت وصل می شوند و در ادامه سایر دایرکتوری ها و فایل ها با استفاده از رابط کاربری یا دستور mount در این درخت قرار میگیرند.

در واقع این دستور، فایل سیستم موجود بر روی دستگاه را روی ساختار درختی سوار می کند. برای جداسازی این دستگاه ها از درخت می توان از دستور umount استفاده کرد.

Syntax: mount [options] device_name directory


مشاهده لیست سیستم فایل های ext4 (نمایش لیست با گزینه l- و تعیین نوع فایل سیستم با گزینه t-)

$ sudo mount –l –t ext4


اتصال فایل سیستم /dev/sdb1 به دایرکتوری /mnt/media

$ sudo mount /dev/sdb1 /mnt/media

6. exit

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

خروج معمولی بدون مقدار برگشتی

exit $

خروج با پارامتر برگشتی

exit number $

7. ctrl+c

وقتی که در داخل خط فرمان لینوکس یا همان ترمینال باشید، کلید ترکیبی ctrl+c برای ارسال سیگنال SIGINT استفاده می شود که برنامه یا دستور در حال اجرا لغو شود یا خاتمه پیدا کند. به عنوان مصال، اگر یک اسکریپت یا برنامه در یک حلقه بی نهایت گیر کرده باشد، فشردن کلید ترکیبی ctrl+c آن دستور را لغو می کند و خط فرمان را در اختیار شما قرار می دهد تا دوباره از آن استفاده کنید.

8. which 

این دستور به عنوان یکی از مهم ترین دستورات لینوکس برای پیدا کردن لوکیشن فایل اجرایی مربوط به دستور استفاده می شود و این کار را با جستجو در مسیر متغیر محلی انجام می دهد.

در کل، با این دستور با 3 وضعیت روبرو هستید:

0: اگر همه دستورات مشخص پیدا شوند و به صورت “اجرا شده” باشد.

1: اگر یک یا چند دستور مشخص وجود نداشته باشد یا در حال اجرا نباشند.

2: اگر گزینه نامعتبر مشخص شده باشد.

Syntax: which [filename1] [filename2]


نمایش مسیر فایل(ها)

$ which cpp python java


نمایش نام تمام مسیرهای مرتبط با هر آرگومان

which –a cpp python

9. man 

این دستور برای نمایش راهنمای استفاده از هر دستوری است که فایل متنی مربوط به آن توسط برنامه نویس برای کاربر تهیه شده است. به این صورت که با نمایش ویژگی هایی زیر یک نمای دقیق تری در مورد دستور موردنظر ارائه می دهد.

NAME, SYNOPSIS, DESCRIPTION, OPTIONS, EXIT STATUS, RETURN VALUES, ERRORS, FILES, VERSIONS, EXAMPLES, AUTHORS, SEE ALSO

در کل این دستورات به 9 دسته تقسیم شده اند:

  1. برنامه های قابل اجرا یا دستورات shell
  2. فراخوانی های سیستمی
  3. فراخوانی های کتابخانه ای
  4. بازی ها
  5. فایل های خاص
  6. فرمت فایل ها
  7. دستورات متفرقه
  8. دستورات مدیریتی سیستم
  9. روتین های مربوط به کرنل

Syntax: man [OPTION] [COMMAND NAME]


نمایش تمام اطلاعات مربوط به دستور

$ man [COMMAND NAME]


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

$ man [SECTION-NUMBER] [COMMAND NAME]


نمایش شماره بخشی که دستور موردنظر به آن تعلق دارد.

$ man -f [COMMAND NAME]


جستجوی دستور به عنوان یک عبارت منظم در تمام فایل های اطلاعاتی دستورات

$ man -k [COMMAND NAME]

10. uname

این دستور تمام اطلاعات مربوط به سیستم را نمایش می دهد.

Syntax: uname [OPTION]


نمایش اطلاعات مربوط به سیستم به ترتیب:

Kernel, name, network node hostname , …

$ uname  -a


نمایش اسم کرنل

$ uname  -s

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

11. du 

این دستور مخفف disk usage است و برای نمایش بلوک هایی استفاده می شود که فایل موردنظر در اختیار دارد. پس استفاده از این دستور برای ردیابی فایل ها و دایرکتوری هایی که فضای زیادی از دیسک را اشغال کرده اند، ایده هوشمندانه ای است.

Syntax: du [OPTION][FILE]


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

$du /home/project/test


نمایش میزان حافظه مربوط به دایرکتوری های موجود در دایرکتوری موردنظر ( بر اساس بایت، کیلوبایت، مگابایت و …)

$ du –h /home/project/test


نمایش تمام حافظه اختصاصی مربوط به تک تک فایل های موجود در دایرکتوری های مسیر موردنظر

$ du –a –h /home/project/test


نمایش کل حافظه اختصاصی دایرکتوری های موجود در دایرکتوری موردنظر

$ du –c –h /home/project/test

12. <command <–help

اگر در مورد نحوه استفاده از یک دستور به راهنمایی نیاز دارید، اضافه کردن  –help یا –h اطلاعات لازم در مورد آن دستور را به شما ارائه می دهد.

مثلاً دستور wget –help یا wget -h تمام اطلاعات مربوط به نحوه استفاده و گزینه هایی که می توانید در این زمینه به کار ببرید را به شما نشان می دهد.

13. kill

دستور kill، یک دستور داخلی است که برای پایان دادن به فرآیندها به صورت دستی استفاده می شود. این دستور سیگنال مشخصی را برای خاتمه فرآیند ارسال می کند که اگر این سیگنال توسط کاربر مشخص نشده باشد، به طور پیش فرض برای این کار، سیگنال TERM فرستاده می شود.

Syntax: kill [options]


نمایش تمام سیگنال های مورداستفاده برای دستور kill

$ kill -l


خاتمه دادن به فرآیندی با شناسه pid

$ kill pid

دستورات شبکه لینوکس

دستورات شبکه

1. ip

این دستور برای نمایش یا دستکاری آدرس دستگاه استفاده می شود. تخصیص آدرس به یک شبکه یا پیکربندی پارامترهای رابط شبکه از وظایف دیگر این دستور است.

Syntax: ip [ options ] object { command | help }

از گزینه های مهم این آدرس می توان به موارد زیر اشاره کرد:

address- : نمایش آدرس های ip دستگاه های متصل به شبکه

ip address $

$ ip address show asm3s0 (نمایش آدرس های مربوط به یک رابط شبکه خاص)

link- : نمایش اطلاعات مربوط به دستگاه های لایه پیوند

$ ip link

$ ip -s link (نمایش اطلاعات عددی مربوط به رابط های شبکه )

route- : نمایش مسیر بسته های شبکه

$ ip route

add- : اختصاص آدرس ip به یک رابط شبکه

$ ip a add (ip_address) dev interface

up- و down- : برای فعال و غیرفعال کردن رابط شبکه

$ ip link set (interface) up

$ ip link set (interface) down

2. ssh

کاربر از این دستور برای ایجاد یک اتصال ریموت از طریق پروتکل ssh استفاده می کند. ssh یک پروتکل امن است و داده ها را به رمزنگاری شده بین هاست و کلاینت منتقل می کند.

Syntax: ssh [options] user_name@host(IP/Domain_name)

اگر نام کاربری شما در سیستم محلی مطابق با نام کاربری شما در سرور ریموت موردنظر است، می توانید دستور اتصال را به صورت زیر انجام دهید:

$ ssh host_ip_address

همچنین برای اتصال به حساب کاربری دیگر در سیستم ریموت می توانید از دستوری زیر استفاده کنید:

ssh -l username sample.ssh.com $

این نوع اتصال انواع و گزینه های مختلفی دارد که با استفاده از آنها می توان به عملکرد دلخواه دست پیدا کرد.

به عنوان مثال با گزینه p- می توان پورت موردنظر برای اتصال به سرور ریموت را مشخص کرد.

$ ssh username@IP address –p 2222

جا دارد به این نکته نیز اشاره کنیم که برخی از دستورات ssh در سرور مجازی لینوکس کاربرد بیشتری دارند و در این بخش به چند مورد از آنها نیز اشاره می کنیم:

  • top

دستور top برای ارائه لیست تمام فرآیندهای در حال اجرا بر روی سرور و اطلاعات آماری مربوط به میزان استفاده از cpu، حافظه، i/o و … استفاده می شود.

  • kill

دستور kill برای از بین بردن فرآیند در حال اجرا استفاده می شود که شناسایی فرآیند نیز از طریق PID انجام می شود.

  • free

دستور free برای نمایش داده های حافظه فیزیکی سرور بکار می رود.

  • w

نمایش لیست کاربرانی که از طریق سرویس SHH به سرور متصل هستند.

* اگر علاقمند به استفاده از سرور مجازی لینوکس هستید تا متناسب با نیاز خود، تسک های لازم را سرعت و قدرت بیشتری انجام دهید، توصیه می کنیم که از صفحه خرید سرور مجازی لینوکس شرکت آسام سرور دیدن کنید و با مشاهده ویژگی ها و قیمت هر کدام از آنها، سرور مجازی مناسبی را انتخاب کنید و شروع دوباره ای داشته باشید.

3. mail

لینوکس برای راحت سازی پروسه ارسال ایمیل، یک ویژگی مهم را برای کاربران ارائه کرده است که با استفاده از دستور mail می توان از آن استفاده کرد. این دستور به خاطر کاربردی که دارد، شایستگی قرار گرفتن در لیست پرکاربردترین دستورات لینوکس را دارد.

ارسال ایمیل

برای مشخص کردن عنوان ایمیل باید از گزینه -s استفاده شود. همچنین بعد از وارد کردن آدرس ایمیل گیرنده، محتوای موردنظر به عنوان متن ایمیل درخواست می شود. بعد از تکمیل متن، با فشردن دکمه (CTR+D) پروسه ارسال ایمیل به پایان می رسد.

$ mail -s "subject" [email-address]

CC [با فشردن دکمه اینتر می توانید از این مرحله رد شوید]

<متن ایمیل را وارد کنید>

 [CTRL + D]

 

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

(1) mail -s "subject" example@gmail.com <<< 'How are you?'

(2) echo "How are you?" | mail -s " subject " example@gmail.com


ارسال ایمیل به چند گیرنده

$ mail - s " subject " example1@gmail.com, example2@gmail.com


اضافه کردن cc (-c) و bcc (-b) به دستور

$ mail - s " subject " example1@gmail.com -c example2@gmail.com –b example3@gmail.com


اضافه کردن فایل موردنظر با گزینه a-

mail - s "subject" example1@gmail.com -a file.txt

بهتر است به این نکته نیز اشاره کنیم که وارد کردن دستور mail بدون هیچ گزینه اضافه، ایمیل های دریافتی را نشان می دهد.

4. ping

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

Syntax: ping [options] address

بعد از اجرای دستور، میزان تاخیر پاسخ دریافت در سه بخش (کمترین زمان دریافت پاسخ) min، (میانگین زمان دریافت پاسخ) avg و (بیشترین زمان دریافت پاسخ) max نمایش داده می شود.


کنترل تعداد پینگ با گزینه c-

$ ping -c 5 www.example.com


کنترل اندازه بسته ارسالی با گزینه s-

$ ping –s 40 -c 5 www.example.com


تغییر زمان ارسال بسته بعدی با گزینه i- (برحسب ثانیه)

$ ping -i 2 www.example.com


تعیین زمان توقف عمل ping با گزینه w- (برحسب ثانیه)

$ ping -w 3 www.example.com

در صورت تمایل به آشنایی با روش های کاهش پینگ اینترنت، می توانید به این لینک مراجعه کنید.

5. host

host به عنوان یکی از پرکاربردترین دستورات لینوکس، برای پیدا کردن آدرس ip یک دامنه خاص یا برعکس بکار می رود. دسترسی به اطلاعات خاص در مورد یک دامنه خاص با استفاده از گزینه های مناسب از کاربردهای این دستور است.

Syntax: host [options] hostname or server


نمایش اطلاعات آدرس IP مربوط به دامنه موردنظر

$ host www.example.com


نمایش اطلاعات دامنه مربوط به آدرس IP موردنظر

$ host 52.25.109.230


تعیین نوع پرس و جو با گزینه t-

$ host -t ns www.example.com


تعیین تعداد تکرار عمل دسترسی به آدرس در صورت ناموفق بودن اتصال با گزینه R-

$ host -R 3 www.example.com


نمایش لیست هاست های یک دامنه یا گزینه l-

$ host –l www.example.com

6. ip addr

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

نمایش لیست تمام رابط های شبکه و آدرس های ip  مربوط به آن

$ ip addr show


نمایش اطلاعات مربوط به یک رابط شبکه

$ ip addr show dev [interface]


نمایش لیست آدرس های IPv4

$ ip -4 addr


نمایش لیست آدرس های IPv6

$ ip -6 addr

7. dig 

dig مخفف Domain Information Groper است که برای بازیابی اطلاعات مربوط به DNS سرورها استفاده می شود. این دستور مخصوص مدیران شبکه است و در زمینه تایید و عیب یابی خطاهای DNS و جستجو یا به اصطلاح کوئری DNS به کار می رود.

Syntax: dig [server] [name] [type]


جستجوی دامنه

dig example.com $


جستجوی دامنه بدون نمایش کامنت ها

$ dig example.com +nocomments


ردیابی مسیر DNS

$ dig example.com +trace

8. curl 

curl به عنوان یک ابزار خط فرمان، مسئول انتقال داده ها به (یا از ) سرور است که این کار با استفاده از  یکی از پروتکل های (HTTP، FTP، IMAP، POP3 SCP، SFTP، SMTP، TFTP، TELNET، LDAP یا FILE) انجام می دهد. این دستور قادر به انتقال همزمان چند فایل به طور همزمان نیز است.

Syntax: curl [options] [URL]


نمایش محتوای URL در ترمینال

$ curl example.com


نمایش اطلاعات مربوط به پروسه انتقال مصل نرخ انتقال، مقدار داده های منتقل شده، زمان باقی مانده و غیره

$ curl -# -O ftp://ftp.example.com/file.zip


ذخیره فایل دانلود شده با یک نام مشخص

$ curl -o [file_name] [URL]


از سرگیری پروسه دانلود بعد از قطعی اتصال

$ curl -C - [URL]

سوالات متداول

برای مشاهده لیست کامل دستورات لینوکس، کافی است ترمینال خود را باز کنید و دستور compgen –c را اجرا کنید

درک دستورات پایه کار بسیار راحتی است و اگر سعی کنید علاوه بر مطالعه نحوه استفاده از آنها، در مواقع لازم متناسب با نیاز خود از این دستورات استفاده کنید، انجام کارهای ساده با این دستورات به یک عادت لذت بخش تبدیل خواهد شد.

کلام آخر

سیستم عامل لینوکس یکی از محبوب ترین سیستم عامل های موجود در جهان است که با ارائه ابزارها و دستورات متنوع، این امکان را به کاربر می دهد که اقدامات لازم را با سرعت و کیفیت بالاتری انجام دهد. کافی است متناسب با نیاز خود دستور لازم را اجرا کنید و به مرور زمان، با کسب تجربه و تخصص در این زمینه متوجه قدرت این دستورات شوید.

از اینکه تا انتهای مقاله با ما همراه بودید، از شما متشکریم. امیدواریم که مطالعه این مقاله برای شما مفید واقع شده باشد. در صورت داشتن هرگونه سوال، درخواست و نیاز به راهنمایی، می توانید با ثبت نظر خود، با ما وارد ارتباط شوید تا هر چه زودتر به شما پاسخ دهیم.

دیدگاهتان را بنویسید

آدرس ایمیل خود را را با خیال راحت وارد کنید، چون نمایش داده نخواهد شد