27/04/2024

מדריך ללינוקס בעברית למתחילים חלק 1 - מאיפה מתחילים?



פתיח (חפירות):

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

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

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

"איך לתרגל? על מה לתרגל?"

בשביל שתוכלו לתרגל כמו שצריך, צריך להתקין את Windows Terminal על המחשב שלכם (או Putty מי שמכיר, אבל אני לא ממליץ כי לא תוכלו לראות את הצבעים של התיקיות והקבצים בלינוקס וזה מאוד חשוב) וכמובן שצריך להתקין את הלינוקס על מערכת וירטואלית כזאת או אחרת ולהכין אותה להתחברות דרך SSH 

(למי שלא מכיר מה זה SSH - הינה הסבר שנלקח מ"ויקיפדיה" - Secure Shell (בראשי תיבות: SSH) הוא פרוטוקול לתקשורת מחשבים המאפשר ביצוע פעולות על מחשב מרוחק לאחר תהליך הזדהות (login). הוא נועד להחליף את rlogin ,RSH ו־telnet ולאפשר תקשורת מאובטחת ומוצפנת בין שני מחשבים לא תלויים ברשתות לא מאובטחות. SSH פועל מעל TCP, והפורט הסטנדרטי שלו הוא 22.)


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

¿?  חייב הגדרה שהמערכת תוכל לצאת לאינטרנט בשביל שתוכלו להוריד ולהתקין תוכנות כחלק מהתרגול ¿?

התחברות עם Windows Terminal נראית ככה (הרבה יותר עדיף מ Putty):

"ב Putty זה לא היה קורה"


התקנת Windows Terminal

מאיפה להוריד את התוכנה?
1) מחנות האפליקציות של מיקרוסופט (כן כן מסתבר שיש לדבר הזה שימוש) לחפש שם Windows Terminal



2) להוריד מהקישור הזה, ישירות מתוך GitHub :לינק

    א. בהורדה הזאת תקבלו קובץ מסוג Appx (קובץ אפליקציה של ווינדוס) שנראה ככה:

ב. פשוט תלחצו עליו "דאבל קליק", יפתח לכם אשף ותתקינו את התוכנה, תעשו הפעלה מחדש, ואז תעשו חיפוש ב"התחל"
של Windows Terminal או כמו במקרה שלי "terminal"



לא צריך להריץ אותו בתור מנהל.

הגדרת SSH על הלינוקס

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

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



1. ראשית נפתח את הטרמינל:



¿? טיפ חשוב - בלינוקס אפשר להיעזר בכפתור ה-TAB לצורך השלמת פקודות¿?

2. נקיש את הפקודה: sudo apt update -y
    * לאחר מכן נתבקש להקיש את הסיסמא של המשתמש שלנו, נקיש אותה (כן לא רואים את מה שאתם מקישים) ונלחץ על ENTER, אם לא קיבלתם שגיאה אז הקלדתם אותה בצורה נכונה.


3. לאחר מכן נקיש את הפקודה: sudo apt install openssh-server


4. אם רץ לכם טקסט שנראה מפחיד רצח ואתם מרגישים כמו ב"מטריקס" כנראה עשיתם הכל נכון :).


5. נבדוק האם הסרוויס רץ, על ידי הפקודה: sudo systemctl status ssh 
 ונוכל לראות שהכל בירוק פרט ל "disabled" זה כרגע לא משנה מה זה, אבל צריך שזה יהיה ירוק


6. נריץ את הפקודה sudo systemctl enable ssh.service
    ונוכל לראות שהמערכת בעצם "עושה ENABLE" לסרוויס של ה SSH כך שהוא יפעל אוט' בהפעלת המחשב.


7. נריץ שוב את הפקודה sudo systemctl status ssh
    ונוכל לראות שעכשיו הכל בירוק



8. לאחר מכן נעבור לווינדוס ונפעיל את ה Windows Terminal,
    ונרשום את הפקודה: ssh username@linuxname

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


