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

شروع موضوع توسط ibtkm ‏2012/1/5 در انجمن لینوکس

  1. ibtkm

    ibtkm کاربر خاک انجمن خورده

    ارسال‌ها:
    1,683
    امتیازات:
    +4,074 / -303
    نام مرکز سمپاد:
    علامه حلی
    شهر:
    تهران
    دانشگاه:
    دانشگاه تهران
    سلام دوستان.
    فکر کردم دیدم واقعا یک همچین تاپیکی لازم بود و چرا زودتر به فکر زدنش نیفتادم. هدف تاپیک اینه که دستورات کاربردی لینوکس رو معرفی کنیم. من اولویت شخصی خودم دستورات ترکیبی و جدید لینوکس هست. می دونید که یکی از ويژگی‌های بسیار خوب خط فرمان و دستورات لینوکس اینه که می شه با هم ترکیبشون کرد و باهاشون یک دستور جدید ساخت. مثلا خروجی یک دستور رو می دیم به عنوان ورودی به دستور بعدی.

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

    فرض کنید صاحب یک سرور لینوکسی هستید و می خواین ببینید که کدوم یوزر بوده که بیشتر از همه لاگین بوده!

    کد:
    ac -p | sort -nk 2 | awk '/total/{print x};{x=$1}'
    برای استفاده از دستور ac ابتدا باید بسته‌ی acct رو نصب کنید که حجم بسیار کمی داره و وقتی نمی گیره.

    فرض کنید من به عنوان یک خواننده می خوام با عملکرد awk آشنا شم. برای همین از یکی از بهترین دوستای لینوکسیم یعنی manpage استفاده می کنم :
    کد:
    man awk
     
    • لایک لایک x 3
  2. ibtkm

    ibtkm کاربر خاک انجمن خورده

    ارسال‌ها:
    1,683
    امتیازات:
    +4,074 / -303
    نام مرکز سمپاد:
    علامه حلی
    شهر:
    تهران
    دانشگاه:
    دانشگاه تهران
    پاسخ : دستورات کاربردی یا جالب لینوکس

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

    کد:
    history | awk '{print $2}' | sort | uniq -c | sort -rn | head
     
    • لایک لایک x 2
  3. ibtkm

    ibtkm کاربر خاک انجمن خورده

    ارسال‌ها:
    1,683
    امتیازات:
    +4,074 / -303
    نام مرکز سمپاد:
    علامه حلی
    شهر:
    تهران
    دانشگاه:
    دانشگاه تهران
    پاسخ : دستورات کاربردی یا جالب لینوکس

    امکان نداره یک کاربر براش پیش نیاد که در یکسری فایل، بخواد دنبال یک عبارتی بگرده. به عبارتی ما یک سری فایل داریم و دنبال عبارت foo هستیم. حالا باید چیکار کنیم؟ لینوکس یه آچار فرانسه داره، خیلیییییی خفنه. یعنی جدی می گما. خیلی کاربردیه. اسمش هست "grep" . بهتره خودتون یکبار manpageشو بخونید!
    حالا ما از این دوستمون استفاده می کنیم تا مشکلمون رو حل کنیم:

    صورت مساله: در داخل فایل‌های فولدر /home/pooya و ساب دایرکتوری‌های آن، دنبال فایل‌هایی هستم که دارای عبارت foo هستند. برای همین از این استفاده می کنم:
    کد:
    grep -r "foo" /home/pooya
     
    • لایک لایک x 4
  4. ibtkm

    ibtkm کاربر خاک انجمن خورده

    ارسال‌ها:
    1,683
    امتیازات:
    +4,074 / -303
    نام مرکز سمپاد:
    علامه حلی
    شهر:
    تهران
    دانشگاه:
    دانشگاه تهران
    پاسخ : دستورات کاربردی یا جالب لینوکس

    می خوایم داخل یک دایرکتوری و زیرشاخه‌های اون، فایل‌هایی که حجمشون از یک حدی بیشتر هست رو پیدا کنیم. چیکار باید کنیم؟
    چیزهایی که لازم داریم، یک دستور برای جست‌وجو کردن فایل‌هاست و یک دستور هم برای اینکه فقط اسم‌فایل و حجم اون رو از خروجی بکشیم بیرون!
    برای جست‌وجو کردنه از find استفاده می کنیم! به شدت کاربردیه! هم دنیا رو تضمین می کنه و هم آخرت رو.
    برای بیرون کشیدن اسم فایل و حجم از خروجی باز از یک ابزار خیلی خیلی قدرمتند لینوکس به نام awk استفاده می کنیم! awk خیلی کاربردیه. خیلی خیلی و کارش پردازش کردن متون هست!

    برای فهمیدن دستور زیر باید manpage این دو دستور رو بخونید. لازم نیست همشون رو بخونید. فقط قسمت مربوط به آرگومان استفاده شده رو بخونید تا متوجه بشید دقیقا داره چه اتفاقی میفته.
    حالا برای اینکار بدین صورت عمل می کنیم :
    کد:
    find /home/pooya -type f -size +10000k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }' 
    دستور بالا، در home من، دنبال فایل‌هایی با حجم بیشتر از ۱۰ مگ می گرده.
     
    • لایک لایک x 2
  5. ibtkm

    ibtkm کاربر خاک انجمن خورده

    ارسال‌ها:
    1,683
    امتیازات:
    +4,074 / -303
    نام مرکز سمپاد:
    علامه حلی
    شهر:
    تهران
    دانشگاه:
    دانشگاه تهران
    پاسخ : دستورات کاربردی یا جالب لینوکس

    فرض کنید بخوایم چند خط متوالی از یک فایل رو حذف کنیم. می‌تونیم از perl قهرمان کمک بگیریم:
    کد:
    perl -i -ne 'print if $. == 3..5' a.txt
    این دستور خطوط ۳ تا ۵ فایل a.txt رو حذف می‌کنه.
    امیدوارم کاربردی باشه براتون.
     
    • لایک لایک x 2
  6. ssrss

    ssrss کاربر نیمه فعال

    ارسال‌ها:
    8
    امتیازات:
    +8 / -0
    نام مرکز سمپاد:
    شهید قدوسی
    شهر:
    قم
    پاسخ : دستورات کاربردی یا جالب لینوکس

    با تشکر از شما
    من اینا رو کاربردی ترین دستورات میدونم:
    این یکی مسیر فایلی که توش هستیم رو نشون میده
    کد:
    pwd
    این یکی هر چی توی پوشه ی جاری هست رو نشون میده
    کد:
    ls
    این دایرکتوریتون(مسیرتون) رو تغییر میده مثلا میریم بهDesktop که توی root هست
    دقت داشته باشین که لینوکس به حروف کوچک و بزرگ حساسه(حرف اول Desktop)
    کد:
    cd /root/Desktop
    این مثل تسک منیجر ویندوز براتون عمل میکنه
    کد:
    top
    این رو هم بگم که برای آوردن ترمینال ctrl+alt+t رو بزنین :D
    برادر پویا خواهشا ادامه بدین تا ما هم یه چیزی یاد بگیریم
     
    • لایک لایک x 2
  7. JB

    JB کاربر خاک انجمن خورده

    ارسال‌ها:
    1,447
    امتیازات:
    +4,958 / -256
    نام مرکز سمپاد:
    هاشمی‌نژاد ۲ مشهد
    دانشگاه:
    شهید بهشتی تهران
    رشته دانشگاه:
    ریاضی و علوم کامپیوتر
    پاسخ : دستورات کاربردی یا جالب لینوکس

    این دستور اطلاعات دقیق سخت افزار هاتون رو بر میگردونه (البته نیاز به دسترسی روت هست):
    کد:
    lshw
    
     
    • لایک لایک x 3
  8. Ehem_Ehem

    Ehem_Ehem Saleh

    ارسال‌ها:
    1,864
    امتیازات:
    +11,150 / -790
    نام مرکز سمپاد:
    شهیدبهشتی
    شهر:
    زنجان
    سال فارغ التحصیلی:
    1393
    دانشگاه:
    دانشکده فنّی دانشگاه تهران
    رشته دانشگاه:
    مهندسی معدن
    تلگرام:
    اینستاگرام:
    پاسخ : دستورات کاربردی یا جالب لینوکس

    فرض کنید یک تعداد زیادی فایل ( نه directory ) رو میخواید پاک کنید. چه میکنید؟
    اول میام اسم همشونو میریزیم تو یه فایل به اسم list
    کد:
    ls > list
    بعد باید لیست رو خیلی ساده بدیم به rm
    کد:
    rm -f $(<list)
     
    • لایک لایک x 1
  9. leconart

    leconart کاربر جدید

    ارسال‌ها:
    3
    امتیازات:
    +2 / -0
    نام مرکز سمپاد:
    هاشمی نژاد
    شهر:
    مشهد
    پاسخ : دستورات کاربردی یا جالب لینوکس

    میتونید از backtick، wildcard ها استفاده کنید! استفاده از فایل کارو زمان بر و سخت میکنه.
    کد:
    rm /home/mesal/Pictures/*.jpg
    کد:
    rm `ls`
    که البته استفاده از ls یه جوریه اینجا! بهتره وایلدکارد استفاده شه
     
    • لایک لایک x 1