در این مقاله اصلا قصد ندارم وارد بحث های حرفه ای بشم. فقط میخوام بعضی از فرمان ها رو که به نظر خودم کاربردی هستن بیان کنم. فکر میکنم باید همین جا بگم که اینها صرفا نظر شخصی خود من هست.
در ضمن این آموزش خط فرمان یا ترمینال نیست. باید کمی با خط فرمان کار کرده باشید بعد این ها به دردتون میخورند.
میریم سر اصل مطلب…
۱ – grep
این دستور خیلی ساده و مفیدیه. این دستور میتونه از بین هزاران خط متن اونهایی که میخواید واستون جدا کنه و نمایش بده. معمولا به دو صورت استفاده میشه. اول اینکه یه دستور خروجیش زیاد هست و میخواهید فقط یه سری خطوط خاص رو ببینید. اینجوری استفاده میشه:
<comamand> | grep < search-text>
که command همون دستوری است که خروجی تولید میکند و search-text هم متنی است که تو خروجی دنبالش هستید.
یا برای اینکه بتونید توی یه فایل دنبال یه خط خاص بگردید میتونید ازش استفاده کنید.به این فرم:
<grep <pattern> <file
که pattern متنی است که دنبالش هستید و file هم اسم فایلی است که داخلش میخواهید جستجو کنید.
برای اطلاعات بیشتر هم میتونید از سوییچ —help یا راهنمای man grep استفاده کنید.
۲ – !!
این در حقیقت به دستور قبلی اشاره میکنه. یعنی هر جا اینو نوشتید یعنی دستور قبلی که اجرا کردید جایگزینش میشه.
مثلا یه دستور رو میزنید
gedit /etc/fstab
این دستور واسه اجرا(در حقیقت واسه ذخیره کردن) اجازه کاربر root میخواد برای همین هم باید با sudo ( یا su قبش زده باشید) اجرابشه. حالا اگه یادتون رفته باشه میزنید
!! sudo
و دستور قبلی با مجوز root اجرا میشه. اگه کمی کار کنید میبینید که خیلی میتونه مفید باشه.
۳ – wget
این دستور برای دانلود کردن به کار میره. در حقیقت این یه برنامه هست که تو اکثر توزیع های لینوکس موجوده. اگه یه موقع تو ترمینال گیر کردید و خواستین چیزی دانلود کنید ازش استفاده کنید.به این شکل استفاده میشه:
<wget <url
خیلی ساده بود نه؟ این دستور تنظیمات زیادی داره ولی چندتاش رو میگم:
اگه چند تا لینک دارید همه رو توی یه فایل ذخیره کنید جوری که تو هر خط یه لینک باشه بعد این دستور رو بزنید:
<wget -i <filename
که filename همون فایلی که لینک ها داخلشه. بعد خودش همه ی لینک ها رو دانلود میکنه.
اگه وسط یه دانلود اتفاقی پیش اومد و دانلود قطع شد یا خودتون قطعش کردید میتونید برید به همون پوشه ای که توش داشتید دانلود میکردید و دستور زیر رو بزنید تا ادامه ی دانلود رو انجام بده:
<wget -c <url
البته میتونید جای url از همون حالتی که بالا گفتم واسه چند تا لینک استفاده کنید. البته واسه دانلود تو خط فرمان ابزار های قوی تری هم مثل axel یا aria2 یا prozilla هستن.
طبق معمول واسه اطلاعات بیشتر از —help یا man wget استفاده کنید.
۴ – cat
این دستور محتویات یه فایل رو به خروجی استاندارد(صفحه نمایش) میفرسته یعنی یه فایل رو رو صفحه نمایش میده. این دستور بیشتر با دستور های دیگه به کار میره. مثلا واسه جستجو توی یه فایل میتونید از دستور زیر استفاده کنید:
<cat <filename> | grep <search-text
این دستور سوییچ های خوبی هم داره. مثلا سوییچ -n شماره خط ها رو هم چاپ میکنه یا -E انتهای هر خط رو با $ نشون میده.
در ضمن میتونید چند تا فایل رو بهش بدید که رو صفحه چاپ کنه. اگه میخواید از ورودی استاندارد(صفحه کلید یا متن روی صفحه) به عنوان فایل استفاده کنه از یه خط تیره ( – ) استفاده کنید. مثلا دستور
cat f – g
اول فایل f رو نشون میده بعد از ورودی استاندارد استفاده میکنه بعد هم g رو نشون میده.
۵- tail – head
این دو دستور شبیه به هم هستند واسه همین هم با هم میگمشون. دستور tail برای نشون دادن چند خط ( پیش فرض ۱۰ خط ) آخر یه متن به کار میره. میتونید فایل رو مستقیم بهش بدید مثل:
<tail <filename
یا میتونین ازش به این شکل استفاده کنید
command> | tail>
که این دستور ۱۰ خط آخر خروجی دستور command رو نشون میده. از سوییچ های این دستور میشه از -n برای مشخص کردن تعداد خط ها و -c برای اینکه بگید جای ۱۰ خط آخر یه تعداد بایت مشخص آخر رو نشون بده استفاده میشه. سوییچ آخر رو میشه با پسوند ها ی b , kB, K , MB و همین جوری استفاده کرد. مقدار دقیق این ها رو توی سوییچ —help میتونین ببینین. به عنوان مثال واسه چاپ ۱۰ کلیو بایت آخر یه فایل از فرمان زیر استفاده کنین:
<tail -c 10kB <filename
مثل همیشه اگه سوالی بود از —help یا man tail بپرسید!
۶ – dd
این دستور واسه نوشتن یه فایل روی یه دستگاه(device) به کار میره. منظور از دستگاه بیشتر همون هارددیسک و فلش هست.
بهترین کاری که این دستور واسه من میکنه اینه که میتونم باهاش فایل های image لینوکس که قابل بوت هستند رو روی فلش رایت کنم. واسه این کار میتونید از
<dd if=<imagefile> of=<device
که به جای imagefile مسیر فایل image و به جای device دستگاه رو قرار بدین.
واسه دیدن دستگاه مورد نظر و پیدا کردنش میتونید تو پوشه ی /dev دنبالش بگردین. معمولا روی سیستم های لینوکس هاردها اولشون sd داره بعد هم یه حرف که به ترتیب میره بالا. مثال میزنم. فرض کنید دو تا هارد دارید و یک فلش هم وصل کردید. هارد اول میشه /dev/sda هارد دوم میشه /dev/sdb فلشتون هم میشه /dev/sdc که برای رایت کردن روی فلش باید همین مسیر آخر رو به عنوان دستگاه بهش بدید. اگه خوب تو اون مسیر نگاه کنید میبینید یک سری دستگاه هستند که شبیه هارد هستند ولی آخرشون شماره هم داره. اون ها پارتیشن های هاردتون هستند. برای درست کردن فلش قابل بوت از همون مسیری که گفتم استفاده کنید و شماره نذارید.
این دستور میتونه واسه بک آپ گیری هم استفاده بشه. مثلا اگه به جای imagefile مسیر یه هارد رو بدید و به جای device مسیر یه فایل روحالا هارد رو بک آپ گرفتید. واسه برگردوندن هم میشه جای هارد و فایل رو با هم عوض کرد.
اگه هم اطلاعات بیشتر خواستید میدونید از کجا بپرسید!
۷ – md5sum – sha1sum – sha256sum
این دستور ها واسه ی پیدا کردن checksum ( اصطلاح فارسیش رو نمیدونم!) استفاده میشن. اگه دقت کرده باشید وقتی یه فایل بزرگ رو میخواید دانلود کنید کنارش یه متن بزرگ ترکیبی از حروف و اعداد مینوسند که بقلش نوشته md5 یا هرکدون از سه تای بالا. این ها واسه اینن که شما مطمئن بشید فایل رو درست دانلود کردید و خراب نیست. واسه این کار از دستور زیر استفاده کنید:
<md5sum <filename
که به جای filename مسیر فایلی که دانلود کردید رو بدید. یه متن مثل اونی که تو سایت بود نوشته میشه. اینو با اونی که تو سایت بود مقایسه کنید اگه یکی بودند یعنی فایلی که دانلود کردید دقیقا همون فایلیه که از سرور گرفتین. اگه هم یه سایت دارین که توش upload میکنید میتونید با این روش checksum رو حساب کنید و به کاربراتون اطمینان بدید که فایلشون درست دانلود میشه یا نه.
تو دستور بالا میتونید md5sum رو با sha1sum یا sha256sum عوض کنید که آخری از همه بهتره ولی زمان بیشتری میبره و متنی که تولید میکنه بزرگتره.
دیگه خودتون میدونین از کجا بیشتر اطلاعات بگیرین!
۹-uname
این دستور یه سری اطلاعات راجع به سیستم میده. مفید ترینشون معماری سیستم(۳۲بیتی یا ۶۴بیتی) و ورژن هسته ی لینوکستونه. برای دیدن همه ی اطلاعات از
uname -a
استفاده کنین.
۱۰ -more – less
این ها واسه دیدن متن های بلند استفاده میشن. فرض کنید میخواید کل خروجی دستور dmesg رو ببنید. این دستور خروجی زیادی تولید میکنه که همش توی صفحه نمایش جا نمیشه. واسه همین از more یا less استفاده میکنیم. به این صورت استفاده میشن:
command> | more>
به جای command دستور مورد نظر رو بنویسید. فرق more و less توی اینه که اولی ساده تره و توش فقط میتونید با enter به خطوط بعدی برید ولی less میتونه تو خط ها جابه جا بشه یا از کلید ها page up-down استفاده کنه. توی هرکدوم که باشید با زدن دکمه q میتونین خارج شید و با زدن h لیستی از دکمه های کاربردی رو ببینید.
باز هم man اینجا به کارتون میاد!
۱۰- man
این دستور دیگه باید آشنا باشه! اگه بلد نبودید با یه دستور کار کنید اول سوییچ —help (شاید هم -h ) رو امتحان کنید. اگه اطلاعات بیشتری خواستین از man استفاده کنید.
شما نظرتون چیه؟ اگه چیزی بود که به نظرتون از قلم افتاده بگین.
مقاله پر بار و مفیدی بود
ممنون بابت نگارشش
خواهش میکنم
خیلی خیلی عالی
مخصوصا اون Checksum و دستور dd.
اگه همینطور پیش برید کارتون از اینی هم که هست بهتر میشه :)
موفق باشید
خواهش میکنم قابلی نداشت
ما هم سعی خودمونو برای بهتر و بهتر شدن میکنیم
دستورات خوبی رو معرفی کرده بودید. فکر می کنم اگر این سری از پست ها رو ادامه بدید مخاطب های زیادی جذب کنه. موفق باشید
ممنونم..
من هم همین قصد رو دارم… به نظرم اگه کاربرا با خط فرمان آشنا بشن خیلی از مشکلات ساده رو میتونن خودشون حل کنن به جای اینکه تو اینترنت دنبالشون بگردن…
سلام
میشه یه کم بیشتر در مورد cat f – g توضیح بدی؟ من وقتی این کامند رو تست کردم فایل اول رو نشون میده و میره تو حالت ورودی استاندارد. به چه درد میخوره که بره تو حالت ورودی؟ چطور در ادامه فایل دوم رو ببینیم؟
ممنون
برای دیدن فایل دوم ترکیب ctrl+d رو فشار بدید. زیاد به درد نمیخوره برای مثال فقط گفتم. ولی شاید اگه خواستید توی یه اسکریپت دو تا فایل رو نشون بدید و نخواین که به ترتیب بیان این کارو میکنین و از کاربر میخواین که برای ادامه کلیدی که گفتم رو بزنه.
ولی در کل زیاد کاربرد نداره فقط یه مثال برای فهم بود.
در ضمن اون ترکیب کلید که گفتم به معنای همون EOF یا آخر خط هست.
ممنون
امیدوارم معرفی این قبیل دستورات ادامه پیدا کنه
کلا سایت خیلی خوبی دارید
تبریک میگم
سلام
چطور می شه خروجی یه دستور رو در یه فایل ذخیره کرد؟ ?:-)
من میخواستم ببینم چند ساعت با دستور wvdial به اینترنت وصل شدم اگه خروجی هاشو هر بار داخل فایلی ذخیره کنم و آخر اونها رو باهم جمع بزنم می فهمم٫ :nerd:
درود.
برای ذخیره یک خروجی در فایل txt معمولا از > استفاده میشه.
مثلا دستور ls که محتویات دایرکتوری رو لیست میکنه رو به این شکل :
ls > Txt file address
در فایل متنی ذخیره میکنن. اما در مورد wvdial دقیقا اطلاع ندارم.
ممنون از پاسختون
سلام
ممنونم این از مقاله خوب تون. من یه سوال در مورد دستور man داشتم و اونم اینکه بعد از اینکه این دستور رو اجرا میکنم، دیگه نمی دونم چطوری باید ازش خارج بشم و ترمینال رو به خود خط فرمان برگردونم!!؟
ممنون می شم اگر راهنمایی بفرمایید
با استفاده از کلیدهای Ctrl + Z میتونید به خط فرمان برگردید.
سلام دوباره
با عرض شرمندگی من سوال دومم رو یادم رفت بپرسم!
من وقتی که می خوام با دستور wget فایل هایی رو دانلود کنم که توی اسمشون پرانتز باز یا بسته دارن با error رو به رو می شم و نمی تونه دانلودشون کنه!!!
برای حل این مشکل چه باید کرد؟
بین میتونی با یه اسم دیگه فایل رو دانلود کنی یا نه … ؟
wget -O photo.jpg http://linuxreview.ir/my(photo!).jpg
با دستور بالا میتونی فایل مورد نظر رو با یک اسم دیگه دانلود و ذخیره کنی.