如何让 cygwin终端中显示的中文改成英文
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让 cygwin终端中显示的中文改成英文相关的知识,希望对你有一定的参考价值。
参考技术A有下面一些方法可供选择,请您挨个尝试一下即可:
方法一:
启动Terminal
2. 按苹果+I显示简介,选择仿真,去掉忽略非ASCII字
3. 选择显示,选择宽字符当成两个字符
编码选择 UTF-8
最后再点将设置作为预设
现在终端下键入ls -w已经可以显示中文文件名了,但是还不可以输入
4. 切换到root, 修改/etc/bashrc, 加入
stty pass8
bind ‘set convert-meta off’
bind ‘set meta-flag on’
bind ‘set output-meta on’
alias ls=”ls -wG”
储存,再启动terminal就可以了,现在在terminal下也可以输入中文了。
方法二:
可能就要适应英文环境了,面对一个纯英文的文本界面吧!如果安装过程中选择了中文界面,则Mac os x会自动将安装够的系统语言配置为中文,但是没有安装汉字系统,汉字是无法显示的,只能显示乱码。
我们需要修改配置文件/etc/default/locale 中文设置为:
LANG=”zh_CN.UTF-8″
LANGUAGE=”zh_CN:zh”
修改为:
LANG=”en_US.UTF-8″
LANGUAGE=”en_US:en”
重启之后就好了~
终端按tab键出现/bash: warning: setlocale: LC_CTYPE: cannot change 或者 远程ssh时,使用tab自动补全时没问题,但在机房电脑就出现了“-bash: warning: setlocale: LC_CTYPE: cannot change locale (zh_CN.utf8) 或者 warning: setlocale: LC_CTYPE: cannot change locale (UTF-8)”的警告错误,解决方法如下:
进入这服务器端,编辑 /etc/profile,
sudo vi /etc/profile
在文件尾部添加一语句:
export LC_ALL=C
然后重启即可。
制作一个打开3个cygwin终端并执行命令的脚本(windows)
【中文标题】制作一个打开3个cygwin终端并执行命令的脚本(windows)【英文标题】:Making a script which opens 3 cygwin terminals and executes the command (windows) 【发布时间】:2020-12-15 14:49:07 【问题描述】: 我想做什么:制作一个打开3个cygwin终端in windows的脚本,每个cygwin终端应该导航到特定目录并运行source .env
命令,然后运行npm start
目前我能做的是在 bat 脚本中执行命令:
终端 #1) cd C:\Users\Username\Desktop\node-service-1 && echo "source .env" && npm run start
终端 #2) cd C:\Users\Username\Desktop\node-service-2 && echo "source .env" && npm run start
3 号航站楼)cd C:\Users\Username\Desktop\node-service-3 && echo "source .env" && npm run start
相反,我想做同样的事情,但在 cygwin 中并保持 cygwin 处于打开状态。
原因是我不使用cygwin时source .env不起作用。
【问题讨论】:
请确认或修改:您是否正在运行像mintty
这样的终端仿真器和交互式bash
?并从那里你想执行一个bash
脚本来启动另外3 个具有单独启动目录的终端?在每个终端中,看起来你想运行bash
来解释.env
加上执行npm
作为子进程,对吧? npm
退出后每个 bash 和终端是否应该退出?
【参考方案1】:
您的基本问题是您想创建一个新的 bash 会话并最初运行一些设置命令,然后保持 bash 会话打开。您在此处的新终端中启动它并不是那么重要。
我会(错误地)使用你的~/.bashrc
和一个环境变量来传达是否启动服务,如果是,它是哪一个:在你的 .bashrc 末尾,做一个
if [[ -n $node_service ]]
then
ns_dir=/cygdrive/c/Users/Username/Desktop/node-service-$node_service
if [[ -d $ns_dir ]]
then
cd $ns_dir
echo source .env # What's the purpose of this?
npm run start
else
echo "ERROR: Directory '$ns_dir' does not exist"
fi
# Make sure that npm is not run again in a bash subshell
node_service=
fi
通过此设置,您可以编写 Windows 批处理脚本,执行以下操作:
set node_service=1
start c:\cygwin64\bin\mintty.exe /usr/bin/bash -l -i
对于每个节点。我在这里使用了 mintty 作为示例,但是您可以将其调整为您正在使用的任何终端程序。
【讨论】:
我试过这个,但是当我通过双击运行批处理脚本时,它只会打开终端并且不执行任何操作。打开终端后我应该在终端中输入一些内容吗? @MuhammadUsman :首先打开一个终端 cmd 窗口,然后输入我建议的批处理脚本。它至少应该输出一个有用的错误信息。您还可以执行/usr/bin/bash -l -i -x
,它应该可以跟踪 bash 在启动时执行的命令。
@MuhammadUsman :我刚刚验证过:至少使用mintty
,你不需要写start
。在我的系统上,和我们没有start
的效果是一样的,但是为了简单我建议你去掉。【参考方案2】:
您可以创建三 (3) 个文件。前两 (2) 个属于用户的 Cygwin 主目录。第三个,.bat 脚本,可以在任何地方。
=== ~/.env === C:\cygwin64\home\username\.env
export AVAR=something
=== ~/doit.bash === C:\cygwin64\home\username\doit.bash
cd $(cygpath -u $USERPROFILE)/Desktop/$1
echo source ~/.env
echo npm run start
=== trycyg.bat
FOR %%A IN (node-service-1 node-service-2 node-service-3) DO (
START "node1" "C:\cygwin64\bin\bash.exe" --login -i ~/doit.bash %%~A
)
【讨论】:
我试过这个,但每当我点击 trycyg.bat 时,它就会一直打开终端并立即关闭。然后我打开 cmd 并导航到 trycyg.bat 文件,然后尝试使用start trycyg.bat
打开然后它打开另一个 cmd,其中显示:``` C:\Users\Username\Desktop>FOR %A IN (node -service-1) DO (START "node1" "C:\cygwin64\bin\bash.exe" --login -i ~/doit.bash %~A ) C:\Users\Username\Desktop>(START "node1 " "C:\cygwin64\bin\bash.exe" --login -i ~/doit.bash node-service-1 ) C:\Users\Username\Desktop> ``` 然后什么都没发生【参考方案3】:
您可以在 test.sh 中保存以下脚本并运行它:
#!/usr/bin/env bash
cd C:/Users/Username/Desktop
for service in node-service-1 node-service-2 node-service-3; do
cd $service && cygstart bash -c "source .env && npm run start" && cd -
done
要进行故障排除,请运行以下命令:
cd C:/Users/Username/Desktop
cd node-service-1 && bash -c "source .env && npm run start" && cd -
【讨论】:
每当我尝试运行./test.sh
文件时,它只会打开一个终端并立即关闭。以上是关于如何让 cygwin终端中显示的中文改成英文的主要内容,如果未能解决你的问题,请参考以下文章