标签: bash

如何删除^m符号

我需要在 Debian 64 位下编译 Qt。我下载了源代码,但在行尾的每个文件中到处都有 ^M 符号,bash 不运行配置脚本。如何从qt源中的所有文件中删除它?谢谢。

debian bash sh

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

我可以在 bash 脚本中使用分配给虚拟网络接口的 IP 吗?

我想知道是否可以动态读取网络接口的 IP 地址以在 bash 脚本中使用。就像是:

#!/bin/bash
MYPUBLICIP= get_eth0_address
MYPRIVATEIP= get_eth0:0_address
Run Code Online (Sandbox Code Playgroud)
  • 我该怎么办?
  • 是否可以区分 eth0 和虚拟 eth0:0?

[背景] 我正在尝试编写一个脚本,将各种规则应用于一组 VPS 的 iptables。我试图避免摆弄每台机器的单独 IP。

networking linux bash

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

使用 SSH 关闭/退出所有屏幕

我的服务器上有很多屏幕。随着screen -ls我得到:

 There are screens on:
    12858.test1 (Detached)
    28210.test2 (Detached)
    12494.moretesting3  (Detached)
    31787.testingfour4  (Detached)
    13192.testscreen5   (Detached)
5 Sockets in /var/run/screen/S-root.
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用screen -S 12858 -X quit或退出单个屏幕,screen -S test1 -X quit但我需要一种同时关闭所有屏幕的方法。

是否有能够关闭每个打开/分离屏幕的 ssh 命令或 bash 脚本?

ssh bash gnu-screen

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

Bash:调用shell脚本但不等待返回码

是否可以在 Bash 中从另一个 shell 脚本调用 shell 脚本,但原始脚本不能等待子脚本完成?

bash job-control

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

Capistrano 错误“捆绑:未找到”

我正在尝试在 VPS 上部署 octopress 但收到此错误bundle: not found但已安装捆绑包!

完全错误。

$ cap deploy
  * 2013-07-20 18:08:55 executing `deploy'
  * 2013-07-20 18:08:55 executing `deploy:update'
 ** transaction: start
  * 2013-07-20 18:08:55 executing `deploy:update_code'
    updating the cached checkout on all servers
    executing locally: "git ls-remote git@mydomain.com:website.git HEAD"
    command finished in 8348ms
  * executing "if [ -d /home/deploy/ruby_apps/website/shared/cached-copy ]; then cd /home/deploy/ruby_apps/website/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard de26553c0aa7ea583e0bfdec2c103ba83adbb793 && git clean -q -d …
Run Code Online (Sandbox Code Playgroud)

bash capistrano rvm bundler

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

如何将正在运行的进程转换为 nohup 并保留日志文件

我有一个进程正在占用一个终端

]$ command some_argument
Run Code Online (Sandbox Code Playgroud)

我想从终端退出并回家,但同时我不想终止这个正在运行的进程。

对于上面的运行过程,我想实现如下:

]$ nohup command some_argument >& logfile &
Run Code Online (Sandbox Code Playgroud)

linux unix bash command-line-interface nohup

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

按时间和大小限制 tcpdump 捕获文件

我在使用 tcpdump 将所有 Internet 流量记录在具有以下限制的接口上时遇到了一些问题:

  • 我想每小时创建一个新的 pcap 文件,名称中带有时间和日期标签
  • 如果这一小时内的 pcap 文件变得大于 100M,则创建一个新的 pcapfile,其名称与以前相同,但带有 -2 -3 -4 ... 后缀。

我正在使用以下命令:

tcpdump -pni eth0 -s65535 -G 3600 -C 100 -w '/var/log/tcpdump/trace_%Y-%m-%d_%H:%M:%S.pcap'

因此,我每小时都会收到一个日志文件,但如果文件大于 100,它似乎不会拆分文件。

有谁知道我在哪里搞砸了?为帮助干杯

bash logging tcpdump

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

mtr 原始输出的格式是什么?

我使用 mtr 计算到主机的跃点数并将该数字传递给脚本。我发现了-l(或--raw) 选项,它产生一个准备好解析的输出。但是,我想知道在哪里可以找到这种原始格式描述?不幸的是,man谷歌只给了我这个:

-l

   --raw
          Use  this option to tell mtr to use the raw output format. This format is better suited for archival of the measure?
          ment results. It could be parsed to be presented into any of the other display methods.
Run Code Online (Sandbox Code Playgroud)

bash mtr

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

使用 sed 插入长字符串

我正在尝试使用此表达式在给定字符串之后将一个文本文件的内容插入到另一个文本文件中。这是一个简单的 bash 脚本:

    TEXT=`cat file1.txt`
    sed -i "/teststring/a \
    $TEXT" file2.txt
Run Code Online (Sandbox Code Playgroud)

这将返回错误,“sed:-e 表达式 #1,字符 37:未知命令:`M'”

问题在于 file1.txt 的内容实际上是一个私有证书,因此它包含大量文本和异常字符,这似乎导致了问题。如果我用一个简单的 ASCII 值替换 $TEXT ,它可以工作,但是当它读取 file1.txt 的大量内容时,它会因该错误而失败。

有什么方法可以执行此操作吗?我的语法是否与 sed 或我的引用位置错误有关?

unix bash sed

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

在 shell 脚本中使用记录器

如何在 shell 脚本中使用记录器?

如果我跑

ntpd -qnp pool.ntp.org 2> >(logger)
Run Code Online (Sandbox Code Playgroud)

在控制台中,它按预期工作。

如果我把它放到一个shell脚本中

#!/bin/sh
ntpd -qnp pool.ntp.org 2> >(logger)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

line 2: syntax error: unexpected redirection
exited with code 2
Run Code Online (Sandbox Code Playgroud)

shell 脚本有什么问题?

linux shell bash logging

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