Bash Script Cheet Sheet =============================== ******************************************************************************** ## Simple bash loop example ******************************************************************************** #!/bin/bash for i in $(seq 1 2 20) do echo "Welcome $i times" done ******************************************************************************** ## Empty file finder ******************************************************************************** #! /bin/bash TEMP_FILE='/var/tmp/empty_file_finder' find $1 -iname "*" > $TEMP_FILE for line in $(cat $TEMP_FILE) do if [ ! -s "$line" ] then echo $line fi done rm $TEMP_FILE ******************************************************************************** ## Simple sed example ******************************************************************************** for f in *.php do sed -i 's,SEARCH_STRING,REPLACE_STRING,g' $f done ******************************************************************************** ## Just another sed example ******************************************************************************** #!/bin/bash echo -n "what is current main word? (task) " read current echo -n "what is future main word? (note) " read future for i in $( find . -name "*$current*" ); do echo item: $i y=$( echo $i | sed -e "s/$current/$future/" ) echo replaced: $y mv $i $y done find . -type f -exec sed -i "s/$current/$future/g" {} + current=$(echo "$current" | sed 's/.*/\u&/') future=$(echo "$future" | sed 's/.*/\u&/') echo "now upper case time: " $current " with " $future find . -type f -exec sed -i "s/$current/$future/g" {} + ******************************************************************************** ## Simple backup example ******************************************************************************** SINIC_BACKUP_PATH="/home/sinic/BACKUP/" GitLab_BACKUP_PATH="/var/opt/gitlab/backups/*" YouTrack_BACKUP_PATH="/home/youtrack/teamsysdata-backup/*" rm -rf $SINIC_BACKUP_PATH"*" #Backup gitlab and put it into /var/opt/gitlab/backups/ #must run as root or with sudo gitlab-rake gitlab:backup:create mv $GitLab_BACKUP_PATH $SINIC_BACKUP_PATH mv $YouTrack_BACKUP_PATH $SINIC_BACKUP_PATH chown -R sinic:sinic $SINIC_BACKUP_PATH ******************************************************************************** ## Transfer local backup to server ******************************************************************************** #!/bin/bash #Backup transfer from server to local computer #Remember: you must add your ssh public key in server ssh's authorized_keys SINIC_BACKUP_PATH="/home/sinic/BACKUP/" LOCAL_BACKUP_PATH="/home/sinic/work/backup" #Delete all files that older than one week find $LOCAL_BACKUP_PATH -cmin +10080 -exec /bin/rm -rf "{}" \; rsync -aP sinic@192.168.112.2:$SINIC_BACKUP_PATH $LOCAL_BACKUP_PATH ******************************************************************************** ## Change desktop backgroud ******************************************************************************** feh --bg-scale '/home/pesarkhobeee/.local/share/eog-wallpaper.png' ******************************************************************************** ## Change keyboard layout ******************************************************************************** #/bin/bash X=`setxkbmap -print -verbose 10 | grep layout | grep -o -e '[^ ]*$'` if [ $X = "us" ] ; then setxkbmap ir fi if [ $X = "ir" ] ; then setxkbmap us fi ******************************************************************************** ## ToggleMute ******************************************************************************** #!/bin/bash X=`amixer get Master | grep "Playback" | grep -o -e "\[off\]" | tail -n 1` # it's muted if [ $X = "[off]" ] ; then amixer set Master unmute else amixer set Master mute fi ******************************************************************************** ## Get The Docker registry repositories list ******************************************************************************** curl -X GET localhost:5000/v2/_catalog | jq '.repositories[]'| tr -d '"' | while read REPOS; echo "*****"; do echo "Repositories: " $REPOS; curl localhost:5000/v2/$REPOS/tags/list | jq '.tags[]' | tr -d '"' | while read TAGS; do echo "Tags: " $TAGS; done done _BY: Farid Ahmadian_ _TAG: bash, bash-script, sed, git, back-up_ _DATE: 2016-01-27 19:36:53_