Shell Scripting لإنشاء ملف .desktop لتطبيق محمول

برمجة Bash Shell: أنشئ رابطًا لتطبيق محمول.

برمجة Bash Shell: أنشئ رابطًا لتطبيق محمول.

يشير مصطلح Shell المطبق على أنظمة التشغيل إلى مترجم الأوامر لنظام التشغيل. بشكل عام ، إنها واجهة نصية عالية الأداء تتجلى في شكل Terminal (Console) والتي تخدم بشكل أساسي في 3 مجالات عمل مهمة: إدارة نظام التشغيل ، وتشغيل التطبيقات والتفاعل معها ، والعمل كبيئة أساسية برمجة. وتشير البرمجة النصية إلى أسلوب تصميم وإنشاء البرامج النصية باستخدام شل.

البرامج النصية شل مفيدة للغاية. إنها لفكرة جيدة أن نكتب تلك الاحتياجات التي لدينا ثم نعدل النصوص التي تؤدي هذا العمل من أجلنا. وفي هذه الحالة بالذات ، سنستخدمها لإنشاء روابط (اختصارات) للتطبيقات في قائمة البداية وسطح المكتب للتطبيقات المحمولة ذاتية التنفيذ والمكتفية ذاتيًا.

تطبيق Alacarte Linux

مقدمة

مرات عديدة قمنا بتنزيل وتثبيت التطبيقات التي ، سواء كانت في مستودعات توزيع GNU / Linux أم لا ، عند تثبيتها أو تنفيذها ، فإنها لا تنشئ ملفات .desktop ذات الصلة من نفس الشيء أو في أفضل الأحوال لا يضعه في المسار الصحيح بحيث يتم قراءته بعد تحديث قائمة ابدأ وعرضه في قائمة الحزم المثبتة لنظام التشغيل.

لذلك ، علينا أن نناشد استخدام تطبيقات مثل "Alacarte" أو "Menulibre" لإنشاء الارتباط المعني يدويًا في قائمة ابدأ.

وعلى الرغم من أن هذه التطبيقات الرسومية سهلة الاستخدام للغاية لهذا الغرض ، فليس هناك الكثير مما يجب معرفته قم بإنشاء البرنامج النصي الخاص بنا لإجراء هذه العملية وبالتالي معرفة كيفية تنفيذ هذه العملية داخل نظام التشغيل.

إذا لم تكن معتادًا على إنشاء و / أو استخدام ملفات Shell Scripting ، يمكنك ذلك اقرا هذا المنشور السابق (شل ، باش ، سكريبت) لتبدأ ثم إذا لزم الأمر للاستكشاف جميع المنشورات حول هذا الموضوع.

تطبيق قائمة Linux المجاني

إنشاء البرنامج باستخدام Shell Scripting

سنفترض لأسباب تتعلق بالفضاء أننا نعرف بالفعل كيفية إنشاء برنامج نصي من البداية ، أي أننا نعرف بالفعل كيفية إنشاء الرأس أو الأجزاء الأولية من البرنامج النصي الخاص بنا وسننتقل مباشرة إلى محتواه.

ومع ذلك ، إذا كانت لديك شكوك حول ذلك ، فتحقق من ذلك المنشور السابق (أنشئ برنامجك خطوة بخطوة باستخدام Shell Scripting - الجزء 1) لتوضيح الشكوك.

محتوى


#!/usr/bin/env bash
set -eou pipefail
IFS=$'\n\t'
setterm --reset
# NOMBRE: MI-APP LINUX POST INSTALL - SCRIPT BICENTENARIO (MIAPP-LPI-SB)
# VERSIÓN: 1.0+0
# TIPO DE PROGRAMA: SISTEMA EXPERTO
# FUNCIÓN: ASISTENTE TECNICO PARA S.O. GNU/LINUX BASADOS EN DEBIAN
# NOMBRE CODIGO: MIAPP (MIAPP-LPI-SB 1.0+0)
# PAIS ORIGEN: Mi país
# CREADO POR: Mi Nombre
# LICENCIA: Licencia Pública General de GNU 3.

###############################################################################
# INICIO DEL MODULO DE VALIDACION PERMISO DE SUPERUSUARIO (ROOT) SOBRE EL MIAPP-LPI-SB              
###############################################################################

# ESTE MODULO VALIDA QUE SOLO EL SUPERUSUARIO (USUARIO ROOT) PUEDA EJECUTAR
# EL LINUX POST INSTALL - SCRIPT BICENTENARIO.

clear

setterm -background red

if [[ "$(id -u)" != "0" ]]; then
   echo "ESTE SCRIPT DEBE SER EJECUTADO COMO ROOT"
   sleep 3
   clear      
  else
   echo "ESTE SCRIPT SERA EJECUTADO COMO SUPERUSUARIO (ROOT)"
   sleep 3
   clear
fi

###############################################################################
# FINAL DEL MODULO DE VALIDACION PERMISO DE SUPERUSUARIO (ROOT) SOBRE EL MIAPP-LPI-SB
###############################################################################