9. בהתחברות הראשונה המחשב Windows שלכם ירצה להוסיף את הלינוקס לרשימות שלו (בלי להכנס ליותר מדי פרטים,        המחשב עושה את התהליך הזה פעם אחת בלבד), בשביל שתוכלו להתחבר בפעמים הבאות, פשוט רשמו yes ו ENTER.


10. במידה וביצעתם הכל נכון, תקבלו עכשיו הודעה שמחייבת אתכם להכניס את הסיסמא של המשתמש שלכם בלינוקס, כיתבו       את הסיסמא (כן, לא תראו מה אתם מקלידים) ולחצו ENTER.



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



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

13. לאחר מכן בחלון ה Windows Terminal כתבו את הפקודות הבאות:
    * cd Desktop ולחצו ENTER
    * לאחר מכן בשביל להציג את התיקיה בשולחן העבודה כתבו ls ולחצו ENTER במידה והכל תקין, תראו את התקייה שיצרתם על שולחן העבודה בחלון הטרמינל שלכם, זאת אומרת שאתם מחוברים ללינוקס שלכם ואתם יכולים להתחיל לתרגל.





לכל שאלה כמו תמיד ניתן לפנות אלי במייל levl@leidertech.co.il

 

07/04/2023

מתקין החבילות של מיקרוסופט - הכירו את ה WinGet - המדריך המקיף.


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


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

אז, נתחיל?

מה זה בעצם "מתקין חבילות" ולמה צריך את זה?

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

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

לפני שתתקדמו ! שימו לב:
לפני שתמשיכו לקרוא, וודאו שאכן תוכלו להשתמש במדריך, פתחו את PowerShell והריצו את הפקודה WinGetבמידה וקיבלתם מידע אודות הפקודה, אז הכל תקין, אך במידה וקיבלתם הודעת שגיאה שאומרת שהמערכת לא מזהה את הפקודה winget, כנראה שאתם צריכים להתקין את Winget - ניתן לבצע התקנה מתוך חנות האפליקציות של מיקרוסופט, בצעו חיפוש של winget ובעצם יופיע כמה אפשרויות, אתם צריכים לבחור את האפשרות הזאת:




Search - נתחיל בדבר הכי טבעי, נצא מנקודת הנחה שאנחנו לא יודעים איזו תוכנה אנחנו מחפשים, ואנחנו מחפשים תוכנה חינמית לפריסת קבצי Zip - אז נריץ את הפקודה הכי טבעית - winget search zip (אני אוהב להשתמש ב Powershell אבל אתם יכולים להשתמש גם בשורת הפקודה הרגילה שהיא CMD, אגב אם עוד לא יצא לכם להשתמש ב PowerShell והייתם רוצים ללמוד על שורת הפקודה המדהימה הזאת, גם אם בחיים לא פתחתם אותו, בדיוק בשבילכם יש מדריך בין 10 חלקים למתחילים בדף ה"PowerShell" שנמצא כאן) והינה התוצאה של כלל התוכנות שיכולות לפתוח קיבוץ של זיפ:


ובעצם ניתן לראות את כלל התוכנות שנמצאו, חלקן מתוך חנות האפליקציות של מיקרוסופט MsStore וחלקן מתוך רשימה שמעדכנת הקהילה (לכן תקחו בחשבון שההתקנה היא בדרך כלל על אחריותכם, לדעתי האישית, אני לא חושב שמיקרוסופט תאפשר שיהיה קוד זדוני שיותקן דרך משהו שהיא מפרסמת), מה הבעיה ברשימה הזאת? זה שיש המון דברים ולך תדע עכשיו את מי כדי לנו להתקין, אבל נגיד שאנחנו מכירים את 7zip ואנחנו רוצים להתקין אותו, אז בעצם צריך לצמצם את הרשימה ולאפשר לנו ולבקש להציג לנו רק את 7zip, ובעצם נבצע את זה עם הפקודה הכי הגיונית שיש winget search 7zip ואז בעצם הרשימה תצטמצם:




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

