Tag: shell

如何在Makefile中设置环境variables

我想改变这个Makefile: SHELL := /bin/bash PATH := node_modules/.bin:$(PATH) boot: @supervisor \ –harmony \ –watch etc,lib \ –extensions js,json \ –no-restart-on error \ lib test: NODE_ENV=test mocha \ –harmony \ –reporter spec \ test clean: @rm -rf node_modules .PHONY: test clean 至: SHELL := /bin/bash PATH := node_modules/.bin:$(PATH) boot: @supervisor \ –harmony \ –watch etc,lib \ –extensions […]

你能阻止命令进入bash shell命令历史吗?

有没有办法阻止命令被添加到bash shell的命令历史? 我希望能够防止某些“危险的”命令被添加到历史logging中,例如“ rm -rf ~/some/dir ”,以便按下向上箭头不能访问命令。 这样,不可能不经意地重复其中的一个命令。 我之所以问,是因为我使用向上的箭头来访问shell历史中的先前的命令,而且经常发现自己打开了我认为是正确的命令的东西,只是意识到我正要做点什么愚蠢/烦人/危险。 我不喜欢在我的shell历史中浮现出来的想法,等着我踩到它们! (注意:我知道可以在HISTIGNORE中设置模式,但是可以在每个命令的基础上应用一些东西,这将会是一个好习惯,除非有一个聪明的方法来使用HISTIGNORE我错过了?)

python getoutput()在subprocess中等价

我想在一个python脚本中得到一些shell命令的输出,例如ls或df 。 我看到commands.getoutput('ls')被弃用,但subprocess.call('ls')只会得到我的返回码。 我希望有一些简单的解决scheme。

如何从Mongo ObjectID中提取创build的date

我正在使用Mongo shell来查询我的Mongo数据库。 我想使用包含在ObjectID中的时间戳作为我的查询的一部分,也作为提取到输出的列。 我已经build立了Mongo来自己创buildObjectID。 我的问题是我无法find如何使用ObjectID来提取其时间戳。 这是我正在尝试工作的查询。 “createdDate”字段是占位符; 不知道什么是正确的领域是: //Find everything created since 1/1/2011 db.myCollection.find({date: {$gt: new Date(2011,1,1)}}); //Find everything and return their createdDates db.myCollection.find({},{createdDate:1});

如何使用jq合并2个json文件?

我在shell脚本中使用jq工具(jq-json-processor)来parsingjson。 我有2个JSON文件,并希望合并成一个独特的文件 这里的文件内容: 文件1 { "value1": 200, "timestamp": 1382461861, "value": { "aaa": { "value1": "v1", "value2": "v2" }, "bbb": { "value1": "v1", "value2": "v2" }, "ccc": { "value1": "v1", "value2": "v2" } } } 文件2 { "status": 200, "timestamp": 1382461861, "value": { "aaa": { "value3": "v3", "value4": 4 }, "bbb": { "value3": "v3" }, "ddd": […]

将输出写入日志文件和控制台

在Unix shell中,我有一个env文件( env文件定义了运行用户脚本所需的参数,如日志文件名和path,将输出和错误redirect到日志文件,数据库连接详细信息等 ),redirect所有的输出)和使用以下代码从执行的脚本的日志文件错误: exec 1>>${LOG_FILE} exec 2>>${LOG_FILE} env文件在每个脚本的开始处执行。 由于env文件中的上述代码,所有可能是用户输出或错误的控制台输出都会直接输出到日志文件,而这正是我真正需要的。 但有一些select性的用户输出,我想在控制台和日志文件中显示。 但是由于上面的代码,我无法做到这一点。 我知道,如果我删除上面的代码,我可以得到所需的结果,但我将不得不手动写入所有其他输出到日志文件,这不是一件容易的事情。 有没有办法在控制台和日志文件中获取输出而不删除上述代码?

unix – 文件中的列数

给定一个像这样的数据文件(即stores.dat文件) sid|storeNo|latitude|longitude 2|1|-28.03720000|153.42921670 9|2|-33.85090000|151.03274200 什么是一个命令来输出列名的数量? 即在上面的例子中,它将是4.(第一行中的pipe道字符数+1) 我在想像这样的东西: awk '{ FS = "|" } ; { print NF}' stores.dat 但它会返回所有的行而不是第一行,而第一行则返回1而不是4

限制Get-ChildItemrecursion深度

我可以使用这个命令recursion地获得所有的子项目: Get-ChildItem -recurse 但是有没有办法限制深度? 如果我只是想递减一个或两个级别,例如?

哪个terminal命令得到只是IP地址,没有别的?

我试图在我写的脚本中只使用IP地址(inet)作为参数。 有一个简单的方法在unixterminal获取IP地址,而不是通过查看ifconfig ?

如何在Bash / Debian中获取文件创builddate/时间?

我在Debian GNU / Linux 6.0上使用Bash。 是否有可能获得文件创builddate/时间? 不是修改date/时间。 ls -lh a.txt和stat -c %y a.txt都只给出修改时间。