ssh 與 locale

1 個人 ubuntu 11.10 使用 zh_CN.UTF-8  ,致使鏈接到 ssh 服務器上顯示中文,原本是很方便的,可是最近要監控某些功能,須要ssh 服務器(en_US.UTF-8)顯示英文 !html

  
  
  
  
  1. locale 
  2. LANG=zh_CN.UTF-8 
  3. LANGUAGE=zh_CN:en_US:en 
  4. LC_CTYPE=zh_CN.UTF-8 
  5. LC_NUMERIC="en_US.UTF-8" 
  6. LC_TIME="en_US.UTF-8" 
  7. LC_COLLATE=zh_CN.UTF-8 
  8. LC_MONETARY="en_US.UTF-8" 
  9. LC_MESSAGES=zh_CN.UTF-8 
  10. LC_PAPER="en_US.UTF-8" 
  11. LC_NAME="en_US.UTF-8" 
  12. LC_ADDRESS="en_US.UTF-8" 
  13. LC_TELEPHONE="en_US.UTF-8" 
  14. LC_MEASUREMENT="en_US.UTF-8" 
  15. LC_IDENTIFICATION="en_US.UTF-8" 
  16. LC_ALL

2 ssh -v 參數能夠顯示整個ssh 過程,注意紅色字!linux

  
  
  
  
  1. ssh -v root@xen 
  2. OpenSSH_5.8p1 Debian-7ubuntu1, OpenSSL 1.0.0e 6 Sep 2011 
  3. debug1: Reading configuration data /etc/ssh/ssh_config 
  4. debug1: Applying options for * 
  5. debug1: Connecting to xen [192.168.57.71] port 22. 
  6.  
  7. .......部分略
  8.  
  9. debug1: Sending environment. 
  10. debug1: Sending env LC_MESSAGES = zh_CN.UTF-8 
  11. debug1: Sending env LC_COLLATE = zh_CN.UTF-8 
  12. debug1: Sending env LANG = en_US.UTF-8 
  13. debug1: Sending env LC_CTYPE = zh_CN.UTF-8 
  14. Last login: Tue Dec  6 10:52:15 2011 from 192.168.6.154 
  15. [LOAD] 
  16. 0.00 0.00 0.00 1/101 17330 
  17. [DISK] 
  18. 文件系統      類型    容量  已用 可用 已用% 掛載點 
  19. /dev/sda1     ext3    9.7G  4.9G  4.4G  53% / 
  20. /dev/sdb1     ext3     79G   58G   18G  77% /data 
  21. tmpfs        tmpfs    250M     0  250M   0% /dev/shm 
  22. /data/iso/linux/rhel-server-5.4-x86_64-dvd.iso 
  23.            iso9660    3.4G  3.4G     0 100% /mnt/rhel5.4-x86_64 
  24. /data/iso/linux/CentOS-5.5-x86_64-bin-DVD-1of2.iso 
  25.            iso9660    4.1G  4.1G     0 100% /mnt/centos5.5-x86_64 
  26. /data/iso/linux/rhel6.iso 

3 解決方法ubuntu

  
  
  
  
  1. $ tail -n 3 .bash_profile #將如下兩行添加到 ssh 服務器下 某用戶 ‘.bash_profile’ 便可!
  2. locale | sed -r 's/zh_CN/en_US/g' > .lang
  3. source ~/.lang

  4. 192.168.57.71 [~]$ df -Th 
  5. Filesystem    Type    Size  Used Avail Use% Mounted on 
  6. /dev/sda1     ext3    9.7G  4.9G  4.4G  53% / 
  7. /dev/sdb1     ext3     79G   58G   18G  77% /data 
  8. tmpfs        tmpfs    250M     0  250M   0% /dev/shm 
  9. /data/iso/linux/rhel-server-5.4-x86_64-dvd.iso 
  10.            iso9660    3.4G  3.4G     0 100% /mnt/rhel5.4-x86_64 
  11. /data/iso/linux/CentOS-5.5-x86_64-bin-DVD-1of2.iso 
  12.            iso9660    4.1G  4.1G     0 100% /mnt/centos5.5-x86_64 
  13. /data/iso/linux/rhel6.iso 
  14.            iso9660    3.2G  3.2G     0 100% /mnt/rhel6-x86_64 

 

拓展centos

怎樣設定locale呢?  bash

  
  
  
  
  1. 設定locale就是設定12大類的locale分類屬性,即 12個LC_*。除了這12個變量能夠設定之外,爲了簡便起見,還有兩個變量:LC_ALL和LANG。
  2. 它們之間有一個優先級的關係: LC_ALL>LC_*>LANG 能夠這麼說,LC_ALL是最上級設定或者強制設定,而LANG是默認設定值。 
  3. 一、若是你設定了LC_ALL=zh_CN.UTF-8,那麼無論LC_*和LANG設定成什麼值,它們都會被強制服從LC_ALL的設定,成爲 zh_CN.UTF-8。 
  4. 二、假如你設定了LANG=zh_CN.UTF-8,而其餘的LC_*=en_US.UTF- 8,而且沒有設定LC_ALL的話,那麼系統的locale設定以LC_*=en_US.UTF-8。 
  5. 三、假如你設定了LANG=zh_CN.UTF- 8,而其餘的LC_*,和LC_ALL均未設定的話,系統會將LC_*設定成默認值,也就是LANG的值 zh_CN.UTF-8 。 
  6. 四、假如你設定了 LANG=zh_CN.UTF-8,而其餘的LC_CTYPE=en_US.UTF-8,其餘的LC_*,和LC_ALL均未設定的話,
  7. 那麼系統的 locale設定將是:LC_CTYPE=en_US.UTF-8,其他的 LC_COLLATE,LC_MESSAGES等等均會採用默認值,也就是 LANG的值,
  8. 也就是LC_COLLATE=LC_MESSAGES=……= LC_PAPER=LANG=zh_CN.UTF-8。  
  9.  
  10. 因此,locale是這樣設定的: 
  11. 一、若是你須要一個純中文的系統的話,設定LC_ALLzh_CN.XXXX,或者 LANGzh_CN.XXXX均可以,固然你能夠兩個都設定,但正如上面所講,LC_ALL的值將覆蓋全部其餘的locale設定,不要做無用功。 
  12. 二、若是你只想要一個能夠輸入中文的環境,而保持菜單、標題,系統信息等等爲英文界面,那麼只須要設定 LC_CTYPE=zh_CN.XXXX,LANGen_US.XXXX就能夠了。這樣LC_CTYPE=zh_CN.XXXX,而 LC_COLLATE=LC_MESSAGES=……= LC_PAPER=LANG=en_US.XXXX。 
  13. 三、假如你高興的話,能夠把12個 LC_*一一設定成你須要的值,打造一個古靈精怪的系統: LC_CTYPE=zh_CN.GBK/GBK(使用中文編碼內碼GBK字符集); LC_NUMERIC=en_GB.ISO-8859-1(使用大不列顛的數字系統) LC_MEASUREMEN=de_DE@euro.ISO-8859-15(德國的度量衡使用ISO-8859-15字符集) 羅馬的地址書寫方式,美國的紙張設定……。估計沒人這麼幹吧。
  14. 四、假如你什麼也不作的話,也就是LC_ALL,LANG和LC_*均不指定特定值的話,系統將採用 POSIX做爲lcoale,也就是C locale。 

 

結束服務器

好了繼續吧!ssh

相關文章
相關標籤/搜索