Show - אז בשביל לקבל מידע אודות החבילה ולראות מאיפה בעצם היא הגיע למאגר התוכנות נריץ את הפקודה 
הבאה: winget show 7zip.7zip -למה דווקא בצורה הזאת? כי בדיוק בצורה הזאת היא כתובה בעמודה "Id" שזאת בעצם "תעודת זהות" של החבילה בשביל שהמערכת תדע להבדיל בינהן וגם אנחנו, אז בעצם לאחר שנריץ את הפקודה, נקבל מידע אודות החבילה הזאת:


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


Install - אז בעצם Install מאפשרת לבצע התקנה גם שקטה וגם "רגילה" (התקנה שקטה היא התקנה בלי חלונות קופצים ובלי אפשרות ללחוץ "הבא" או הסכמה או אי הסכמה להתקנה ובעצם הכל יותקן בצורה אוט'), בשביל לבצע התקנה בצורה הזאת נריץ את הפקודה winget install 7zip.7zip --silent ובעצם תוך שניות, הקובץ ירד למחשב שלנו, ולאחר מכן גם יותקן:

ישנן תוכנות שבכל מקרה יותקנו בצורה שקטה ויש כאלו שיראו לכם ממשק משתמש בסיסי, להלן רשימה של תוכנות שאני משתמש להתקנה אצל חלק מהמשתמשים שלי:

התקנה שקטה של ZOOM:

winget install -h --silent Zoom.Zoom

התקנה שקטה של אקרובט רידר:

winget install -h --id XPDP273C0XHQH2

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

winget install IObit.AdvancedSystemCare

Upgrade - במידה ואני רוצה לבצע עדכון לתוכנה מסויימת ניתן לרשום את הפקודה : winget upgrade 7zip.7zip, במידה ואני לא יודע את מה אני צריך לעדכן ואני רוצה לבדוק אילו תוכנות במחשב צריך לעדכן,
ניתן לרושם את הפקודה : winget upgrade --all


ולאחר מכן הכל ברור - להלהן רשימה של כלל התכונות שצריך לעדכן במחשב, במידה ונרצה לעדכן תוכנה ספציפית במקרה הזה נרצה לעדכן את YandexDisk (תוכנת אחסון ענן חינמית של חברת Yandex הרוסית)
נרשום את הפקודה: winget upgrade Yandex.Disk:


לאחר כמה שניות, התוכנה כבר תהיה מעודכנת לגירסה האחרונה.

Uninstall - במידה ונרצה להסיר איזו תוכנה - הפקודה גם כן מאוד ברורה winget uninstall 7zip.7zip גם כן, ההסרה מתבצעת על פי "תעודת הזהות" של התוכנה.

List - משתמשת לבדיקת התוכנות שמותקנות אצלכם במחשב - במהלך כתיבת שורות אלו, החלטתי לבדוק כיצד הפלט של הפקודה הזאת יוצג גם בחלון של PowerShell וגם בחלון של CMD, ובעצם גיליתי את אחד ההבדלים, ה CMD לא הכי טוב בכל הנושא של "עברית" ובעצם אני אציג לכם את שתי סוגי הפלט שקיבלתי - ראשית - שימוש בפקודה, הפקודה שנריץ בשביל לקבל את רשימת התוכנות המותקנות - winget list:

פלט ראשון - PowerShell:

(שימו לב בבקשה לשורה השניה מלמעלה שמוצגת בצורה ברורה "בדיקת תקינות המחשב").

להלן פלט מתוך CMD:


(את אותו הטקסט נוכל לראות בכתב מראה מאחר ו CMD לא יודע להציג עברית בצורה תקינה)

לכן גם במקרה הזה נעדיף להשתמש ב PowerShell.

Export - נגיד ואני רוצה לבצע יצוא לרשימה של האפליקציות המותקנות, זה כמעט אפשרי, למה כמעט? כי בצורה הזאת, ניתן ליצא רק אפליקציות שניתן להתקין עם Winget או מתוך חנות האפליקציות של מיקרוסופט, לדוגמא תוכנה בשם Camtasia אי אפשר להתקין עם WinGet, לכן היא אומנם תוצג ברשימה של האפליקציות המותקונת, אך היא לא תוצג כאשר נבצע את היצוא, לכן שימו לב, במידה ולא תמצאו אפליקציה כזאת או אחרת, זה בסדר, כנראה אין אפשרות להתקין אותה דרך מתקין החבילות של מיקרוסופט.
בשביל לבצע את היצוא אני אשתמש בפקודה: winget export -o c:\app.txt - בפקודה הזאת הקובץ שתיצרו,
יופיע בכונן :C, בשביל שהוא יופיע אצלכם על שולחן העבודה (או בעצם אצל כל מחשב) נשתמש בפקודה הבאה:
winget export -o %USERPROFILE%\Desktop\apps.txt (ניתן לעשות העתק הדבק לתוך ה PowerShell).

Import - במידה ותרצו לבצע יבוא במחשב אחר של אותן האפליקציות, שביצעתם יצוא עבורן (שוב, שימו לב, ניתן ליצא ולייבא רק אפליקציות שיש בחנות האפקליציות של מיקרוסופט או WinGet), בצורה הזאת בעצם ניתן לבצע התקנה אוט' לגמרי של האפליקציות מהפקודה הקודמת, ניתן פשוט להריץ את הפקודה על המחשב החדש והכל יותקן אוט', לצורך כך נרשום את הפקודה וניתן את הנתיב שבו נמצא הקובץ שנוצר לנו בעקבות התהליך הקודם:
winget import -i %USERPROFILE%\Desktop\apps.txt

מקווה שנהנתם, כמו תמיד - יותר מאוחר יתווסף סרטון יוטיוב.

המייל שלי לכל שאלה: levl@leidertech.co.il

03/07/2022

20 טיפים לשיפור הפרודוקטיביות לעובד בתחום המחשוב

 

:Credit for the picture


בתור אנשי מחשוב יש שתי דברים שתמיד חסרים לנו:
1) ידע - כי אי אפשר לדעת את הכל.
2) זמן - כי הוא מגביל אותנו במהלך היום, ואנחנו חייבים הפסקות כמו אוכל, שירותים, משפחה שינה וכד'.

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

