verschiedene Bashlösungen

Ich möchte eine Logoutmeldung anzeigen:

echo "und Tschüss" >> ~/.bash_logout

letztes Argv aus der Bash holen:
<ALT>+.
einen Befehl alle 5 sekunden ausführen:

watch -n5 ls

Mailwatching:

watch -n 60 from

Verzeichnisänderungen:

watch -d ls -l

Ausgabe der Konsole1 anzeigen lassen, dass ist interessant, wenn andere Benutzer auf dem rechner angemeldet sind:

cat /dev/vcs1#oder /dev/vcsa1

Befehl make mit niedriger Priorität ausführen:

nice -n 10 make

Befehl date 50 mal aufrufen:

for i in `seq 1 50`; do echo $i;date;done

Zahlen von 1 bis 50 ausgeben:

seq 1 50

Zahlen von 1 bis 2 in 0,1-Schritten ausgeben:

seq 1 0.1 2

ton ausgeben:

beep oder printf "\a"

Hexzahlen ausgeben:

printf %x"\n" 4711

Eingaben überwachen:

script -q

Pruefen ob eine Datei existiert und lesbar ist:

test -r "/etc/datei.conf"

Pruefen ob Datei a.log neuer ist als Datei b.log:

test a.log -nt b.log

oder

test a.log -nt b.log && echo "a ist neuer" || echo "b ist neuer"

oder

 [ datei1 -nt datei2 ] ; echo $? 

zwei Bedingungen(schreibbar + Datei) auf eine Datei testen:

[[ ( -f "datei" ) && ( -w "datei" ) ]] && echo "datei ist von mir schreibbar"

Konvertiere eine Dezimalwert in einen Hexwert:

printf '%x\n' 255

Konvertiere einen Hexwert in einen Dezimalwert:

printf '%d\n' 0xff

Alle txt-Dateien in asc umbenennen:

for i in *.txt; do mv "$i" "${i/.txt}".asc;done

Alle txt-Dateien mittels sed in asc umbenennen:

ls *txt|sed 's/\(.*\)\.txt/mv \1.txt  \1.asc/'|sh

Letzten Befehl aus der History löschen:

history -d $((HISTCMD-1))

Historydateien nicht erstellen:
Erst alle /home/benutzer/.bash_history Dateien löschen.
Dann neue Historydateien verhindern:

echo "unset HISTFILE" >> /etc/profile

Deutsches Tastaturlayout laden:

loadkeys de-latin1

oder:

loadkeys de-latin1-nodeadkeys

oder nur in X:

setxkbmap -model pc104 -layout de

oder dauerhaft in debian festlegen:

dpkg-reconfigure console-data

Dateien eines Verzeichnisse in Kleinschrift umwandeln (Vorsicht bei sonst gleichen Namen:datei1,Datei1;da wird eine gelöscht):

ls | awk '{print "mv "$0" "tolower($0)}' | sh

alle Dateien zwischen 512 und 578 ausgeben:

ls datei{512..578}.mpg

die Länge eines (z.B. $PATH) Strings ausgeben:

echo ${#PATH}

eigene IP-Adresse in eine Variable „IP“ einlesen:

IP=`ifconfig | grep Bcast|cut -d : -f2 | cut -d " " -f1`
echo $IP

Eine Textdatei auslesen und was mit den einzelnen Zeilen machen:

for i in `cat datei.txt` ; do echo $i; done

systemweites automatisches Ausloggen nach 60 Minuten konfigurieren:
Einen Eintrag in der /etc/profile vornehmen:

export TMOUT=3600

diesen Timeout für einen einzelnen Benutzer deaktivieren:
Einen Eintrag in der ~/.profile vornehmen:

export TMOUT=0

Programmverzeichnis ermitteln:
(schneller als prgdir=$(dirname $0) )

echo ${0%/*}

Programm- oder Scriptname ermitteln
(schneller als prgname=$(basename $0) )

echo ${0##*/}

Funktionstasten mit Befehlen belegen:
<Bild hoch>-Taste mit cd .. belegen:

bind '"\e[5~":"cd .."'

<Alt>+<h>-Taste mit history belegen:

bind '"\eh":"history"'

<F1>-Taste mit exit belegen:

bind '"\e[[A":"exit"'



Hintergrundfarbe des terminals ändern:

echo -e "\E[44m"
clear


nur Unterverzeichnisse in /home anzeigen:

ls -d /home/*/


finde alle Dateien die seit gestern geändert wurden:

find . -mtime -1


finde alle Textdateien und lösche sie nach einzelne Rückfrage

find $HOME/. -name *.txt -ok rm {} \;


erzeuge Pseudozufallszahlen

shuf -i 100000-999999 -n 1
od -An -N2 -i /dev/urandom


führe schnell mal alle 60 Sekunden ein skript aus

while true; do myscript.sh && sleep 60; done


zurück