شيل اسڪرپٽ لڳائڻ سان سي ايس ايڊمن ٽرمينل ڪيئن حاصل ڪجي

El شوبل اسڪرپٽ، اهو حوالو ٿو ڏئي پيچيده حڪمن تي عمل بابت جي اين يو / لينڪس ٽرمينل (ڪنسول) ، اسان جي اندر معمولي ۽ مهم جي سرگرمين کي پاڻمرادو ڪرڻ لاءِ ڏا usefulو مفيد آهي جي اين يو / لينڪس آپريٽنگ سسٽم ، جيڪا اسان کي بهتر ڪرڻ جي اجازت ڏئي ٿي وسيلا ۽ وقت.

چونڊ_007

تنهن ڪري ، ان جو ٽرمينل کان استعمال اسان کي اسڪرپٽ ذريعي دستي طور تي يا خودڪار طريقي سان پيچيده ڪمانڊ جي حڪمن تي عمل ڪرڻ جي اجازت ڏي ٿو يا آپريٽنگ سسٽم اندر پاڻمرادو لوڊ ٿيل فائلن يا شيڊول ڪيل ڪمن ۾ طئه ٿيل وقتن تي. GNU / Linux. ۽ لاءِ وچولو استعمال ڪندڙ ، اعليٰ يا ايس ايڊ ايڊمن el شيڊول (پاڻمرادو) محفوظ ڪرڻ لاءِ هڪ ميزبان (پي سي / سرور) تي ڪم ، خبرداري ۽ / يا اطلاع ڪلاڪ / مزدوري هٿرادو عملدرآمد يا ذاتي طور تي ، اهو هڪ اعليٰ سطحي پيشه ورانه طور تي توهان جي ڪم جي سٺي ڪارڪردگي لاءِ ڪجهه بنيادي ۽ ضروري آهي.

اڳيون ، اسان ظاهر ڪنداسين ته ڪيئن ڊيٽا (قيمت / پيٽرولر) اڳوڻي هڪ حڪم سان متغير ۾ محفوظ ٿيل بش شيل يا مطابقت رکندڙ ، اهو عملي ۽ سادي طريقي سان توهان جي GNU / linux آپريٽنگ سسٽم جي ٽرمينل ۾ ڏيکاري سگهجي ٿو. ٽرمينل پرامپ کي ترتيب ڏيڻ سان گڏ.

پهريون قدم: پنهنجي صارف جي .bashrc کي تبديل ڪريو

پنهنجي پسند جي ايڊيٽر سان (وي ، نانو ، وغيره) ايڊٽ ڪيو .بشر فائل توھان جو صارف جيڪو گھر جي اندر اندر رھڻ گھرجي ، اھو ئي آھي ، مثال طور: "/ گهر / من_هسر".

ھيٺين لائنن مان ھر ھڪ جو مواد شامل ڪريو ۽ اھي سڀ اضافي جيڪي توھان صارف کي ٽرمينل تي عمل ڪرڻ ۾ ڏيکارڻ کي آسان سمجھو.

sleep 3

clear

########################### PARÁMETROS DE MONITOREO ###########################

