חוויית Linux יותר טובה עם ה-Shell של Fish

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

למד להפוך את המסע שלך ב-Linux עם קופסת השקייה של fish, מממשק המשתמש הידידותי שלה ועד אפשרויות ההתאמה הרחבות שלה.

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

דרישות קדם

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

  • קופסת השקייה של Fish מותקנת במכשיר שלך – המדריך הזה משתמש בגרסה fish-3.7.0, הגרסה האחרונה ככתיבת המאמר הזה.
  • A Linux system – This tutorial uses an Ubuntu 22.04 LTS for demonstrations, but other distributions will work.

חקירת אימות פקודות, השלמה אוטומטית, והצעות

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

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

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

1. פתחו טרמינל והריצו את הפקודה fish למטה כדי לגשת לשל פיש.

fish
Accessing the fish shell

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

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

אבל אל דאגה! בזכות ההצעה האוטומטית, האות 's' מופיעה בצבע כהה, מרמזת על הפקודה הנכונה.

Testing command validation

3. עכשיו, לחצו על חץ הימין או על מקשי Ctrl+F כדי לקבל את הפקודה המוצעת באופן אוטומטי ls.

שימו לב שהאות 'l' שונתה מאדום לכחול מאחר ששל פיש כעת מזהה את הפקודה שלך כ-ls.

Accepting the auto-suggested command

הגדרת כינויי פקודות בקובץ התצורה של פיש

מלבד משוב בזמן אמת והצעות תוכן-מודעות, פיש מציעה דרך חזקה וגמישה להתאמה אישית של סביבת הפקודות שלך – קובץ ההגדרה של פיש. להבדיל משאר השלים שעשויים להשתמש במספר קבצי הגדרה, פיש בעיקר משתמשת בקובץ אחד בשם config.fish הממוקם בתיקיית ~/.config/fish/.

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

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

nano ~/.config/fish/config.fish

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

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

Opening the fish configuration file

2. בתוך בלוק ה־if, הוסף את הפונקציה הבאה function ושמור את השינויים וסגור את העורך.

בנקודה זו, אתה יוצר הגדרות מותאמות אישית בקובץ התצורה של fish, והפונקציה הזו מגדירה את האליאס (c) עבור פקודת ה־clear.

# פונקציה זו יוצרת אליאס עבור הפקודה "clear"
function c
    clear
end

? הערה: לכל פונקציה שהוגדרה יש קובץ .fish תואם בתיקיית ~/.config/fish/functions/ (כלומר c.fish).

Creating an alias for the clear command

3. בצע את הפקודה הבאה כדי ל־source את קובץ התצורה (config.fish).

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

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

source ~/.config/fish/config.fish

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

שים לב שהאות ‘c‘ משתנה לצבע כחול מאחר ופקודת השולחן מזהה אותו כפקודת clear. ההתנהגות הזו מציינת שינוי מוצלח בתצורת הפקודה של fish.

ראה כיצד האות ‘c’ משתנה לצבע כחול? השינוי הזה הוא מכיוון שפקודת השולחן מזהה את האות ‘c’ כפקודת clear. ההתנהגות הזו מסמנת עדכון מוצלח בתצורת הפקודה שלך.

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

Verifying the newly created alias for the clear command works

התאמה אישית של השולחן של Fish

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

כדי להתאים אישית את השולחן של fish, בצע את הפעולות הבאות:

1. פתח את קובץ התצורה של fish (~/.config/fish/config.fish), והוסף את הפונקציה הבאה.

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

# התאמה אישית של התווית של דג
function fish_prompt
    echo '$ '
end
Customizing the fish shell prompt

2. שמור את השינויים בקובץ התצורה של דג וצא מהעורך.

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

source ~/.config/fish/config.fish

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

Sourcing the fish configuration file to apply the shell prompt changes

שמירת שינויים בין הסשנים

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

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

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

1. פתח את קובץ ההגדרה של דג, והוסף את הפקודה funcsave לכל function יחד עם שם הפונקציה, כמו כן:

Appending the funcsave command to persist functions across sessions

2. שמור את השינויים שלך, וסגור את העורך ואת הטרמינל.

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

fish

אם פקודות ה־funcsave שצירפת עובדות בשמירה על התצורות שלך, תראה הודעות דומות לאלו למטה.

Accessing the fish shell to verify the configurations persist across sessions

הגדרת ושמירת משתני סביבה

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

אך יש פרט, אתה יודע? אה, ניחשת נכון! משתנה שהוגדר דרך פקודת set בטרמינל נגיש רק במהלך ההפעלה הנוכחית.

כדי להגדיר ולשמור משתני סביבה, דגל ה־-gx יהיה מועיל כדלקמן:

1. הוסף את הפקודה הבאה ל־set את המשתנה MY_VARIABLE בקובץ התצורה של שרת הדגים כגלובלי. להלן כיצד פועל דגל ה־-gx:

  • -g – מגדיר את המשתנה כגלובלי, נגיש מכל טווח באותה סביבת משתמש.
  • -x – מייצא את המשתנה, מפעיל אותו לפקודות חיצוניות או תוכניות המופעלות משרת הדגים.
