بایگانی شمسی دی 1398

دستور Dig در لینوکس

دستور dig، معمولاً توسط مدیران سیستم یا شبکه در لینوکس استفاده می‌شود. کلمه dig، که مخفف عبارت ‘Domain Information Groper’ است، هدف ارسال کوئری به DNS یک سرور معین را دارد. به کمک این دستور، شما می‌توانید جواب کوئری‌های خود را از سرورهای دامنه دریافت نمایید.

در این آموزش نحوه عملکرد این دستور و خروجی آن شرح داده می‌شود.

ادامه‌ی مطلب

خالی کردن فایل گزارش در لینوکس

همان‌طور که می‌دانید محتوای فایل‌های گزارش دائماً در حال افزایش است و این منجر به بزرگ شدن فایل گزارش می‌شود. در این آموزش، روش‌های مختلف خالی کردن یک فایل (حذف محتوای آن بدون حذف خود فایل) در لینوکس آموزش داده می‌شود.

بدیهی‌ترین روشی که به ذهن می‌خورد، این است که آن فایل بزرگ را پاک کرده و سپس یک فایل جدید ایجاد نماییم. اما این ایده خوبی نیست؛ چرا که، فایل جدید از نظر برچسب زمان (atime ,mtime, …) و مجوزها با فایل قبل متفاوت خواهد بود.

در این مقاله، مشاهده خواهید کرد که به‌راحتی می‌توان به‌جای ایجاد یک فایل خالی جدید، محتوای آن را حذف کرد.

ادامه‌ی مطلب

دستور grep در لینوکس

ابزار grep که یکی از اساسی ترین ابزارهای یونیکس است، به خانواده ابزارهای egrep و fgrep تعلق دارد. این ابزارها، به منظور انجام عملیات جستجو در فایل‌ها و متن‌ها طراحی شده اند. بدین صورت که کاربر با تعیین معیارهای خاص جستجو از طریق دستور grep می‌تواند، فایل‌ها و محتوای آن‌ها را برای دستیابی به اطلاعات مفید جستجو نماید.

در واقع کلمه GREP مخفف عبارت Global Regular Expression Print است. اما در جواب اینکه این دستور "grep" از کجا منشا گرفته است، باید گفت grep اساساً از یک دستور خاص برای ویرایشگر متن بسیار ساده و کاربردی یونیکس به نام ed مشتق شده است. دستور ed به صورت زیر عمل می‌نماید:

g/re/p
 

هدف این دستور کاملاً شبیه چیزی است که ما در جستجوی grep بدست می‌آوریم. این دستور، تمام خطوط مطابق با یک الگوی متنی مشخص در یک فایل را نمایش می‌دهد.

در این مقاله، نصب ابزار grep را توضیح داده و مثال‌هایی را از آن ارائه خواهیم کرد. از طریق این مثال می‌توانید یاد بگیرید که چگونه و در کدام سناریو می‌توانید از آن استفاده نمایید.

دستورات و رویه‌های ذکر شده در این مقاله، برروی سیستم Ubuntu 18.04 LTS اجرا شده است.

 

این مطلب نیز ممکن است برای شما مفید باشد: دستور Ls در لینوکس (لیست کردن فایل ها و دایرکتوری ها)

 

نصب grep

اگرچه ابزار grep به طور پیش فرض در اکثر سیستم‌های لینوکس ارائه می‌شود، بااین‌حال اگر آن را در سیستم خود ندارید، برای نصب آن به صورت زیر عمل کنید:

ترمینال اوبونتو خود را از طریق Dash یا میانبر Ctrl+Alt+T باز کنید. سپس، دستور زیر را به عنوان root وارد نموده و ابزار grep را از طریق apt-get نصب کنید:

$ sudo apt-get install grep

کلید Y را هنگام نمایش درخواست برای وارد کردن y/n کلیک کنید. پس از آن، ابزار grep بر روی سیستم شما نصب می‌شود.

شما می‌توانید با بررسی نسخه grep از طریق دستور زیر، نصب را تأیید کنید:

$ grep --version

استفاده از دستور grep با مثال

در این بخش، دستور grep را با ارائه برخی از سناریوهای کاربردی بیشتر شرح می‌دهیم. در اینجا چند مثال ارائه شده است:

 

 

 

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

 

جستجوی فایل‌ها