1) צרו לעצמכם "מנוע חיפוש" של כלים שאתם משתמשים בהם ביום יום - צרו קובץ וורד, כתבן, או כל דבר שבא לכם שתוכלו למצוא בתוך שניה אחת את הכלי או האתר שאתם מחפשים, אל תבזבזו זמן על גוגל למציאת מה שאתם כבר מכירים.

2) השתמשו באוטומציה - אם אני "תופס" את עצמי עושה את אותו הדבר כמה וכמה פעמים, וזה מצריך ממני יותר משתיים שלושה קליקים בעכבר כל פעם, זה מתחיל להיות מעיק ואני מחפש דרך איך לגרום למחשב לעשות את העבודה בשבילי, אני מעדיף לכתוב סקריפט (PowerShell או BATCH) במשך שעתיים ואפילו שלוש פעם אחת, מאשר להמשיך לעשות את אותה הפעולה כמו תוכי ולקבל עצבים, פשוט כי אחרי זה, את אותה הפעולה אני אעשה 2 דקות במקום 20 דקות, במקרה אחר הסקריפט יכול לחסוך לי 40 דקות עבודה, לדוגמא, אם אתם צריכים לדעת מידע על מחשב מסויים, מה אתם עושים בדרך כלל? בטח משתמשים בתוכנה או בכלי מובנה של מערכת ההפעלה, למה לא לבנות לעצמכם כלי כזה? גם תשפרו את הידע שלכם בכתיבת סקריפטים וגם תתאימו לעצמכם את המידע שאתם רוצים לראות ותחסכו זמן על חיפוש מידע בתוך הכלים של מערכת ההפעלה.

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

