במאמר הקודם הראיתי איך מתחברים לרספברי פיי מרחוק עם VNC, שהיא תוכנה גרפית. אבל יש כמה בעיות עם חיבור VNC. הוא יקר מבחינת רשת, הוא מועד לפורענות וברוב המקרים אנחנו בכלל לא צריכים אותו – כי אנחנו רוצים לעבוד על הטרמינל.
הטרמינל בלינוקס הוא באמת לב העניינים. מתכנתים עובדים בעיקר איתו, הוא קל, נעים ופשוט ברגע שמבינים איך עובדים איתו ועם הכלים שיש עליו (רוב התוכנות בלינוקס הן מה שנקרא CLI, כלים שמופעלים דרך הטרמינל) אז אפשר להאיץ את העבודה.
יותר מזה, רוב המתכנתים היום נדרשים להבין ב-CLI. רוב העבודה על שרתים מרוחקים, מערכות אחרות וכלי הפיתוח היא דרך ה-CLI. לא מבינים ב-CLI? יהיה לכם בלתי אפשרי להשתלב בעולם הפיתוח. אז אם אתם מכוונים לעולם הזה, או רוצים שהילדים שלכם ישתלבו בעולם הזה, כדאי להשקיע את הזמן הזה. וזה לא זמן רב במיוחד.
אפשר להתחבר ישירות לרספברי פיי באמצעות SSH ישירות לטרמינל מחלונות, לינוקס או מק. יש מצב שהסבירו לכם או שידעתם שצריך PuTTY בשביל להתחבר ל-SSH לינוקסי כמו רספברי פיי. הימים האלו חלפו והיום אפשר לעשות את החיבור ישירות משורת הפקודה – ה-CMD – של חלונות. נכנס ל-cmd הזה באמצעות הקלדת cmd בחיפוש החלונות ונכנס לטרמינל של חלונות.
אם שם המשתמש שלכם הוא pi (ברירת המחדל, אם לא שיניתם, הוא pi) נקליד את הפקודה:
אפשר להשתמש גם בכתובת ה-IP של רספברי פיי. כמו למשל
נתבקש לאשר את המפתח הקריפטוגרפי בפעם הראשונה שיש חיבור ואז להקליד את הסיסמה שלנו. במקרה הזה אני מקווה ששיניתם את הסיסמה מברירת המחדל.
בשל ענייני אבטחה – לפני הפעלת חיבור SSH מומלץ מאוד לשנות לפחות את הסיסמה לסיסמה מורכבת.
וזהו, אנחנו בפנים. שימו לב שמהרגע שיש חיבור, אנחנו כבר לא בעולם החלונות אלא מחוברים מרחוק ללינוקס דביאן של רספברי פיי.
פקודות נפוצות בלינוקס
הטרמינל של לינוקס הוא פשוט וקל להפעלה. להלן כמה פקודות, אני ממליץ לכולם לנסות אותן ולראות איך הם מסתדרים ומסתובבים בתוך מערכת הקבצים של רספברי פיי. זה יותר קל ממה שחושבים.
ls -al | צפיה ברשימת הקבצים והתיקיות |
.. cd | חזרה אחורה לתיקית האב |
cd DIRNAME | כניסה לתיקית DIRNAME |
pwd | הצגת הנתיב הנוכחי |
mkdir DIRNAME | יצירת תיקיה בשם DIRNAME |
touch FILENAME.EXT | יצירת קובץ בשם FILENAME.EXT |
rm FILENAME.EXT | מחיקת קובץ בשם FILENAME.EXT |
rm -rf DIRNAME | מחיקת תיקיה בשם DIRNAME עם כל מה שיש בה |
man COMMAND | פקודה המציגה הסברים על פקודה אחרת למשל: man rm תציג את כל המידע על rm אפשר גם להשתמש בפלאג help– כמו למשל: rm –help |
cp SOMEFILE /DEST_LOC | העתקת קובץ מנתיב SOMEFILE אל DEST_LOC |
mv SOMEFILE /DEST_LOC | העברת קובץ מנתיב SOMEFILE אל DEST_LOC |
cat SOMEFILE | הצגת תוכן קובץ מסוים |
tail SOMEFILE -f | הצגת השורות האחרונות של קובץ מסוים והצגת התוספות לקובץ באופן חי (מעולה להצגת לוגים) |
grep SOMETEXT SOMEFILE | חיפוש בתוך קובץ אחר SOMETEXT |
וכמובן אי אפשר בלי שני טיפים משמעותיים – ראשית כפתור הטאב להשלמת פקודות וכמובן החץ למעלה לגלילת היסטורית הפקודות.
אבל השוס האמיתי בלינוקס הוא הפייפ. כלומר התו הזה: | שמאפשר לנו שרשור של פקודות. כלומר אם יש לי פלט מפקודה ספציפית אני יכול להעביר אותה לפקודה הבאה. למשל
ls -al | grep a
הפלט מ ls-al עובר באמצעות הפייפ לפקודה הבאה, שהיא grep עם הפרמטר a – ומה שיוצג בפנינו הוא רשימת הקבצים שיש להם a בשם. או למשל:
cat .bashrc | grep alias
שיציג לנו את השורות שיש בהן את המילה alias בתוך קובץ .bashrc. הפקודה cat מציגה את התוכן של הקובץ bashrc וזה עובר באמצעות הפייפ לפקודה הבאה.
עורכי הטקסט
יש לנו שני עורכי טקסט ברספברי פיי OS. הראשון הוא nano. כדי להשתמש בו צריך להקליד:
nano FILENAME
למשל nano ~/.bashrc שיביא לי את הקובץ bashrc. בתיקית הבית שלי (שזה ~). אני יכול לערוך אותו.
הוא עובד כמו רוב עורכי הטקסט שאתם מכירים כאשר את האפשרויות למטה (לשמור, להחליף, לצאת) מפעילים עם קונטרול. כלומר למשל לצאת: X^ מפעילים עם קונטרול+X. הוא עורך טקסט פשוט ויעיל.
עורך הטקסט השני הוא vi ועליו לא אכתוב למרות שאני משתמש בו לא מעט כי הוא מורכב יחסית.
מבנה התיקיות בלינוקס
בגדול הוא לא שונה בהמון מחלונות. יש לנו את תיקית ה-root. שבה יש את תיקיות מערכת ההפעלה ומערכות ליבה שונות. אחת התיקיות היא תיקית home שיש בה את תיקיות המשתמשים. במקרה שלנו משתמש ששמו הוא pi. אם ניצור משתמש נוסף במערכת, אז תיווצר שם תיקיה. שם אמורות להיות כל התיקיות האישיות: מסמכים, הורדות והגדרות.
על מנת להגיע ישירות לתיקיה הזו, אפשר להשתמש בסימן ~. למשל:
cd ~
יביא אותי לתיקית הבית. ואילו
cd ~/Downloads/
יביא אותי לתיקית Downloads שיש בתיקית הבית שלי.
לסיכום, כדאי מאוד להכיר את לינוקס. במאמרים הבאים אני אצא מנקודת הנחה שאתם מכירים לינוקס ולא אסביר כל פקודה שיש פה. אבל אפשר לראות שזה לא ממש נורא. יאללה, תהיו מתכנתים אמיתיים ותעיפו את ה-GUI הזה לכל הרוחות 🙂
זה הידע שנדרש להבנת התוכנה עם רספברי פיי. יש עוד כמה מאמרים מעניינים בקטגוריה למשל איך בונים כלי ניטור שיושב על רספברי פיי, או שרת מיינקראפט על רספברי פיי, או שרת ווב עם וורדפרס (!) – יש באמת המון פרוייקטי תוכנה מגניבים ממש שאפשר לעשות איתו
מי שרוצה לקחת את זה לכיוון ה-IoT, יכול לדלג את הפוסט של המבוא לרספברי פיי – המעגל החשמלי.
4 תגובות
אמממ לא ראיתי שכתבת אך יש אפשרות לכתוב
ssh user@ip -X
ה X נותן לטעון תוכנות גראפיות מהצד שלו אצלך
זה ממש נוח ומגניב
מומלץ להתקין את Windows Terminal במקום cmd.
פוסט מעולה, תודה!
יצא שחיבור ה־SSH לא עבד, למרות כל הצעדים שעשיתי. נראה שהאופציה לחיבור דרך ה־SSH מבוטלת כברירת מחדל במערכות הפעלה של Raspberry החל מ2016.
במקרה הזה קיבלתי את השגיאה הבאה:
ssh: connect to host xxx.xxx.xx.x port 22: connection refused.
מה שצריך לעשות הוא פשוט להפעיל את האופציה לחיבור SSH אחרי שהכנתם את הקובץ. אם זו השגיאה שקיבלתם, הנקודה השניה בלינק הבא תעזור לכם להפעיל את האפשרות להתחבר דרך SSH:
https://www.raspberrypi.org/documentation/remote-access/ssh/
עשיתי את החיבור בעזרת הכתובת ip וזה כותב לי :
connect to host 10.42.0.1
port 22 connection timed out.
מה אפשר לעשות?