Cygwin

本文介绍了Cygwin作为在Windows上模拟Unix环境的工具,特别关注如何安装OpenSSH并解决管理员账户权限限制的问题。讨论了Cygwin与Windows管理员账户之间的兼容性挑战,以及在配置过程中遇到的组权限问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Cygwin项目的目的是使unix程序可以在windows上运行。它是一个在windows平台上运行的unix模拟环境。Cygwin同时也包含很多可在windows运行的unix开源软件,也包含了修改过的gcc,gdb,gas等开发工具,使他们能够生成并解释win32的目标文件。

GNU--GNU is a Unix-like computer operating system developed by the GNU Project, ultimately aiming to be a "complete Unix-compatible software system" composed wholly of free software.

POSIX--Portable Operating SystemInterface(例如Linux、BSD,以及其他Unix系统)理论上符合POSIX接口的操作系统上的软件,可以直接在其他符合POSIX接口的操作系统上运行。

Cygwin的主要目的是通过重新编译,将POSIX系统上的软件移植到Windows上(因为windows并不符合POSIX)。


我理解GNU是一种类unix的操作系统,它在windows操作系统之上建了一个抽象层,使得cygwin中包含的开源软件(本来是只能在unix或linux上运行的)可以在windows上运行。

例如今天我想在windows上安装openssh。其中使用的openssh就是从cygwin下的。

http://lifehacker.com/205090/geek-to-live--set-up-a-personal-home-ssh-server

不过由于必须运行在GNU上,所以尽管我只想用openssh,还是得下一大堆东西。


还有一点,要运行cygwin这种unix-like系统,需要windows管理员账户。而我用的windows家庭版,只有用户,不能设置group。

在cygwin中对应的用户所在的组是none,对应在cygwin中没有权限安装东西。所以最终失败了。。。


和Cygwin对应的Wine,可以让windows程序运行在Linux, BSD, Solaris and Mac OS X上。

官网:

http://www.winehq.org/



03-12
### Cygwin 的简介 Cygwin一个大型集合体,包含了大量 GNU 和 开源工具,这些工具被移植到了 Windows 上运行。通过提供 POSIX API 功能库接口,使得许多为 Unix/Linux 设计的应用程序可以在 Windows 中编译并执行[^1]。 ### 安装过程概述 对于初次使用者来说,安装 Cygwin 需要下载官方提供的 setup.exe 文件,并按照向导提示逐步完成设置。在这个过程中可以选择安装不同的软件包来满足特定需求,比如开发环境、网络工具等。值得注意的是,在选择镜像站点时应尽量挑选速度较快的一个以提高下载效率[^2]。 ### 基本命令行操作 一旦成功安装了 Cygwin 并启动其终端模拟器之后,就可以开始体验类 Unix 环境下的各种强大功能了。例如: - 使用 `ls` 列出目录内容; - 使用 `pwd` 显示当前路径; - 使用 `cd` 更改工作目录; 此外还支持 vi/vim 文本编辑器用于编写代码或配置文件,这大大方便了习惯于 Linux 工作流的开发者们在 Windows 下继续沿用熟悉的工具集。 ```bash $ ls -l /usr/bin/ total 0 ... $ pwd /home/user $ cd .. ``` ### 编程与构建工具 为了帮助程序员更好地适应跨平台项目的需求,Cygwin 提供了一系列常用的编程语言解释器和编译器,其中包括但不限于 GCC (GNU Compiler Collection),它允许用户轻松地编译 C/C++ 源码成为可执行文件或者共享库。同时 g++ 可作为 C++ 特定版本使用。 ```cpp #include <iostream> int main() { std::cout << "Hello from Cygwin!" << std::endl; return 0; } ``` ### 查找 IP 地址的方法 如果想要查看系统的 IP 地址信息,则可以利用 ifconfig 或 ip addr show 这样的网络诊断指令来进行查询。这类命令能够展示有关网卡状态的数据,包括分配给它们的 IPv4/IPv6 地址等重要参数。 ```bash $ ip addr show eth0 3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 192.168.x.x/24 brd 192.168.x.255 scope global dynamic noprefixroute wlan0 valid_lft 710sec preferred_lft 710sec ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值