Chinaunix首页 | 论坛 | 博客
  • 博客访问: 61219
  • 博文数量: 17
  • 博客积分: 650
  • 博客等级: 上士
  • 技术积分: 192
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-23 13:47
文章分类
文章存档

2011年(1)

2010年(16)

我的朋友

分类: LINUX

2010-03-19 13:34:05

一、简介
PuTTY 是一个跨平台的远程登录工具,包含了一组程序,包括:

  •     PuTTY (Telnet 和 SSH 客户端) 
  •     PSCP (SCP 客户端, 命令行下通过 SSH 拷贝文件,类似于 Unix/Linux 下的 scp 命令) 
  •     PSFTP (SFTP 的命令行客户端,类似于 FTP 的文件传输,只不过使用的是 SSH 的 22 端口,而非 FTP 的 21 端口,类似于 Unix/Linux 下的 sftp 命令) 
  •     PuTTYtel (仅仅是一个 Telnet 客户端) 
  •     Plink (命令行工具,执行远程服务器上的命令) 
  •     Pageant (PuTTY、PSCP、Plink 的 SSH 认证代理,用这个可以不用每次都输入口令了) 
  •     PuTTYgen (用来生成 RSA 和 DSA 密钥的工具).
虽然包含了这么多,但平时经常见到只是用 PuTTY 登录服务器,完全没有发挥出 PuTTY 的强大功能。
PuTTY 作为一个组件也存在于很多的软件中,比如 FileZilla、WinSCP
在后面的文字中,如非特别说明,默认的登录的协议是 SSH。毕竟用 PuTTY 主要就是登录 SSH 主机,用 Telnet、RLogin 没法体现出 PuTTY 的强大功能。
二、中文乱码问题
 PuTTY 的默认字体和字符集并不适合中文显示, 在窗口标题上点击右键,选择 Change Settings...

在打开的配置窗口左边选择 Appearance,在右边点 Font settings 里面的 Change 按钮,选择好中文字体,比如:宋体、新宋体之类的

字体选择好了,还要确定字符集。
选择配置窗口左边的 Translation,在右边的 Received data assumed to be in whichcharacter set 下拉列表中选择最后一个“Use font encoding”,最后点下面的 Apply 按钮就生效了。

重新执行命令 ls -l,就可以正常看到中文了

  怎么还是乱码?如果还是乱码的话,就执行以下命令,看看系统的字符集
echo $LANG $LANGUAGE

哦,原来系统的字符集是 UTF-8 呀。重新返回上面选择字符集的那一步, 选择配置窗口左边的 Translation,在右边的Received data assumed to be in which character set 下拉列表中选择“UTF-8”

这下99%的情形下,汉字是不会有乱码了。最后,总之一下 PuTTY 中乱码的解决办法:
先看看系统的字符集,如果是 UTF-8 的,那就简单了,选择好中文字体,然后编码选择 UTF-8 就行了。
如果编码是 GB2312、GBK、GB18030,当然也包括 BIG5这些,在 PuTTY 的编码选择中看不到这些编码,那就选择最后一个“Use font encoding”,绝大部分情况下这样就没啥问题了,反正我是没碰到有什么例外的情况。
现在的 Linux 如果默认语言选择为中文,默认的编码就是 UTF-8 了。以前安装 Redhat AS 3 时,语言选择为中文,默认的编码是zh_CN.gb2312, zh_CN.gb18030,好像从 AS 3 update 6 开始,包括现在的AS4、AS5,中文的默认编码都成了 zh_CN.utf8。至于 Debian、Ubuntu 等等这些上面,好像一直都是 UTF-8。
至于是使用 UTF-8呢,还是用 GB2312、GBK 或者 GB18030呢?我个人还是倾向于 UTF-8。毕竟我们使用的大多数软件都是国外的,处理中文编码多多少少有些问题,PuTTY 自然也不例外。
下面的这个图上,我把终端编码修改为 zh_CN.utf8,然后也按照前面的所说的方法把 PuTTY 的字符集修改为 UTF-8。然后在终端中输入汉字“柴锋”,按左方向键,可以看到汉字显示很正常。

