Featured image of post 使用Cygwin在Windows上打造类Unix(Linux)环境

使用Cygwin在Windows上打造类Unix(Linux)环境

长期接触Linux的小伙伴们难免在项目开发中遇到“误入”Linux命令的尴尬场景。

1
2
3
C:\workspace\my-project>ll
'll' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

❓ 何为Cygwin?

Cygwin是许多自由软件的集合,用于在Windows上,“运行”类UNIX系统。Cygwin的主要目的是通过重新编译,将*NIX系统上的软件移植到Windows上。

简而言之,Cygwin在Windows上提供了类似UNIX的工具。

需要注意的是,这不代表Cygwin可以直接在Windows上执行UNIX上的原生应用(如二进制包、deb包等),如果你的需求如此,请使用虚拟机或WSL。

那么为什么不直接安装虚拟机或WSL呢?——虚拟机和宿主机隔着一层”厚障壁“,即使是号称无缝集成的WSL2,执行也会带来一定的时间与内存开销。相反,Cygwin运行的就是土生土编译的PE(_portable executable)_文件,效率更高更方便。

安装Cygwin

我们开始吧!

首先从Cygwin官网下载最新安装包文件 https://www.cygwin.com/setup-x86_64.exe

下载后的setup不必删除,如果需要安装新的包时仍然需要这个文件。

当然,从互联网下载

接着选定安装路径,请记住这个路径,因为我们即将添加到PATH环境变量

路径可以随意填写

选定本地包目录,随意。

设置系统代理,根据实际情况填写。

选择镜像,建议选择国内高校,此处以清华大学开源软件镜像站为例

选择Install from Internet, 在”User URL”处输入以下地址:

https://mirrors.tuna.tsinghua.edu.cn/cygwin/

接着需要选择要安装的包,首先我们设置View为Full,然后在Search框内添加需要的软件包,在下方结果页中的New中选择最新的版本号即可,以lynx为例,稍后我们需要lynx下载apt-cyg

完成!最后可以勾选创建Cygwin Terminal桌面图标与启动菜单,如果你打算用自己喜欢的终端运行(如Mobaxterm、Cmder等,稍后本文将以Windows Terminal配置方法为例)则不用勾选。

调教Cygwin

  • 设置环境变量,越往上优先级越高,不建议超过系统优先级

  • 配置包管理器apt-cyg

1
2
lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /bin
  • 安装Nano
1
apt-cyg install nano
  • 编辑~/.bashrc,添加如下内容供参考
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
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 -la'                              # long list
alias la='ls -A'                              # all but . and ..
alias l='ls -CF'                              #

alias apt='apt-cyg'
alias apt-get='apt-cyg'

# 避免日常手误
alias cd..='cd ..'
# 退出当前目录
alias ..='cd ..'
alias ...='cd ../../..'
alias ....='cd ../../../..'
alias .....='cd ../../../..'

随后$ source .bashrc

配置Windows Terminal

参考内容如下

如有问题,欢迎留言。

以上。

后记

Cygwin 和MinGW 的区别与联系是怎样的?

  • 区别(小结):Cygwin是模拟 POSIX 系统,源码移植 Linux 应用到 Windows 下;MinGW 是 用于开发 Windows 应用的开发环境。
  • 联系:均提供了部分 Linux 下的应用,多跑在 Windows 上;MinGW 作为 Cygwin 下的软件包, 可以在 Cygwin 上运行。
署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)
最后更新于 2023-02-12 17:29 CST