我正在运行 Cygwin 并希望使用 Notepad++ 作为主要的 shell 编辑器,有点像我在 Mac 上的编辑器,我可以在其中键入mate whatever以打开 TextMate 的一个实例。在我~/.bashrc的 Cygwin 文件中,我设置了以下别名和环境变量:
export EDITOR="/cygdrive/c/Program\ Files/Notepad++/notepad++.exe"
alias np="/cygdrive/c/Program\ Files/Notepad++/notepad++.exe"
Run Code Online (Sandbox Code Playgroud)
它主要有效:当我键入np whatever或 Cygwin 程序调用 $EDITOR 时,Notepad++ 会打开。
但是,shell 会等待 Notepad++ 关闭,直到那时才允许任何输入。这可能特定于 bash,但是如何从 Cygwin 打开 Notepad++ 并告诉 shell不要等待退出代码继续?&在 alias 命令的末尾添加 a不能正常工作 - 它只是打开一个未命名的文件并发出警告filename: command not found而不是打开文件。
谢谢!
我正在努力重组我的.bashrc. 我将我的别名移动到.bash_aliases(来自.bashrc,但我无法弄清楚如何为此文件启用语法突出显示。vim似乎无法确定文件使用的语言。它适用于.bashrc。有什么想法吗?
我在 Windows 7 上安装了 Cygwin。我进行了默认安装。我想使用 ssh 配置文件 (~/.ssh/config) 来设置主机和连接选项。
当我尝试连接时,普通的 ssh 命令无法找到配置:ssh host 如果我明确指定配置文件,一切正常:ssh -F ~/.ssh/config
我找不到任何设置 ssh 客户端的选项,例如 /etc/ssh
也许 ssh 不知道我的主文件夹在哪里?(我已将 HOME 环境变量设置为我的主文件夹)
Ubuntu 10.10+
在我的脚本中,我需要查找给定主机名的 IP。
如果该名称在 中列出/etc/hosts,则命令应该打印来自 的 IP /etc/hosts,而不是来自 DNS 服务器。
我尝试过的命令 ( nslookup, dig, host) 完全忽略/etc/hosts- 至少对于 DNS 服务器不知道的名称。
注意:我更喜欢不需要我/etc/hosts手动grep的解决方案。
有没有办法“好像”在新的登录会话中运行命令?
我已经试过了env -i。但是,我不想处理必须设置或取消设置的各种 ENV 变量。
我也试过bash -c "some command"and bash -l -c "some commmand",但它们都是复制当前环境。
我最接近的是一个不太干净的解决方案:
ssh me@localhost "some command"`
Run Code Online (Sandbox Code Playgroud) 我确定有人有以下需求,按行拆分巨大的 .gz 文件的快速方法是什么?底层文本文件有 1.2 亿行。我没有足够的磁盘空间来一次对整个文件进行压缩,所以我想知道是否有人知道可以将文件(.gz 或内部 .txt)拆分为 3x 40mn 行文件的 bash/perl 脚本或工具. 即调用它像:
bash splitter.sh hugefile.txt.gz 4000000 1
would get lines 1 to 40 mn
bash splitter.sh hugefile.txt.gz 4000000 2
would get lines 40mn to 80 mn
bash splitter.sh hugefile.txt.gz 4000000 3
would get lines 80mn to 120 mn
Run Code Online (Sandbox Code Playgroud)
也许是在做一系列这些解决方案,或者 gunzip -c 需要足够的空间来解压缩整个文件(即原始问题): gunzip -c hugefile.txt.gz | 头 4000000
注意:我无法获得额外的磁盘。
谢谢!
我想在按时间戳(创建时间)排序的子目录中查找文件,最近的在最前面。
我看过手册页,但它似乎只让你按时间戳过滤而不是按时间戳排序。
我可以通过哪些选项find来实现这一目标?或者,我如何将它与其他工具结合使用,比如sort按时间戳排序?
问题陈述:测试 Cygwinmintty bash会话是否为“以管理员身份运行”的最优雅和健壮的方法是什么?
为什么,具体的?mintty使用 Windows 时,我通常会打开几个终端(mintty没有选项卡)。最尴尬的是当我需要找到一个终端窗口时,例如我想运行ping或其他一次性程序时,我通过右键单击“以管理员身份运行”启动了该窗口。我想以视觉方式指示终端会话的“以管理员身份运行”(通过更改我的启动文件中的bashshell 提示变量)。PS1~/.bashrc
一些快速的潜在解决方案:
env输出,有很多不同之处。然而,很难说哪个在可移植到另一台 Windows 机器(可能运行不同版本的 Windows)方面最可靠。id,id -Gn如果以管理员身份运行,则更具体地显示不同的组。在我的Windows 7机器,我必须Administrators和root添加到列表中的组。同样,我不确定这是否可移植。id(1)命令具有类似目的的命令(但本机存在于 Windows - 或 Cygwin 中,但没有将 Windows 系统概念转换为 POSIX 模拟概念的过分牵强)。有更好或更优雅的建议吗?也许 cygwin 提供了专门用于此目的的命令实用程序?
更新:https : //stackoverflow.com/questions/4051883/batch-script-how-to-check-for-admin-rights/ 的 97% 重复- 区别只是在这里使用bash而不是(恕我直言奇怪和古老的)Windows cmd.exe. 请务必检查那里的答案和评论。
这是以下内容的手册页条目-n:
-n
抑制模式空间的自动打印
我注意到,当不使用-n对某些操作,每行被打印到标准输出(和所请求的线被印刷两次):
$ cat test.txt
first
second
third
fourth
fifth
$ sed -n '2,3p' test.txt
second
third
$ sed '2,3p' test.txt
first
second
second
third
third
fourth
fifth
Run Code Online (Sandbox Code Playgroud)
但是,该定律不适用于其他命令:
$ sed -n 's/t/T/' test.txt
$ sed 's/t/T/' test.txt
firsT
second
Third
fourTh
fifTh
Run Code Online (Sandbox Code Playgroud)
那么究竟有什么作用-n呢?
在文档中,我看到了两种用法:
find . -type f -exec file '{}' \;
find repo/ -exec test -d {}/.svn -o -d {}/.git -o -d {}/CVS ; \
Run Code Online (Sandbox Code Playgroud)