בנה את התוכנית שלך שלב אחר שלב באמצעות Shell Scripting - חלק 4

בערכים קודמים בסדרת פרסומים זו נזכרנו כיצד ליישם:

מעטפת Scripting

ובקודמים, כיצד ליישם א שבנג ו- BSM (Bash Strict Mode / Strict Bash Mode).

שיטות עבודה מומלצות ליצירת סקריפט של מעטפת ב- GNU / Linux - חלק 1

שיטות עבודה מומלצות ליצירת סקריפט של מעטפת ב- GNU / Linux - חלק 2

הנה דוגמה לא מודול אופטימיזציה, לוקח כדוגמה אחד משלי תוכניות (יישומים) עובדות בא תסריט מעטפת קרא התקנת פוסט של לינוקס - סקריפט דו-שנתי 8.0:

זה אמור להיות המודול (החלק) להתקין את חבילות הבסיס הדרושות לתפקוד תקין של אותו, או לבצע את הפעולות המינימליות הדרושות לעדכון, תחזוקה או ביצוע סביבת העבודה או מערכת ההפעלה כך שהכל יתנהל בצורה מספקת. אני אישית מוסיף את השורות הבאות ליצירת מודול זה:


###############################################################################
# INICIO DEL MODULO DE OPTIMIZACIÓN AL LINUX POST INSTALL - SCRIPT BICENTENARIO               
###############################################################################

# Sección que instala los paquetes bases del LPI-SB

echo -e '\a'

apt update && apt install dialog gxmessage zenity espeak gksu -y && apt install -f && dpkg --configure -a

if [ $? = 0 ]; then

     echo ""
     echo ""
     echo "#--------------------------------------------------------#"
     echo "#LA INSTALACIÓN DE LOS PAQUETES HA CULMINADO EXITOSAMENTE#"
     echo "#--------------------------------------------------------#"
     echo ""
     echo ""

     play /usr/share/sounds/info.wav 2> /dev/null

     sleep 3
     clear

else

     echo ''
     echo ''
     echo '#--------------------------------------------------------#'
     echo '# LA INSTALACIÓN DE LOS PAQUETES NO CULMINO EXITOSAMENTE #'
     echo '#--------------------------------------------------------#'
     echo ''
     echo ''

     play /usr/share/sounds/warning.wav 2> /dev/null

     sleep 3
     clear

     echo ''
     echo ''
     echo '#--------------------------------------------------------#'
     echo '#                  EJECUTE MANUALMENTE                   #'
     echo '# UN MANTENIMIENTO PREVENTIVO Y CORRECTIVO EN SU SISTEMA #'
     echo '#   EJECUTANDO LA SIGUIENTES ORDEN DE COMANDO, 1 HA 1:   #'
     echo '#                                                        #'
     echo '#                       apt update                       #'
     echo '#                     apt install -f                     #'
     echo '#                   dpkg --configure -a                  #'
     echo '#                       apt upgrade                      #'
     echo '#                                                        #'
     echo '#   LUEGO INSTALE MANUALMENTE LOS PAQUETES NECESARIOS    #'
     echo '#         CON LA ORDEN DE COMANDO SIGUIENTE:             #'
     echo '#                                                        #'
     echo '#      apt install dialog gxmessage zenity espeak -y     #'
     echo '#                                                        #'
     echo '#  AHORA, VUELVA HA INTENTAR EJECUTAR EL SCRIPT LPI-SB   #'
     echo '#--------------------------------------------------------#'
     echo ''
     echo ''

     sleep 3
     clear

     play /usr/share/sounds/info.wav 2> /dev/null

     exit 0

fi

wget -o /dev/null --user-agent="Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36" -O "/tmp/audio.mp3" "https://translate.google.co.ve/translate_tts?ie=UTF-8&q=BIENVENIDO%20AL%20LINUX%20POST%20INSTALL%20-%20SCRIPT%20BICENTENARIO&tl=es&total=1&idx=0&textlen=54&tk=511133.124198&client=t&prev=input&ttsspeed=0.24" ; play -q /tmp/audio.mp3

wget -o /dev/null --user-agent="Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36" -O "/tmp/audio.mp3" "https://translate.google.co.ve/translate_tts?ie=UTF-8&q=ESTIMADO%20USUARIO%2C%20ESPERE%20UNOS%20SEGUNDOS%20MIENTRAS%20EL%20PROGRAMA%20SE%20CARGA%20E%20INICIA&tl=es&total=1&idx=0&textlen=77&tk=337132.200023&client=t&prev=input" ; play -q /tmp/audio.mp3