اگر می‌خواهید نام فایلی را جستجو نمایید که حاوی یک کلید واژه خاص باشد، می‌توانید لیست فایل‌های خود را از طریق دستور grep به صورت زیر فیلتر کنید:

ساختار:

$ ls -l | grep -i "searchword"

مثال‌ها:

$ ls -l | grep -i sample

در این دستور، کلیه فایل‌های موجود در دایرکتوری کنونی با نام حاوی کلمه "sample" نمایش داده می‌شود.

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

شما می‌توانید از طریق دستور grep، جملاتی از یک فایل را که حاوی رشته خاصی است نیز بدست آورید.

ساختار:

grep "string" filename

مثال:

$ grep "sample file" sampleFile.txt

فایل استفاده شده در دستور بالا با نام sampleFile.txt، حاوی جمله ای با رشته “sample file” است که می‌توانید آن را در خروجی فوق مشاهده کنید. كليد واژه موجود در متن با یک فرمت رنگی در نتايج جستجو ظاهر مي شوند.

 

این مطلب نیز ممکن است برای شما مفید باشد: چگونه می‌توان space را در نام فایل‌های لینوکس را خواند؟

 

جستجوی رشته در بیشتر از یک فایل

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

ساختار 1:

$ grep "string" filenameKeyword*

ساختار 2:

$ grep "string" *.extension

مثال1:

$ grep "sample file" sample*

در این دستور، تمام جملات حاوی رشته “sample file”، در تمام فایل‌هایی با نام حاوی کلمه کلیدی “sample” نمایش داده می‌شود.

مثال 2:

$ grep "sample file" *.txt

این دستور، تمام جملات حاوی رشته “sample file” را در کلیه فایل‌ها با پسوند txt. پیدا می‌کند.

جستجو برای یک رشته در یک فایل بدون در نظر گرفتن نوع حروف رشته

اگر دقت کرده باشید در مثال‌های بالا، رشته مورد نظر دقیقاً به همان صورت بود که در فایل‌های متنی وجود داشت. این در حالی است که اگر دستور زیر را وارد کنیم، نتیجه جستجو grep صفر خواهد بود؛ زیرا در متن موجود در فایل کلمه Sample (با حرف شروع کننده ی بزرگ) وجود ندارد.

$ grep "Sample file" *.txt

برای اینکه به دستور grep بگوییم که نوع حروف رشته جستجو شده را نادیده بگیرد، از گزینه i- در دستور grep استفاده می‌نماییم. در این صورت، نتایج جستجو تنها به خود رشته بستگی خواهد داشت.

ساختار:

$ grep -i "string" filename

مثال:

$ grep -i "Sample file" *.txt

این دستور تمام جملات حاوی رشته “Sample file” را (بدون در نظر گرفتن کوچک یا بزرگ بودن حروف آن‌ها) در کلیه فایل‌ها با پسوند txt. بدست می‌آورد.

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

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

ساختار:

$ grep "startingKeyword.*endingKeyword" filename

مثال:

$ grep "starting.*.ending" sampleFile.txt

این دستور، جملات حاوی شروع کننده کلمه کلیدی اشاره شده و کلمه پایان دهنده مشخص شده را از فایلی که در دستور grep مشخص شده است، چاپ می‌کند.

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

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

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

$ grep -A  "string" filename

مثال:

$ grep -A 3 -i "samplestring" sampleFile.txt

چنانچه فایل مورد نظر برای جستجو به صورت زیر باشد:

در این صورت خروجی به صورت زیر نمایش داده می‌شود:

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

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

$ grep -B  "string" filename

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

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

$ grep -C  "string" filename

 

 

منبع:

vitux

 

ادامه‌ی مطلب

نحوه اجرای فایل‌های bin. و run. در اوبونتو

قبل از شرح نحوه اجرای فایل‌های bin. و run. در اوبونتو، اجازه دهید ابتدا آن‌ها را معرفی نماییم

Bin File: یک فایل باینری یا BIN در اوبونتو، به بسته‌های نصبی اطلاق می‌شود که اکثراً برای نصب نرم افزار روی سیستم شما بصورت خود-استخراج قابل اجرا هستند. شما می‌توانید اکثر بسته‌های نرم افزاری را از طریق مدیر نرم افزار اوبونتو، از بسته‌های deb. و بسته‌های tar.xz. نصب کنید. با این وجود، ممکن است نرم افزاری وجود داشته باشد که در قالب این فرمت‌ها نباشد. چراکه، این‌ها اغلب شامل نرم افزارهای جدیدتر و نسخه‌های جدیدتر نرم افزارها (اغلب نسخه ی بتا) هستند. بسته‌های bin به راحتی با استفاده از خط فرمان اوبونتو اجرا می‌شوند.

