דרך אחת היא בעזרת ps.
לדוגמא:
לאחר מכן הפלט יופיע ב - somefile. יש לקרוא 'man ps' למידע נוסף לגבי האופציות, אבל למעשה אלה האופציות הכי שימושיות. (יש מקרים בהם משתמשים ב'l' במקום ב 'u' - יש לקרוא man לגבי האופציות הנ"ל) יש לשים לב שהאופציות שונות בגרסאות שונות של Unix - אלה אופציות המתאימות לכמה גרסאות לרבות Linux. ל - Irix ו - Solaris לדוגמא (ccsg, comfy), נשתמש באופציות -elf במקום -auxww. אפשר כמובן לבצע pipe על הפלט לתוך פקודה אחרת.
לדוגמא:
זה ידפיס את ה - (PID process ID) של כל התהליכים (processes) שיש את המילה 'testing' בפלט שלהם (לדוגמא: המילה 'testing' נמצאת בשורת הפקודה שלהם או שהם מורצים ע"י משתמש בשם זה) עוד פקודה שימושית היא'top'. היא מראה סטטוסים כלליים במערכת וגם מידע לגבי התהליכים הצורכים את רוב ה - CPU. TOP יכולה לבצע גם משימות, לא רק להראות מידע. יש להקליד 'h'מתוך TOP כדי לראות הסבר קצר או לקרוא ב - 'man top'
יש להקליד kill pid כאשר pid הוא מספר הזיהוי של התהליך שאותו נרצה להרוג. ניתן גם לשלוח איתותים נוספים לתהליך - יש לקרוא 'man kill'.דרך נוספת היא ע"י לחיצה על 'k' מתוך top
ישנם כמה אפשרויות - צוות system ממליץ עלשימוש ב- Xpra:
1- nohup - הצורה הקלאסית לבצע זאת היא :nohup process arg1 arg2 ... >& out & הפקודה nohup גורמת לתהליך להתעלם מסיגנל ה - hangup שמתקבל כאשר נסגור חלון.
2- screen- נכנסים למנהל החלונות מבוסס מסוף - screen.כאשר מריצים את screen, אפשר לדמיין שפתחנו מסוף או מסך נוסף לשרת שאנו עובדים עליו. אנחנו נריץ תהליך על אותו מסוף, נתנתק ממנו ונוכל לחזור לאותו מסוף מתי שנרצה.כדי להריץ את screen, יש להקליד מה - unix command line את הפקודה screen.החלון לא ישתנה אבל בכותרת תופיע המילה screen:
כאשר נמצאים בתוך screen, ניתן לבצע כמה פעולות:
כדי להתנתק באופן זמני מ screen, יש ללחוץ על <Ctrl><a>< d>. במקרה הזה, ה screen עדיין יהיה במצב פעיל והתהליך שלך עדיין יהיה במצב ריצה.
כדי לחזור ל screen, יש להקליד מה - unix command line: screen -r
יציאה מסודרת מ - screen תעשה ע"י הקלדת הפקודה exit.ניתן לפתוח יותר מחלון אחד בתוך screen, לעבור מחלון אחד לשני, להעתיק ולהדביק ביניהם וכו'. אפשר למצוא הסבר נוסף לגבי רוב הפקודות השימושיות ע"י לחיצה על <Ctrl><a> <?>.
3- xpra - אפשר לדמיין שפתחנו מסוף או מסך נוסף לשרת שאנו עובדים עליו. אנחנו נריץ תהליך על אותו מסוף, נתנתק ממנו ונוכל לחזור לאותו מסוף מתי שנרצה. כדי להריץ תהליכים ב-xpra
בטרמינל של unix אנחנו רוצים להריץ תוכנית, שהיא תמשיך גם שהטרמינל נסגר -בדוגמה שלנו Matlab
check if it matlab start running
check what display is used in xpar instance
Now you can close the terminal
על מנת לחזור לחלון ולעקוב אחר התוכנית חשוב לזכור את שם המכונה ממנו רץ התוכנית ואת הערך Display שהשתמשת בו:
From Windows open MobaXterm session
xpra attach ssh:machine_name:DIPLAY_value
על מנת לעצור את התהליך
למידע נוסף https://www.xpra.org
צריך להריץ בבית X server, למשל eXceed או XWin (של Cygwin. (Cygwin ניתן להוריד בכתובת: http://www.cygwin.com בתהליך ההתקנה, במסך Select Packages יש לבחור ב - X11 וברשימה שתופיע, יש לבחור ב - WindowMaker: WindowMaker.
לאחר ביצוע ההתקנה, יש לבצע את הפעולות הבאות בכל פעם שרוצים להתחבר לשרתי ה - Unix :
1) יש להתחבר לשרת ה - Unix המבוקש (לדוגמא: nova.cs.tau.ac.il) עם תוכנת ssh כגון putty ולקנפג אותה כך שתבצע X11 forwarding
2) פותחים session. אם החלטתם לעבוד עם cygwin, יש להריץ את cygwin.bat מהספריה שבה נמצאת התוכנה.יתכן ויופיע קישור לקובץ זה בשולחן העבודה.
למשתמשי Exceed: קנפוג ה - X server
יש להריץ את הפקודה:
לדוגמא:
ה- Shell היא תוכנית שמאפשרת למשתמש לעבוד ב- line mode מול מערכת ההפעלה – הרצת תוכניות, ניהול עץ הספריות שעל המחשב,יצירת קבצים והצגת פרטים עליהם, וכד'. בעבר עבודה מתוך Shell הייתה הדרך העיקרית לביצוע משימות אלו. בעשור האחרון התפתחו במידה רבה ממשקים גראפיים לביצוע אותן הפעולות (למשל Xwindows במערכות Unix), אך השימוש ב- Shell עדיין נפוץ מאוד, ולפעמים גם נוח יותר (למשל כשמתחברים למחשב מרוחק שקו התקשורת אליו איטי).
כדי לפתוח Shell יש לפתוח תוכנית שמדמה Console של מחשב. בסביבה שלנו צריך להפעיל את תוכנית Konsole שנמצאת ב-Applications בתת-תפריט System Tools.
על המסך יפתח חלון, ובו שורת הפקודה:
מספר פקודות בסיסיות לעבודה מתוך shell:
שם הפקודה | מה עושה הפקודה |
---|---|
ls -l | מציגה את תוכן הספרייה הנוכחית |
pwd | מציגה את שם הספרייה הנוכחית |
cd dirname | נכנסת לספרייה dirname |
cd .. | עולה לספריית האב של הספרייה הנוכחית |
cd | חוזרת לספרייה הבית של המשתמש |
mkdir dirname | יוצרת ספרייה חדשה בשם dirname |
rmdir dirname | מוחקת את הספרייה ששמה dirname (הספרייה צריכה להיות ריקה לפני המחיקה). |
cp src dst | מעתיקה את הקובץ src לקובץ חדש בשם dst. |
rm filename | מוחקת את הקובץ filename |
mv src dst | משנה את שם הקובץ src לשם dst |
cat filename | מציג את תוכן הקובץ filename |
man command | מציג תיעוד על הפקודה command (מה היא עושה, פרמטרים, וכד'). ליציאה ממסך העזרה יש להקיש q. |
ls – בכדי להציג תוכן של תיקייה.
ls -la מציגה תוכן של סיפרייה כולל הקבצים המוסתרים.
cd - ביכדי להיכנס לתיקייה
~ cd – להגיע מכל מקום לתיקיית הבית
.. cd – לעלות תיקייה אחת למעלה
rm – מחיקת קובץ בודד
rm -r מחיקת תיקייה שלימה.
mkdir יצירת תיקייה.
mv – העברת תיקייה או קובץ למיקום אחר משמש גם לשינוי שם של תיקייה או קובץ.
cat – מציגה תוכן של קובץ
more – מציגה את התוכן של הקובץ. במידה והקובץ ארוך מידיי להצגה על המסך אז הקובץ יציג רק מספר מסויים של שורות וניתן יהיה לעבור הלאה עם מקש ה enter או לחיצה על הרווח.
pwd – מציגה את המיקום שבו נימצא המשתמש באותו הרגע.
cp – פקודה להעתקת קובץ
ps - מציג את התהליכים שרצים כרגע. ps -A מציג את כל התהליכים שרצים מכל המשתמשים.
בדף זה יוסברו העקרונות הבסיסיים של פיתוח תוכניות בשפת C בסביבת UNIX. ההסבר על השלבים השונים בפיתוח ילווה בדוגמא שיש לבצע במקביל לקריאה.
לפני תחילת העבודה פתח חלון console וצור ספרייה חדשה ב- home directory שלך בשם devunix כדאי שכל הקבצי העבודה ישמרו בצורה מסודרת בספרייה אחת.
השלב הראשון בתהליך הפיתוח הוא כתיבת התוכנית בשפת התכנות בה אנחנו משתמשים (במקרה שלנו זו שפת C ). כתיבת התוכנית מתבצעת עם עורך טקסט. אנחנו נדגים שימוש בעורך בשם Emcas, שהוא נפוץ מאוד בסביבת ה- Unix. עורך Emcas הוא מורכב יחסית לעורכים אחרים (לדוגמה pico) אולם הוא מכיל יכולות חזקות לעבודת פיתוח של תוכניות ב- C, ולכן מומלץ להשקיע זמן בלימודו.
כדי לפתוח Emcas פתח חלון console והקש:
יפתח חלון חדש עם הלוגו של הפרויקט ופרטים נוספים. כדי לפתוח קובץ חדש לחץ, file -> open file בתחילת החון תופיע השורה עם הכיתוב find file: /some/path כאן המקום לקבוע את השם והמיקום של הקובץ החדש שלכם. במקום some/path/ רשמו devunix/myprog.c/~ והקישו ENTER.
אנינו רוצים לצור קובץ חדש בשם myprog בספריה devunix בספריית הבית.
לצטרך הדוגמא נכתוב תוכנית קצרה בשפת C הקלד את הפקודות הבאות על מסך emcas:
#include <stdio.h>
int main()
{
printf(“hello world !\n”)
return 0;
}
כדי לשמור על הקובץ יש ללחוץ file->save
בסוף השורה שמתחילה ב- printf צריך להופיע ; אנחנו נשמור את הקובץ ללא ; על מנת ללמוד איך להתמודד עם שגיאות במהלך תהליך ההכנה של תוכנית
בשלב זה נתרגם את התוכנית לשפת מכונה. התהליך הזה מורכב משני חלקים עיקריים :
את שני התהליכים ההלו נבצע בעזרת compiler בשם gcc. על מנת לקמפל את התוכנית שכתבנו:
הסבר: אנחנו מריציפ את התוכנית gcc מעבירים לה שני פרמטרים:
wall- :נרצה שהקומפילר יידוח לנו על שגיאות (errors) ואהזרות (warnings) מכל רמת חומרה שהיא. ברירת המחדל היא להדפיס רק שגיאות.
o- :שם הקוץ שנרצה לקבל בסוף התהליך, חשוב לתת את הפרמטר השה כי ברירית המחדל היא a.out
myprog.c :שם הקובץ שנרצה לקמפל (שם הקובץ שכתבנו)
אם תהליך הקומפילציה עבר כמו שצריך, הפקודה צריבה להסתיים ללא כל פלט. אם היו שגיאות במהלך התהליך, הם ידווחו אל המסך. כאמור, הקובץ ששמרנו הכיל שגיאה תחבירית הפקודה printif הסתיימה ללא ";" אחרי הרצה ה-gcc אתם אמורים לקבל פלט דומה לפלט הבא:
הקומפיילר מדווח על שגיאות קומפילציה. בשורה רואים כי השגיאה היא בפומקציה הנקראת main. בשורה השניה ניתן לראות כי השגיאה היא בשורה 6 בקובץ myprog.c וכי הטעות היא טעות תחבירית לפני המילה return .
בסוף השלב הזה יש לנו קובץ הרצה של התוכנית שכתבנו.
כדי להריץ את התוכנית נכנס לספריית devunix ונכתוב:
(שים לב ל- "/." בתחילת התוכנית זאת פקודה ל-shell כי נרצה להריץ את התוכנית מהספרייה הנוכחית).
על המסך תופיעה השורה: hello world!
צורת ההתקשרות הבסיסית ביותר עם רוב מערכות ההפעלה המודרניות היא באמצעות תוכנית הנקראת Shell.
בדף זה תוסבר צורת השימוש ב- Shell ומספר פקודות בסיסיות.
ה- Shell היא תוכנית שמאפשרת למשתמש עבודה ב- line mode מול מערכת ההפעלה – הרצת תוכניות, ניהול עץ הספריות שעל המחשב,יצירת קבצים והצגת פרטים עליהם, וכד'. בעבר עבודה מתוך Shell הייתה הדרך העיקרית לביצוע משימות אלו. בעשור האחרון התפתחו במידה רבה ממשקים גראפיים לביצוע אותן הפעולות (למשל Xwindows במערכות Unix), אך השימוש ב- Shell עדיין נפוץ מאוד, ולפעמים גם נוח יותר (למשל כשמתחברים למחשב מרוחק שקו התקשורת אליו איטי).
ישנם סוגים שונים של Shells. אנחנו נעבוד עם Shell שנקרא tc shell (או בקיצור tcsh).
כדי לפתוח Shell יש לפתוח תוכנית שמדמה Console של מחשב. בסביבה שלנו (Linux Redhat 7.3 עם KDE) ניתן לעשות זאת ע"י לחיצה על ה- icon שצורתו
בשורה שבתחתית המסך (התוכנית הזו נקראת konsole).
על המסך יפתח חלון, ובו שורת פקודה:
בדוגמא שלנו, nova הוא שם המחשב שעליו אנחנו עובדים.
ניתן לפתוח מספר חלונות console במקביל.
לכל משתמש במערכת ה- Unix של האוניברסיטה נוצרת ספרייה מיוחדת שנקראת ספריית הבית (Home directory). הספרייה הזו נגישה מכל מחשבי ה- Unix וה- Windows של בית הספר. מיד עם הפעלת ה- Shell, אנחנו ממוקמים ב- Home Directory שלנו.
גם אם זו הכניסה הראשונה שלך למערכת, סביר להניח שיהיו ב- Home directory שלך מספר קבצים שנוצרים באופן אוטומטי לכל משתמש חדש.
התו השמאלי ביותר (בדוגמא שלנו התו d) מייצג את סוג הקובץ: "d" מייצג ספרייה, "-" מייצג קובץ רגיל, וכד'. ישנם סוגים נוספים שלא נזכיר כאן.
התווים הבאים אחריו (בדוגמא שלנו rwx------) מייצגים את ההרשאות שניתנו לקובץ, נרחיב עליהם מאוחר יותר.
בטור השני מופיע מספר (בדוגמא שלנו 3) שמסמן את המספר ההצבעות שיש אל הקובץ (בדף זה לא נדבר על הנושא הזה).
לכל קובץ ב- Unix יש שם משתמש שהוא הבעלים של הקובץ, ושם קבוצת משתמשים שהיא הקבוצה של הקובץ. בד"כ מדובר בשם המשתמש שיצר את הקובץ, ובקבוצת המשתמשים שלו. השיוך הזה משמעותי בעיקר לצרכי הרשאות גישה לקובץ.
בטור השלישי והרביעי מופיעים שם המשתמש שהוא הבעלים של הקובץ ושם הקבוצה של הקובץ (בדוגמה שלנו artzi ו- math1).
בטור החמישי יופיע גודל הקובץ בבתים (בדוגמא שלנו 4096).
בטור השישי יופיע תאריך השנוי האחרון של הקובץ (Jan 26 18:02).
ובטור השישי מופע שם הקובץ (Desktop).
בטבלה המצורפת מופיעות מספר פקודות בסיסיות לעבודה מתוך shell:
שם הפקודה | עושה הפקודה |
---|---|
ls -l |
מציגה את תוכן הספרייה הנוכחית |
pwd |
מציגה את שם הספרייה הנוכחית |
cd dirname |
נכנסת לספרייה dirname |
cd .. |
עולה לספריית האב של הספרייה הנוכחית |
cd |
חוזרת לספרייה הבית של המשתמש |
mkdir dirname |
יוצרת ספרייה חדשה בשם dirname |
rmdir dirname |
מוחקת את הספרייה ששמה dirname (הספרייה צריכה להיות ריקה לפני המחיקה). |
cp src dst |
מעתיקה את הקובץ src לקובץ חדש בשם dst. |
rm filename |
מוחקת את הקובץ filename |
mv src dst |
משנה את שם הקובץ src לשם dst |
cat filename |
מציג את תוכן הקובץ filename |
man command |
מציג תיעוד על הפקודה command (מה היא עושה, פרמטרים, וכד'). ליציאה ממסך העזרה יש להקיש q. |
במערכת Linux סטנדרטית קיימים עשרות עורכים (editors) שונים. בסעיף זה נציג עורך פשוט מאוד בשם pico. כדי להפעיל אותו, פשוט הקש pico בשורת הפקודה. אחרי ההפעלה תוכל לערוך את הקובץ שלך. בשורה התחתונה מופיעות הפקודות העיקריות שהעורך מספק. הסימן ^ מסמן כאן (וברוב עולם המחשוב) את המקש Ctrl. למשל, כדי לשמור את הקובץ שכתבנו, יש ללחוץ ctrl ועל התו o (^-O).
מנגנון ההרשאות ב- Unix מכיל 3 סוגי הרשאות, ו- 3 גורמים שניתן להעניק להם הרשאות.
read – מאפשר קריאה מהקובץ.
write – מאפשר שינוי של הקובץ.
execute – מאפשר הרצה של תוכנית (במקרה ומדובר בקובץ הרצה).
ההרשאות האלו יכולות להינתן ל- 3 גורמים:
owner – הבעלים של הקובץ.
group – הקבוצה של הקובץ.
everybody – כל משתמש אחר שאינו הבעלים של הקובץ או חבר בקבוצה של הקובץ.
אפשר להגדיר כל שילוב של ההרשאות הנ"ל לכל אחד מהגורמים. כשמציגים פרטי קובץ עם הפקודה ls –l, ההרשאות מופיעות בטור הראשון, עבור הבעלים, הקבוצה ושאר העולם:
קריאה כתיבה והרצה לבעלים של הקובץ – המשתמש shalitaa (עפ"י השלשה השמאלית).
אף הרשאה לחברי הקבוצה של הקובץ – הקבוצה math1 (עפ"י השלשה האמצעית).
הרשאת קריאה והרצה לכל מי שאינו המשתמש shalitaa או חבר בקבוצה math1 (עפ"י השלשה הימנית).
כדי לשנות הרשאה על קובץ, נשתמש בפקודה chmod mode filename, כאשר filename הוא שם הקובץ שרוצים לשנות לו הרשאות, ו- mode הוא סוג ההרשאה.
לדוגמא, כדי להוסיף לקבוצה של הקובץ count ההרשאות קריאה והרצה, נרשום:
כשמריצים תוכנית, הפלט שלה מופיע על המסך. ה- Shell מאפשר לשנות את ההתנהגות הזו, ולהפנות את הפלט למקום אחר (כקלט לתוכנית אחרת, למשל).
כדי להעביר פלט תוכנית כקלט לתוכנית אחרת, נכתוב prog1 | prog2 (כש- prog1 היא התוכנית שרצה ראשונה, ו- prog2 היא התוכנית שרצה שנייה, ומקבלת כקלט את פלט התוכנית הראשונה).
לדוגמא, התוכנית head מחזירה את 10 השורות הראשונות שהיא קיבלה בקלט. ולכן הפקודה ls –l | head תחזיר את 10 השורות של הפלט של ls –l.
ניתן גם להפנות את הפלט של תוכנית לתוך קובץ. כדי להעביר פלט תוכנית לתוך קובץ (במקום למסך), נכתוב prog > filename (כאשר prog הוא שם התוכנית, ו- filename הוא שם הקובץ בו נרצה לשמור את הנתונים).
לדוגמא, כדי לשמור את הפלט של ls –l בקובץ output, נרשום ls –l > output.
את המדריך למשתמש של כל הפקודות שהצגנו (וכל פקודה אחרת במערכת) ניתן להציג באמצעות הפקודה man. למשל, man ls יציג תיעוד מפורט של הפקודה ls .
לרוב הפקודות שהצגנו כאן יש מקבילות גראפיות, שדומות מאוד לצורת העבודה ב- Microsoft windows, ואנחנו מניחים שלא תתקשו להבין איך משתמשים בהם בעצמכם.
כיוון שלא ניתן לבצע MOUNT \samba (אלא רק למורשים בלבד,כחלק מהקשחת המערכת) , אנו מאפשרים ביצוע MOUNT בתצורת sshfs - דהיינו , שיתוף מערכת קבצים חיצונית הנתמכת ע"י פרוטוקול SFTP (להרחבה - https://en.wikipedia.org/wiki/SSHFS)
וודאו תחילה כי תחנת WIN מאפשרת גישה דרך SSH (ניתן להוריד תוכנות כגון OPENSSH , או לחילופין דרך אמולטורים כגון CYGWIN,MOBAXTERM) WIN10 לדוגמה , מאפשר גישה בssh כבילדאין בתוך המערכת (להרחבה - https://www.howtogeek.com/336775/how-to-enable-and-use-windows-10s-built...)
אם אתם מתכוונים לעבוד בתצורת LINUX-LINUX - אין צורך לעשות כלום אלא לוודא כי פורט 22 (או כל פורט אחר שהגדרתם בהגדרות SSH אצלכם) מאזין.
לאחר מכן , גשו לתחנת הלינוקס שלכם שעליה את מתכוונים לעשות MOUNT לתחנת הWIN . צרו תחילה MOUNTPOINT ולאחר מכן הקישו:
sshfs username@host:[path to dir] mountpoint
תתבקשו לתת סיסמה בהתאם להגדרות אצלכם.
בכדי לוודא את שהפועלה בוצעה יש להקיש:
df -ha [mountpoint]
SSHFS מגיע עם אופציות רבות והגדרות נוספות. קראו תחילה man sshfs.
בכדי לעשות UMOUNT יש להקיש:
fusermount -u [mountpoint]
להרחבה :
https://www.digitalocean.com/community/tutorials/how-to-use-sshfs-to-mou...