servers
ddns
- @
- 192.168.1.8/
- alias
- mogimogilenovo.ooguy.com
apache root
- @
- 192.168.1.8/
- alias
- localhost
node root
cd ~
http-server -p8081
notes
cd ~
jekyll serve --watch --port 3125
blog
cd ~
jekyll serve --watch --port 4000
loop thru directories
for d in ./*; do if [ -d "$d" ]; then echo "$d"; fi; done
apply to script all files in directory
curdir=$(pwd); for folder in /path/to/Files/*; do [ -d "$folder" ] cd "$folder" ./conv.sh; done; cd $curdir
for f in *; do [ -d "$f" ] cd "$f" ./conv.sh; done; cd ..
concat files
cat * > outputfname
find /path/to/directory/ -name *.csv -exec cat {} + > outputfname
replace text in batch
sed -i.backupsuffix 's/SEARCH_REGEX/REPLACEMENT/g' INPUTFILE
find large files
sudo find . -xdev -type f -size +100M
delete files
for d in ./*; do if [ -d "$d" ]; then cd $d; rm *.mp3; cd .. ; fi; done
rename files
rename -v 's/search regex/replacingstring/' *
rename files sequentially
ls | cat -n | while read n f; do mv "$f" `printf "2019-12-02-23-19-%02d.jpg" $n`; done
rename and keep extension no recursion thry directories
ls -1prt | grep -v "/$" | cat -n | while read n f; do mv -n "${f}" `$(printf "%04d" $n).${f#*.}`;
regex -ve lookahead
(?!NO)
regex ultra greedy wildcard
([^~]*)
make thumbnails
for f in *.pdf; do echo epub-thumbnailer "$f" "${f%.epub}.png" 800; done
for f in *.pdf; do convert -thumbnail x300 -background white -alpha remove "$f"[0] "${f%.pdf}.png";done
mogrify -format webp -path thumbs -thumbnail 200x200 *.pdf[0]
mogrify -format webp -path thumbs -thumbnail 200x200 *.jpg
mogrify -format webp -path thumbs -thumbnail 200x200 *.gif[0]
mogrify -format webp -path thumbs -thumbnail 200x200 *.djvu[0]
mogrify -format webp -path thumbs -thumbnail 200x200 *.png
trim a video of leng hh:mm:ss of inp video beginning @ time HH:MM:SS
ffmpeg -i input.mp4 -ss HH:MM:SS -t hh:mm:ss -async 1 cut.mp4
video to frames
ffmpeg -i inp.mp4 -r 1/1 $filename%03d.bmp
frames to gif
gifsicle --delay 10 --loopcount 0 *.gif > out.gif
webp to gif
for f in *.webp; do mkdir $f.frames; anim_dump -folder $f.frames $f; .convert $f.frames/*.png -delay 10 -loop 0 $f.gif; done;
batch img
sudo apt-get install jpegoptim
jpegoptim *.mp3 -m30
mogrify -path ./results -resize 50x50% -quality 80 -format jpg *.png
mogrify -format jpg *.png
mogrify -path ./ -resize 50% -quality 80 *.jpg
convert *.jpg -auto-orient pictures.pdf
batch music
sudo apt-get install lame
lame -b bitrate *.mp3 *.mp3.minified
images To booklet
img2pdf $(find . -iname "*.jpg" | sort -V) -o ./document.pdf
ls -1 ./*jpg | xargs -L1 -I {} img2pdf {} -o {}.pdf; pdftk *.pdf cat output combined.pdf
img2pdf *.jpg -o ./document.pdf
invert color
html {-filter: invert(100%)}
compress pdf
gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -sOutputFile=output.pdf input.pdf
gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -sOutputFile=output.pdf input.pdf
ps2pdf -dPDFSETTINGS=/ebook input.pdf output.pdf
convert -density 200x200 -quality 40 -compress jpeg input.pdf output.pdf
compress vids
ffmpeg -i source.mp4 -c:v libx264 -b:v 0.5M -c:a aac -b:a 96k target.mp4
ffmpeg -i source.mp4 -c:v libx264 -b:v 1.5M -c:a aac -b:a 128k target.mp4
for MD checklist
<!-- Required extensions: pymdownx.tasklist -->
for GFM
<!-- Required extensions: pymdownx.betterem, pymdownx.tilde, pymdownx.emoji, pymdownx.tasklist, pymdownx.superfences -->
wget options
- E:
- Append .html to the file name if it is an HTML file but doesn't end in .html or similar
- H:
- Download files from other hosts, too
- k:
- After downloading convert any link in it so they point to the downloaded files
- p:
- Download anything the page needs for proper offline viewing
- r:
- recursively download all files in folder
download link
wget link -O output-name
download list of links
wget -i input.txt
download website
wget -r -k -E -p link
download webpag
ewget -E -H -k -p link
get gdrive files from url
if [[ $URL =~ d/(.*)/view ]]; then FILEID=${BASH_REMATCH[1]}; else if [[ $URL =~ open.id=(.*)\" ]]; then FILEID=${BASH_REMATCH[1]}; fi ; fi
wget --no-check-certificate "https://docs.google.com/uc?export=download&id=$FILEID" -O "$FILENAME"
wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate "https://docs.google.com/uc?export=download&id=$FILEID" -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=$FILEID" -O "$FILENAME" && rm -rf /tmp/cookies.txt
mathJax
tag<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
displayed mathematics delimeter
$$...$$
\[...\]
in-line mathematics delimiter
\(...\)
backup installation list
dpkg --get-selections > mylists.list