如何让journalctl默认使用ccze为输出着色?
如何让journalctl默认使用ccze为输出着色?
我之前也折腾过这个需求,毕竟彩色的journalctl日志看着舒服太多了!这里有几个靠谱的方法,能让你不用每次手动敲| ccze:
设置Shell别名(最简单的方案)
直接给journalctl加个别名,让系统默认执行带ccze的管道命令。以bash为例,编辑你的~/.bashrc或者~/.bash_aliases文件,添加一行:alias journalctl='journalctl | ccze'保存后,要么重启终端,要么执行
source ~/.bashrc让设置立即生效。
要是偶尔不想用ccze(比如要把日志输出到文件),只要在命令前加反斜杠:\journalctl,就能绕过别名调用原始命令。写Shell函数(更智能的方案)
别名的问题是不管输出到哪里都会走ccze,要是把日志重定向到文件,会把ANSI控制字符也写进去,导致文件乱码。用Shell函数就能解决这个问题——只有当输出是终端的时候才调用ccze:journalctl() { if [ -t 1 ]; then # 标准输出是终端,启用ccze着色 command journalctl "$@" | ccze else # 输出不是终端,直接返回原始日志内容 command journalctl "$@" fi }把这段代码加到
~/.bashrc(zsh用户加~/.zshrc)里,同样source生效。这样不管是日常终端查看,还是重定向到文件/其他命令,都能自动适配。
另外你还可以给ccze加自定义参数,比如ccze -A能显示更多日志属性,ccze -o nolookups可以禁用DNS查询加快渲染速度,把这些参数加到别名或函数里就行。
备注:内容来源于stack exchange,提问作者Gill-Bates
相关产品推荐
相关产品推荐

