#51 15.04.2014 18:35:11

pSub
Mitglied

Re: Eure brauchbarsten Funktionen

Ich verwende zum entpacken und packen atool, finde das komfortabler als so eine kleine Funktion und weitaus mächtiger.

Offline

#52 15.04.2014 22:34:35

Henrikx
Mitglied

Re: Eure brauchbarsten Funktionen

Wo denn mächtiger? Laut Source Code greift atool auch nur auf die installierten Packer zurück.

(rar|RAR|zip|ZIP|tar.gz|tgz|tar.bz|tbz|tar.Z|tZ|tar.lzo|tzo|tar.7z|t7z|tar|jar|JAR|war|lha|lzh|7z|ace|ACE|arj|ARJ|a|arc|ARC|rpm|deb|gz|bz|bz2|Z|lzo|cpio)

Die "kleine Funktion" könnte ebenfalls zu jedem Packformat erweitert werden  Was kann atool also mehr?

Offline

#53 16.04.2014 09:43:22

wirr
Mitglied

Re: Eure brauchbarsten Funktionen

Das Problem an der Funktion ist, dass man die Kommandos verlernt:

www-data@virtualhostxy ~ $ extract blabla.tar.gz
bash: command not found: extract
www-data@virtualhostxy ~ $ ?????

Offline

#54 16.04.2014 10:58:40

portix
Mitglied

Re: Eure brauchbarsten Funktionen

Henrikx schrieb:

Wo denn mächtiger? Laut Source Code greift atool auch nur auf die installierten Packer zurück.

(rar|RAR|zip|ZIP|tar.gz|tgz|tar.bz|tbz|tar.Z|tZ|tar.lzo|tzo|tar.7z|t7z|tar|jar|JAR|war|lha|lzh|7z|ace|ACE|arj|ARJ|a|arc|ARC|rpm|deb|gz|bz|bz2|Z|lzo|cpio)

Die "kleine Funktion" könnte ebenfalls zu jedem Packformat erweitert werden  Was kann atool also mehr?

atool extrahiert nicht nur anhand der Dateiendung sondern kann auch noch file nutzen falls die Dateiendung nicht stimmt.

Offline

#55 21.08.2014 11:06:17

Carl Karl
Mitglied

Re: Eure brauchbarsten Funktionen

elias schrieb:
function say() { mplayer -really-quiet "http://translate.google.com/translate_tts?tl=de&q=$1" }

Beschwert sich bei mir über unerwartetes Ende der .bashrc damit. Ein ; mehr und es geht:

function say() { mplayer -really-quiet "http://translate.google.com/translate_tts?tl=de&q=$1"; }

Danke, lustige Spielerei!

Offline

#56 21.08.2014 12:01:22

Dirk
Moderator

Re: Eure brauchbarsten Funktionen

Was ich mich gerade frage … In der Realität. Mit wie vielen verschiedenen Paketformaten müssen wir da umgehen?

Spontan fallen mir tar.gz, rar und zip ein, die ich benutze. Das sind drei Befehle (tar -xf, unrar x, unzip), die kann ich mir gerade noch merken *g*

Offline

#57 21.08.2014 12:49:11

schard
Mitglied

Re: Eure brauchbarsten Funktionen

Wenn ich größere Daten archiviere nutze ich auch bz2 oder xz.

Online

#58 21.08.2014 13:04:40

midixinga
Mitglied

Re: Eure brauchbarsten Funktionen

Dirk schrieb:

Was ich mich gerade frage … In der Realität. Mit wie vielen verschiedenen Paketformaten müssen wir da umgehen?

Spontan fallen mir tar.gz, rar und zip ein, die ich benutze. Das sind drei Befehle (tar -xf, unrar x, unzip), die kann ich mir gerade noch merken *g*

nicht alles, was gz hat, hat auch nen tar davor: gunzip

Beitrag geändert von midixinga (21.08.2014 13:04:56)

Offline

#59 21.08.2014 13:12:45

Dirk
Moderator

Re: Eure brauchbarsten Funktionen

midixinga schrieb:

nicht alles, was gz hat, hat auch nen tar davor: gunzip

Ich kann da nur für mich sprechen, was anderes als tar.gz ist mir bisher mit gz am Ende noch nicht untergekommen (oder wenn, dann so selten, dass ich das längst wieder vergessen habe).

Offline

#60 21.08.2014 13:30:35

