商品网站建设实验格式,中国建设网建设通,如何建立公司的微信公众号,网站代码需要注意什么问题吗这篇记录一些奇奇怪怪的命令执行异常的情况#xff0c;后续有新的发现也会补录进来 情况一 /tmp 目录权限导致 按 tab 补充报错
情况描述
cd 按 tab 自动补充文件报错#xff08;普通用户#xff09;
bash: cannot create temp file for here-document: Permission denie… 这篇记录一些奇奇怪怪的命令执行异常的情况后续有新的发现也会补录进来 情况一 /tmp 目录权限导致 按 tab 补充报错
情况描述
cd 按 tab 自动补充文件报错普通用户
bash: cannot create temp file for here-document: Permission denied
处理办法
因为原先修改 /tmp 目录权限忘了改回来碰到的把 /tmp 执行权限恢复以后就正常了。
补充信息
按照上述的情况按 tab 是需要 /tmp 目录下创建临时文件的但是我通过检测没看到有新增的文件出来所以不是很清楚原因按 tab 还不能通过 strace 追踪就更迷糊了。
watch -d ls -al /tmp
补全的实现种类
Bash补全Bash是Linux中最常用的shell之一它通过名为bash-completion的包提供Tab补全功能。安装此包后可以通过.bashrc或.bash_profile文件配置补全行为。Zsh补全Zsh是另一种流行的shell它具有更高级的补全系统通常被认为比Bash的补全功能更加强大和灵活。
我检查了8版本的系统上面这两个包都存在。
# 这个目录里面定义了对应命令的填充脚本的方式
/usr/share/bash-completion/completions
# 支持自定义的补全脚本
~/.bash_completion
Bash补全机制
当用户输入命令的一部分并按下 Tab 键时Bash 会尝试查找对应的补全脚本。补全脚本可能会使用以下机制来实现补全 静态补全对于一些固定的选项或参数脚本可以直接定义它们动态补全对于一些需要实时计算的补全如文件名或命令输出脚本可能会执行外部命令来获取可能的补全选项模式匹配脚本可以使用正则表达式来匹配用户输入并提供与之匹配的补全建议上下文感知脚本可以检查用户已经输入的内容根据上下文提供相关的补全建议 情况二 nfs 无法访问导致 df 命令执行异常
情况描述
巡检脚本没有正常结束复现发现是 df 命令无响应
df -Th # 无响应 打印文件系统类型
df -lh # 正常 只打印本地文件系统
处理步骤
1、按经验判断这种就是 nfs 无法访问导致的执行 mount 看看是否存在 nfs 挂载就行了
2、如果没碰到过可以用 strace df -Th 去看看最终在哪卡住再分析也能找到原因
3、处理办法就是先恢复 nfs 然后卸载重新挂载即可自行评估影响 情况三 df 命令卡住且无法 kill
情况描述
这个不同于上面 nfs 异常导致的 df 命令卡住这个甚至都无法 kill 进程
分析步骤
1、登录服务器复现问题发现df命令执行会卡住且进程无法kill
2、strace df -Th 追踪执行情况发现执行最终停止在 /proc/sys/fs/binfmt_misc
# strace df -Th
... ...
stat(/sys/kernel/config, {st_modeS_IFDIR|0755, st_size0, ...}) 0
stat(/, {st_modeS_IFDIR|0755, st_size4096, ...}) 0
stat(/proc/sys/fs/binfmt_misc,
^C
^C
Process 20192 detached
detached ...
3、上网搜索这个问题df 执行到 /proc/sys/fs/binfmt_misc 报错
Linux 使用命令df -h 卡住 解决方法-CSDN博客
df 被 hang 住无法查看磁盘使用情况解决 - 简书
4、重启如下服务恢复原因不明
systemctl restart proc-sys-fs-binfmt_misc.automount 这篇笔记里面好几处问题都没有找到原因有了解的朋友可以评论讨论一下谢谢