CentOS中Notepad相关报错的定位与解决
常见场景与快速判断
- 在 Windows 的记事本里编辑脚本后传到 CentOS 执行,出现诸如:
- “/bin/bash^M: bad interpreter: No such file or directory”
- “line 2: $‘\r’: command not found”
- 或语法报错(如 syntax error near unexpected token `else’)
这是典型的 CRLF 与 LF 换行符不一致导致;Windows 使用 CRLF(\r\n),Linux 使用 LF(\n)。用 Notepad++ 可在“视图→显示符号→显示所有符号”看到 CRLF/LF 标记。修复思路是把文件转换为 Unix(LF) 格式或在 Linux 中去除 \r。
脚本换行符导致报错的修复
- 方案一(编辑器转换):在 Notepad++ 选择“编辑→文档格式转换→转为 Unix”,保存后再上传执行。
- 方案二(Linux 命令转换):
- 安装并使用 dos2unix:
- 安装:yum install -y dos2unix
- 转换:dos2unix your.sh
- 使用 sed 删除回车:
- 使用 tr 删除回车:
- tr -d ‘\r’ < your.sh > tmp && mv tmp your.sh
- 预防建议:在 Windows 端用支持换行符设置的编辑器(如 Notepad++)编写或统一转换为 Unix(LF) 再上传。
图形化编辑器 notepadqq 在 CentOS 上无法启动
- 现象:已安装 notepadqq 但执行时报错或找不到命令。
- 处理步骤:
- 检查可执行文件与路径:
- 查找:which notepadqq
- 若未找到,创建软链接(路径以实际安装为准):
- sudo ln -s /usr/share/notepadqq/bin/…/lib/notepadqq-bin /usr/local/bin/notepadqq
- 若仍报与 Qt 库相关的符号/运行错误,通常是版本不匹配或安装包损坏,建议:
- 通过系统软件源或官方渠道重新安装匹配当前 CentOS 版本的 notepadqq;
- 避免混用不同来源的包(如 pip、snap、第三方 rpm),以免依赖冲突。
仍未解决时的系统化排查
- 查看系统级日志,定位是否为资源或信号导致的异常:
- /var/log/messages:检查 OOM(内存不足)或段错误等记录;
- dmesg:过滤 segfault、killed process 等内核日志;
- 若为服务方式运行,使用 journalctl -u <服务名> 查看服务日志。
- 资源与现场分析:
- 用 top/htop 观察 CPU/内存占用;
- 结合 strace -p 跟踪系统调用定位卡点。
- 若怀疑程序崩溃,可开启并分析 core 文件(如配置 ulimit -c unlimited,再用 gdb 分析)。