שוביט מחשוב

טיפים למתחיל בלינוקס - חלק א'

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

לגבי Centos
אם תחפשו מידע על לינוקס בגוגל סביר שאחת המילים היותר נפוצות שתתקלו בהן הינה Centos. Centos זה Distribution חינמי, איכותי ומאד-מאד נפוץ, בעיקר בגלל שמי שעומד במימון בתחזוקה שלו זו חברת Red Hat (רד האט), ואין כמעט הבדל כלל בין גרסת Linux Red Hat מסחרי (שהינה בתשלום) לבין גרסת Linux Centos. עבור CentOS או Red Hat ישנה מערכת הפעלה נוספת מסוג Fedora, והיא "הפצה מקדימה" לשתי מערכות ההפעלה האחרות. ז"א, שאם יש טכנולוגיה חדשה שרוצים לעדכן על CentOS או Red Hat, היא תרוץ קודם על מערכ הפעלה מסוג Fedora על מנת לוודא שהטכנולוגיות מוטמעות תקין. לאחר זמן הרצה מסוים ב Fedora ושמצאו שהמערכת והטכנולוגיות החדשות שהוטמעו עובדות תקין, אפשר להפיץ גם עבור CentOS או Red Hat.
החל מסוף שנת 2020 יש התפתחות שאינה חיובית עבור משתמשי CentOS. חברת Red Hat הודיע שהיא מפסיקה לשחרר גרסאות של CentOS, ולעבור לגרסה של CentOS Stream. ככה מוגדרת מערכת הפעלה מסוג CentOS Stream : continuously delivered distro that tracks just ahead of Red Hat Enterprise Linux (RHEL) development, positioned as a midstream between Fedora Linux and RHEL שזה אומר שבמקום CentOS שהוא בדיוק כמו Red Hat LInux, יהיה מעכשיו CentOS Stream שהוא גרסת ביניים, בין ה Fedora לבין ה Red Hat Linux. משתמשי לינוקס רבים כמובן שלא אהבו את החדשות האלו, שכן זה אומר שצפוי שגרסת ה CentOS Stream יכולה לגלות התנהגות בלתי יציבה. ולכן קהילת הקוד הפתוח התחילה לעבוד על מערכות הפעלה חדשות, עם קוד המקור של Red Hat, אבל שאינן תחת האחריות של Red Hat. דוגמאות לשתי מערכות הפעלה כאלו הינן Rocky Linux ו AlmaLinux. אני ממליץ לכל הקוראים לצפות בסרטון הבא , בו הדברים מוסברים באופן נרחב.

העברת קבצים בין ווינדוס ללינוקס
כל משתמש Windows יודע שכאשר רוצים להעביר קבצים בין שני מערכות הפעלה חלוניות אז משתמשים בתחביר הדאבל Backslash - למשל, כדי להעביר את קבצים לשרת ששמו Server1, אז נבצע פשוט :

\\server1

ובמידה והפרוטוקולים הרלוונטיים (SMB ו NetBios) מאופשרים וישנן הרשאות ותיקיות משותפות על server1, אז נוכל להעביר אליו קבצים. כאשר רוצים להעביר קבצים באופן דומה ללינוקס, יש צורך להתקין את שירות ה Samba על שרת לינוקס, ובכך לאפשר תקשורת דומה משרת Windows לשרת לינוקס, ולהעביר קבצים לשרת הלינוקס. דרך נוספת היא להעביר באמצעות שירות FTP שמתקינים על אותו שרת לינוקס (לא באמצעות תחביר הדאבל Backslash). אבל לעיתים אנו רוצים להעלות קבצים לשרת ווינדוס באופן ספורדי, או לעיתים רחוקות, וחבל להשקיע בהתקנה של שירות Samba או FTP על שרת הלינוקס. במקרה כזה, נוכל להשתמש בתוכנה כמו WinSCP (חינמית כמובן לגמרי). פשוט להתקין את ה WinCP על מערכת ה Windows. התוכנה מאפשרת קודם כל חיבור מאובטח ב SSH לשרת ה Linux בתצורה GUI של File Transfer (בניגוד לתוכנה כמו Putty שמאפשרות חיבור בתצורת קונסול). אין צורך לבצע התקנה של סרביס מסוים על שרת הלינוקס, רק לוודא שהשרת מאזין בפורט 22 SSH. לאחר חיבור שרת הלינוקס, אפשר פשוט לבצע העברת קבצים (ידנית) באמצעות Drag&Drop. לצורך הפשטות אפשר לזרוק את הקבצים לתיקיית ה tmp/ בלינוקס, משום שלתיקייה הזו לא צריך הרשאה מיוחדת כדי להעתיק קבצים.
אפשר לצפות בוידאו הבא על מנת לראות איך מתבצע.
כמו כן, אוסיף גם תמונה משלי :

הרצת PowerShell על לינוקס
כידוע, PowerShell היא שפת סקריפט איכותית שרצה על שרתי Windows. בשנים האחרונות פיתחו ב Microsoft את היכולת להריץ אותה גם על שרתי Linux. ההתקנה על שרת לינוקס היא מאד פשוטה, ואפשר לקרוא בדוקומנטציה של Microsoft איך לבצע התקנה (שימו לב לגרסה של ה PowerShell) , לפי הפצת הלינוקס המתאימה. חשוב לציין שהתקנת ה PowerShell על שרת לינוקס עושה שימוש ברכיבי dotnet core, שזו טכנולוגיה (חדשה יחסית) שבגדול מאפשרת הרצה של רכיבי מייקרוספט (כמו Powershell) על פלטפורמות שונות (כמו לינוקס או MAC).
אבל רגע, הרי ללינוקס יש שפת סקריפט משלה (bash) אז למה להשתמש בשפה אחרת ועוד בכזו ששייכת ל Windows? תשובה - אתם ממש לא חייבים, ויש אפילו כאלו שיגידו לכם שמומלץ להימנע מזה, מטרת המאמר היא רק להראות שקיימת האופציה. עם זאת, אני כן יכול למצוא לפחות שני הסברים מדוע - א. למי מעדיף שלא לעבוד עם פקודות לינוקס באופן שוטף וללמוד אותן (מומלץ כן לדעת פקודות לינוקס), אלא לעבוד עם פקודות PS ותחבר PS שהוא יותר מוכר. ב. תחביר של PS יכול להיות יותר אינטואיטיבי, ולפעמים גם הרבה יותר חסכוני, על מנת לקבל תוצאות. שימו לב למשל לדוגמה המובאת במאמר הבא במקום לכתוב שורת קוד ארוכה יחסית ב Bash כדי להוציא איזה Attribute של Process (עיינו במאמר המצורף) אפשר להשתמש בפקודת PS קצרה ואינטואיטיבית הרבה יותר. למשל כך נראית פקודה שמוצאת את ה ID של ה PROCESS :

(Get-Process -Name crond).Id