rm: להסיר את הספרייה 'ארכיון'? y
אנו נדון כיצד להפוך אפשרות זו לברירת המחדל בפרק 7, אשר דן בהתאמה אישית של סביבת המעטפת שלך.
3.3.3. מציאת קבצים
3.3.3.1. שימוש בתכונות מעטפת
בדוגמה על העברת קבצים כבר ראינו כיצד המעטפת יכולה לתפעל מספר קבצים בבת אחת. בדוגמה זו, המעטפת מגלה אוטומטית למה מתכוון המשתמש בדרישות בין הסוגרים המרובעים "[" ו-"]". המעטפת יכולה להחליף טווחים של מספרים ותווים גדולים או קטנים כאחד. זה גם מחליף כמה תווים שתרצה בכוכבית, ורק תו אחד בסימן שאלה.
ניתן להשתמש בכל מיני תחליפים בו זמנית; הקליפה מאוד הגיונית לגבי זה. למעטפת Bash, למשל, אין בעיה עם ביטויים כמו ls שם שם/*/*/*[2-3].
בקליפות אחרות, הכוכבית משמשת בדרך כלל כדי למזער את מאמצי ההקלדה: אנשים היו נכנסים cd דיר* במקום cd בספרייה. ב-Bash לעומת זאת, זה לא הכרחי כי למעטפת GNU יש תכונה שנקראת השלמת שם קובץ. זה אומר שאתה יכול להקליד את התווים הראשונים של פקודה (בכל מקום) או קובץ (בספרייה הנוכחית) ואם לא יתכן בלבול, המעטפת תגלה למה אתה מתכוון. לדוגמה
בספרייה המכילה קבצים רבים, אתה יכול לבדוק אם יש קבצים שמתחילים באות A רק על ידי הקלדה ls A ולחץ על Tab מקש פעמיים, במקום ללחוץ זן. אם יש רק קובץ אחד שמתחיל ב-"A", קובץ זה יוצג כארגומנט ל ls (או כל פקודת פגז, לצורך העניין) מיד.
3.3.3.2. איזה
דרך פשוטה מאוד לחפש קבצים היא שימוש ב- אשר הפקודה, כדי לחפש בספריות המפורטות בנתיב החיפוש של המשתמש את הקובץ הדרוש. כמובן, מכיוון שנתיב החיפוש מכיל רק נתיבים לספריות המכילות תוכניות הפעלה, אשר לא עובד עבור קבצים רגילים. ה אשר הפקודה שימושית בעת פתרון בעיות "הפקודה לא נמצאה". בדוגמה למטה, משתמש טינה לא יכול להשתמש ב- acroread תוכנית, בעוד לעמית שלה אין בעיות כלשהן באותה מערכת. הבעיה דומה ל נתיב בעיה בחלק הקודם: הקולגה של טינה אומר לה שהוא יכול לראות את התוכנית הנדרשת
/opt/acroread/bin, אבל ספריה זו אינה בנתיב שלה:
טינה:~> אשר אקרורד
/usr/bin/which: אין acroread ב-(/bin:/usr/bin:/usr/bin/X11)
טינה:~> אשר אקרורד
/usr/bin/which: אין acroread ב-(/bin:/usr/bin:/usr/bin/X11)
ניתן לפתור את הבעיה על ידי מתן הנתיב המלא לפקודה להפעלה, או על ידי ייצוא מחדש של התוכן של
משתנה PATH:
טינה:~> ייצוא PATH=$PATH:/opt/acroread/bin
טינה:~> הד $ PATH
/bin:/usr/bin:/usr/bin/X11:/opt/acroread/bin
טינה:~> ייצוא PATH=$PATH:/opt/acroread/bin
טינה:~> הד $ PATH
/bin:/usr/bin:/usr/bin/X11:/opt/acroread/bin
משתמש ב אשר הפקודה גם בודקת אם פקודה היא כינוי לפקודה אחרת:
gerrit:~> אשר -a ls
ls הוא בכינוי `ls -F --color=auto' ls הוא /bin/ls
gerrit:~> אשר -a ls
ls הוא בכינוי `ls -F --color=auto' ls הוא /bin/ls
אם זה לא עובד במערכת שלך, השתמש ב- כינוי פקודה:
tille@www:~/mail$ כינוי ls
כינוי ls='ls --color'
tille@www:~/mail$ כינוי ls
כינוי ls='ls --color'
3.3.3.3. מצא ואיתר
אלו הם הכלים האמיתיים, המשמשים בעת חיפוש אחר נתיבים אחרים מלבד אלה הרשומים בנתיב החיפוש. ה למצוא הכלי, המוכר מ-UNIX, הוא חזק מאוד, מה שעשוי להיות הגורם לתחביר קצת יותר קשה. גנו למצוא, לעומת זאת, עוסק בבעיות התחביר. פקודה זו לא רק מאפשרת לך לחפש שמות קבצים, היא יכולה גם לקבל את גודל הקובץ, תאריך השינוי האחרון ומאפייני קבצים אחרים כקריטריונים לחיפוש. השימוש הנפוץ ביותר הוא למציאת שמות קבצים:
למצוא -שֵׁם
זה יכול להתפרש כ"חפש בכל הקבצים ותתי הספריות הכלולים בנתיב נתון, והדפיס את שמות הקבצים המכילים את מחרוזת החיפוש בשמם" (לא בתוכן שלהם).
יישום נוסף של למצוא מיועד לחיפוש קבצים בגודל מסוים, כמו בדוגמה למטה, כאשר משתמש פיטר
רוצה למצוא את כל הקבצים בספרייה הנוכחית או באחת מתיקיות המשנה שלה, שגודלם עולה על 5 MB:
פיטר:~> למצוא . -גודל +5000k
פסיכוטי_כאוס.mp3
פיטר:~> למצוא . -גודל +5000k
פסיכוטי_כאוס.mp3
אם תחפור בדפי האיש, תראה את זה למצוא יכול גם לבצע פעולות על הקבצים שנמצאו. דוגמה נפוצה היא הסרת קבצים. עדיף לבדוק תחילה ללא -Exec אפשרות שהקבצים הנכונים ייבחרו, לאחר מכן ניתן להפעיל מחדש את הפקודה כדי למחוק את הקבצים שנבחרו. להלן, אנו מחפשים קבצים המסתיימים ב .tmp:
פיטר:~> למצוא . -שם "*.tmp" -exec rm {} \;
פיטר:~>
פיטר:~> למצוא . -שם "*.tmp" -exec rm {} \;
פיטר:~>
בצע אופטימיזציה!
הפקודה הזו תתקשר rm כמה פעמים נמצא קובץ העונה על הדרישות. במקרה הגרוע, זה עשוי להיות אלפי או מיליוני פעמים. זה די עומס על המערכת שלך.
דרך עבודה ריאלית יותר תהיה השימוש בצינור (|) וב- קסארגס כלי עם rm בתור טיעון. בדרך זו, ה rm הפקודה נקראת רק כאשר שורת הפקודה מלאה, במקום עבור כל קובץ. ראה פרק 5 למידע נוסף על שימוש בהפניית קלט/פלט כדי להקל על משימות יומיומיות.
מאוחר יותר (בשנת 1999 לפי דפי האדם, לאחר 20 שנה של למצוא), לְאַתֵר פותח. תוכנית זו קלה יותר לשימוש, אך מוגבלת יותר למצוא, שכן הפלט שלו מבוסס על מסד נתונים של אינדקס קבצים שמתעדכן רק פעם אחת בכל יום. מצד שני, חיפוש ב- לְאַתֵר מסד הנתונים משתמש בפחות משאבים מאשר למצוא ולכן מציג את התוצאות כמעט באופן מיידי.
רוב ההפצות של לינוקס משתמשות להחליף בימים אלה, מיקום משופר באבטחה, הגרסה המודרנית של לְאַתֵר שמונע ממשתמשים לקבל פלט שאין להם זכות לקרוא. הקבצים ב שורשספריית הבית של הם דוגמה כזו, אלה אינם נגישים בדרך כלל לציבור. משתמש שרוצה למצוא מישהו שיודע על מעטפת C עשוי להוציא את הפקודה לְאַתֵר .cshrc, כדי להציג את כל המשתמשים שיש להם קובץ תצורה מותאם אישית עבור מעטפת C. נניח שהמשתמשים שורש ו ג'ני מריצים C shell, ואז רק הקובץ
/home/jenny/.cshrc יוצג, ולא זה שנמצא שורשספריית הבית של. ברוב המערכות,
locate הוא קישור סמלי לתוכנית slocate:
בילי:~> ls -l /usr/bin/locate
lrwxrwxrwx 1 root slocate 7 באוקטובר 28 14:18 /usr/bin/locate -> slocate*
בילי:~> ls -l /usr/bin/locate
lrwxrwxrwx 1 root slocate 7 באוקטובר 28 14:18 /usr/bin/locate -> slocate*
משתמש טינה יכול היה להשתמש לְאַתֵר כדי למצוא את האפליקציה שהיא רצתה:
טינה:~> לאתר acroread
/usr/share/icons/hicolor/16x16/apps/acroread.png
/usr/share/icons/hicolor/32x32/apps/acroread.png
/usr/share/icons/locolor/16x16/apps/acroread.png
/usr/share/icons/locolor/32x32/apps/acroread.png
/usr/local/bin/acroread
/usr/local/Acrobat4/Reader/intellinux/bin/acroread
/usr/local/Acrobat4/bin/acroread
טינה:~> לאתר acroread
/usr/share/icons/hicolor/16x16/apps/acroread.png
/usr/share/icons/hicolor/32x32/apps/acroread.png
/usr/share/icons/locolor/16x16/apps/acroread.png
/usr/share/icons/locolor/32x32/apps/acroread.png
/usr/local/bin/acroread
/usr/local/Acrobat4/Reader/intellinux/bin/acroread
/usr/local/Acrobat4/bin/acroread
ספריות שאינן מכילות את השם בן לא יכול להכיל את התוכנית - הם לא מכילים קבצי הפעלה. נותרו שלוש אפשרויות. הקובץ ב / usr / local / bin הוא אחד טינה הייתי רוצה: זה קישור לסקריפט המעטפת שמתחיל את התוכנית בפועל:
טינה:~> קובץ /usr/local/bin/acroread
/usr/local/bin/acroread: קישור סמלי ל-../Acrobat4/bin/acroread
טינה:~> קובץ /usr/local/Acrobat4/bin/acroread
/usr/local/Acrobat4/bin/acroread: טקסט טקסט להפעלה של מעטפת Bourne
טינה:~> קובץ /usr/local/Acrobat4/Reader/intellinux/bin/acroread
/usr/local/Acrobat4/Reader/intellinux/bin/acroread: קובץ הפעלה ELF 32-bit LSB, Intel 80386, גרסה 1, מקושר דינמית (משתמש
טינה:~> קובץ /usr/local/bin/acroread
/usr/local/bin/acroread: קישור סמלי ל-../Acrobat4/bin/acroread
טינה:~> קובץ /usr/local/Acrobat4/bin/acroread
/usr/local/Acrobat4/bin/acroread: טקסט טקסט להפעלה של מעטפת Bourne
טינה:~> קובץ /usr/local/Acrobat4/Reader/intellinux/bin/acroread
/usr/local/Acrobat4/Reader/intellinux/bin/acroread: קובץ הפעלה ELF 32-bit LSB, Intel 80386, גרסה 1, מקושר דינמית (משתמש
משותף ליבס), לֹא הופשט על מנת שהנתיב יהיה קצר ככל האפשר, כך שהמערכת לא תצטרך לחפש יותר מדי זמן בכל פעם שמשתמש רוצה לבצע פקודה, אנו מוסיפים / usr / local / bin לנתיב ולא למדריכים האחרים, אשר
מכילים רק את הקבצים הבינאריים של תוכנית אחת ספציפית, while / usr / local / bin מכיל שימושי אחר
גם תוכניות.
שוב, תיאור של התכונות המלאות של למצוא ו לְאַתֵר ניתן למצוא בדפי המידע.
3.3.3.4. הפקודה grep
3.3.3.4.1. סינון קווים כללי
תוכנית פשוטה אך חזקה, grep משמש לסינון קווי קלט והחזרת תבניות מסוימות לפלט. יש ממש אלפי יישומים עבור grep תכנית. בדוגמה למטה, חַיָל גֵרמָנִי שימושים grep לראות איך הוא עשה את הדבר עם למצוא:
ג'רי:~> grep -a find .bash_history
למצוא . -שם משתמש מידע גבר למצוא
מצא ../ -name common.cfg
ג'רי:~> grep -a find .bash_history
למצוא . -שם משתמש מידע גבר למצוא
מצא ../ -name common.cfg
חפש היסטוריה
שימושית גם במקרים אלה היא פונקציית החיפוש ב לחבוט, מופעל על ידי לחיצה Ctrl+R בבת אחת, כמו למשל בדוגמה שבה אנחנו רוצים לבדוק איך עשינו את זה לאחרונה למצוא שוב:
תומאס ~> ^R
(reverse-i-search)`find': find `/home/thomas` -name *.xml
תומאס ~> ^R
(reverse-i-search)`find': find `/home/thomas` -name *.xml
הקלד את מחרוזת החיפוש שלך בשורת החיפוש. ככל שתקליד יותר תווים, כך החיפוש מוגבל יותר. זה קורא את היסטוריית הפקודות עבור הפעלת מעטפת זו (שאותה נכתב
.bash_history בספריית הבית שלך כשאתה עוזב את ההפעלה הזו). המופע האחרון של מחרוזת החיפוש שלך מוצג. אם ברצונך לראות פקודות קודמות המכילות את אותה מחרוזת, הקלד Ctrl+R שוב.
ראה את דפי המידע ב לחבוט לעוד.
לכל UNIX עם מעט הגינות יש מילון מקוון. כך גם בלינוקס. המילון הוא רשימה של מילים ידועות בקובץ בשם מילים, ממוקם ב /usr/share/dict. כדי לבדוק במהירות את האיות הנכון של מילה, אין צורך ביישום גרפי:
ויליאם:~> grep pinguin /usr/share/dict/words
ויליאם:~> grep penguin /usr/share/dict/words
פינגווינים פינגווינים
ויליאם:~> grep pinguin /usr/share/dict/words
ויליאם:~> grep penguin /usr/share/dict/words
פינגווינים פינגווינים
מילון מול רשימת מילים
חלק מההפצות מציעות את להכתיב הפקודה, המציעה יותר תכונות מאשר חיפוש מילים ברשימה בלבד.
מי הבעלים של ספריית הבית שליד שלי? היי, הנה מספר הטלפון שלו!
ליסה:~> grep gdbruyne /etc/passwd
gdbruyne:x:981:981:Guy Debruyne, טל' 203234:/home/gdbruyne:/bin/bash
ליסה:~> grep gdbruyne /etc/passwd
gdbruyne:x:981:981:Guy Debruyne, טל' 203234:/home/gdbruyne:/bin/bash
ומה הייתה שוב כתובת הדואר האלקטרוני של ארנו?
serge:~/mail> grep -i arno *
דואר שנשלח: אל:[מוגן בדוא"ל]>
דואר שנשלח: ביום שני, 24 בדצמבר 2001, [מוגן בדוא"ל] כתב:
serge:~/mail> grep -i arno *
דואר שנשלח: אל:[מוגן בדוא"ל]>
דואר שנשלח: ביום שני, 24 בדצמבר 2001, [מוגן בדוא"ל] כתב:
מצא ואיתור משמשים לעתים קרובות בשילוב עם grep כדי להגדיר כמה שאילתות רציניות. למידע נוסף, ראה פרק 5 בנושא ניתוב מחדש של קלט/פלט.
3.3.3.4.2. תווים מיוחדים
דמויות שיש להן משמעות מיוחדת לקליפה חייבות להיות ברח. דמות הבריחה ב-Bash היא סלאש אחורי, כמו ברוב הפגזים; זה מסיר את המשמעות המיוחדת של הדמות הבאה. המעטפת מכירה לא מעט דמויות מיוחדות, בין הנפוצות ביותר /, ., ? ו*. רשימה מלאה ניתן למצוא בדפי המידע ובתיעוד עבור המעטפת שלך.
לדוגמה, תגיד שאתה רוצה להציג את הקובץ "*" במקום את כל הקבצים בספרייה, תצטרך להשתמש