= CLI tools == GNU coreutils === less -r interpret ANSI esc -S toggle long line support == coreutils alternatives ack ag cat bat https://github.com/sharkdp/bat gat https://github.com/koki-develop/gat cd fzf https://github.com/junegunn/fzf zoxide https://github.com/ajeetdsouza/zoxide cut choose https://github.com/theryangeary/choose curl curlie https://github.com/rs/curlie diff delta https://github.com/dandavison/delta df duf https://github.com/muesli/duf dig dog https://github.com/ogham/dog dmesg rmesg https://github.com/polyverse/rmesg du dust https://github.com/bootandy/dust find fd https://github.com/sharkdp/fd grep ripgrep https://github.com/BurntSushi/ripgrep history mcfly https://github.com/cantino/mcfly ls exa https://github.com/ogham/exa lsd https://github.com/lsd-rs/lsd ping gping https://github.com/orf/gping ps procs https://github.com/dalance/procs sed sd https://github.com/chmln/sd time hyperfine https://github.com/sharkdp/hyperfine top bottom https://github.com/ClementTsang/bottom glances https://github.com/nicolargo/glances gtop https://github.com/aksakalli/gtop ytop https://github.com/cjbassi/ytop tree broot https://github.com/Canop/broot wc tokei == not alternatives but useful CLI tools grex CLI tool to generate regex based on user strings tealdeer tldr-reimplementation bandwhich iperf3 alternative jq JSON filtering and querying fq tool, language and decoders for working with binary and text formats jc jc JSONifies the output of many CLI tools for easier parsing https://github.com/kellyjonbrazil/jc cheat cheat allows you to create and view interactive CLI cheatsheets https://github.com/cheat/cheat tldr Collaborative cheatsheets for console commands https://github.com/tldr-pages/tldr hyperfine command-line benchmarking tool https://github.com/sharkdp/hyperfine httpie modern, user-friendly command-line HTTP client for the API era https://github.com/httpie/cli xh friendly and fast tool for sending HTTP requests https://github.com/ducaale/xh up piping in an interactive manner https://github.com/akavel/up == rsync === synchronization rsync -ravz /media/data/ /media/extF/ == convert/imagemagick convert image to smaller size than 800px width and 600px height: convert -resize "800x600>" "INPUT.png" "${OUTPUT:r}.small.png" # both values are smaller 800/600 convert -resize "800x600^" "INPUT.png" "${OUTPUT:r}.small.png" # one of the values is smaller 800/600 == ffmpeg reencode in lossful OGV (here: file size increased 14×): ffmpeg -i src.mkv -c:v libtheora -q:v 10 -c:a libvorbis dst.ogv shorten a video: ffmpeg -i src.MTS -ss 0:0:0 -to 0:0:23 dst.mp4 crop a video: ffmpeg -i src.mkv -filter:v "crop=1280:766:0:34" dst.mkv ffmpeg -codecs ffmpeg -i input.mp4 -strict -2 -vf scale=540:960 output.mp4 ffmpeg -i input.vob -vf yadif -c:v libx264 -preset slow -crf 19 -c:a aac -b:a 256k output.mp4 ffmpeg -i input.mp4 -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis output.webm ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 output.mp4 ffmpeg -i input.mp4 -c copy -an output.noaudio.mp4 ffmpeg -i input.mp4 -vf "transpose=2" output.mp4 ffmpeg -i input.MTS -ss 00:00 -to 00:23 -vcodec mjpeg -b 100M output.mp4 ffmpeg -i input.MTS -vcodec mpeg4 -b:v 15M -acodec libmp3lame -b:a 192k -ss 04:30 -to 05:15 output.mp4 ffmpeg -i input.MTS -vcodec mpeg4 -vf "transpose=1" -b:v 15M -acodec libmp3lame -b:a 192k output.mp4 ffmpeg -i input.mp4 -codec:a libmp3lame -qscale:a 2 output.mp3 ffmpeg -i input.MTS -vcodec mpeg4 -vf "transpose=1" -b:v 15M -acodec libmp3lame -b:a 192k output.MP4 ffmpeg -i input.MTS -vcodec mpeg4 -b:v 15M -acodec libmp3lame -b:a 192k output.MP4 ffmpeg -i input.mp4 -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis output.webm ffmpeg -i input.mp4 -vf scale=540:960 -c:v libvpx -crf 10 -b:v 1M -strict -2 output.small.mp4 ffmpeg -i input.mp4 -strict -2 -vf scale=540:960 output.small.mp4 ffmpeg -i input.webm -c:v libvpx -vf scale=540:960 -crf 10 -b:v 1M -c:a libvorbis output.small.webm ffmpeg -i input.large.webm -c:v libvpx -vf scale=540:960 -crf 10 -b:v 1M -c:a libvorbis output.small.webm ffmpeg -i input.mp4 -vcodec mpeg4 -b:v 15M -acodec libmp3lame -b:a 192k -ss 00:02 -to 02:28 output.mp4 ffmpeg -i input.mp4 -strict -2 -vf scale=540:960 output.mp4 == xrandr xrandr --output VGA1 --same-as LVDS1 --fb 1280x800 xrandr --auto --output VGA1 --mode 1152x864 --right-of LVDS1 xrandr --output VGA1 --mode 1680x1050 --left-of LVDS1 == tar === tar archive tar cfv ARCHIVE.tar FOLDER tar xfC ARCHIVE.tar DESTINATIONFOLDER === tar.gz archive tar czf ARCHIVE.tar.gz FOLDER tar xfC ARCHIVE.tar.gz DESTINATIONFOLDER === tar.bz2 archive tar cjfv ARCHIVE.tar.bz2 FOLDER tar xjfC ARCHIVE.tar.bz2 DESTINATIONFOLDER == usecase: create a tar archive of a folder for an upload to the server # (1) create archive tar -C $PWD --no-recursion --exclude-backups --totals -cjv -f myarchive.tar.bz2 fileA folderX # it makes a difference whether you specify "./fileA" or "fileA" !! # (2) upload archive # (3) decompress archive tar -x -f myarchive.tar.bz2 == pdfpc === keybindings Shift + PageDown jump by 10 slides g go to slide number Shift + Tab viewing history Tab presentation overview M create a bookmark Shift + M return to bookmark Ctrl + N create annotation ( to stop) F freeze presentation screen, so you can move to another slide on the other monitor B fade presentation screen to black S start timer P pause timer Ctrl + T reset timer 2 laser pointer 3 drawing mode 4 eraser mode Ctrl + Q exit = increase font size of notes