linux 乱码 输入命令后_linux命令输入rz后出现乱码 - CSDN
  • sh 经常使用Linux tty的人都知道

    说明:本文仅供学习交流,转载请标明出处,欢迎转载!

            经常使用Linux tty的人可能很容易遇到一种问题,就是在tty上读取某个文件后,发现不仅文件内容显示出现乱码,而且从文件中回到$或#输入串时,发现一个奇怪的现象就是$后输入其它字符时也出现错误。

            例如:

            #cat /var/log/secure

            输出:一大堆乱码,而且下次输入的时候连输入都出现乱码,怎么解决这个问题呢?

             此时需要重新初始化终端,可以输入reset命令。

              # reset  

              接着就可以正常输入了!

    展开全文
  • 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标...
    进入vi的命令
    vi filename :打开或新建文件,并将光标置于第一行首
    vi +n filename :打开文件,并将光标置于第n行首
    vi + filename :打开文件,并将光标置于最后一行首
    vi +/pattern filename:打开文件,并将光标置于第一个和pattern匹配的串处
    vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
    vi filename....filename :打开多个文件,依次进行编辑
    屏幕翻滚类命令
    Ctrl+u:向文件首翻半屏
    Ctrl+d:向文件尾翻半屏
    Ctrl+f:向文件尾翻一屏
    Ctrl+b;向文件首翻一屏
    删除命令
    ndw或ndW:删除光标处开始及其后的n-1个字
    do:删至行首
    d$:删至行尾
    ndd:删除当前行及其后n-1行
    其他命令
    :n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
    :n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
    :n1,n2 d :将n1行到n2行之间的内容删除
    :e filename:打开文件filename进行编辑
    :!command:执行shell命令command
    保存命令
    w   保存文件但不退出vi 
    :w file 将修改另外保存到file中,不退出vi 
    :w!  强制保存,不推出vi
    :wq  保存文件并退出vi 
    :wq! 强制保存文件,并退出vi
    q:不保存文件,退出vi
    :q!不保存文件,强制退出vi 
    :e! 放弃所有修改,从上次保存文件开始再编辑
    二 :解决乱码问题
    1.vi /etc/sysconfig/i18n  将内容改为  
    LANG="zh_CN.GB18030"  
    LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"  
    SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"  SYSFONT="lat0-sun16"  
    这样中文在SSH,telnet终端就可以正常显示了。  
    2.安装LINUX的时候选择的是中文字,但是使用的时候出现了乱码解决方法是在命令提示下输入export LANG=C  
    3.export LC_ALL=zh_CN.GBK
    
    展开全文
  • linux乱码问题

    2018-09-09 09:10:48
    对于国内的Linux用户,经常烦恼的一个问题是:系统常常在需要显示中文的时候却显示成了乱码,而由于某些原因,需要英文界面的系统的时候,却苦于系统不能正常输入和显示中文.另外,由于大部分主要Linux发行版都是以英语为...

    对于国内的Linux用户,经常烦恼的一个问题是:系统常常在需要显示中文的时候却显示成了乱码,而由于某些原因,需要英文界面的系统的时候,却苦于系统不能正常输入和显示中文.另外,由于大部分主要Linux发行版都是以英语为主体的,英文界面的系统和应用程序不管在界面的美观程度和稳定程度上都比中文的略好一些,各种奇怪的BUG也要少一些。因此,很多稍微有英语基础的LINUX用户都宁愿使用英文界面的系统。但是,矛盾又突现出来:在英文系统下,如何才能正常显示和输入中文呢?有没有两全其美的方案呢?因此,笔者开始探索如何解决这个问题。我的完美状态是:系统和应用程序全部为英文(系统菜单、应用程序工具栏、默认输入法等),而我需要阅读和撰写中文文档的时候,能正确的显示中文并调出中文输入法。经过尝试,设置成功,现在以FC4 LINUX为例,讲解一些相关知识和设置过程。

    本文主要通过修改系统配置的过程来展现修改LINUX系统配置的一般思路和过程,如果你不太有耐心看完,请跳过文章的1—4节,直接看第五节快速设置部分。

    一,相关变量介绍

    我们知道大部分LINUX系统是无所谓中文版和英文版的,以FC4 LINUX为例,系统发行的时候全世界都一样,系统是中文的还是英文的完全取决于你选择的语言包。不同国家的人在安装使用的时候选择属于自己国家的语言包,应用程序中的语言也不是写死的,它根据系统的设置来调用相关的语言,所以,一个应用程序写出来不经过修改,全世界不同国家的用户都可以以母语界面使用它,这就事所谓的INTERNATIONALIZATION(国际化),简称 I18N。这也是未来软件的发展趋势。

    那么,如果我在系统中安装了不同的语言包和不同的字体,系统是如何判断我所要的语言界面并调用相关的字体的呢?系统中那些文件和变量在控制这些呢?

    在redHat和FC系列Linux系统下,记录系统默认使用语言的文件是/etc/sysconfig/i18n,如果默认安装的是中文的系统,I18N的内容如下:
    代码:

    LANG="ZH_CN.UTF-8" SYSFONT="LATARCYRHEB-SUN16" SUPPORTED="ZH_CN.UTF-8:ZH_CN:ZH"


    其中LANG变量是language的简称,稍微有英语基础的用户一看就看出来这个变量是决定系统的默认语言的,即系统的菜单、程序的工具栏语言、输入法默认语言等。SYSFONT是system font的简称,决定系统默认用哪一种字体。SUPPORTED变量决定系统支持的语言,即系统能够显示的语言。需要说明的是,由于计算机起源于英语国家,因此,不管你把这些变量设置成什么,英语总是默认支持的,而且不管用什么字体,英文字体总包含在其中。

    这些变量中LANG变量是在字符模式和图形界面下都用到的,在你登录系统后就被读取并生效,相信很多人在字符界面下输入Linux命令的时候经常会遇到显示出来的出错信息是乱码的情况,必需安装zhcon或者cce等字符模式下的中文软件才能正常显示中文的出错信息。如果我不要他显示中文乱码,我也不要为了看个很简单的出错信息而特意起用zhcon那我该怎么办呢?一个简单的零时解决的办法就是设置一下LANG变量:
    代码:

    [root@gucuiwen ~]# LANG="en_US.UTF-8"


    即把系统的语言临时设置成英文,或者更简单一点,可以直接这样:
    代码:

    [root@gucuiwen ~]# LANG=""


    即把LANG变量清空,由于英语是无论什么情况都支持的,LANG变量被清空后,系统就默认用英语。这样设置后,在字符模式下输出的出错信息等就是全英文的了。但这种设置是临时的,只是临时改变了LANG这个bash变量而已。当退出重新登录或者切换到其他字符终端后就无效了。到现在,读者应该想到了,只要把i18n文件中的LANG变量设置成英文的”en_US.UTF-8”,就可以永久解决这个问题了。修改后的文件如下:
    代码:

    #LANG="zh_CN.UTF-8" LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16" SUPPORTED="zh_CN.UTF-8:zh_CN:zh"


    请不要把LANG变量简单的清空,因为这个变量不仅在字符模式下用到,在图形界面下也用到,简单清空在字符模式下确实不会有问题,但在图形界面下,却会造成中文无法正常显示的情况,在过去Re d ha t 系列的版本中i18n文件中还有一个叫LANGUAGE的变量,专门控制图形界面下的语言设置,现在的FC系列中已经把这两个变量整合成一个变量了。

    经过修改这个变量,重新起动图形界面后,就可以看到界面一经完全是英文的了。但是按ctrl+空格却不能调出中文输入法,输入法菜单中也不能添加中文输入法。我们只简单的修改了LANG变量改变了系统语言设置,当然这一步也可以用图形界面下的工具修改,而不用亲自修改配置文件。

    二,关于运行等级

    这个问题似乎和这篇文章的的主题无关,但是介于现在越来越多的linux新手遇到linux图形界面的问题,而且在中文输入法设置过程中也牵涉到这些问题,因此想顺便提一下。

    现在的linux安装完成后,默认就运行在第5个系统运行级别。在SYSTEM V 风格的UNIX系统中,系统被分为不同的运行级别,这和BSD分支的UNIX有所不同,常用的为0~6七个级别:

    0 关机
    1 单用户
    2 不带网络的多用户
    3 带网络的多用户
    4 保留,用户可以自给定义
    5 图形界面的多用户
    6 重起系统

    由于现在的Linux系统安装完后就运行在第5个级别,即系统启动后直接进入图形界面,而不用在字符模式下登录后用startx或者xinit 来起动图形界面。这样看起来很方便。但是有什么坏处呢? 一旦你改变了某些设置,显示出问题的时候,系统不断在图形和字符间派徊,新手又不知道如何应对,十分麻烦,而且对于学习研究Linux的人来说,这样不利于了解和学习Linux底层的一些东西。很早就用Linux的老用户都知道,过去的Linux如 redhat6.0,都是默认运行接别为3,即使后来的RedHat9.0也可以在安装时候选默认字符登录还是图形登录。但现在的FC系列和其他大多数版本都不管三七二十一直接帮用户选择了直接图形界面登录。虽然对于大多数菜鸟来说,Linux确实越来越简单了,但是很多乐趣,那些新手也体验不到了。

    也许你不相信,直接图形登录到系统确实会有很多问题,因此,作为一个有6年Linux使用经验的Linux和Solaris 系统管理员,我强烈建议在系统安装完成后把系统的默认运行等级设置在第3级,在字符终端登录后,再手工输入startx 命令起动图形界面。可以用如下的方法修改:
    用文本编辑器修改 /etc/inittab文件,把
    代码:

    id:5:initdefault:


    这一行,修改成
    代码:

    id:3:initdefault:


    保存后就重起,系统就默认起动到字符界面。不同运行级别之间的差别的在于系统默认起动的服务的不同,如运行级别3默认不启动X图形界面服务,而运行级别5 却默认起动。本质上是没有区别的,更无所谓不同级别间功能强弱的问题。用户完全可自给定义不同级别的默认服务。在任何运行级别,用户都可用init 命令来切换到其他运行级别。

    三,调出中文输入法:

    我之所以要在上面费那么多笔墨来讲系统运行级别,是因为对系统的认识是从底部向上开始的。
    先把默认运行级别修改成3级别,当然,如果你实在不想修改,就临时用init 3命令切换到第3级。

    这样你就可以用startx起动图形界面,然后用ctrl+alt+backspace退出图形界面。请注意我说的是“退出”图形界面,而不是按ctrl+alt+F2切到一个字符终端。

    好了,一切由startx开始。当你需要在Linux系统中设置某个东西,或者配置某个服务的时候,最关键的是要知道,这一切是怎么开始的。知其然必需知其所以然。如果你有空把/etc/rc.d目录下的系统起动时运行的脚本通读一遍,就完全知道了/etc下的各种配置文件是用来干什么的、如何修改、修改后有什么效果等等。玩起系统来也能随心所欲想怎么改就怎么改。这就是我一直强调的,知其然一定要知其所以然。一定要深入系统,读脚本,学会用命令和手工修改系统配置文件。这样对系统才会有透彻的了解,整天用图形界面的工具是不能帮助你对系统有教为透彻深入的了解的,不同的linux系统提供的图形界面配置程序会不同,但命令和配置文件都是相同的,越是底层的东西越具有通用性。所以,应当先学会手动配置和修改系统配置文件,等熟悉了以后,再用图形界面的工具修改,以便减少工作量。

    上面提了一下我解决问题的思路。我是顺着这个思路开始的:

    中文输入法是在图形界面下使用的,是图形界面下运行的一个程序。而图形界面中的一切,都是由startx程序开启运行的。这就是问题的根源。

    找出startx的位置:
    代码:

    [root@gucuiwen ~]# which startx /usr/X11R6/bin/startx


    看startx是一个脚本还是二进制文件:
    代码:

    [root@gucuiwen ~]# file /usr/X11R6/bin/startx /usr/X11R6/bin/startx: Bourne shell script text executable


    发现startx是一个shell 脚本,于是我打开它分析并阅读,看看能不能找到一些关于输入法起动过程和相关变量的线索:
    代码:

    [root@gucuiwen ~]# vi /usr/X11R6/bin/startx


    我找到了该脚本在运行过程中调用的其他脚本和配置文件的信息:
    代码:

    userclientrc=$HOME/.xinitrc userserverrc=$HOME/.xserverrc sysclientrc=/etc/X11/xinit/xinitrc sysserverrc=/etc/X11/xinit/xserverrc


    并且知道,startx的目的是寻找系统中可用的桌面系统X服务器系统、以及用户自定义的参数,最终调用xinit来初始化X图形界面。我没有在startx脚本中找到直接和起动输入法相关的代码,于是就可以肯定,输入法相关的代码在startx调用的脚本中。于是我来到
    /etc/X11/xinit/ 目录下,阅读并分析该目录下的脚本,这些脚本有些是startx直接调用的,有些是被startx调用的脚本再调用的,存在着多级嵌套的关系,没有一点耐心还真是搞不清楚。最终我在/etc/X11/xinit/xinitrc.d目录中的xinput.sh脚本中找到了和输入法相关的代码:
    代码:

    lang_region=$(echo $tmplang | sed -e 's/"..*//') lang_region="zh_CN" #这一行是修改后加上去的 for f in $HOME/.xinput.d/${lang_region} " $HOME/.xinput.d/default " /etc/X11/xinit/xinput.d/${lang_region} " /etc/X11/xinit/xinput.d/default ; do [ -r $f ] && source $f && break done


    通过分析脚本,我知道,图形界面启动的时候脚本是根据LANG变量来决定是否启用输入法,以及启用哪种语言的输入法等。问题在于:我们还没有把LANG变量改成英语之前,系统得到的LANG变量是中文的,因此,它知道需要在图形界面启动过程中启用中文输入法,但把LANG变量改成英文后,系统根据LANG 变量知道系统是英文的,它便不再启动中文输入法,也不再设置和导出相关的变量,导致中文输入法不可用。因此,只要在这个脚本中,“骗”过系统,让输入法脚本“以为”系统是中文的,它不就运行中文输入法,并导出相关变量了吗? 于是,通过分析脚本,我在xinput.sh中的:
    代码:

    lang_region=$(echo $tmplang | sed -e 's/"..*//') 后面又添加了 lang_region="zh_CN"


    直接把lang_region=$(echo $tmplang | sed -e 's/"..*//') 修改成 lang_region="zh_CN" 也可以
    多添加一行是为了以后改过来方便,直接删除添加的一行就可以了。

    当然,把for循环中的/etc/X11/xinit/xinput.d/${lang_region}该成
    /etc/X11/xinit/xinput.d/zh _CN也可以。

    当然还有其他的改法,前提是你要懂得shell 脚本的语法,看得懂脚本的意思。这样修改后,即便系统是英文的,xinput.sh脚本也会去读取/etc/X11/xinit/xinput.d/zh _CN 文件并导出其中的内容、设置好XMODIFERS等输入法变量,并运行iiimx输入法程序。

    那么为什么不在图形界面启动后直接运行iiimx输入法程序呢?实验一下就知道,这根本不行。因为输入法程序是须要和被输入的应用程序配合运行的软件,在运行过程中需要导出很多变量。直接运行iiimx只运行了主程序,而没相关变量,没办法和应用程序配合完成输入工作。

    完成修改工作后,保存脚本文件。输入startx命令启动图形界面,就可以用全英文的系统界面和中文输入法了。但需要注意的是:由于系统是全英文的,默认输入法也是英文,通过GNOME或者KDE菜单起动的应用程序第一次输入中文的时候不能按ctrl+空格来切换到中文,需要用鼠标在任务栏上点击输入法图标切换,第一次切换后以后就可以用ctrl+空格快捷键来切换中英文输入法了。

    四,一些后续问题

    某些软件,比如Open Office,通过GNOME或者KDE菜单启动的话,即使切换到中文输入法也输不进中文,这是因为整个桌面系统的环境是英文的,软件“继承”了英文环境的相关变量,这些软件就“认死理”,就是不让输入中文,这时候可以打开一个gnome终端,把LANG变量临时设置成zh_CN.UTF-8 :

    [root@gucuiwen ~]# LANG="zh_CN.UTF-8"

    然后在这个gnome终端中,用命令打开open office:

    [root@gucuiwen ~]# oowriter &

    这样Open Office就“继承”了gnome终端的LANG变量,起动后,工具栏和菜单等都是中文的,而且能输入中文。推而广之,任何软件都可以用这种方法,根据需要,打开中文界面的软件和英文界面的软件。要以英文界面运行软件时,只要从GNOME或者KDE菜单打开,要用中文界面运行软件时,在终端中修该 LANG变量,从修改过LANG变量的终端中通过命令运行即可。当然,如果你还安装了其他语言的字体,你还可以以其他语言的界面来运行程序。如日语:

    [root@gucuiwen ~]# LANG="ja_JP.UTF-8"
    [root@gucuiwen ~]# gedit &

    我用上面的两条命令打开的gedit 编辑器就是全日语界面的,但是能输入中文和英文,并显示日文。从而达到,一个系统,多种语言和文字共存的目的。

    当然,前提是要安装了日语字体和日语locale,否则所有有文字的地方会全部显示成一连串问号。总之,要先懂得原理,之后想怎么玩就怎么玩,随心所欲,完全不受限制,充分享受用Linux的乐趣。


    五, 快速设置步骤:

    1.修改/etc/sysconf/i18n文件,把
    LANG="zh_CN.UTF-8"
    修改成:
    LANG="en_US.UTF-8"

    2.修改/etc/X11/xinit/xinitrc.d/xinput.sh文件,把其中一行:

    lang_region=$(echo $tmplang | sed -e 's/"..*//')

    修改成:

    lang_region=”zh_CN”

    3,重新启动图形界面,就可以用英文的界面并且正确显示中文和输入中文。

    --------------------------------------------------------------------

    以下为个人补充:

        用ssh登录LINUX时,ssh终端有时会出现乱码,即使你设置LANG=en_US.UTF-8也一样.我试过SecureCRT,OpenSSH,SSH Secure Shell的客户端,都出现过这问题.有时更改一下客户端的设置就好了,但是有时更改客户端的设置后只能运行一次某个命令,之后又变成乱码了.

        一个偶然的机会,在网上看到有人说将LANG变量的值改成"C"就行了.不过还真邪了,就来个LANG=C,什么问题都解决了,也不用设置客户端了,真是莫名其妙!不过到现在还不知道那个"C"是什么意思,它咋就那么厉害.

    展开全文
  • 解决linux 命令行乱码

    2016-04-22 00:53:07
    有些命令的中文显示结果会出乱码.


    有些命令的显示结果会出乱码,比如:



    解决方法:

    unset LANG

    后来发现显示特殊字符时还是会出现中文乱码,解决方法:

    LANG="C"



    展开全文
  • Linux之解决命令行cat命令中文乱码 临时解决cat中文乱码 cat test.txt | iconv -f GBK -t UTF-8 posted @ 2019-03-24 19:51 东京的樱花在巴黎飘下 阅读(...) 评论(...) 编辑 收藏 ...
  • 问题描述:在VMware上安装好Redhat Linux虚拟机之后,输入命令时,出现乱码现象,比如简单的date命令也出现乱码,cal命令更是只能显示数字,星期及日期处均为乱码。解决方法:需要修改i18n文件,该文件路径为 /etc/...
  • linux命令行乱码

    2017-06-04 17:11:05
    linux中,程序如果输出了不可见字符,比如cat一个二进制文件,就会导致命令行乱码,例如: 同时按下Ctrl+v+o+Enter,就会恢复。
  • 根据需求,项目需要读取linux系统环境参数,所以需要将top命令的输出结果输入到文件中。用重定向命令如下:top > result.txt 。用vi打开文件: vi result.txt 。显示的结果却是这样的,看图更方便:650) this.width=...
  • 【背景】:博主前几天刚入职一家创业公司,做算法实习生。头给分配的第一个任务就是在Linux服务下写Python脚本,来分析一些日志数据。在写脚本的过程中,遇到一个比较棘手的问题,写Python脚本时,输入的...输入命令v
  • 一般都是rz命令失败产生的文件,通过命令来删除这些乱码文件(命令链接)。 不知道是什么原因造成的,问了一下大牛,大牛说是机器编码不一致造成的,windows文件默认是gbk编码 ,linux文件默认是 utf-8编码,可以...
  • 输入命令显示乱码。 就将支持语言改为英文。 kinpui@kinpui:~$ echo $LANG zh_CN.UTF-8 #echo $LANG 是察看当前语言的命令。 #zh_CN.UTF-8 声明当前语言为zh_CN.UTF-8 kinpui@kinpui:~$ LANG=en_US #这命令...
  • 终端显示时出现乱码解决方式 可以看到我在使用ls 命令式,输出出现乱码,这是支持语言的问题,我们需要改变当前支持的语言即可 查看当前支持语言命令 echo $LANG UTF-8用于显示中文编码,但是我们的终端...
  • 解决 Linux 乱码问题 问题起因: 配置jdk 10.0.2,source /etc/profile 出现乱码。 解决问题思路: 出现乱码肯定是因为编码被更改。修改编码便可 解决步骤: 1、输入“locale” 命令直接查询当前编码 2...
  • 然后界面乱码,查阅资料,是由于二进制数据干扰了终端对字符的解析,使用命令reset可解决,你输入命令时仍然是乱码,但是不影响,输入完按enter键执行就可以恢复以前了 解决办法:reset(输入命令时仍然是乱码,...
  • putty在登陆Linux系统运行命令中文显示乱码 在putty中默认的字体和字符集并不适合显示中文,在putty窗口上右键,选择change settings 在打开的配置窗口左边选择 Appearance,在右边点 Font ...
  • 当文件名为乱码的时候,无法通过键盘输入文件名,所以在终端下就不能直接利用rm, mv等命令管理文件了。 但是我们知道每个文件都有一个 i 节点号,我们可以考虑通过 i 节点号来管理文件。 首先,我们要取得文件的 i ...
  • 今天在使用linux系统中文语言,遇到一个问题,就是终端输入命令的时候中文显示乱码。出现这个情况一般是由于没有安装中文语言包,或者设置的默认语言有问题导致的。解决方法如下: 查看当前系统语言  ...
  • 但是输入rz命令没有出现本地窗口,而是打印出waiting to receive.和一串不明其意的字符 这是因为rz命令需要终端的支持(即rz命令是在客户端里面执行的),比如终端就是你用来连接远程服务器的客...
  • 首先,使用rz,sz命令需要需要给服务器安装lrzsz: yum -y install lrzsz 安装使用如果出现乱码文件 可以使用-e:rz -e
1 2 3 4 5 ... 20
收藏数 28,422
精华内容 11,368
关键字:

linux 乱码 输入命令后