Run File: این نوع فایل‌ها نیز فایل‌های اجرایی هستند که معمولاً برای نصب برنامه‌های لینوکی استفاده می‌شوند. فایل‌های ran حاوی داده‌های برنامه و دستورالعمل‌های مربوط به ساخت فایل نصب آن برنامه می‌باشد؛ که اغلب برای توزیع درایورهای دستگاه و برنامه‌های کاربردی نرم افزار استفاده می‌شود. بسته‌های run با استفاده از خط فرمان اوبونتو به راحتی اجرا می‌شوند.

در این مقاله، نحوه اجرای فایل‌ها با پسوندهای run. و bin. را در اوبونتو شرح می‌دهیم.

ادامه‌ی مطلب

افزودن گزینه "New Document" به منوی کلیک راست در اوبونتو

چنانچه سیستم عامل لینوکس شما ابونتو باشد، قطعاً تابه‌حال متوجه شده‌اید که هیچ گزینه‌ای در منوی کلیک راست Nautilus (فایل منیجر اوبونتو)، برای ایجاد یک فایل متنی خالی وجود ندارد. اگرچه می‌توان برای ایجاد فایل متنی از خط فرمان نیز استفاده کرد؛ تا به سرعت یک فایل جدید ایجاد شود و یا اینکه حتی از ویرایشگر متن، برای ایجاد یک فایل جدید استفاده نمود؛ ولیکن، برای افرادی که طرفدار استفاده از حالت گرافیکی سیستم عامل هستند، این چیزی نیست که آن‌ها می‌خواهند. چراکه چنین افرادی، از روی عادت همواره برای ایجاد فایل جدید، به طور ناخودآگاه کلیک راست را اجرا کرده و انتظار دارند؛ تنها با استفاده از یک یا دوبار کلیک کردن، بتوانند یک فایل متنی جدید ایجاد نمایند.

ادامه‌ی مطلب

اضافه کردن cron job در سیستم عامل لینوکس/یونیکس

Cron که اختصار کلمات Command Run On است، یکی از امکانات نرم افزاری کنترل پنل‌ها می‌باشد. Cron Job در سیستم‌های لینوکسی، ابزاری است که وظیفه‌ی اجرای یک عملیات خاص (یک دستور، یک برنامه‌ی خاصی و یا یک اسکریپت)، را در یک زمان‌بندی مشخص به صورت کاملا اتوماتیک بر عهده دارد؛ مثلا پاک کردن پوشه /tmp هر یک روز یکبار

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

اما، اکنون این سوال بوجود می‌آید که cron jobها را چگونه می‌توان در سیستم عامل لینوکس/یونیکس اضافه نمود؟

ادامه‌ی مطلب

مخفی کردن فایل ها و پوشه ها در اوبونتو

اگر از یک سیستم Ubuntu، بصورت مشترک با دیگر افراد استفاده می‌کنید، احتمالاً حریم خصوصی برخی از فایل‌ها و پوشه‌های داخل این سیستم، برای شما حائز اهمیت است. یکی از راه‌های خصوصی‌سازی فایل‌ها/پوشه‌ها، مخفی کردن آن‌هاست. محتوای پنهان شده، به طور پیش فرض در File Manager یا Terminal (خط فرمان) شما ذکر نمی‌شود. در این‌جا، ترفند به کار گرفته شده برای پنهان کردن فایل‌های شما، اضافه کردن یک نقطه (.) در ابتدای نام فایل است. همه فایل‌ها  با پیشوند نقطه، توسط سیستم‌عامل لینوکس پنهان در نظر گرفته شده و در نمای استاندارد ذکر نخواهند شد. در این مقاله، توضیح خواهیم داد که چگونه می‌توانید، یک فایل مخفی را از طریق خط فرمان و یا رابط کاربری ابونتو مخفی کنید.

دستورات ذکر شده در این مقاله روی یک سیستم Ubuntu 18.04 LTS اجرا شده است؛ اما روی هر سیستم‌عامل گنو/لینوکس دیگری نیز قابل اجرا است.

