如何让 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终端中显示的中文改成英文的主要内容,如果未能解决你的问题,请参考以下文章

cygwin与vim配置

cygwin下面装apt-cyg后,装软件就方便多了,及vscode中文乱码问题

安装 cygwin 包管理器

安装 cygwin 包管理器

安装 cygwin 包管理器

安装 cygwin 包管理器