Articles of shell

为什么我会在一个terminal上获得“暂停(tty输出)”,而在其他terminal却不能?

显然,我在tcsh shell中做了一些奇怪的事情,现在每当我在后台打印标准输出的应用程序被暂停(停止)的时候。 奇怪的是,这种行为只发生在这个terminal上; 如果我在另一个terminal上做同样的事情,应用程序只是在后台运行,并将其输出到terminal。 在“破”的terminal,我必须把暂停的应用程序回到前台(与fg )让它继续。 例: thehost:/tmp/test1(277)> ls -l & [3] 1454 thehost:/tmp/test1(278)> [3] + Suspended (tty output) ls –color=auto -l thehost:/tmp/test1(278)> fg ls –color=auto -l total 0 thehost:/tmp/test1(279)> 在另一个terminal执行相同的命令工作正常: thehost:/tmp/test1(8)> ls -l & [1] 2280 thehost:/tmp/test1(9)> total 0 [1] Done ls –color=auto -l thehost:/tmp/test1(9)> 在受影响的terminal启动一个bash也不能解决这个问题: thehost:/tmp/test1(280)> bash oliver@thehost:/tmp/test1$ ls -l & [1] 2263 […]

Bash – 如何把每一行放在引号内

我想把每一行放在引号内,比如: abcdefg hijklmn opqrst 转换成: "abcdefg" "hijklmn" "opqrst" 如何在Bash shell脚本中做到这一点?

zsh菜单完成导致zle重置提示后出现问题

我在我的.zshrc中有以下代码: TMOUT=1 TRAPALRM() { zle reset-prompt } 触发菜单完成后,菜单中的所有项目,除了突出显示的一个在TRAPALRM触发之后消失,以及在菜单zsh segvaults中在短时间后继续导航 有没有解决方法或解决方法? 编辑:zsh版本是在Linux Mint 17上的5.0.2 编辑:我在Gentoo的zsh版本5.0.7上观察同样的事情

用于https(SSL)的Curl命令

我想运行下面的CURL命令,但我得到一个SSL证书错误: curl https://example.com:8443/cli/agentCLI -u username:password 错误: curl:(60)SSL证书问题,请validationCA证书是否正确。 详细信息:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书validation失败更多详细信息,请访问: http ://curl.haxx.se/docs/sslcerts.html curl默认使用证书颁发机构(CA)公钥(CA证书)的“包”来执行SSL证书validation。 默认包名为curl-ca-bundle.crt; 您可以使用–cacert选项指定备用文件。 如果此HTTPS服务器使用包中表示的由CA签名的证书,则证书validation可能由于证书问题(可能已过期,或名称可能与URL中的域名不匹配)而失败。 如果您想closures卷发的证书validation,请使用-k(或–insecure)选项。 我将如何解决这个问题,以允许SSL URL?

为什么uniq在这个大文件上工作? 庆典

我真的很抱歉,这个其他的noob问题,但我真的不知道这里发生了什么。 我想从文件中计算单词的频率,单词是逐行的。 该文件真的很大,所以这可能是问题(在这个例子中,它是30万行) 我做这个命令: cat .temp_occ | uniq -c | sort -k1,1nr -k2 > distribution.txt 问题是它给了我一个小错误:它认为我是相同的词不同。 例如,第一个条目是: 306 continua 278 apertura 211 eventi 189 murah 182 giochi 167 giochi 你可以看到giochi重复了两次 在文件的底部,它变得更糟,它看起来像这样: 1 win 1 win 1 win 1 win 1 win 1 win 1 win 1 win 1 win 1 winchester 1 wind 1 wind […]

在Sublime Text 3中保存文件时运行shell脚本

我只是好奇,是否有可能在Linux上的Sublime Text 3中按CTRL + S时自动运行shell脚本。 例如,在修改SASS时生成CSS可能会很有用。 谢谢。

等待subprocess,但得到错误:“PID不是这个壳的孩子”

我写了一个脚本从HDFS平行地获取数据,然后等待这些subprocess在for循环中,但有时它返回“pid不是这个shell的subprocess”。 有时它运作得很好,它很困惑。 我使用“jobs -l”来显示所有在后台运行的作业。 我确定这些pid是shell进程的subprocess,我使用“ps aux”来确保这些pid是note分配给其他进程。 这是我的脚本。 PID=() FILE=() let serial=0 while read index_tar do echo $index_tar | grep index > /dev/null 2>&1 if [[ $? -ne 0 ]] then continue fi suffix=`printf '%03d' $serial` mkdir input/output_$suffix $HADOOP_HOME/bin/hadoop fs -cat $index_tar | tar zxf – -C input/output_$suffix \ && mv input/output_$suffix/index_* input/output_$suffix/index & PID[$serial]=$! FILE[$serial]=$index_tar […]

为什么我不能在shell脚本中使用“sudo su”? 如何使用sudo自动运行shell脚本

我无法弄清楚这有什么问题。 当我在terminal中运行它并input密码时,什么都不会发生,但是如果我在terminal中单独运行每个命令,它都会起作用。 谢谢! #!/bin/bash sudo su; mkdir /opt/D3GO/; cp `pwd`/D3GO /opt/D3GO/; cp `pwd`/D3GO.png /opt/D3GO/; cp `pwd`/D3GO.desktop /usr/share/applications/; chmod +x /opt/D3GO/D3GO

awk / sed:在特定块号的最后一行之前插入文件内容

给定是两个文件,第一个是Apacheconfiguration文件: $ cat vhosts-ssl.conf <VirtualHost *:443> vhost 1 foobar 1 foobar 2 barfoo 1 barfoo 2 </VirtualHost> <VirtualHost *:443> vhost 2 foobar 2 barfoo 1 foobar 1 barfoo 2 </VirtualHost> <VirtualHost *:443> vhost 3 foobar 1 barfoo 1 foobar 2 barfoo 2 </VirtualHost> <VirtualHost *:443> vhost 4 foobar 1 foobar 2 barfoo 1 barfoo 2 […]

从Java触发shell脚本的最佳方法

我有一个我想从J2EE Web应用程序触发的shell脚本。 该脚本做了很多事情 – 处理,FTP等 – 这是一个遗留问题。 运行需要很长时间。 我想知道什么是最好的方法。 我希望用户能够点击链接,触发脚本,并向用户显示一条消息,说明脚本已经启动。 我希望HTTP请求/响应周期是瞬时的,不pipe我的脚本需要很长时间才能运行。 我可以想到三个select: 在处理用户点击的过程中产生一个新的线程。 但是,我不认为这符合J2EE规范。 向HTTP响应stream发送一些输出并在触发脚本之前提交它。 这给出了HTTP请求/响应循环已经完成的错觉,但实际上处理请求的线程仍然在那里等待shell脚本完成。 所以我已经基本上劫持了容器HTTP处理线程为我自己的目的。 创build一个包装脚本,在后台启动我的主脚本。 这将使请求/响应周期在容器中正常完成。 以上所有将使用servlet和Runtime.getRuntime()。exec()。 这在Java 1.4.2上使用Oracle的OC4J应用服务器在Solaris上运行。 请问有没有人有任何意见哪个是最简单的解决scheme,为什么? 还是有没有人有更好的方法? 我们已经有了Quartz,但是我们不希望将shell脚本重新实现为Java进程。 谢谢。