Outils pour utilisateurs

Outils du site


gnu-linux:bash

Ceci est une ancienne révision du document !


Table des matières

Bash

Aliases

Quelques aliases plus ou moins utiles.

.bash_aliases
# wget2
alias wget="wget2 -c --progress bar"
 
# Edit alias
alias aliases-edit="nano ~/.bash_aliases"
# Update alias
alias aliases-update="source ~/.bash_aliases"
 
# Meteo
alias meteo="curl -H 'Accept-Language: fr' wttr.in/ladinhac"
 
# cryptocurrencies
alias cryptocurrencies="curl eur.rate.sx"
 
# cp, mv, rm, ls, du
alias rm="rm -v"
alias ls="ls -AFhoqv --color --group-directories-first"
alias ds="du -csh *  | sort -h -r"
alias tree="tree --du -h"
 
# Reduce CD cover
cover-maker(){
for img in *.gif *.GIF *.jpg *.JPG *.jpeg *.png *.PNG *.tif *.TIF *.bmp *.BMP;
		do convert -quality 92 -resize 1000 "$img" cover.jpg 2> /dev/null && rm "$img" 2> /dev/null ;
done
}
 
# top 15 size file
top15files(){
	find "$@" -printf '%s %p\n'| sort -nr | head -15
}
 
# retirer parentheses et texte dedans
remove-parenthesis-content(){
	for file in * ; do mv -v "$file" "$(echo $file | sed 's/(.*)//')" ; done
}
 
# Compresse séparément tout les fichiers d'un répertoire en zip
compress-all-zip(){
	SOURCE=$(wc -c * 2> /dev/null | grep "total" | awk '{print $1;}' | awk '{ foo = $1 / 1024 / 1024 ; print foo}')
	for file in *.*; do zip "${file%.*}".zip "$file"; done
	TARGET=$(wc -c *.zip 2> /dev/null | grep "total" | awk '{print $1;}' | awk '{ foo = $1 / 1024 / 1024 ; print foo}')
	PERC=$(bc <<< "scale=2; ("$TARGET" - "$SOURCE")/"$SOURCE" * 100")
	echo -e "The target(s) compressed file(s) does "$TARGET"MB, a difference of \e[1m$PERC%\e[0m from the source(s) ("$SOURCE"MB)."
}
 
# Compresse séparément tout les fichiers d'un répertoire en xz
compress-all-xz(){
	SOURCE=$(wc -c * 2> /dev/null | grep "total" | awk '{print $1;}' | awk '{ foo = $1 / 1024 / 1024 ; print foo}')
	for file in *.*; do tar -c -v "$file" | pxz -k -9 -c > "${file%.*}".tar.xz; done
	TARGET=$(wc -c *.tar.xz 2> /dev/null | grep "total" | awk '{print $1;}' | awk '{ foo = $1 / 1024 / 1024 ; print foo}')
	PERC=$(bc <<< "scale=2; ("$TARGET" - "$SOURCE")/"$SOURCE" * 100")
	echo -e "The target(s) compressed file(s) does "$TARGET"MB, a difference of \e[1m$PERC%\e[0m from the source(s) ("$SOURCE"MB)."
}
 
# Compresse séparément tout les fichiers d'un répertoire en lz4
compress-all-lz4(){
	SOURCE=$(wc -c * 2> /dev/null | grep "total" | awk '{print $1;}' | awk '{ foo = $1 / 1024 / 1024 ; print foo}')
	for file in *.*; do tar -c -v "$file" | lz4 -9 > "${file%.*}".tar.lz4; done
	TARGET=$(wc -c *.tar.lz4 2> /dev/null | grep "total" | awk '{print $1;}' | awk '{ foo = $1 / 1024 / 1024 ; print foo}')
	PERC=$(bc <<< "scale=2; ("$TARGET" - "$SOURCE")/"$SOURCE" * 100")
	echo -e "The target(s) compressed file(s) does "$TARGET"MB, a difference of \e[1m$PERC%\e[0m from the source(s) ("$SOURCE"MB)."
}
 
# Compression tar.xz
compress-xz(){
if [[ -d $@ ]]; then
	time tar -c "$@" | pxz -k -9 -v -c > "${@%/}".tar.xz
	echo
	SOURCE=$(find "$@" -type f -exec wc -c {} \; | awk '{total += $1} END{print total}' | awk '{ foo = $1 / 1024 / 1024 ; print foo}')
	TARGET=$(wc -c "${@%/}".tar.xz | awk '{print $1;}' | awk '{ foo = $1 / 1024 / 1024 ; print foo}')
	PERC=$(bc <<< "scale=2; ("$TARGET" - "$SOURCE")/"$SOURCE" * 100")
	echo -e "The target compressed file does "$TARGET"MB, a difference of \e[1m$PERC%\e[0m from the source(s) ("$SOURCE"MB)."
else
	time tar -c "$@" | pxz -k -9 -v -c > "${@%.*}".tar.xz
	echo
	SOURCE=$(wc -c "$@" | awk '{print $1;}' | awk '{ foo = $1 / 1024 / 1024 ; print foo}')
	TARGET=$(wc -c "${@%.*}".tar.xz | awk '{print $1;}' | awk '{ foo = $1 / 1024 / 1024 ; print foo}')
	PERC=$(bc <<< "scale=2; ("$TARGET" - "$SOURCE")/"$SOURCE" * 100")
	echo -e "The target compressed file does "$TARGET"MB, a difference of \e[1m$PERC%\e[0m from the source(s) ("$SOURCE"MB)."
fi
}
 
