also lets you delete stuff.
# analyze current working dir, stay in the same filesystem
ncdu -x
Bscp copies a single file or block device over an SSH connection, transferring only the parts that have changed.
In other words, it handles the edge case where rsync fails.
# The default BLOCKSIZE is 65536 (64 KiB).
# The default HASH algorithm is sha256 (SHA-256).
bscp SRC HOST:DEST [BLOCKSIZE] [HASH]
link: https://bscp.njh.eu/
mc
Try using it over the network too, once you have it open:
cd sftp://user@host
or if that doesnt work
cd sh://user@host
https://github.com/magnus-ISU/selectdefaultapplication which is a fork of https://github.com/sandsmark/selectdefaultapplication.
This is the only tool we’ve found that actually lets us easily set all the things we need to to get programs to open the way we want.
these don’t really need introduction. here’s some recipes.
# recursive grep but better because it ignores dev nodes
find /path -print0 -type f | xargs -0 grep 'pattern'
# same thing but don't traverse mounts
find /path -print0 -xdev -type f | xargs -0 grep 'pattern'
# filter the contents of a single directory (better than `ls | grep`)
# -mindepth 1 prevents printing parent dir
# -maxdepth 1 prevents recursing deeper
find /path -mindepth 1 -maxdepth 1 [args...]
# Learn what changes to the filesystem a different process is making
# This detects files with modification dates newer than the checkpoint
touch /tmp/checkpoint
some_command_you_want_to_learn_about
find / -newer /tmp/checkpoint
# Same thing but for access time. Only works if you're using atime as a mount
# option, and not relatime or noatime.
touch /tmp/checkpoint
some_command_you_want_to_learn_about
find / -neweraa /tmp/checkpoint
# change the passphrase on a private key (or remove it)
ssh-keygen -p -f path/to/key
cdw
mpv <file|url|whatever>
swiss army knife of playing media. if you install yt-dlp
too it can even play
youtube videos directly!
good tutorial in
man 7 cmus-tutorial
works well even with networked filesystems!
Basically, use a jq query, but run yq
or tomlq
instead of jq
. It’ll parse
the input, convert it to json, then feed it to jq
. By default it will output
whatever jq
returns as-is, but you can ask it to convret it back to the
original format too.
# run this on the thingy that builds binary packages to
# rebuild the metadata index
emaint binhost --fix
# delete source for anything without an ebuild in any repos
eclean-dist
# delete source for anything that isn't installed
eclean-dist -d
# delete binary packages from /usr/portage/packages for anything
# without an ebuild
eclean-pkg
# delete binary packages from /usr/portage/packages for anything
# that isn't installed
eclean-pkg -d
### clear out old kernels
eclean-kernel
in general, it’s a good program for dealing with merges/rebases. we use it regularly. Free version only has light mode :/.
git -c rebase.instructionFormat='%s%nexec GIT_COMMITTER_DATE="%cD" GIT_AUTHOR_DATE="%aD" git commit --amend --no-edit --reset-author' rebase -f <commit/branch before wrong author and email, or --root to rebase all>
via stackoverflow
https://github.com/XAMPPRocky/tokei
vi@localhost ~/p/artemis.sh (mistress)> tokei
===============================================================================
Language Files Lines Code Comments Blanks
===============================================================================
JavaScript 1 93 63 17 13
JSON 2 11 11 0 0
Nix 1 63 44 6 13
Ruby 1 119 90 11 18
Sass 4 162 118 14 30
Shell 3 86 73 4 9
Plain Text 7 498 0 408 90
YAML 1 43 21 17 5
-------------------------------------------------------------------------------
HTML 11 2323 2209 97 17
|- CSS 5 126 114 12 0
|- JavaScript 2 661 576 40 45
(Total) 3110 2899 149 62
-------------------------------------------------------------------------------
Markdown 98 10262 0 7307 2955
|- BASH 2 22 21 0 1
|- Python 1 19 6 9 4
(Total) 10303 27 7316 2960
===============================================================================
Total 129 13660 2629 7881 3150
===============================================================================
Not our script, but we modified it slightly to make it work with modern irssi. Put it in ~/.irssi/scripts/autorun/
. Read the script for how to set up keybinds