# הגדרת MY_VARIABLE כגלובלי וייצואו
set -gx MY_VARIABLE HelloWorld
Setting an environment variable in the fish configuration file

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

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

echo $MY_VARIABLE

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

Verifying variable persistence

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

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

# הגדר את המשתנה MY_UNIVERSAL_VARIABLE כגלובלי וייצא אותו
set -Ux MY_UNIVERSAL_VARIABLE universal

ראה איך הדגל -Ux פועל למטה:

  • -U – מבצע את המשתנה MY_UNIVERSAL_VARIABLE כגלובלי, מבטיח שהוא ישותף בכל ההפעלות הנוכחיות והעתידיות של הטרמינל, כולל אלו של משתמשים שונים.
  • -x – המשתנה מיוצא לתהליכי ילד, כך שהוא נגיש לכל פקודות או תסריטים שנקראים מההפעלה הנוכחית.
Setting a universal environment variable in the fish configuration file

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

echo $MY_UNIVERSAL_VARIABLE

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

Verifying universal variable persistence

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

ניהול תוספות של Fish עם מנהל החבילות Fisher

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

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

? Fisher הוא קל בניהול תוספי Fish ואינו ניתן להשוואה ישירה למנהלי חבילות ברמת המערכת. ההבדל הוא ברור לגבי גודלם ומורכבות החבילות שהוא ניהל.

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

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

curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher

לאחר ההתקנה, תראה את הפלט הבא.

Installing the Fisher package manager

עכשיו, הרץ את הפקודה fisher למטה כדי לאשר את ההתקנה ולראות את --version המותקן כרגע במערכת שלך של Fisher.

fisher --version
Confirming the installed Fisher version

התקנת תוסף GitNow

עכשיו שיש לך את Fisher רץ, מה הבא? מה דעתך לשדרג את הקופסא שלך באמצעות כמה תוספות מדליקות? GitNow, לדוגמה, הוא ארגז הכלים שמחזק את תהליך העבודה שלך עם Git בתוך הקופסא הזו—מפתה.

GitNow מציע פקודות מאובטחות עבור משימות קצרות ורגילות ב-Git, משפר את היציבות ופשוט את תהליך הפקודות שלך ב-Git.

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

1. בקופסא שלך, בצע את הפקודה fisher הבאה כדי להתקין את תוסף ה-GitNow (joseluisq/gitnow).

הפקודה הזו אומרת ל-Fisher לאסוף ולאינטגרציה של GitNow לתצורת הקופסא שלך, מה שהופך את מערך הקיצורים שלו ב-Git לזמין מיידית.

fisher install joseluisq/gitnow
Installing the GitNow plugin

2. לאחר התקנתו, הפעל את הפקודה gitnow למטה כדי לוודא ש-GitNow מותקן בצורה תקינה.

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

gitnow --version
Verifying the GitNow installation

3. לבסוף, הפעל את הפקודה fisher הבאה כדי לרשום את כל התוספות שמנהל החבילות Fisher ניהל, כולל GitNow.

fisher list

למטה, ניתן לראות את תוסף GitNow ואת עצמו תוסף Fisher.

Viewing all plugins managed by Fisher

הסרת תוספות מהקופסא של Fish

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

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

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

fisher list

בחר אחד מהרשימה שברצונך להסיר.

Viewing all installed plugins

2. לאחר מכן, הרץ את הפקודה fisher remove למטה, ואחריה את שם התוסף (joseluisq/gitnow) שברצונך להסיר.

fisher remove joseluisq/gitnow

פקודה זו מורה ל-Fisher להסיר את התוסף GitNow מסביבת ה-shell שלך.

Removing the GitNow plugin

3. כעת, הרץ שוב את הפקודה fisher list כדי לוודא שהתוסף GitNow הוסר בהצלחה.

fisher list

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

Verifying the GitNow plugin removal

הסרת מנהל החבילות Fisher

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

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

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

fisher list | fisher remove
Listing and removing all plugins

בנוסף, בצע את הפקודה הבאה כדי להסיר רק את Fisher עצמו.

fisher remove jorgebucaran/fisher
Removing Fisher only

חקירת מנהל החבילות Oh My Fish

כשכבר נסעת עם Fisher, למה לשקול Oh My Fish? כבר חווית את עוצמת תוספי המקור של הדג. אבל כאן היא: מסגרת זו פותחת תחום חדש של התאמה אישית עבור הקופסה של הדג, ומציעה אוסף רחב של ערכות עיצוב ותוספים.

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

