• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[tipp] .bash_history auslesen

OsunSeyi

Hacker
Hi!
Hab hier ein kleines Script, was mir persönlich so gut gefällt, daß ich es Euch nicht vorenthalten will.
Ist aber sehr anfängermässig...
Code:
#!/bin/sh
## HELP [-all -opt]
##	'-all' zeigt alle bisher benutzten Befehle an (ausser Shellbuildin)
##	'-opt' zeigt zu einem in $2 übergebenem Befehl alle Optionen an.
#X#########################################################################

if [ "$1" = "-all" ] ; then

	var=`cat .bash_history | awk '{print $1}' | sort | uniq | less |\
	     sed 's/$/ /g' | sed -e '/^[ ]*$/d'`

	for i in `echo $var` ; do
		ausgabe=$ausgabe' '`which $i 2>/dev/null | sed 's|^.*/||g'`
	done

echo '=========================================================================================='
echo $ausgabe | sed 's/ / - /g' | fold -w 95 -s | sed 's/^\- //g' |\
	       sed 's/ \- $//g' | sed 's/^/ /g'
echo '=========================================================================================='

exit 0
fi

#X###############################################################################################

if [ "$1" = "-opt" ] ; then

echo '=========================================================================================='
	cat .bash_history | egrep -w "^$2" | sort | uniq
echo '=========================================================================================='

exit 0
fi

#X###############################################################################################
Nun kann man sich alle gültigen Befehle der letzten Zeit geordnet anzeigen lassen und sich den gesuchten/vergessenen
mit den verwendeten Optionen zeigen lassen.
Ist so im Überblick für meine Begriffe angenehmer als mit Bash-Mitteln.
tom
 

abgdf

Guru
Nett !

Hab's nochmal an meinen Geschmack angepaßt:

- "-all" weggelassen (genügt doch, wenn man nur den Skriptnamen aufruft),
- exits fallen dann auch weg,
- bash oder sh ?,
- .bash_history ist doch meist in ~,
- 4 Einrückungen (oder 2) sind eher üblich.

Dann sähe es so aus:
Code:
#!/bin/bash

#   '-opt' zeigt zu einem in $2 übergebenem Befehl alle Optionen an.

if [ "$1" = "-opt" ] ; then
    cat ~/.bash_history | egrep -w "^$2" | sort | uniq
else
    var=`cat ~/.bash_history | awk '{print $1}' | sort | uniq | less |\
    sed 's/$/ /g' | sed -e '/^[ ]*$/d'`

    for i in `echo $var` ; do
        ausgabe=$ausgabe' '`which $i 2>/dev/null | sed 's|^.*/||g'`
    done

    echo $ausgabe | sed 's/ / - /g' | fold -w 95 -s | sed 's/^\- //g' |\
    sed 's/ \- $//g' | sed 's/^/ /g'
fi
Ich persönlich fände ja noch schön, wenn die Befehle bei "-opt" mit 1, 2, 3, usw. gekennzeichnet wären, und man dann nur z.B. "4" eingeben müßte, um Variante "4" auszuführen :mrgreen:.

Viele Grüße
 
Oben