4) תלמדו קיצורי מקשים וקיצורים של מערכת ההפעלה - למה באמצע משהו שאתם עושים צריך להפסיק את הכל, להוריד את היד מהמקלדת ולהתחיל לחפש כיצד להגיע למקום מסויים במערכת ההפעלה?! יש לכם משהו שאתם נוהגים לפתוח הרבה? לא יותר קל לזכור מה הקיצור של אותו המקום?
לדוגמא, איך מגיעים ל"מדפסות" בווינדוס?
בעזרת ctrl+r נפתח חלון RUN ובפנים נכתוב  "control printers" ונלחץ אנטר - תחשבו כמה זמן לקח לעשות את זה מהמקלדת מאשר להגיע לשם דרך תפריט ה"התחל".

5) השתמשו במנהל "Clip Board" (זה המקום ששומר את כל ה"העתק הדבק" שאתם עושים) - נגיד ועשיתם "העתק הדבק", איך אפשר לראות את ההיסטוריה של כל ה"העתק הדבק" שעשיתם היום? אז יש כמה דרכים, הפחות טובה, להשתמש בכלי המובנה של וינדוס 10 בעזרת winkey+v (מקש עם הציור של מיקרוסופט על המקלדת נקרא WinKey) והאמת שהוא מאוד מעפן ומאוד מוגבל וגם לרוב לא עובד כמו שצריך, לכן אני ממליץ על תוכנה חינמית ומדהימה שנקראת Ditto שאני משתמש בה כבר שנים, ניתן להוריד אותה מכאן - לינק

תצלום מסך מתוך התוכנה Ditto.

6) השתמשו בשתי מסכים או יותר - במקום לפתוח 50 חלונות והתחיל לחפש איפה החלון שאתם צריכים, במידה ויש לכם אפשרות - שימו כמה מסכים, יותר קל לסובב את הראש או להזיז את העיניים שמאלה ימינה מאשר לחפש חלון פתוח שמתחבא איפשהו.

7) וואטסאפ, טלגרם וכד' - שימו את הטלפון בתיק, בצד, במטען, חברו (במידת האפשר !) את האפליקציות למחשב, הפסיקו להרים את הידיים מהמקלדת, עדיף שתעשו alt+tab מאשר לעזוב את הכל ולהתחיל להגיב למישהו בקשר לשאלה כלשהי, אפשר להקליד את אותו הדבר מהמחשב - יחסוך זמן ולא יפריע לריכוז.

8) השתמשו באחסון ענן משלכם - יש מצבים שבהם הרבה יותר קל להוריד תוכנה\קובץ ולשים אותה על הענן שלכם (מגה, One Drive, Google drive וכד') ולשמור קישורים אליהם מאשר להוריד דברים מאתרים אחרים שמקשים על ההורדה - לינקים ישירים ניתן להכניס גם בתוך סקריפטים - זכרו תמיד כדי להיות תלוי רק בעצמכם !.

9) סדר בשולחן העבודה -  יש לכם הרבה אייקונים? גם לי, השתמשו בתוכנות שיעשו לכם סדר בשולחן העבודה במקום שתתחילו לחפש מסמך או תיקייה או קיצור דרך בכל שולחן העבודה, פשוט השתמשו בתכוכנה שתעשה לכם סדר, תחסכו הרבה מאוד זמן על לנחש "לאן זז הקובץ?" - אחת התוכנות שאני עובד איתה כבר שנים היא Fences - בזמנו קניתי אותה ב 4 דולר ומאז היא עוברת איתי ממחשב למחשב, וגם בעבודה.


ככה נראה שולחן העבדוה שלי


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

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

12) התקינו כמה דפדפנים - אנחנו אנשי מחשוב, אינטרנט אקספלורר כבר לא קיים בווינדוס 11 זאת אומרת שהוא לא יהיה קיים בעתיד, התקנינו לפחות עוד שלושה דפדפים חוץ מהמובנה שיש במערכת ההפעלה (באופן אישי, אני מתקין תמיד כרום, מוזילה ו Brave) על מנת שתמיד תוכלו לבדוק אתר\תוכנה וכד' על כמה וכמה דפדנים.

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

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

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

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

שימו לב מאיזה תאריך המייל שצירפתי פה.


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

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


שורת המשימות שלי

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

