מבוא לשורת פקודה של Linux

הקדמה

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

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

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

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

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

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

הבנת חלון הטרמינל

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

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

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

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

הטרמינל שהפעלת הוא טרמינל של Ubuntu 20.04. Ubuntu היא הפצת Linux פופולרית, שהייתה מבוססת במקור על מערכת ההפעלה Unix. מערכת ההפעלה macOS גם היא מבוססת על Unix. אם אתה קורא את המדריך הזה על מחשב עם Linux או macOS, עליך לקיים טרמינל במערכת ההפעלה שלך שעובד בדיוק כמו הטרמינל מוטמע שנשתמש בו במדריך זה.

ברוב מערכות ההפעלה Unix (או מבוססות על *nix), הסמנים בסופו של הערת הפרומט עשויים להיות סמל הדולר, $, או סמל המילה הקרובה, #, שמשמעותם הבאה:

  • $ או סימן הדולר — אתה מחובר כמשתמש רגיל
  • # או סמל הרשות/פאונד — אתה מחובר כמשתמש עם הרשאות גבוהות

המשתמש שמצוין בסביבת ה־# נקרא גם משתמש שורש, שמתייחס למשתמש עם הרשאות מנהל מובנות.

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

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

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

התנסות בתיקיות

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

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

  1. pwd

לאחר הרצת הפקודה הזו, תקבלו את הפלט הבא:

Output
/home/sammy

הפקודה pwd עומדת על "present working directory" והיא מציגה את המיקום שבו אתה נמצא במערכת הקבצים הנוכחית.

בדוגמה זו, אתה נמצא בתיקייה (או ספרייה) הנקראת /home/sammy, שמייצגת את המשתמש הנקרא sammy. אם אתה מחובר כ root, משתמש עם הרשאות מרומות, אז התיקייה תיקרא /root. במחשב אישי, ייתכן שהתיקייה הזו תיקרא על שם המשתמש שבעל המחשב. במחשב של Sammy Shark ייתכן שהתיקייה הראשית של המשתמש תיקרא /sammy או /sammy-shark או /home/sammy.

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

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

כדי ליצור תיקייה חדשה בשם files נכתוב את הבא, עם mkdir היא הפקודה ו files היא הפרמטר:

  1. mkdir files

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

רישום התוכן והבנת הרשאות

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

  1. ls

תקבלו פלט שמאשר את קיום התיקייה files:

Output
files

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

בואו נכתוב את הפקודה והדגל הזה, כמו כן:

  1. ls -l

בלחיצה על ENTER, נקבל את הפלט הבא בטרמינל שלנו:

Output
total 4 drwxr-xr-x 2 sammy sammy 4096 Nov 13 18:06 files

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

כדי לקבל פלט שקריא יותר לאנשים, אנו יכולים גם להעביר את הדגל -h או --human-readable, שידפיס את גדלי הזיכרון בפורמט שקריא לבני אדם, כמו בדוגמה הבאה. בדרך כלל, מקף אחד - מתייחס לאפשרויות בתיבת אותיות, ושני מקפים -- מתייחסים לאפשרויות שמופיעות במילים. שימו לב שיש כמה אפשרויות שיכולות להשתמש בשני הפורמטים. אנו יכולים לבנות מספר אפשרויות לפקודה על ידי חיבור דגלים יחד, כמו ב־-lh.

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

  1. ls -lh
  1. ls -l --human-readable

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

Output
total 4.0K drwxr-xr-x 2 sammy sammy 4.0K Nov 13 18:06 files

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

File type Permissions Link count Owner Group File size Last modified date File name
d rwxr-xr-x 2 sammy sammy 4.0K Nov 13 18:06 files

תשימו לב ששם התיקייה שלנו, files, נמצא בסוף השורה השנייה של הפלט. שם זה מציין איזו פריט מסוים בתיקיית המשתמש /home/sammy תואר על ידי השורה של הפלט. אם הייתה לנו קובץ נוסף בתיקייה, היינו רואים שורת פלט נוספת עם פרטים על הקובץ ההוא.

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

Character Description
d directory (or folder) — a type of file that can hold other files, useful for organizing a file system; if this were - instead, this would refer to a non-directory file
r read — permission to open and read a file, or list the contents of a directory
w write — permission to modify the content of a file; and to add, remove, rename files in a directory
x execute — permission to run a file that is a program, or to enter and access files within a directory