midixinga
Mitglied

Re: Eure brauchbarsten Funktionen

Dirk schrieb:
midixinga schrieb:

nicht alles, was gz hat, hat auch nen tar davor: gunzip

Ich kann da nur für mich sprechen, was anderes als tar.gz ist mir bisher mit gz am Ende noch nicht untergekommen (oder wenn, dann so selten, dass ich das längst wieder vergessen habe).

logrotate z.B. komprimiert per default alles mit gzip

Offline

#61 21.08.2014 13:50:02

Ovion
Mitglied

Re: Eure brauchbarsten Funktionen

dann gibt es noch 7zip (7z), das ich auch häufiger mal benutze, weil es meiner Erfahrung nach meistens dichter packt als zip (und ich in meinem sozialen Umfeld Windosen hab, ergo fallen Dinge wie gz und xz raus).

Offline

#62 21.08.2014 13:54:09

Dirk
Moderator

Re: Eure brauchbarsten Funktionen

midixinga schrieb:

logrotate z.B. komprimiert per default alles mit gzip

Ich bin so forsch, dass ich behaupte, es eh nie zu brauchen, und logge daher nicht smile

Ich selbst nutze nur tar.gz zum packen, da es mir dabei nicht darauf ankommt, möglichst gut zu komprimieren (bereits komprimierte Daten lassen sich eh nur sehr schlecht komprimieren *g*), sondern möglichst kompatibel mehrere Dateien auf einen Schlag bereit zu stellen, und beim Archivieren Inodes zu sparen.

Offline

#63 05.10.2014 17:44:04

stefanhusmann
Moderator

Re: Eure brauchbarsten Funktionen

Aber Manpages hast du noch, Dirk?

Offline

#64 05.10.2014 18:41:35

Dirk
Moderator

Re: Eure brauchbarsten Funktionen

… ich nutze sie sogar hin und wieder smile

Offline

#65 06.10.2014 06:16:37

orschiro
Mitglied

Re: Eure brauchbarsten Funktionen

Meine Neueste um das Abdunkeln meines Bildschirms beim Schauen von laengeren Videos zu vermeiden:

# Fake mouse events
fake-mouse-event() {
    while true
    do
	    xdotool key VoidSymbol
	    sleep 2m
    done
}

Offline

#66 06.10.2014 06:23:50

Dirk
Moderator

Re: Eure brauchbarsten Funktionen

orschiro schrieb:

Meine Neueste um das Abdunkeln meines Bildschirms beim Schauen von laengeren Videos zu vermeiden:

Statt setzen der entsprechenden dpms-Einstellungen?

Offline

#67 06.10.2014 06:25:46

orschiro
Mitglied

Re: Eure brauchbarsten Funktionen

Jep, ich nutze xfce4-power-manager fuer erweiterte Bildschirmeinstellungen. Das simple Deaktivieren von dpms war bei mir nicht ausreichend, um das Abdunkeln zu verhindern.

Keine Ahnung, was der Power Manager da im Hintergrund genau macht.

Offline

#68 06.10.2014 12:51:13

TBone
Mitglied

Re: Eure brauchbarsten Funktionen

xset -dpms
xset s off

Beitrag geändert von TBone (09.10.2014 19:00:49)

Online

#69 19.12.2014 20:44:07

BigBear
Mitglied

Re: Eure brauchbarsten Funktionen

Kurzes Skript zum Erstellen von Thumbnails von Videos:

Beispiel

Need: ffmpeg imagemagick

#!/bin/bash

# Define the count of screens (screens are arranged by 4x4)
screens=16

