Questions tagged «bash»

Bash是Bourne Again SHell,它是经典Unix sh(shell)的继承者。

1
Shell命令使用管道时速度较慢,使用中间文件时速度较快
有没有人了解使用中间文件或使用管道时处理时间的巨大差异?我正在使用标准的工具在新鲜的debian squeeze服务器上将tiff转换为pdf。执行此操作的标准方法是先转换为ps。 不带管道: root@web5:~# time tiff2ps test.tif > test.ps real 0m0.860s user 0m0.744s sys 0m0.112s root@web5:~# time ps2pdf13 -sPAPERSIZE=a4 test.ps > test.pdf real 0m0.667s user 0m0.612s sys 0m0.060s 带管: root@web5:~# time tiff2ps test.tif | ps2pdf13 -sPAPERSIZE=a4 - > test.pdf real 1m6.098s user 0m15.861s sys 0m50.9 在最后一条命令期间,gs进程始终处于100%的状态。 更新: 这是ps生成的strace输出: root@web5:~# strace …


6
杀死一个屏幕(但不是所有屏幕)
我有多个在Ubuntu服务器上运行的屏幕,它们被初始化为: screen -dmS screen1 cmd screen -dmS screen2 cmd etc... 我需要杀死一个屏幕,但不是全部。用其名称杀死单个特定屏幕的正确命令是什么?我已经通读了手册页,但似乎找不到所需的命令。 另外,我想将此命令写入bash脚本中,所以我不能像往常一样简单地screen -r screen1按Ctrl+ X。
19 bash  gnu-screen  kill 

4
如何在Mac OS X上的Shell脚本中检索绝对文件名?
我想检索当前正在执行的脚本文件的绝对文件名。链接也应该解决。 在Linux上,这似乎是这样完成的: $(readlink -mn "$0") 但readlink似乎工作非常不同的Mac OS X上 我已经读到这是使用 $(realpath $0) 在BSD中,但这也不起作用。Mac OS X没有realpath。 任何想法?
19 mac-osx  bash  shell 

5
将管道传递给需要文件名的命令
说我有一个foo接受文件名参数的命令:foo myfile.txt。令人讨厌的是,foo它不会从标准输入中读取内容。我想将另一个命令的结果(而不是实际的文件)传递给它(实际上是,pv它将显示该文件并输出进度表作为副作用)。 有没有办法做到这一点?我的绝招似乎无济于事。 (foo在这种情况下,是一个PHP脚本,我相信它会顺序处理该文件)。 我正在使用Ubuntu和Bash 编辑抱歉,问题描述有点不清楚,但这是我想要的答案: pv longfile.txt | foo /dev/stdin 现在很明显,我看到了。
19 bash  pipe  command 

3
如何压缩大小限制的文件?
我有一个从文件夹压缩文件的脚本。我想确保压缩文件不超过10 MB。如果大小超过10MB,则应创建另一个ZIP文件。 是否有任何命令(或其他方法)可用于此目的?
19 linux  bash  gzip 

1
通常在哪里设置$ BASH_ENV?
我有两个应该配置相同的Linux服务器,但是其中一个命令要求在〜/ .bashrc中指定路径的ssh命令失败。例如,我既可以pwd交互方式也可以通过ssh 使用命令,但是如果我尝试运行位于应用程序bin文件夹中的程序,则该程序仅在其中一台服务器的交互式外壳程序中有效。 两台服务器上的/ etc / profile和/ etc / environment文件相同,但是在正常运行的服务器上,$ BASH_ENV设置为〜/ .bashrc。我想在不工作的服务器上设置$ BASH_ENV,但我希望将其设置在与工作服务器相同的位置。在非交互式登录(例如来自另一台计算机的ssh命令)时,Linux将在哪些位置运行? 编辑:/ etc / passwd中用户的行在两台服务器上都指定了/ bin / bash。两台服务器的〜/ .bash_profile文件是相同的,并且包含if [ -f ~/.bashrc ]; then . ~/.bashrc; fi。系统之间的唯一区别是$ BASH_ENV是服务器上不工作的空字符串,而且我找不到在工作中的服务器上设置的位置。 编辑2:两台服务器上的〜/ .ssh / environment文件具有BASH_ENV =〜/ .bashrc
19 linux  bash 

5
使用sed删除字符串周围的左方括号和右方括号
我在Ubuntu 12.04.1 LTS的bash shell中运行此命令。我正在尝试一次删除掉[和]字符,即不必通过管道再次进行sed。 我知道方括号在正则表达式中有特殊含义,因此我在前面加上反斜杠来对其进行转义。我期望的结果只是字符串,123但仍然保留了方括号,我很想知道为什么! ~$ echo '[123]' | sed 's/[\[\]]//' [123]
19 bash  regex  sed 

3
iftop-如何生成带有其输出的文本文件?
iftop是查看源IP地址源IP端口和源IP地址区别的实时带宽使用情况的出色工具。 我正在使用它来查看哪个客户端的IP使用最多的带宽。现在我想将输出存储在某个地方。 iftop使用ncurses,因此 iftop > log.txt 不能按预期工作,结果文件不可读。 是否有类似这样的工具可用于将输出管道传输到文本文件?


14
在pts登录名的“ last”输出中缺少IP信息的原因?
我有五个正在运行的CentOS 6 linux系统,并且遇到了一个相当奇怪的问题,在我拥有的所有linux系统中,我的用户名似乎都只发生了...这是我从last命令中删除条目的示例。 。 mpenning pts/19 Fri Nov 16 10:32 - 10:35 (00:03) mpenning pts/17 Fri Nov 16 10:21 - 10:42 (00:21) bill pts/15 sol-bill.local Fri Nov 16 10:19 - 10:36 (00:16) mpenning pts/1 192.0.2.91 Fri Nov 16 10:17 - 10:49 (12+00:31) kkim14 pts/14 192.0.2.225 Thu Nov 15 18:02 - …
18 linux  centos  bash  login  terminal 

9
脚本以自动测试网站是否可用
我是一个孤独的Web开发人员,拥有自己的Centos VPS,为我的客户托管了一些小型网站。今天,我发现我的httpd服务已停止(没有明显的原因-但这是另一个线程)。我重新启动了它,但是现在我需要找到一种方法,如果再次发生,可以通过电子邮件和/或SMS通知我-我不喜欢它,当我的客户打电话告诉我他们的网站不起作用时! 我知道可能有很多不同的可能性,包括服务器监视软件。我认为我真正需要的是一个脚本,该脚本可以作为我的开发主机(永久在我的办公室中运行)的cron作业运行,该脚本尝试从生产服务器加载页面,如果页面在30分钟内未加载,几秒钟后,它会向我发送电子邮件或短信。我在shell脚本编写方面非常垃圾,因此是这个问题。 任何建议将不胜感激。




By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.