Benutzer-Werkzeuge

Webseiten-Werkzeuge


commands-general-tools

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
commands-general-tools [2019/03/13 12:57]
alex [Conversion Stuff] make an image grayscale and remove any transparency with ImageMagick && change the character encoding of a file‘s content
commands-general-tools [2020/07/11 11:22] (aktuell)
alex [Conversion Stuff] add rounded corners to an image (for app icon with rounded corners in the style of iPhone‘s SpringBoard)
Zeile 33: Zeile 33:
 clang++ -dM -E -x c /dev/null clang++ -dM -E -x c /dev/null
 </code> </code>
 +
 ==== OpenSSL ==== ==== OpenSSL ====
  
Zeile 117: Zeile 118:
 === verify DNSSEC chain of a domain === === verify DNSSEC chain of a domain ===
 <code bash> <code bash>
-## obtain the root keys first+## if you don't have the root keys yet, obtain them first 
 +unbound-anchor -a /usr/local/etc/unbound/root.key 
 +## if the root key file is at the standard path of your unbound/ldns installation, the "-k" option can be omitted
 drill -S -k /usr/local/etc/unbound/root.key kuehrmann.de drill -S -k /usr/local/etc/unbound/root.key kuehrmann.de
-## if your resolver does not support DNSSEC use e.g. Quad9 +## if your resolver does not support DNSSECuse a public one, e.g. Hurricane Electric 
-drill -S -k /usr/local/etc/unbound/root.key kuehrmann.de @9.9.9.9+drill -S -k /usr/local/etc/unbound/root.key kuehrmann.de @74.82.42.42
 </code> </code>