# Iterate over all given parameters
for file in "$@"
do
 inputFile="$(realpath "$file")"
 if [ ! -e "$inputFile" ]
 then
  echo "Fail: Not exist: $file"
  continue
 fi

 resultFile="$(dirname "$inputFile")/screen-$(basename "$inputFile" | sed -r 's/"//').jpg";
 echo "Input: $inputFile"
 echo "Output: $resultFile"

 if [ -e "$resultFile" ]
 then
  echo "Exists"
  continue
 fi

 # Delete old files
 rm -f capture-*.jpg result.jpg "\"$resultFile\""

 # Get the duration in seconds
 durSec=$(ffmpeg -i "$inputFile" 2>&1 | grep "Duration" | cut -d ' ' -f 4 | sed s/,// | sed 's@\..*@@g' | awk '{ split($1, A, ":"); split(A[3], B, "."); print 3600*A[1] + 60*A[2] + B[1] }')
 echo "Duration: $durSec"

 # Calculate the seconds for a step
 stepSec=$(echo "($durSec / ($screens + 1))" | bc -l)
 echo "Step sec: $stepSec"

 # Create for each step * secs per step a screen
 for i in $(seq -w 1 $screens);
 do
  frameSec=$(echo "($stepSec * $i)" | bc -l)
  ffmpeg -ss $frameSec -i "$inputFile" -vf scale=-1:240 -frames:v 1 capture-$i.jpg &> /dev/null

  sec=$(echo "($frameSec % 60)" | bc | awk '{printf("%02d\n",$0+=$0<0?0:0.9)}')
  min=$(echo "(($frameSec / 60) % 60)" | bc | awk '{printf("%02d\n",$0+=$0<0?0:0.9)}')
  hrs=$(echo "(($frameSec / 3600) % 60)" | bc | awk '{printf("%02d\n",$0+=$0<0?0:0.9)}')

  if [ -e capture-$i.jpg ]
  then
   montage -label "$hrs:$min:$sec" capture-$i.jpg -geometry +5+5 -background White capture-$i.jpg &> /dev/null
   echo "Screen $i: $hrs:$min:$sec"
  else
   echo "Fail: $inputFile"
   continue 2
  fi
 done

 # Combine the screens to one file
 montage -title $(basename "$inputFile") -geometry +4+4 capture*.jpg "$resultFile" &> /dev/null
 echo "Done"

 # Remove temporary files
 rm -f capture-*.jpg
done

Offline

#70 16.06.2015 00:58:34

mohmann
Mitglied

Re: Eure brauchbarsten Funktionen

Recursiv einen string/regexp in Dateien finden

_fs() { #$1: name,  $2: search regexp, $3: file or directory
	name=$1
	grep_opts=-RIne
	[ "$name" = "fsi" ] && grep_opts=-RIine
	shift
	[ $# -lt 1 ] && { echo "usage: $name <regexp> [<directory or file>]"; return; }
	[ -z "$2" ] && 2=$(pwd)

	egrep $grep_opts "$1" "$2" #2> /dev/null
}

# find string in files recursively
fs() { #$1: search regexp, $2: file or directory
	_fs "$0" $@
}

# find string in files recursively (case insensitive)
fsi() { #$1: search regexp, $2: file or directory
	_fs "$0" $@
}

fsi match case-insensitive, fs case-sensitive. Usage ergibt sich denke ich aus dem code. Ohne 2. argument sucht man in $PWD.

Offline

#71 22.06.2015 21:07:30

Werner
Mitglied

Re: Eure brauchbarsten Funktionen

#!/bin/sh

# Extrahiert via ffmpeg aus Video- und Audiodateien –
# – die Tonspur und erzeugt daraus eine MP3-Datei
# -> als Aktion/Skript für Thunar, PCMan, Nautilus, Nemo

# Voreinstellungen:

# Gewünschte Bitrate wählen (192k|224k|256k):
kbit="224k"
# Einblenddauer Hinweise wählen (Millisekunden):
ms=5000

# Skript:

# Name Quelldatei
file=$( basename "$1")

# MIME-Type Quelldatei
mime=$( file -Lb --mime-type "$file" && file -Lb "$file" )

# Fängt Verzeichnisse ab
if [ -d "$file" ]
	then
		notify-send -t $ms --icon=dialog-warning \
		"Bitte eine Video- oder Audiodatei wählen." \
		"<i>$file</i> ist ein Verzeichnis."
	exit

# Fängt verwaiste Symlinks ab
elif [[ -L "$file" ]] && [[ ! -a "$file" ]]
	then
		notify-send -t $ms --icon=dialog-warning \
		"Das Verknüpfungsziel existiert nicht:" \
		"<i>$file</i>"
	exit

# Bei Quelldatei mit geeignetem MIME-Type wird die Routine abgearbeitet
# Name Zieldatei:
#  sed 1: Entfernt '\<>?|*:&"~', Leerzeichen und Lückenbüßer
#  sed 2: Endungsentfernung für Ersetzung mit .mp3
#  sed 3: YouTube-Bereinigung -> " ▶-Musik-[720p]" zu "Musik"
#  if: Weist Dateinamen zu, falls nach Bereinigung leer
# Weil's je nach Dateigröße dauern kann, Meldung wenn fertig
elif echo "$mime" | grep -Eiq "video|audio"
	then
		ext=".mp3"
		target=$( echo "$file" \
		| sed 's/[\<>?|*:&"~]/ /g;s/\ /-/g;s/-\+/-/g;s/-_/_/g;s/_-/_/g;s/_\+/_/g' \
		| sed -r 's/(.*)\.(.*)/\1/' \
		| sed 's/\[.*\]//;s/^[ \t▶_-]*//;s/[ \t_-]*$//' )
		if [ -z "$target" ] ; then target="$USER-MP3-Datei" ; fi
		ffmpeg -i "$file" -vn -ar 44100 -ac 2 -ab $kbit -f mp3 $target$ext
		notify-send -t $ms --icon=dialog-information \
		"Die MP3-Datei ist fertig:" \
		"<i>$(du --si $target$ext | sed 's/\t/ ➜ /g')</i>"
	else
		notify-send -t $ms --icon=dialog-warning \
		"Dies ist keine Audio- oder Videodatei:" \
		"<i>$file</i>"
fi

Gruß, Werner

Edit 27.06.2015 – Kleine Detailverbesserungen:
Einblenddauer Hinweise einstellbar, hässliche YouTube-Dateinamen werden bereinigt.
Edit 05.07.2015 – Problematische Sonderzeichen in Dateinamen werden gefiltert – '\<>?|*:&"~'

Beitrag geändert von Werner (05.07.2015 12:55:04)

Offline

#72 22.06.2015 23:08:25

schard
Mitglied

Re: Eure brauchbarsten Funktionen

Auch mal was von mir.

Falls man kein Auto hat:

#! /bin/bash

# Call function
call_site() {
	$BROWSER "http://www.efa.de/gvh/index.jsp?sessionID=0&itdDateDay=$DATE_DAY&command=&itdLPxx_extLogo=efaportal&itdTripDateTimeDepArr=$TRIP_TYPE&itdTimeHour=$TIME_HOUR&itdDateYear=$DATE_YEAR&language=de&itdTimeMinute=$TIME_MINUTE&type_destination=stop&type_origin=stop&name_origin=$O_PLACE&execInst=normal&requestID=0&itdDateMonth=$DATE_MONTH&name_destination=$D_PLACE&place_origin=$O_CITY&ptOptionsActive=0&place_destination=$D_CITY" &
}

# Defaults
BROWSER=/usr/bin/firefox
TIME=`date +%T`
O_CITY="Hannover"
O_PLACE="Fenskestraße"
D_CITY="Hannover"
D_PLACE="Christuskirche"
CFG_FILE=""
DATE=`date +%D`
TRIP_TYPE="dep" # Possible values: "arr" for arrival and "dep" for departure

ABOUT="`basename $0` - get timetable information from efa.de"

USAGE="Usage: `basename $0` [ ARGS.. ]
	--browser	BROWSER		Use BROWSER as webbrowser
	--time		TIME		Use TIME formatted like HH:MM[:SS] as time
	--date		DATE		Use DATE formatted like MM/DD/YYYY as date
	--ocity		CITY		Use CITY as city of origin
	--oplace	PLACE		Use PLACE as place of origin
	--dcity		CITY		Use CITY as city of destination
	--dplace	PLACE		Use PLACE as place of destination
	--trip-type	TYPE		Use TYPE of \"dep\" or \"arr\" to specify departure or arrival
	--cfg | --file	FILE		Use FILE as configuration file (experts only)

(C) 2012 Richard Neumann under the terms of the GPL"

# Parse arguments
while (( $# )); do
	case $1 in
		--browser)	BROWSER=$2
				shift
		;;
		--time)		TIME="$2"
				shift
		;;
		--date)		DATE=$2
				shift
		;;
		--ocity)	O_CITY=$2
				shift
		;;
		--oplace)	O_PLACE=$2
				shift
		;;
		--dcity)	D_CITY=$2
				shift
		;;
		--dplace)	D_PLACE=$2
				shift
		;;
		--trip-type)	TRIP_TYPE=$2
				shift
		;;
		--cfg|--file)	CFG_FILE=$2
				shift
		;;
		--help|-h)	echo -e "$ABOUT\n\n$USAGE"
				exit 0
		;;
		*)		echo -e "ERROR:\tUnknown argument \"$1\"\n\n$USAGE" 1>&2	
				exit 1
	esac
	shift