20) החליפו את החיפוש של מערכת ההפעלה ! : במידה ואתם לא משתמשים באאוטלוק, אתם יכולים בכיף לבטל את החיפוש של מיקרוסופט במערכת ההפעלה ולהתקין את Everything מכאן : לינק - מנוע החיפוש הזה בתוך שניות יאפשר לכם לבצע חיפוש של כל מה שזז אצלכם במחשב ! כמובן יחסוך לכם המון זמן !, במידה ואתם כן משתמשים באאוטלוק, תנו למערכת ההפעלה שלכם לבצע חיפוש בכל המחשב - כן יש כאלו שלא יסכימו וזה עלול להאט מאט את המחשב יחד עם זאת יחסוך לכם המון זמן בחלפש קבצי מערכת לדוגמא קובץ hosts (כמה ממכם באמת זוכרים איפה הוא יושב?).





אם יש לכם עוד טיפים, ניתן לשלוח לי למייל levl@leidertech.co.il ואני כמובן אצרף כאן עם קרדיט.


 

27/11/2021

חלק 10 - הרצת פקודות על מחשבים מרוחקים בעזרת (Invoke-Command) - Implicit Remoting



חלק 10 - עבודה על מחשבים מרוחקים עם בעזרת הפקודה Invoke-command

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

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

ברגע שמפעילים את ה Remoting מאחורי הקלעים קוראים הדברים הבאים:
  1. הסרוויס - WinRm מתחיל לפעול, ונהיה על מצב אוט'
  2. חומת האש של ווינדוס (אם יש לכם חומת אש חיצונית, תצטרכו לעשות את זה ידנית) תיצור חוק (Rгle) רגיל ל WsMan (מוזמנים לחפש ברשת מה זה) - ההתחברות עם PowerShell לא עובדת בערוץ מאובטח בין תחנה לשרת או בין שרת לתחנה, אז תקחו את זה בחשבון.

קצת חפירה לפני שממשיכים :) - לא מאמין שהגעתי לחלק 10 !

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

העבודה שלי על הבלוג ועם המדריכים של ה PowerShell ממש "תיכנתה" את המוח שלי בצורה חדשה לגמרי, לזכור דברים ללמוד דברים, וזה תענוג, והכל בגלל התמיכה שלכם בבלוג שלי, אני רואה יותר ויותר אנשים קוראים, מגיבים, מעודדים לכתוב עוד ועוד וזה תענוג אחד גדול !

רציתי להגיד לכם תודה רבה על הפידבקים שלכם, לא מאמין שהגעתי לחלק 10 ! מדריך שלם מ-10 חלקים !! זה אדיר ! אני מקבל הרבה מאוד פידבקים במייל שלי (אם שכחתם לרגע levl@leidertech.co.il) ותודה רבה לכם על זה ! אתם שואלים שאלות, אתם עוזרים לי גם להבין דברים ! המון תודה רבה קוראים יקרים !

"אחרי שצחקנו, נעבור לחלק האומנותי" (מתוך "גבעת חלפון אינה עונה"..)

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

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

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

¿*בשביל שתוכלו לגשת למחשב מרחוק, צריך להפעיל עליו את הפקודה enable-psremoting *¿

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

Invoke-Command - בתרגום לעברית : "הפעל-פקודה" -
כמו שאנחנו מכירים ב PowerShell כל הפקודות בנויות בצורה של "מה שאתה רוצה, זה מה שאתה מקליד" אז מה שאנחנו רוצים זה להפעיל פקודה מרוחקת על מחשב, ואז לקבל את הפלט שלה (מעצבן כמה שזה פשוט נכון?) 

מבנה הפקודה עם תרגום לעברית :{הפקודה\הסקריפט שלך פה} Invoke-Command -computername -scriptblock 
הפעל-פקודה -שם מחשב -מקטע_סקריפט {הפקודה\הסקריפט שלך פה}

אז בעצם אם נרצה להריץ פקודה מסויימת על מחשב מסויים, לדוגמא, נריץ את הפקודה בצורה הבאה:

נריץ פקודה מרוחקת על מחשב בשם client1 בשביל לקבל מידע אודות ה IP שלו:

Invoke-command -computername client1 -scriptblock {ipconfig}

הפלט שנקבל:


אני אריץ את אותה הפקודה על השרת עצמו ואז תראוה שאני מקבל כתובת שונה לחלוטין:

(תשימו לב להבדל.. החלק הראשון מראה כתובת 10.0.0.11 החלק השני, מראה כתובת 10.0.0.1)



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

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

נבצע את זה בעזרת הפקודה Get-Command (כמו שלמדנו בחלקים הראשונים של המדריך), רק שאנחנו נריץ אותה על השרת מהתחנה שלנו, ונבקש להציג לי מידע שיסביר לי איזו פקודה אני צריך בשיל להציג מידע, מה שנקרא "Get":

Invoke-Command -computername cat1 -scriptblock {get-command -noun *user* -verb get}

אני אתרגם רק את החלק של קטע הסקריפט (ScriptBlock) - :
noun - שם עצם
verb - פעול

זאת אומרת, אנחנו מבקשים מ PowerShell שיציג לנו פקודה שהשם עצם שלה הוא "משתמשים" והפועל זה "קבל"\"לקבל" וכד', זאת אומרת אם אני מחבר זה יוצא בערך ככה : הצג-פקודה -שם עצם "משתמשים" -הפועל "הצג".
או בקצרה "הצג לי פקודה שהשם עצם שלה זה "משתמשים" והפעולה שאני רוצה לבצע עליה זה "הצג".

וזאת בדיוק התוצאה שנקבל מהתחנה שלנו:


לאחר שקיבלנו את המידע שאנחנו צריכים, בשביל שנראה שאני על תחנה ולא על שרת, אני אריץ את הפקודה הרלוונטית שהיא Get-Aduser ונראה שבגלל שעל התחנה שלנו אין מודול של ActiveDirectory אנחנו לא נקבל את המידע הרלוונטי וכל המסך שלנו ישפך ב"דם" (מושג PowerShell בגלל שהשגיאות בצבע אדום):



כפי שניתן לראות, המחשב שלנו לא ממש מבין מה אנחנו רוצים ממנו, והציג לנו מלא "דם", אך אם נריץ את הפקודה על המחשב המרוחק, שהוא בעצם ה Acitve Directory  שלנו נוכל לקבל פלט נורמאלי



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

נתחיל בלבדוק אילו משתמשים יש לנו על השרת ב OU שנקרא USERS בכלל:

Invoke-Command -computername cat1 -scriptblock {get-aduser -filter * -searchbase "ou=users, ou=lions,dc=linos,dc=local}|select name

הסיבה שרציתי קודם כל לבצע את הפקודה הנ"ל היא בשביל שתעלה לכם השאלה הבאה:

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


כפי שניתן לראות, יש בשרת שלושה משתמשים, עכשיו נוסיף עוד משתמש אחד:



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

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

קודם נבדוק מה ה Scope שלנו:
invoke-command -computername cat1 -scriptblock {
Get-DhcpServerv4Scope |select -ExpandProperty scopeid |select -ExpandProperty IPAddressToString
}



במקרה שלי ה Scope הוא 10.0.0.0

לאחר מכן, נבקש מהשרת שיתן לנו 20 כתובות IP פנויות
invoke-command -computername cat1 -scriptblock {Get-DhcpServerv4FreeIPAddress -ScopeId $scope -NumAddress 20}



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

ניתן לרשום את הכל בתוך סקריפט אחד בצורה הבאה:
invoke-command -computername cat1 -scriptblock {

$scope = Get-DhcpServerv4Scope |select -ExpandProperty scopeid |select -ExpandProperty IPAddressToString

Get-DhcpServerv4FreeIPAddress -ScopeId $scope[0] -NumAddress 20

}





עד כאן להפעם, כמו תמיד תודה רבה שקראתם.

המייל שלי לכל שאלה: levl@leidertech.co.il

כמו תמיד, סרטון מצולם: