javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

如何确定我的cygwin安装是32位还是64位?

如何确定我的cygwin安装是32位还是64位?我不记得要下载哪个setup.exe。 而且我不希望弄乱我的cygwin安装。

trans by 2020-08-11T22:11:51Z

bash-如何最好地集成Emacs和Cygwin?

在Windows上有很多将Cygwin与Emacs集成的方法。 EmacsWiki显示了一些想法。 这是我找到的选项:

  1. 使用Cygwin随附的Emacs。 (然后,如果需要,找到找到cmd.exe的方法。)
  2. 使用NTEmacs和Cygwin作为“有时” shell。 (启动Cygwin的特殊命令)
  3. 使用NTEmacs和Cygwin作为“始终”外壳。 (M-x Shell启动cygwin)

明确说明“为什么”。 以下是一些我希望将Cygwin与Emacs结合使用的示例:

  1. M-x whois在NTEmacs上不起作用。
  2. Wanderlust之类的程序包包含一个Windows不友好的Makefile。
  3. 有时我只需要一个bash shell就可以了。

那么Emacs / Cygwin的哪个选项对其他人来说效果很好? 另外,有人尝试过成功进行MSYS集成吗?

trans by 2020-08-11T11:54:17Z

unix-.ssh目录未创建

要生成.ssh目录,请使用以下命令:

ssh-keygen

