Skip to content
README.md 2,01 KiB
Newer Older
Thorsten Eggeling's avatar
Thorsten Eggeling committed
# Produktive Bash-Scripts

Thorsten Eggeling's avatar
Thorsten Eggeling committed
Der Beitrag liefert zu Beginn eine minimale Einführung in die Nutzung von Bash-Scripts, danach folgen praktische Beispiele.

Wer mehr zum Thema Programmierung mit Bash erfahren möchte, dem sei das Buch „Shell-Programmierung“ empfohlen, das Sie online kostenlos unter https://openbook.rheinwerk-verlag.de/shell_programmierung/ lesen können. Die gedruckte Version des Buches ist für 44,90 Euro erhältlich (https://m6u.de/SHPROG).


**Befehlszeilen aus der LinuxWelt 2025-03:** 

**Bash-Basics**

`#!/usr/bin/env bash`

`chmod +x [Dateiname]`

`./[Dateiname]`

`~/[Ordner]/[Dateiname]`

`bash [Dateiname]`

`source ~/.profile`

`help cd`

`VARIABLE="Wert"`

`echo $VARIABLE`

```
if [ -n "$1" ]; then
 echo $1
else
 echo "Keine Option angegeben"
fi
```
**Backups mit Rsync erstellen***

`rsync -auP /home/sepp /media/sepp/usb/backup`

```
#!/usr/bin/env bash
date=`date "+%Y-%m-%dT%H_%M_%S"`
SOURCEDIR=$HOME/Dokumente
BACKUPDIR=/media/$USER/usb/backup
rsync -avP --log-file=$HOME/rsync.log --link-dest=$BACKUPDIR/current $SOURCEDIR $BACKUPDIR/back-$date
ln -nsf back-$date $BACKUPDIR/current
```
`diff --brief --recursive $HOME/Dokumente /media/$USER/usb/backup/[Backup-Ordner]/Dokumente`

**Backup-Script mit mehr Funktionen**

`sudo ./backup_ex.bash -s "/" -t "/Backup" -n "local-data"`

```
+ /var/
+ /var/www/
- /var/*
```
**Bilder per Script konvertieren**

`sudo apt install imagemagick-6.q16`

`convert Bild.png Bild.jpg`

`convert Bild.jpg -resize 50% Bild-klein.jpg`

```
#!/usr/bin/env bash
IN=~/Bilder/Urlaub
OUT=~/Bilder/Urlaub/klein
for f in $IN/*.jpg do
echo "Verarbeite $f"
filename=$(basename -- "$f")
filename="${filename%.*}"
/usr/bin/convert -resize 50% $f $OUT/$filename.jpg
done
```

**Diashow aus Bilddateien erstellen**

`sudo apt install ffmpeg `

`ffmpeg -framerate 1/3 -i img%03d.jpg -c:v libx264 -r 25 -pix_fmt yuv420p output.mp4`

**Universeller Entpacker**

`extr Archiv.tar.bz2`

`extr Archiv.7z`

**Schalten mit der Fritzbox**

`smart_fritz_terminal.bash 1 on`

`smart_fritz_terminal.bash 1 on`