• su -无反应


    一、问题产生环境

    CentOS 6.3 X64
    SecureCRT 7.0.0 英文版

    二、问题具体描述

    今天操作自己的一台Linux服务器时,突然su命令不好使了,敲入命令回车后,没有任何反应,不管是su还是su -都一样,重启系统后也是问题依旧,郁闷的要命。。。

    最耐心的一次等了大概1分多钟,出现su:后面的字符是乱码的提示,当时没截图,现在也不想还原问题了,下面说说问题的产生原因和解决方法


    三、问题产生原因

    郁闷了半天,才想起来上一次退出登录前的动作是修改了SecureCRT中的字符编码设置,设置路径:

    复制代码
    代码如下:
    Options > Session Options > Terminal > Appearance > Character encoding > 从default设为UTF-8

    如下图所示:


     


    修改成UTF-8的原因是在系统中使用vi编辑带中文的配置文件时,出现乱码的情况,所以根据以前的经验就设置了SecureCRT中的字符编码为UTF-8,这样就不会乱码了。

    问题是记得重装系统前这样设置是没有任何问题的,也就是不会导致su命令出现没有反应的情况,非常非常奇怪,再仔细想了一下,貌似前些日子修改了CentOS的i18n配置,当前的i18n配置情况

    复制代码
    代码如下:

    #LANG="en_US.UTF-8"
    #SYSFONT="latarcyrheb-sun16"
    LANG="zh_CN.GB18030"
    LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
    SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"
    SYSFONT="lat0-sun16"


    记得当时修改这个配置的原因也是为了解决乱码问题,结合当前问题,设想了一下问题的可能原因,然后测试了一下,果然跟想像的一样。

    原因总结:i18n语言配置为中文并且SecureCRT的Character encoding配置项是UTF-8的情况下,就会导致su命令没有任何反应。

    四、问题解决办法

    知道了原因,解决起来就简单了,我测试过,把i18n语言项配置成中文,SecureCRT的Character encoding配置成Default的情况下,vi打开包含汉字的配置文件,依然会乱码,如果把SecureCRT的Character encoding配置为UTF-8又会导致su命令不起作用,所以我就把i18n还原成默认设置:

    复制代码
    代码如下:

    LANG="en_US.UTF-8"
    SYSFONT="latarcyrheb-sun16"


    然后把SecureCRT的Character encoding配置为UTF-8就完美解决了vi打开事汉字的文件乱码问题,而且又不会让su命令出问题,好吧,就这样吧!!!

  • 相关阅读:
    uboot主Makefile之1——HOSTARCH&HOSTOS
    uboot主Makefile之3——BUILD_DIR(Line 78-93)
    Makefile的ifeq逻辑或,逻辑与的变通实现
    uboot主Makefile解析第二篇
    uboot主Makefile解析第一篇
    mkdir -p X 中的“-p”是的意思
    uboot主Makefile中的origin函数
    原生javascript实现call、apply和bind的方法
    js如何判断数组是Array类型
    三栏布局的5种解决方案及优缺点
  • 原文地址:https://www.cnblogs.com/bethal/p/5407332.html
Copyright © 2020-2023  润新知