摘自本教程:[http://ebiquity.umbc.edu/Tutorials/Hadoop/05%20-%20Setup%20SSHD.html]

但是没有创建.ssh目录,所以当我使用ssh-keygen时,出现此错误:

"no such file or directory"

是否缺少步骤? 使用ssh-keygen命令时是否应该创建.ssh目录?

trans by 2020-08-01T02:11:44Z

不支持Node.js Cygwin

我正在尝试安装node.js。 我遵循了本教程,并且陷入了中间。

当我在cygwin终端中写./configure时,它说“不支持cygwin”。 请帮帮我提前致谢。

trans by 2020-07-29T19:50:41Z

c-在Windows上删除名为“ NUL”的文件

我在Windows 7上运行了一个在Cygwin下编译的程序,并将“ NUL”作为输出文件名传递。 它实际上没有在当前目录中创建一个名为“ NUL”的文件,而不是抑制输出。 (显然,即使在Windows上,它也期望“ / dev / null”。)现在,我被这个无法删除的“ NUL”文件所困扰!

我已经尝试过:

  • Windows资源管理器-错误:“无效的MS-DOS功能”(是的,这就是它所说的!)
  • 使用“ del NUL”的命令提示符-错误:“文件名,目录名或卷标签语法不正确。”
  • 删除整个目录-与删除文件相同
  • C程序中的remove()-也失败

除了安装完整的Cygwin环境并在Cygwin下编译C程序之外,如何摆脱这些NUL文件(目前有几个)?

trans by 2020-07-26T03:48:41Z

如何获取Windows到Cygwin主目录的路径?

如何以编程方式确定Windows格式的当前Cygwin用户的主目录(例如C:\ cygwin \ home \ user),以便可以在Cygwin Bash之外读取该目录?

trans by 2020-07-25T21:53:47Z

bash-如何将CD插入名称中带有空格的目录?

我试图进入目录cd $HOME

$ DOCS="/cygdrive/c/Users/my\ dir/Documents"

$ echo $DOCS
/cygdrive/c/Users/my\ dir/Documents

$ cd $DOCS
-bash: cd: /cygdrive/c/Users/my\: No such file or directory

$ cd /cygdrive/c/Users/my\ dir/Documents
(success)

手动键入时,退格键会执行转义字符操作,但是当我将参数扩展与变量cd $HOME一起使用时,退格键不会执行此操作。

我尝试了其他变体,例如没有反斜杠。

$ DOCS=/cygdrive/c/Users/Rahman\ dir/Documents

$ echo $DOCS
/cygdrive/c/Users/my dir/Documents

$ cd $DOCS
-bash: cd: /cygdrive/c/Users/my: No such file or directory

要么

$ DOCS="/cygdrive/c/Users/my dir/Documents"

$ echo $DOCS
/cygdrive/c/Users/my dir/Documents

$ cd $DOCS
-bash: cd: /cygdrive/c/Users/my: No such file or directory

cd $HOME也是如此:

$ echo $HOME
/home/my dir

cd $HOME也不起作用。 必须将引号引起来。

有没有搞错:

$ DOCS="\"/cygdrive/c/Users/my dir/Documents\""

$ echo $DOCS
"/cygdrive/c/Users/my dir/Documents"

$ cd $DOCS
-bash: cd: "/cygdrive/c/Users/my: No such file or directory
trans by 2020-07-18T14:44:24Z

命令行-防止重复项保存在bash历史记录中

我试图防止shopt将重复的命令保存到我的历史记录中。 这是我得到的:

shopt -s histappend
export HISTIGNORE='&:ls:cd ~:cd ..:[bf]g:exit:h:history'
export HISTCONTROL=erasedups
export PROMPT_COMMAND='history -a'

当我登录并且内存中有shopt时,此方法工作正常。 例如:

$ history
    1 vi .bashrc
    2 vi .alias
    3 cd /cygdrive
    4 cd ~jplemme
    5 vi .bashrc
    6 vi .alias

$ vi .bashrc

$ history
    1 vi .alias
    2 cd /cygdrive
    3 cd ~jplemme
    4 vi .alias
    5 vi .bashrc

$ vi .alias

$ history
    1 cd /cygdrive
    2 cd ~jplemme
    3 vi .bashrc
    4 vi .alias

$ exit

但是,当我重新登录时,我的历史记录文件如下所示:

$ history
    1 vi .bashrc
    2 vi .alias
    3 cd /cygdrive
    4 cd ~jplemme
    5 vi .bashrc
    6 vi .alias
    7 vi .bashrc
    8 vi .alias

我究竟做错了什么?

编辑:从.bashrc删除shoptPROMPT_COMMAND行并不能解决问题。

trans by 2020-07-12T09:39:06Z

来自bash的cygwin clearscreen

我想在cygwin终端中从bash清除屏幕。我努力了

cmd /c cls
echo -e "^V^L"
echo -e "\014"

这些都不起作用-它们都提供“换行”。 按CTRL + L确实可以-但是我想从Bash脚本中调用它。

有任何想法吗?

trans by 2020-07-10T17:06:40Z

Windows-Cygwin的替代品? -Cygwin不支持本机支持Win32应用程序

2014年1月9日更新:TL; DR版本:转到本文章的底部,以获取使Cygwin能够调用非Cygwin程序的方法。

在花了一些时间制作一些恰巧很大的bash脚本之后,较新版本的Cygwin破坏了它们。 这些脚本调用不与Cygwin链接的本机Win32应用程序,而Cygwin显然未正式支持该应用程序。

这让我感到惊讶,因为多年来,我一直以为Cygwin可以在更加混合的环境中使用,该环境结合了本机非Cygwin Win32应用程序和使用Cygwin兼容性层的POSIX程序。 但是显然只真正支持POSIX兼容性层,如果本机Win32非Cygwin应用程序正常工作,则认为这是一个巧合。

我从与Cygwin内针对.NET Framework编译的运行程序遇到的不兼容性中发现了这一点。 过去工作正常,但几个月前就被打破了。 具体来说,通过管道传输到任何其他Win32程序的标准输入的.NET程序的标准输出通常会导致接收Win32程序收到文件过早的信号,因为几个月前Cygwin最近从字节管道切换到了消息管道。 -并且消息管道似乎与使用Visual C ++或.NET Framework的任何接收应用程序都不兼容。 这是因为.NET向标准输出发出空写入,如果使用了消息管道,则该写入仅传递到接收应用程序。 接收应用程序成功读取零字节,因此认为它是文件末尾。 项目负责人似乎并不认为这是一个真正的问题,因为他们显然并不真正支持从Cygwin内部运行非Cygwin程序(惊奇!)。

要引用项目负责人Christopher Faylor从邮件列表中的多封电子邮件:

您看到的可能是因为Cygwin已更改为使用 消息类型管道进行了两次修订。 这不会 更改。 采用此更改是为了解决Cygwin程序的问题 这些显然是我们的第一要务。

不管有多少人使用Visual C ++或.NET,他们实际上是 不是我们的目标受众。 当事情对那些 不想使用UNIX工具,但它们不是我们的主要重点。 为想要使用非Cygwin东西的人解决问题不是 我觉得很重要的事情。

从pipe.cc:请注意,管道的写端以PIPE_TYPE_MESSAGE打开。 这似乎更接近于模仿Linux管道行为,并且 由于fhandler_pty_master写入,绝对是pty处理所必需的 以分块方式连接到管道,当CANON模式为 指定。

上面的注释在这里显示了“和”关系。 讯息类型 管道更紧密地模仿Linux(UNIX)管道行为,并且绝对 pty所需。

我同意詹姆斯的观点,运行时可能是越野车,但是我也 同意cygwin应该能够处理这些情况。

您彼此之间的完全同意不会有太多 影响。 Cygwin的源代码无法通过投票更改。

即使最终以某种方式解决了这个问题-谁知道-他们可能会在3个月内破坏其他内容,并且不愿意修复回归。 他们可能会考虑使用补丁程序,但要花一些时间才能弄清楚有效的方法。 我认为我的时间最好花在其他地方,因为很明显,他们很愿意破坏与本地Win32应用程序的兼容性,并且不想浪费更多时间让Win32应用程序工作。 因此,我认为不应将Cygwin视为适用于Win32 / Cygwin混合环境的稳定平台-我有什么选择? 我应该从哪里开始避免完全重写为bash以外的内容? 除了基本的Cygwin安装和一些基本的perl脚本之外,我使用的不多。

更新:发布此原始问题后,他们最终在pipe_nooverlap环境变量中做了一个新的pipe_byte标志:请查看文档。 如果设置了此标志,它将解决上面讨论的问题。 调用非Cygwin Win32程序时,请始终确保设置了CYGWIN标志。

但是,此后我发现与.NET Framework 4.0和Cygwin不兼容。 早期版本的.NET Framework没有此问题。 我首先在Cygwin邮件列表中提到了此问题:

Cygwin和.NET Framework 4.0之间的管道同步和不兼容

没有得到有效的答复,我进一步调查发现Cygwin正在创建重叠的管道,这导致了问题。 请注意,尝试将不重叠的Win32 API调用与重叠的管道一起使用是未定义的,并且大多数(全部?)Win32非Cygwin程序不将重叠的I / O与它们的标准文件句柄一起使用。 我提交了一个修补程序,该修补程序在pipe_nooverlap环境变量中创建了pipe_byte标志,可防止这种情况的发生:

修补程序以有选择地禁用重叠管道

不幸的是,他们拒绝了该修补程序,因此您将永远不会在Cygwin主DLL中看到以下内容:

回复:打补丁以有选择地禁用重叠管道

拒绝补丁的原因:

  1. 暗示我破坏了Cygwin中的信号实现; 我还没有发现这种情况,因为信号仍然使用重叠的管道。
  2. 他们似乎不希望添加环境变量标志,即使它显然可以解决问题。
  3. 他们不想支持甚至可以选择不重叠管道的代码。

出于这种推理和态度,恐怕我想不出任何办法来更改补丁以适应其要求……他们似乎决心禁止不重叠的管道使用。 我已经使用了一段时间了,并且没有任何问题。 另外,我无法想到pipe_byte标志会中断的任何情况(请参阅他们的邮件列表中的后续电子邮件),但是我将其留为标志,以防万一遇到麻烦。

因此,如果要从Cygwin调用非Cygwin Win32或.NET Framework程序,则需要执行以下操作:

  1. 将我的补丁应用于您使用的任何Cygwin版本的源。 不要期望此补丁会在将来的Cygwin版本中显示。
  2. CYGWIN环境变量中设置pipe_bytepipe_nooverlap标志。

现在有效... !!! 我将其发布,以防其他仍想使用Cygwin的人使用。

trans by 2020-07-08T00:00:48Z

c-如何在Cygwin中执行文件?

如何使用Cygwin Shell执行a.exe

我在Windows的Eclipse中创建了一个C文件,然后使用Cygwin导航到该目录。 我在C源文件中调用了gcc,并生成了a.exe。 我想运行a.exe

trans by 2020-06-30T09:38:40Z

bash-MSYS2和Cygwin之间的区别

传统上,MSYS bash被认为不如Cygwin bash。前者是MinGW内部的一个辅助工具,用于运行autoconf脚本。但是现在有MinGW-w64和MSYS2。 后者附带了一个甜美的pacman(如程序包管理器)和优雅的shell(如zsh),因此我想知道仿真层是否还存在间隙。

尽管MinGW *应用程序是Windows本机可执行文件,但与Cygwin一样,MSYS2软件也需要POSIX仿真层。 至少对于临时用户而言,很难发现两者之间的差异。

  • 两个仿真层(如果有)之间的功能区别是什么?
  • 哪种仿真更快(更有效率)?
trans by 2020-06-22T07:54:52Z

Windows-如何将.sh文件与Cygwin关联?

我想通过在Windows中双击.sh文件在Cygwin中运行长rsync命令。 它必须从文件的包含目录(例如/ cygdrive / c / scripts /)开始,以便相对路径起作用。 有人得到这个工作吗?

注意:我刚刚在这里找到了一个Cygwin软件包,用于管理Windows上下文菜单(此处为Bash Prompt)。 它可能有一些线索。

trans by 2020-02-21T21:16:22Z

Javascript-Node.js,Cygwin和Socket.io走进酒吧... Node.js抛出ENOBUFS,每个人都死了

我希望这里有人能帮到我,我自己并没有多大运气。 我正在Cygwin上运行node.js版本0.3.1。 我正在使用Connect和Socket.io。 我似乎在DNS或某些方面有一些随机的问题,我还不太清楚。 最终结果是服务器运行正常,但是当浏览器尝试连接到它时,初始HTTP请求工作,Socket.io连接,然后服务器死机(下面的输出)。

我认为它与HTTP请求没有任何关系,因为服务器将大量数据发布到服务器上,并且服务器正在接收请求并做出响应,直到我的连接将其杀死。 我到处搜索,发现最接近的是DNS设置不正确。 这是一个仅在内部网络上运行的网络程序,因此我已将/etc/resolv.conf中的gdb --args ./node_g --debug ../myscript.js设置为内部DNS。 我还添加了nameserver 8.8.8.8。 我不确定还需要检查什么,但会有所帮助。

gdb --args ./node_g --debug ../myscript.js

Exception: STATUS_ACCESS_VIOLATION at eip=610C51B9
eax=00000000 ebx=00000001 ecx=00000000 edx=00000308 esi=00000000 edi=010FCCB0
ebp=010FCAEC esp=010FCAC4 program=\\?\E:\cygwin\usr\local\bin\node.exe, pid 3296, thread unknown (0xBEC)
cs=0023 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame     Function  Args
010FCAEC  610C51B9  (00000000, 00000000, 00000000, 00000000)
010FCBFC  610C5B55  (00000000, 00000000, 00000000, 00000000)
010FCCBC  610C693A  (FFFFFFFF, FFFFFFFF, 750334F3, FFFFFFFE)
010FCD0C  61027CB2  (00000002, F4B994D5, 010FCE64, 00000002)
010FCD98  76306B59  (00000002, 010FCDD4, 763069A4, 00000002)
End of stack trace

节点输出:

    node.js:50
    throw e; // process.nextTick error, or 'error' event on first tick
    ^
Error: ENOBUFS, No buffer space available
    at doConnect (net.js:642:19)
    at net.js:803:9
    at dns.js:166:30
    at IOWatcher.callback (dns.js:48:15)

编辑

客户端连接以获取信息后,我立即使用gdb --args ./node_g --debug ../myscript.js访问了LDAP服务器,这似乎是导致ENOBUFS的问题所在。 我已经编辑了源代码,其中包括gdb --args ./node_g --debug ../myscript.js,现在可以防止服务器死亡,但是现在LDAP请求无法正常工作。 我不确定是什么问题会导致这种情况。 正如我提到的,这是内部唯一的应用程序,因此我将/etc/resolv.conf中的DNS服务器设置为要应用于主机的DNS服务器。 不确定这是否是问题的一部分?

编辑2

这是gdb --args ./node_g --debug ../myscript.js的一些输出。但是,我不确定这是否与ENOBUFS有关,因为它似乎在与Socket.io连接后立即断开连接。

    [New thread 672.0x100]
Error: dll starting at 0x76e30000 not found.
Error: dll starting at 0x76250000 not found.
Error: dll starting at 0x76e30000 not found.
Error: dll starting at 0x76f50000 not found.
[New thread 672.0xc90]
[New thread 672.0x448]
debugger listening on port 5858
[New thread 672.0xbf4]
14 Jan 18:48:57 - socket.io ready - accepting connections
[New thread 672.0xed4]
[New thread 672.0xd68]
[New thread 672.0x1244]
[New thread 672.0xf14]
14 Jan 18:49:02 - Initializing client with transport "websocket"
assertion "b[1] == 0" failed: file "../src/node.cc", line 933, function: ssize_t
 node::DecodeWrite(char*, size_t, v8::Handle<v8::Value>, node::encoding)

Program received signal SIGABRT, Aborted.
0x7724f861 in ntdll!RtlUpdateClonedSRWLock ()
   from /cygdrive/c/Windows/system32/ntdll.dll
(gdb) backtrace
#0  0x7724f861 in ntdll!RtlUpdateClonedSRWLock ()
   from /cygdrive/c/Windows/system32/ntdll.dll
#1  0x7724f861 in ntdll!RtlUpdateClonedSRWLock ()
   from /cygdrive/c/Windows/system32/ntdll.dll
#2  0x75030816 in WaitForSingleObjectEx ()
   from /cygdrive/c/Windows/syswow64/KernelBase.dll
#3  0x0000035c in ?? ()
#4  0x00000000 in ?? ()
(gdb)
trans by 2020-02-20T03:29:51Z

mingw-为Cygwin启用本机NTFS符号链接

最近的NTFS和Windows实现了符号链接:

  • 自NTFS 3.0(Windows 2000)使用ln -sjunction工具以来,NTFS交接点可用作目录符号链接。
  • 自Windows Vista使用ln -s工具以来,NTFS符号链接也可用作符号链接(用于文件和目录)。

但是在Cygwin 1.7(安装在Windows 7上)上,ln -s创建了一个文本文件。

在Cygwin上:

$ ln -s -v target mylink
`mylink' -> `target'

在MinGW(或您最喜欢的编辑器)上:

$ cat mylink
!<symlink>ÿþt a r g e t 

是否可以告诉Cygwing使用NTFS交接点或NTFS符号链接?

另一个问题:这在MinGW上可用吗?

trans by 2020-02-15T04:58:23Z

ssh-检测到Cygwin / Git错误cygheap基本不匹配

我已经安装了两个Windows服务器以及最新版本的cygwin和git,并且正在尝试将git存储库从S1克隆到S2。 我可以使用RSA密钥成功地从S2切换到S1,但是当我这样做时:git clone“ [ssh:// root @ S1 / path / to / my / repo”]它返回以下输出:

    Cloning into /cygdrive/c/program files/apache software foundation/apache2.2/htdocs/myfolder...
    2 [main] git 2004 C:/cygwin/lib/git-core/git.exe *** fatal error - cygheap base mismatch detected - 0x61242860/0x6123790.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search fro cygwin1.dll using the WIndows Start->Find/Search facility and delete all bu the most recent version.  The most recent version *should* reside in x:\cygwin\bin, where 'x' is the drive on which you have installed the cygwin distrubtion. Rebooting is also suggested if you are unable to find another cygwin DLL.  

--5 more errors like that one --

remote: Counting objects: 3275, done.
remote: Compressing oobjects: 100% (3106/3106), done.
fatal: write error: Broken pipe

所以我遵循了这些指示,但是没有运气。 有什么建议么?

trans by 2020-02-14T16:57:37Z

网络-我如何在公司网络后面使用cygwin

我在Microsoft IE环境中,但是我想使用cygwin来执行许多快速脚本任务。

如何配置它以使用Windows代理信息? Ruby gem,Ping等都试图建立直接连接。 我如何让他们尊重IE和firefox使用的代理信息?

trans by 2020-02-14T11:58:37Z

如何在Cygwin上下载SCP和ssh?

我已经在Windows 8上下载了Cygwin,并将其用于python脚本。如何在不使用WinSCP和Putty的情况下在Cygwin上获取SCP和ssh?

trans by 2020-02-13T04:06:35Z

Windows 7-如何查找已安装在我的机器上的cygwin版本

Cygwin-如何查找已安装在计算机上的Cygwin版本? (赢得Vista)

trans by 2020-02-13T03:31:20Z

shell-找不到Bash变量分配和命令

这个问题已经在这里有了答案:

  • Bash变量分配中找不到命令错误                                     5个答案

我有一个Shell脚本,可以让我访问脚本中的全局变量,但是当我尝试创建自己的脚本时,它会响应:未找到命令。

#!/bin/bash
J = 4
FACE_NAME = "eig$J.face"
USER_DB_NAME = "base$J.user"

当我运行上面的脚本时,我得到:

./test1.sh line 2: J: command not found
./test1.sh line 3: FACE_NAME: command not found
./test1.sh line 4: USER_DB_NAME: command not found

有任何想法吗?? 我在Windows XP下使用Cygwin。

trans by 2020-02-07T06:36:36Z

1 2 3 4 下一页 共4页