Bash Tips
989 subscribers
14 photos
4 files
45 links
רוצים להשתמש בלינוקס אבל לא ממש מכירים את הכלים שהיא מספקת לעבודה?

בערוץ הבא תמצאו אוסף טיפים שימושיים ב-Bash והכרות עם כלים שונים שעשויים לחסוך מאמץ ועבודה בכתיבת סקריפטים ומימוש אוטומציות.
Download Telegram
Channel created
פקודת cd מעבירה בין תיקיות בבאש, הרצה של cd זאת אומרת cd עם רווח תיקח אתכם לתיקיית הבית

הרצה של cd - תחזיר אתכם תיקייה אחורה למיקום הקודם
>>:/tmp$ pwd
/tmp
>>:/tmp$ cd /usr/bin/
>>:/usr/bin$ pwd
/usr/bin
>>:/usr/bin$ cd -
/tmp



#terminal_tips
👍3
Forwarded from Mc&Cheese
אבל הנה טיפ. אם אתם רוצים שהפקודה שאתם רושמים לא תכתב לקובץ history של ה shell, פשוט שימו רווח לפני הפקודה שלכם.

#terminal_tips
👍2
Forwarded from Deleted Account
טיפ שימושי נוסף שהיה צריך להישלח מזמן
בעבר דברנו על אפשרות להריץ את הפקודה האחרונה שהרצנו על ידי שימוש ב!!
ישנה אפשרות להעביר את הפרמטר האחרון שהעברנו לפקודה על ידי !$

דוגמה
>> /tmp$ mkdir test
>> /tmp$ cd !$
cd test
>> /tmp/test$


במקום להכניס את השם של התיקייה שהרגע יצרתי פשוט העברתי אותו עם !$

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

#terminal_tips
👍2
Forwarded from Deleted Account
אפשר להשתמש ב{} כדי ליצור טווח של מספרים

לדוגמה
echo -e https://webcourse.cs.technion.ac.il/234122/Spring2016/ho/WCFiles/tutorial{0..12}.pdf"\n"
> https://webcourse.cs.technion.ac.il/234122/Spring2016/ho/WCFiles/tutorial0.pdf
https://webcourse.cs.technion.ac.il/234122/Spring2016/ho/WCFiles/tutorial1.pdf
https://webcourse.cs.technion.ac.il/234122/Spring2016/ho/WCFiles/tutorial2.pdf
https://webcourse.cs.technion.ac.il/234122/Spring2016/ho/WCFiles/tutorial3.pdf
...


~$ echo abc{d..x}                                                                                                               

> abcd abce abcf abcg abch abci abcj abck abcl abcm abcn abco abcp abcq abcr abcs abct abcu abcv abcw abcx


echo abc{1..5}                                                                                                         

> abc1 abc2 abc3 abc4 abc5         



#terminal_tips
👍1
Forwarded from Deleted Account
הרצה של פקודה מההסטוריה לפי תוכן שנמצא במחרוזת הפקודה

!? Some string
> less Some string 17463773.txt

#terminal_tips
Forwarded from Deleted Account
לעיתים קורה שאנו מורידים קובץ ולא יודעים לאן הוא ירד או שסתם מעניין אותנו לראות מה קרה במערכת ביממה או בשבוע האחרון

פקודת find מאפשרת לחפש לפי זמן על ידי שימוש בפרמטר -mtime
find ~ -type f -mtime 0 

0 מגדיר את הזמן ממנו אנו רוצים לבצע את החיפוש מה שאומר היום, -3 אומר מלפני 3 ימים.

#terminal_tips
👍1
Forwarded from Deleted Account
בטעות נתקלתי בזה ולא ברור אם זה עובד בכל הטרמינלים
לעיתים אנו צריכים להזין מספר מסויים של תווים ולא משנה לנו מהם, משתמשי פייתון ישר עושים
print "f" * 50 

והופ יש 50 תווים

אפשר לבצע משהו דומה בטרמינל על ידי לחיצה על אלט + מספר (בדוגמה שלנו 50), לאחר מכן התו שתלחצו עליו יוכפל ב50 או במספר אותו הזנתם

(arg: 50)

הקשה על התו המדובר תכפיל אותו במספר הערך שהכנסנו
#terminal_tips
👍1
Forwarded from Deleted Account
טיפ חביב שלמדתי היום

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


$ export a=some_file.pdf
$ echo "${a/pdf/jpg}"
some_file.jpg


עכשיו כל מקום שהפלט מכיל את המחרוזת pdf יהפוך להיות jpg

הרעיון המקורי היה להריץ את זה מתוך לולאה, זה נראה כך
for file in *.pdf
do
convert -density 300x300 $file ${file/pdf/jpg}
done


אצלי בקוד הכנסתי את המשתנים לגרשיים כדי להתגבר על בעיית רווחים בשמות קבצים
#terminal_tips
👍1
בעקבות הטיפ הקודם הסתבר שיש עוד הרבה קיצורים כאלו, הנה משהו חביב ישר מהתיעוד, יעבוד מגרסה 4+ ותודה על ההערה
לצורך העניין שם הקובץ הוא bash_hackers.txt

    Get name without extension
${FILENAME%.*}
⇒ bash_hackers
Get extension
${FILENAME##*.}
⇒ .txt
Get directory name
${PATHNAME%/*}
⇒ /home/bash/
Get filename
${PATHNAME##*/}
⇒ bash_hackers.txt


Case modification

array=(This is some Text)

echo "${array[@],}"
⇒ this is some text
echo "${array[@],,}"
⇒ this is some text
echo "${array[@]^}"
⇒ This Is Some Text
echo "${array[@]^^}"
⇒ THIS IS SOME TEXT
echo "${array[2]^^}"
⇒ TEXT

תודה לירון שהרבני על התוספת
#terminal_tips
👍1
סקריפט קצת ישן שבניתי אותו לפני כמה שנים:


#!/bin/bash
# Script to extract files
# Kiewicz
# GPL - 2011


if [ "$#" -lt 1 ]; then
echo -ne "\n\tUsage:"
echo -e "\n\t$(basename $0) <file> (.tar, .rar, .bz2...)"
echo ""
exit 1
fi

if [ -f $1 ] ; then
case $1 in
*.tar.bz2 | *.tbz2) tar xvjf $1 ;;
*.tar.gz) tar xvzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) unrar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xvf $1 ;;
*.tgz) tar xvzf $1 ;;
*.zip) unzip $1 ;;
*.7z) 7z x $1 ;;
*) echo "'$1' cannot be extracted" ;;
esac
else
echo "'$1' is not a valid parameter"
fi

#terminal_tips
👍1
למניעת טעות בלשכתב קובץ:
set -o noclobber 😁

#terminal_tips
👍1
משהו מעניין שגיליתי הרגע: אפשר ליצור שקע בבאש בעזרת הפקודה
exec 3<>/dev/tcp/server/port
ואז לקרוא בעזרת
cat <&3
ולכתוב בעזרת
printf "text" >&3

מקור: http://hacktux.com/bash-socket
קרדיט @BnK970
#terminal_tips
👍1