LC_ALL=C sort FILE
fc-list :lang=zh-cn > font_zh-cn.txt
mmdblookup --file /usr/share/GeoIP/GeoLite2-ASN.mmdb --ip 106.14.52.175
find -L [PATH] -type l -delete
sed
的转义符教训sed 's|<ts:date>\([^<]\+\)</ts:date>|<ts:date>\1 +0800</ts:date>|' continue_mine.gnca
vim
的转义符教训非常多,待续
https://stackoverflow.com/a/19358402/7800554
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=merged.pdf mine1.pdf mine2.pdf
pdfunite 1.pdf 2.pdf 3.pdf out.pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default -dNOPAUSE -dQUIET -dBATCH -dDetectDuplicateImages -dCompressFonts=true -r150 -sOutputFile=output.pdf input.pdf
使用Poppler压缩pdf,本质上是转换pdf为pdf,过程中舍去不需要的字体。 对于某些软件(wps)生成的超大pdf文件,里面包含gs无法处理中文的cid字体, 需要使用此方法生成新的pdf文件。
pdftocairo -pdf origin.pdf to_cairo.pdf
export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=lcd_hrgb'
# audit.rule
-a exit,always -F path=/home/owl -F perm=w -F key=find_bad
# 接收端
nc -l -p LISTEN-PORT > out.file
# 发送端
nc DEST-IP-ADDR DEST-PORT < out.file
接收端需要先监听端口,发送端才可连接上。
mogrify -path /destination/path/ -adaptive-resize 5000 -unsharp 0x1 -format png /originary/path/*.jpeg
mogrify -write mall.jpg -resize 1105x829 -unsharp 0x1 idb.jpg
FC_DEBUG=4 pango-view --font="serif" -t '雨' 2>&1 | \
grep -o 'family: "[^"]\+' | cut -c 10- | tail -n 1
patchelf --set-rpath '$ORIGIN/' ./main #设置rpath为elf文件所在目录
patchelf --print-rpath ./main
passwd
及group
的完整性sudo pwck # 验证passwd及其shadow
sudo grpck # 验证group及gshadow
awk -F '\t' '{print $4}' tag.txt
find . -path ./migrations -prune -o -type f -exec \
sed -i 's/Artical/artical/g' {} +
以上例子中加入-path ./migrations -prune -o
即为具体实现方法。
find . -type f -print0 | xargs --null -n1 chmod -x
find . -type f -exec chmod +x {} \;
firejail --private=/home/owl/static_misc/local_data/jails/mine --allusers zsh
--allusers All directories under /home are visible inside the sandbox. By default, only current user home directory is visible.
fzf
是模糊搜索引擎,直接使用查找文件的话可以在某种程度上代替find(但是find有其高级之处)。其还有以下几个在shell中的快捷键:
CTRL-t
- Paste the selected files and directories onto the command-lineCTRL-r
- Paste the selected command from history onto the command-lineALT-c
- cd into the selected directoryrg
的全称是ripgrep,其相对grep速度更快(grep也很好用)。fzf-vim
中有命令用以使用rg搜索。
使用-P
选项可以使用perl的正则表达式,用以使用零宽断言。
以下匹配所有artical
单词,排除artical_cache
。
grep -P '\bartical(?!_cache)\b' -r .
Ctrl+LEFT no-osd sub-seek -1
Ctrl+RIGHT no-osd sub-seek 1
Ctrl+Shift+LEFT sub-step -1
Ctrl+Shift+RIGHT sub-step 1
参见issuses
for m in $(polybar --list-monitors | cut -d":" -f1); do
MONITOR=$m polybar --reload example &
done
rclone sync "GoogleDrive:${PWD/#$HOME/}" "${PWD}" -v -u --checkers 1 --transfers 8
rsync -aAXv --delete --delete-excluded --exclude=wtf tmp new
play -n synth 3 sine 18650
stow
可以辅助管理配置文件(dotfiles)
# -t 指定target
stow -t ~ -S git
systemd 用户实例在用户首次登陆时启动,并在最后一个会话退出时终止。 但有时候,对于一些不依赖于会话的用户进程,在系统启动时加载用户实例,在会话全部结束时,也不停止用户实例是比较有用的。 Lingering 就是用来实现这个的。 使用以下命令来启用驻留指定用户:
loginctl enable-linger username
tar -I "xz -T 0" -cvf distense.pickle.tar.xz distense.pickle
tar -cJvhf profiles.tar.xz profiles
tar -xJf profiles.tar.xz -C profiles_old --strip-components=1
join-pane -s WINDOWID|PANEID
移动指定窗口中的面板或者指定的面板到当前窗口join-pane -t WINDOWID|PANEID
将当前面板移动到指定窗口或者指定面板所在的窗口break-pane
将当前面板分裂出作为新的窗口这两个程序对默认打开程序的判断不一样,因此xdg-open和gio open也就有很大差别了。
修改$HOME/.config/mimeapps.list
能修改gio mime。(轮子,轮子!真多轮子)
xrandr --output eDP-1 --auto --rotate normal \
--output DP-1 --auto --rotate left --right-of eDP-1
xrandr --output DP-1 --off
xrandr --output eDP-1 --primary
bindkey -l
列出现有的键映射表的名字bindkey -M <keymap>
表内包含的键映射zle -al
列出所有用户定义的插件详情见man zshzle
按键 | 用途 |
---|---|
^[h | 查看正在编辑的命令的帮助 |
^x^e | 调用$EDITOR 指定的编辑器编辑当前命令 |
登录或者解锁时错误密码尝试次数过多会使pam_faillock.so
锁定登录,需要等待一定时长才能登录。
faillock --user username --reset
排除包含'/'字符的行,在其余行行尾添加'/32'
sed '/\//! s/$/\/32/' iplist