###############################################################################
# FINAL DEL MODULO DE OPTIMIZACIÓN AL LINUX POST INSTALL - SCRIPT BICENTENARIO               
###############################################################################

===============

כפי שאתה יכול לראות, מודול זה מריץ א עדכון יכולת, ואחריו התקנת החבילות שיח gxmessage זנות מדבר, ממשיך עם פקודות הפיקוד aptitude להתקין -f y dpkg - הגדר -a. ובמקרה אם ורק אם הכל בוצע בצורה מספקת, א מסר חזותי במסוף של השלמה מוצלחת עם א התראה קולית והמשכתי בשלב הבא (מודול / קטע) של תסריט מעטפת. אחרת, א מסר חזותי במסוף של מימוש לא מוצלח עם א התראה קולית, עם אחר מסר חזותי על ידי מסוף הממליץ על פעולות ידניות לביצוע כדי למנוע את השגיאה שהושגה שוב, ואז לסיים את ביצוע ה- תסריט מעטפת.

ביחס לשתי השורות האחרונות של המודול, אלה שמתחילים איתם פקודת wget, לעת עתה אלה אינם חיוניים, שכן אלה הם חלק מ- הליך ניסיוני מותאם על ידי להשגת התמיכה הקולית של א תסריט מעטפת עם חיבור לאינטרנט באמצעות סינתיסייזר קולי מקוון מגוגל טרנסלייט וקולה הנשי החושני, וכך להחליף את סינתיסייזר עם קול רובוטי (זכר / נקבה) מסופק באופן מקומי על ידי מערכות ההפעלה GNU / Linux עם החבילות (תוכניות) מדבר, פסטיבל, festvox, mbrola, דיבור ו stardict.

המלצה:

קרא את המסמך: "הקתדרלה והבזאר"

הקתדרלה והבזאר הוא סוג של מניפסט שנוצר על ידי אריק ס 'ריימונד בשנה 1.998 לנסות להסביר מנקודת מבטך וניסיונך האישי (יצירת התוכנית fetchmailמה הוא ראה לגבי היצירה והאבולוציה המוצלחת של לינוקס ותוכניותיה הקשורות, במיוחד מנקודת מבט ההבדל בין מודלים לפיתוח תוכנה, שהוא כינה באופן אישי: מודל הקתדרלה ודגם הבזאר.

ניתוח הסיכום שלי של מסמך זה הוא כדלקמן:

קריאה זו מציעה או מציגה בפנינו את החזון שבתוך העולם של הנדסת תוכנה ישנם "שני סגנונות פיתוח שונים לחלוטין, מודל קתדרלה, החלים על מרבית ההתפתחויות שבוצעו בעולם של תוכנה מסחרית, ממול מודל בזאר, אופייני יותר לעולם לינוקס ". תוך שימת דגש על כך ששני המודלים הללו נגזרים מנקודות מוצא הפוכות לגבי אופי תהליך איתור באגים בתוכנה, ומהתיאוריה המסוימת שלו לגבי מה שהוא כינה. החוק של לינוס שקבע את הדברים הבאים: "בהינתן מספר מספיק של עיניים, כל השגיאות אינן רלוונטיות" או במילים אחרות: "במספר עיניים מספיק, כל הטעויות הן זוטות."

גם בקריאה זו המחבר מדגיש את המילה האקר, שלדעתי המחבר ביטא כסוג של משתמש ברמה גבוהה המסוגל להבין ולנצל יעילות תוכנית, ולזהות, להציע או ליישם תיקונים או שינויים בצורה וחומר יעילים לכל קהילת המשתמשים.. אהבתי מאוד את המושג הזה עם הצעה עצמית מכיוון שלדעתי הוא נכון, עם זאת, אשאיר מושג שאני גם אוהב מאוד מכיוון שהוא הרבה יותר גלובלי ו / או כללי.

האקר

"לינוקס חתרנית." למה? הדבר הראשון שקריאה זו אומרת לנו הוא ש:

