这是一个为 Nushell 设计的自定义欢迎信息脚本,旨在替换默认的启动横幅,并在每次启动 Shell 时,提供一个关于系统状态的、信息丰富的仪表盘。
功能概览#
- 系统信息: 显示主机名、内核版本和当前登录用户。
- 上次登录: 展示最后一次登录系统的用户信息、来源IP和时间。
- 资源状态:
- CPU: 显示 CPU 型号和实时的1分钟、5分钟、15分钟系统平均负载。
- 内存: 以 GB 为单位,显示已用和总内存大小,以及使用百分比。
- 磁盘: 以 GB 为单位,显示磁盘的已用和总空间大小,以及使用百分比。
- 容器状态:
- Podman 容器: 汇总显示已发现的容器总数,以及其中正在运行和已退出的容器数量。
- Podman Pods: 汇总显示已发现的 Pod 总数,以及其中正在运行的 Pod 数量。
- 安全状态:
- Fail2ban: 以表格形式,展示 Jails 的“当前失败”、“累计失败”、“当前封禁”和“累计封禁”四个关键指标。
依赖#
- 核心工具:
uname
,last
,df
(这些是所有现代 Linux 发行版的基础组件)。 - 可选工具:
podman
: 如果未安装或服务未运行,相关部分将显示一条友好的警告信息。fail2ban-client
: 如果未安装,相关部分将显示警告。sudo
: 为了让非root
用户能够查询 Fail2ban 状态,需要预先配置sudo
规则。
安装#
- 备份旧配置: 在进行任何修改前,请先备份您现有的
config.nu
文件。1cp ~/.config/nushell/config.nu ~/.config/nushell/config.nu.bak
- 替换配置: 将下面的完整代码,复制并完全替换掉您
~/.config/nushell/config.nu
文件中的内容。 - (可选, 不推荐) 配置 Sudo for Fail2ban: 为了让非
root
用户能够看到 Fail2ban 状态,请使用sudo visudo
命令,在文件末尾添加以下规则 (请将your_username
替换真实用户名):1your_username ALL=(ALL) NOPASSWD: /usr/bin/fail2ban-client status
- 重启 Nushell: 关闭并重新打开终端,即可看到全新的自定义欢迎界面。