我是使用 Cygwin 的新手,如果这是一个非常新手的问题,我深表歉意。
我有一个 bash 脚本,我在其中“cd”到一个目录,然后在该目录中执行某些操作。但是,cd 命令失败并显示“没有这样的文件或目录 /c/code/blah/blah”。
如果我将 cd 行直接复制到 shell 提示符中,则它可以正常工作。它只是在脚本中失败。
[编辑] 根据要求,我添加了脚本中的实际行:
#!/bin/bash
cd /c/Code/Project
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助,
丹。
(OSX 特定)
我和许多其他人一样,经常发现自己在 shell 中启动了一个需要一两分钟才能完成的进程(例如一个大型的 svn 提交)。在那段时间里,我经常使用 alt-tab 并刷新 reddit/slashdot/wikipedia/whatever。设置一些在 shell 进程结束时发布咆哮通知的东西会很棒。
在我的理想世界中,它会像这样工作:“如果一个进程刚刚从终端中打开的选项卡中退出,则发布咆哮通知。”
其他人有这样的设置吗?
我如何编写一个运行长时间运行的程序并将程序进程 ID 存储在单独文件中的 Bash 脚本?
我想要类似的东西
#!/bin/bash
exec long_running_tool
echo `ps af |grep "long_running_tool" |awk '$5 == "long_running_tool" {print $1}'` > pid_file
Run Code Online (Sandbox Code Playgroud)
但是,正是这样做会ps在工具完成后执行。
有没有办法获取创建的进程的进程ID?
我正在运行 afind . -name pattern来查找一些文件,我想优雅地获取这些文件中的总行数。
我怎样才能做到这一点?
我不能 sftp 直接进入特定主机。要将文件从我的家用机器移动到主机,我必须将文件通过 sftp 传输到中间主机;ssh 进入中间主机;和 sftp 文件到最终目的地。有没有可能避免这种疯狂?
我目前有一个像这样的 zsh 别名设置。
alias e="subl"
Run Code Online (Sandbox Code Playgroud)
这让我e somedir可以在 SublimeText 中打开一个目录。或e .打开当前目录。
但是,我希望能够设置.为默认参数,或者我可以选择传入另一个目录。
所以e应该扩展到subl .
并且e somedir应该扩展到subl somedir
究竟是如何设置的?别名甚至是我在这里需要的吗?
我正在运行一个接收 TCP 和 UDP 数据包的应用程序,因此无法暂停。我最初在后台模式下使用&. 当我只做时$fg,所有三个进程都进入了前台。现在我想再次将它们发送到后台但没有暂停。我怎样才能做到这一点?
我想要完成的是我在常规 ssh 会话中习惯的鼠标滚轮滚动行为。在 bash 提示中,鼠标滚轮应该滚动我的终端输出,并在 less/vim 内滚动 - 他们使用的备用缓冲区,因此在退出时,less 内显示的文本没有任何剩余。如果我在 .screenrc 中禁用备用缓冲区功能,如下所示:
termcapinfo xterm ti@:te@
Run Code Online (Sandbox Code Playgroud)
然后它也被 vim/less 禁用,鼠标滚轮滚动不会被他们处理。启用屏幕的内部备用缓冲区模拟,如下所示:
altscreen on
Run Code Online (Sandbox Code Playgroud)
仅有助于在 less/vim 退出后恢复 bash 输出。不是在鼠标滚轮里面滚动。
那么,是否有任何屏幕选项,也许在某些屏幕分叉/替代方案中可以禁止屏幕本身使用备用缓冲区?
我已经为 Windows 10 安装了 Linux 子系统。它工作正常,但我想更改子系统的默认 shell 环境。
我做了sudo apt-get install fish然后chsh -s /usr/bin/fish。但是当我bash.exe在 Windows 中启动时,它总是启动 bash(我认为这是可以预测的)。
有谁知道改变这种行为的论据?
bash shell windows-10 windows-subsystem-for-linux windows-10-v1607
我已经更新了 Windows 10 并在 Windows 上安装了新的 bash。
但是,在我尝试过的两台 PC 上,我都无法安装网络共享。
我尝试了许多不同的方法来安装共享:
sudo mount -t cifs -o username=xx,password=xx //192.168.x.x/Share /mnt/s
运行上面的命令时,它看起来已经起作用了,没有错误(即使有--verbose选项)但是/mnt/s什么也不mount显示并显示://192.168.x.x/Share on /mnt/s type cifs (rw).
我能够使用 smbclient 浏览共享上的所有文件/文件夹