之前零零散散写过一些经验分享的文章,不系统,对读者也不友好。现在整理到一块,随时更新,如果值得深入还可以单独写文章。主要针对自由/开源软件,也可能涉及科学软件、商业软件。

目标:今年整理50条在中文圈里稀罕的小技巧。

2017-12-20 Update: 跌跌撞撞,我写完了50条经验。

2018-01-03 Update: 进行了归类,想办法转载看能不能收获更多访问。

一句话系列的另外两篇:我的一句话经验——Emacs Lisp篇一句话系列——冷知识篇

*NIX世界命令行使用技巧

主要是使用和写脚本的经验,带例子。

  1. Grep可以用--include="*.md"指定搜索的文件类型,比如grep Chris -r . --include="*.md",在当前目录递归的检索*.md文件中的“Chris”。

  2. 7-Zip的-r会递归的在目录里搜索指定的路径,而不是我们期望的在指定目录中递归,所以不要用。详解

  3. 多进程使用下载工具wget的方法:cat /tmp/url.txt | xargs -n 1 -P 8 wget -c;url.txt里一行一个地址,-P 8表示最多同时运行8个进程,相比加&后台运行的方法可以指定进程数。更好的方法是用parallel,例子见下面。

  4. *NIX世界的cut命令很好用,有时候比正则好用,而且可以写一些比较“dirty”的代码。

  5. Bash中如果要实现某条指令成功后再并行运行几条命令,可以这样写:echo && { sleep 12 & sleep 12 & }; wait; echo && { sleep 12 & sleep 12 &};

  6. grep -o可以只显示匹配的部分。

  7. 将URL保存到文件后用wget的-i参数批量下载,比如wget -i ./list.txt

  8. Linux里有一个/usr/bin/timeout命令可以让程序超时退出,用法是/usr/bin/timeout 1m ts,就是执行1分钟后就kill掉,在写cron命令时很方便。如果没有这个命令,对于Debian系列的系统可以安装名为timeout的包。来源

  9. date +%j可以告诉你今天是一年中的第多少天,对于算天数非常有用。date的手册

  10. 写Bash脚本的好参考:

  1. Bash里我觉得最有用也最不容易记住的是变量替换

  2. 上面的第二个链接告诉我们单引号''不会做替换,而双引号""会替换。我们一般写sedawk命令都用单引号,就是不希望我们的代码被替换,可有时候我恰恰需要替换,这时候换用双引号就好了,请看示例代码

1
2
Etdl=$(grep "FINAL SINGLE POINT ENERGY" /data/qm/B97-3c/a.out | tail -n1 | awk '{print $(NF)}')
sed "s/^\([^ ]*\)/\1\t${Etdl}/" /tmp/a

演示了如何把内容附加到每行后面。

  1. 从第三行输出文件内容可以用awk实现:awk 'NR>=3' "aaa.xyz"

  2. GNU Parallel并行执行命令很方便,一些实例

1
2
3
parallel echo {} + 1 is {= '$_++' =} ::: {1..10}
time parallel -N0 -j4 sleep 1 ::: {1..10}
ls | parallel 'cd {}; grep Chris *.out'

注意,parallel会把你的输入放到命令行里,所以上面的命令如果不加-N0会睡很长时间。另外parallel在Android的termux环境中需设置环境变量PARALLEL_SHELL

  1. Linux的字符终端(TTY)可以旋转,方法是
1
echo 1 | sudo tee /sys/class/graphics/fbcon/rotate_all

注意下面这种写法不行。

1
sudo echo 1 > /sys/class/graphics/fbcon/rotate_all
  1. Bash里<()的含义是:括号内的代码的输出被重定向到一个文件/dev/fd/63。执行cat <(ls)就得到了ls的输出,执行echo <(ls)得到了文件名。这个/dev/fd/63是一个命名管道(named pipe),一切皆文件嘛,就当一个文件使。参考

  2. 对于v1.06以上版本的GNU bc,设置BC_LINE_LENGTH可以控制自动断行的特性,例子

1
BC_LINE_LENGTH=0 bc -l <<< "scale = 100; a(1) * 4"
  1. 上一条技巧里的<<<是“Here Strings”,Bash等shell才有,sh里没有,bc -l <<< "scale = 100; a(1) * 4"等价于echo "scale = 100; a(1) * 4" | bc -l,但前者速度快很多。参考。测速代码