done

# Load configuration file if specified
if [ -n "$CFG_FILE" ]; then
	if [ -f $CFG_FILE ]; then
		source $CFG_FILE
	else
		echo -e "WARNING:\tConfiguration file could not be found." 1>&2
		exit 1
	fi
fi

# Format time and date
TIME_HOUR=`echo $TIME | cut -d ":" -f 1`
TIME_MINUTE=`echo $TIME | cut -d ":" -f 2`

DATE_YEAR=`echo $DATE | cut -d "/" -f 3`
DATE_MONTH=`echo $DATE | cut -d "/" -f 1`
DATE_DAY=`echo $DATE | cut -d "/" -f 2`

# Open EFA-Site
call_site

Oder Privatsphären-paranoid ist:

#! /bin/bash

HIST_DIR="$HOME/.config/google-chrome/Default"
HISTORY="${HIST_DIR}/History"
HISTORY_JOURNAL="${HIST_DIR}/History-journal"
CHROME_PROCESS="chrome"
GRACE_TIME=3

# First shutdown chrome
read -p "All Google Chrome instances will be closed now.

Press [Enter] to continue..."

killall ${CHROME_PROCESS} 2> /dev/null

rm -f ${HISTORY}
rm -f ${HISTORY_JOURNAL}

read -p "Google Chrome must be started for a short time 
in order to generate a default history.
It will automatically be closed after ${GRACE_TIME} seconds.