בתוֹך התווים הראשונים של drwx, התו הראשון d אומר שהפריט files הוא ספרייה. אם זה היה קובץ שונה מספרייה, מחרוזת זו היתה מתחילה במין מקף במקום, כמו במילים -rwx, שבה המקף הראשון מציין קובץ לא ספרייה. שלושת האותיות הבאות, rwx, מייצגות את ההרשאות לבעלים של הספרייה files, ומשמעותן היא שהספרייה files יכולה להיות r קרא, w כתוב, וx בריאותי על ידי בעלים של הקובץ. אם כל אחת מהאותיות האלה הייתה מוחלפת במקף, זה יהיה אומר שלבעלים אין את סוג ההרשאה שמייצגת את התו הזה. נדון באופן לזהות את הבעלים של קובץ ברגע.

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

התווים האחרונים של מחרוזת הראשונה, r-x מייצגים את ההרשאות עבור קבוצות משתמשים אחרות שיש להן גישה למכשיר. במקרה זה, קבוצות המשתמשים אלו יכולות גם לקרוא ולבצע, אך לא לכתוב.

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

אחרי המספר 2, המילה sammy מוצגת פעמיים. חלק זה מהפלט מספק מידע אודות הבעלים והקבוצה הקשורים עם תיקיית files. ההופעה הראשונה של sammy בשורה זו מתייחסת לבעלים של התיקייה, שההרשאות שלו ראינו בקודם הן rwx. משתמש ה-sammy הוא הבעלים מאחר ויצרנו את תיקיית files כמשתמש sammy והוא הבעלים הנוכחי של הקובץ. אף על פי שמשתמש ה-sammy הוא המשתמש היחידי בסביבת העבודה הנוכחית שלנו, מערכות ההפעלה דומות ל-Unix נוהגות לכלול יותר ממשתמש אחד ולכן נחוץ לדעת איזה משתמש בעל זכויות בעלות על קובץ.

ההופעה השנייה של sammy מתייחסת לקבוצה שיש לה גישה לתיקיית files, שההרשאות שלה ראינו בקודם הן r-x. במקרה זה, שם הקבוצה זהה לשם המשתמש הבעלים sammy. בסביבות ממשית, יתכן ויהיו קבוצות אחרות במערכת ההפעלה שיש להן גישה לתיקייה, כגון staff או שם משתמש כמו admin.

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

עם ההבנה המורחבת של מערכות הקבצים וההרשאות, אנו יכולים להמשיך לנווט במערכת הקבצים בטרמינל שלנו ב-Linux.

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

בואו נלמד כיצד לנווט במערכת הקבצים. יצרנו ספרייה חדשה, אך אנחנו עדיין נמצאים בספריית המשתמש הראשית /home/sammy. כדי להיכנס לספרייה /home/sammy/files שיצרנו, נשתמש בפקודת cd ונעביר את שם הספרייה שברצוננו להיכנס אליה כארגומנט. הפקודה cd מתארת "שינוי ספרייה," ונבנה אותה כך:

  1. cd files

שוב, לא תקבלו פלט חוץ משורה חדשה עם סמן תיבת טקסט המתבהר, אך אנו יכולים לוודא שאנחנו נמצאים בספריית /home/sammy/files עם הפקודה pwd שהשתמשנו בה מוקדם:

  1. pwd

תקבלו את הפלט הבא, המאשר את המיקום שלכם:

Output
/home/sammy/files

זה מאשר שאתה נמצא בתיקיית /home/sammy/files של תיקיית המשתמש /home/sammy. האם התחברות זו נראית לך מוכרת? זה עשוי להזכיר לך כתובת URL של אתר אינטרנט עם הקווים המוליכים שלו, ואכן, אתרי אינטרנט מבוססים על שרתים בתוך ספריות גם הם.

בוא נתעבר לתיקייה הראשית של השרת. בלי קשר למקום בקובץ המערכת שלנו, תמיד נוכל להשתמש בפקודת cd / כדי להעביר את עצמנו לתיקיית הראשית:

  1. cd /

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

  1. ls

נקבל את הפלט הבא:

Output
bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run s sbin srv sys tmp usr var

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

תשים לב גם שישנה תיקייה שכבר היינו בה, תיקיית המשתמש /home. מתוך תיקיית /, נוכל לשנות תיקייה בחזרה לתיקיית /home ואז בחזרה לתיקיית files, או שנוכל להעביר ישירות חזרה אל התיקייה ההיא על ידי קליטת הנתיב המוחלט שם עם cd:

  1. cd /home/sammy/files

