
ls או pwd נראות כחלק מהטרמינל, אבל רובן תוכנות חיצוניות נפרדות. ההרצאה מסבירה את ההבדל בין פקודות מובנות בשל לתוכנות חיצוניות, ומה זה BusyBox.where is ls מראה שיש קובץ בדיסק. ls -l /usr/bin/ls מראה שמדובר בקובץ של כ-147,000 בתים בתיקיית /usr/bin. כך גם pwd (כ-43,000 בתים), echo ו-kill. בתיקיית /usr/bin יש הרבה מאוד תוכנות כאלה.cd ו-history הן חלק מה-shell עצמו, ולכן where is cd לא מוצא קובץ. את ה-shell הנוכחי רואים בהדפסת $0: בקאלי זה ZSH ובאובונטו Bash.ls, בהחלפת קובץ אחד בלי לשנות את ה-shell כולו.cp, cat, kill, zip, ping, pwd. מתקינים אותו עם apt install busybox.busybox ls / ו-busybox ping 8.8.8.8. BusyBox מקבל את הפקודה כארגומנט ומשתמש בפונקציה הפנימית שלו ולא בקובץ החיצוני. ל-ping נדרשות הרשאות, ולכן משתמשים ב-sudo.ping אינו חלק מ-CMD אלא תוכנה חיצונית בתיקיית C:\Windows\System32.set נראה בהתחלה כמו קובץ ב-/usr/bin, אבל זה לא היה נכון.הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על busybox» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בהרצאה הזו אני רוצה לספר לכם מה זה ביזי בוקס ולפני שנתחיל לדבר מה זה ביזי בוקס אני רוצה להראות לכם משהו שיפתיע אתכם שפקודות כמו ls להראות את התוכן של תיקייה כלשהי נניח את התיקייה הראשית כמו כונן c זה נראה לכם כמו פקודה בתוך טרמינל בתוך של אבל אם אנחנו נעשה פקודת where is איפה נמצא ls
אנחנו נגלה שיש קובץ ב-hard disk בשם ls זאת אומרת ls זאת לא פקודה מובנית ב-shell זאת תוכנה חיצונית ואם נעשה ls מינוס l usr/bin/ls אנחנו נגלה שפקודת ls זה למעשה קובץ שתופס 147,000 בתים והוא נמצא בתיקיית usr/bin זה אומר שזו מיני תוכנה חיצונית ו-shell פשוט קורא לה אותו דבר גם לגבי פקודת PWD שראינו עד עכשיו.
פקודת PWD, תתפלאו, גם זה קובץ. זאת מיני תוכנה נפרדת לחלוטין ותופסת 43,000 בתים. זאת אומרת, הם עשו כל פקודה, זאת למעשה מיני תוכנה.
גם אקו, אקו שסתם מדפיס משהו על המסך, תראו, זאת גם מיני תוכנה. זאת אומרת, כשאנחנו כותבים פקודות ב-CMD, פקודות בשל, למעשה, אלו הם מיני תוכנות.
לדוגמה, קיל, שהורגת איזושהי תוכנה שרצה, כמו ב-Task Manager להרוג איזושהי תוכנה שנתקעה, פקודת קיל, אנחנו גם נלמד עליה בהמשך, אנחנו רואים גם זה מיני תוכנה.
למעשה, usr-bin זה מלא מלא מיני תוכנות שיש לנו כאן, ואם נעשה ls -l usr-bin, אתם תגלו פה שיש פה המון המון המון המון המון קבצים, שכל מה שחשבתם שזה פקודות, זה למעשה מיני תוכנות, אנחנו לא נעבור כי יש פה באמת הרבה, אבל הכל מסתתר כאן בתוך usr-bin.
טוב, האם יש פקודות שהן חלק מהשל עצמו, שזה לא תוכנה חיצונית, אלא פקודות שמובנות בשל? נכון, כמו פקודת cd, Change Directory, להיכנס לתת תיקייה, תעשו וריז cd, תראו שלא קיים קובץ כזה.
למה? כי הוא מובנה בשל, בשל הנוכחי שאני מריץ כרגע. דרך אגב, איך אני יכול לדעת איזה של כרגע רץ לי?
מאוד פשוט, אני יכול להדפיס את השם של התוכנה הנוכחית. דולר אפס מדפיס לי מהו שם של התוכנה שרצה כרגע.
בואו נשים לכם את זה כאן ונקרא לזה קרנט של. איזה של יש לי עכשיו? זה עוד פעם, זה אחד הטריקים של משתני סביבה. כל מיני דולר זה משתנים. אוקיי, אז אנחנו רואים שאנחנו ב-ZSH ופקודת CD לא קיימת.
פקודת סט שמראה לי וקובעת לי את משתנה הסביבה. אה, גם היא קיימת, סליחה, סליחה, סליחה. זה דווקא שייך לפה, USR-SET. זה דווקא קיים לפה, אופס, פה טעיתי, זה לא מובנה.
והיסטורי, פקודת היסטורי שמראה לי את כל הפקודות שעשינו. היסטורי, תסתכלו, זה לא קובץ הרצה, זה איזשהו קובץ אחר.
לא קשור, זה קובץ מן, קובץ עזרה. אבל הפקודת היסטורי, זאת אומרת, אני יכול לעשות פה היסטורי ולעשות פה אנטר ולראות את הפקודות שאנחנו עשינו איתכם ביחד, אז הפקודת היסטורי גם מובנית בשל.
אוקיי, אז אנחנו רואים שחלק הם חיצוניים וחלק הם מובנים. בשביל מה עשו את זה חיצונית? כדי שלא תהיה תלות.
אם נרצה לשדרג, לשנות את ls, להחליף אותו למשהו אחר, שנוכל להחליף רק את הקובץ הזה ולא לשנות את כל השל הענק שיש לנו. למעשה של מפעיל תוכנות חיצוניות חלק מהפקודות מובנות בשל חלק מהפקודות זה תוכנות חיצוניות שכביכול לא קשורות לשל בוא נראה דרך אגב באובונטו מה קורה ניכנס לאובונטו ונפתח פה טרמינל
open in terminal וגם כאן נריץ פקודת where is cd וגם נראה שגם פה אין קובץ שקוראים לו cd גם פה אין קובץ שקוראים לו היסטורי ונניח קבצים כמו LSPWD וכל זה,