ادامه‌ی مطلب

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

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

همانطور که می‌دانید، کامنت کردن خطوط منجر به غیرفعال شدن آن‌ها می‌شود. بنابراین، می‌توان از این ویژگی به منظور اضافه کردن خطوطی برای توصیف تغییرات اعمال شده برروی فایل و درک آن‌ها در مطالعات آینده استفاده نمود.

هر زمان که می‌خواهید یک خط را کامنت کنید، رایج ترین راه استفاده از کاراکتر # قبل از خطوط مورد نظر است. در این صورت، هر آنچه که بعد از # بیاید تا انتهای آن خط اجرا نخواهد شد.

ادامه‌ی مطلب

دستور Ls در لینوکس (لیست کردن فایل ها و دایرکتوری ها)

دستور ls، یکی از دستورات اساسی است که هر کاربر لینوکس باید بداند. برای لیست کردن اطلاعات مربوط به فایل‌ها و دایرکتوری‌های سیستم، از این دستور استفاده می‌شود. ابزار ls، بخشی از بسته ابزارهای هسته GNU است؛ که در تمام توزیع‌های لینوکس نصب شده است.

در این آموزش، نحوه استفاده از دستور ls را از طریق مثال‌های عملی و توضیحات مفصل در مورد رایج ترین گزینه‌های ls  به شما نشان خواهیم داد.

 

نحوه استفاده از دستور ls

 

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

 

ساختار دستور ls به صورت زیر است:

ls [OPTIONS] [FILES]

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

$ ls

در خروجی، فایل‌ها به صورت زیر به ترتیب حروف الفبا نشان داده می‌شوند:

cache  db  empty  games  lib  local  lock  log  mail  opt  run  spool  tmp

برای لیست کردن فایل‌های یک دایرکتوری خاص، باید مسیر آن دایرکتوری به صورت آرگمان به دستور ls داده شود. به عنوان مثال، برای لیست کردن محتوای دایرکتوری etc/، باید دستور زیر را تایپ کنید:

$ ls /etc

همچنین می‌توانید چندین دایرکتوری و فایل را که با فاصله از همدیگر جدا شده اند، به دستور ls ارسال کنید:

$ ls /etc /var /etc/passwd

اگر کاربری که شما با آن وارد سیستم شده اید، مجوز خواندن دایرکتوری را نداشته باشد؛ در این صورت با پیامی رو به رو می‌شوید که در آن به شما می‌گوید، نمی‌تواند دایرکتوری را باز کند:

$ ls /root

درنتیجه، خروجی به صورت زیر خواهد بود:

ls: cannot open directory '/root': Permission denied

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

 

این مطلب نیز ممکن است برای شما مفید باشد: دستور rm در لینوکس

 

فرمت لیست فایل‌ها با جزئیات

خروجی پیش فرض دستور ls، تنها نام فایل‌ها و دایرکتوری‌ها را نشان می‌دهد، که خیلی کاربردی نیست.

گزینه ی l- (حروف کوچک L) باعث می‌شود ls فایل‌ها را با فرمت لیست طولانی چاپ کرده و جزئیات را نیز نمایش دهد.

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

  • نوع فایل
  • مجوزهای فایل
  • تعداد پیوندهای سخت به فایل
  • مالک فایل
  • گروه فایل
  • حجم فایل
  • تاریخ و زمان
  • نام فایل

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

$ ls -l /etc/hosts

این دستور خروجی زیر را نماش داده می شود:

-rw-r--r-- 1 root root 337 Oct  4 11:31 /etc/hosts

در این خروجی:

کاراکتر اول نوع فایل را نشان می‌دهد. در مثال ما، اولین کاراکتر - است؛ که نشانگر یک فایل معمولی است. مقادیر انواع دیگر فایل‌ها به شرح زیر است:

  • - : فایل معمولی
  • b : فایل ویژه‌ی مسدود
  • c : فایل ویژه‌ی کاراکتر
  • d : دایرکتوری
  • l : پیوند سمبولیک
  • n : فایل شبکه
  • p : فایل First In First Out
  • s : سوکت

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

شما می‌توانید مجوزهای فایل را با دستور chmod تغییر دهید. کاراکتر مجوز می‌تواند مقادیر زیر را بگیرد:

  • r : مجوز خواندن فایل
  • w : مجوز نوشتن در فایل
  • x : مجوز اجرای فایل
  • s : اجرای فایل با مجوز مالک (stgid bit)
  • t : مجوز تغییر تنها برای مالک (sticky bit)