-[[https://www.freebsd.org/cgi/man.cgi?query=drill&sektion=1| drill(1)]]+[[https://www.freebsd.org/cgi/man.cgi?query=drill&sektion=1|drill(1)]] [[https://www.freebsd.org/cgi/man.cgi?query=unbound-anchor&sektion=8|unbound-anchor(8)]]
  
 === check whether your DNS resolver discards invalid DNSSEC domains === === check whether your DNS resolver discards invalid DNSSEC domains ===
Zeile 165: Zeile 168:
 find /your/dir -name "*.cpp" -print0 | xargs -0 wc -l find /your/dir -name "*.cpp" -print0 | xargs -0 wc -l
 </code> </code>
 +[[https://www.freebsd.org/cgi/man.cgi?query=find&sektion=1|find(1)]] [[https://www.freebsd.org/cgi/man.cgi?query=xargs&sektion=1|xargs(1)]]
  
 === check recursively for broken symlinks === === check recursively for broken symlinks ===
Zeile 170: Zeile 174:
 find /your/dir -type l ! -exec test -e {} \; -print find /your/dir -type l ! -exec test -e {} \; -print
 </code> </code>
 +[[https://www.freebsd.org/cgi/man.cgi?query=find&sektion=1|find(1)]]
  
 === delete recursively all files with a certain name (e.g. “.DS_Store”) === === delete recursively all files with a certain name (e.g. “.DS_Store”) ===
Zeile 175: Zeile 180:
 find /your/dir -type f -name .DS_Store -print -delete find /your/dir -type f -name .DS_Store -print -delete
 </code> </code>
 +[[https://www.freebsd.org/cgi/man.cgi?query=find&sektion=1|find(1)]]
  
 === create checksums of directory tree and verify them === === create checksums of directory tree and verify them ===
Zeile 186: Zeile 192:
 rhash -cr --crc-accept=sfv,md5,sha256 /tmp/directory/ rhash -cr --crc-accept=sfv,md5,sha256 /tmp/directory/
 </code> </code>
-[[https://www.freebsd.org/cgi/man.cgi?query=rhash|man rhash]]+[[https://www.freebsd.org/cgi/man.cgi?query=rhash&sektion=1|rhash(1)]]
  
 === create a file with specific timestamps === === create a file with specific timestamps ===
Zeile 195: Zeile 201:
 ## -t = timestamp - use [[CC]YY]MMDDhhmm[.ss] time format ## -t = timestamp - use [[CC]YY]MMDDhhmm[.ss] time format
 </code> </code>
-[[https://www.freebsd.org/cgi/man.cgi?query=touch|man touch]]+[[https://www.freebsd.org/cgi/man.cgi?query=touch&sektion=1|touch(1)]]
  
 === handle sparse files === === handle sparse files ===
Zeile 204: Zeile 210:
 dd if=inputSparse.ext of=outputSparse.ext bs=4096 conv=sparse dd if=inputSparse.ext of=outputSparse.ext bs=4096 conv=sparse
 </code> </code>
-[[https://www.freebsd.org/cgi/man.cgi?query=truncate|man truncate]] [[https://www.freebsd.org/cgi/man.cgi?query=dd|man dd]]+[[https://www.freebsd.org/cgi/man.cgi?query=truncate&sektion=1|truncate(1)]] [[https://www.freebsd.org/cgi/man.cgi?query=dd&sektion=1|dd(1)]] 
 + 
 +=== create a 7-ZIP archive encrypted with a password === 
 + 
 +<code bash> 
 +7z a -p -mhe=on the_new_archive.7z -r dir_containing_stuff another_file.bin 
 +</code> 
 +[[https://www.freebsd.org/cgi/man.cgi?query=7z&sektion=1|7z(1)]] 
 + 
 +=== view contents of ZIP or TAR files without complete extracting === 
 +<code bash> 
 +### example of "Android Package Kit" which is actually a ZIP file 
 +unzip -l SomeAndroidApp.apk 
 +unzip -p SomeAndroidApp.apk META-INF/MANIFEST.MF 
 +### example of an "Open Virtual Appliance" which is actually a TAR file 
 +tar -tf SomeAppliance.ova 
 +tar -xfO SomeAppliance.ova SomeAppliance.ovf 
 +</code> 
 +[[https://www.freebsd.org/cgi/man.cgi?query=unzip&sektion=1|unzip(1)]] [[https://www.freebsd.org/cgi/man.cgi?query=tar&sektion=1|tar(1)]] 
 + 
 ==== Disk and Partition Stuff ==== ==== Disk and Partition Stuff ====
  
Zeile 219: Zeile 245:
 ssh user@src.example.com "cat /backup/basil-sda.img.lz4" | lz4cat | pv | dd of=/dev/sda bs=1048576 ssh user@src.example.com "cat /backup/basil-sda.img.lz4" | lz4cat | pv | dd of=/dev/sda bs=1048576
 </code> </code>
 +
 ==== Conversion Stuff ==== ==== Conversion Stuff ====
  
-=== make a big image small with ImageMagick ===+=== convert image file using ImageMagick ===
 <code bash> <code bash>
 +## make a big image small
 convert big_input.tif -resize 256x256 small_output.png convert big_input.tif -resize 256x256 small_output.png
 +## make an image grayscale and remove any transparency
 +convert input.png -alpha deactivate -colorspace Gray output.png
 +## create PNG with transparency from SVG, determine it's pixel dimensions from a DPI parameter
 +convert -background none -density 1200 input.svg output.png
 +## create PNG with transparency from SVG, specify it's pixel dimensions directly
 +convert -background none -size 512x512 input.svg output.png
 </code> </code>
 [[https://www.freebsd.org/cgi/man.cgi?query=convert&sektion=1|convert(1)]] [[https://www.freebsd.org/cgi/man.cgi?query=ImageMagick&sektion=1|ImageMagick(1)]] [[https://www.freebsd.org/cgi/man.cgi?query=convert&sektion=1|convert(1)]] [[https://www.freebsd.org/cgi/man.cgi?query=ImageMagick&sektion=1|ImageMagick(1)]]
  
-=== make an image grayscale and remove any transparency with ImageMagick === +=== batch convert images in a directory: rename by creation date and resize to width === 
-<code> +<code bash
-convert input.png -alpha deactivate -colorspace Gray output.png+### for JPGs 
 +exiftool -ext jpg '-FileName<CreateDate' -d %Y%m%d_%H%M%S%%-c.%%e . 
 +mogrify -resize 375 -define preserve-timestamp=True *.JPG 
 +### for PNGs 
 +exiftool -ext png '-FileName<DateCreated' -d %Y%m%d_%H%M%S%%-c.%%e . 
 +mogrify -resize 375 -define preserve-timestamp=True *.PNG 
 +### Comments: 
 +## the "%%-c" in the filename template is for a numerical suffix, in case of multiple images with the same date 
 +## the "-define preserve-timestamp=True" is for keeping file attributes for timestamps 
 +## for case-sensitive filesystems in the "mogrify" command the glob pattern must be adjusted
 </code> </code>
-[[https://www.freebsd.org/cgi/man.cgi?query=convert&sektion=1|convert(1)]] [[https://www.freebsd.org/cgi/man.cgi?query=ImageMagick&sektion=1|ImageMagick(1)]]+[[https://www.freebsd.org/cgi/man.cgi?query=exiftool&sektion=1|exiftool(1)]] [[https://www.freebsd.org/cgi/man.cgi?query=mogrify&sektion=1|mogrify(1)]] [[https://www.freebsd.org/cgi/man.cgi?query=ImageMagick&sektion=1|ImageMagick(1)]] 
 + 
 +=== add rounded corners to an image (for app icon with rounded corners in the style of iPhone‘s SpringBoard) === 
 +<code bash> 
 +### Adjust the corner radius (in pixel) to your needs. 
 +### For a 1024x1024 image a value of 128 looks good. 
 +RADIUS=128 
 + 
 +### The whole ImageMagick command is quite complex. The resulting rounded image is written to a new file.  
 +### The cascade of parenthesized options defines the operations to cut out the transparent arcs in the corners. 
 +convert AppIconRaw.png \( +clone -alpha extract \ 
 +  \( -size ${RADIUS}x${RADIUS} xc:black -draw "fill white circle ${RADIUS},${RADIUS} ${RADIUS},0" -write mpr:arc +delete \) \ 
 +  \( mpr:arc \) -gravity northwest -composite \ 
 +  \( mpr:arc -flip \) -gravity southwest -composite \ 
 +  \( mpr:arc -flop \) -gravity northeast -composite \ 
 +  \( mpr:arc -rotate 180 \) -gravity southeast -composite \) \ 
 +  -alpha off -compose CopyOpacity -composite AppIconRounded.png 
 +</code> 
 +[[https://www.freebsd.org/cgi/man.cgi?query=convert&sektion=1|convert(1)]] [[https://www.freebsd.org/cgi/man.cgi?query=ImageMagick&sektion=1|ImageMagick(1)]] [[https://imagemagick.org/script/command-line-processing.php|ImageMagick - Command-line Processing]] [[http://www.imagemagick.org/script/command-line-options.php|ImageMagick - Command-line Options]] 
 + 
 +=== Unix timestamp to human readable time === 
 +<code bash> 
 +## with BSD date 
 +date -r 1523210382 
 +## with GNU date 
 +date -d @1523210382 
 +</code> 
 +[[https://www.freebsd.org/cgi/man.cgi?query=date&sektion=1|date(1)]] from BSD — [[https://manpages.debian.org/stretch/coreutils/date.1.en.html|date(1)]] from GNU
  
 === format XML === === format XML ===
Zeile 259: Zeile 329:
 [[https://www.freebsd.org/cgi/man.cgi?query=recode&sektion=1|recode(1)]]  (more lightweight and probably already installed alternative: [[https://www.freebsd.org/cgi/man.cgi?query=iconv&sektion=1|iconv(1)]]) [[https://www.freebsd.org/cgi/man.cgi?query=recode&sektion=1|recode(1)]]  (more lightweight and probably already installed alternative: [[https://www.freebsd.org/cgi/man.cgi?query=iconv&sektion=1|iconv(1)]])
  
-=== Unix timestamp to human readable time === +=== occurrences of non-ASCII characters in a file‘s content (with GNU grep) === 
-<code bash+<code> 
-## with BSD date +ggrep --color='auto' -P -n "[\x80-\xFF]" file.txt
-date -r 1523210382 +
-## with GNU date +
-date -d @1523210382+
 </code> </code>
-BSD-[[https://www.freebsd.org/cgi/man.cgi?query=date&sektion=1|date(1)]] GNU-[[https://manpages.debian.org/stretch/coreutils/date.1.en.html|date(1)]]+ 
 +=== occurrences of invalid UTF-8 characters in a file‘s content (this assumes you have an UTF-8 locale set) === 
 +<code> 
 +grep -axv '.*' file.txt 
 +</code> 
 +[[https://stackoverflow.com/questions/29465612/how-to-detect-invalid-utf8-unicode-binary-in-a-text-file|some StackOverflow discussion]] 
 + 
 +=== count how many time each byte value occurs in a file‘s content === 
 +<code> 
 +recode latin1/..count-characters < input.dat 
 +</code> 
 +[[https://www.freebsd.org/cgi/man.cgi?query=recode&sektion=1|recode(1)]] 
 ==== Process Stuff ==== ==== Process Stuff ====
  
commands-general-tools.1552478250.txt.gz · Zuletzt geändert: 2019/03/13 12:57 von alex