עכשיו, אם תריץ את pwd, תקבל את הפלט /home/sammy/files.

A file path is the representation of where a file or directory is located on your computer or server. You can call a path to a file or directory in either a relative or absolute way. A relative path would be when we move to a location relative to our current working directory, like we did when we were already in /home/sammy/ and then moved into files/. An absolute path is when we call the direct line to a location, as we did above with /home/sammy/files, showing that we started in the / directory, called the /home/sammy/ user directory and then the nested files/ directory.

בנוסף, Linux משתמשת ב-נקודה רישומית כדי לעזור למשתמשים לנווט באמצעות נתיבים יחסיים. נקודה יחידה . מייצגת את התיקייה שבה אתה נמצא כרגע, ושתי נקודות .. מייצגות את התיקייה האב. אז, מהמיקום שבו אנו נמצאים כרגע (/home/sammy/files), אנו יכולים להשתמש בשתי נקודות כדי לחזור לתיקיית ההורה /home/sammy של המשתמש, כמו כן:

  1. cd ..

אם תריץ pwd, תקבל את הפלט /home/sammy ואם תריץ ls, תקבל את הפלט files.

סמל נוסף חשוב שכדאי להכיר הוא ~ שמייצג את תיקיית הבית של המחשב שלך. כאן, תיקיית הבית שלנו נקראת /home/sammy עבור המשתמש sammy, אך במחשב מקומי זה עשוי להיות שמך האישי כמו ב־sammy-shark/.

אתה יכול להקליד את הפקודות הבאות מכל מקום במחשב שלך ולחזור לתיקיית הבית הזו:

  1. cd ~

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

יצירה ושינוי של קבצי טקסט

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

בואו נוודא קודם כל שאנחנו נמצאים בתיקיית files/ שבתיקיית המשתמש /home/sammy, שנוכל לעשות זאת או באמצעות אימות עם pwd, או על ידי שינוי תיקייה בנתיב המוחלט:

  1. cd /home/sammy/files

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

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

  1. touch ocean.txt

כשתלחץ על ENTER, תקבל שורת פקודת המתנה חדשה, ותוכל לרשום את התוכן הנוכחי של files/ כדי לוודא שנוצר.

  1. ls
Output
ocean.txt

עד כה יצרנו קובץ ocean.txt שאינו מכיל טקסט בזמן היצירה.

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

ניתן להשתמש ב־echo ישירות בשורת הפקודה כדי לקבל תשובה חוזרת מהממשק. התוכנית הראשונה המסורתית, "שלום, עולם!", ניתן לכתוב עם echo כך:

  1. echo Hello, World!
Output
Hello, World!

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

  1. echo "Sammy the Shark" > sammy.txt

הפקודה לעיל משתמשת ב־echo, אז הטקסט שברצוננו להוסיף לקובץ שלנו בציטוטים, אז מפעיל את אופרטור ההפניה >, ולבסוף את שם קובץ הטקסט החדש שלנו, sammy.txt.

ניתן לוודא שקובץ הטקסט החדש שלנו קיים, שוב עם ls.

  1. ls
Output
ocean.txt sammy.txt

כעת יש לנו שני קבצי טקסט בתיקיית המשתמש /home/sammy/files. לאחר מכן, נוכל לוודא שבקובץ sammy.txt יש את הטקסט שביקשנו מהמסוף להדפיס לתוכו. אפשר לעשות זאת עם הפקודה cat. קצר למילת השורה "concatenate", הפקודה cat תועילה מאוד לעבודה עם קבצים. מבין הפונקציות שלה ניתן לראות את תוכן הקובץ.

  1. cat sammy.txt

פעם שנריץ את הפקודה, נקבל את הפלט הבא:

Output
Sammy the Shark

אם היינו מריצים cat על קובץ הטקסט הריק ocean.txt, היינו מקבלים שום דבר כתוצאה מכך מכיוון שאין טקסט בקובץ זה. ניתן להוסיף טקסט לקובץ הקיים הזה עם echo גם. בואו נוסיף ציטוט של זורה ניאל הורסטון לקובץ.

  1. echo "Some people could look at a mud puddle and see an ocean with ships." > ocean.txt

עכשיו, אם נריץ cat על הקובץ, נקבל את פלט הטקסט שהכנסנו כעת.

  1. cat ocean.txt
Output
Some people could look at a mud puddle and see an ocean with ships.

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

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

  1. nano sammy.txt

הקובץ ייפתח בחלון הטרמינל שלך:

sammy.txt
Sammy the Shark

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

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

כאשר תסיים עם הקובץ שלך, עשוי להיות שיהיה נראה כך:

sammy.txt
Sammy the Shark

Hello, I am Sammy.
I am studying computer science.
Nice to meet you!

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

^G Get Help   ^O WriteOut   ^R Read File  ^Y Prev Page  ^K Cut Text   ^C Cur Pos
^X Exit       ^J Justify    ^W Where Is   ^V Next Page  ^U UnCut Text ^T To Spell

מכיוון שסיימנו לעבוד על קובץ זה, נרצה לצאת ממנו. כאן, הסמל ^ מתייחס למקש Control או CTRL במקלדת שלך, והפלט למעלה מספר לנו שצריך לשלב את המקש הזה עם האות X (שימוש באות קטנה, בלי ללחוץ על מקש SHIFT) כדי לצאת מהקובץ. בואו נלחץ על שני המקשים האלה יחד:

CTRL x

הדברים הנכתבים למעלה נכתבים לעיתים קרובות כמו CTRL + X או Ctrl+x במסמכי טכניים.

בנקודה זו, תקבל את ההודעה הבאה:

Output
Save modified buffer? Y Yes N No ^C Cancel

כדי לשמור את השינויים, נלחץ על האות y עבור כן:

y

תקבלו משוב דומה למה שלמעלה.

Output
File Name to Write: sammy.txt

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

נניח שאנחנו רוצים ליצור מספר קבצים של סטודנטים באוניברסיטת DigitalOcean. בואו ניצור ספריית קבצים חדשה בתוך files/ בשם students:

  1. mkdir students

לאחר מכן, בואו נעביר את sammy.txt לתוך הספרייה החדשה students/. הפקודה mv, שמשמעה mיvה, תאפשר לנו לשנות את המיקום של קובץ. הפקודה מורכבת מלקחת את הקובץ שברצוננו להעביר כארגומנט הראשון, והמיקום החדש כארגומנט השני. שתי הביצועים הבאים יוצרים את אותו התוצאה.

  1. mv sammy.txt students
  1. mv sammy.txt students/sammy.txt

האפשרות האחרונה תהיה שימושית אם נרצה לשנות את שם הקובץ, כמו ב־mv sammy.txt students/sammy-the-shark.txt.

עכשיו, אם נריץ את הפקודה ls, נראה רק את ocean.txt ואת התיקייה students/ בתיקייה הנוכחית שלנו (files/). בואו נתקדם אל תיקיית students/.

  1. cd students

כדי ליצור תבנית עבור התלמידים האחרים, נוכל להעתיק את הקובץ sammy.txt כדי ליצור עוד קבצים. לעשות זאת, נוכל להשתמש בפקודת cp, שמסמנת להעתקה. הפקודה עובדת באופן דומה לפקודת mv, לוקחת את הקובץ המקורי כארגומנט ראשון, ואת הקובץ החדש כארגומנט שני. ניצור קובץ עבור אלכס הדג העלים:

  1. cp sammy.txt alex.txt

עכשיו, נוכל לפתוח את alex.txt ולבדוק אותו.

  1. nano alex.txt

עד כה, alex.txt נראה זהה ל־sammy.txt. על ידי החלפת מספר מילים, נוכל לשנות את הקובץ הזה כדי לקרוא כמו הבא. שימו לב שאתם יכולים להשתמש ב־CTRL + K כדי להסיר שורה שלמה.

alex.txt
Alex the Leafy Seadragon

Hello, I am Alex.
I am studying oceanography.
Nice to meet you!

ניתן לשמור ולסגור את הקובץ על ידי לחיצה על CTRL + X, לאחר מכן y, ולבסוף ENTER.

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

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

השלמת אוטומטית והיסטוריה

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

נסה להקליד cat יחד עם האותיות הראשונות של אחד מקבצי הטקסט שבהם עבדת — לדוגמה, cat sa. לפני שתסיים להקליד את שם הקובץ המלא של sammy.txt, לחץ על מקש ה-TAB. זה ישלים את שם הקובץ במלואו, כך שהערה המכובה שלך תציג את הבא:

  1. cat sammy.txt

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

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

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

  1. history

בהתבסס על התרגול שביצעת, יש לך צורך ב-30 או יותר שורות פקודות, החל מהפלט הבא:

Output
1 pwd 2 mkdir files 3 ls 4 ls -l ...

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