# Compression tar.lzo
compress-lzo(){
if [[ -d $@ ]]; then
	time tar -c "$@" | lzop -c -9 > "${@%/}".tar.lzo
	echo
	SOURCE=$(find "$@" -type f -exec wc -c {} \; | awk '{total += $1} END{print total}' | awk '{ foo = $1 / 1024 / 1024 ; print foo}')
	TARGET=$(wc -c "${@%/}".tar.lzo | awk '{print $1;}' | awk '{ foo = $1 / 1024 / 1024 ; print foo}')
	PERC=$(bc <<< "scale=2; ("$TARGET" - "$SOURCE")/"$SOURCE" * 100")
	echo -e "The target compressed file does "$TARGET"MB, a difference of \e[1m$PERC%\e[0m from the source(s) ("$SOURCE"MB)."
else
	time tar -c "$@" | lzop -c -9 > "${@%.*}".tar.lzo
	echo
	SOURCE=$(wc -c "$@" | awk '{print $1;}' | awk '{ foo = $1 / 1024 / 1024 ; print foo}')
	TARGET=$(wc -c "${@%.*}".tar.lzo | awk '{print $1;}' | awk '{ foo = $1 / 1024 / 1024 ; print foo}')
	PERC=$(bc <<< "scale=2; ("$TARGET" - "$SOURCE")/"$SOURCE" * 100")
	echo -e "The target compressed file does "$TARGET"MB, a difference of \e[1m$PERC%\e[0m from the source(s) ("$SOURCE"MB)."
fi
}
 
# Compression tar.lz4
compress-lz4(){
if [[ -d $@ ]]; then
	time tar -c "$@" | lz4 -9 -v > "${@%/}".tar.lz4
else
	time tar -c "$@" | lz4 -9 -v > "${@%.*}".tar.lz4
fi
}
 
# Extraire une archive
function extract(){
	if [ -f "$1" ] ; then
		case "$1" in
			*.tar.xz)    tar -xvJf "$1"    ;;
			*.tar.lzo)   lzop -d -c "$1" | tar xvf - ;;
			*.tar.lz4)   lz4 -dcv "$1" | tar xvf - ;;
			*.tar.lzma)  tar --lzma -xvf "$1" ;;
			*.tar.bz2)   tar xvjf "$1"     ;;
			*.tar.gz)    tar xvzf "$1"     ;;
			*.bz2)       bunzip2 "$1"      ;;
			*.rar)       unrar x "$1"      ;;
			*.gz)        gunzip "$1"       ;;
			*.tar)       tar xvf "$1"      ;;
			*.tbz2)      tar xvjf "$1"     ;;
			*.tgz)       tar xvzf "$1"     ;;
			*.zip)       unzip "$1"        ;;
			*.Z)         uncompress "$1"   ;;
			*.7z)        7z x "$1"         ;;
			*.7z.*)      7z x "$1"         ;;
			*.iso)       7z x "$1"         ;;
			*.img)       7z x "$1"         ;;
			*)           echo "'$1' cannot be extracted via >extract<" ;;
		esac
	else
		echo "'$1' is not a valid file!"
	fi
}
 
# Extraire plusieurs archives de meme type
function extract-all(){
	if [ -f "$1" ] ; then
		case "$1" in
			*.rar)       find . -name "*.rar" -exec unrar x {} \;    ;;
			*.tar.xz)    find . -name "*.tar.xz" -exec tar -xvJf {} \;    ;;
			*.zip)       find . -name "*.zip" -exec unzip {} \;        ;;
			*.7z)        find . -name "*.7z" -exec 7z x {} \;         ;;
			*)           echo "'$1' cannot be extracted via >extract<" ;;
		esac
	else
		echo "'$1' is not a valid file!"
	fi
}

printf

FormatDescription
%bPrint the associated argument while interpreting backslash escapes in there
%qPrint the associated argument shell-quoted, reusable as input
%dPrint the associated argument as signed decimal number
%iSame as %d
%oPrint the associated argument as unsigned octal number
%uPrint the associated argument as unsigned decimal number
%xPrint the associated argument as unsigned hexadecimal number with lower-case hex-digits (a-f)
%XSame as %x, but with upper-case hex-digits (A-F)
%fInterpret and print the associated argument as floating point number
%eInterpret the associated argument as double, and print it in <N>±e<N> format
%ESame as %e, but with an upper-case E in the printed format
%gInterprets the associated argument as double, but prints it like %f or %e
%GSame as %g, but print it like %E
%cInterprets the associated argument as char: only the first character of a given argument is printed
%sInterprets the associated argument literally as string
%nAssigns the number of characters printed so far to the variable named in the corresponding argument. Can't specify an array index. If the given name is already an array, the value is assigned to the zeroth element.
%aInterprets the associated argument as double, and prints it in the form of a C99 hexadecimal floating-point literal.
%ASame as %a, but print it like %E
%(FORMAT)Toutput the date-time string resulting from using FORMAT as a format string for strftime(3). The associated argument is the number of seconds since Epoch, or -1 (current time) or -2 (shell startup time). If no corresponding argument is supplies, the current time is used as default
%%No conversion is done. Produces a % (percent sign)
gnu-linux/bash.1582357039.txt.gz · Dernière modification : 2022/12/17 14:09 (modification externe)