duangsuse::Echo
953 subscribers
4.9K photos
154 videos
588 files
7.26K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): a19a0b
Download Telegram
duangsuse::Echo
#learn #bash with #tool 入门+优质冷知识 😋 图为 asciinema.org/explore 。没有 #linux 的极客可打开 WebVM.io Linux Deploy; (Mac)Git Bash; winetricks; screenfetch 甚至 bashttpd; pacman/OpenRC init 基于bash shell 是类似 Windows.ps1 但使用纯文本或行IO的脚本编程语言。 每当你看见awk|sed|grep ,那就是在 #sql sele…
— CLI程序服务
getopts; complete 用于获取短参数和提供补齐。少数人用while shift/read;case 来解析
还有一个select in ; do,和py2 print 是异曲同工之败笔,请
->展示zenity的所有功能,并生成一个简短的MC风格的文字冒险

#!/bin/bash

while getopts ":n:s:err" opt; do #?未知 :空
case $opt in
n) n=$OPTARG ;;
s) s=$OPTARG ;;
err) isErr=1 ;;
esac
done
printf "%d*%s E%d\n" $n $s $isErr

ycm() {
local cur prev words cword
_init_completion -n = || return

case $prev in
-s) COMPREPLY=($(compgen -e -- "${cur}")); return 0 ;;
*) COMPREPLY=($(compgen -W "-n -s -err" -- "${cur}"));;
esac
}
complete -F ycm $0

使用 chmod +x a.sh; . a.sh 注册后./执行 即可Tab补齐

— ⭐️ #js #recommend bashrc
#允许拖放文件夹+远程 uc ls=wget
shopt -s autocd
uc(){ eval $(node -p 'gc={"?d1":"--depth=1","?dn":"--recurse-submodules","":""}; process.argv.slice(1).map(s=>{try{u=new URL(s),s=/^git/.test(u.host)?
`git clone ${gc[u.search]} git@${u.host}:${u.pathname.slice(1)}.git&&ls -td */`:
`wgetHL ${u}`;s=`$(${s}|head -n1)`}catch{}return s}).join(" ")' $*);}

wgetHL(){ python -c 'import pip._internal.cli.progress_bars as PB, time,sys, subprocess as P,re,functools as F
def hear(sh,vp):
nvp=len(vp)
for s in (po:=P.Popen(sh, stdout=-1,text=True,shell=True)).stdout:
for k,v in enumerate(vp):
if nvp==0:yield po
if not isinstance(v,str)and (m:=v.match(s)): vp[k]=m.group(1); nvp-=1
for po in hear(f"LANG=C wget -dc {sys.argv[1]} 2>&1", vp:=[*map(re.compile,sys.argv[2:])]):
time.sleep(1); f=iter( F.partial(open(vp[1],"rb").read,1), b""); print(vp[1])
sys.stdout=sys.stderr; [*PB._rich_progress_bar(f, bar_type="on",size=int(vp[0]))]
po.wait()
' $1 'Length: (\d+)' "Converted file name.*-> '(.*)'";}

#help真太烦人! mans(){ [ -z $(command -v $0) ]&&command-not-found $0 ||对$0依次使用 --help,-h,tldr,man,man -k  }
mans() {
[[ "$@" =~ / ]]&&cd "$(mkdir -p $@;echo $1)" ||(ev=MAN$1;[ -n "${!ev}" ] &&${!ev} "${@:2}") ||
([ -z $(command -v $1) ] &&command-not-found $1) ||(
for opt in "--help" "-h"; do $@ $opt 2>&1|mansHL &&break; done
sleepHL 2 &&for doc in "tldr" "man" "man -k"; do $doc $1 &&break; done
)
}
alias ?=mans grepp='grep --color=always -P'
#export COMMAND_NOT_FOUND_INSTALL_PROMPT=1
MANimport='pip install -U'; MANjs='sudo npm -g i'; MANdoc='docker pull'
MANfmt='[[/(?<=\s-[\w-.]+)(( | ?[=<\x27[])[^\s:,,]+)/g, 36],[/,? ?(\s-[\w-.]+)/g, 32],[/([A-Z][A-Z0-9_]{2,})/g,34]]'
command-not-found() { sudo pacman -S $@ ||pacman -Ql $@|grepp '/etc|lib/'; pkgcSel $1; return 0;}
mansHL(){ node -p "$MANfmt.reduce((str, [A, B]) => str.replace(A,\`\x1b[1;\${B}m\$1\x1b[0m\`), process.argv[1])" -- "$(cat)"; }

sleepHL(){ python -c "import pip._internal.cli.progress_bars as PB, time,sys
def delay(xs,dt):
for x in xs:yield x;time.sleep(dt)

dt=$1*10;t0=time.time()
try:[*PB._rich_progress_bar(delay(iter('?'*dt),.1), bar_type='on',size=dt)]
except:print(f'{time.time()-t0}s :) cancel'); sys.exit(1)";}

zenity-sel(){ s=`cat`; test -n "$s"&&zenity<<<$s --title "$1" --list $(eval echo --column={$2}) $3;}
pkgcSel(){ k=$(pkgconf --list-all | grep -P $(sed 's/lib/(lib)?/' <<<$1)|sed 's/ \s*/\n/'|zenity-sel "Debug package $1" cffi,usage)||return
for fp in $k $1/$1 $1 $k/lib$1/$1; do cpp -undef $(pkgconf $k --cflags-only-I) <<<"#include <${fp}.h>"|grep -v '^#' >sel.h &&break; done
(sleep 5&&sed -E 's/__attribute__[^;]*//g;s/__(inline|restrict)//g;s/typedef .*va_list.*//g;s/\w*va_list/.../g' -i sel.h)&
echo "import cffi; ffi=cffi.FFI();ffi.cdef(open('sel.h').read()); C=ffi.dlopen('$(pkgconf $k --libs)'[2:])"
#fuck u cffi, what <cdata>? Is strconv&cdef(errItem=ignore) that hard?
}

这样,您可以快速阅读调用帮助: for c in python node ruby lua "kotlin -h" "git init" pip sed awk grep nano bash;do ? $c; done
或者,下载存储库及文件 uc cd https://github.com/hyprwm/Hyprland?d1
uc ls https://mirrors.ustc.edu.cn/xbmc/releases/android/x86/kodi-20.2-Nexus-x86.apk

切换文件夹 ? a b/{1,2} c/ (在jupyter)安装依赖 ? import srt
🎁 允许用py调用系统上的.so 库如 pkgcSel caca alpm

作业:用文尾的知识,为mans编写自动补齐生成