הרץ את הפקודת curl הבאה כדי להוריד ולהריץ את תסריט ההתקנה של Oh My Fish (https://get.oh-my.fish) בתוך הקופסה של fish.

curl -L https://get.oh-my.fish | fish

אם יצליח, יהיה לך פלט דומה לזה הבא.

Installing the Oh My Fish package manager

לאחר התקנה, הרץ את הפקודה omf הבאה כדי לבדוק את הגרסה שהותקנה של Oh My Fish.

omf --version

A successful response, as shown below, indicates that Oh My Fish is ready and waiting to transform your fish shell experience.

Verifying the Oh My Fish installation

התאמת הסביבה עם ערכות נושאים של Oh My Fish

האם אתה עייף ממראה אותה קופסת דג? למה לא להוסיף קצת אישיות? תן לסביבה של הקופסת דג שלך התרנות עם ערכות עיצוב מעודנות ואישיות מ Oh My Fish.

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

1. פתח את קובץ התצורה של הדג, והסר את הפונקציה fish_prompt המגדירה כיצד ההוראה שלך מציגה. על ידי כך, אתה מבטיח שההוראה האישית שהגדרת לא תתנגש או תמחק את הערכות הנושא שמסופקות על ידי Oh My Fish.

? ערכות נושא מגיעות עם פרומטים ייחודיים חיוניים למראה ולפעולתם. ביטול הפרומט המותאם אישית שלך (fish_prompt) מבטל את התמיכה המלאה של ערכת הנושא של Oh My Fish שבחרת בעיצוב ובתכונות שלה לתוך הקופסה שלך.

2. לאחר מכן, מחק (rm) את קובץ ~/.config/fish/functions/fish_prompt.fish. הפקודה הזו אין לה פלט, אך מחיקת הקובץ הזה מבטלת את הפרומט המותאם אישית של הדג.

rm ~/.config/fish/functions/fish_prompt.fish

3. הרץ את הפקודת source כדי שהשינויים בקובץ התצורה של הדג ייכנסו לתוקף.

source ~/.config/fish/config.fish
Sourcing the fish configuration file

4. עכשיו, בצע את הפקודה הבאה omf כדי לגלות את הערכת הנושא המושלמת עבור הדג שלך.

omf theme

בחר ערכת נושא אחת שברצונך לשלב לתוך הדג שלך (לדוגמה, cbjohnson).

? בקר במאגר ה-GitHub הרשמי של ערכות נושא של Oh My Shell כדי לראות איך כל ערכת הנושא נראית לפני שאתה מתקין אותם.

Listing available Oh My Fish themes

? שדרג את הדג שלך בעזרת תוספים על ידי הרצת הפקודה הבאה כדי להתקין תוספים. בקר במאגר ה-GitHub של OMF כדי לקבל רשימה של תוספים להתקנה. omf install <שם_התוסף>

5. לאחר מכן, הרץ את הפקודה הבאה כדי להתקין את ערכת הנושא שבחרת בשלב הרביעי (cbjohnson).

omf install cbjohnson

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

Installing an Oh My Fish theme (cbjohnson)

? עצה: החלפת ערכות עיצוב במהירות כאשר יש לך שתי או יותר על ידי הרצת הפקודה הבאה. omf ערכת_עיצוב

הסרת Oh My Fish

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

כדי להסיר את Oh My Fish, עבור על השלבים הבאים:

1. בצע את הפקודות rm הבאות כדי למחוק את כל קבצי הקשורים ל-Oh My Fish.

rm -rf ~/.local/share/omf
rm -rf ~/.config/omf

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

Deleting Oh My Fish-related files

2. לאחר מכן, בצע את כל אחת מהפקודות הבאות כדי למחוק קבצים נוספים הקשורים ל-Oh My Fish.

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

rm -rf ~/.local/share/omf/pkg/omf/functions/omf.fish
rm ~/.config/fish/conf.d/omf.*

3. עכשיו, הפעל את הפקודה הבאה omf כדי לוודא את המחיקה.

omf --version

תראה שגיאה דומה למטה, שאומרת שהפקודה omf לא נמצאת וש-Oh My Fish הוסר לחלוטין.

Verifying the Oh My Fish deletion

הגדרת Fish כסדרת הפקודות ברירת המחדל

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

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

1. בצע את הפקודה הבאה כדי למצוא את נתיב ה־which שבו נמצא ה־shell של fish.

which fish

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

Finding the path to the fish shell

2. לאחר מכן, הרץ את הפקודה הבאה כדי להוסיף את fish לרשימת ה־shells המקובלות ב־/etc/shells.

echo "/usr/bin/fish" | sudo tee -a /etc/shells
Adding fish to the list of acceptable shells

3. לבסוף, הרץ את הפקודה chsh למטה כדי לשנות את ה־shell המוגדר שלך ל־fish (/usr/bin/fish).

chsh -s /usr/bin/fish

כאשר אתה מפעיל מחדש את המכונה שלך, יהיה לך את fish כ־shell ברירת המחדל שלך.

Changing the default shell to fish

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

סיכום

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

רכשת תובנות על הפיתוח של החוויה שלך ב־Linux עם מנהל החבילות Oh My Fish. ובנוסף, למדת כיצד לגלות ולהתקין תוספים וערכות נושא חדשות בצורה בלתי נפרדת, מרחיב את הפונקציונליות והאסתטיקה של סביבת ה־fish shell שלך.

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

Source:
https://adamtheautomator.com/fish-shell/