X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=home%2Flib%2Flogin_functions.sh;h=15f6e3c412f9bccf82ef273bf71b8f35c93aca67;hb=1be8e74bb12167f8e6adf899612b20cfb16a9ce5;hp=2b985e6de0b55b2f8c0c004b72bca277041d6b4b;hpb=e5eff223aee1f17ae09f1f51e6c52bafc4603491;p=khome.git diff --git a/home/lib/login_functions.sh b/home/lib/login_functions.sh index 2b985e6..15f6e3c 100644 --- a/home/lib/login_functions.sh +++ b/home/lib/login_functions.sh @@ -149,8 +149,7 @@ tdu() { sub("^" $1 "\t+", "", path) gb = size / 1024 / 1024 printf("%f\t%s\n", gb, path) - }' \ - | cut -c 1-115 + }' } # Top Disk-Using Files @@ -225,8 +224,9 @@ man() { command man "$@" } -experiment() { - cd "$(~/bin/experiment $@)" || kill -INT $$ +# new experiment +x() { + cd "$(~/bin/x $@)" || kill -INT $$ } hump() { @@ -234,7 +234,7 @@ hump() { } howto() { - cat "$(find ~/Archives/Documents/HOWTOs -mindepth 1 -maxdepth 1 | sort | fzf)" + cat "$(find ~/arc/doc/HOWTOs -mindepth 1 -maxdepth 1 | sort | fzf)" } _yt() { @@ -428,6 +428,10 @@ flat_top_5() { ' } +internet_addr() { + curl --silent --show-error --max-time "${1:=1}" 'https://api.ipify.org' 2>&1 +} + status_batt() { case "$(uname)" in 'Linux') @@ -536,7 +540,22 @@ status() { echo + printf '%sthermal\n' "$indent_unit" + for _dir in /sys/class/thermal/thermal_zone* + do + printf '%s %.2f C\n' \ + $(cat "$_dir"/type) \ + $(( $(cat "$_dir"/temp) / 1000 )) + done \ + | column -t \ + | indent "${indent_unit}${indent_unit}" + echo 'net' + local -r internet_addr=$(internet_addr 0.5) + local -r internet_ptr=$(host -W 1 "$internet_addr" | awk 'NR == 1 {print $NF}' ) + + echo "${indent_unit}internet" + echo "${indent_unit}${indent_unit}$internet_addr $internet_ptr" echo "${indent_unit}if" (ifconfig; iwconfig) 2> /dev/null \ | awk ' @@ -584,21 +603,36 @@ status() { echo "${indent_unit}-->" - printf '%sUDP: ' "${indent_unit}${indent_unit}" - sudo -n netstat -ulnp \ - | awk 'NR > 2 {print $6}' \ - | awk -F/ '{print $2}' \ - | sort -u \ - | xargs \ - | column -t - - printf '%sTCP: ' "${indent_unit}${indent_unit}" - sudo -n netstat -tlnp \ - | awk 'NR > 2 {print $7}' \ - | awk -F/ '{print $2}' \ - | sort -u \ - | xargs \ - | column -t + sudo -n netstat -tulnp \ + | awk -v indent="${indent_unit}${indent_unit}" ' + NR > 2 && ((/^tcp/ && proc = $7) || (/^udp/ && proc = $6)) { + protocol = $1 + addr = $4 + port = a[split(addr, a, ":")] + name = p[split(proc, p, "/")] + names[name] = 1 + protocols[protocol] = 1 + if (!seen[protocol, name, port]++) + ports[protocol, name, ++seen[protocol, name]] = port + } + + END { + for (protocol in protocols) { + printf "%s%s\t", indent, toupper(protocol) + for (name in names) { + if (n = seen[protocol, name]) { + sep = "" + printf "%s:", name + for (i = 1; i <= n; i++) { + printf "%s%d", sep, ports[protocol, name, i] + sep = "," + } + printf " " + } + } + printf "\n" + } + }' echo "${indent_unit}<->"