Whatsup - לינוקס, תוכנה חופשית וקוד פתוח בעברית

תיכנות בלינוקס - איפה אני מתחיל להבין את הסינית הזו?

Anonymous - 17/01/2016 - 18:46
נושא ההודעה: איפה אני מתחיל להבין את הסינית הזו?
ראוי לציין שאני מתוסכל לחלוטין.
למשל הפקודה הזו (הגעתי אליה לאחר חיפוש כיצד אני מוצא את כתובת ה- wan שלי דרך שורת הפקודה), זו סינית ספרותית בשבילי:
קוד:
wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1

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

יש פקודות עם ` לפני ואחרי כל מיני דברים ועם & בסוף שורה וסוגריים מרובעים ואני מתחרפן פה עם ה- one liner ים האלו שהן אכדית עתיקה מעורבבת עם לחשי גזנגה.

ובנימה יותר מפוייסת:
יש מקום(ספר/אתר) שמעביר אותי ממצב של אידיוט מושלם לגאון עולמי שיוצר לו לינוקס משלו?

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

האם עוד מישהו(או מישהייי?) מרגיש מתוסכל כמוני ורוצה לפתוח קבוצת תמיכה להדיוטות?
אנא הושיעוני עם עיצה טובה.
אולי אני צריך אישה Sad
Anonymous - 17/01/2016 - 19:51
נושא ההודעה:
במקום wget למד להשתמש ב curl
במקום checkip.dyndns.org למד להשתמש ב ident.me
אנשים שלא כל כך מבינים לינוקס מעבירים אותך פייפים וזה בטח כואב
זה לא חייב להיות ככה
Anonymous - 17/01/2016 - 20:00
נושא ההודעה:
ציטוט:
מי האנשים האלו שפקודות כאלו ואחרות רבות דומות ואף סקריפטים ארוכים מעין אלו, נראים להם ברורים?

https://www.youtube.com/watch?v=bUvu3VZHBAY
Laughing


תתחיל מפה - http://linuxcommand.org/
Anonymous - 17/01/2016 - 21:47
נושא ההודעה:
Anonymous :
במקום wget למד להשתמש ב curl
במקום checkip.dyndns.org למד להשתמש ב ident.me
אנשים שלא כל כך מבינים לינוקס מעבירים אותך פייפים וזה בטח כואב
זה לא חייב להיות ככה

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

קוד:

wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1

wget תוכנית לא אינטראקטיבי להורדת קבצים מהרשת
-O הפניה לאן ילך התוכן
-O - המינוס פה הוא לא שם של קובץ אלה הפניה להדפיס את התוכן לקט/פלט סטנדרטי(מסך / טרמינל)
-o הפניה לאן ילך הלוג
/dev/null קובצ שמה שנכתב אלו לא נשמר(חור שחור))
| מעביר פלט של תוכנית אחת בתור קלט לתוכנית שניה (צינור)


wget http://checkip.dyndns.org/ -O - -o /dev/null
הפלט של
<html><head><title>Current IP Check</title></head><body>Current IP Address: 127.00.0.1</body></html>

cut  תוכנה להסרת קטעים/חלקים מפלט או קבצים
-d  מגדיר את התוחם/מפריד
-f  מגדיר את השדה


                                    שדה 2       :                                 שדה 1                         
<html><head><title>Current IP Check</title></head><body>Current IP Address: 127.00.0.1</body></html>
cut -d: -f 2 הפלט של

 127.00.0.1</body></html>




cut -d\< -f 1

\ (מילוט היא טכניקה לתת לתו או לסדרת תווים משמעות השונה מהמשמעות הרגילה שלהם)  תו מילוט בBASH
<  תו עם מספר משמעויות בBASH 
   שדה 2   >   שדה 1                         
 127.00.0.1</body></html>
cut -d\< -f 1 הפלט של

 127.00.0.1


ממליץ על קורס בסיסי חינמי
https://www.codecademy.com/learn/learn-the-command-line
ועיון בתיעוד של התכניות עם הפקודות\תכניות man --help ו info --help
Anonymous - 17/01/2016 - 21:49
נושא ההודעה:
אלכס___ :
Anonymous :
במקום wget למד להשתמש ב curl
במקום checkip.dyndns.org למד להשתמש ב ident.me
אנשים שלא כל כך מבינים לינוקס מעבירים אותך פייפים וזה בטח כואב
זה לא חייב להיות ככה

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

קוד:

wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1

wget תוכנית לא אינטראקטיבי להורדת קבצים מהרשת
-O הפניה לאן ילך התוכן
-O - המינוס פה הוא לא שם של קובץ אלה הפניה להדפיס את התוכן לקט/פלט סטנדרטי(מסך / טרמינל)
-o הפניה לאן ילך הלוג
/dev/null קובצ שמה שנכתב אלו לא נשמר(חור שחור))
| מעביר פלט של תוכנית אחת בתור קלט לתוכנית שניה (צינור)


wget http://checkip.dyndns.org/ -O - -o /dev/null
הפלט של
<html><head><title>Current IP Check</title></head><body>Current IP Address: 127.00.0.1</body></html>

cut  תוכנה להסרת קטעים/חלקים מפלט או קבצים
-d  מגדיר את התוחם/מפריד
-f  מגדיר את השדה


                                    שדה 2       :                                 שדה 1                         
<html><head><title>Current IP Check</title></head><body>Current IP Address: 127.00.0.1</body></html>
cut -d: -f 2 הפלט של

 127.00.0.1</body></html>




cut -d\< -f 1

\ (מילוט היא טכניקה לתת לתו או לסדרת תווים משמעות השונה מהמשמעות הרגילה שלהם)  תו מילוט בBASH
<  תו עם מספר משמעויות בBASH 
   שדה 2   >   שדה 1                         
 127.00.0.1</body></html>
cut -d\< -f 1 הפלט של

 127.00.0.1


ממליץ על קורס בסיסי חינמי
https://www.codecademy.com/learn/learn-the-command-line
ועיון בתיעוד של התכניות עם הפקודות\תכניות man --help ו info --help


יישר כח על ההשקעה Smile.
Anonymous - 17/01/2016 - 21:57
נושא ההודעה:
אלכס___ :
Anonymous :
במקום wget למד להשתמש ב curl
במקום checkip.dyndns.org למד להשתמש ב ident.me
אנשים שלא כל כך מבינים לינוקס מעבירים אותך פייפים וזה בטח כואב
זה לא חייב להיות ככה

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

קוד:

wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1

wget תוכנית לא אינטראקטיבי להורדת קבצים מהרשת
-O הפניה לאן ילך התוכן
-O - המינוס פה הוא לא שם של קובץ אלה הפניה להדפיס את התוכן לקט/פלט סטנדרטי(מסך / טרמינל)
-o הפניה לאן ילך הלוג
/dev/null קובצ שמה שנכתב אלו לא נשמר(חור שחור))
| מעביר פלט של תוכנית אחת בתור קלט לתוכנית שניה (צינור)


wget http://checkip.dyndns.org/ -O - -o /dev/null
הפלט של
<html><head><title>Current IP Check</title></head><body>Current IP Address: 127.00.0.1</body></html>

cut  תוכנה להסרת קטעים/חלקים מפלט או קבצים
-d  מגדיר את התוחם/מפריד
-f  מגדיר את השדה


                                    שדה 2       :                                 שדה 1                         
<html><head><title>Current IP Check</title></head><body>Current IP Address: 127.00.0.1</body></html>
cut -d: -f 2 הפלט של

 127.00.0.1</body></html>




cut -d\< -f 1

\ (מילוט היא טכניקה לתת לתו או לסדרת תווים משמעות השונה מהמשמעות הרגילה שלהם)  תו מילוט בBASH
<  תו עם מספר משמעויות בBASH 
   שדה 2   >   שדה 1                         
 127.00.0.1</body></html>
cut -d\< -f 1 הפלט של

 127.00.0.1


ממליץ על קורס בסיסי חינמי
https://www.codecademy.com/learn/learn-the-command-line
ועיון בתיעוד של התכניות עם הפקודות\תכניות man --help ו info --help


אני את הבגרות שלי עשיתי
"(הגעתי אליה לאחר חיפוש כיצד אני מוצא את כתובת ה- wan שלי דרך שורת הפקודה)"

עכשיו תתגייס לצבא.
תודה.
Anonymous - 17/01/2016 - 22:32
נושא ההודעה:
Anonymous :


אני את הבגרות שלי עשיתי
"(הגעתי אליה לאחר חיפוש כיצד אני מוצא את כתובת ה- wan שלי דרך שורת הפקודה)"

עכשיו תתגייס לצבא.
תודה.

בסדר בכיף. רק לידע כתבתי "שפותך" עם שגיאת כתיב ואני מניח שעוד כמה מילים גם כן.
אז להבא אתה יכול להשתמש בזאת כדי לעצבן אותי אני חושב.
אגב אם אתה רעב הם יכולים לעזור לך או אתה להם
http://www.helpfeedthetroll.com/submit/
Anonymous - 17/01/2016 - 23:02
נושא ההודעה:
ציטוט:
אני את הבגרות שלי עשיתי
"(הגעתי אליה לאחר חיפוש כיצד אני מוצא את כתובת ה- wan שלי דרך שורת הפקודה)"

עכשיו תתגייס לצבא.
תודה.

חשבתי שאתה רוצה ללמוד...

לעניין ה-wan, יש פקודה מאד פשוטה וחביבה:
קוד:
$ inxi -i

למה לסובב את הבית סביב המנורה? Smile

למה אתם מתקוטטים על כלום?
Anonymous - 17/01/2016 - 23:37
נושא ההודעה:
אלכס___ :
Anonymous :
במקום wget למד להשתמש ב curl
במקום checkip.dyndns.org למד להשתמש ב ident.me
אנשים שלא כל כך מבינים לינוקס מעבירים אותך פייפים וזה בטח כואב
זה לא חייב להיות ככה

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

קוד:

wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1

wget תוכנית לא אינטראקטיבי להורדת קבצים מהרשת
-O הפניה לאן ילך התוכן
-O - המינוס פה הוא לא שם של קובץ אלה הפניה להדפיס את התוכן לקט/פלט סטנדרטי(מסך / טרמינל)
-o הפניה לאן ילך הלוג
/dev/null קובצ שמה שנכתב אלו לא נשמר(חור שחור))
| מעביר פלט של תוכנית אחת בתור קלט לתוכנית שניה (צינור)


wget http://checkip.dyndns.org/ -O - -o /dev/null
הפלט של
<html><head><title>Current IP Check</title></head><body>Current IP Address: 127.00.0.1</body></html>

cut  תוכנה להסרת קטעים/חלקים מפלט או קבצים
-d  מגדיר את התוחם/מפריד
-f  מגדיר את השדה


                                    שדה 2       :                                 שדה 1                         
<html><head><title>Current IP Check</title></head><body>Current IP Address: 127.00.0.1</body></html>
cut -d: -f 2 הפלט של

 127.00.0.1</body></html>




cut -d\< -f 1

\ (מילוט היא טכניקה לתת לתו או לסדרת תווים משמעות השונה מהמשמעות הרגילה שלהם)  תו מילוט בBASH
<  תו עם מספר משמעויות בBASH 
   שדה 2   >   שדה 1                         
 127.00.0.1</body></html>
cut -d\< -f 1 הפלט של

 127.00.0.1


ממליץ על קורס בסיסי חינמי
https://www.codecademy.com/learn/learn-the-command-line
ועיון בתיעוד של התכניות עם הפקודות\תכניות man --help ו info --help

Applause Applause
MBD - 18/01/2016 - 01:14
נושא ההודעה:
אם אתם מצטטים הודעות קודמות בבקשה תחתכו רק את החלק שאתם מתייחסים אליו, לא צריך להעמיס את השרשור בציטוטים כפולים ומכופלים.

לפותח השרשור:
בגדול יש 2 מרכיבים:
א. המעטפת (shell)
ב. התוכנית (תוכנה)

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

התוכניות הן שונות זו מזו. יש חוקים מקובלים יותר ופחות, אבל בגדול ההתנהגות שלהן תלויות במפתח ואין הגדרה שתמיד תעבוד. התחביר של מינוסים זה העברת פרמטר לתוכנית, למשל:
קוד:
app -p 30

שולח פרמטר ("משתנה") בשם p לתוכנית, וערכו 30. זו דרך מקובלת מאוד להשתמש בכלי המעטפת, למשל:
קוד:

xbacklight -set 40

יקבע את בהירות המסך ל-40%.

יש גם פרטמרטים שמועברים ללא ערך, למשל:
קוד:
ls
מציגה את כל הקבצים בתיקיה הנוכחית, אבל
קוד:
ls -l
מציגה את אותה הרשימה אך עם הרבה יותר מידע מפורט.

בהצלחה בהמשך הלמידה!
Anonymous - 18/01/2016 - 11:07
נושא ההודעה: אתר טוב לפיענוח "סינית"
http://explainshell.com/
האתר מפרש ומסביר את הפקודות שאתה כותב לו, מאוד מועיל ללמידה!
בהצלחה
Anonymous - 18/01/2016 - 12:41
נושא ההודעה:
תודה רבה לכולם על העזרה והעצות השונות Smile
Anonymous - 18/01/2016 - 15:54
נושא ההודעה: לפותח השרשור - נסיון לעזור.
מי שכתב לך את ההמלצה המקורית, השתמש בכלי שורת פקודה להורדת קובץ מ http://checkip.dyndns.org/ , (זה השמוש בwget), הפניית הקובץ למסך במקום לשמירה (זה ה-O-), הפניית התצוגה הרגילה של wget ל"שום מקום" (זה ה-o /dev/null), הפניית תוכן הקובץ ל"ניקוי וניתוח" כך שתקבל נתון קריא בקלות.
אפשר "לקצר" את התהליך במחיר של תוצאה מעט פחות קריאה כך:
קוד:
wget http://checkip.dyndns.org/ -O - -o /dev/null


משמעות:
הפעל את wget וקרא את הנתון מכתובת האינטרנט המדוברת, הפנה את הקובץ למסך ואת הפלט הרגיל (debug) של wget ל"שום מקום".

התוצאה תהיה משהו בסגנון:
קוד:
<html><head><title>Current IP Check</title></head><body>Current IP Address: 222.222.222.172</body></html>


כאשר ניתן די בקלות לקרוא את כתובת הIP שלך גם מתוך הHTML שהוצג.

מקווה שעזרתי Smile
Anonymous - 19/01/2016 - 07:58
נושא ההודעה:
ועוד הערה קטנה:

במקום:
קוד:

wget -o/dev/null

כלומר: התעלמות. אפשר לבקש מ־wget להיות בשקט:
קוד:

wget -q


ותיקון נוסח קטן: האפשרות ‎-O -‎ לא מפנה "למסך" אלא לפלט הסטנדרטי (שיכול להיות גם השלב הבא בצינור. ויכול גם לחזור למסוף. שיוצג על המסך).
Anonymous - 19/01/2016 - 08:11
נושא ההודעה:
כשאני חושב על זה, הבסיס של הבנת הנקרא כאן הוא שיש כאן פקודה שנראית בערך:
קוד:

wget SOMETHIN1l | cut SOMETHING2 | cut SOMETHING3

הסימן'|' הוא סימן לא אינטואיטיבי במיוחד ל"שלב בצינור". כלומר: הפלט של הפקודה הקודמת הופך לקלט של הפקודה הבאה.

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

מהו הפלט של wget SOMETHIN1l ? מהו הפלט של wget SOMETHIN1l | cut SOMETHING2 ?

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

wget SOMETHIN1l | less

כדי לא להציף את המסוף. במקרה הזה זה לא נחוץ, אבל עם wget זה יכול להיות מועיל.

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

ולמה יש \ לפני ה־>? שאלה טובה. במקרה הזה אפשר לנסות להוריד אותו ולראות מה יקרה כאן.
Anonymous - 25/01/2016 - 20:19
נושא ההודעה:
תודה רבה גם לשלושה האחרונים שענו לי Smile
Anonymous - 26/01/2016 - 19:02
נושא ההודעה:
תודה לכל המסבירים ומפרסמי הלינקים למינם
החכמתי!
כל הזמנים הם GMT + 2 שעות