תכנות בלינוקס

תגים: תכנות , לינוקס

תכנות בלינוקס

מבוא

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

המדריך יראה:

  1. כיצד ליצור קשר ראשוני עם המערכת
  2. כיצד להכין סביבת עבודה בסיסית ולכתוב את התכנית הראשונה

המדריך לא ילמד:

  1. תיכנות
  2. קריאות מערכת של לינוקס
  3. מבנה מערכת הקבצים בלינוקס

דרישות קדם:

  1. מערכת לינוקס עובדת (הדוגמאות יבוצעו על מערכת Debian GNU/Linux)
  2. ידע בסיסי בתיכנות (הדוגמאות יובאו בד"כ בשפת התכנות C)

הקדמה

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

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

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

קישור לדף המדריכים בפנגווין

קישור למדריך שימוש במסוף בפנגווין

קישור לדף מדריכי התכנות בפנגווין

יצירת קשר עם המערכת

המסוף והמעטפת

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

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

משתמשי גנום ימצאו את המסוף שלהם דרך תפריט העזרים תחת השם מסוף. משתמשי kde וסביבות עבודה אחרות גם יוכלו למצוא תכנת מסוף דרך התפריט הראשי שלהם.

תמונה של מסוף טקסט המכיל מקלדת לקלט ומדפסת (במקום מסך) לפלט

מסוף טקסט

( התמונה נלקחה מהויקיפדיה ערך terminal והיא Public domain )

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

תמונת מסך של מדמי מסופים שונים

מסופים שונים

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

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

תמונה המדגימה שימוש בפקודות ls mkdir cat ו gcc ב bash

bash
  • פקודות שרצוי לדעת:

ls - מציג את רשימת הקבצים

cd - משנה את נתיב העבודה

cp - מעתיק קבצים

mv - מזיז קבצים

rm - מוחק קבצים

mkdir - יוצר מדריכים

  • מידע מפורט על כל פקודה אפשר לקבל ע"י פקודת man

למשל הפקודה

man ls

תתן פרוט לגבי אפשרויות השימוש השונות בפקודה ls. מקשי הגלילה יגללו את דפי העזרה והמקש q יחזיר אותנו חזרה אל המעטפת. אפשר ללמוד עוד על הפקודה man בעזרת הפקודה man man :-)

קישור למדריך שימוש במסוף בפנגווין

סביבת עבודה

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

עורך טקסט

כדי לכתוב תכנה צריך עורך טקסט. בלינוקס מבחר גדול של עורכי טקסט, כמעט כולם מכילים הרחבות המיועדות למתכנתים. הרחבות נפוצות הן הדגשת קוד, השלמת פקודות, קטעוני קוד מוכנים, חיפושים שונים, ועוד. עורכי טקסט נפוצים הם gedit - עורך הטקסט של גנום, kate - עורך הטקסט של kde ו vim - עורך טקסט בעל התנהגות דומה לעורכי טקסט סטנדרטיים ביוניקס.

תמונת מסך של gedit kate ו vi

עורכי טקסט שונים

משתמשים חדשים ירצו להשתמש באחד מעורכי הטקסט שבאים עם המערכת הגרפית שלהם. משתמשי גנום ימצאו את gedit בתפריט העזרים תחת השם עורך-טקסט, ומשתמשי kde ימצאו את kate דרך התפריט הראשי של המכתבה גם כן. ל vim מנשק משתמש חזק מאוד אך הוא דורש לימוד, רצוי להתחיל להשתמש בו רק לאחר קריאת מדריך. קישור לדף הבית של פרויקט vim

מהדר

לצורך הידור התכנה שכתבנו נשתמש במהדר של פרויקט GNU. המהדר נקרא gcc והוא מכיל תכונות רבות.

לצורך הדגמת השימוש נכתוב תכנית קטנה בשפת C בעזרת אחד מעורכי הקוד שלנו.

#include <stdio.h>
int
main (int argc, char* argv[])
{
   printf ("Hello World\n");
   return 0;
}

כעת נשמור את הקוד שכתבנו תחת השם hello.c ונהדר אותו בעזרת המהדר שלנו. ניכנס למעטפת, ניגש אל המדריך בו שמרנו את קובץ הקוד hello.c, ונריץ את המהדר

gcc -g -Wall -o hello hello.c
  • פרוט הדגלים בהם השתמשנו להדר את התכנית hello.c
הדגל g
אומר למהדר להכניס מידע לצורך דיבוג לתוך קובץ הריצה שיווצר. מידע זה יעזור לנו אח"כ במידה ונרצה לדבג את התכנה שלנו.
הדגל Wall
אומר למהדר להוציא הודאות שגיאה עבור כל שגיאה שהמהדר חושב שקיימת בקוד. הודעות אלו יעזרו לנו לשפר את הקוד.
הדגל o
אומר למהדר את שם קובץ הריצה שאנו מבקשים ממנו ליצור (במקרה הזה hello). בלעדיו שם קובץ ברירת המחדל הוא a.out

לאחר שיצרנו את תכנית הריצה hello אפשר יהיה להירץ אותה. הפקודה

./hello

תריץ את התכנית שיצרנו

תמונה של עורך טסקט ומסוף, במהלך הידור קוד

מהדר

(לחץ על התמונה לקבלת גרסה גדולה)

הערה

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

הערה

בדביאן המהדר שלנו אינו מותקן כברירת מחדל ויש צורך להתקינו. הפקודה הבאה תתקין עבורנו את התכנה החסרה: apt-get install build-essential

קישור למדריך שימוש ב gcc בפנגווין

עזרה

על הפקודה man למדנו כאשר רצינו להשתמש במעטפת ורצינו לקבל מידע מפורט יותר לגבי הפקודות השונות הקיימות במעטפת שלנו. הפקודה man מספקת מידע לא רק על פקודות המעטפת אלה גם על כלי התכנות והספריות השונות במערכת. הפקודה man מחפשת את המידע לפי מחלקות, מחלקה 1 עוסקת בפקודות המעטפת, מחלקה 2 עוסקת בקריאות מערכת ומחלקה 3 בפונקציות הקיימות בספריות המותקנות במערכת.

לדוגמה הפקודה

man 3 printf

תציג מידע לגבי הפונקציה printf המצויה בספריה הסטנדרטית. המספר 3, לאחר הפקודה man, מציין כי אנו מתכוונים למידע על הפונקציה printf (מחלקה 3) ולא על הפקודה (מחלקה 1) בעלת השם הזהה.

תמונה המציגה את הפלט של פקודת man עבור הפונקציה printf

man

הערה

בדביאן דפי ה man של מחלקות 2 ו 3 , המכילים מידע על קריאות המערכת והפונקציות השונות, אינם מותקנים כברירת מחדל ויש צורך להתקינם. הפקודה הבאה תתקין עבורנו את דפי המידע החסרים: apt-get install manpages-dev

איך להמשיך

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

קישור לדף מדריכי התכנות בפנגווין