עד אותה תקופה היה מגוון עצום של שיטות פיתוח תוכנה סטנדרטיות או מודלים שהתבססו על "גישה יותר ריכוזית ומתוכננת מההתחלה" כתוצאה מהעיצוב של תוכנה נלקח כמשהו שקשור ל- אקס פקטור שמוביל ל "מורכבות קריטית כלשהי." וזה למרות שזה כבר היה קיים ב עולם יוניקסבמילים אחרות, עבודה המורכבת מכלים קטנים, פיתוח מהיר של אב-טיפוס ותכנות אבולוציוני, הופעתה של פילוסופיית פיתוח תוכנה חופשית תחת לינוקס העלתה את העניין לרמה אחרת של תחכום.

כתוצאה מכך, בעוד פיתוח תוכנה פרטית היה עשוי מ "דרך שקטה ויראת כבוד", כשאתה בונה א קתדרלה, פיתוח תוכנה חופשית (Linux) היה עשוי "בדרך רועשת ועם מספר אג'נדות (שבילים) וגישות (הצעות) ", בדיוק כמו שהיית בגדול בזאר.

לבסוף, היא חושפת סדרה של הנחות ששווה לפרק ולעכל בהקשר הנכון שלהן כדי להבין את מי שמתפתח למען קהילת משתמשי התוכנה החופשית. הנחות אלה הן:

  1. כל העבודות הטובות בתוכנה מתחילות לנסות להוות בעיה אישית ממנה אתה מתזמן אותם.
  2. מתכנתים טובים יודעים מה לכתוב. הידיעה הגדולה ביותר מה לכתוב מחדש (ולהשתמש בה מחדש).
  3. תחשוב על השלכה של לפחות אחד: אתה תסיים לעשות את זה בכל מקרה. "
  4. אם יש לך את היחס הנכון, בעיות מעניינות ימצאו אותך.
  5. כאשר תוכנית לא מעניינת אותך יותר, חובתך האחרונה היא להעביר אותה ליוצרת מוכשרת.
  6. הטיפול במשתמשיכם כשותפי פעולה הוא הדרך המסובכת פחות לשפר במהירות את התוכנית ולשפר אותה באופן יעיל.
  7. שחרר בקרוב. הפעל אותו לעתים קרובות. והאזין למשתמשים שלך.
  8. כשיש בסיס מספיק רחב של בוחנים ותורמים, כמעט כל הבעיות יזוהו במהירות, והפתרון שלהם יהיה שומר על מישהו.

בנוסף 11 הנחות נוספות שנותרו יותר מהסוג המפוכח (מוסרי), שלא מגיע עם הסיפור אלא עם מה שמפרש כל אחד קורא (מפתח), שבמקרה המסוים שלי, הוביל אותי למסקנות הבאות:

מסקנות

אני מקווה שאהבתם את המידע הזה והוא שימושי מאז קריאת הקתדרלה והבזאר היא הפניה חובה לכל מי שמתכנת פיתוח כלשהו בתוכנה חופשית, לא משנה כמה גדול או קטן.

בהמשך, בפוסטים עתידיים נמשיך לראות דוגמה ל מודולים (חלקים) המבצעים פונקציות כגון:

  • מודול אישור משתמש עם סיסמת
  • מודול זיהוי הארכיטקטורה של מערכת ההפעלה
  • מודול תצורת שפת קידוד
  • מודול תצורת פרוקסי לסביבת הביצוע

יחד עם רבים אחרים!

וכמו תמיד, אני ממליץ ללכת ללמוד בצורה אוטודידקטית על הפקודות: gksu, שיח, gxmessage, zenity, espeak, play, יחד עם רבים אחרים ליצור ממשקים גרפיים על ידי טרמינל או עבור שולחן העבודה של המשתמש, עם התראות קוליות או מולטימדיה, ולקדם את הידע שישתמשו בו מאוחר יותר.

זכור כי אלה וכל המלצות אחרות על חלקן מודול, פונקציה, משתנה, פקודה או פעולה באופן כללי זה יכול להתבצע הרבה דרכים, ומה שמוצג כאן הוא רק אחד דרך פשוטה, של ה דרכים אפשריות רבות ואפשריות בו נאמר פעולה יכולה או יכולה להתבצע!

רק כדי לסיים אני עוזב אותך, א שידור מסך שנעשה על ידי, כדי להראות לך למה היית מסוגל, אחרי שתסיים את זה קורס מקוון של Shell Scripting ב DesdeLinux:

בדיקת ScreenCast של LPI-SB8

(LINUX POST INSTALL - BICENTNNIAL SCRIPT 8.0.0) - חלק 2


היה הראשון להגיב

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.