NOMBRE_SISTEMA=$(cat /etc/os-release | grep NAME | grep -v "VERSION" | sed -n '2p' | cut -f2 -d\")
VERSION_SISTEMA=$(cat /etc/os-release | grep VERSION= | sed -n '1p' | sed 's/VERSION=//' | sed 's/"//g')

FABRICANTE_CPU=$(grep "vendor_id" /proc/cpuinfo | sed q | awk '{print $3}')
MODELO_CPU=$(grep "model name" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')
NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}' | echo `expr $NUM_CPU + 1`)
NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}')
CACHE_CPU=$(grep "cache size" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')

clear

printf %80s |tr " " "="
echo ""
echo "      ADVERTENCIA - USTED HA INICIADO SESIÓN EN EL EQUIPO SERVIDOR DE LA      "
echo "                             EMPRESA INSTITUCIÓN XYZ                                "
echo "       RECUERDE TENER EXTREMO CUIDADO CON CUALQUIER CAMBIO A REALIZAR        "
printf %80s |tr " " "="
echo ""
printf %80s |tr " " "="
echo ""
echo "                         ESTE EQUIPO TIENE INSTALADO                         "
echo "                                                                             "
echo "TIPO DE S.O.: <"`uname -o`">                                                 "
echo "NOMBRE / VERSIÓN DEL S.O.: &lt;"$NOMBRE_SISTEMA"&gt; / &lt;"$VERSION_SISTEMA"&gt;        "
echo "KERNEL / ARQUITECTURA: <"`uname -r`"> / <"`uname -m`">                       "
echo "INFO DEL CPU: ("$FABRICANTE_CPU") / ("$MODELO_CPU") / ("$NUM_CPU") / ("$NUCLEO_CPU") / ("$CACHE_CPU")"
printf %80s |tr " " "="
echo ""
echo ""

PS1="\[\e[33;1m\]┌─( \[\e[34;1m\]\u@\h\[\e[37;1m\] ) * * * * \d - \t * * * * { \[\e[31;1m\]\w\[\e[33;1m\] }\n└──┤ \[\e[32m\]# "

`

ٻيو مرحلو: روٽ کي تبديل ڪريو. bashrc

ٻيهر ايڊيٽر سان اڳ ۾ ئي ايڊٽ ٿيل استعمال ٿيل آھي .بشر فائل ڊيل سپرسر روٽ جيڪو انهي جي رستي / روٽ جي اندر واقع هجڻ گهرجي.

ھيٺين لائنن مان ھر ھڪ جو مواد شامل ڪريو ۽ اھي سڀ اضافي جيڪي توھان صارف کي ٽرمينل تي عمل ڪرڻ ۾ ڏيکارڻ کي آسان سمجھو.

########################### PARÁMETROS DE MONITOREO ###########################

alias cc='clear'

PROXY=$(route -n | sed -n '3p' | awk '{print $2}')

IP_SERVIDOR_DNS=$(cat /etc/resolv.conf | sed '1 d' | grep nameserver | sed -n '1p' | awk '{print $2}')
DOMINIO=$(cat /etc/resolv.conf | sed '1 d' | grep search | sed -n '1p' | awk '{print $2}')

DATA_USUARIO1=$(du -sh /home/ | sort -r | awk '{print $1}')
DATA_ROOT=$(du -sh /root | awk '{print $1}')
DATA_VAR=$(du -sh /var | awk '{print $1}')

MEM_TOTAL=$(free -h | sed '1 d' | grep Mem: | awk '{print $2}')
MEM_USADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $3}')
MEM_LIBRE=$(free -h | sed '1 d' | grep Mem: | awk '{print $4}')
MEM_COMPARTIDA=$(free -h | sed '1 d' | grep Mem: | awk '{print $5}')
MEM_ALMACENADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $6}')
MEM_CACHEADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $7}')

PART1_TOTAL=$(df -h | sed '1 d' | grep disk | awk '{print $2}')
PART1_USADO=$(df -h | sed '1 d' | grep disk | awk '{print $3}')
PART1_DISPONIBLE=$(df -h | sed '1 d' | grep disk | awk '{print $4}')
PART1_PORCENTAJE=$(df -h | sed '1 d' | grep disk | awk '{print $5}')
PART1_PUNTOMONTAJE=$(df -h | sed '1 d' | grep disk | awk '{print $6}')

CARGA_1MIN=$(top -n 1 -b | grep "load average:" | awk '{print $12}' | sed 's/,//2')

CARGA_5MIN=$(top -n 1 -b | grep "load average:" | awk '{print $13}' | sed 's/,//2')
CARGA_15MIN=$(top -n 1 -b | grep "load average:" | awk '{print $14}' | sed 's/,//2')

USER_ONLINE=$(top -n 1 -b | grep "load average:" | awk '{print $8}')
PROC_ZOMBIE=$(top -n 1 -b | grep "zombie" | awk '{print $10}')

TIEMPO_ENCENDIDO=$(uptime | awk '{print $3,$4}' | cut -f1 -d,)

FABRICANTE_CPU=$(grep "vendor_id" /proc/cpuinfo | sed q | awk '{print $3}')
MODELO_CPU=$(grep "model name" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')
NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}' | echo `expr $NUM_CPU + 1`)
NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}')
CACHE_CPU=$(grep "cache size" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')

IP_ETH0=$(ifconfig eth0 | grep inet | grep -v inet6 | cut -d ":" -f 2 | cut -d " " -f 1)
MAC_ETH0=$(ifconfig eth0 | sed -n '1p' | awk '{print $5}')

###############################################################################

if ping -c 1 8.8.8.8 &amp;&gt; /dev/null; then CONEXION_INTERNET=Habilitado; else CONEXION_INTERNET=Deshabilitado; fi

set -o vi

printf %80s |tr " " "="
echo ""
echo "      ADVERTENCIA - USTED HA INICIADO SESIÓN EN EL EQUIPO SERVIDOR DE LA      "
echo "                             EMPRESA INSTITUCIÓN XYZ                                "
echo "       RECUERDE TENER EXTREMO CUIDADO CON CUALQUIER CAMBIO A REALIZAR        "
printf %80s |tr " " "="
echo ""
printf %80s |tr " " "="
echo ""
echo "                    PARÁMETROS ACTUALES DE FUNCIONAMIENTO                    "
echo "                                                                             "
echo "MEMORIA TOTAL: ("$MEM_TOTAL") - MEMORIA USADA: ("$MEM_USADA") - MEMORIA LIBRE: ("$MEM_LIBRE")"
echo "DISCO PRINCIPAL: ("$PART1_TOTAL") - ESPACIO USADO: ("$PART1_USADO") - ESPACIO LIBRE: ("$PART1_DISPONIBLE") - %: ("$PART1_PORCENTAJE") - PARTICION: ("$PART1_PUNTOMONTAJE")"
echo "CARGA PROMEDIO DEL SISTEMA: 1 MIN ("$CARGA_1MIN") -  5 MIN ("$CARGA_5MIN") - 15 MIN ("$CARGA_15MIN")"
echo "USUARIOS CONECTADOS: ("$USER_ONLINE") -  PROCESOS ZOMBIES: ("$PROC_ZOMBIE")"
echo "TIEMPO ARRANQUE/ENCENDIDO: ("$TIEMPO_ENCENDIDO")                             "
echo "ESPACIO USADO: /home = ("$DATA_USUARIO1") /root = ("$DATA_ROOT") /var = ("$DATA_VAR")"
printf %80s |tr " " "="
echo ""
echo ""
PS1="\[\e[33;1m\]┌─( \[\e[34;1m\]\u@\h\[\e[37;1m\] ) * * * * \d - \t * * * * { \[\e[31;1m\]\w\[\e[33;1m\] }\n└──┤ \[\e[32m\]$ "

 

ٽيون قدم: روٽ کي تبديل ڪريو. bashrc

لاگ ان ۽ ٽرمينل. انهي کي ٻيهر شروع ڪيو ۽ تبديلين جو تجربو ڪيو. انهي هيٺ ڏنل تصويرن ۾ ڏسڻ جهڙو هجڻ گهرجي.

قدم 1: ٽرمينل جي شروعاتقدم 2: صارف .bashrc ۾ تبديلي آڻيوقدم 3: مواد .bashrc ۾ سرايت ٿيلقدم 4: روٽ لاگ انقدم 5: روٽ لاگ انقدم 6: روٽ .bashrc فائل ۾ تبديلي آڻيوقدم 7: روٽ .bashrc فائل ۾ تبديلي آڻيوقدم 8: روٽ .bashrc فائل ۾ تبديلي آڻيوقدم 9: نئين نموني جي ٽرمينل ٽرمينل جو مظاهر مثالقدم 10: نئين نموني جي ٽرمينل ٽرمينل جو مظاهر مثالقدم 11: نئين نموني جي ٽرمينل ٽرمينل جو مظاهر مثال

قدم چوٿون (اختياري): عرفيت کي ترتيب ڏيڻ

ياد رهي ته عرفان جو استعمال اندر جي اندر .bashrc اهو توهان کي گهڻو وقت لکڻ جو وقت پڻ بچائي سگھي ٿو. انهن کي ناڪام ڪيو جيڪي بنيادي طور تي .بشرڪ ۾ اچن ٿا ، جهڙوڪ

alias ls='ls $LS_OPTIONS'
<strong>alias ll='ls $LS_OPTIONS -l'
<strong>alias l='ls $LS_OPTIONS -lA'

alias rm='rm -i'

۽ انهن کي شامل ڪريو جن کي توهان ضروري سمجهيو ٿا ، ڇاڪاڻ ته اهي اڪثر استعمال ٿيل حڪم آهن ، جهڙوڪ:

alias cc='clear'

انهي بابت وڌيڪ aاڻڻ ضروري آهي خود هڪ سيکارڻ واري طريقي بابت متغير ، عرفان ، .بشير ۽ ٻولي بيش شيل ٽرمينل جي وڌيڪ ترقي يافته سطح لاءِ. ssh ذريعي ريموٽ سيشن شروع ڪرڻ دوران اها ئي حاصل ٿي سگهي ٿي ، جيڪا اسان ٻين مستقبل جي اشاعتن ۾ بعد ۾ ڏسي سگهنداسين.

مون کي اميد آهي ته اهي نن onesا آهن ”صلاحون“ انهن کي بنيادي ، فائديمند نموني انجام ڏيڻ آسان ڪريو ، جيڪي عام طور تي صرف ماهرن لاءِ محفوظ آهن ٽيڪنالاجي ، ڪمپيوٽنگ ، مفت سافٽ ويئر ۽ جي اين يو / لينڪس.

ياد ڏياريندڙ جيڪڏهن ڪو ڪمانڊ لائن صحيح قدر تي عمل ڪرڻ يا ظاهر ڪرڻ ۾ ناڪام ٿي وڃي ، يقينن ڪمانڊ جي هر حصي کي دستي طور تي جانچ ڪرڻ جي پڪ ڪريو ته ڪي متغير جي قدر يا نحو جي ڪوشش ڪريو.


مضمون جو مواد اسان جي اصولن تي عمل ڪري ٿو ايڊيٽوريل اخلاقيات. غلطي ڪلڪ ڪرڻ جي رپورٽ لاءِ هتي.

9 تبصرا ، پنھنجو ڇڏ

پنهنجي راءِ ڏيو

پنهنجي اي ميل ايڊريس شايع نه ڪيو ويندو. گهري شعبن سان لڳل آهن *

*

*

  1. ڊيٽا جو ذميوار: Miguel Ángel Gatón
  2. ڊيٽا جو مقصد: ڪنٽرول سپيم ، تبصرو جي انتظام.
  3. سازش: توهان جي رضامندي
  4. ڊيٽا جي ابلاغ: ڊيٽا کي قانوني ذميواري کانسواءِ ٽئين پارٽين تائين رسائي نه ڏني ويندي.
  5. ڊيٽا اسٽوريج: ڊيٽابيس اويسينٽس نيٽورڪ (اي يو) پاران ميزباني ڪيل
  6. حق: ڪنهن به وقت توهان پنهنجي معلومات کي محدود ، ٻيهر ۽ ختم ڪري سگهو ٿا.

  1.   يپيڪي چيو

    الميو سڀ کان بھتر آھن. مان ڪجھ بابت برا نه سوچيندو آهيان جيڪي بيشريڪ ۾ ڊفالٽ شامل آهن: la (ls -a) ۽ ll (ls -l). آخر ۾ آئون پيٽرولر جوڙيو -ش.

    ٻيا عملي نالا:
    s = 'سدو'
    سي ڊي 1 = 'سي ڊي.'
    سي ڊي 2 = 'سي ڊي .. / ..'
    آر ايم ڊي = 'آر ايم-آر' (مان ان کي فائلن سان ڊائريڪٽريٽ ڪ toڻ لاءِ استعمال ڪندو آهيان)
    بند = 'سودو بند-ھاڻي'
    ڊيل = 'ڪش-پٽي' (فائلن کي ڪچي ۾ وجهڻ ، ڪڪڙ جو دٻاءُ ڪمانڊ ڪنڊر)

  2.   ٽون چيو

    جڏهن کان مون عرفيه کي گذريل سال ريڊٽ تي ڏٺو آهي اهو منهنجي پسنديده ٿي چڪو آهي.
    عرف چوڻي = 'سودو $ (تاريخ-ص !!)'

  3.   مارٽن چيو

    اهو آرٽيڪل ۽ ظاهري شڪل جيڪو ڏيندو آهي ڪنسول تي ، تمام سٺو آهي. ڪجھ تعاون
    - Ubuntu ۾ عرفات هڪ الڳ فائل ۾ رکيل هجي.
    جيڪڏهن [-f ~ / .bash_aliases] ؛ پوءِ
    . ~ / .ash_aliases
    fi
    هي اجازت ڏين ٿا عرفان کي وڌيڪ ترتيب ڏيڻ ۽ مون وانگر وساريندڙن لاءِ توھان ھي عرف شامل ڪري سگھوٿا فائل کي ظاهر ڪري ٿو عرفان کي.
    عرف lsalias = 'وڌيڪ ~ / .ash_aliases'
    - مون وٽ پڻ گھٽ استعمال ٿيل ڪمانڊ ٽيڪسٽ فائل آهي (جيڪا مونکي عام طور تي ياد نه هوندي آهي) ڪمانڊ_utiles.txt سڏيو ويندو آهي ۽ اهو هيٺيان عرف سان تيار آهي: عرف ڪٽيل = 'وڌيڪ ~ / command_utiles.txt'
    - وڌيڪ عرفان آئون استعمال ڪريان ٿو
    عرف cdu = 'سي ڊي ~'
    عرف lof = 'ls -lSr | وڌيڪ' # فائلون تفصيل سان ڏيکاريل ترتيب وار
    لياقت = 'دو -سک * | ترتيب ڏيو -rn '# ڊائرڪٽري کي سائيز جي حساب سان ترتيب ڏيو
    عرف ديرو = 'du -sh' # اشارو ڪيل در تي قبضو ڪيل جڳهه جو اندازو لڳايو
    عرف psa = 'ps -eafw | وڌيڪ '# سڀني عملن کي وڌيڪ سان ڏيکاريو
    عرف psg = 'ps -eafw | گرپ '# ظاهر ڪيل عمل ڏيکاريو
    آخرڪار ، يوٽرن جو هڪ متبادل جيڪو مون ڪيو:
    SYSTEM_NAME = $ (ٻلي / وغيره / او ايس-رليز | گرپ NAME | grep -v "VERSION" | sed -n '1p' | cut -f2 -d \ »)
    SYSTEM_VERSION = $ (ٻلي / وغيره / او ايس رليز | گرپ VERSION = | sed -n '1p' | sed 's / VERSION = //' | sed 's / »// g')
    MANUFACTURER_CPU = $ (گرپ "vendor_id" / proc / cpuinfo | sed q | awk '{print $ 3}')
    CPU_MODEL = $ (گرپ "ماڊل جو نالو" / proc / cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $ 0}')
    NUM_CPU = $ (گرپ "پروسيسر" / proc / cpuinfo | sort -r | sed q | awk '{print $ 3}' | گونج expr $NUM_CPU + 1)
    NUCLEO_CPU = $ (گرپي "cpu cores" / proc / cpuinfo | sed q | awk '{پرنٽ $ 4}')
    CACHE_CPU = $ (گرپي "ڪيش سائيز" / proc / cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $ 0}')
    USER_Data = $ (du -sh ~ | sort -r | awk '{پرنٽ $ 1}')

    واضح
    printf٪ 130s | tr »» «=»
    ٻاهر اڇلايو ""
    گونج «تاريخ:«date +%c --date='+1 year'
    گونج «KERNEL:«uname -o»<«uname -r«> <«uname -m«>»
    گونج "تقسيم:" $ SYSTEM_NAME "" $ SYSTEM_VERSION ""
    گونج "سي پي يو:" $ MODEL_CPU "،" $ NUCLEO_CPU "نيوڪلي ،" $ CACHE_CPU "ڪيش"
    گونج «USED SPACE:« $ DATA_USUARIO
    printf٪ 130s | tr »» «=»
    ٻاهر اڇلايو ""
    ###############################################
    گونج "مفيد حڪم ناما:"
    گونج »ڊي بي بي پيڪيج سسٽم ۾ آر پي ايم انسٽال ڪريو: alien -c -i package.rpm»
    گونج »فائلن جو صارف ۽ گروپ ٻيهر تبديل ڪريو: chown -hR صارف: گروپ [فائيل يا dir]»
    گونج »اجازتون رکڻ لاءِ نقل: سي پي ايڪس ايمڪس ماخذ منزل»
    گونج »- فعال ذخيرو ڏيکاريو: grep -i ppa.launchpad.net /etc/apt/sources.list.d/*.list»
    گونج »ذخيرو شامل ڪريو: apt-add-repository ppa: مخزن»
    گونج »ـ وڌيڪ ڪٽيل ڪمرن کي ڏسڻ لاءِ»
    گونج »ـ ALAS lOSali ظاهر ڪرڻ»
    printf٪ 130s | tr »» «=»
    ٻاهر اڇلايو ""
    ٻاهر اڇلايو ""
    # پي ايس 1 = »[\ e [33؛ 1 ايم] ┌─ ([\ e [34؛ 1m] \ u @ \ h [\ e [37؛ 1m]) * * * * \ d - \ t * * * * {[\ e [31؛ 1m] \ w [\ e [33 ؛ 1m]} \ n└──┤ [\ e [32m] # »
    PS1=»[\e[33;1m]┌─([\e[34;1m]\u@\h[\e[37;1m])>{ [\e[31;1m]\w[\e[33;1m] }\n└──┤ [\e[32m]# «

    1.    ايبدون ايس چيو

      ڀلي پنهنجو مضمون ڇو نه لکي؟

  4.   ايبدون ايس چيو

    اهي ٽيمونز آهن جيڪي مون کي پسند آهن !!!!!!!!!

  5.   اينگ جوز البرٽ چيو

    چ ،و ، مان ڏا gladو خوش ٿيو آهيان ته توهان پسند ڪيو ۽ هن جي خدمت ڪئي!

    سڀاڻي مون کي اميد آهي ته هڪ ٻيو مضمون شايع ڪرڻ وارو آهيان! ٻڪرين.

  6.   يوزر آرڪ چيو

    ان معلومات کي حصيداري ڪرڻ تي سلام ۽ لامحدود مهرباني.
    مون کي GNU / Linux جي انتظاميه جي باري ۾ گهڻي knowledgeاڻ ناهي (مان ايڪي تجرباتي تربيت کانسواءِ فقط هڪ تجرباتي ۽ شوقين صارف آهيان) ، پر مون کي ياد آهي ته ڪنهن ويب سائيٽ تي حفاظتي مسئلن بابت استحقاق اڳتي وڌڻ سان .بشڪر رسم الخط ۾ ڪجهه حڪم ۽ پائپون ، مون کي لڳي ٿو ته اهي هڪ هيڪر يا بيڪسٽر جي ڪم کي سهولت فراهم ڪري سگھن.
    عزت ۽ احترام سان.

  7.   اينگ جوز البرٽ چيو

    شيل اسڪرپٽ ڪرڻ سان ٽرمينل کي بهتر بنائڻ تمام سادو آهي ، ڏسو ته توهان سٺو شيل اسڪرپٽ ڪرڻ سان ڪيتري پري وڃي سگهو ٿا.

    LPI-SB8 ٽيسٽ اسڪرين ڪاسٽ (لينڪس پوسٽ انسٽال - اسڪراٽ بڪينٽياريو 8.0.0)
    (lpi_sb8_adecuación-audiovisual_2016.sh / 43 ڪلو)

    Screencast ڏسو: https://www.youtube.com/watch?v=cWpVQcbgCyY

  8.   هن شهر جو چيو

    عظيم سبق! ڪو به ڪتاب توهان شيل اسڪرپٽ ڪرڻ ، ترتيب ڏيڻ ، سرور جي حفاظت لاءِ سکڻ لاءِ لينڪس تي صلاح ڏيو ٿا؟ توهان جي مهرباني