我重新把终端的编码修改为 zh_CN.gb2312,同样的,把 PuTTY 的字符集修改为最后一个“Use font encoding”。还是在终端上输入汉字“柴锋”,按下左方向键以后,会看到汉字乱码了。

至于用哪个编码,主要还是看领导的决定了,我们的领导就喜欢 GBK,连 GB18030 都不行。以前在用 Debian 的时候,好像默认都不支持GBK 编码。这几年公司的开发在汉字编码问题上出过几次麻烦,还不就是在 ISO8859-1,GB2312/GBK/GB18030和UTF-8上折腾来折腾去。
给大家看一张 emacs 的截图,看看上面的这么多语言的文字共同显示,这个会是用 GB2312/GBK/GB18030 的编码么?
Click here to open new window
CTRL+Mouse wheel to zoom in/out
用 UTF-8 也不是为了要在一个屏幕上显示好几种不认识的文字,也不一定非要是跟国际接轨弄个外包给老外开发程序做个其他语言的界面让老外用,起码不要在那么多编码里折腾了,顶多两个 ISO8859-1 和 UTF-8。
 三、复制和粘贴
在 PuTTY 里面怎样选中,复制和粘贴?在 PuTTY 的窗口里面复制、粘贴可不能用 Windows 里的这些 Ctrl+C, Ctrl+Ins, Ctrl+V 这些快捷键,Ctrl+C 在控制台上可是终止当前的命令执行。
PuTTY 的选择、复制、粘贴这些操作都是通过鼠标来完成的。
在 Window-〉Selection 这里可以设置复制和粘贴的方式。

默认的 Action of mouse buttons (鼠标按键的功能)的选项是Compromise,这种方式下选中有两种方式,一是直接用鼠标左键拖拉选中就可以了,二是用鼠标中键单击选中区域的开头,用滚动条拖拉到期望选中区域的末尾,再用鼠标中键单击,就可以选中了。
选中以后,单击鼠标左键就把选中部分复制到剪贴板了。粘贴也很简单,单击鼠标右键。
Action of mouse buttons 的第一个选项是 Windows (Windows 方式的),鼠标中键的操作跟前面提到的一样。右键不是粘贴了,而是打开了右键菜单。

其实这个右键菜单在标题栏上点击,也都可以看得到。
四、集成到WinSCP中
 WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。 
 WinSCP有两种界面可供您选择。 
  你可以在安装时选择喜欢的界面,也可以以后改变设置。 
  如果你是第一次使用WinSCP,建议选择Windows Explorer界面,因为Windows用户比较熟悉这个界面。当然,如果你习惯Norton Commander风格,就选择Norton Commander界面,它注重于方便的键盘操作,你完全可以脱离鼠标,更快地进行操作。
  winscp命令:
  call 执行任意远程Shell命令
  cd 改变远程工作目录
  chmod 改变远程文件权限
  close 关闭会话
  exit 关闭所有会话并结束程序
  get 从远程目录下载文件到本地目录
  help 显示帮助
  keepuptodate 在一个远程目录连续反映本地目录的改变
  lcd 改变本地工作目录
  lls 列出本地目录的内容
  ln 新建远程符号链接
  lpwd 显示本地工作目录
  ls 列出远程目录的内容
  mkdir 新建远程目录
  mv 移动或者重命名远程文件
  open 连接到服务器
  option 设置或显示脚本选项的值
  put 从本地目录上传文件到远程目录
  pwd 显示远程工作目录
  rm 删除远程文件
  rmdir 删除远程目录
  session 列出连接的会话或者选择活动会话
  synchronize 用一个本地目录同步远程目录
若机器上PUTTY和WinSCP都安装后,在WinSCP中可以直接用PUTTY来打开当前会话。因为PUTTY有很多优点,如支持C的语法标记显示。方便用VI等编辑C程序。
注:本文章部分内容参考自PuTTY 中文教程作者:柴锋   2006年11月

阅读(2027) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~