====== Shell Basics ======
[[http://www.gnu.org/software/bash/manual/bashref.html|http://www.gnu.org/software/bash/manual/bashref.html]]
[[https://www.shellscript.sh/|https://www.shellscript.sh/]]
[[http://www.linux-services.org/shell/|http://www.linux-services.org/shell/]]
===== GB keyboard =====
{{ :kb_united_kingdom.svg }}
===== Screen =====
Siehe auch [[https://www.mattcutts.com/blog/a-quick-tutorial-on-screen/|https://www.mattcutts.com/blog/a-quick-tutorial-on-screen/]]
**Screen Arbeitsablauf**
Normalerweise im User, nicht mit sudo
''screen -S [name]''
alternativ screen -R (erzeugt neue Session wenn noch keine da oder re-attached an vorhandene)
Weitere Screen Session wird mit Ctrl + a eröffnet.
Wechseln zwischen den Sessions mit Control-a [Nummer], wobei 0 die erste ist
Hilfe: Ctrl A ?
Liste aller Fenster in einer Session Ctrl A w
Von Session abmelden
''Ctrl-A d''
Danach aus ssh abmelden, die screen session läuft weiter. Von einem anderen Ort wieder per ssh auf die Arbeitsmaschine und dann wieder an die Session binden
''screen -d -R sessionname '' will resume a session that you started in a different location.
**Alle Screen Sesions auflisten**
screen -ls
**Session killen**
$ screen -X -S [session # you want to kill] quit
===== Shadow =====
Einfügen eines Passwort hashes
thommie@odysseus3:~> python -c "import crypt, getpass, pwd; \> print crypt.crypt('[klartext]', '\$6\$SALTsalt\$')"
$6$SALTsalt$0[hashwert]
===== update-alternatives =====
[[https://manpages.ubuntu.com/manpages/trusty/de/man8/update-alternatives.8.html|https://manpages.ubuntu.com/manpages/trusty/de/man8/update-alternatives.8.html]]
===== Random string erzeugen =====
tr -dc A-Za-z0-9
===== Links =====
''ln -s /Zieldatei /Referenz
===== Find =====
Alle Dateien älter als 365 Tage finden
find /mnt/pve/sb_u203461/dump/ -mtime +365 -type f
Mit löschen:
find /mnt/pve/sb_u203461/dump/ -mtime +365 -type f -delete
Luxus Variante mit Backup
#!/bin/bash
path="/data/backuplog/"
timestamp=$(date +%Y%m%d_%H%M%S)
filename=log_$timestamp.txt
log=$path$filename
days=7
START_TIME=$(date +%s)
find $path -maxdepth 1 -name "*.txt" -type f -mtime +$days -print -delete >> $log
echo "Backup:: Script Start -- $(date +%Y%m%d_%H%M)" >> $log
... code for backup ...or any other operation .... >> $log
END_TIME=$(date +%s)
ELAPSED_TIME=$(( $END_TIME - $START_TIME ))
echo "Backup :: Script End -- $(date +%Y%m%d_%H%M)" >> $log
echo "Elapsed Time :: $(date -d 00:00:$ELAPSED_TIME +%Hh:%Mm:%Ss) " >> $log
===== sed =====
replace "-d" with "-d "
sed s/-d/'-d '/g domains3.txt> domains4.txt
trim string and remove newlines
tr --delete '\n' domains3.txt
===== Alte Kernels raus schmeissssen =====
uname -mrs = current kernel
dpkg --list | egrep -i --color 'linux-image|linux-headers'
aptitude purge linux-image-5.10.0-{18,19,20}-amd64
update-grub
reboot