# 参考 **Repository Path**: sunshinewithmoonlight/git.reference ## Basic Information - **Project Name**: 参考 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-06 - **Last Updated**: 2026-01-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## ADB:extract apk ``` adb shell pm list adb shell pm path com... adb pull ... . ``` ## ADB:input 参考: ``` adb shell input tap (Default: touchscreen) adb shell input swipe [duration(ms)] (Default: touchscreen) adb shell input press (Default: trackball) adb shell input roll (Default: trackball) ``` ## ADB:net 方法1: 数据线连接后电脑端 ``` adb devices adb tcpip 5555 ``` 方法2: 安卓端 ``` su setprop service.adb.tcp.port 5555 && stop adbd && start adbd ``` ``` adb connect ...:5555 ``` ## ADB:screencap 参考: 高版本安卓支持直接保存: ``` adb exec-out screencap -p > 1.png ``` 如果是windows系统,执行上述命令出来的图片,由于换行符的问题,会导致打不开文件,需要把\r\n换成\n ``` def convert_img(): with open("./1.png", "rb") as f: bys = f.read() bys_ = bys.replace(b"\r\n",b"\n") # 二进制流中的"\r\n" 替换为"\n" with open("./2.png", "wb") as f: f.write(bys_) f.close() ``` 简明: ``` os.system("adb exec-out screencap -p > 1.read.png") open('2.write.png', 'wb').write(open('1.read.png', 'rb').read().replace(b'\r\n',b'\n')) ``` 低版本安卓: ``` adb devices adb shell screencap -p /sdcard/screenshot.png adb pull /sdcard/screenshot.png 0.png rem adb shell rm /sdcard/screenshot.png ``` ## ADB:uiautomator2:initialze ``` pip3 install --pre --upgrade uiautomator2 weditor python -m uiautomator2 init python -m weditor ``` ## Airmon-ng:Cap抓包 ``` su airmon-ng start wlan0 airodump-ng wlan0mon airodump-ng -w cap1 -c ... --bssid ... wlanOmon ``` 发送deauth: ``` sudo aireplay-ng --deauth 0 -a ... wlan0mon ``` 检测是否有设备连接到目标网络,并在检测到设备连接时发出提示音: ``` #!/bin/bash # 检查是否提供了 BSSID 和 channel 参数 if [ "$#" -ne 2 ]; then echo "用法: $0 例如: ./this.sh 18:F2:2C:D0:EE:64 6" exit 1 fi BSSID="$1" CHANNEL="$2" OUTPUT_FILE=$(mktemp /tmp/cap1-XXXXXX) # 启动监控模式 sudo airmon-ng start wlan0 # 启动 airodump-ng 并保存输出到文件 sudo airodump-ng wlan0mon -w $OUTPUT_FILE --output-format csv -d $BSSID -c $CHANNEL & echo "正在监控目标网络 $BSSID..." AIRODUMP_PID=$! cleanup() { echo "清理中..." sudo kill $AIRODUMP_PID sudo airmon-ng stop wlan0mon rm ${OUTPUT_FILE}-01.csv ${OUTPUT_FILE}-01.kismet.csv ${OUTPUT_FILE}-01.kismet.netxml ${OUTPUT_FILE}-01.log.csv 2>/dev/null exit } trap cleanup EXIT while true; do if [ -f "${OUTPUT_FILE}-01.csv" ]; then # 检查输出文件中是否有新设备连接 if grep -q $BSSID "${OUTPUT_FILE}-01.csv"; then # 获取连接设备的数量 DEVICE_COUNT=$(grep $BSSID "${OUTPUT_FILE}-01.csv" | wc -l) if [ $DEVICE_COUNT -gt 1 ]; then echo "检测到新设备连接!" beep fi fi fi sleep 10 # 每 10 秒检查一次 done ``` ## Android Studio:"Plugin with id 'kotlin-android' not found" 当你的使用Kotlin编写的android项目中出现Plugin with id 'kotlin-android' not found. 你可以查看下你的项目Gradle文件,加上如图两行代码: ``` ext.kotlin_version="1.3.30" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" ``` ## Android Studio:ConstraintLayout:initialze 参考: ``` repositories { google() } 将该库作为依赖项添加到同一个 build.gradle 文件中,如以下示例所示。请注意,最新版本可能与示例中显示的不同: dependencies { implementation 'com.android.support.constraint:constraint-layout:1.1.2' } 在工具栏或同步通知中,点击 Sync Project with Gradle Files。 现在,您可以使用 ConstraintLayout 构建布局。 ``` ## Android Studio:jcenter:faster 参考: ``` repositories { maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } google() jcenter() } ``` ## Android:Adb ## Android:Adb server 连接vpn后继续 安装: ``` apt update && apt install wget && wget https://github.com/MasterDevX/Termux-ADB/raw/master/InstallTools.sh && bash InstallTools.sh ``` 卸载: ``` apt update && apt install wget && wget https://github.com/MasterDevX/Termux-ADB/raw/master/RemoveTools.sh && bash RemoveTools.sh ``` ## Android:Google Play:Certificated termux:: ``` pkg install tsu sqlite sudo sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";" ``` 注册之后,谷歌同步数据需要一点时间,稍等5分钟 清除谷歌play应用市场的数据和缓存 谷歌账户给注销退出,等待5分钟,重新登录 继续重新打开谷歌Play ## Android:Termux:CodeServer ``` pkg install -y python nodejs-lts vim npm install --global code-server --unsafe-perm sudo npm install -g @microsoft/1ds-core-js minimist yauzl code-server --bind-addr 0.0.0.0:8080 --disable-telemetry --auth none ``` ## Android:Termux:bashrc ``` vim .bashrc alias p='python' alias v='vim' alias l='ls' alias i='pkg install' alias ii='pkg uninstall' alias pi='pip install' alias pii='pip uninstall' alias r='rm -rf' alias rm='rm -rf' alias rmm='rm .bash_history > /dev/null 2>&1 && rm -rf /data/data/com.termux/cache/apt/*' alias pmd='sudo pm disable' alias pme='sudo pm enable' alias c='python /data/data/com.termux/files/home/git.py/1.tools/8.cast-clipboard.py' alias g='python /data/data/com.termux/files/home/git.py/1.tools/8.get-clipboard.py' alias ft='python /data/data/com.termux/files/home/git.py/1.tools/5.file-transmission.py' alias ftt='cd /storage/emulated/0/Download && python /data/data/com.termux/files/home/git.py/1.tools/5.file-transmission.py' alias co='code-server --bind-addr 0.0.0.0:8080 --disable-telemetry --auth none' alias cc='python ~/git.h5/3/1.py' alias h='htop' alias gp='git pull' alias gpp="git add . && git commit -m 'AutoCommit' && git push" alias gc='git clone' alias n='su -c "iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080"' alias ww='su -c "cmd wifi force-low-latency-mode enabled"' alias www='su -c "cmd wifi force-low-latency-mode disabled"' alias vv='vim ~/.bashrc' # alias aa="su -c 'setprop service.adb.tcp.port 55051' &&su -c 'stop adbd' &&su -c 'start adbd'" # alias aaa='adb connect 127.0.0.1:55051 && adb devices' # alias hh='sudo swapoff /dev/block/zram0' # alias mm='MINIO_ACCESS_KEY=shine MINIO_SECRET_KEY=sunshine /data/data/com.termux/files/home/minio server /storage/emulated/0 --address ":8080"' export API_KEY_3gy6= export SECRET_KEY_3gy6= ``` ## Android:Termux:button ``` mkdir .termux vim .termux/termux.properties extra-keys = [ \ ['ESC','HOME','UP','END','ENTER'], \ ['CTRL','LEFT','DOWN','RIGHT','TAB'] \ ] ``` ## Android:Termux:pkg:initialze ``` sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list apt update && apt upgrade pkg install vim python git ``` ## Android:Twrp:boot.img 备份 ``` dd if=/dev/block/bootdevice/by-name/boot of=/sdcard/boot.img ``` ## Android:Wifi:low latency ``` sudo cmd wifi force-low-latency-mode enabled ``` ## Android:Xiaomi:update ``` fastboot.exe flash recovery twrp.img fastboot.exe boot twrp.img ``` ## AppleScript:模拟点击 通过AppleScript脚本,在Mac系统设置中点击菜单中最后一个名为"ShiningPad"的项,将"ShiningPad"作为扩展或镜像屏幕。 环境为macOS快捷指令。 ``` on run {input, parameters} tell application "System Settings" activate delay 1 set the current pane to pane id "com.apple.Displays-Settings.extension" delay 1 end tell tell application "System Events" tell process "System Settings" -- 获取前台窗口 activate delay 1 set displayWindow to front window --log "Display window: " & (name of displayWindow as string) -- 列出窗口内所有的UI元素,帮助调试 --set allUIElements to entire contents of displayWindow --repeat with uiElement in allUIElements -- log "UI Element: " & (description of uiElement as string) & ", Role: " & (role of uiElement as string) --end repeat -- 尝试获取第一个弹出按钮(假设是“添加”按钮) set addButton to pop up button "添加" of group 1 of group 2 of splitter group 1 of group 1 of displayWindow click addButton delay 1 -- 获取菜单项总数 set menuItems to menu items of menu 1 of addButton set menuItemCount to count of menuItems --log menuItemCount -- 寻找最后一个"ShiningPad"菜单项 set lastShiningPad to null repeat with i from 1 to menuItemCount if name of menu item i of menu 1 of addButton is "ShiningPad" then set lastShiningPad to i end if end repeat -- 如果找到了最后一个"ShiningPad",则点击它 if lastShiningPad is not null then click menu item lastShiningPad of menu 1 of addButton else log "没有找到菜单项ShiningPad" end if delay 1 end tell end tell quit application "System Settings" return input end run ``` ## Chrome:扩展 将下载来的文件后缀名 *.crx 改成 *.rar,解压这个压缩文件得到一个文件夹。 如果解压出的文件夹中有"\_metadata",将前面的"\_"去掉,否则无法加载。 打开扩展程序页面,选中右上方开发人员模式复选框,点击载入正在开发的扩展程序,选中刚刚解压出来的文件夹。 ## Git ``` git clone ... git config --global user.email "... git config --global user.name "... git config --global credential.helper store git config --global core.editor "vim" git add . git commit -a git push git pull git push origin master --force ``` ## Git:GitHub:hosts ``` 192.30.253.112 github.com 151.101.185.194 github.global.ssl.fastly.net 192.30.253.120 codeload.github.com ``` ## Git:erase ``` git checkout --orphan latest_branch git add -A git commit -am "commit message" git branch -D master git branch -m master git push -f origin master git push --set-upstream origin master ``` ## Git:exact ditectory ``` // 初始化空库 $ mkdir devops $ cd devops $ git init // 拉取remote的all objects信息 $ git remote add -f origin https://github.com/....git // 开启sparse clone $ git config core.sparsecheckout true // 设置需要pull的目录,*表示所有,!表示匹配相反的 $ echo "devops" >> .git/info/sparse-checkout $ more .git/info/sparse-checkout // 将origin端需要pull的目录下的文件pull到本地 $ git pull origin master ``` ## Git:roll back ``` // 回到上个版本: git reset --hard HEAD^ // 回到前几个版本: git reset --hard HEAD~3 git reset --hard commit_id git push origin HEAD --force ``` ## Golang:initialze ``` export GO111MODULE=on export GOPROXY=https://mirrors.aliyun.com/goproxy/ ``` ## IOS:PUBG 关闭查找iPhone 运行iMazing 点击【管理应用程序】,选择【设备】 右键点击,选择【备份应用程序数据】 点击“下一步”保存数据,然后又弹出一个界面就选“好” 6.找到刚刚保存的数据文件【和平精英】,右键选择【用好压打开】,打开Container\Documents\ShadowTrackerExtra\Saved\Config\IOS,找到配置文件【UserCustom.ini】 右键点击【UserCustom.ini】,选择【内部查看器打开】 在UserCustom.ini文件的【UserCustom DeviceProfile】下一行添加下面四行代码,添加完毕之后记得保存 +CVars=r.PUBGDeviceFPSLow=60 +CVars=r.PUBGDeviceFPSMid=60 +CVars=r.PUBGDeviceFPSHigh=60 +CVars=r.PUBGDeviceFPSHDR=60 打开iMazing点击【管理应用程序】,选择【设备】,下拉列表找到游戏“和平精英”右键点击“和平精英”,选择【恢复应用程序数据】 手机运行“和平精英”,点击设置,帧率选择【极限】然后保存,不能进训练场和开始游戏!不能进训练场和开始游戏!不能进训练场和开始游戏! 手机游戏不要关闭,再次用iMazing备份“和平精英”数据 添加代码 还原数据 之后游戏不能选择其他画质了,不然又自动还原 ## Jupyterlab ``` pip install jupyterlab echo > /data/data/com.termux/files/home/.jupyter/jupyter_notebook_config.py vim /data/data/com.termux/files/home/.jupyter/jupyter_notebook_config.py c.NotebookApp.allow_remote_access = True c.NotebookApp.open_browser = False c.NotebookApp.ip='*' jupyter notebook --generate-config jupyter-lab // 中文 pip install https://jfds-1252952517.cos.ap-chengdu.myqcloud.com/jupyterhub/jupyterlab_language_pack_zh_CN-0.0.1.dev0-py2.py3-none-any.whl ``` ## Kiro:Fedora Desktop ``` cat > ~/.local/share/applications/kiro-visible.desktop << 'EOF' [Desktop Entry] Type=Application Name=Kiro Comment=Kiro IDE Exec=~/path/to/Kiro/kiro %F Icon=~/path/to/Kiro/resources/app/out/media/code-icon.svg Terminal=false StartupNotify=true StartupWMClass=Kiro Categories=Development;IDE; EOF ``` ## Linux:Arch 下载位置: ``` // # ls /sys/firmware/efi/efivars # ping -c 3 www.baidu.com # timedatectl set-ntp true # fdisk -l # fdisk -l /dev/sda # fdisk /dev/sda // 1 输出 n 创建分区 // 2 Partition type是分区类型,p是主分区,e是扩展分区,直接按回车键选择默认 // 3 Partition number是分区编号,直接按回车键选择默认 // 4 First sector是开始的部分,直接按回车键选择默认 // 5 Last sector是结尾的部分,输入 +50G,按回车键 // 6 输入p查看分区列表 // 7 输入w保存分区操作并继续安装系统。 # mkfs.ext4 /dev/sda1 # mount /dev/sda1 /mnt # vim /etc/pacman.d/mirrorlist // Server = http://mirrors.aliyun.com/ArchLinux/$repo/os/$arch // Server = https://mirrors.tuna.tsinghua.edu.cn/ArchLinux/$repo/os/$arch # pacman -Syy // # pacman -S arch-install-scripts # pacstrap /mnt base linux linux-firmware # genfstab -U /mnt >> /mnt/etc/fstab # arch-chroot /mnt # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # hwclock --systohc # pacman -S vim dhcpcd # systemctl enable dhcpcd // # vim /etc/locale.gen // zh_CN.UTF-8 UTF-8 # vim /etc/hosts // 127.0.0.1 localhost // ::1 localhost // 127.0.1.1 hellokitty.localdomain hellokitty # echo "rm ~/.bash_history"> ~/.bash_logout # passwd # pacman -S grub # grub-install /dev/sda # grub-mkconfig -o /boot/grub/grub.cfg # exit # reboot // 安装运行 xfce4 # pacman -S xorg-server xorg-xinit xfce4 fcitx-im network-manager-applet xfce4-notifyd # startxfce4 // 安装运行 gnome(未成功) # pacman -S xorg xorg-server gnome gnome-extra && systemctl enable gdm.service && reboot ``` ## Linux:Arch:Chinese display ``` sudo vim /etc/locale.gen zh_CN.UTF-8 UTF-8 sudo pacman -Ss font chinese ``` ## Linux:Arch:Chinese input method ``` sudo pacman -Sy fcitx-configtool fcitx-gtk2 fcitx-gtk3 fcitx-qt4 fcitx-qt5 fcitx-sogoupinyin sudo vim /etc/environment export XMODIFIERS="@im=fcitx" export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx sudo vim /etc/profile ... // 同上 ``` ## Linux:Arch:EasyConnect ``` yay -S easyconnect sudo reboot sudo pacman -S lib32-gtk2 dbus-glib (sudo Exec=env LD_LIBRARY_PATH=/usr/share/sangfor/EasyConnect/oldlib/pango/usr/lib /usr/share/sangfor/EasyConnect/EasyConnect --enable-transparent-visuals --disable-gpu&) ``` 以下命令可能有用: ``` sudo /usr/share/sangfor/EasyConnect/resources/shell/sslservice.sh ``` ## Linux:Arch:Grub:timeout ``` sudo vim /etc/default/grub // GRUB_TIMEOUT = 0 sudo grub-mkconfig -o /boot/grub/grub.cfg ``` ## Linux:Arch:Pacman:"error:failed to update core (unable to lock database)" ``` rm -f /var/lib/pacman/db.lck ``` ## Linux:Arch:Pacman:initialze ``` echo [multilib]>> /etc/pacman.conf echo Include = /etc/pacman.d/mirrorlist>> /etc/pacman.conf echo [archlinuxcn]>> /etc/pacman.conf echo SigLevel = Optional TrustAll>> /etc/pacman.conf echo Server = http://mirrors.163.com/archlinux-cn/\$arch>> /etc/pacman.conf echo # Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/\$arch>> /etc/pacman.conf pacman -Syy pacman -S yay --noconfirm su arch yay --aururl "https://aur.tuna.tsinghua.edu.cn" --save ``` - 安装code server ``` yay -S code-server ``` - 手动更改源排名: ``` sudo pacman-mirrors -i -c China -m rank ``` ## Linux:Arch:Pacman:install zst ``` su cd /var/ca*/pac*/*/ cp ... /home cd /home tar -I zstd -xvf ..zst cp ... / -r ``` ## Linux:Arch:Pacman:overwrite ``` sudo pacman -S --overwrite '*' ... ``` ## Linux:Arch:Swap ``` su dd if=/dev/zero of=/swapfile bs=2M count=1024 status=progress chmod 600 /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile echo /swapfile none swap defaults 0 0 >> /etc/fstab ``` ## Linux:Arch:TTY:Mouse gpm必须使用多个参数启动,参数在/etc/conf.d/gpm文件中指定。 ``` su pacman -S gpm mkdir /etc/conf.d vim /etc/conf.d/gpm // 对于 USB 鼠标应该使用: // GPM_ARGS="-m /dev/input/mice -t imps2" // 对于 PS/2 鼠标,用下面这行替代已有的一行: // GPM_ARGS="-m /dev/psaux -t ps2" // 对于 IBM Trackpoints 使用: // GPM_ARGS="-m /dev/input/mice -t ps2" systemctl enable gpm systemctl restart gpm ``` ## Linux:Arch:TTY:auto login as root ``` sudo vim /usr/lib/systemd/system/getty@.service // ExecStart=-/sbin/agetty --noclear %I 38400 linux // 修改为: // ExecStart=-/sbin/agetty --noclear -a root %I 38400 linux ``` ## Linux:Arch:TTY:font size 参考: ``` su pacman -S terminus-font ls /usr/share/kbd/consolefonts/ter-* echo "setfont ter-c22b.psf"> ~/.bash_profile ``` ## Linux:Arch:TencentCloud ``` su mv arch* /arch.iso mount /arch.iso /mnt tree|grep vmlinuz tree|grep .img vim /boot/grub/grub.cfg set timeout=600 menuentry "Archlinux Live (x86_64)" { insmod iso9660 set isofile=/arch.iso loopback lo0 ${isofile} linux (lo0)/arch/boot/x86_64/vmlinuz-linux archisolabel=ARCH_202002 img_dev=/dev/vda1 img_loop=${isofile} earlymodules=loop initrd (lo0)/arch/boot/x86_64/initramfs-linux.img } reboot mount -o rw,remount /dev/vda1 cd /run/archiso/img_dev rm -rf [b-z]* mount /dev/vda1 /mnt echo Server = http://mirrors.aliyun.com/ArchLinux/\$repo/os/\$arch > /etc/pacman.d/mirrorlist echo Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/\$repo/os/\$arch >> /etc/pacman.d/mirrorlist cat /etc/pacman.d/mirrorlist pacstrap /mnt base linux-lts linux-firmware base-devel grub openssh intel-ucode vim man dhcpcd tree htop git python python-pip tigervnc screen adobe-source-han-sans-cn-fonts genfstab -U /mnt >> /mnt/etc/fstab arch-chroot /mnt ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime hwclock --systohc echo en_US.UTF-8 UTF-8 > /etc/locale.gen echo ch_CN.UTF-8 UTF-8 >> /etc/locale.gen locale-gen echo LANG=en_US.UTF-8 > /etc/locale.conf echo myhostname > /etc/hostname echo 127.0.0.1 tencent > /etc/hosts echo ::1 tencent >> /etc/hosts echo 127.0.1.1 tencent.localdomain myhostname >> /etc/hosts echo PermitRootLogin no >> /etc/ssh/sshd_config vim /etc/ssh/sshd_config ClientAliveInterval 3600 ClientAliveCountMax 6 useradd -m -g wheel arch passwd arch passwd echo root ALL=\(ALL\) ALL >> /etc/sudoers echo %wheel ALL=\(ALL\) NOPASSWD: ALL >> /etc/sudoers grub-install --target=i386-pc /dev/vda grub-mkconfig > /boot/grub/grub.cfg systemctl enable dhcpcd systemctl enable sshd echo [multilib]>> /etc/pacman.conf echo Include = /etc/pacman.d/mirrorlist>> /etc/pacman.conf echo [archlinuxcn]>> /etc/pacman.conf echo SigLevel = Optional TrustAll>> /etc/pacman.conf echo Server = http://mirrors.163.com/archlinux-cn/\$arch>> /etc/pacman.conf echo # Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/\$arch>> /etc/pacman.conf pacman -Syy pacman -S yay --noconfirm su arch yay --aururl "https://aur.tuna.tsinghua.edu.cn" --save yay -S code-server yay -S google-chrome exit reboot su pacman -S xorg-server xorg-xinit xfce4 network-manager-applet reboot pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple vim ~/.bashrc alias gg='reset && cargo build && cargo run' alias p='python' alias v='vim' alias l='ls' alias r='rm -rf' alias rm='rm -rf' alias gc='git clone' alias gp='git pull' alias sl='screen -ls' alias ss='screen -S' alias s='screen -x' alias vv='vim ~/.bashrc' alias i='sudo pacman -S' alias ir='sudo pacman -R' alias is='sudo pacman -Ss' alias iyu='sudo pacman -Syu' vncpasswd vncserver :1 ``` ## Linux:Arch:User:add ``` su useradd -m -g users -s /bin/bash arch passwd arch ``` ## Linux:Arch:User:switch ``` # su arch ``` ## Linux:Arch:clean pkg cache ``` sudo rm /var/cache/pacman/pkg/* ``` ## Linux:Arch:ignore GPG key ``` vim /etc/pacman.conf // SigLevel=Never rm -rf /etc/pacman.d/gunpg ``` ## Linux:Arch:package history ``` vim /var/log/pacman.log ``` 或者: ``` pacman -Qe ``` ## Linux:Arch:pacman 卸载 ``` sudo pacman -Rcns ... ``` 删除孤包 ``` sudo pacman -R $(pacman -Qdtq) ``` ## Linux:Arch:proxy ``` yay -S proxyman-git ~/.local/bin/proxyman set ~/.local/bin/proxyman unset ``` ## Linux:Arch:run on start ``` su cd /etc/systemd/system vim .service [Unit] Description=MongoDB Service [Service] ExecStart=/home/shine/0/mongodb-linux-x86_64-4.1.6/bin/mongod [Install] WantedBy=default.target systemctl start mongod.service systemctl enable mongod.service ``` ## Linux:CodeServer ``` yay -S code-server PASSWORD=... code-server --bind-addr 0.0.0.0:8081 ``` ## Linux:Debian:sshd:disable root login 禁止 Root 用户通过 SSH 登陆 ``` sudo vim /etc/ssh/sshd_config PermitRootLogin no sudo systemctl restart sshd ``` ## Linux:Download ``` axel -a -n 20 ... ``` ## Linux:Fedora:Clash Verge 白屏修复(Wayland) ``` sudo dnf install webkit2gtk4.1 sudo sed -i 's/Exec=clash-verge/Exec=env WEBKIT_DISABLE_DMABUF_RENDERER=1 clash-verge/' "$(find /usr/share/applications -iname '*clash*')" ``` ## Linux:Fedora:Code Server ``` curl -fsSL https://code-server.dev/install.sh | sh -s ``` ## Linux:Fedora:Gnome:Clash ``` vim ~/.local/share/applications/Clash.desktop [Desktop Entry] Exec=/home/shine/.runtime/Clash/cfw Icon=/home/shine/.runtime/Clash/Clash_Logo.png Name=Clash NoDisplay=false StartupNotify=true Type=Application ``` ## Linux:Kernel ## Linux:Path ``` export PATH="$PATH:/... ``` ## Linux:archive:zip multipart ``` zip -r -s 1g output.zip ... ``` ## Linux:file size ``` du -hs $(ls -A) ``` ## Linux:rar 解压 ``` unrar e ...rar ./dir/ ``` ## Linux:screen 新建 ``` screen -S 1 ``` 隐藏 ``` -- ``` 恢复 ``` screen -r ... ``` 列表 ``` screen -ls ``` 关闭 ``` screen -XS ... quit screen -XS ... kill ``` ## Luckypatchers ## Magisk ``` sudo vim /data/adb/modules/hosts/system/build.prop ro.ril.hsdpa.category=8 dalvik.vm.startheapsize=16m dalvik.vm.heapsize=48m #dalvik.vm.execution-mode=int:jit dalvik.vm.dexopt-flags=v=n,o=v dalvik.vm.checkjni=false ro.opengles.version=65536 ro.media.dec.jpeg.memcap=20000000 dalvik.vm.execution-mode=int:fast windowsmgr.max_events_per_sec=150 ro.min_pointer_dur=1 debug.sf.hw=1 video.accelerate.hw=1 wifi.supplicant_scan_interval=180 #pm.sleep_mode=1 ro.media.enc.jpeg.quality=100 ``` ## Markdown:Pandoc 下载地址: arm可在Arch仓库找到。 pandoc 默认生成三级目录。 ``` pandoc -s --toc FAQ.md -o FAQ.md // pandoc -s --toc --toc-depth=4 FAQ.md -o FAQ.md ``` ## NAS ``` pacman -S samba vim /etc/samba/smb.conf [global] workgroup = MYGROUP server string = Samba Server log file = /var/log/samba/log.%m max log size = 50 security = user passdb backend = tdbsam strict allocate = Yes allocation roundup size = 4096 read raw = Yes server signing = No write raw = Yes strict locking = No socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072 min receivefile size = 16384 use sendfile = Yes aio read size = 16384 aio write size = 16384 [readonly] comment = Directories path = /run/media/shine/Disk/Bandicam/ browseable = yes writable = no public = no [writable] comment = Writable path = /home/shine/0/ browseable = yes public = no writable = yes ``` ## Nodejs:cjs -> exe ``` npm i @vercel/ncc pkg -g ncc build ...cjs -o exePkg cd exePkg pkg .\index.cjs -t node16-win-x64 ``` ## Nodejs:npm:initialze ``` tar xvf *xz sudo cp -r node*x64/{bin,include,lib,share} /usr/ npm config set registry https://registry.npm.taobao.org/ ``` ## Nodejs:npm:vite:initialze ``` npm create vite@latest npm install --save vue-router@4 npm install npm run dev ``` ## Office365:Deactivate ``` cd C:\Program Files\Microsoft Office\Office16 cscript ospp.vbs /dstatus cscript ospp.vbs /unpkey:[last five characters of product key] ``` ## Onedrive:改善连接 ``` cd %systemroot%\system32\drivers sc query cldflt sc config cldflt start=auto ``` 重启 ## OpenWrt:PS5 远程游玩端口转发 - 设置 mac 的静态 IP 映射 ```bash uci add dhcp host uci set dhcp.@host[-1].mac='90:47:48:10:86:bc' uci set dhcp.@host[-1].ip='192.168.1.5' uci set dhcp.@host[-1].name='PS5' uci commit dhcp /etc/init.d/dnsmasq restart ``` - 端口转发 TCP/UDP 9295; UDP 9296, 9297, 9302 ```bash OPENWRT_HOST="192.168.1.1" uci add firewall redirect uci set firewall.@redirect[-1].name='PS5-9295-TCP' uci set firewall.@redirect[-1].src='wan' uci set firewall.@redirect[-1].src_dport='9295' uci set firewall.@redirect[-1].dest='lan' uci set firewall.@redirect[-1].dest_ip='${PS5_IP}' uci set firewall.@redirect[-1].dest_port='9295' uci set firewall.@redirect[-1].proto='tcp' uci set firewall.@redirect[-1].target='DNAT' " ssh -o StrictHostKeyChecking=no root@${OPENWRT_HOST} " uci add firewall redirect uci set firewall.@redirect[-1].name='PS5-9295-UDP' uci set firewall.@redirect[-1].src='wan' uci set firewall.@redirect[-1].src_dport='9295' uci set firewall.@redirect[-1].dest='lan' uci set firewall.@redirect[-1].dest_ip='${PS5_IP}' uci set firewall.@redirect[-1].dest_port='9295' uci set firewall.@redirect[-1].proto='udp' uci set firewall.@redirect[-1].target='DNAT' " ssh -o StrictHostKeyChecking=no root@${OPENWRT_HOST} " uci add firewall redirect uci set firewall.@redirect[-1].name='PS5-9296-UDP' uci set firewall.@redirect[-1].src='wan' uci set firewall.@redirect[-1].src_dport='9296' uci set firewall.@redirect[-1].dest='lan' uci set firewall.@redirect[-1].dest_ip='${PS5_IP}' uci set firewall.@redirect[-1].dest_port='9296' uci set firewall.@redirect[-1].proto='udp' uci set firewall.@redirect[-1].target='DNAT' " ssh -o StrictHostKeyChecking=no root@${OPENWRT_HOST} " uci add firewall redirect uci set firewall.@redirect[-1].name='PS5-9297-UDP' uci set firewall.@redirect[-1].src='wan' uci set firewall.@redirect[-1].src_dport='9297' uci set firewall.@redirect[-1].dest='lan' uci set firewall.@redirect[-1].dest_ip='${PS5_IP}' uci set firewall.@redirect[-1].dest_port='9297' uci set firewall.@redirect[-1].proto='udp' uci set firewall.@redirect[-1].target='DNAT' " ssh -o StrictHostKeyChecking=no root@${OPENWRT_HOST} " uci add firewall redirect uci set firewall.@redirect[-1].name='PS5-9302-UDP' uci set firewall.@redirect[-1].src='wan' uci set firewall.@redirect[-1].src_dport='9302' uci set firewall.@redirect[-1].dest='lan' uci set firewall.@redirect[-1].dest_ip='${PS5_IP}' uci set firewall.@redirect[-1].dest_port='9302' uci set firewall.@redirect[-1].proto='udp' uci set firewall.@redirect[-1].target='DNAT' " # 应用更改 uci commit firewall /etc/init.d/firewall restart ``` ## OpenWrt:开启 WAN 口远程访问 LuCI(不建议) 允许从外网访问路由器管理界面。 关闭 RFC1918 过滤(允许非私有 IP 访问): ``` ssh -o StrictHostKeyChecking=no root@192.168.1.1 "uci set uhttpd.main.rfc1918_filter='0' && uci commit uhttpd && /etc/init.d/uhttpd restart" ``` 添加防火墙规则,放行 WAN 口 80/443 端口: ``` ssh -o StrictHostKeyChecking=no root@192.168.1.1 "uci add firewall rule && uci set firewall.@rule[-1].name='Allow-LuCI-WAN' && uci set firewall.@rule[-1].src='wan' && uci set firewall.@rule[-1].proto='tcp' && uci set firewall.@rule[-1].dest_port='80 443' && uci set firewall.@rule[-1].target='ACCEPT' && uci commit firewall && /etc/init.d/firewall restart" ``` 跳过 LuCI 登录(移除 root 密码): ``` ssh -o StrictHostKeyChecking=no root@192.168.1.1 "passwd -d root" ``` 添加防火墙规则,放行 WAN 口 SSH(22 端口): ``` ssh -o StrictHostKeyChecking=no root@192.168.1.1 "uci add firewall rule && uci set firewall.@rule[-1].name='Allow-SSH-WAN' && uci set firewall.@rule[-1].src='wan' && uci set firewall.@rule[-1].proto='tcp' && uci set firewall.@rule[-1].dest_port='22' && uci set firewall.@rule[-1].target='ACCEPT' && uci commit firewall && /etc/init.d/firewall restart" ``` ## OpenWrt:雷神加速器插件(过时) 非官方教程 下载 openwrt 原版固件,nanopi R5s 下载地址: 启动后 ssh 连接并安装依赖: ``` ssh root@192.168.1.1 opkg update opkg install libpcap iptables kmod-ipt-nat iptables-mod-tproxy kmod-ipt-tproxy ipset curl luci-app-upnp opkg install luci-i18n-base-zh-cn reboot ``` 重启后在 LuCI 中勾选 "Start service" 启用 UPNP,保存并应用。 安装雷神插件(可多执行几次): ``` ssh root@192.168.1.1 cd /tmp sh -c "$(curl -fsSL http://119.3.40.126/router_plugin/plugin_install.sh)" ``` 避免不出现"雷神加速器"标签页: ``` opkg install luci-compat reboot ``` 重启后手动关闭再手动启动加速服务,手机端点击"安装"即可跳转到选择加速游戏界面。 ## PDF:去水印 ``` gswin64c -o ... -sDEVICE=pdfwrite -dFILTERVECTOR ... ``` ## Pandoc:md to docx ``` pandoc -o o.docx -f markdown -t docx i.md ``` ## Python:MongoDB ``` from pymongo import MongoClient MongoClient()[...][...].insert_one({"...":"...", ...}) MongoClient()[...][...].find({'...':{'$regex': '^%s' %context }}).count() MongoClient()[...][...].find_one({'...':{'$regex': '^%s' %context }})['...'] ``` ## Python:PIL ``` $ pip install Pillow from PIL import Image # 读取一张图片: im=Image.open('/home/Picture/test.jpg') # 显示一张图片: im.show() # 保存图片: im.save("save.gif","GIF") # 创建新图片: Image.new(mode,size) Image.new(mode,size,color) newImg = Image.new("RGBA",(640,480),(0,255,0)) newImg.save("newImg.png","PNG") # 查看图像信息: im.format, im.size, im.mode # 图片裁剪: box=(100,100,500,500) # 设置要裁剪的区域 region=im.crop(box) #此时,region是一个新的图像对象。 # 改变图像的大小: out=img.resize((128,128))#resize成128*128像素大小 ``` ## Python:pip3 镜像源 ``` pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple sudo python3 -m pip3 install --upgrade pip3 ``` ## Python:pysqlcipher3 ``` pacman -S sqlcipher pip3 install pysqlcipher3 ``` ## Python:set proxy ``` import os proxy = 'http://:@:' os.environ['http_proxy'] = proxy os.environ['HTTP_PROXY'] = proxy os.environ['https_proxy'] = proxy os.environ['HTTPS_PROXY'] = proxy #your code goes here ``` ## RPI:Manjaro:vnc ``` sudo pacman -S tigervnc vncpasswd //configure XDMCP - Modify /etc/lightdm/lightdm.conf sudo nano /etc/lightdm/lightdm.conf #in [LightDM] section #uncomment and set start-default-seat=false #in [XDMCPServer] section #uncomment and set enabled=true #uncomment port=177 //restart lightdm sudo systemctl restart lightdm //create /etc/systemd/system/tigervnc.socket sudo nano /etc/systemd/system/tigervnc.socket #paste in [Unit] Description=TigerVNC Server [Socket] ListenStream=5900 Accept=yes [Install] WantedBy=sockets.target //create /etc/systemd/system/tigervnc@.service sudo nano /etc/systemd/system/tigervnc@.service #paste in [Unit] Description=TigerVNC Per-Connection Daemon [Service] ExecStart=-/usr/bin/Xvnc -inetd -query localhost -geometry 1440x900 -once -SecurityTypes=None User=nobody StandardInput=socket StandardError=syslog //use systemctl to start and enable sudo systemctl start tigervnc.socket sudo systemctl enable tigervnc.socket //reboot sudo reboot ``` 以 ...:5900 登陆 ## Re ``` \n 匹配一个换行符。 \r 匹配一个回车符。 \s 匹配任何空白字符 \S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 \t 匹配一个制表符。 \v 匹配一个垂直制表符。 $ 匹配输入字符串的结尾位置。 * 匹配前面的子表达式零次或多次。 + 匹配前面的子表达式一次或多次。 . 匹配除换行符 \n 之外的任何单字符。 ? 匹配前面的子表达式零次或一次 ^ 匹配输入字符串的开始位置 : 指明两项之间的一个选择。 \b 匹配一个单词边界,即字与空格间的位置。 \B 非单词边界匹配。 eg: \b\S+ ``` ## Rust:Cargo ``` vim ~/.cargo/config [source.crates-io] replace-with = 'ustc' [source.ustc] registry = "git://mirrors.ustc.edu.cn/crates.io-index" ``` ## Rust:Cargo:Error ``` [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - The revocation function was unable to check revocation because the revocation server was offline.) ``` Windows: ``` set CARGO_HTTP_CHECK_REVOKE=false ``` ## Rust:Cargo:cargo-edit ``` cargo install cargo-edit cargo add cargo rm cargo upgrade ``` ## Rust:Rustup ``` // Windows set RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup // Bash export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup ``` ## Steam:Proton:Online ``` sudo ln -rsf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf ``` ## Steam:VAC - 关闭Steam ``` C:\Program Files (x86)\Steam\bin\SteamService.exe /repair bcdedit /deletevalue nointegritychecks bcdedit /deletevalue loadoptions bcdedit /debug off bcdedit /deletevalue nx bcdedit.exe /set {current} nx OptIn ``` - 重启电脑 ## VSCode:关闭侧边栏 ``` "editor.folding":false, "editor.glyphMargin": false, ``` ## Visual CPP 在bing上搜索visual c++可得: ## Waifu2x:图像放大 ## Wget ``` screen wget -r https://mirrors.sirung.com/source/fuchsia/ -c -np -T 5 -t 0 ``` ## Windows:APFS ## Windows:Microsoft Visual C++ Build Tools下载 解决Visual C++ 14.0 is required问题 下载: 参考: ## Windows:Onedrive在文件资源管理器关闭侧栏 ``` regedit:: 计算机\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6} :: System.IsPinnedToNameSpaceTree => 0 ``` ## Windows:Samba提示密码不正确 - secpol.msc -> “本地策略” –> “安全选项” -> 网络安全:LAN管理器身份验证级别,随便设置一个,确定 - regedit -> \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA -> 删除 LMCompatibilityLevel 键 - 重新连接 ## Windows:host ``` ipconfig /flushdns ``` ## Windows:powercfg 卓越性能 ``` powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61 ``` ## Windows:pppoe reconnect - 1.bat : ``` :start ping -n 2 114.114.114.114 | find "TTL=" >nul if errorlevel 1 ( rasdial rasdial ... ... ) timeout 5 goto:start ``` - 1.vbs : ``` set v=wscript.createobject("wscript.shell") v.run "C:\Users\Shine\runtime\1.bat /start", 0 ``` - regedit : 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run ## Windows:自动同步时间 管理员状态在CMD: w32tm /register 在“服务”中找到“Windows Time”项,设置为自动启动,并启动服务。 在“计划任务”中新建计划任务,以最高权限运行: w32tm /resync ## Youtube:youtube-dl ``` with installed: ffmpeg, aria2c, python to install this: pip install youtube-dl youtube-dl -x --audio-quality 0 --audio-format m4a --external-downloader aria2c --external-downloader-args '-x 16 -s 16' --proxy http://127.0.0.1:3359 "...(url)" ``` ## ffmpeg:compress ``` import os for i in os.listdir(): os.system('ffmpeg -y -i "%s" -vcodec h264 -acodec aac "/Users/shine/Desktop/%s"' %(i, i)) ``` ## ffmpeg:cut ``` ffmpeg -ss 00:01:00 -i ...mp4 -o 00:02:00 -c copy o.mp4 ``` ## ffmpeg:flac:m4a ``` ffmpeg -i ... -c:a alac -c:v copy ... ``` ``` #!/bin/zsh DIRECTORY=$1 for filename in "$DIRECTORY"/*.flac do ffmpeg -i "$filename" -c:a alac -c:v copy "${filename%.*}.m4a" done ``` ## ffmpeg:mp4 -> aac ``` import os import shlex def extract_audio(folder_path): # 获取文件夹中所有的视频文件 videos = [os.path.join(folder_path, f) for f in os.listdir(folder_path) if f.endswith(('.mp4', '.mkv', '.avi', '.mov', '.flv'))] # 遍历每个视频文件并提取音频 for video in videos: # 使用 ffmpeg 提取音频 output_file = os.path.splitext(video)[0] + '.aac' os.system(f"ffmpeg -i {shlex.quote(video)} -vn -acodec copy {output_file}") print('音频提取完成!') if __name__ == '__main__': folder_path = input('请输入文件夹路径:') extract_audio(folder_path) ``` ## ffmpeg:下载m3u8 ``` ffmpeg -i https...m3u8 -c copy -bsf:a aac_adtstoasc o.mp4 ``` ## ffmpeg:抽帧 ``` ffmpeg -i file.mpg -r 1/1 $filename%03d.bmp ``` ## macOS:Brew ## macOS:Console:wifi ``` networksetup -listallhardwareports networksetup -setairportnetwork en... ... ... ``` ## macOS:Fish ```zsh echo (which fish) | sudo tee -a /etc/shells chsh -s (which fish) ``` ## macOS:Fish:网络代理 `vim ~/.config/fish/config.fish` ```fish # proxy.fish function proxy set -gx https_proxy http://127.0.0.1:7890 set -gx http_proxy http://127.0.0.1:7890 set -gx all_proxy socks5://127.0.0.1:7890 echo "Proxy enabled" end # proxy_off.fish function proxy_off set -e https_proxy; set -e http_proxy; set -e all_proxy echo "Proxy disabled" end ``` ## macOS:Gemini-cli ```fish /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install node@24 fish_add_path /opt/homebrew/opt/node@24/bin npm config set registry https://registry.npmmirror.com -g npm install -g @google/gemini-cli ``` ## macOS:avoid sleep ``` su pmset -a sleep 0; pmset -a hibernatemode 0; pmset -a disablesleep 1; pmset -a displaysleep 0; pmset -a autopoweroffdelay 0; pmset -a autopoweroff 0 pmset -g ``` ## macOS:zprofile ``` vim ~/.zprofile alias p='python3' alias v='vim' alias l='ls' alias r='rm -rf' alias rm='rm -rf' alias gc='git clone' alias gp='git pull' alias sl='screen -ls' alias ss='screen -S' alias s='screen -x' alias vv='vim ~/.zprofile' alias i='brew install' alias ir='brew uninstall' alias is='brew search' alias sshh='ssh ' ``` ## macOS:修复应用“已损坏” ```fish alias fix="xattr -d com.apple.quarantine" ``` ## macOS:免密 Sudo 核心指令 ```zsh # 为当前用户创建免密 sudo 配置文件 (以用户 shine 为例) echo "shine ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/shine sudo chmod 0440 /etc/sudoers.d/shine ``` ## macOS:删除开机界面上的其他用户登陆选项 执行如下命令后重启: ``` sudo defaults write /Library/Preferences/com.apple.loginwindow SHOWOTHERUSERS_MANAGED -bool FALSE ``` ## macOS:挂载NTFS ```zsh python3 -m pip install --upgrade pip pip3 install ezntfs brew tap gromgit/homebrew-fuse brew install --cask macfuse brew install ntfs-3g-mac ``` 手动安装 ,从关机状态长按电源键进入恢复模式,允许扩展。 需挂载时: ```zsh /Users/shine/Library/Python/3.9/bin/ezntfs all ``` ## macOS:移除应用隔离属性 对于从互联网下载的应用,macOS 会添加隔离属性(quarantine attribute)。如果应用无法打开,可以尝试移除该属性: ``` xattr -d com.apple.quarantine ... ``` 如果需要递归移除整个应用包内的隔离属性: ``` xattr -rd com.apple.quarantine ... ``` ## ssh:without password - client ``` ssh-keygen -t rsa scp id_rsa.pub ...@...:~/ ``` - host ``` cd mkdir ~/.ssh cat ~/id_rsa.pub >> .ssh/authorized_keys rm ~/id_rsa.pub ``` ## 华为路由器 TC7001 中继 WiFi 切换 脚本位置: `Scripts/wifi_huawei_TC7001_repeater_api.py` 纯 API 方式切换华为路由器 TC7001 的中继 WiFi,无需浏览器。 ## 在线工具:解压 ## 大学习:跳过视频 执行两遍: ``` player.play({vid:'k3326hehdb0'}) ``` ## 抓取:NeteaseMusic:title 在控制台中键入 ``` var importJs=document.createElement('script') importJs.setAttribute("type","text/javascript") importJs.setAttribute("src", 'http://ajax.microsoft.com/ajax/jquery/jquery-1.4.min.js') document.getElementsByTagName("head")[0].appendChild(importJs) console.log("如果遇到错误,可能是jQuery尚未加载完成;如果复制的结果为空,请先在检查元素中点击一下歌曲名(刷新页面后点击一次即可)。请重新执行该脚本"); var v=[]; var name=""; var author=""; $("b").each(function(i, i2){ name= $(this).attr("title") author= $(this).parents("td").next().next().children("div").attr("title") v.push(name+" "+author); }); var v2 = v.join("\n"); console.log(v2) console.log("以上内容将被复制到剪贴板") $('