Press [Enter] to continue..."

google-chrome > /dev/null 2>&1 & sleep ${GRACE_TIME}

killall ${CHROME_PROCESS}

chmod -w ${HISTORY}
chmod -w ${HISTORY_JOURNAL}

echo "All done!"

Online

#73 26.09.2015 09:06:54

Gering-ding-ding-ding-din
Gast

Re: Eure brauchbarsten Funktionen

Verwende ich ständig:

sleepin
-----------------
#!/bin/bash

echo -e "$(date +%T) |\c"
echo "The system suspends to RAM in $1."
sleep $1
systemctl suspend

-------------------
$ sleepin 5m
04:32:02 |The system suspends to RAM in 5m.
sleepafter
---------------------
#!/bin/bash

[ -z "$1" ] && echo -e "$0 needs the name of a running process as argument.\n" && exit

while [ -n "$(pgrep $1)" ]; do
    sleep 5s
done
sleep 5s
systemctl suspend

#74 02.10.2015 11:57:55

Gering-ding-ding-ding-din
Gast

Re: Eure brauchbarsten Funktionen

Mal noch ein kleines Wrapperskript für Photorec - für die USB-Stick-Stalker unter euch ^^

$HOME/bin/usb-sniffer
-----------------------
#!/bin/bash

usbdrive=/dev/sdb
homedir=$HOME

## check if 'testdrive' is installed
if [ ! -e /bin/photorec -o ! -e /sbin/photorec ]; then
    echo "Please install the package \'testdrive\'."
    exit
fi

## if a thumb drive is plugged, start photorec
while true; do
    if [ -e $usbdrive ]; then

        ## do nothing if photorec is already running
	if pgrep photorec > /dev/null; then
	    sleep 0.2

        ## start photorec if it isn't running yet
        else
	    recdir=$homedir/.usb-sniffer/rec_$(date +%Y%m%d-%H%M%S)
            mkdir -p $recdir; cd $recdir
	    photorec /d ./ /cmd $usbdrive wholespace,search &
        fi
    else

        ## kill photorec if it is still running
        pgrep photorec > /dev/null && kill -15 $(pgrep photorec) && echo -e "\nAll the files have been saved to:\n$recdir\n"
        sleep 0.2
    fi
done
---------------------------------------------------------------
$ chmod 4700 usb-sniffer
$ alias usb-sniffer='sudo usb-sniffer'
$ usb-sniffer

#75 02.10.2015 14:40:11

TBone
Mitglied

Re: Eure brauchbarsten Funktionen

if [ ! -e /bin/photorec -o ! -e /sbin/photorec ]; then


"which photorec" zeigt dir, wo das Binary liegt. Wenn /bin, /sbin endlich gelöscht werden, musst du das Skript dann nicht nochmal ändern ;-)

Online

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums