דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תוכנה
  3. מדריך: שורת הפקודה - תגובות

מדריך: שורת הפקודה - תגובות

מתוזמן נעוץ נעול הועבר תוכנה
64 פוסטים 18 כותבים 3.3k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • yossizY מנותק
    yossizY מנותק
    yossiz
    השיב לnigun ב נערך לאחרונה על ידי
    #10

    @nigun תודה רבה! תיקנתי במקור.

    📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

    תגובה 1 תגובה אחרונה
    2
    • Men770M מנותק
      Men770M מנותק
      Men770
      כתב ב נערך לאחרונה על ידי
      #11

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

      יחי אדוננו מורנו ורבינו מלך המשיח לעולם ועד!

      yossizY תגובה 1 תגובה אחרונה
      0
      • yossizY מנותק
        yossizY מנותק
        yossiz
        השיב לMen770 ב נערך לאחרונה על ידי
        #12

        @Men770 זה בדיוק מה שכתבתי.

        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

        תגובה 1 תגובה אחרונה
        2
        • כ מנותק
          כ מנותק
          כוספים למשיח
          כתב ב נערך לאחרונה על ידי
          #13

          @yossiz תמשיך מחכים לזה בכיליון עינים

          yossizY תגובה 1 תגובה אחרונה
          0
          • yossizY מנותק
            yossizY מנותק
            yossiz
            השיב לכוספים למשיח ב נערך לאחרונה על ידי yossiz
            #14

            @כוספים-למשיח ביקשת - קיבלת
            (עכשיו תבקש שהמשיח יבוא במהרה... 🙂 )

            חבר'ה!!! אם משהו לא ברור או אם רוצים הרחבה בפרט מסויים, תשאלו!, (יותר משהעגל וכו'...).

            📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

            תגובה 1 תגובה אחרונה
            11
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              השיב לyossiz ב נערך לאחרונה על ידי
              #15

              @yossiz אמר במדריך: שורת הפקודה:

              ℹ ייתכן שההתנהגות של ביטויים לוגיים ב-JS למי שמכיר הושפע מה-shell

              אתה בטוח? אני חושב שגם בC זה יעבוד ככה, זה כורח המציאות, הרי הביטוי הימני יבוצע בהתאם לאופרטור עם התוצאה של השמאלי, זה הרעיון של short circuit.

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              yossizY תגובה 1 תגובה אחרונה
              2
              • yossizY מנותק
                yossizY מנותק
                yossiz
                השיב לdovid ב נערך לאחרונה על ידי yossiz
                #16

                @dovid לא הייתי מספיק ברור.
                לא התכוונתי להתנהגות ה-short circuiting אלא לזה שהתוצאה של ביטוי לוגי הוא לא ערך בוליאני אלא הערך של הביטוי האחרון שהורץ.

                (בטבלה הזאת בוויקיפידיה אפשר לראות ש-JS ו-shell הם השפות הכי נפוצות שמתנהגים כך [יש גם את perl lua python ו-ruby. זה ברור לי ש-perl הושפע רבות מתחביר shell] )

                ערכתי בפנים

                📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                תגובה 1 תגובה אחרונה
                1
                • WWWW מנותק
                  WWWW מנותק
                  WWW
                  כתב ב נערך לאחרונה על ידי
                  #17

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

                  בכל מקרה תודה רבה על המדריך המושקע הזה, זה באמת מאד חשוב ולא כ"כ ידוע.

                  WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                  yossizY תגובה 1 תגובה אחרונה
                  2
                  • yossizY מנותק
                    yossizY מנותק
                    yossiz
                    השיב לWWW ב נערך לאחרונה על ידי
                    #18

                    @WWW תודה רבה

                    (על הקטע של > שזה הזרם הרגיל, ו >> שזה הזרם של השגיאות, נראה לי).

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

                    📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                    WWWW תגובה 1 תגובה אחרונה
                    3
                    • nigunN מנותק
                      nigunN מנותק
                      nigun
                      כתב ב נערך לאחרונה על ידי
                      #19

                      @yossiz
                      אם אתה עוסק בקלט ובפלט, האם אתה תגיע מתי שהוא לאיך עובד הפלט של הGUI
                      או שזה לא קשור בשום דרך לשורת הפקודה, אז זה כבר מדריך נפרד?

                      מייל: nigun@duck.com

                      yossizY תגובה 1 תגובה אחרונה
                      0
                      • yossizY מנותק
                        yossizY מנותק
                        yossiz
                        השיב לnigun ב נערך לאחרונה על ידי
                        #20

                        @nigun אמר במדריך: שורת הפקודה - תגובות:

                        איך עובד הפלט של הGUI

                        לא הבנתי למה אתה מתכוון. אתה מדבר על GUI של תוכנה מסויימת או בכללות? איזה פלט?

                        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                        nigunN ש 2 תגובות תגובה אחרונה
                        0
                        • nigunN מנותק
                          nigunN מנותק
                          nigun
                          השיב לyossiz ב נערך לאחרונה על ידי
                          #21

                          @yossiz
                          כל תוכנה
                          דהיינו אם תוכנת CLI מוציאה את הstdout ואת הstdout לטרמינל.
                          מה קורה בתוכנות עם ממשק גרפי?
                          או שבעצם הטרמינל הוא גם תוכנה עם ממשק גרפי שמציג את הפלט של הפקודות בצורה גרפית?

                          מייל: nigun@duck.com

                          yossizY תגובה 1 תגובה אחרונה
                          0
                          • yossizY מנותק
                            yossizY מנותק
                            yossiz
                            השיב לnigun ב נערך לאחרונה על ידי yossiz
                            #22

                            @nigun אמר במדריך: שורת הפקודה - תגובות:

                            מה קורה בתוכנות עם ממשק גרפי?

                            אני מניח שאתה מדבר על לינוקס.
                            (בווינדוס המושג הזה של stdout ו-stderr לא קיים בצורה מובנית. בשפת C, C++‎ שהמושג קיים הם עושים שכבת תאימות - ב-CRT - ש(בין השאר) מספק את הזרמים האלו לתוכנה, אגב זה קיים בהרבה דברים שהמושגים של unix ושפת C מאוד תואמים אחד את השני, כי אלה שהמציאו את מערכת יוניקס הם אותם שהמציאו את שפת C).
                            בלינוקס לכל תוכנה (כולל תוכנות גרפיות) קיימים שלוש file handles שפתוחים מיד בעת הרצת התוכנה.
                            אם תהליך האבא לא מגדיר את הקבצים האלו אז הבן יורש את אותם handle-ים של האבא.

                            בד"כ תוכנת הטרמינל מריץ את ה-shell כאשר ה-handles פונים לקובץ PTY שמקביל לקלט ופלט של הטרמינל. ואז רואים את ה-prompt של הטרמינל בחלון הטרמינל. אם תריץ תוכנה מתוך shell שרץ בטרמינל תראה את הפלט שלו בטרמינל (אם הוא לא עושה fork כדי להתנתק מהטרמינל)

                            אם אתה מריץ תוכנה מתוך תפריט התחלה גרפית בלינוקס, אז הוא יירש את ה-stdout מהאבא, פעם (כאשר הייתי משתמש בלינוקס...) היה קובץ שנקרא משהו כמו xsession_errors (אני לא זוכר בדיוק את השם) שקיבל את ה-stderr של תוכנות שהורצו בתוך סביבה גרפית.
                            עריכה: הקובץ נקרא ‎.xsession-errors וה-stdout של ה-Xserver מחובר אליו, וממילא גם של כל הבנים והנכדים וכל המשפחה העניפה... עיין (https://stackoverflow.com/a/17019341) כהיום שעברו ל-wayland ייתכן שדברים השתנו.
                            לשירותים, (כמו של systemd) אפשר להגדיר בתצורת השירות לאן יפנה ה-stdout ו-stderr.
                            יש מושג של ניתוב הפלט ל-‎/dev/null שזה חור שחור שמדמה קובץ.

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

                            📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                            nigunN תגובה 1 תגובה אחרונה
                            6
                            • yossizY מנותק
                              yossizY מנותק
                              yossiz
                              כתב ב נערך לאחרונה על ידי yossiz
                              #23

                              @nigun אם אתה באמת רוצה לדעת לאן מנותבים שלוש הזרמים הסטנדרטיים של תהליך בלינוקס, תוכל לבדוק ב-lsof או יותר קל ב-htop (מקש L כאשר אתה עומד על תהליך) את הקבצים הפתוחים של התוכנה. המזהים של הזרמים הסטנדרטיים הם תמיד:

                              שם מזהה
                              stdin 0
                              stdout 1
                              stderr 2

                              65f458b1-0d0f-44fe-9344-90dcb7700b54-image.png

                              📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                              תגובה 1 תגובה אחרונה
                              3
                              • nigunN מנותק
                                nigunN מנותק
                                nigun
                                השיב לyossiz ב נערך לאחרונה על ידי
                                #24

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

                                מייל: nigun@duck.com

                                yossizY תגובה 1 תגובה אחרונה
                                0
                                • yossizY מנותק
                                  yossizY מנותק
                                  yossiz
                                  השיב לnigun ב נערך לאחרונה על ידי
                                  #25

                                  @nigun

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

                                  @yossiz אמר במדריך: שורת הפקודה - תגובות:

                                  בד"כ תוכנת הטרמינל מריץ את ה-shell כאשר ה-handles פונים לקובץ PTY שמקביל לקלט ופלט של הטרמינל. ואז רואים את ה-prompt של הטרמינל בחלון הטרמינל. אם תריץ תוכנה מתוך shell שרץ בטרמינל תראה את הפלט שלו בטרמינל

                                  כל טרמינל מייצר קובץ (וירטואלי, משהו שמדמה קובץ). ואז הוא מריץ את ה-shell כאשר הזרמים הסטנדרטיים שלו כולם מנותבים ל"קובץ" הזה. (בתמונה שהעליתי בפוסט הקודם שם הקובץ הוא ‎/dev/ttyS0).
                                  הטרמינל קורא מתוך הקובץ הזה את הפלט של תוכנות וכותב לתוכה את הקלט שמשתמש מזין לתוך חלון הטרמינל. (אני מפשט קצת, בפועל יש שני קבצים... עיין בכתבה בויקיפידיה או תגגל את הנושא של pty).
                                  כאשר ה-shell מוליד תהליך בן, תהליך הבן יורש בברירת מחדל את ה-handle-ים לזרמים הסטנדרטיים מהאבא.
                                  כאשר תוכנה כותב פלט הוא כותב ל-handle עם מזהה 1 או 2 (תלוי אם זה stderr או stdout) וזה מנותב לקובץ שה-handle הזה מייצג. שבברירת מחדל יהיה הקובץ שמננו הטרמינל קורא את הפלט של תוכנות.

                                  מובן, או שעדיין לא ברור?

                                  📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                                  nigunN 2 תגובות תגובה אחרונה
                                  4
                                  • nigunN מנותק
                                    nigunN מנותק
                                    nigun
                                    השיב לyossiz ב נערך לאחרונה על ידי nigun
                                    #26

                                    @yossiz
                                    תודה על הסבלנות
                                    בעיקר היה חסר לי הקטע של "ברירת מחדל"
                                    דהיינו שזה מנותב לhandle של האב אא"כ צוין אחרת (ע"י התוכנה כנראה).

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

                                    עריכה: האם היעד יכול להיות ישירות למסך או שחייב לעבור דרך מקום אחר?
                                    כי אם יש לי כמה טרמינאלים פתוחים (בw3) ואני כותב באחד מהם echo hello >/dev/pts/6
                                    הפלט מופיע במסך המבוקש, אבל זה לא כותב ישירות למסך אלא יש כאן כמה שגרירים בדרך.

                                    נראה לי שהבנתי את הכיוון, תודה רבה.
                                    נ.ב. אני רואה שיש לי עוד הרבה לקרוא למשל מה זה בעצם ה$DISPLAY ומה ההבדל בין סוגי הפלט (כמו שרואים בתמונה הזאת )
                                    צילום מסך מ־2020-08-11 18-14-00.png

                                    מייל: nigun@duck.com

                                    yossizY תגובה 1 תגובה אחרונה
                                    1
                                    • yossizY מנותק
                                      yossizY מנותק
                                      yossiz
                                      השיב לnigun ב נערך לאחרונה על ידי
                                      #27

                                      @nigun אמר במדריך: שורת הפקודה - תגובות:

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

                                      אתה מערב עכשיו נושאים אחרים. זה כבר לא קשור לנושא המקורי. ‎$DISPLAY ל-Xserver. בתמונה רואים כל הקבצים הפתוחים. יש כל מיני קבצים במערכת לינוקס שרובם לא מקבילים לקבצים אמיתיים. כל חיבור רשת או תקשורת בין תהליכי מופיע כקובץ.

                                      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                                      תגובה 1 תגובה אחרונה
                                      1
                                      • nigunN מנותק
                                        nigunN מנותק
                                        nigun
                                        השיב לyossiz ב נערך לאחרונה על ידי nigun
                                        #28

                                        @yossiz
                                        שאלה נוספת (בודק האם הבנתי)
                                        אם אני מבין נכון כשכותבים בתוכנה כל שהיא print
                                        מה שקורה בעצם זה העתקת טקסט (בעצם מערך של ביטים) מהזיכרון לstdout.
                                        (כמו כאן)

                                        מייל: nigun@duck.com

                                        yossizY תגובה 1 תגובה אחרונה
                                        0
                                        • yossizY מנותק
                                          yossizY מנותק
                                          yossiz
                                          השיב לnigun ב נערך לאחרונה על ידי
                                          #29

                                          @nigun נכון

                                          📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                                          nigunN תגובה 1 תגובה אחרונה
                                          1

                                          • 1
                                          • 2
                                          • 3
                                          • 4
                                          בא תתחבר לדף היומי!
                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

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