Cygwin
维基教科书用户认为此页面应该被拆分为更小的页面,包含更窄的子主题。 您可以通过将这个大页面拆分为更小的页面来帮助我们。请确保遵循命名规则。将书籍分成更小的部分可以提供更多关注点,并允许每个部分做好一件事,这对每个人都有益。 |
Cygwin/X 是通过使用标准 Cygwin 安装程序从 X11 类别中选择必要的软件包来安装的。不确定需要哪些软件包的用户应该安装所有 X11 组件。
您可以本地运行 X 服务器和窗口管理器,并获得 X 窗口 GUI 环境。
您可以通过多种方式实现这一点。它们如下所示
在多窗口模式下,有一个内部窗口管理器创建一个 Windows 窗口,以在 Windows 桌面上显示 X 应用程序。
X 是指向 /usr/X11R6/bin/XWin 的软链接(从 Windows 的角度来看是快捷方式)。
- 启动 Cygwin
- 执行命令,
X -multiwindow &
。(Cygwin/X 窗口出现) - 执行命令,
export DISPLAY=127.0.0.1:0.0
- 执行命令,
xclock &
。(xclock 出现)。
现在您可以运行任何 X 应用程序。它们将在单独的窗口中以独立的窗口标题栏、标题按钮和边框打开。在这种情况下,您不会获得桌面环境。
- 从安装 Cygwin 的
usr\X11R6\bin\
文件夹运行 startxwin.bat。这可以通过双击批处理文件来完成。它将弹出一个 xterm 窗口。如果您不想费心寻找此文件,您只需运行 startxwin-multiwindow.bat 文件,该文件应该存在于您的桌面上。这两个脚本非常相似。 - 在 xterm 窗口中执行命令,
xclock &
。(xclock 出现)。
现在您可以运行任何 X 应用程序。它们将在单独的窗口中以独立的窗口标题栏、标题按钮和边框打开。在这种情况下,您不会获得桌面环境。
- 启动 Cygwin(Bash Shell 出现)
- 执行命令,
startxwin.sh &
。它将弹出一个 xterm 窗口。 - 在 xterm 窗口中执行命令,
xclock &
。(xclock 出现)。
现在您可以运行任何 X 应用程序。它们将在单独的窗口中以独立的窗口标题栏、标题按钮和边框打开。在这种情况下,您不会获得桌面环境。
- 启动 Cygwin(Bash Shell 出现)
- 执行命令,
startx &
。它将弹出一个 xterm 窗口。 - 在 xterm 窗口中执行命令,
xclock &
。(xclock 出现)。
现在您可以运行任何 X 应用程序。它们将在单独的窗口中以独立的窗口标题栏、标题按钮和边框打开。在这种情况下,您不会获得桌面环境。
如果您希望完整的桌面环境,则必须运行窗口管理器或 Linux 桌面以将 GUI 发送到您的 X 服务器。本节将讨论此主题。
X 是指向 /usr/X11R6/bin/XWin 的软链接(从 Windows 的角度来看是快捷方式)。
- 启动 Cygwin(Bash Shell 出现)
- 执行命令,
X &
。(Cygwin/X 窗口出现) - 执行命令,
export DISPLAY=127.0.0.1:0.0
- 执行命令,
wmaker &
- 检查您的 Cygwin/X 窗口。您获得了桌面。 :-)
在下文中,我们将假设以下 IP 地址和用户名:
- remote_box - 远程机器的 IP 地址或域名
- my_system - 您的 Windows 系统的 IP 地址或域名
- user_name - 远程机器中的有效帐户
对于本节中描述的某些方法,应在远程机器中启用 X 转发。这是否已启用可以从远程机器的 /etc/ssh/sshd_config
文件中查阅。
如果存在一行 X11Forwarding yes
,则表示已启用 X11 转发,您可以继续执行以下步骤。
如果它为 X11Forwarding no
,则表示已禁用 X11 转发。您可以编辑它以启用它。当然,这只能由“root”用户完成。如果您需要启用 X11 转发但不是该机器的“root”用户,则必须与管理员联系。
在多窗口模式下,有一个内部窗口管理器创建一个 Windows 窗口,以在您的 Windows 桌面上显示 X 应用程序。
X 是指向 /usr/X11R6/bin/XWin 目录的软链接(从 Windows 的角度来看是快捷方式)。
- 启动 Cygwin(Bash Shell 出现)
- 执行命令,
X -multiwindow &
。(Cygwin/X 窗口出现) - 执行命令,
export DISPLAY=127.0.0.1:0.0
- 使用命令
ssh -X user_name@remote_box
登录到远程机器 - 执行命令,
xclock &
。(xclock 出现)。
现在您可以运行远程机器上的任何 X 应用程序。它们将在单独的窗口中以独立的窗口标题栏、标题按钮和边框打开。在这种情况下,您不会获得桌面环境。
要使上述方法起作用,必须在远程机器中启用X11 转发。
- 从安装 Cygwin 的 `usr\X11R6\bin\` 文件夹中运行 `startxwin.bat`。可以通过双击批处理文件来实现。这将弹出一个 xterm 窗口。如果您不想费心寻找这个文件,可以直接运行桌面上的 `startxwin-multiwindow.bat` 文件。这两个脚本完全相同。
- 执行命令 `xhost remote_box` 为运行在 Cygwin 上的 X 服务器提供远程机器访问权限。或者,您可以执行命令 `xhost +` 完全禁用访问控制,以便任何客户端都可以连接到您的 X 服务器。
- 使用命令
ssh -X user_name@remote_box
登录到远程机器 - 在远程机器上执行命令 `export DISPLAY=my_system:0.0`。
- 在 xterm 窗口中执行命令,
xclock &
。(xclock 出现)。
现在您可以运行远程机器上的任何 X 应用程序。它们将在单独的窗口中以独立的窗口标题栏、标题按钮和边框打开。在这种情况下,您不会获得桌面环境。
如果远程机器中启用了 X11 转发,您可以省略步骤 2 和步骤 4。
- 启动 Cygwin(Bash Shell 出现)
- 执行命令,
startxwin.sh &
。它将弹出一个 xterm 窗口。 - 执行命令 `xhost remote_box` 为运行在 Cygwin 上的 X 服务器提供远程机器访问权限。或者,您可以执行命令 `xhost +` 完全禁用访问控制,以便任何客户端都可以连接到您的 X 服务器。
- 使用命令
ssh -X user_name@remote_box
登录到远程机器 - 在远程机器上执行命令 `export DISPLAY=my_system:0.0`。
- 在 xterm 窗口中执行命令,
xclock &
。(xclock 出现)。
现在您可以运行远程机器上的任何 X 应用程序。它们将在单独的窗口中以独立的窗口标题栏、标题按钮和边框打开。在这种情况下,您不会获得桌面环境。
如果远程机器中启用了 X11 转发,您可以省略步骤 3 和步骤 4。
- 启动 Cygwin(Bash Shell 出现)
- 执行命令,
startx &
。它将弹出一个 xterm 窗口。 - 执行命令 `xhost remote_box` 为运行在 Cygwin 上的 X 服务器提供远程机器访问权限。或者,您可以执行命令 `xhost +` 完全禁用访问控制,以便任何客户端都可以连接到您的 X 服务器。
- 使用命令
ssh -X user_name@remote_box
登录到远程机器 - 在远程机器上执行命令 `export DISPLAY=my_system:0.0`。
- 在 xterm 窗口中执行命令,
xclock &
。(xclock 出现)。
现在您可以运行远程机器上的任何 X 应用程序。它们将在单独的窗口中以独立的窗口标题栏、标题按钮和边框打开。在这种情况下,您不会获得桌面环境。
如果远程机器中启用了 X11 转发,您可以省略步骤 3 和步骤 4。
- 打开 PuTTY
- 从类别树中选择“会话”,然后输入主机详细信息。
- 从类别树中选择“连接 > SSH > X11”,并选中“启用 X11 转发”复选框。
- 单击“打开”并登录。
- 在您的 Windows 机器上运行一个 X 服务器。有多种方法可以做到。
- 打开 Cygwin 并运行 `X -multiwindow &`。
- 从 Windows 运行 `startxwin.bat` 或打开 Cygwin 并运行 `startx`、`startxwin.sh`。会打开一个额外的 xterm,这可能很麻烦,因为您不需要它。(前两步可以帮您省去这个步骤)。
- 返回到您的 PuTTY 窗口并执行命令 `xclock &`(xclock 会弹出来)。
- 查看您的 Cygwin/X 窗口。(您已经获得了桌面 :-))。
要使此方法有效,远程机器中应启用 X11 转发,并且您应该使用 SSH 协议登录到远程机器。
如果您想省去前四个步骤,只需将 PuTTY 目录的路径添加到 Windows PATH 环境变量中,或者只需将 PuTTY.exe 放到 Windows 目录中即可。此后,您只需从任何位置执行命令 `putty -X user_name@remote_host`,然后继续执行步骤 5。
如果您想要远程机器的完整桌面环境,您需要在远程机器上运行一个窗口管理器或 Linux 桌面,并将 X 输出转发到 Windows PC 的 X 服务器,以便您可以在 X 服务器上看到 GUI。本部分讨论如何实现这一点。
X 是指向 /usr/X11R6/bin/XWin 目录的软链接(从 Windows 的角度来看是快捷方式)。
- 启动 Cygwin(Bash Shell 出现)
- 执行命令,
X &
。(Cygwin/X 窗口出现) - 执行命令,
export DISPLAY=127.0.0.1:0.0
- 使用命令
ssh -X user_name@remote_box
登录到远程机器 - 在机器上执行命令 `wmaker &`。
- 查看您的 Cygwin/X 窗口。您已经获得了远程机器的桌面 :-)。
要使上述方法起作用,必须在远程机器中启用X11 转发。
- 打开 PuTTY
- 从类别树中选择“会话”,然后输入主机详细信息。
- 从类别树中选择“连接 > SSH > X11”,并选中“启用 X11 转发”复选框。
- 单击“打开”并登录。
- 执行命令 `X &` 在您的 Windows 系统上运行 Cygwin X 服务器。
- 返回到您的 PuTTY 窗口并运行 `wmaker &`。
- 查看您的 Cygwin/X 窗口。(您已经获得了桌面 :-))。
要使此方法有效,远程机器中应启用 X11 转发,并且您应该使用 SSH 协议登录到远程机器。
如果您想省去前四个步骤,只需将 PuTTY 文件夹的路径添加到 Windows PATH 环境变量中即可。此后,您只需从任何位置执行命令 `putty -X user_name@remote_host`,然后继续执行步骤 5。
- 安装 Cygwin,包括 X11 客户端和安全外壳 SSH。
- 通过单击 Cygwin 图标启动 Cygwin Bash Shell。
- 启动 X 服务器(这将在 X 窗口中打开另一个 Bash Shell)。
$ /usr/X11R6/bin/startx
- 通过将远程服务器添加到访问控制列表,允许远程计算机 X 客户端访问您的本地计算机。
$ xhost +RemoteServerName or IP Address
- 使用 ssh 访问远程计算机。系统将提示您输入用户名和密码。
$ ssh -X +RemoteServerName or IP Address
- 在远程计算机上,以后台模式执行要执行的程序。
$ +ProgramYouWant &
- 将 Cygwin 安装到默认目录 `C:\cygwin\` 中,以保持一致性。您也可以将路径设置得更长,例如,为了保留多个版本的 Cygwin。
- 安装时,选中 `cygrunsrv` 选项,以允许将 `sshd` 作为 Windows 服务运行。
- 要使用 **rxvt** 作为首选控制台,请创建一个 Windows 快捷方式,并将 **目标** 设置为 `C:\cygwin\bin\rxvt.exe --loginShell -sr`,并将 **起始位置** 设置为 `C:\cygwin\bin`。
- 要放大控制台窗口并添加标题,请将 `-geometry "80x50" -title Cygwin` 添加到 **目标** 中。
- 要启动 SSH 会话,请将 `-e ssh [email protected]` 添加到 **目标** 中。
- 要将默认主目录更改为基于 NT 的 Windows(NT/2000/XP/2003/Vista)上的 `My Documents`,请创建一个名为 **HOME** 的环境变量,其值为 `C:\DOCUME~1\USERNAME\MYDOCU~1`(其中 `USERNAME` 是您的 Windows 登录用户名)。
- 创建一个名为 **SHELL** 的环境变量,其值为 `/bin/bash`。
- 确保将 `c:\cygwin\bin;` 添加到 **Path** 环境变量中。
- 要将 `cygdrive` 的前缀从 `/cygdrive` 映射到 `/`,请执行一次以下命令:`mount -s --change-cygdrive-prefix /`
- 或者保留 `cygdrive` 的原样,并为每个驱动器创建映射(例如 `mount -u C: /C`)。
- Emacs 和 vi 是最流行的编辑器,但 Nano 最易于使用。
- 在 **HOME** 目录中创建一个名为 `.bash_profile` 的文件,其中包含以下行。
- alias dir='ls -lav—color=auto'
- EDITOR=nano; export EDITOR
- VISUAL=nano; export VISUAL
- 要使用 `clear` 命令,请安装 ncurses 包(位于 `lib` 类别中)。