标签: shell

在 Mac OS X 中从 shell 获取 http

我想下载一个链接,如:

http://example.org/file.mp3

现在,我已经足够了解 SCP 的作用了,但这就是我的极客世界结束的地方。那么是否有一个 shell 程序可以让我基本上做一个 http get 并将其通过管道传输到一个文件?

shell http macos

18
推荐指数
1
解决办法
4万
查看次数

在不继承父级环境的情况下运行命令

有没有办法“好像”在新的登录会话中运行命令?

我已经试过了env -i。但是,我不想处理必须设置或取消设置的各种 ENV 变量。

我也试过bash -c "some command"and bash -l -c "some commmand",但它们都是复制当前环境。

我最接近的是一个不太干净的解决方案:

ssh me@localhost "some command"`
Run Code Online (Sandbox Code Playgroud)

session bash shell

18
推荐指数
2
解决办法
9645
查看次数

如何删除shell中光标后的所有字符

我想删除 putty 或 shell 中光标后的所有字符。我怎样才能做到这一点?

每次我想删除整行时,我都需要按删除键,这是我不想做的事情。

找到删除行的方法提高了我的速度和效率。

例如

 $@ java -DSTOP.PORT=8982 -DSTOP.KEY=mysecret -jar start.jar --stop
Run Code Online (Sandbox Code Playgroud)

@ 是我的光标位置,所以如果我必须删除该行,我必须一直按删除键。

shell

18
推荐指数
1
解决办法
2万
查看次数

unix - 按行拆分一个巨大的 .gz 文件

我确定有人有以下需求,按行拆分巨大的 .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

注意:我无法获得额外的磁盘。

谢谢!

linux unix bash shell perl

18
推荐指数
3
解决办法
2万
查看次数

在从 shell 脚本输出给定的行后杀死程序

背景:

我正在为一个计算生物学软件编写一个测试脚本。我正在测试的软件可能需要数天甚至数周才能运行,因此它具有内置的恢复功能,以防系统崩溃或电源故障。

我想弄清楚如何测试恢复系统。具体来说,我想不出一种以受控方式“崩溃”程序的方法。我正在考虑以某种方式在一段时间后对 SIGKILL 指令进行计时。这可能并不理想,因为不能保证测试用例每次都以相同的速度运行(它在共享环境中运行),因此将日志与所需的输出进行比较会很困难。

该软件确实为它完成的每个分析部分打印一行。

题:

我想知道是否有一种好的/优雅的方式(在 shell 脚本中)来捕获程序的输出,然后在程序输出给定的行/行数时终止程序?

linux shell

18
推荐指数
3
解决办法
1万
查看次数

每个目录的 bash/zsh 历史日志文件

我发现我在一个集合目录中的一个项目上做了很多工作。有时——几个月后——我需要在那个项目上重做一些事情,但我不记得我做了什么。我使用 mercurial 或 git 来跟踪对文件的更改,但我希望能够记住我在该目录中发出的命令。

搜索我的 shell 历史记录并不是很有用。我已经将所有内容记录到我的 .*_history 文件中,但我想要一个我在 ~/foo/bar 中所做的事情的列表,而不是我那周所做的所有其他(百万)事情。我可能甚至不记得我上次在那个特定项目上工作的月份。

有没有人知道我使用过的所有 shell 命令的项目目录日志文件?我正在设想一个类似的命令:

在我的项目上工作

...这会将 shell 日志文件设置为 ~/myproject/.history.log,从该日志文件加载以前的历史记录,并可能更新我的提示以告诉我我正在处理的目录(例如 vcprompt 以提供版本控制信息)。

有没有这样的东西?

bash zsh shell history

17
推荐指数
2
解决办法
2624
查看次数

重定向输出时如何设置特定的文件权限?

这可能是重复的,但我所有的搜索都提出了有关权限被拒绝错误的问题。

我在 bash shell 中运行命令。我想重定向输出以附加到第一次运行时可能不存在的文件。如果输出重定向必须创建此文件,我想设置特定的文件权限模式。有没有办法用一个命令来做到这一点?

例如,我可能会尝试

foo >> /tmp/foo.log 0644
Run Code Online (Sandbox Code Playgroud)

0644我想foo.log最终获得的权限在哪里。我在 bash 中尝试过的大多数命令最终都被解释0644foo.

我觉得这将chmod在写入之前或之后对权限执行第二个命令。

我正在使用 GNU bash 4.2.25 和 Ubuntu 12.04,如果这有区别的话 - 一般的答案是首选。

linux bash shell command-line file-permissions

17
推荐指数
3
解决办法
1万
查看次数

在 zsh 中定位函数的来源

我的 zsh shell 中有这个烦人的问题,其中在某处声明了一个函数,并且该函数被命名为“cp”,因此它覆盖了正常的 cp 行为。我试图找到函数声明,但我不能。我已经查看了 .zshrc 的正常位置以及 .zshrc 中包含的各种其他来源,但到目前为止还没有。

我尝试过的其他事情:

  • grep -r 'function cp' . (来自~)
  • whence -f cp (给出函数定义,但不给出它的声明位置)

有任何想法吗?

linux zsh shell

17
推荐指数
3
解决办法
3514
查看次数

使用 shell 脚本/命令编辑 xml 文件

我需要使用 unix 脚本或命令执行此操作 /home/user/app/xmlfiles 中有一个 xml 文件,例如

<book>
   <fiction type='a'>
      <author type=''></author>
   </fiction>
   <fiction type='b'>
      <author type=''></author>
   </fiction>
   <Romance>
       <author type=''></author>
   </Romance>
</book>
Run Code Online (Sandbox Code Playgroud)

我想将小说中的作者类型编辑为 local 。

   <fiction>
      <author type='Local'></author>
   </fiction>
Run Code Online (Sandbox Code Playgroud)

我需要单独使用属性 b更改小说标签中的作者类型。请使用 unix shell 脚本或命令帮助我解决这个问题。谢谢 !

unix bash shell shell-script bash-scripting

17
推荐指数
3
解决办法
7万
查看次数

除非出现错误,否则如何在没有输出的情况下在后台运行命令

如果命令退出编码错误,如何抑制命令的输出但显示它?

shell fish

17
推荐指数
2
解决办法
7964
查看次数