Artix Linux Note
dwm中启用中文输入法,修改.xinitrc文件
export GTK_IM_MODULE=fcitx
export GTK2_IM_MODULE=fcitx
export GTK3_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export XIM_PROGRAM=fcitx
export XIM=fcitx
export QT_IM_MODULE=fcitx
fcitx -d
exec dwm
dwm,dmenu
alt+p 打开dmenu
alt+shift+c关闭当前窗体
alt+shift+enter 打开一个终端窗体
alt+shift+q 退出dwn
alt+T 平铺窗体
alt+M 独立窗体
alt+[n] 切换虚拟工作区
alt+shift+[n]将当前主窗体移动到工作区n(不切换虚拟窗口)
alt+i/d 切换主窗体和子窗体之间的布局(垂直/水平)
alt+shift+space 变换窗体大小
alt+mouse1 悬浮窗体拖拽
alt+l 增加主窗体大小
alt+h 减少主窗体大小
alt+j 切换到下一个窗口
alt+k 切换到上一个窗口
surf
^g 打开网站
^h 返回
^l 前进
tmux
^b + [%,"] 分割窗体
^b + x 关闭子窗体
^b + d detach窗体
^b + z 最大化当前窗体/还原
tmux ls 显示会话列表
tmux a -t [n] attach窗体
^b + $ 重命名
tmux kill-session -t [n]
tmux kill-session [session-name]
取消扬声器静音,可加入/etc/rc.local中,这样启动后扬声器默认就不会静音了
amixer -c 0 sset 'Master',0 60%,100% unmute
禁用自动休眠
xset s off -dpms
解锁sudo账户多次密码失败后被锁定
faillock --user $(`whomai`) --reset
pacman常用命令
pacman -Sy [package_name] 直接安装包
pacman -S 安装包,需确认
pacman -Syu 升级(谨慎使用,由于不支持版本回滚,可能导致更新后个别软件无法使用)
pacman -Ss 查询包
pacman -Q 显示所有已安装的软件 -Qq 不显示版本号
pacman -Qs 在已安装的包中查询
pacman -Qe 查询自己安装的包 -Qeq 不显示版本号
pacman -Qdt 查询所有孤儿软件,不再被需要(不一定,根据实际情况自行决定) -Qdtq 不显示版本号
sudo pacman -Rscn $(pacman -Qdtq) 删除所有孤立的包
pacman -R 删除包的同时,保留依赖关系
pacman -Rns <pkg> 删除软件,包括<pkg>所有的依赖和<pkg>的全局配置文件
pacman -U _/path/test.tar.xz_ 从本地安装
pacman -U http://example.com/test.tar.xz 从远程安装第三方包
md5sum使用方法
md5sum -c [file_containing-hashes] 直接比对当前目录中文件和文件hash
md5sum -t [text-file] 显示文本文件hash
md5sum -b [binary-file] 显示二进制文件hash
md5sum [filename] > [file-containing-hashes 生成hash文件
linux usb live create
dd bs=4M if=path/test.iso of=/dev/sdx conv=fsync oflag=direct status=progress
修改sudo权限
sudoedit /etc/sudoers
%sudo ALL=(ALL:ALL) ALL
彻底禁用ipv6
sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet ipv6.disable=1"
update-grub
安装dnscrypt-proxy
sudo pacman -Sy dnscrypt-proxy
sudo pacnan -Sy dnscrypt-proxy-runit
sudo ln -s /etc/runit/sv/dnscrypt-proxy /run/runit/service/
sudo sv start dnscrypt-proxy
pass with gnupg
gpg --full-generate-key
gpg --list-key
pass init [gpg-id] #初始化pass
pass insert [account] #添加账户
pass edit [account] #直接编辑密码文件
pass -c [account] #拷贝密码到剪贴板
移除所有元数据
exiftool -r -overwrite_original -P -all= *.jpg *.jpeg *.JPG
修改图片大小
convert test.jpg -resize 600 result.jpg
设置静态ip地址,你可以写成脚本,并加入/etc/rc.local中,或直接添加进去也可以,rc.local中的脚本默认都是root权限
ip link set eth0 up
ip addr add 192.168.50.129/24 broadcast 192.168.50.255 dev eth0
ip route add default via 192.168.50.1
删除接口配置信息
sudo ip address flush eth0
git clone出现failed to connect localhost proxy错误,重置代理即可
git config --list 显示当前git代理配置
git config --global --unset http.proxy
git config --global --unset https.proxy
git config --global --unset socks.proxy
mupdf常用快捷键
space 下一页
b 上一页
123g 前往123页
g,G 前往第一页/最后一页
m 将当前也存入快照
t 从快照列表中pop
[0-9]m 数字寄存器
[0-9]t
+,- 放大缩小页面
W,H 适应最大宽度或高度
Z 最大宽或高窗体
z 重置缩放
w 裁减窗体来适应页面
f 全屏
/,? 向后或向前搜索文本
n,N 向后或向前匹配下一个的结果
<,> 修改字体大小
c 彩页和灰度渲染切换
C 全部彩页
I 反色/普通切换
pip常用命令
pip list #显示所有python安装的包
pip list -o #查看可升级的包
pip freeze #显示使用pip安装的包
pip uninstall [pkg-name] #移除包
pip install [pkg-name] #安装包
pip install --upgrade [pkg-name] #升级包
pip show [pkg-name] #显示安装包信息
pip3 install --upgrade pip #升级pip3(python3)
pip install --upgrade pip #升级pip(python2)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple #将镜像站写入配置文件
pip install [pkg-name]==[version-number] #指定版本安装
dnssec hardened
#sudo vi /etc/dnscrypt-proxy/dnscrypt-proxy.toml
doh_servers = false
require_dnssec = true
force_tcp = true
timeout = 1000
blocked_query_response = 'refused'
dnscrypt_ephemeral_keys = true
block_ipv6 = true
skip_incompatible = true
direct_cert_fallback = false
dnscrypt-proxy 无返回值修复
禁用windows dns client服务
对dnscrypt-proxy的.md服务器列表文件链接修改为github的加速镜像地址
设置系统时间(不建议与Internet时间同步),将系统时间同步到BIOS
sudo date -s '2022-01-01 13:40:00'
sudo hwclock --systohc
搜索引擎查找技巧
intitle:*.invidious* inurl:*/feed/trending
无线键盘信号差导致的断续问题解决
找到无线键盘电路板的天线位置,用刀片刮开天线上方的绿油,然后接一小段导线,并将导线裸露在键盘外壳的外面
修复显示器分辨率永久化
--filename:screenset.sh--
#!/bin/bash
sleep 1
xrandr -s 1920x1080_60
#打开.xinitrc文件,在"exec dwm"之前加一行下面的内容
~/path/screenset.sh &
控制台登录后自动打开窗口系统,打开用户主目录下的隐藏文件.bash_profile,在后面加入下面内容
if [ -z "$DISPLAY" ] && [ -n "$XDG_VTNR" ] && [ "$XDG_VTNR" -eq 1 ]; then
exec startx
fi
无线网卡自动连接设置
wpa_passphrase [your ssid] [password]
##生成下面的字符串
network={
ssid="test_ssid"
#psk="12345678"
psk=84432da3f4cb39258f16093b24a5e4f4cb841bbe81b221b93e710e9ff2a63ae9
}
##追加到下面的文件中
/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/run/wpa_supplicant
update_config=1
network={
ssid="test_ssid"
#psk="12345678"
psk=84432da3f4cb39258f16093b24a5e4f4cb841bbe81b221b93e710e9ff2a63ae9
}
无线网卡ip地址和mac地址随机化静态分配,mac地址部分使用shell来生成。之后再调用macchanger的-m参数
#!/bin/sh
function usage()
{
echo "need root priority"
echo "usage:"
echo " maybe multi times to success!"
echo " wlan0 192.168.1[net address]"
exit -1
}
[ `id -u` != 0 ] && usage
NET_ADDR=""
HOSTNUM=$(($RANDOM%254+2))
MAC_ADDR=`echo $RANDOM|md5sum|sed 's/../&:/g'|cut -c 1-17`
function rnd_ip_mac()
{
killall wpa_supplicant
ip link set wlan0 down
macchanger -m ${MAC_ADDR} wlan0
ip addr flush dev wlan0
wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
ip addr add ${NET_ADDR}.${HOSTNUM}/24 broadcast ${NET_ADDR}.255 dev wlan0
ip link set wlan0 up
ip route add default via ${NET_ADDR}.1
}
if [ $# == 1 ]; then
NET_ADDR=`echo $1|grep -x -E "([0-9]{1,3}\.){2}[0-9]{1,3}"`
if [ "${NET_ADDR}" == "" ];then
usage
fi
rnd_ip_mac
else
usage
fi
简单的网络警犬(a simple watch dog)
#!/bin/sh
while :;
do
clear
echo "Network Monitor is Running..."
DATA=$(ss -tap|grep EST|grep -E "\"sh\",|\"bash\",|\"perl\",|\"openssl\",|\"nc\",|\"netcat\",|\"ssh\",|\"socat\",|\"awk\",|\"ncat\","
TS=$(date '+%Y-%m-%d %H:%M:%S')
if [ "${DATA}" != "" ];then
echo "Intrusion discovered!"
echo "${DATA}${TS}" >> network_monitor.log
echo ${DATA}|awk -F= '{print $2}'|awk -F, '{print $1}'|xargs -I % sh -c 'kill -9 % 2>/dev/null'
speaker-test -t sine -f 1000 -l 1 >/dev/null
fi
sleep 3
done
dns解析脚本
#!/bin/sh
TEMPFILE=/tmp/iplist
> ${TEMPFILE}
xclip -o 2>/dev/null|grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" > ${TEMPFILE}
xclip -i < /dev/null
function usage()
{
echo "usage:"
echo " getdns (read from clipboard or yourself isp address)"
echo " getdns <domain_name|ip address>"
exit -1
}
if [ $# == 0 ];then
CNT=$(cat ${TEMPFILE}|wc -l)
if [ ${CNT} != 0 ];then
cat ${TEMPFILE}|sort|uniq|xargs -I % sh -c 'curl -s http://ipinfo.io/%' > /tmp/getdns.log
less /tmp/getdns.log
exit -1
else
curl -s http://ipinfo.io/json
exit -1
fi
fi
if [ $# == 1 ]; then
IP=$(echo ${1}|grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" )
if [ -n " ${IP}" ]; then
curl -s http://ipinfo.io/${IP}
exit -1
elif [ ${1} == '-h' ]; then
usage
else
dig ${1}|grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" |grep -v 127.0.0.1|awk '{print $5}'|xargs -I % sh -c 'curl -s http://ipinfo.io/%'
exit -1
fi
fi
一句话听歌
#!/bin/sh
while :; do clear;echo "q:next,^c:exit";curl -s https://free.wqwlkj.cn/wqwlapi/wyy_random.php|grep "\"url\":"|awk -F\" '{print $4}'|xargs -I % sh -c 'mpv --really-quiet %';sleep 1;done
#!/bin/sh
while :; do clear;echo "q:next,^c:exit";curl -s "https://api.uomg.com/api/rand.music?sort=热歌榜&format=json"|awk -F\" '{print $12}'|xargs -I % sh -c 'mpv --really-quiet %';sleep 1;done
#!/bin/sh
while :; do clear;echo "q:next,^c:exit";mpv --really-quiet https://api.vvhan.com/api/wyMusic/热歌榜;sleep 1;done
一句话看美女
#!/bin/sh
while :; do clear;echo "q:next,^c:exit";curl -s -I https://www.cunshao.com/666666/api/web.php?t=${RANDOM}|grep '^location'|awk -F. '{print "https://www.cunshao.com/666666/api"$2".mp4"}'|xargs -I % sh -c 'mpv --really-quiet %';done
有线网卡ip地址和mac地址随机化静态分配
MAC_ADDR=`echo $RANDOM|md5sum|sed 's/../&:/g'|cut -c 1-17`
NET_ADDR="192.168.30"
HOSTNUM=$(($RANDOM%254+2))
ip link set eth0 down
macchanger -m${MAC_ADDR} eth0
ip addr flush dev eth0
ip addr add ${NET_ADDR}.${HOSTNUM}/24 broadcast ${NET_ADDR}.255 dev eth0
ip link set eth0 up
ip route add default via ${NET_ADDR}.1
天干地支的计算
4 5 6 7 8 9 0 1 2 3
'甲','乙','丙','丁','戊','己','庚','辛','壬','癸'
#根据年尾数找天干,比如1991年,尾数为1,所以天干为辛
1 2 3 4 5 6 7 8 9 10 11 12
'寅','卯','辰','巳','午','未','申','酉','戌','亥','子','丑'
#地支的计算公式 (年份+7)%12,如果余数为0,则地支为丑,否则就是余数对应的位置
#比如1991年的地支 (1991+7)%12=6,所以是未
屏幕亮度调节
sudo echo 2 > /sys/class/backlight/acpi_video0/brightness
批量字符串修改
for i in `ls -1d ~/bin/pycode/cdt_html/*.html`
do
sed -i 's/.\/cdt_html\//..\/cdt_html\//g' ${i}
echo "${i}字符串修改完成!"
done
屏幕截图,图片查看,文件管理
scrot
pqiv
thunar
ranger
在终端中显示ASCII艺术文字
echo ascci_file.txt|gzip|base64
base64 -d <<<"base64_string"|gunzip
vpngate bash script
#!/usr/bin/env bash
WORK_DIR=$(dirname $0)
VPN_TEMP=${WORK_DIR}/vpngate_temp
OVPN_TEMP=${WORK_DIR}/wosvpn.ovpn
clear
echo -e "\033[96;40m"
base64 -d <<< "H4sIAAAAAAAAA0WNuw3AQAxC+0jZgTaVt0lliUU8fACfFPt+fiAOJE7RtVemH5r6fV9odarURJcdg8MNTUfTYOSPUB1FBO00W8NRYnzggOMXfqEVxZurhztDH1pTxvoVWVpIdNnvYTmSsWdTfvcHKXdBoPMAAAA="|gunzip
echo -e "\033[0m"
if [ ! -f /usr/local/sbin/fping ];then
echo "please install fping first"
exit -1
fi
function updatevpn()
{
echo -e "\033[96;40m"
echo "update database..."
curl -s -x http://127.0.0.1:7890 http://www.vpngate.net/api/iphone/ > /tmp/vpngate_temp
cat /tmp/vpngate_temp |grep -v "#"|awk -F, '{print $2}'|xargs -I % sh -c 'fping -c1 -t500 %'|grep bytes|awk '{print $1,$6}'|sort -k2 -g|uniq|awk '{print $1}'|xargs -I % sh -c 'cat /tmp/vpngate_temp|grep %'|sort|uniq > ${VPN_TEMP}
echo "update complete!"
echo -e "\033[0m"
}
if [ $# == 1 ]; then
if [ ${1} == '-u' ]; then
updatevpn
fi
fi
while IFS= read -r line
do
echo "${line}"|awk -F, '{print $15}'|base64 --decode 2>/dev/null > ${OVPN_TEMP}
sudo openvpn --persist-key --connect-timeout 4 --connect-retry-max 2 --config ${OVPN_TEMP}
sleep 1
done < ${VPN_TEMP}
chromium startup arguments optimization
sh -c 'chromium --disable-hang-monitor --disable-prompt-on-repost --disable-background-networking --disable-sync --disable-translate --disable-web-resources --disable-client-side-phishing-detection --disable-component-update --disable-default-apps --disable-zero-browsers-open-for-tests --test-third-party-cookie-phaseout --js-flags=--noexpose_wasm --disable-webgl --disable-http2 --proxy-server="socks5://127.0.0.1:7891" 2>/dev/null &'
chromium privacy Addon recommend
BP Privacy Block All Font and Glyph Detection (some js video play maybe corrupt)
Canvas Blocker - Fingerprint Protect
Chromium Web Store
Decentraleyes
WebRTC Network Limiter
Tampermonkey
random timezone
export TZ="$(ls -1d /usr/share/zoneinfo/*/*|sed 's/\/usr\/share\/zoneinfo\///g'|shuf -n 1)"
python and node tips
python -c "import urllib.parse;print(urllib.parse.unquote(\""${STRTMP}"\"))"
node -e 'require("'${JSPATH}'").func1("'${SIG}'")'
a script test ProxiTok Instance Available
curl -x http://127.0.0.1:7891 -s https://raw.githubusercontent.com/pablouser1/ProxiTok/master/instances.json|grep clearnet|awk -F\" '{print $4}'|xargs -P8 -I {} sh -c 'curl -x http://127.0.0.1:7891 -s {}tag/comedyvideo|grep stream >/dev/null && echo {}'
使用SSH作为socks5代理
ssh -D 127.0.0.1:7891 -q -T -x -a -k -C -N username@domain.com
-D 1337: open a SOCKS proxy on local port :1337. If that port is taken, try a different port number. If you want to open multiple SOCKS proxies to multiple endpoints, choose a different port for each one.
-C: compress data in the tunnel, save bandwidth
-q: quiet mode, don’t output anything locally
-N: do not execute remote commands, useful for just forwarding ports
chromium startup execute clearBrowserData
put "chrome://settings/clearBrowserData" into startup "Open a specific webpage or set of webpages"