خطاهای پیش آمده در لینوکس و راه حل آنها

تجریبات بر طرف سازی خطاهای لینوکس

خطاهای پیش آمده در لینوکس و راه حل آنها

تجریبات بر طرف سازی خطاهای لینوکس

یک اسکریپت ساده برای ایجاد یک صف در اسکریپت لینوکس

بسیار ساده، به تعداد هسته های پردازشی صف درست میشود.


NumberOfCPUs=`(cat /proc/cpuinfo |grep processor|tail -n 1 |awk '{print $3}')`

for ARG in  {000..099}; do

    echo $ARG

    sleep 5&

    NPROC=$(($NPROC+1))

    if [ "$NPROC" -ge $NumberOfCPUs ]; then

        wait

        NPROC=0

        echo '******************************'

    fi

done


یک اسکریپت برای تغییر نام دسته ای فایلها، به نام دیگر

این خط script نام فایلهایی رو که قبلا دانلود کرده بودم رو به یک نام کوچکتر تغییر میده

for string in `(ls hq*)` ;do mv $string "$(echo $string|awk -F 'hq-' '{print $2}')"; done


ls hq* 

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

echo $string|awk -F 'hq-' '{print $2}

این خط نام فایل رو بر اساس واژه 'hq-' برش میزنه و قسمت دومش رو بر میگردونه


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

چگونه در bash یک لیست بسازیم و روی اعضای آن عملیات انجام دهیم

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


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


حالت اول، در این وضعیت هر خط در لیست به عنوان یک عضو در نظر گرفته می شود

اصطلاحا به آن with whitesapce گفته میشود.


listOfNames="RA
RB
R C
RD"

# To allow for other whitespace in the string:
# 1. add double quotes around the list variable, or
# 2. see the IFS note (under 'Side Notes')

for databaseName in "$listOfNames"   #  <-- Note: Added "" quotes.
do
  echo "$databaseName"  # (i.e. do action / processing of $databaseName here...)
done

# Outputs
# RA
# RB
# R C
# RD


without whitespace در اینحالت مشاهده میکنید که خط سوم لیست به صورت دو عضو سوا در نظر گرفته شده است.


listOfNames="RA
RB
R C
RD"

for databaseName in $listOfNames  # Note: No quotes
do
  echo "$databaseName"  # (i.e. do action / processing of $databaseName here...)
done

# Outputs
# RA
# RB
# R
# C
# RD




اسکریپت لیست و اعمال دستورات در خصوص فولدرها و فایلها

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


for d in *; do
 echo $d
done


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


for d in */ ; do
    echo "$d"
done


نکته اساسی: می توان به جای دستور echo سایر دستورات را به کار برد