در مثال ما rw-r - r-- به این معنی است، که کاربر می‌تواند فایل را بخواند و بنویسد و گروه و دیگران فقط می‌توانند فایل را بخوانند.

عدد 1 پس از کاراکترهای مجوز، تعداد پیوندهای سخت به این فایل را نشان می‌دهد.

دو قسمت بعدی root root صاحب و گروه فایل را نشان می‌دهد و به دنبال آن اندازه فایل (337) در واحد بایت مشخص می‌شود. اگر می‌خواهید اندازه‌ها را با فرمت قابل درک چاپ کنید، از گزینه h- استفاده نمایید. می‌توانید با استفاده از دستور chown، مالک فایل را تغییر دهید.

Oct 4 11:31: تاریخ و ساعت آخرین اصلاح فایل است.

ستون آخر نام فایل است.

 

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

 

نمایش فایل‌های مخفی

به طور پیش فرض، دستور ls فایل‌های مخفی را نشان نمی‌دهد. در لینوکس، فایل مخفی، فایلی است که با یک نقطه (.) شروع می‌شود.
برای نمایش همه فایل‌ها؛ از جمله فایل‌های مخفی از گزینه a- استفاده کنید:

$ ls -la ~/

 در این صورت خروجی به صورت زیر خواهد بود:

drwxr-x--- 10 linuxize  linuxize  4096 Feb 12 16:28 .
drwxr-xr-x 18 linuxize  linuxize  4096 Dec 26 09:21 ..
-rw-------  1 linuxize  linuxize  1630 Nov 18  2017 .bash_history
drwxr-xr-x  2 linuxize  linuxize  4096 Jul 20  2018  bin
drwxr-xr-x  2 linuxize  linuxize  4096 Jul 20  2018  Desktop
drwxr-xr-x  4 linuxize  linuxize  4096 Dec 12  2017 .npm
drwx------  2 linuxize  linuxize  4096 Mar  4  2018 .ssh

مرتب سازی خروجی

همانطور که قبلاً نیز بیان شد؛ به طور پیش فرض دستور ls، فایل‌ها را به ترتیب حروف الفبا لیست می‌کند.

گزینه sort-- به شما امکان می‌دهد که خروجی را با توجه به پسوند، اندازه، زمان و نسخه مرتب کنید:

  • sort=extension-- (یا -X) : مرتب سازی بر اساس حروف الفبا با پسوند.
  • sort=size-- (یا -S) : مرتب سازی بر اساس اندازه فایل.
  • sort=time-- (یا -t) : مرتب سازی بر اساس زمان اصلاح.
  • sort=version-- (یا -v) : مرتب سازی عادی براساس شماره‌های ورژن.

اگر می‌خواهید نتایج را به صورت معکوس مرتب کنید، از گزینه r- استفاده نمایید.

به عنوان مثال، برای مرتب سازی فایل‌ها در دایرکتوری var/ براساس زمان اصلاح و به صورت معکوس از دستور زیر استفاده کنید:

$ ls -ltr /var

لازم به ذکر است که، دستور ls کل فضای اشغال شده توسط محتوای دایرکتوری را نشان نمی‌دهد. برای به دست آوردن اندازه ی دایرکتوری، از دستور du استفاده نمایید.

لیست‌ کردن دایرکتوری‌های داخل یک دایرکتوری (زیردایرکتوری‌ها) به صورت بازگشتی

استفاده از گزینه R- به همراه دستور ls، محتویات زیردایرکتوری‌ها را به صورت بازگشتی نمایش می‌دهد:

$ ls -R

 

 

منبع:

linuxize

 

ادامه‌ی مطلب

دستورmkdir ایجاد دایرکتوری از طریق خط فرمان لینوکس

در لینوکس، به منظور ایجاد دایرکتوری و زیردایرکتوری‌ها می‌توان از دستور 'mkdir' استفاده کرد. دستور Mkdir مخفف Make directory (ایجاد دایرکتوری) می‌باشد.

در این مقاله، ما نحوه‌ی کار با 5 دستور کاربردی mkdir برای ایجاد دایرکتوری در سیستم لینوکس را آموزش خواهیم داد.

ادامه‌ی مطلب