zoukankan      html  css  js  c++  java
  • cygwin putty安装配置及配置显示中文

    准备:

    1.下安装cygwin2.注意选择sshd组件

    2.安装putty
     

    步骤:

    1. 修改环境变量
       在path中添加putty所在目录的路径,让putty能在任何位置直接执行

    2. 修改cygwin的启动批处理文件
       cygwin.bat,如下:
          @echo off
          D:
          chdir D:\cygwin\bin
          bash -login -i -c "ps -e | grep -c sshd  || /usr/sbin/sshd"
          start putty localhost
      
       脚本说明:ps -e | grep -c sshd  || /usr/sbin/sshd命令,可以检查是否已经有sshd运行,如果没有则启动sshd。
       补充说明:
       为了不让在启动的时候闪出一下DOS窗口,在指向这个批处理文件的桌面快捷方式属性中:运行方式选择:最小化
       启动这个脚本后,要输入用户名和密码:就是windows机器的用户名和密码(如果不确定可以使用passwd命令修改)  

    3. PUTTY设置
       (1)Window/Appearance选项下,选择字体Fixedsys使能显示中文。
       (2)Conection/Data选项下,选择协议SSH,设置ssh登录用的用户名,就是windows机器的用户名,
       (3)Session选项下,把设置保存到Default Settings
     
    4. 用户文件设置
       在登录cygwin后的home目录下,修改.inputrc文件,添加下面的行

             # Allow 8-bit input/output
             set meta-flag on
             set convert-meta off
             set input-meta on
             set output-meta on
       
      修改.bash_profile文件,添加下面的内容

             alias ls='ls --color --show-control-chars'
             export LC_ALL=zh_CN.GB23122
             stty cs8 -istrip
             stty pass8
             export LESSCHARSET=latin1
      
     
    5. 自动登录设置
       尽管putty可以设置默认登录用户名,但每次还要输入密码。太麻烦。让ssh使用密钥认证,不必每次登录输入密码。使用下面的方法:
         (1)使用puttygen生成密钥对(菜单key下),公钥保存到public.txt文件(任意目录下), 私钥保存到 private.ppk文件(任意目录下).
         (2)登录到cygwin,把公钥导入,运行:ssh-keygen -X -f public.txt >> ~/.ssh/authorized_keys2。主要指定public.txt的路径
         (3)在putty界面上,SSH/Auth选项下,选择保存的私钥文件。Session下把设置保存到Default Settings
     

    cygwin\home\username\.bashrc

    # 让ls和dir命令显示中文和颜色 
    alias ls='ls --show-control-chars --color' 
    alias dir='dir -N --color' 
    # 设置为中文环境,使提示成为中文 
    export LANG="zh_CN.GBK" 
    # 输出为中文编码 
    export OUTPUT_CHARSET="GBK"

    cygwin\home\username\.inputrc

    # 可以输入中文 
    set meta-flag on 
    set output-meta on 
    set convert-meta off 
    # 忽略大小写 
    set completion-ignore-case on

    , cygwin.bat: 

    @ECHO OFF 
    SET MAKE_MODE=UNIX 
    SET PATH=d:\cygwin\bin;%PATH% 
    set HOME=d:\home 
    bash 


    2, 在~目录下的.bashrc文件中加入: 

    # 让ls和dir命令显示中文和颜色 
    alias dir='dir -N --color' 
    alias less='/bin/less -r' 
    alias ls='/bin/ls -F --color=tty --show-control-chars' 
    # 设置为中文环境,使提示成为中文 
    export LANG="zh_CN.GB2312" 
    # 输出为中文编码 
    export OUTPUT_CHARSET="GB2312" 

    3,bash将到D:\home目录下寻找初始化文件。 缺省情况下,bash命令行不能输入汉字,必须在~目录下建立文件.inputrc,内容如下: 
    # 忽略大小写 
    set completion-ignore-case on 
    # 可以输入中文 
    set convert-meta off 
    set input-meta on 
    set output-meta on 


    跟emacs存在同样的问题,就是显示不了uft8编码下的汉字

    Cygwin工具是GNU工具在WIN32平台上的移植版本,它尽可能地遵循POSIX标准。其中包括C/C++编译器GCC,textutils,fileutils,bash等等。本文将阐述如何在Cygwin(B20)中使用中文。

    Cygwin通过cygnus.bat(位于X:\cygnus\cygwin-b20)启动bash,内容如下:

    @ECHO OFF
    
    SET MAKE_MODE=UNIX
    SET PATH=c:\cygnus\CYGWIN~1\H-I586~1\bin;%PATH%
    bash

     

    在其中加入(bash之前)一句:

    set HOME=X:\homename

     

    X:为盘符,\homename为已存在的目录名,例如C:\myHome。bash将到X:\homename目录下寻找初始化文件。 缺省情况下,bash命令行不能输入汉字,必须在X:\homename目录下建立文件.inputrc,内容如下:

    set meta-flag on
    
    set convert-meta off
    set output-meta on
    这几行主要是实现命令行上实现汉字的输入以及显示。 比如想输入汉字的文件名等等。

     

    注意:在Cygwin-B20中.inputrc必须为UN*X文件格式。
    bash在Windows 9X中不能接受来自DOS窗口的汉字输入。

    为了让less命令显示汉字在X:\homename\.bashrc中加入:

    export LESSCHARSET=latin1

     

    为了让ls命令显示汉字文件和目录名在X:\homename\.bashrc中加入:

    alias ls='ls -N --color'
    


    #====================================.bashrc 2009-10-09 cygwin 1.70==================================
    # Shell Options
    # #############


    alias ls='ls -hF --color=tty' # classify files in colour
    alias dir='ls --color=auto --format=vertical'
    alias vdir='ls --color=auto --format=long'
    alias ll='ls -l' # long list
    alias la='ls -A' # all but . and ..
    alias l='ls -CF' #

    # Some example functions
    # function settitle() { echo -n "^[]2;$@^G^[]1;$@^G"; }

    ###################### 以下为添加部分 ################################
    # cygwin中取\usr\share\locale\zh_CN\LC_MESSAGES中*.mo文件,如果提示信息中
    # 的字符集为utf8则会显示有误(不知何解?,magiclinux无类似情况),为gb2312
    # 则正常,大概与gettext这个模块有关,这个模块的作用是使linux程序提示信息
    # 区域话,即不同地区用不同语言,即常说的i18n;像我们设置的zh_CN.GBK,“.”
    # 之前部分“zh_CN”表示地区即“中国大陆”,后面部分“GBK”表示字符集编码,
    # 像我们下面的设置,当程序调用时会到\usr\share\locale\目录中查找,发现地
    # 区为“zh_CN”则到该目录中查找程序对应的*.mo文件,*.mo文件的名称是在调用
    # 的程序中设置了的。然后取该语种的对应提示,然后按编码(在mo文件中指明了)
    # 处理该文字。
    # 当然这些不是自动处理的,要在程序中调用像setlocale、textdomian、gettext
    # 这样的函数处理。
    # 在cygwin中有些程序,做了下面的设置,因为对应的mo文件中编码为utf8而无法
    # 显示,我是直接将它删除,之后程序会因为找不到mo文件而用默认的英文来显示
    # 的。(下面的编码设置并没有错,应该是cygwin程序中的BUG,只是设置了LC_ALL
    # 就没必要设LANG了,有的文档上面这样写的:))

    export set LC_ALL=zh_CN.GBK
    export set LANG=zh_CN.GBK
    #export set LC_CTYPE=zh_CN.UTF-8
    #export set CHARSET=UTF-8
    #==================================== bashrc end ==================================
    
    
    
    
    #==================================== .inputrc  ==================================
    
    

    # 控制输入输出的文件 jiangxf [2009-10-09 星期五]

    "\e[3~": delete-char

    # VT
    "\e[1~": beginning-of-line
    "\e[4~": end-of-line

    # kvt
    "\e[H": beginning-of-line
    "\e[F": end-of-line

    # rxvt and konsole (i.e. the KDE-app...)
    "\e[7~": beginning-of-line
    "\e[8~": end-of-line

    # VT220
    "\eOH": beginning-of-line
    "\eOF": end-of-line


    # 关闭bash命令行8字节字符转义符的转换
    set convert-meta off

    # 使bash命令行支持8字节字符输入
    set input-meta on

    # 使bash命令行支持8字节字符输出
    set output-meta on
    转自: http://hi.baidu.com/epeak/blog/item/bb17adb1ea1cca51092302b9.html
  • 相关阅读:
    NULL、nil、Nil、NSNull的区别
    URL中有中文字符,转码方法
    iOS极光推送 点击推送消息跳转页面
    iOS中响应者链条-触摸事件
    WKWebKit基础
    iOS开发之详解正则表达式
    iOS中正则表达式的三种使用方式
    VS下载Github的项目引用报错
    RabbitMQ环境搭建
    ASP.NET Core之NLog使用
  • 原文地址:https://www.cnblogs.com/itgg168/p/2784788.html
Copyright © 2011-2022 走看看