1
2
time for i in {1..10000}; do echo "" | : ; done # 84s
time for i in {1..10000}; do : <<< ""; done # 5s
  1. echo不读sdtio,所以echo <<< $'Hello\nWorld'没输出,这时候应该用cat <<< $'Hello\nWorld'

  2. 除了nohupsetsid也可以在不受登出影响在后台运行程序。参考

  3. 批量后缀名修改:find . -name "*.txt" -exec rename .txt .md {} \;,把所有的*.txt替换为*.md,包括子目录的文件。注意这里用到了rename命令,来自util-linux包。

  4. 批量添加后缀:find . -type f -exec bash -c 'mv $0 $0.txt' {} \;。批量删除后缀:find . -type f -exec bash -c 'mv $0 ${0%.*}' {} \;来源

  5. sort命令其实非常强大,比如对一个「表格」进行排序:

1
2
3
4
5
6
7
8
$ cat a.txt
张三 96
李四 60
王二 100
$ sort -k2 -n a.txt
李四 60
张三 96
王二 100

这里是根据第二列的值对行进行排序。我以前只知道sort可以行排序,现在会根据指定的列排序,用Excel的理由又少了一个。

  1. 接上面一条,Coreutils里的join可以连接表格,比如
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$ cat a.txt
姓名 成绩1
张三 90
李四 80
王二 100
$ (head -n 1 a.txt && tail -n +2 a.txt | sort) > a.txt.sorted
$ cat a.txt.sorted
姓名 成绩1
李四 80
王二 100
张三 90
$ cat b.txt
姓名 成绩2
张三 92
李四 90
王二 90
$ (head -n 1 b.txt && tail -n +2 b.txt | sort) > b.txt.sorted
$ cat b.txt.sorted
姓名 成绩2
李四 90
王二 90
张三 92
$ join a.txt.sorted b.txt.sorted > c
$ cat c
姓名 成绩1 成绩2
李四 80 90
王二 100 90
张三 90 92

上面的代码还演示了如何在排序的时候保留第一行。更多的解释请看join的手册

  1. 可以用awk进行「转置」,把列变成行,方法是设置ORS,控制的是输出的间隔符,设为空格就把列连接起来了。比如用上面的数据,对第一列进行转置,借助Emacs的M-|,代码是:
1
awk 'BEGIN{ORS=" "} {print $1}'
  1. 比如我有一列姓名,我想知道每个人出现的次数,怎么办呢?实例输入文件如下:
1
2
3
4
5
李四
王二
张三
李四
李四

