
Bash Shell Scripting: สร้างลิงค์ของแอพพกพา
คำว่าเชลล์ที่ใช้กับระบบปฏิบัติการหมายถึงตัวแปลคำสั่งของระบบปฏิบัติการ โดยทั่วไปมันเป็นอินเทอร์เฟซข้อความประสิทธิภาพสูงที่แสดงออกมาในรูปแบบของเทอร์มินัล (คอนโซล) และทำหน้าที่สำคัญในการทำงาน 3 ส่วน: การดูแลระบบปฏิบัติการการเรียกใช้แอปพลิเคชันและการโต้ตอบกับพวกเขา การเขียนโปรแกรม และสคริปต์หมายถึงเทคนิคการออกแบบและสร้างสคริปต์โดยใช้เชลล์.
เชลล์สคริปต์มีประโยชน์อย่างยิ่ง เป็นความคิดที่ดีที่จะเขียนความต้องการเหล่านั้นที่เรามีแล้วแก้ไขสคริปต์ที่ทำงานนี้ให้เรา และในกรณีนี้เราจะใช้มันเพื่อสร้างลิงค์แอพพลิเคชั่น (ทางลัด) ในเมนูเริ่มและเดสก์ท็อปของแอพแบบพกพาที่ดำเนินการด้วยตัวเองและในตัว
การแนะนำ
หลายครั้งที่เราดาวน์โหลดและติดตั้งแอปพลิเคชันที่อยู่หรือไม่อยู่ในที่เก็บของ GNU / Linux Distribution ของเราเมื่อติดตั้งหรือเรียกใช้งานแอปพลิเคชันนั้นจะไม่สร้างไฟล์. desktop ตามลำดับ ในกรณีเดียวกันหรือในกรณีที่ดีที่สุดจะไม่วางไว้ในเส้นทางที่ถูกต้องดังนั้นหลังจากอัปเดตเมนูเริ่มแล้วจะมีการอ่านและแสดงในรายการแพ็คเกจที่ติดตั้งของระบบปฏิบัติการ
ดังนั้นเราจึงต้องขออุทธรณ์การใช้แอปพลิเคชันเช่น "Alacarte" หรือ "Menulibre" เพื่อสร้างลิงก์ที่เกี่ยวข้องด้วยตนเองในเมนูเริ่ม
และแม้ว่าแอปพลิเคชั่นกราฟิกเหล่านี้จะใช้งานง่ายมากเพื่อจุดประสงค์นี้ แต่ก็ไม่ควรรู้มากเกินไป สร้างสคริปต์ของเราเองเพื่อดำเนินการดังกล่าวและทำให้ทราบจากภายในว่าการดำเนินการดังกล่าวดำเนินการอย่างไรภายในระบบปฏิบัติการ
หากคุณไม่คุ้นเคยกับการสร้างและ / หรือการใช้ไฟล์ Shell Scripting คุณสามารถทำได้ อ่านนี่ โพสต์ก่อนหน้า (Shell, Bash และ Scripts) เพื่อเริ่ม แล้วถ้าจำเป็นต้องสำรวจ สิ่งพิมพ์ทั้งหมดในเรื่องนี้
การสร้างโปรแกรมโดยใช้ 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
###############################################################################
เนื้อหาสคริปต์บน Mousepad
ความเห็น
ในขณะที่คุณสามารถวิเคราะห์จากโค้ดและละเว้นส่วนหัวสคริปต์ต่อไปนี้จะดำเนินการต่อไปนี้ด้วยวิธีอัตโนมัติ:
- ตรวจสอบว่ากำลังใช้เป็นสิทธิ์ super-user root หรือ super-user root
- ลบลิงก์ก่อนหน้านี้ในแอปพลิเคชันที่สร้างขึ้นโดยเวอร์ชันก่อนหน้า
- สร้างไฟล์. desktop ใหม่ (ลิงค์) ของแอปพลิเคชันในโฟลเดอร์ของตัวเองภายในบ้านของผู้ใช้
- กำหนดสิทธิ์เจ้าของผู้ใช้ให้กับไฟล์ที่สร้างขึ้น
- กำหนดไฟล์ที่สร้างขึ้นด้วยสิทธิ์ในการอ่าน / เขียน / ดำเนินการที่เหมาะสม
- สร้างลิงก์สัญลักษณ์ใหม่ไปยังเส้นทางที่จำเป็น
- อัปเดตเมนูเริ่มต้นเพื่อแสดงไฟล์. desktop ที่สร้างขึ้น
- ดำเนินการ URL เฉพาะบนแอปพลิเคชันที่สร้างขึ้น
ข้อเสนอแนะ
ขอแนะนำให้สร้างไฟล์นี้ภายในโฟลเดอร์ที่มีแอปพลิเคชัน / ปฏิบัติการที่เป็นปัญหาโดยมีไอคอนตามลำดับ (รูปภาพ / โลโก้) ระบุอยู่ภายในและโฟลเดอร์ดังกล่าวจะอยู่ในเส้นทาง /opt
แทนเส้นทาง `echo $HOME`/mi_app/
นั่นคือ /home/mi_usuario/mi_app
.
ฉันหวังว่าสคริปต์เล็ก ๆ นี้จะช่วยให้คุณสามารถแก้ปัญหาความต้องการของคุณในเรื่องนี้ได้! จนกว่าจะถึงบทความถัดไป.
ในขณะที่ฉันปล่อยให้คุณนี้ ลิงก์บนเว็บไซต์ Gnome อย่างเป็นทางการในหัวข้อ และวิดีโอนี้:
ขอบคุณมากสำหรับเรื่องนี้และบทความทั้งหมดของคุณ
คำถามหนึ่ง: หากคุณไม่ได้รูทคุณจะขอรหัสผ่านที่แสดงเครื่องหมายดอกจันเพื่อดำเนินการต่อด้วยสิทธิ์ที่เหมาะสมได้อย่างไร
คุณสามารถสร้างอินเทอร์เฟซพร้อมกล่องโต้ตอบและนำไปใช้กับกล่องขอรหัสผ่านซึ่งเป็นคุณสมบัติของการเข้ารหัสคีย์! ฉันจำได้ดีว่าคุณสมบัตินี้มีอยู่ในกล่องโต้ตอบ
ในโพสต์ก่อนหน้านี้มีคนทำสิ่งที่คล้ายกัน แต่เป็นภาพกราฟิก แต่ไฟล์ที่แนบมานั่นคือรหัสที่ใช้ไม่สามารถใช้ได้อีกต่อไป: https://blog.desdelinux.net/script-avanzado-en-bash-bashmd5-para-proteger-algo-explicacion-detallada/
ขอบคุณคงจะดีที่ไม่ต้องออกจากสภาพแวดล้อม bash ในกรณีที่มันทำงานโดยไม่มีอินเทอร์เฟซแบบกราฟิกในกรณีนี้มันไม่สำคัญแม้ว่าจะไม่มีเครื่องหมายดอกจันหรืออะไรก็ตามที่ขอคีย์และไม่มีข้อความปรากฏขึ้น อืมฉันหามันเจอ http://www.tormentadebits.com/2012/08/scripts-bash-introducir-password-sin-mostrarlo-en-pantalla.html