עבודה עם קבצים מהאינטרנט

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

בואו נחזור לתיקיית files/:

  1. cd /home/sammy/files

מכאן, נשתמש בפקודת curl כדי להעביר נתונים מהאינטרנט אל טרמינל האינטראקטיבי האישי שלנו בדפדפן. הפקודה curl מתארת Client URL (כתובת אינטרנט).

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

  1. curl https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt

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

Output
"You like the sea, Captain?" "Yes; I love it! The sea is everything. It covers seven tenths of the terrestrial globe. ... "Captain Nemo," said I to my host, who had just thrown himself on one of the divans, "this is a library which would do honor to more than one of the continental palaces, and I am absolutely astounded when I consider that it can follow you to the bottom of the seas."

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

כדי לשמור את הטקסט לקובץ, נצטרך להריץ את curl עם הדגל -O, שמאפשר לנו להוציא את הטקסט לקובץ, תוך שמירה על אותו שם כמו הקובץ המקורי להעתק המקומי שלנו.

  1. curl -O https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt

תקבלו משוב מהטרמינל שהקובץ שלך הורד.

Output
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2671 100 2671 0 0 68487 0 --:--:-- --:--:-- --:--:-- 68487

אם ברצונך להשתמש בשם מסוים ואלטרנטיבי של הקובץ, תוכל לעשות זאת עם הדגל -o ולהעביר את שם הקובץ החדש כארגומנט (במקרה זה, jules.txt).

  1. curl -o jules.txt https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt

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

בקטע הבא, נסדר חלק מהקבצים וניצא מהטרמינל שלנו.

הסרת קבצים וסיום פקודות

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

נניח שהסטודנטים שאנו מכירים מאוניברסיטת דיגיטלאושן סיימו ואנו צריכים לנקות את הקבצים שלהם ואת התיקייה הרלוונטית. וודאו שאתם נמצאים בתיקיית students/:

  1. cd /home/sammy/files/students

אם תריצו ls, התיקייה שלך עשויה להכיל מספר קבצים, כך:

Output
alex.txt drew.txt jamie.txt jesse.txt sammy.txt taylor.txt

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

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

  1. rm sammy.txt

עכשיו, אם נריץ ls, נשים לב ש-sammy.txt כבר אינו בתיקייה:

Output
alex.txt drew.txt jamie.txt jesse.txt taylor.txt

עם זאת, כעת שידענו שאנו יכולים להסיר קבצים יחידים עם rm, זה אינו יעיל בזמן אם נרצה להסיר את תיקיית students/ ואת כל התוכן שלה.

הפקודה שמשמשת להסרת תיקיות נקראת rmdir, שמציינת remove directory. בואו נעבור לתיקיית ההורה של files כדי שנוכל לעבוד עם תיקיית students/ משם (אי אפשר למחוק תיקייה שאנו נמצאים בה כרגע).

  1. cd ..

מתוך תיקיית המשתמש /home/sammy/, אנו יכולים להריץ rmdir על students.

  1. rmdir students

עם זאת, זה לא עובד, מכיוון שאנו מקבלים את המשוב הבא:

Output
rmdir: failed to remove 'students': Directory not empty

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

כדי להסיר את התיקייה עם הקבצים שנמצאים בתוכה, נצטרך לנסות אפשרות שונה. במדעי המחשב, הרקורסיה נהוגה לשימוש כדי להתייחס באופן רקורסיבי לעצמה; על מנת שנוכל לקרוא לפריט ראשי ולכל התלויותיו. באמצעות פקודת rm, נוכל להסיר את התיקייה הראשית students ואת כל תלותיה בתוכן באופן רקורסיבי. נשתמש בדגל -r, שמציין רקורסיה, ונעביר את התיקייה students כארגומנט.

  1. rm -r students

בנקודה זו, אם נריץ ls, נשים לב ש- students/ כבר אינה נמצאת בתיקיית הנוכחית שלנו, ואף אחד מהקבצים שהיו בתוכה לא זמינים יותר, מאחר וכולם נמחקו.

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

  1. exit

בטרמינל האינטראקטיבי שלנו, נקבל את הפלט הבא, שמאשר שהמפגש שלנו הסתיים.

Output
Session ended

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

מסקנה

ברכות! עכשיו אתה מכיר היטב את ממשק הטרמינל, ואתה בדרך הנכונה לעשות עוד דברים עם מחשבים ושרתים.

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

Source:
https://www.digitalocean.com/community/tutorials/a-linux-command-line-primer