可以借助sort和uniq再加上awk很方便的进行处理:`sort | uniq -c | sort -k1 | awk ‘{print $2 “\t” $1}’,结果如下:

1
2
3
王二	1
张三 1
李四 3
  1. 如何只复制指定的文件并且保留文件夹结构:
1
rsync -rv E5internet:/tmp/screening/ /tmp/ --include="*/" --include="a.xyz" --exclude="*"
  1. 似乎rsyncscp快。注意是rsync而不是syncrsync显示速度可以加--info=progress2

  2. 保留一些文件,删除其他所有文件find . -type f -not -name 'a.xyz' -delete

  3. 批量生成MD5校验的方法:find /data/ -type f -exec md5sum {} \; > /tmp/list.txt来源

  4. 批量校验MD5的方法:ls -d */ | parallel -j1 'pushd {} && md5sum -c MD5.txt'

  5. 找大文件并且显示文件大小:find . -size +100M -exec du -h {} \; | sort -k1hr

  6. awk '/^>./ {printf("\n%s\n", $1)} ! /^>./ {printf("%s", $1)}' unigene.fasta > unigene.fasta.nonewline

  7. 对目录按大小排序:du -h -d 1 | sort -k1hr

  8. Arch Linux滚动更新后,强制装载新的USB驱动,不拔优盘直接起效。当然最简单的方法是重启。来源

1
2
3
4
sudo modprobe -r usb-storage
sudo modprobe -S 5.0.5-arch1-1-ARCH -f usb-storage
sudo sh -c "echo 0 > /sys/bus/usb/devices/2-14/authorized"
sudo sh -c "echo 1 > /sys/bus/usb/devices/2-14/authorized"
  1. 成对替换可以用Coreutils里的tr,比如tr 'abcd' 'jkmn',缺点是不支持UTF-8,遇到中文就完蛋。这个需求可以用sed实现,比如sed 'y/“”/「」/'来源

  2. 显示文件某一行:sed -n 233p a.txt,注意要加p。如果要批量可以结合GNU Parallel,比如

1
parallel 'sed -n {}p a.txt' ::: 2 3 4
  1. 创建指定格式的目录:echo {37..38}- | xargs mkdir -p

  2. 原来sed -i才能直接编辑文件,不加这个是输出替换后的文件。

自由/开源软件使用经验

  1. 对于大规模的搜索,简单的把grep命令换成ag (当然前提是安装了这个软件),可以大幅加速搜索速度。还有一个最新的软件ripgrep,据称比ag (The Silver Searcher)更快。

  2. Fontconfig的配置文件推荐放在~/.config/fontconfig/fonts.conf里,放在别处是废弃的用法,可能导致出错。

  3. Cron脚本不执行的一个可能的原因:Cron脚本不能包含后缀名,如果你不确定写的对不对,可以用run-parts --test /etc/cron.monthly/测试一下。askubuntu上的解答

  4. Markdown中,用#.代表编号只在pandoc中支持,不要期望它在其他地方获得支持,对于非pandoc的情况用传统的1.是正道。

  5. Shadowsocks在服务端打开一次性认证的方法是在配置文件中加入"auth":true详解

  6. MPV如果要批量播放视频,可以在视频所在目录里运行mpv *

  7. 可以用ffmpeg合并视频,一个例子是:

1
ffmpeg -i "Cloud.Atlas.2012.RUS.Blu-Ray.1080p.AC3.x264.mkv" -i "Cloud.Atlas.2012.English.Audio.AC3.DD5.1.448K.Angrybirdy@CHD.ac3" -c copy -map 0:0 -map 1:0 out.mkv
  1. ffmpeg合并字幕并且设为默认
1
ffmpeg -i in.mp4 -i in.srt -c copy -disposition:s:0 default out.mkv

来源

  1. 正确的用ffmpeg截取视频的方法:
1
ffmpeg.exe -ss 1:8:57 -i "阿凡达 Avatar Extended Collector's Edition 2009 BluRay 1080p DTS x264-CnSCG.mkv" -t 12 -c copy a.mkv

注意,这里必须写时间长度,用-t

  1. 转换MKVMP4有好多坑,一个是字幕需要提取后嵌入,一个是音频编码搞不好浏览器不支持,再一个是时间轴不一致,还可能有字体问题。一个成功的示例代码:ffmpeg.exe -ss 1:8:57.640 -copyts -i "a.mkv" -t 11 -c:a libmp3lame -ss 1:8:57.640 -vf subtitles=a.srt:force_style='Fontname=微软雅黑' wrong.mp4

  2. .ts视频可以直接用cat合并。更多关于合并视频的知识

  3. 用ffmpeg给视频加简单的淡入、淡出和字幕特效:

1
2
3
ffmpeg -i a.mp4 -vf "fade=t=in:st=0:d=2, \
fade=t=out:st=32:d=2, \
drawtext=enable='between(t,2,20)':fontfile=HiraginoSansGB-W3.otf:textfile=a.txt:x=(w-text_w)/2-30:y=h-th-80:fontcolor=white:fontsize=50" -t "34" -c:a copy -vcodec libx264 -crf 20 -preset slow output.mp4

把文字放在单独的文件a.txt里防止编码错误。另外,我发现用服务器编码并不会快多少。

  1. 抓取m3u8形式的在线视频:
1
ffmpeg -allowed_extensions "ALL" -protocol_whitelist file,http,https,tcp,tls,crypto -user_agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/601.7.8 (KHTML, like Gecko) Version/9.1.3 Safari/537.86.7" -i http://185.38.12.60/sec/1503173737/363333397f6b65370bfc740ca4dea8c3f8dd2a93419f7748/ivs/12/b1/2ec5e15ba2a6/hls/tracks-4,5/index.m3u8 -c copy pd.mkv

比较新的ffmpeg有奇奇怪怪的bug,需要加参数,可以用wget下载下来后,本地操作:

1
ffmpeg -allowed_extensions "ALL" -protocol_whitelist file,http,https,tcp,tls,crypto -i a.m3u8 -c copy a.mkv

需要注意加密视频要提供key,比如ts.key
来源

  1. 把图片转成视频:
1
ffmpeg -framerate 12 -i "a_%03d.bmp" -vcodec libx264 -crf 1 -preset slow -vframes 1000 -pix_fmt yuv420p a.mp4
  1. 用mpv播放网络音频容易断,加上--stream-lavf-o=reconnect_streamed=1参数可以自动重新连接。播放网络音频默认的超时值是1分钟。出处

  2. Shadowsocks的“ss-stunnel”是用来进行转发的,数据走的是Shadowsocks的协议,用法类似ss-tunnel.exe -u -c "C:/msys64/etc/shadowsocks/config.json" -L "8.8.8.8:53" -l 53,实现在本地的53端口起一个DNS服务器,而DNS的解析被转发到谷歌的DNS。

  3. 用Shadowsocks时,如果想把代理分享给局域网的其他电脑,可以在配置文件中加入"local_address":"0.0.0.0",这样代理的本地端口就暴露给局域网的其他电脑了。注意这里可能会弹出防火墙的窗口。

  4. 开启MPV硬件加速的方法:在配置文件里写入hwdec=auto。对于Windows,配置文件是%appdata%/mpv/mpv.conf

  5. GNU Octave的每夜版(nightly)可以从https://buildbot.octave.space/#/download获取。

  6. Windows下小巧好用的PDF阅读器SumatraPDF的抢鲜版(prelease)的下载地址新版标记功能的介绍

  7. Pandoc的reference-docxreference-odt参数统一到reference-doc参数上了。

  8. Linux平台下,54.x版本以上的Firefox必须安装PulseAudio才能听到声音,命令是sudo pacman -S pulseaudio pulseaudio-alsa

  9. MacType的最新版(v1.2017.628.0)中,如果使用了DirectWrite支持(即DirectWrite=1),那么,[DirectWrite]中最好RenderingMode=6,否则用DirectWrite的软件,比如Word 2013,效果会非常差。

  10. 好奇的你可以用objdump -d emacs来反汇编某个程序看里面的秘密,如果你喜欢Intel的汇编语法,可以用objdump -M intel -d emacs

  11. 用GCC的时候在CFLAGS加上-ftree-vectorize自动向量化代码。想知道哪些代码被自动优化了?再加上-fopt-info优化的指示就会输出到stderr,用2> /tmp/err.log把它们输出到文件仔细研究吧。

  12. curl是比较容易使用Socks5代理的,用--socks5-hostname参数就可以,示例

1
curl https://chriszheng.science/index.html --socks5-hostname localhost:65500 -O
  1. 用代理git clone的方法:ALL_PROXY=socks5://127.0.0.1:65500 git clone https://github.com/neomutt/neomutt

  2. UnZip可以解压百度网盘批量下载的zip压缩包,7-zip不行,WinRAR的修复功能也可以让压缩包正常解压。

  3. AndroidScreencast可以在电脑上操作安卓手机,而且不需要手机上装软件,原理是用ADB。当然,非常不好用,延迟达到秒级,玩玩就好。

  4. 接上条,CXTouch速度更快,需要在手机上安装软件。

  5. 更快的是scrcpy

  6. 如果Node的包管理出现问题,可以用激进的方法删除node_modules重新安装。对于*nix系统rm -rf node_modules就可以,在Windows下可能会删除不掉,可以安装在Windows下实现“rm -rf”的包rimrafnpm install rimraf -g,然后rimraf node_modules注意,这个包的功能是rm -rf哦。

  7. Hexo的包hexo-filter-cleanup在调试模式不会生效。我一直疑惑为什么调试模式生成的快,原来是因为调试模式不会优化,所以快了很多。

  8. 编辑/etc/fstab的时候一定要慎重,因为启动的时候系统会默认挂这些分区,如果找不到,启动失败。

  9. 播放器MPV如果不想要看输出可以加参数--no-terminal

  10. 用Emacs的Tramp连接到运行BusyBox的路由器时会遇到连不上的问题,在路由器上安装coreutils-stty就好啦。原因是因为精简的BusyBox很可能不带stty命令,而Tramp又依赖它,所以反复出错。

  11. 衍生自Firefox的浏览器K-Meleon会连接到官网自动更新,如果官网挂了,比如像今天这样,软件就会崩溃。禁用自动更新就好了,禁用方法是偏好设置→K-Meleon插件中禁用检查更新

  12. 最近用上了tmux,有种相见恨晚的感觉,以下两条配置很好用,可以放到~/.tmux.conf

1
2
set -g mouse on
set -g status-right ' #{?client_prefix,#[reverse]<Prefix>#[noreverse] ,}"#{=21:pane_title}" %H:%M %d-%b-%y'

来源1来源2

  1. Windows下使用Firefox还是必须得用Flash,而第三方修改过的Flash比原始版的好。火狐吧的文科一直维护去沙箱版Flash,下载地址
    https://pan.baidu.com/s/1boVSQXx#list/path=%2F
    另外一位朋友维护的
    https://bbs.kafan.cn/thread-1839722-1-1.html

  2. 开源看图软件nomacs还挺好用。

  3. Termux使用国内的清华源的方法

  4. Termux也可以用termux-change-repo换源。

  5. 让Termux不震动的方法是改配置,方法见配置文件的手册

  6. 在Windows环境下使用mutt看HTML邮件:

1
2
3
4
5
# ~/.mutt/muttrc
auto_view text/html
alternative_order text/plain text/html
# ~/.mailcap
text/html; "/C/Program Files/Mozilla Firefox/firefox" "$(cygpath -w %s)" && sleep 2; nametemplate=%s.html; copiousoutput
  1. ImageMagick可以重设图片的DPI,方法是
1
convert -units PixelsPerInch 输入图片.png -density 600 -trim 输出图片名.png

顺带演示了-trim去白边。

  1. Git可以用.git/info/exclude代替.gitignore来忽略本地文件,这种方法不必提交到远程。来源

  2. 下载用于win64平台的最新版Firefox:
    https://download.mozilla.org/?product=firefox-latest&os=win64&lang=zh-CN

  3. 如果VirtualBox的VDI文件是动态大小,占用空间变大了,可以在虚拟机的系统里用SDelete命令清理自由空间:sdelete.exe c: -z,然后用VBoxManage的vboxmanage modifymedium --compact thedisk.vdi来压缩。来源

  4. 统计汉字的字数wc -m *.md

  5. Linux的sensors命令可以输出传感器探测到的温度,如何把温度信息和相应的硬件匹配呢?ls -l /sys/dev/block/*来源

  6. 用neomutt可以设置编辑器,比如把set editor = 'emacsclient -a ""'写到配置文件里。注意,不要加上-n,因为那样会立即退出,neomutt会认为你没有写内容而放弃寄信。

  7. MSYS2更新msys2-runtime包的时候会提示关闭其他的MSYS2程序(terminate other MSYS2 programs before proceeding),一定要照做,否则会出错。错误的原因是,Windows支持延迟写入,到的动态链接库(DLL文件)如果在使用,新的文件不会覆盖老的,再运行新程序,用的还是老的DLL,新程序加老动态链接库很可能会出错。

  8. 列出lvm逻辑卷的详细信息

  9. 把Lodash替换为原生JavaScript的教程

  10. 如何快速知道Linux系统的关机开机情况:last -x | grep shutdown | less来源

  11. 可以访问http://localhost:631来在线管理CUPS系统。

  12. Goproxy 中国

  13. BUILDDIR=/tmp/makepkg makepkg. 来源

  14. Github超过100M的大文件上传,用到了LFS。

  15. 转换MKVMP4有两个坑,一个是字幕需要提取后嵌入,再一个是音频编码搞不好浏览器不支持。一个成功的示例代码:ffmpeg.exe -ss 0:53:53.777 -i "加勒比海盗(国英双语) Pirates.of.the.Caribbean.The.Curse.of.the.Black.Pearl.2003.BluRay.720p.x264.AC3.mkv" -t 8 -c:a libmp3lame -vf subtitles="subs.srt" give.mp4

  16. 快速重启Firefox,Ctrl + Shift + J打开父进程浏览器控制台,Ctrl + Alt + R来源

  17. 一行代码把浏览器变成编辑器。

科学相关软件技巧

  1. ORCA计算金属配合物遇到SCF不收敛的情况,可以使用! SlowConv,如果不行可以试试! KDIIS更多信息

  2. Octave里在向量最后增加一个元素的写法是a(end + 1) = 5;,删除最后一个元素的写法是a(end) = [];手册里的解释

  3. AutoDock Vina输出结果的平均值,:

1
(for f in *.log; do 	echo -n "${f}: "; 	awk '/^[ ]+[1-9]+/ {n++;sum+=$2} END {print n?sum/n:0}' ${f}; done) > /tmp/a.log
  1. When Octave fail to plot a figure, run the magical close all. I struggled with this issue for a long time.
    如果Octave的画图功能不能正常工作,运行神奇的close all。这个问题困扰我很久了,只有在Emacs里用Octave才会遇到。这条经验也分享到help-octave邮件列表了

  2. 从兼容性方面考虑,Octave导出SVG格式的图片是比较好的选择,缺点是不太好编辑了。话说回来,PostScript也不是为了编辑而产生了。

  3. mpif90编译的时候会报Illegal preprocessor directive,因为默认不进行预处理,FCFLAGS = -cpp可以解决。

  4. Jmol/JSmol获取高质量截图:write IMAGE 1920 1920 PNGT n "6.png"

  5. Octave里要用LaTeX语法必须用单引号,xlabel('{\it d}(C–Cl) in Å')。来源:手册里有,我觉得这句话应该强调。

商业软件技巧

  1. 在MS Word中,=rand(8, 10)可以生成随机的文字,=lorem(8, 10)生成的是Lorem ipsum。详解

  2. MS Word里用Ctrl + *(实际是Ctrl + Shift + 8)可以显示额外的格式符号,比如空格用·表示,对于一些编辑工作可能有用。(Emacs里等价的功能是M-x whitespace-mode)。

  3. 永久性的将Word的宏转为文字:Ctrl+Shift+F9出处

  4. Acrobat XI的11.0.1以上版才能和Word 2013兼容,直接安装的11.0.0是不行的,必须先升级。各版本的兼容情况

  5. 要想在Windows下使用UTF-8的,要么用Emacs等软件,通过管道传递,要么就在命令提示符里用chcp改代码页(chcp 65001),直接用使用命令,包括API调用,肯定会失败。在MS-Windows平台下使用UTF-8编码

  6. Word的选项里面,显示-打印选项里面,有“打印文档属性”一项,如果选上了,打印的时候会多一页,一定不要选。这个毛病非常难以排查,设置的位置又非常隐秘。

  7. Excel怎么固定多个行和多个列呢?选中你要固定的行和列的「下一个」单元格,比如你想固定2行和1列,那么你应该选B3,然后视图-冻结窗口,就好了。如果我一直看百度出来的教程我是不会知道这个技巧的。

  8. Excel里统计非空的列和行=COUNTA()

  9. Word里不能插入特别大的图片。

  10. 小米的解锁工具带一个ADB驱动。官方提供的驱动签名都过期了。小米药丸。

  11. Acrobat XI的PDFMaker插件在Word里不能加载,修复重装等方法是不行的,需要修改注册表HKEY_CURRENT_USER\Software\Microsoft\Office\Word\Addins\PDFMaker.OfficeAddinLoadBehavior,改成3,就好了。官方的解决方案

  12. 如果还是不好使,继续修改HKEY_CURRENT_USER\Software\Microsoft\Office\Word\Addins\PDFMaker.OfficeAddinLoadBehavior为3。

  13. Q: 刚装上的EndNote X9在Word 2016里不能用,提示「无效字符串」,怎么破?
    A: 运行安装目录下的Configure EndNote.exe

  14. Word把全角引号替换为半角引号怎么操作?用查找替换。查找((?*))替换为(\1),记得选使用通配符。

  15. Word的文档模板Normal.dotm位于%appdata%/Microsoft\Templates文件夹。

  16. 思源宋体/黑体 + 数字 + Word 2016里用Acrobat XI生成PDF = 乱码。

  17. Windows丢失通知栏的蓝牙图标怎么办?控制面板网络和共享中心更改适配器设置Bluetooth 网络连接 → 右键属性BlueTooth选项卡 → BlueTooth设置在通知区域显示BlueTooth图标。或者看下面这个图。萎软药丸!

Windows丢失通知栏的蓝牙图标怎么办?

  1. 手机QQ关闭烦人的小世界:手机QQ设置辅助功能 → 最下面的底部导航栏显示功能 → 选不显示

  2. 手机微信出现小程序不能用,无限正在加载、白屏。复制以下链接,在微信任意聊天窗口内发送下列内容,就可以了:
    debugmm.qq.com/?forcex5=false
    目的是关闭 X5 内核,使用谷歌 chrome 内核。出处

  3. 我现在用的Windows 8.1,想要网络共享,直接连不上,必须双方互相ping一下才行。我已经从防火墙排查了,不行。

  4. 连接到Windows 7的远程桌面,运行程序,不能用OpenGL。解决方案是放弃远程桌面,改用NoMachine出处

  5. 如何从GNU/Linux系统远程重启/关机Windows服务器?用smbclient

1
2
3
4
5
sudo pacman -S smbclient
# Reboot.
net rpc shutdown -r -I 192.168.1.111 -U Administrator%MYPASSWORD
# Shutdown.
net rpc shutdown -I 192.168.1.111 -U Administrator%MYPASSWORD
  1. GaussView如何重新编号原子?用Tools -> Connection,在这个界面打开的时候,用鼠标左键和中键给原子连续编号。

  2. 如何安装预览版的WSL?从
    https://github.com/microsoft/WSL/releases
    下载安装包,在PowerShell里
    Add-AppxPackage .\Microsoft.WSL_1.2.2.0_x64_ARM64.msixbundle

  3. EndNote如何设置插入文献的字体?看图说话。来源
    Edit & Manage Citation(s) -> Tools -> Configure Bibliography -> Layout
    EndNote如何设置插入文献的字体

移动端相关

  1. 对于MIUI 8,开启开发者模式后,选择不使用锁屏界面,就不用看锁屏画报了。我之前写过

  2. 下载用于Android的最新版Firefox:
    https://download.mozilla.org/?product=fennec-latest&os=android&lang=multi

  3. 红米手机用MTP模式传文件,文件显示不全?重启试试。

网络相关技巧

  1. 为了移动端友好没有必要在robots.txt中禁止抓取CSS等文件。详解

  2. 同一个域名下混合使用HTTP和HTTPS会导致很多问题,不要这样。一个我的折腾实例

  3. 批量复制URL的Firefox扩展Copy Link URL

  4. 网站https://gtmetrix.com/可以对网页进行测速,方便优化网站。谷歌的PageSpeed Insights也是个好工具。

  5. 可以通过添加rel确认你是链接的所有者,添加的链接类似这样<a rel="me" href="https://mastodon.sdf.org/@chriszheng">Mastodon</a>,这样在Mastodon的资料页里链接会变绿

  6. Firefox 60+版本移除了查看Cookie的功能,解决方案是用存储查看器,快捷键是Shift+F9

软硬件折腾

  1. 除非有好的设备并且非常认真听,320 Kbps的音质已经足够好了。我的经验

  2. Wifi常见的协议按从旧到新的顺序是:802.11b < 802.11g < 802.11n < 802.11ac < 802.11ax,目前802.11ac就是比较新协议了。后来字母越来越多,索性引入代的概念,802.11ac起个名叫Wifi 5,记法就是支持5 G,更新的是802.11ax,下一代,就叫WiFi 6WiFi 6的路由我已经用上了,终端还没用过,因为WiFi 6的代表无线网卡AX200只支持Windows 10及以后的操作系统,老系统没驱动。

  3. 一些无线网卡,比如我用的比较坑的Intel的N 2230,会出现使用802.11n不稳定的情况,这种时候可以在网卡的设置里面禁用802.11n协议,这样速度会慢一些(理论最大速度下载速度从37 M/s降低到6 M/s),稳定性会有很大的提升,而且大多数时候出口带宽没有那么高(也就是说你的下载速度根本就不会大于6 M/s),就算协议能支持也对你没有用。这条经验比较啰嗦,希望看的人能明白。

  4. Intel Core架构的顺序是:Nehalem、Sandy Bridge、Ivy Bridge、Haswell、Broadwell、Skylake、Kaby Lake。出处

  5. 今天解答了我4年前在笔记本上装双系统的一个疑惑:如果电脑是以Legacy模式引导的,那么Windows的安装程序只能安装到MBR分区上,而以UEFI模式时只能安装到GPT分区上,即BIOS–MBR以及UEFI–GPT是绑定的,二选一。这是Windows的限制。出处

  6. 从TP-Link WR841N v8路由器读取PPPoE密码,直接从Web界面读的是Hello123World,是不对的。需要用RouterPassView这个小软件从备份的配置文件(默认叫config.bin)里读取。

  7. 比较老的TP-Link路由器,比如WR841N,登录管理系统只能用HTTP,比较新的Firefox会优先使用HTTPS,导致地址变成类似https://192.168.1.1/,无法登录管理系统。

  8. 运行LEDE的路由器彻底禁用DHCPv6,配置LAN的IPv6 分配长度,设为禁用。来源