日常小技巧
一些不常用但是可能有用的小技巧,或许会不定时更新吧。
Inkscape 批量导出图片
之前用 Inkscape 画了很多矢量图,今天想把它们转成位图,一个一个打开再导出太麻烦了,于是想到 Inkscape 的命令行操作,果然有这个命令。结合 Python,可以轻松实现批量导出:
import os
files = os.listdir()
for file in files:
## 图片之前另存了 PDF,以此为例
if os.path.splitext(file)[-1] == '.pdf':
bash_command = 'inkscape ' + file.replace(' ',r'\ ') + ' --export-type=png --export-dpi=600'
os.system(bash_command)
Linux 测试 U 盘读写速度
最简单的方法就是实测,使用 dd
命令随机写入数据并读取,测试速度。这里需要用到两个特殊的设备
/dev/zero
:文件"白洞",产生任意大小的随机文件;/dev/null
:文件"黑洞",所有写入的内容都被忽略。
使用 df -h
可以发现我的 U 盘挂载在 /run/media/xiaocy/misaka
,于是可以用下面的命令进行测试:
## 测试写入
time dd if=/dev/zero of=/run/media/xiaocy/xiaocy/test.tmp bs=4k count=100000
## 测试读取
time dd if=/run/media/xiaocy/xiaocy/test.tmp of=/dev/null bs=4k
CSGO 绑定跳投
在 CSGO 文件夹 <CSGO-root-path>/csgo/cfg/
内新建 keybind.cfg
文件,并输入以下内容
alias +jumpthrow"+jump;-attack;-attack2";
alias -jumpthrow -jump;
bind t +jumpthrow;
每次运行 CSGO 时,按 ~
键打开控制台,执行 exec keybind
即可。使用跳投时先点鼠标左键,然后按 t
即可。
控制台执行的命令 keybind
即为创建的 .cfg
文件名,可根据自己喜好修改;绑定的跳投键为上述代码第三行的第二个参数,也可以自行修改。
Vim 中文输入法问题
当使用 Vim 编辑中文文本时,在切换插入模式和普通模式时需要频繁切换输入法,为此可以使用 fcitx.vim 插件自动化解决这个问题。
对于 Manjaro 系统,也可以从 AUR 中一键安装该插件: yay -S vim-fcitx
。在命令行使用时,切换模式会存在延时,进一步可以在 ~/.vimrc
配置文件中引入 set ttimeoutlen=100
而将其设置为较小值。
Linux 终端补全忽略大小写
在家目录下创建 .inputrc
并写入:
set completion-ignore-case on
然后重启终端即可。
VSCodeVim 配置
为了自动切换中英文输入法,在配置文件中添加以下设置(适用于 fcitx5
框架):
"vim.autoSwitchInputMethod.enable": true,
"vim.autoSwitchInputMethod.defaultIM": "1",
"vim.autoSwitchInputMethod.obtainIMCmd": "/usr/bin/fcitx5-remote",
"vim.autoSwitchInputMethod.switchIMCmd": "/usr/bin/fcitx5-remote -t {im}",
添加以下配置可以重新将 j
和 k
映射为 gj
和 gk
:
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": ["j"],
"after": ["g", "j"]
},
{
"before": ["k"],
"after": ["g", "k"]
}
]
Linux 解压时中文乱码
使用附带 -O cp936
选项的 unzip
命令即可。需要注意,某些发行版的 unzip
不提供 -O
选项,需要安装 unzip-iconv
。
解压示例:
unzip -O cp936 中文解压包.zip
Linux 增加 Swap 分区大小
使用 Linux 做计算时如果内存不够用,可以使用 Swap 空间将部分硬盘当作内存使用。如果 Swap 空间不够,可以使用以下方法进行扩容(需要管理员权限运行):
- 查看当前 Swap 空间大小:
free
- 创建空文件用做 Swap 空间:
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
(创建了 4 GB 空间) - 将上一部创建的文件指定为 Swap 空间:
sudo mkswap /swapfile
- 启用交换空间:
sudo swapon /swapfile
- 查看当前 Swap 空间大小:
free
以上方法用于临时性地扩容,如果想要永久设置,设置 swapfile
开机时自动挂载即可:编辑 /etc/fstab
,在最后一行加入:
/swapfile swap swap 0 0
Linux 定时任务
定时任务可以使用 crontab
实现,常用的命令有:
crontab -l ## 查看定时任务
crontab -e ## 编辑定时任务
crontab -r ## 删除所有任务
新建定时任务只需要按时间加命令的形式给出,由空格进行分割,其中时间由五个数字构成,分别是:分、时、日、月、周,并支持以下操作符
*
— 所有可行取值/
— 指定重复周期-
— 指定时间范围,
— 离散时间序列
例如:
* * * * * myTask ## 每分钟运行一次 myTask
0 * * * * myTask ## 每小时整点运行一次 myTask
30 8 * * 1-5 myTask ## 每周一到周五的 8:30 运行 myTask
0 7-21/3 * * * myTask ## 7 点到 21 点每 3 小时运行一次 myTask
sudo systemctl start cronie.service
可以开启服务,相应的将 start
选项改为 enable
可以设置自动启动; stop
可以关闭服务, status
查看当前服务状态。Linux WPS 高分辨率屏幕显示模糊
编辑启动文件,在执行命令前增加 env QT_SCREEN_SCALE_FACTORS=1
即可。