###############################################################################
# INICIO DEL MODULO DE ORDENES DE COMANDO DE POST INSTALACIÓN
###############################################################################

rm -f $HOME/mi_app/mi_app.desktop
rm -f $HOME/.local/share/applications/mi_app.desktop
rm -f $HOME/Desktop/mi_app.desktop
rm -f $HOME/Escritorio/mi_app.desktop
rm -f /usr/share/applications/mi_app.desktop

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

echo "
[Desktop Entry]
Name=My Applicattions
GenericName=My Applicattions
GenericName[es]=Mi Aplicación
Comment=Mi Aplicación
Exec=/opt/mi_app/mi_app
Icon=`echo $HOME`/mi_app/icono_app.png
Terminal=false
Type=Application
Encoding=UTF-8
Categories=Network;Application;
MimeType=x-scheme-handler/mozilla;
X-KDE-Protocols=mozilla
" > `echo $HOME`/mi_app/mi_app.desktop

chown $USER:$USER -R `echo $HOME`/mi_app/mi_app.desktop

chmod 755 `echo $HOME`/mi_app/mi_app.desktop

ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/.local/share/applications/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/Desktop/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/Escritorio/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop /usr/share/applications/mi_app.desktop

update-menus

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

clear

su - $USER -c "xdg-open 'https://www.mi-app.com/'"

clear

echo ''
echo ''
echo '#------------------------------------------------------------------#'
echo '# GRACIAS POR USAR MI-APP LINUX POST INSTALL #'
echo '#------------------------------------------------------------------#'
echo ''
echo ''

sleep 3

###############################################################################
# FINAL DEL MODULO DE ORDENES DE COMANDO DE POST INSTALACIÓN
###############################################################################
محتوى البرنامج النصي على لوحة الماوس

محتوى البرنامج النصي على لوحة الماوس

تعليقات

كما يمكنك التحليل من التعليمات البرمجية وإهمال الرأس ، يقوم البرنامج النصي التالي بتنفيذ العمليات التالية بطريقة آلية:

  1. تحقق من أنك تستخدم كجذر للمستخدم الفائق أو إذن جذر للمستخدم الفائق.
  2. احذف الروابط السابقة في التطبيق التي تم إنشاؤها بواسطة إصدار سابق.
  3. قم بإنشاء ملف سطح المكتب الجديد (رابط) للتطبيق في المجلد الخاص به داخل منزل المستخدم.
  4. قم بتعيين إذن مالك المستخدم للملف الذي تم إنشاؤه.
  5. امنح الملف الذي تم إنشاؤه أذونات القراءة / الكتابة / التنفيذ المناسبة.
  6. إنشاء روابط رمزية جديدة للمسارات الضرورية.
  7. قم بتحديث قائمة البدء لعرض ملف سطح المكتب الذي تم إنشاؤه.
  8. قم بتنفيذ عنوان URL محدد على التطبيق الذي تم إنشاؤه.

توصية

يوصى بإنشاء هذا الملف داخل المجلد الذي يحتوي على التطبيق / الملف القابل للتنفيذ المعني مع الرمز الخاص به (الصورة / الشعار) المحدد بداخله والمجلد المذكور موجود في المسار /opt بدلا من الطريق `echo $HOME`/mi_app/ هذا هو ، /home/mi_usuario/mi_app.

آمل أن يسمح لك هذا السيناريو الصغير بحل احتياجاتك في هذا الصدد حول هذا الموضوع! حتى المقال التالي.

بينما أترك لك هذا رابط على موقع Gnome الرسمي حول الموضوع وهذا الفيديو:


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   غييرمو قال

    شكرا جزيلا لك على هذا وجميع مقالاتك.
    سؤال: كيف ، إذا لم تكن جذرًا ، هل يمكنك أن تطلب كلمة المرور التي تظهر العلامات النجمية لمواصلة التنفيذ بالأذونات المناسبة؟

    1.    المهندس خوسيه ألبرت قال

      يمكنك إنشاء واجهة مع مربع حوار وتطبيق خاصية تشفير المفتاح على مربع طلب كلمة المرور! أتذكر جيدًا أن هذه الخاصية موجودة في الحوار.

      في هذا المنشور السابق ، فعل شخص ما شيئًا مشابهًا ولكن بشكل رسومي ولكن الملفات المرفقة ، أي أن الكود المستخدم لم يعد متاحًا: https://blog.desdelinux.net/script-avanzado-en-bash-bashmd5-para-proteger-algo-explicacion-detallada/

  2.   غييرمو قال

    شكرًا ، سيكون من الجيد ألا تضطر إلى مغادرة بيئة bash في حالة تشغيلها بدون واجهة رسومية ، في هذه الحالة لا يهم حتى إذا لم تكن هناك علامات نجمية أو أي شيء ، يطلب المفتاح ولا يظهر أي نص. أمم ، أجدها في http://www.tormentadebits.com/2012/08/scripts-bash-introducir-password-sin-mostrarlo-en-pantalla.html